-- ──────────────────────────────────────────────────────────────────────
-- S0-PRODUCT-DESIGN-CYCLE-ITEMMASTER-TYPE-LINK-1
-- 字典 s0_material_type 与 ItemMaster.ItemType 真实 RS 编码对齐。
--
-- 1) 禁用旧语义 6 项（raw/semi/finished/aux/fixture/packaging）— 仅当 Status=1 时
--    UPDATE，保留行不物理删除；不覆盖人工恢复。
-- 2) 插入新 9 项 RS 编码（RS11/12/13/14/15/30/50/60/99），label = code（无正式中文映射）。
--
-- 幂等：
--   - 旧码 UPDATE WHERE Status=1 → 第二次执行命中 0 行（Status 已 0）→ 空操作；
--   - 新码 INSERT IGNORE 走 (DictTypeId, Value) UNIQUE 索引（index_SysDictData_TV）防重；
--   - 仅作用于 s0_material_type 字典，不影响 s0_owner_application 或其他字典类型；
--   - 不使用 DROP / TRUNCATE / 无条件 DELETE；不更新 ProductDesignCycle / ItemMaster 业务数据。
-- ──────────────────────────────────────────────────────────────────────

-- 1. 禁用旧 6 项（仅 Status=1 时）
UPDATE `SysDictData`
SET    `Status` = 0,
       `UpdateTime` = NOW()
WHERE  `DictTypeId` = (SELECT `Id` FROM `SysDictType` WHERE `Code` = 's0_material_type')
  AND  `Value` IN ('raw', 'semi', 'finished', 'aux', 'fixture', 'packaging')
  AND  `Status` = 1;

-- 2. 插入新 9 项 RS 编码（label=code；走唯一索引幂等）
INSERT IGNORE INTO `SysDictData`
  (`Id`, `DictTypeId`, `Label`, `Value`, `OrderNo`, `Status`, `CreateTime`)
SELECT
  1329900100100 + v.ord_offset                                        AS `Id`,
  (SELECT `Id` FROM `SysDictType` WHERE `Code` = 's0_material_type')   AS `DictTypeId`,
  v.code                                                              AS `Label`,
  v.code                                                              AS `Value`,
  100 + v.ord_offset                                                  AS `OrderNo`,
  1                                                                   AS `Status`,
  NOW()                                                               AS `CreateTime`
FROM (
  SELECT 'RS11' AS code, 0 AS ord_offset UNION ALL
  SELECT 'RS12', 1 UNION ALL
  SELECT 'RS13', 2 UNION ALL
  SELECT 'RS14', 3 UNION ALL
  SELECT 'RS15', 4 UNION ALL
  SELECT 'RS30', 5 UNION ALL
  SELECT 'RS50', 6 UNION ALL
  SELECT 'RS60', 7 UNION ALL
  SELECT 'RS99', 8
) v;
