整合发货补漏与导出口径修复,保留主线同步保护 #282

Merged
WuYongJie merged 4 commits from fix/WuYongJie-shipping-release-oct07 into main 2026-10-07 13:52:19 +08:00
Owner

变更

  • 在最新 main 上整合发货数据分支 0e0ea619、f06380bc;保留主线批量查询、重连、按包裹事务替换和历史运费保护。
  • 修正线上发货标签处理,补齐销售出库与采购退货出库,区分共用快递单号的交易单。
  • 导出明细与合并导出分别使用部件值和组合件整行值;新增 5 个可空镜像字段。
  • 换单仅允许唯一的新旧包裹配对,不按排序猜测;共用快递单号本身不作为虚拟订单证据。
  • 新兜底路径正确刷新事务缓冲,跳过运费模式不请求运费明细。

验证

  • ShippingReplicaSynchronizerTest:33 tests / 199 assertions 通过。
  • ShippingDataPageTest:5 tests / 41 assertions 通过。
  • MariaDB 11.4:2000 包裹 / 4000 明细的首页、翻页、筛选和两种导出通过;数量一致、运费不重复、两种体积口径分别验证。
  • 生产只读字段探测通过;完整 diff 自审和 git diff --check 通过。

数据与发布

涉及运费展示与同步规则、业务镜像字段;不改变权限,不写上游,不修改原始财务数据。
仅新增共享镜像可空字段迁移;发布前已备份受影响镜像及同步状态。镜像回滚可保留新增可空字段。
历史数据校准须按生产互斥锁分批执行,并保留未完成状态,不能用上线替代回补完成。

## 变更 - 在最新 main 上整合发货数据分支 0e0ea619、f06380bc;保留主线批量查询、重连、按包裹事务替换和历史运费保护。 - 修正线上发货标签处理,补齐销售出库与采购退货出库,区分共用快递单号的交易单。 - 导出明细与合并导出分别使用部件值和组合件整行值;新增 5 个可空镜像字段。 - 换单仅允许唯一的新旧包裹配对,不按排序猜测;共用快递单号本身不作为虚拟订单证据。 - 新兜底路径正确刷新事务缓冲,跳过运费模式不请求运费明细。 ## 验证 - ShippingReplicaSynchronizerTest:33 tests / 199 assertions 通过。 - ShippingDataPageTest:5 tests / 41 assertions 通过。 - MariaDB 11.4:2000 包裹 / 4000 明细的首页、翻页、筛选和两种导出通过;数量一致、运费不重复、两种体积口径分别验证。 - 生产只读字段探测通过;完整 diff 自审和 git diff --check 通过。 ## 数据与发布 涉及运费展示与同步规则、业务镜像字段;不改变权限,不写上游,不修改原始财务数据。 仅新增共享镜像可空字段迁移;发布前已备份受影响镜像及同步状态。镜像回滚可保留新增可空字段。 历史数据校准须按生产互斥锁分批执行,并保留未完成状态,不能用上线替代回补完成。
WuYongJie added 4 commits 2026-10-07 13:52:03 +08:00
对照工作平台 9.1-9.16 导出逐单比对,漏拉(带快递单号) 2384 -> 95,多拉 45 -> 46。

- excludedByLabel:原先凡含"线上发货"一律排除,把京东云仓/京仓(CLPS/ECLP)
  真实发货也误排了。改为只排除"线上发货且非云仓/京仓"(刷单/批发/纯售后)。
  实测 2112 个线上发货出库单:误排 2、误收 0。
- 新增 syncOutbound 兜底 pass:按出库单 io_date 窗口(按主键 Id 分段)扫描,
  把 express/autoship 都未处理的包裹按发货数据视图补吐(工厂代发仓/自有仓
  出库单无订单行,或同订单其它包裹在发货明细而本包裹不在)。
  防重复按 io_id + 快递单号(去@),express/autoship 处理过的(含按标签排除的)
  都登记跳过;同样套用标签规则,跳过取消/删除、无单号、无商品。
- 出库单表头缺失交易单号/省市区/店铺/快递名称时,从发货数据视图兜底。
  新补 652 单:交易单号/省 99.4%,条码/仓库 99.8%,平台/供应商/体积 100%。

已知未收:314 个"简尚-自动发货仓"信誉订单虚拟条码(X00006),只存在于视图,
无快递单号/运费/金额,源数据无发货时间。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhRy6EiUwf
按工作平台 OmsDataDay 源码 + 9.1-9.16 逐单对比反推,合并/明细基础信息一致率均达 99.9% 以上。

取数范围
- 换单配对:快递明细旧单号在出库单查不到时,配同订单下未被占用的出库单新单号
- 作废重出:同单号/同订单多张出库单时优先有效单、再取最新 io_date
- 订单已取消/已拆分/已合并的快递明细不出行;订单标签含"线上发货"同样排除
- 合包/拼单:按 单号+订单号 定位出库单;同单号不同交易单号的出库单照常补出
- 发货明细无单号:出库单单号 -> 订单单号 -> 空,不再借运费表里其它包裹单号
- 自动发货仓虚拟/补差单:单号已被别的包裹输出则留空
- @ 去重只在同一交易单号、本次同步时间段内比对,剩余 @ 前缀统一去掉

字段取值
- 发货时间取出库单 io_date;平台取视图 shop_site(无则映射);省市区取视图
- 合并商品名称/供应商取包裹内最后一个商品(原为 MIN);名称 & 转 ^
- 明细体积:数量×长×宽×高,代发仓非标准承运商不乘数量,指定快递为 0(config detail_volume)
- 组合件合并值单独存 m_* 列(新迁移),合并导出优先使用
- 仓库 {未指定发货仓} 导出为空;明细 0 尺寸/体积导出为空

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014nvGZkg27YMEdhry6eiuwf
WuYongJie merged commit 6c054c7081 into main 2026-10-07 13:52:19 +08:00
WuYongJie deleted branch fix/WuYongJie-shipping-release-oct07 2026-10-07 13:52:20 +08:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WuYongJie/CaiWuXiTong#282
No description provided.