127 lines
5.2 KiB
SQL
127 lines
5.2 KiB
SQL
-- =====================================================
|
||
-- 计划类型字段修改 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)
|
||
-- - 执行后需要重启应用以刷新字典缓存
|