-- ===================================================== -- 计划类型字段修改 v1.6.038 -- 作者: 周启威 -- 日期: 2026-02-05 -- 说明: 修改计划类型字段的标签和选项值 -- 来源类型 → 计划类型 -- 销售计划 → 库存生产计划(MTS) -- 生产订单 → 订单生产计划(MTO) -- ===================================================== -- ----------------------------------------------------- -- 1. 更新字段注释 -- ----------------------------------------------------- -- 更新pro_plan表的plan_source_type字段注释 ALTER TABLE `pro_plan` MODIFY COLUMN `plan_source_type` varchar(50) DEFAULT NULL COMMENT '计划类型:MTS=库存生产计划(Make to Stock), MTO=订单生产计划(Make to Order)'; -- ----------------------------------------------------- -- 2. 更新字典类型 -- ----------------------------------------------------- -- 检查并更新字典类型名称 UPDATE sys_dict_type SET dict_name = '计划类型', remark = '生产计划类型列表:MTS=库存生产计划, MTO=订单生产计划' WHERE dict_type = 'pro_plan_source_type'; -- 如果字典类型不存在,则创建 INSERT INTO sys_dict_type (dict_name, dict_type, status, create_by, create_time, remark) SELECT '计划类型', 'pro_plan_source_type', '0', 'admin', NOW(), '生产计划类型列表:MTS=库存生产计划, MTO=订单生产计划' WHERE NOT EXISTS ( SELECT 1 FROM sys_dict_type WHERE dict_type = 'pro_plan_source_type' ); -- ----------------------------------------------------- -- 3. 更新字典数据 -- ----------------------------------------------------- -- 删除旧的字典数据(如果存在) DELETE FROM sys_dict_data WHERE dict_type = 'pro_plan_source_type' AND dict_value IN ('order', 'plan'); -- 插入新的字典数据:MTS=库存生产计划(原来的销售计划) INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) SELECT 1, '库存生产计划', 'MTS', 'pro_plan_source_type', '', 'success', 'Y', '0', 'admin', NOW(), 'Make to Stock - 根据库存需求生成的生产计划(原销售计划)' WHERE NOT EXISTS ( SELECT 1 FROM sys_dict_data WHERE dict_type = 'pro_plan_source_type' AND dict_value = 'MTS' ); -- 插入新的字典数据:MTO=订单生产计划(原来的生产订单) INSERT INTO sys_dict_data (dict_sort, dict_label, dict_value, dict_type, css_class, list_class, is_default, status, create_by, create_time, remark) SELECT 2, '订单生产计划', 'MTO', 'pro_plan_source_type', '', 'primary', 'N', '0', 'admin', NOW(), 'Make to Order - 根据销售订单生成的生产计划(原生产订单)' WHERE NOT EXISTS ( SELECT 1 FROM sys_dict_data WHERE dict_type = 'pro_plan_source_type' AND dict_value = 'MTO' ); -- ----------------------------------------------------- -- 4. 数据迁移(可选) -- ----------------------------------------------------- -- 如果需要迁移旧数据,取消下面的注释 -- 将旧的 'plan' 值更新为 'MTS'(销售计划 → 库存生产计划) UPDATE pro_plan SET plan_source_type = 'MTS' WHERE plan_source_type = 'plan'; -- 将旧的 'order' 值更新为 'MTO'(生产订单 → 订单生产计划) UPDATE pro_plan SET plan_source_type = 'MTO' WHERE plan_source_type = 'order'; -- ----------------------------------------------------- -- 5. 验证 -- ----------------------------------------------------- -- 查看字典类型 SELECT dict_name, dict_type, remark FROM sys_dict_type WHERE dict_type = 'pro_plan_source_type'; -- 查看字典数据 SELECT dict_value, dict_label, dict_sort, status, remark FROM sys_dict_data WHERE dict_type = 'pro_plan_source_type' ORDER BY dict_sort; -- 查看字段注释 SELECT column_name, column_type, column_comment FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'pro_plan' AND column_name = 'plan_source_type'; -- 查看现有数据分布 SELECT plan_source_type, COUNT(*) as count, CASE plan_source_type WHEN 'plan' THEN '旧值:销售计划(需迁移为MTS)' WHEN 'order' THEN '旧值:生产订单(需迁移为MTO)' WHEN 'MTS' THEN '新值:库存生产计划' WHEN 'MTO' THEN '新值:订单生产计划' ELSE '未知值' END as description FROM pro_plan GROUP BY plan_source_type; -- 修改生产计划表的plan_source_id字段,支持多个ID(逗号分隔) -- 从 bigint 改为 varchar,以支持多个订单ID ALTER TABLE `pro_plan` MODIFY COLUMN `plan_source_id` varchar(255) DEFAULT NULL COMMENT '来源ID(支持多个,逗号分隔)'; -- ----------------------------------------------------- -- 说明 -- ----------------------------------------------------- -- 修改内容: -- 1. 字段标签:来源类型 → 计划类型 -- 2. 选项值和标签: -- - MTS (Make to Stock) = 库存生产计划(原来的 plan=销售计划) -- - MTO (Make to Order) = 订单生产计划(原来的 order=生产订单) -- -- 注意: -- - 旧数据不会自动迁移,如需迁移请取消第4部分的注释 -- - 新创建的计划将使用新的字典值(MTS/MTO) -- - 执行后需要重启应用以刷新字典缓存