From 3faf4a6a59ff8e6bb2557a350acd045e2b4dde6e Mon Sep 17 00:00:00 2001 From: zhouz <> Date: Fri, 14 Aug 2026 13:38:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3LMS=E6=97=A5=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E5=88=9D=E5=A7=8B=E5=8C=96=E8=A7=84=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/mysql/lms_daily_plan.sql | 56 +++++++++++++++++++++++++++++------- 1 file changed, 45 insertions(+), 11 deletions(-) diff --git a/sql/mysql/lms_daily_plan.sql b/sql/mysql/lms_daily_plan.sql index 9ede1be0..755a9684 100644 --- a/sql/mysql/lms_daily_plan.sql +++ b/sql/mysql/lms_daily_plan.sql @@ -9,14 +9,14 @@ CREATE TABLE IF NOT EXISTS `lms_daily_plan` ( `material_id` bigint NOT NULL COMMENT '物料ID', `material_code` varchar(64) NOT NULL COMMENT '物料编码', `material_name` varchar(128) NOT NULL COMMENT '物料名称', - `material_spec` varchar(255) DEFAULT NULL COMMENT '物料规格', - `plan_qty` decimal(18,4) NOT NULL DEFAULT 0 COMMENT '计划数量', - `append_qty` decimal(18,4) NOT NULL DEFAULT 0 COMMENT '追加数量', - `stocked_qty` decimal(18,4) NOT NULL DEFAULT 0 COMMENT '已备货数量', - `sleeved_qty` decimal(18,4) NOT NULL DEFAULT 0 COMMENT '已套管数量', - `packing_info` varchar(500) DEFAULT NULL COMMENT '包装信息', - `sort_seq` int NOT NULL DEFAULT 0 COMMENT '排序序号', - `weight` int NOT NULL DEFAULT 0 COMMENT '调度权重', + `material_spec` varchar(128) DEFAULT NULL COMMENT '物料规格', + `plan_qty` int NOT NULL DEFAULT 0 COMMENT '计划数量', + `append_qty` int NOT NULL DEFAULT 0 COMMENT '追加数量', + `stocked_qty` int NOT NULL DEFAULT 0 COMMENT '已备货数量', + `sleeved_qty` int NOT NULL DEFAULT 0 COMMENT '已套管数量', + `packing_info` text COMMENT '包装信息', + `sort_seq` int NOT NULL COMMENT '排序序号', + `weight` int NOT NULL DEFAULT 1 COMMENT '调度权重', `order_status` tinyint NOT NULL DEFAULT 0 COMMENT '订单状态:0未开始,1进行中,2已结束,3已取消', `stocking_status` tinyint NOT NULL DEFAULT 0 COMMENT '备货状态:0未开始,1进行中,2已结束,3已取消', `sleeving_status` tinyint NOT NULL DEFAULT 0 COMMENT '套管状态:0未开始,1进行中,2已结束,3已取消', @@ -26,9 +26,9 @@ CREATE TABLE IF NOT EXISTS `lms_daily_plan` ( `order_start_time` datetime DEFAULT NULL COMMENT '订单开始时间', `order_end_time` datetime DEFAULT NULL COMMENT '订单结束时间', `stocking_start_time` datetime DEFAULT NULL COMMENT '备货开始时间', - `stocking_end_time` datetime DEFAULT NULL COMMENT '备货结束时间', + `stocking_complete_time` datetime DEFAULT NULL COMMENT '备货完成时间', `sleeving_start_time` datetime DEFAULT NULL COMMENT '套管开始时间', - `sleeving_end_time` datetime DEFAULT NULL COMMENT '套管结束时间', + `sleeving_complete_time` datetime DEFAULT NULL COMMENT '套管完成时间', `version` int NOT NULL DEFAULT 0 COMMENT '乐观锁版本号', `creator` varchar(64) DEFAULT '' COMMENT '创建者', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', @@ -41,6 +41,35 @@ CREATE TABLE IF NOT EXISTS `lms_daily_plan` ( UNIQUE KEY `uk_erp_order_code_tenant` (`erp_order_code`, `tenant_id`) ) COMMENT='LMS日计划'; +-- 兼容已经执行过旧版脚本的环境,幂等迁移字段规格和完成时间字段名称。 +SET @rename_stocking_complete_time = IF( + EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'lms_daily_plan' AND column_name = 'stocking_end_time'), + 'ALTER TABLE lms_daily_plan CHANGE COLUMN stocking_end_time stocking_complete_time datetime DEFAULT NULL COMMENT ''备货完成时间''', + 'SELECT 1' +); +PREPARE rename_stocking_complete_time_stmt FROM @rename_stocking_complete_time; +EXECUTE rename_stocking_complete_time_stmt; +DEALLOCATE PREPARE rename_stocking_complete_time_stmt; + +SET @rename_sleeving_complete_time = IF( + EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = DATABASE() AND table_name = 'lms_daily_plan' AND column_name = 'sleeving_end_time'), + 'ALTER TABLE lms_daily_plan CHANGE COLUMN sleeving_end_time sleeving_complete_time datetime DEFAULT NULL COMMENT ''套管完成时间''', + 'SELECT 1' +); +PREPARE rename_sleeving_complete_time_stmt FROM @rename_sleeving_complete_time; +EXECUTE rename_sleeving_complete_time_stmt; +DEALLOCATE PREPARE rename_sleeving_complete_time_stmt; + +ALTER TABLE lms_daily_plan + MODIFY COLUMN material_spec varchar(128) DEFAULT NULL COMMENT '物料规格', + MODIFY COLUMN plan_qty int NOT NULL DEFAULT 0 COMMENT '计划数量', + MODIFY COLUMN append_qty int NOT NULL DEFAULT 0 COMMENT '追加数量', + MODIFY COLUMN stocked_qty int NOT NULL DEFAULT 0 COMMENT '已备货数量', + MODIFY COLUMN sleeved_qty int NOT NULL DEFAULT 0 COMMENT '已套管数量', + MODIFY COLUMN packing_info text COMMENT '包装信息', + MODIFY COLUMN sort_seq int NOT NULL COMMENT '排序序号', + MODIFY COLUMN weight int NOT NULL DEFAULT 1 COMMENT '调度权重'; + CREATE TABLE IF NOT EXISTS `lms_daily_plan_strategy` ( `strategy_id` bigint NOT NULL COMMENT '策略ID', `strategy_type` tinyint NOT NULL COMMENT '策略类型:1备货,2套管', @@ -113,8 +142,12 @@ FROM (SELECT 0 n, '未开始' label, 'info' color_type UNION ALL SELECT 1, '进 WHERE NOT EXISTS (SELECT 1 FROM system_dict_data d WHERE d.dict_type='lms_daily_plan_order_status' AND d.value=CONVERT(seq.n, CHAR) COLLATE utf8mb4_unicode_ci AND d.deleted=b'0'); INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) SELECT 2093000000000000031 + seq.n, seq.n + 1, seq.label, CAST(seq.n AS CHAR), 'lms_daily_plan_work_status', 0, seq.color_type, '', CONCAT('作业', seq.label), '1', NOW(), '1', NOW(), b'0' -FROM (SELECT 0 n, '未开始' label, 'info' color_type UNION ALL SELECT 1, '进行中', 'primary' UNION ALL SELECT 2, '已结束', 'success' UNION ALL SELECT 3, '已取消', 'danger') seq +FROM (SELECT 0 n, '未开始' label, 'info' color_type UNION ALL SELECT 1, '进行中', 'primary' UNION ALL SELECT 2, '已完成', 'success' UNION ALL SELECT 3, '已取消', 'danger') seq WHERE NOT EXISTS (SELECT 1 FROM system_dict_data d WHERE d.dict_type='lms_daily_plan_work_status' AND d.value=CONVERT(seq.n, CHAR) COLLATE utf8mb4_unicode_ci AND d.deleted=b'0'); +UPDATE system_dict_data +SET label = '已完成', remark = '作业已完成', updater = '1', update_time = NOW() +WHERE dict_type = 'lms_daily_plan_work_status' AND value = '2' AND deleted = b'0' + AND (label <> '已完成' OR remark <> '作业已完成'); INSERT INTO system_dict_data (id, sort, label, value, dict_type, status, color_type, css_class, remark, creator, create_time, updater, update_time, deleted) SELECT 2093000000000000041, 1, '顺序模式', '1', 'lms_daily_plan_strategy_mode', 0, 'primary', '', '按计划顺序调度', '1', NOW(), '1', NOW(), b'0' WHERE NOT EXISTS (SELECT 1 FROM system_dict_data WHERE dict_type='lms_daily_plan_strategy_mode' AND value='1' AND deleted=b'0'); @@ -130,6 +163,7 @@ SELECT 2093100000000000000 + tenant.id * 10 + strategy.strategy_type, FROM system_tenant tenant CROSS JOIN (SELECT 1 strategy_type UNION ALL SELECT 2) strategy WHERE tenant.deleted = b'0' + AND tenant.status = 0 AND NOT EXISTS ( SELECT 1 FROM lms_daily_plan_strategy existing WHERE existing.tenant_id = tenant.id AND existing.strategy_type = strategy.strategy_type