gaoluyang
12 小时以前 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
38
39
40
41
42
43
44
45
46
47
48
{
  "biz": "补 PRO_CARD_CODE 自动编码规则",
  "target": "36.213.150.237:10000/mom-hm",
  "executedAt": "2026-10-15",
  "sql": "add-card-code-rule.sql",
  "before": {
    "ruleCount": 52,
    "partCount": 145,
    "cardRuleCount": 0
  },
  "after": {
    "ruleCount": 53,
    "partCount": 148,
    "cardRuleCount": 1
  },
  "inserted": {
    "rule": {
      "id": 71,
      "code": "PRO_CARD_CODE",
      "name": "生产流转卡编码",
      "maxLength": 14,
      "padded": 1,
      "paddedChar": "0",
      "paddedMethod": 1,
      "status": 0
    },
    "parts": [
      { "id": 478, "sort": 1, "type": 3, "length": 3, "fixCharacter": "PC_" },
      { "id": 479, "sort": 2, "type": 2, "length": 8, "dateFormat": "yyyyMMdd" },
      { "id": 480, "sort": 3, "type": 4, "length": 3, "serialStartNo": 1, "serialStep": 1, "cycleFlag": 1, "cycleMethod": 3 }
    ]
  },
  "sampleCode": "PC_20261015001",
  "fixes": {
    "sql": "fix-card-rule-cycleflag.sql",
    "appliedAt": "2026-10-15",
    "why": "首版插入时流水段 cycle_flag 误写为 0、规则 padded 误写为 0,与兄弟规则 PRO_WORK_ORDER_CODE/PRO_FEEDBACK_CODE(cycle_flag=1、padded=1) 不一致。",
    "impact": "cycle_flag=0 会导致流水不按天循环(Redis key 不含日期且永不过期),跨天不重置为 001;padded 本例长度恰为 14=max_length,功能上等价,仅口径对齐。",
    "after": "流水段(480) cycle_flag=1、cycle_method=3;固定字符段/日期段 cycle_flag=NULL;规则 padded=1。"
  },
  "note": "结构与兄弟规则 PRO_WORK_ORDER_CODE/PRO_FEEDBACK_CODE 完全一致,仅前缀改为 PC_(与库中已有卡号 PC_20260901001 一致)。已确认库中无 PC_20261015* 编号,新生成不会与历史补录卡号冲突。",
  "configExport": {
    "file": "docs/sql/config_export_all_20261015.sql",
    "action": "本规则(配置数据)已按既有增量段格式补录:① 头部登记增量说明;② ④ 段后追加 PRO_CARD_CODE 规则(id=71)+分段(478-480) 的 INSERT,取值 padded=0x01、流水段 cycle_flag=0x01 与兄弟规则一致。"
  },
  "obs": "远端 mom-hm 复核(2026-10-15):编码规则共 54 条 = 基线 52 + PRO_CARD_CODE(71) + QC_IQC_VENDOR_BATCH_CODE(72),与导出文件增量段完全对应;零时长生产任务 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';"
}