-- =============================================================================
-- 线上数据库结构升级 SQL（safety-eval-service）
--
-- 对比基准：本地库 192.168.20.100:33080 / safety-eval-service
-- 目标库　：nlb-kd2xz70qhllfet2koj.cn-beijing.nlb.aliyuncsslb.com:33068 / safety-eval-service
-- 生成时间：2026-08-11
--
-- 【重要】本文件仅供人工评审，尚未在任何环境执行。
--         执行前请务必先备份 org_info 表。
-- =============================================================================

USE `safety-eval-service`;

-- -----------------------------------------------------------------------------
-- 一、备份（强烈建议，执行 DDL 前先跑）
-- -----------------------------------------------------------------------------
-- CREATE TABLE `org_info_bak_20260811` LIKE `org_info`;
-- INSERT INTO `org_info_bak_20260811` SELECT * FROM `org_info`;


-- -----------------------------------------------------------------------------
-- 二、补齐线上缺失字段（org_info，共 8 个，均为原型 V1.6 新增）
--     全部为可空且无默认值，对存量数据无影响，可安全执行。
-- -----------------------------------------------------------------------------
ALTER TABLE `org_info`
  ADD COLUMN `qualification_cert_no` varchar(100) NULL DEFAULT NULL COMMENT '资质证书编号（2026-08-08 原型V1.6新增，非必填）' AFTER `env`,
  ADD COLUMN `fax`                   varchar(20)  NULL DEFAULT NULL COMMENT '传真（2026-08-08 原型V1.6新增）'                 AFTER `qualification_cert_no`,
  ADD COLUMN `contact_name`          varchar(50)  NULL DEFAULT NULL COMMENT '联系人（2026-08-08 由 contact_name_phone 拆分）'  AFTER `fax`,
  ADD COLUMN `contact_phone`         varchar(20)  NULL DEFAULT NULL COMMENT '联系电话（2026-08-08 由 contact_name_phone 拆分）' AFTER `contact_name`,
  ADD COLUMN `contact_name_phone`    varchar(100) NULL DEFAULT NULL COMMENT '联系人及电话（2026-08-08 原型V1.6新增）'           AFTER `contact_phone`,
  ADD COLUMN `fixed_assets_total`    decimal(16,4) NULL DEFAULT NULL COMMENT '固定资产总值（万元，非负，2026-08-08 原型V1.6新增）' AFTER `contact_name_phone`,
  ADD COLUMN `apply_business_scope`  varchar(500) NULL DEFAULT NULL COMMENT '拟申请的法定安全评价业务范围（多选逗号分隔，2026-08-08 原型V1.6新增）' AFTER `fixed_assets_total`,
  ADD COLUMN `org_intro`             text         NULL             COMMENT '单位基本情况介绍（长文本，2026-08-08 原型V1.6新增）' AFTER `apply_business_scope`;


-- -----------------------------------------------------------------------------
-- 三、字段注释对齐（eval_process_control）
--     仅注释文案不同，类型/长度/可空性均一致，无数据风险。
-- -----------------------------------------------------------------------------
ALTER TABLE `eval_process_control`
  MODIFY COLUMN `reviewer_signature_task_status` varchar(64) NOT NULL DEFAULT 'non_dispatched'
  COMMENT '过程控制审核签字任务状态 dispatched 下发，non_dispatched 未下发 , completed 已完成';


-- =============================================================================
-- 四、【不建议执行】org_info 两个字段的长度差异
--
--   safety_industry_category_code：线上 varchar(512)  本地 varchar(32)
--   safety_industry_category_name：线上 varchar(1024) 本地 varchar(50)
--
--   线上字段比本地更宽。实测线上存量数据：
--     - code 最大长度 110，其中 2 条 > 32
--     - name 最大长度 57， 其中 1 条 > 50
--   若按本地定义收窄，将直接截断线上真实数据，造成不可逆的数据丢失。
--
--   结论：应反向以线上为准，把【本地】改宽以与线上保持一致，
--         而不是把线上改窄。以下语句仅作留档，禁止在线上执行。
--
-- ALTER TABLE `org_info`
--   MODIFY COLUMN `safety_industry_category_code` varchar(32) NULL DEFAULT NULL COMMENT '安全生产监管行业类别编码',
--   MODIFY COLUMN `safety_industry_category_name` varchar(50) NULL DEFAULT NULL COMMENT '安全生产监管行业类别名称';
-- =============================================================================


-- =============================================================================
-- 五、建议在【本地库】执行（使本地向线上看齐，消除该项差异）
--
-- ALTER TABLE `org_info`
--   MODIFY COLUMN `safety_industry_category_code` varchar(512)  NULL DEFAULT NULL COMMENT '安全生产监管行业类别编码',
--   MODIFY COLUMN `safety_industry_category_name` varchar(1024) NULL DEFAULT NULL COMMENT '安全生产监管行业类别名称';
-- =============================================================================


-- -----------------------------------------------------------------------------
-- 六、执行后校验
-- -----------------------------------------------------------------------------
-- SELECT COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE, COLUMN_COMMENT
-- FROM information_schema.COLUMNS
-- WHERE TABLE_SCHEMA='safety-eval-service' AND TABLE_NAME='org_info'
-- ORDER BY ORDINAL_POSITION;
