gaoluyang
13 小时以前 e40a608ef9bf51db294d8eefada6a8e2e80cebca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
-- 补齐「生产流转卡」自动编码规则 PRO_CARD_CODE | 目标库 mom-hm | 2026-10-15
-- 现状:前端流转卡页「生成」按钮调用 /mes/md/autocode/generate?ruleCode=PRO_CARD_CODE,
--       但 mes_md_auto_code_rule 中缺少该规则 -> 报 AUTO_CODE_RULE_NOT_EXISTS。
-- 规则组成沿用兄弟规则(PRO_WORK_ORDER_CODE 等)口径:3位固定前缀 + 8位日期 + 3位流水号 = 14 位。
-- 卡号前缀取 PC_(与库中已有卡号 PC_20260901001 一致)。
-- 幂等:先删同 code 的规则与分段,再插入。回滚:见文件末尾注释。
 
START TRANSACTION;
 
DELETE p FROM mes_md_auto_code_part p
  JOIN mes_md_auto_code_rule r ON p.rule_id = r.id
  WHERE r.code = 'PRO_CARD_CODE';
DELETE FROM mes_md_auto_code_rule WHERE code = 'PRO_CARD_CODE';
 
SET @rid = (SELECT IFNULL(MAX(id), 0) + 1 FROM mes_md_auto_code_rule);
SET @pid = (SELECT IFNULL(MAX(id), 0) + 1 FROM mes_md_auto_code_part);
 
INSERT INTO mes_md_auto_code_rule
  (id, code, name, description, max_length, padded, padded_char, padded_method, status, remark,
   creator, create_time, updater, update_time, deleted)
VALUES
  (@rid, 'PRO_CARD_CODE', '生产流转卡编码', '生产流转卡自动编码', 14, b'0', '0', 1, 0, NULL,
   '1', NOW(), '1', NOW(), b'0');
 
INSERT INTO mes_md_auto_code_part
  (id, rule_id, sort, type, length, date_format, fix_character, serial_start_no, serial_step, cycle_flag, cycle_method, remark,
   creator, create_time, updater, update_time, deleted)
VALUES
  (@pid,     @rid, 1, 3, 3, NULL,       'PC_',  NULL, NULL, b'0', NULL, NULL, '1', NOW(), '1', NOW(), b'0'),
  (@pid + 1, @rid, 2, 2, 8, 'yyyyMMdd', NULL,   NULL, NULL, b'0', NULL, NULL, '1', NOW(), '1', NOW(), b'0'),
  (@pid + 2, @rid, 3, 4, 3, NULL,       NULL,   1,    1,    b'0', 3,    NULL, '1', NOW(), '1', NOW(), b'0');
 
ROLLBACK;
 
-- 回滚:
-- DELETE p FROM mes_md_auto_code_part p JOIN mes_md_auto_code_rule r ON p.rule_id = r.id WHERE r.code = 'PRO_CARD_CODE';
-- DELETE FROM mes_md_auto_code_rule WHERE code = 'PRO_CARD_CODE';