-- ============================================================================= -- 诚发五金(CFWJ)MES 编码规则 + 条码配置补全脚本 -- 日期:2026-11-03 -- 目标库:本地 CFWJ(127.0.0.1:3306)。请勿在生产库执行。 -- -- 背景: -- 1) 前端 MesAutoCodeRuleCode 里引用了 9 个规则 code,但 mes_md_auto_code_rule 里没有, -- 这些页面的「生成」按钮必报「编码规则不存在」。 -- 2) mes_wm_barcode_config 为空,autoGenerateBarcode 直接 return, -- 工具/设备/仓库等页面的条码页签永远显示「未找到对应条码数据」, -- 条码清单页手工新增也因「条码配置不存在」失败。 -- 3) 条码配置(5906)/条码清单(5911)两个页面菜单在 CFWJ 里缺失, -- 菜单树只剩孤立的查询按钮 5907/5912。 -- -- 脚本幂等:全部 INSERT ... SELECT ... WHERE NOT EXISTS,可重复执行。 -- ============================================================================= -- ----------------------------------------------------------------------------- -- 一、编号生成规则:补 9 条规则 + 规则组成 -- 组成口径沿用库内既有规则: -- 有日期段:固定字符 + yyyyMMdd + 3 位流水(按天循环) -- 无日期段:固定字符 + 3 位流水(不循环,避免每天清零撞已存在的编码) -- ----------------------------------------------------------------------------- -- 1.1 规则主表 INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'DV_CHECK_PLAN_CODE', '点检保养方案编码', '点检保养方案自动编码', 6, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'DV_CHECK_PLAN_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'PD_PROJECT_CODE', '产品设计项目编码', '产品设计项目自动编码', 15, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PD_PROJECT_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'PD_TASK_CODE', '产品设计任务编码', '产品设计任务自动编码', 15, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PD_TASK_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'PD_VERSION_CODE', '产品设计版本编码', '产品设计版本自动编码', 14, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PD_VERSION_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'PRO_CARD_CODE', '流转卡编码', '生产流转卡自动编码', 14, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PRO_CARD_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'PRO_PROCESS_CODE', '工序编码', '生产工序自动编码', 6, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PRO_PROCESS_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'QC_IQC_VENDOR_BATCH_CODE', '来料检验供应商批次编码', '来料检验单供应商批次号自动编码', 17, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'QC_IQC_VENDOR_BATCH_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'TM_TOOL_CODE', '工具编码', '工装工具自动编码', 6, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'TM_TOOL_CODE' AND deleted = b'0'); INSERT INTO mes_md_auto_code_rule (code, name, description, max_length, padded, padded_char, padded_method, status, creator) SELECT 'PRODUCTRECPT_CODE', '产品入库单编码', '产品入库单自动编码', 14, b'1', '0', 1, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_md_auto_code_rule WHERE code = 'PRODUCTRECPT_CODE' AND deleted = b'0'); -- 1.1.1 修正最大长度(脚本可重复执行:早期版本 PD_TASK_CODE 误设为 14,会把流水号末位截掉) UPDATE mes_md_auto_code_rule SET max_length = 15 WHERE code = 'PD_TASK_CODE' AND deleted = b'0' AND max_length <> 15; -- 1.2 规则组成(sort=1 固定字符 / sort=2 日期 / sort=3 流水号) -- 分段类型 type:1 输入字符 2 当前日期 3 固定字符 4 流水号 -- 循环方式 cycle_method:3 按天;padded_method:1 左补齐 -- DV_CHECK_PLAN_CODE:CP_ + 3 位流水(不循环) INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 3, 'CP_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'DV_CHECK_PLAN_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, creator) SELECT r.id, 2, 4, 3, 1, 1, b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'DV_CHECK_PLAN_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'); -- PD_PROJECT_CODE:PDP_ + yyyyMMdd + 3 位流水 INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 4, 'PDP_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_PROJECT_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, date_format, cycle_flag, creator) SELECT r.id, 2, 2, 8, 'yyyyMMdd', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_PROJECT_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, cycle_method, creator) SELECT r.id, 3, 4, 3, 1, 1, b'1', 3, '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_PROJECT_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'); -- PD_TASK_CODE:PTK_ + yyyyMMdd + 3 位流水 INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 4, 'PTK_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, date_format, cycle_flag, creator) SELECT r.id, 2, 2, 8, 'yyyyMMdd', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, cycle_method, creator) SELECT r.id, 3, 4, 3, 1, 1, b'1', 3, '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_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'); -- PD_VERSION_CODE:PV_ + yyyyMMdd + 3 位流水 INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 3, 'PV_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_VERSION_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, date_format, cycle_flag, creator) SELECT r.id, 2, 2, 8, 'yyyyMMdd', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_VERSION_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, cycle_method, creator) SELECT r.id, 3, 4, 3, 1, 1, b'1', 3, '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PD_VERSION_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'); -- PRO_CARD_CODE:PC_ + yyyyMMdd + 3 位流水 INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 3, 'PC_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRO_CARD_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, date_format, cycle_flag, creator) SELECT r.id, 2, 2, 8, 'yyyyMMdd', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRO_CARD_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, cycle_method, creator) SELECT r.id, 3, 4, 3, 1, 1, b'1', 3, '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRO_CARD_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'); -- PRO_PROCESS_CODE:OP_ + 3 位流水(不循环) INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 3, 'OP_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRO_PROCESS_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, creator) SELECT r.id, 2, 4, 3, 1, 1, b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRO_PROCESS_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'); -- QC_IQC_VENDOR_BATCH_CODE:IQCVB_ + yyyyMMdd + 3 位流水 INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 6, 'IQCVB_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'QC_IQC_VENDOR_BATCH_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, date_format, cycle_flag, creator) SELECT r.id, 2, 2, 8, 'yyyyMMdd', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'QC_IQC_VENDOR_BATCH_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, cycle_method, creator) SELECT r.id, 3, 4, 3, 1, 1, b'1', 3, '1' FROM mes_md_auto_code_rule r WHERE r.code = 'QC_IQC_VENDOR_BATCH_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'); -- TM_TOOL_CODE:TM_ + 3 位流水(不循环) INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 3, 'TM_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'TM_TOOL_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, creator) SELECT r.id, 2, 4, 3, 1, 1, b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'TM_TOOL_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'); -- PRODUCTRECPT_CODE:PR_ + yyyyMMdd + 3 位流水 INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, fix_character, cycle_flag, creator) SELECT r.id, 1, 3, 3, 'PR_', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRODUCTRECPT_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, date_format, cycle_flag, creator) SELECT r.id, 2, 2, 8, 'yyyyMMdd', b'0', '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRODUCTRECPT_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'); INSERT INTO mes_md_auto_code_part (rule_id, sort, type, length, serial_start_no, serial_step, cycle_flag, cycle_method, creator) SELECT r.id, 3, 4, 3, 1, 1, b'1', 3, '1' FROM mes_md_auto_code_rule r WHERE r.code = 'PRODUCTRECPT_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'); -- ----------------------------------------------------------------------------- -- 二、条码配置:18 个业务类型全覆盖 -- 条码格式 format:1 二维码;状态 status:0 启用;auto_generate_flag:1 自动生成 -- 内容格式只支持 {BUSINESSCODE} 占位符(后端仅替换这一个) -- ----------------------------------------------------------------------------- INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 102, 'WH-{BUSINESSCODE}', 'WH-WH_001', b'1', 0, '仓库条码:内容 = WH- + 仓库编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 102 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 103, 'LC-{BUSINESSCODE}', 'LC-LC_001', b'1', 0, '库区条码:内容 = LC- + 库区编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 103 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 104, 'AR-{BUSINESSCODE}', 'AR-AR_001', b'1', 0, '库位条码:内容 = AR- + 库位编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 104 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 105, 'PK-{BUSINESSCODE}', 'PK-PK_20261103001', b'1', 0, '装箱单条码:内容 = PK- + 装箱单编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 105 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 106, 'ST-{BUSINESSCODE}', 'ST-ST_001', b'1', 0, '库存条码:内容 = ST- + 库存编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 106 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 107, 'BT-{BUSINESSCODE}', 'BT-BT_20261103001', b'1', 0, '批次条码:内容 = BT- + 批次编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 107 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 109, 'SN-{BUSINESSCODE}', 'SN-SN_202611030001', b'1', 0, 'SN 条码:内容 = SN- + SN 码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 109 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 300, 'PC-{BUSINESSCODE}', 'PC-PC_20261103001', b'1', 0, '流转卡条码:内容 = PC- + 流转卡编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 300 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 301, 'WO-{BUSINESSCODE}', 'WO-WO_20261103001', b'1', 0, '工单条码:内容 = WO- + 工单编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 301 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 302, 'TF-{BUSINESSCODE}', 'TF-TF_20261103001', b'1', 0, '流转单条码:内容 = TF- + 流转单编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 302 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 400, 'EQ-{BUSINESSCODE}', 'EQ-MC_20261103001', b'1', 0, '设备条码:内容 = EQ- + 设备编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 400 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 500, 'TM-{BUSINESSCODE}', 'TM-TM_001', b'1', 0, '工具条码:内容 = TM- + 工具编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 500 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 600, 'MAT-{BUSINESSCODE}', 'MAT-ITEM_20261103001', b'1', 0, '物料条码:内容 = MAT- + 物料编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 600 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 601, 'VND-{BUSINESSCODE}', 'VND-VND_20261103001', b'1', 0, '供应商条码:内容 = VND- + 供应商编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 601 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 602, 'WS-{BUSINESSCODE}', 'WS-WS_001', b'1', 0, '工作站条码:内容 = WS- + 工作站编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 602 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 603, 'WP-{BUSINESSCODE}', 'WP-WP_001', b'1', 0, '车间条码:内容 = WP- + 车间编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 603 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 604, 'USR-{BUSINESSCODE}', 'USR-EMP001', b'1', 0, '人员条码:内容 = USR- + 员工工号', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 604 AND deleted = b'0'); INSERT INTO mes_wm_barcode_config (format, biz_type, content_format, content_example, auto_generate_flag, status, remark, creator) SELECT 1, 605, 'CLT-{BUSINESSCODE}', 'CLT-CLT_20261103001', b'1', 0, '客户条码:内容 = CLT- + 客户编码', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM mes_wm_barcode_config WHERE biz_type = 605 AND deleted = b'0'); -- ----------------------------------------------------------------------------- -- 三、菜单:补「条码配置」「条码清单」两个页面及其按钮(挂到 仓库管理 1075579) -- 5907/5912 两个查询按钮已存在但父级缺失,本段补齐父级 5906/5911。 -- ----------------------------------------------------------------------------- INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator) SELECT 5906, '条码配置', '', 2, 8, 1075579, 'barcode/config', 'fa:barcode', 'wls/barcode/config/index', 'MesWmBarcodeConfig', 0, b'1', b'1', b'1', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5906); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, path, icon, component, component_name, status, visible, keep_alive, always_show, creator) SELECT 5911, '条码清单', '', 2, 9, 1075579, 'barcode', 'fa:qrcode', 'wls/barcode/index', 'MesWmBarcode', 0, b'1', b'1', b'1', '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5911); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, status, creator) SELECT 5908, '条码配置创建', 'mes:wm-barcode-config:create', 3, 2, 5906, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5908); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, status, creator) SELECT 5909, '条码配置更新', 'mes:wm-barcode-config:update', 3, 3, 5906, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5909); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, status, creator) SELECT 5910, '条码配置删除', 'mes:wm-barcode-config:delete', 3, 4, 5906, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5910); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, status, creator) SELECT 5913, '条码清单创建', 'mes:wm-barcode:create', 3, 2, 5911, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5913); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, status, creator) SELECT 5914, '条码清单更新', 'mes:wm-barcode:update', 3, 3, 5911, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5914); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, status, creator) SELECT 5915, '条码清单删除', 'mes:wm-barcode:delete', 3, 4, 5911, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5915); INSERT INTO system_menu (id, name, permission, type, sort, parent_id, status, creator) SELECT 5916, '条码清单导出', 'mes:wm-barcode:export', 3, 5, 5911, 0, '1' FROM DUAL WHERE NOT EXISTS (SELECT 1 FROM system_menu WHERE id = 5916); -- 角色授权:所有有效业务角色可查看;生产管理员(166)/经理(168) 可维护。 -- 菜单:5906 条码配置 / 5907 查询 / 5911 条码清单 / 5912 查询 INSERT INTO system_role_menu (role_id, menu_id, creator) SELECT r.id, m.id, '1' FROM system_role r JOIN system_menu m ON m.id IN (5906, 5907, 5911, 5912) WHERE r.id IN (163, 164, 165, 166, 167, 168) AND r.deleted = b'0' AND NOT EXISTS (SELECT 1 FROM system_role_menu rm WHERE rm.role_id = r.id AND rm.menu_id = m.id AND rm.deleted = b'0'); -- 菜单:5908/5909/5910 配置增改删;5913/5914/5915/5916 清单增改删导出 INSERT INTO system_role_menu (role_id, menu_id, creator) SELECT r.id, m.id, '1' FROM system_role r JOIN system_menu m ON m.id IN (5908, 5909, 5910, 5913, 5914, 5915, 5916) WHERE r.id IN (166, 168) AND r.deleted = b'0' AND NOT EXISTS (SELECT 1 FROM system_role_menu rm WHERE rm.role_id = r.id AND rm.menu_id = m.id AND rm.deleted = b'0'); -- ============================================================================= -- 校验(执行后可手工核对,不属于变更内容) -- SELECT code,name FROM mes_md_auto_code_rule WHERE code IN ('DV_CHECK_PLAN_CODE','PD_PROJECT_CODE', -- 'PD_TASK_CODE','PD_VERSION_CODE','PRO_CARD_CODE','PRO_PROCESS_CODE','QC_IQC_VENDOR_BATCH_CODE', -- 'TM_TOOL_CODE','PRODUCTRECPT_CODE'); -- 期望 9 条 -- SELECT r.code, COUNT(p.id) FROM mes_md_auto_code_rule r JOIN mes_md_auto_code_part p ON p.rule_id = r.id -- WHERE r.code = 'PRO_PROCESS_CODE' GROUP BY r.code; -- 期望 2 段,其余 2 段或 3 段 -- SELECT biz_type, content_format FROM mes_wm_barcode_config ORDER BY biz_type; -- 期望 18 条 -- =============================================================================