fix: 合并多件档口入库码回写 (#240)

This commit is contained in:
chengma
2026-08-15 14:27:31 +08:00
parent 5d72141f2f
commit 8e500606c5
10 changed files with 204 additions and 31 deletions
+6 -3
View File
@@ -1027,10 +1027,13 @@ CREATE UNIQUE INDEX idx_client_assignment_current
档口入库码使用一张业务表完成导入、匹配、回写和异常恢复。Excel 只是导入载体,系统
不保存原文件、文件哈希,不再拆批次表或尝试记录表。
- 业务键为 `(business_date, order_number, stall, spec_key)`;同一业务日期的
`inner_code` 另设唯一约束,防止一张标签被分配给两个商品。
- 业务键为 `(business_date, order_number, stall, spec_key)`。一个顺运宝商品明细数量大于 1
时,Excel 按件生成的不同入库码按源行顺序使用英文逗号连接,作为该业务记录唯一的
`inner_code` 目标值;单个码不得包含逗号,聚合值不得超过 128 个字符。
- 同一业务日期的聚合 `inner_code` 另设唯一约束;导入事务还会拆分并核对同日现有聚合值,
防止其中任一单件码被分配给另一个业务键。
- `spec_raw` 永远保留 Excel 原文,`spec_key` 只用于确定性匹配;
`source_duplicate_count > 1` 表示同一文件存在重复业务组,匹配时整组跳过。
`source_duplicate_count` 保存合并前的 Excel 源行数,只用于展示和审计,不阻止确定性匹配。
- `stock_id/detail_id` 和 `syb_*`、`purchase_*`、`remote_inner_code` 保存最近一次远端
规划快照,不替代 `syb_orders`,也不修改采购数据。
- 状态固定为 `pending/ready/applying/updated/already_filled/skipped/failed/needs_check`。