liu
2026-10-19 a2f793f0fcacdf29e39af83f8cd4b81c6329d494
fix(mes): 新增生产任务编码规则 PRO_TASK_CODE 初始化脚本

生产排产新增任务时依赖 PRO_TASK_CODE,库中缺少该规则会抛出
"编码规则不存在"。脚本补齐规则及分段(RW + yyMMdd + 4 位按天流水号),
可重复执行。

Co-Authored-By: Claude <noreply@anthropic.com>
已添加1个文件
54 ■■■■■ 文件已修改
sql/mes_pro_task_code_rule_init.sql 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/mes_pro_task_code_rule_init.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,54 @@
-- ============================================================
-- ç”Ÿäº§ä»»åŠ¡ç¼–ç è§„åˆ™ï¼ˆPRO_TASK_CODE)初始化
--
-- èƒŒæ™¯ï¼š
--   â€œç”Ÿäº§æŽ’产”页面新增生产任务时,MesProTaskServiceImpl è°ƒç”¨
--   generateAutoCode(PRO_TASK_CODE),若库中缺少该规则,
--   ä¼šæŠ›å‡ºâ€œç¼–码规则不存在”,导致排产提交失败。
--
-- è¯´æ˜Žï¼š
--   1. è„šæœ¬å¯é‡å¤æ‰§è¡Œï¼ˆå·²å­˜åœ¨åˆ™è·³è¿‡ï¼‰ã€‚
--   2. ç”Ÿæˆçš„编码格式:RW + yyMMdd + 4 ä½æµæ°´å·ï¼Œä¾‹å¦‚ RW2610190001,
--      ä¸Žåº“中既有任务编码(RW2610150062)保持一致。
--   3. åˆ†æ®µç±»åž‹ï¼š2=当前日期,3=固定字符,4=流水号;
--      å¾ªçŽ¯æ–¹å¼ï¼š3=按天;流水号按天从 1 å¼€å§‹ï¼Œæ­¥é•¿ 1。
-- ============================================================
-- 1. ç¼–码规则主表
INSERT INTO mes_md_auto_code_rule
    (code, name, description, max_length, padded, padded_char, padded_method, status, remark, creator, updater, create_time, update_time, deleted)
SELECT 'PRO_TASK_CODE', '生产任务编码', '生产排产任务自动编码', 12, b'0', '0', 1, 0, NULL, '1', '1', NOW(), NOW(), b'0'
FROM DUAL
WHERE NOT EXISTS (
    SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PRO_TASK_CODE' AND deleted = b'0'
);
-- 2. è§„则分段:固定前缀 RW
INSERT INTO mes_md_auto_code_part
    (rule_id, sort, type, length, date_format, fix_character, serial_start_no, serial_step, cycle_flag, cycle_method, remark, creator, updater, create_time, update_time, deleted)
SELECT r.id, 1, 3, 2, NULL, 'RW', NULL, NULL, NULL, NULL, '固定前缀', '1', '1', NOW(), NOW(), b'0'
FROM mes_md_auto_code_rule r
WHERE r.code = 'PRO_TASK_CODE' AND r.deleted = b'0'
  AND NOT EXISTS (
      SELECT 1 FROM mes_md_auto_code_part p WHERE p.rule_id = r.id AND p.sort = 1 AND p.deleted = b'0'
  );
-- 3. è§„则分段:日期 yyMMdd
INSERT INTO mes_md_auto_code_part
    (rule_id, sort, type, length, date_format, fix_character, serial_start_no, serial_step, cycle_flag, cycle_method, remark, creator, updater, create_time, update_time, deleted)
SELECT r.id, 2, 2, 6, 'yyMMdd', NULL, NULL, NULL, NULL, NULL, '日期', '1', '1', NOW(), NOW(), b'0'
FROM mes_md_auto_code_rule r
WHERE r.code = 'PRO_TASK_CODE' AND r.deleted = b'0'
  AND NOT EXISTS (
      SELECT 1 FROM mes_md_auto_code_part p WHERE p.rule_id = r.id AND p.sort = 2 AND p.deleted = b'0'
  );
-- 4. è§„则分段:流水号(按天循环,从 1 å¼€å§‹ï¼Œæ­¥é•¿ 1)
INSERT INTO mes_md_auto_code_part
    (rule_id, sort, type, length, date_format, fix_character, serial_start_no, serial_step, cycle_flag, cycle_method, remark, creator, updater, create_time, update_time, deleted)
SELECT r.id, 3, 4, 4, NULL, NULL, 1, 1, b'1', 3, '流水号-按天循环', '1', '1', NOW(), NOW(), b'0'
FROM mes_md_auto_code_rule r
WHERE r.code = 'PRO_TASK_CODE' AND r.deleted = b'0'
  AND NOT EXISTS (
      SELECT 1 FROM mes_md_auto_code_part p WHERE p.rule_id = r.id AND p.sort = 3 AND p.deleted = b'0'
  );