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';
|
|