小料需求计划

This commit is contained in:
2026-06-29 13:33:13 +08:00
parent 816af5df6e
commit 15cc5c2879
5 changed files with 331 additions and 13 deletions

View File

@@ -0,0 +1,67 @@
-- 原材料需求计划补充物料ID和计划日期用于按日期+物料汇总
SET @ddl_sql = (
SELECT IFNULL(
CONCAT(
'ALTER TABLE `mes_xsl_raw_material_demand_plan` ',
GROUP_CONCAT(stmt SEPARATOR ', ')
),
'SELECT 1'
)
FROM (
SELECT
CASE
WHEN NOT EXISTS (
SELECT 1
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'mes_xsl_raw_material_demand_plan'
AND COLUMN_NAME = 'material_id'
)
THEN 'ADD COLUMN `material_id` varchar(32) DEFAULT NULL COMMENT ''物料ID(密炼物料信息ID)'' AFTER `machine_name`'
ELSE NULL
END AS stmt
UNION ALL
SELECT
CASE
WHEN NOT EXISTS (
SELECT 1
FROM information_schema.COLUMNS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'mes_xsl_raw_material_demand_plan'
AND COLUMN_NAME = 'plan_date'
)
THEN 'ADD COLUMN `plan_date` date DEFAULT NULL COMMENT ''计划日期'' AFTER `actual_weight`'
ELSE NULL
END AS stmt
UNION ALL
SELECT
CASE
WHEN NOT EXISTS (
SELECT 1
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'mes_xsl_raw_material_demand_plan'
AND INDEX_NAME = 'idx_raw_material_demand_material'
)
THEN 'ADD KEY `idx_raw_material_demand_material` (`material_id`)'
ELSE NULL
END AS stmt
UNION ALL
SELECT
CASE
WHEN NOT EXISTS (
SELECT 1
FROM information_schema.STATISTICS
WHERE TABLE_SCHEMA = DATABASE()
AND TABLE_NAME = 'mes_xsl_raw_material_demand_plan'
AND INDEX_NAME = 'idx_raw_material_demand_date'
)
THEN 'ADD KEY `idx_raw_material_demand_date` (`plan_date`)'
ELSE NULL
END AS stmt
) t
WHERE t.stmt IS NOT NULL
);
PREPARE stmt FROM @ddl_sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;