Files
MES/yawei-mes/.sql/2026-03-23_00_班次班组数据补齐.sql

124 lines
4.3 KiB
MySQL
Raw Permalink Normal View History

2026-04-02 10:38:23 +08:00
-- ============================================================
-- 报工单班次和班组数据补齐脚本
-- 版本v2.0.014 日期2026-03-23 作者Claude
-- 问题:老版数据存储的是 dict_value新版前端需要 dict_label
-- ============================================================
-- ============================================================
-- 1. 查看当前字典配置
-- ============================================================
-- 班次字典
SELECT '=== 班次字典 ===' AS info;
SELECT dict_label, dict_value, remark
FROM sys_dict_data
WHERE dict_type = 'sys_shift_type'
ORDER BY dict_sort;
-- 班组字典
SELECT '=== 班组字典 ===' AS info;
SELECT dict_label, dict_value, remark
FROM sys_dict_data
WHERE dict_type = 'production_team'
ORDER BY dict_sort;
-- ============================================================
-- 2. 查看当前报工单中的原始数据分布
-- ============================================================
-- 班次分布
SELECT '=== 班次数据分布 ===' AS info;
SELECT shift_name, COUNT(*) as count
FROM pro_report
WHERE shift_name IS NOT NULL AND shift_name != ''
GROUP BY shift_name
ORDER BY shift_name;
-- 班组分布
SELECT '=== 班组数据分布 ===' AS info;
SELECT team_name, COUNT(*) as count
FROM pro_report
WHERE team_name IS NOT NULL AND team_name != ''
GROUP BY team_name
ORDER BY team_name;
-- ============================================================
-- 3. 执行数据更新
-- ============================================================
-- ================== 班次更新 ==================
-- 早班MORNING -> 早班
UPDATE pro_report
SET shift_name = '早班'
WHERE shift_name = 'MORNING';
-- 中班AFTERNOON -> 中班
UPDATE pro_report
SET shift_name = '中班'
WHERE shift_name = 'AFTERNOON';
-- 晚班NIGHT -> 晚班
UPDATE pro_report
SET shift_name = '晚班'
WHERE shift_name = 'NIGHT';
-- 如果使用的是 A/B/C 值(根据字典配置调整)
-- UPDATE pro_report SET shift_name = '早班' WHERE shift_name = 'A';
-- UPDATE pro_report SET shift_name = '中班' WHERE shift_name = 'B';
-- UPDATE pro_report SET shift_name = '晚班' WHERE shift_name = 'C';
-- ================== 班组更新 ==================
-- 甲班GROUP_A -> 甲班
UPDATE pro_report
SET team_name = '甲班'
WHERE team_name = 'GROUP_A';
-- 乙班GROUP_B -> 乙班
UPDATE pro_report
SET team_name = '乙班'
WHERE team_name = 'GROUP_B';
-- 丙班GROUP_C -> 丙班
UPDATE pro_report
SET team_name = '丙班'
WHERE team_name = 'GROUP_C';
-- 丁班(如有)
-- UPDATE pro_report SET team_name = '丁班' WHERE team_name = 'GROUP_D';
-- ============================================================
-- 4. 验证更新结果
-- ============================================================
SELECT '=== 更新后班次分布 ===' AS info;
SELECT shift_name, COUNT(*) as count
FROM pro_report
WHERE shift_name IS NOT NULL AND shift_name != ''
GROUP BY shift_name
ORDER BY shift_name;
SELECT '=== 更新后班组分布 ===' AS info;
SELECT team_name, COUNT(*) as count
FROM pro_report
WHERE team_name IS NOT NULL AND team_name != ''
GROUP BY team_name
ORDER BY team_name;
-- ============================================================
-- 5. 影响行数统计(执行前可预估)
-- ============================================================
SELECT '=== 影响行数预估 ===' AS info;
SELECT
(SELECT COUNT(*) FROM pro_report WHERE shift_name = 'MORNING') AS '早班待更新',
(SELECT COUNT(*) FROM pro_report WHERE shift_name = 'AFTERNOON') AS '中班待更新',
(SELECT COUNT(*) FROM pro_report WHERE shift_name = 'NIGHT') AS '晚班待更新',
(SELECT COUNT(*) FROM pro_report WHERE team_name = 'GROUP_A') AS '甲班待更新',
(SELECT COUNT(*) FROM pro_report WHERE team_name = 'GROUP_B') AS '乙班待更新',
(SELECT COUNT(*) FROM pro_report WHERE team_name = 'GROUP_C') AS '丙班待更新';
-- ============================================================
-- 执行说明
-- ============================================================
-- 1. 请在测试环境先执行此脚本
-- 2. 验证数据无误后再在生产环境执行
-- 3. 执行前建议备份数据库
-- 4. 如果你的字典值与脚本中不同,请根据实际情况调整 UPDATE 语句
-- ============================================================