liu
2026-10-19 152cd504b3c6dff0cf6f98ea2111c455264d92de
fix(mes): 补充工序流转编码规则,修复生成编码报规则不存在

- 新增 PRO_CARD_CODE 编码规则初始化脚本(LZK + yyyyMMdd + 3位流水号)
- 后端编码规则枚举补充 PRO_CARD_CODE

Co-Authored-By: Claude <noreply@anthropic.com>
已添加1个文件
已修改1个文件
46 ■■■■■ 文件已修改
sql/mysql/mes_auto_code_rule_pro_card_fix.sql 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sql/mysql/mes_auto_code_rule_pro_card_fix.sql
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
-- =============================================
-- ä¿®å¤ï¼šå·¥åºæµè½¬ï¼ˆç”Ÿäº§æµè½¬å¡ï¼‰-> æµè½¬å¡ç¼–码 -> ç”Ÿæˆï¼ŒæŠ¥â€œç¼–码规则不存在”
-- åŽŸå› ï¼šmes_md_auto_code_rule ä¸­ç¼ºå°‘ code = 'PRO_CARD_CODE' çš„规则数据
-- è¯´æ˜Žï¼šæœ¬è„šæœ¬å¯é‡å¤æ‰§è¡Œï¼Œä¸ä¼šåˆ é™¤/覆盖已有规则
-- ç”Ÿæˆæ ¼å¼ï¼šLZK + yyyyMMdd + 3 ä½æµæ°´å·ï¼ˆæŒ‰å¤©å¾ªçŽ¯ï¼‰ï¼Œä¾‹å¦‚ LZK20261019001
-- =============================================
-- 1. æµè½¬å¡ç¼–码规则主表
INSERT INTO mes_md_auto_code_rule
    (code, name, description, max_length, padded, padded_char, padded_method, status, remark, creator, updater)
SELECT 'PRO_CARD_CODE', '工序流转编码', '用于生成工序流转(生产流转卡)编码', 14, b'0', NULL, NULL, 0, NULL, '1', '1'
FROM DUAL
WHERE NOT EXISTS (
    SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PRO_CARD_CODE'
);
-- 2. å›ºå®šå‰ç¼€ LZK
INSERT INTO mes_md_auto_code_part
    (rule_id, sort, type, length, fix_character, serial_start_no, serial_step, cycle_flag, remark, creator, updater)
SELECT r.id, 1, 3, 3, 'LZK', NULL, NULL, NULL, '固定前缀', '1', '1'
FROM mes_md_auto_code_rule r
WHERE r.code = 'PRO_CARD_CODE'
  AND NOT EXISTS (
      SELECT 1 FROM mes_md_auto_code_part p WHERE p.rule_id = r.id AND p.sort = 1
  );
-- 3. æ—¥æœŸ yyyyMMdd
INSERT INTO mes_md_auto_code_part
    (rule_id, sort, type, length, date_format, serial_start_no, serial_step, cycle_flag, remark, creator, updater)
SELECT r.id, 2, 2, 8, 'yyyyMMdd', NULL, NULL, NULL, '日期', '1', '1'
FROM mes_md_auto_code_rule r
WHERE r.code = 'PRO_CARD_CODE'
  AND NOT EXISTS (
      SELECT 1 FROM mes_md_auto_code_part p WHERE p.rule_id = r.id AND p.sort = 2
  );
-- 4. 3 ä½æµæ°´å·ï¼ˆæŒ‰å¤©å¾ªçŽ¯ï¼Œä»Ž 1 å¼€å§‹ï¼Œæ­¥é•¿ 1)
INSERT INTO mes_md_auto_code_part
    (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, cycle_method, remark, creator, updater)
SELECT r.id, 3, 4, 3, 1, 1, b'1', 3, '流水号-按天循环', '1', '1'
FROM mes_md_auto_code_rule r
WHERE r.code = 'PRO_CARD_CODE'
  AND NOT EXISTS (
      SELECT 1 FROM mes_md_auto_code_part p WHERE p.rule_id = r.id AND p.sort = 3
  );
yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/enums/md/autocode/MesMdAutoCodeRuleCodeEnum.java
@@ -49,6 +49,7 @@
    WM_MISC_ISSUE_CODE("WM_MISC_ISSUE_CODE", "杂项出库单编码"),
    WM_EQUIP_RECEIPT_CODE("WM_EQUIP_RECEIPT_CODE", "设备入库单编码"),
    PRO_ROUTE_CODE("PRO_ROUTE_CODE", "工艺路线编码"),
    PRO_CARD_CODE("PRO_CARD_CODE", "工序流转编码"),
    PRO_FEEDBACK_CODE("PRO_FEEDBACK_CODE", "生产报工单编码"),
    PRO_WORK_ORDER_CODE("PRO_WORK_ORDER_CODE", "生产工单编码"),
    QC_DEFECT_CODE("QC_DEFECT_CODE", "缺陷类型编码"),