Skip to content

类型:报告 · 建档:2026-05-14 | 时效性文档,引用前请核对正文的数据截止日

POST /api/crs/isv/order-form/create 接口处理流程 ​

sip-mac-crs OrderFormController OrderFormServiceImpl.save()

经销商出货回传码与签收码接口 — ISV 调用,支持 4 种扫码场景的出货/退货入库

主流程 — save() 方法调用链 ​

分支一 — processDailyOutbound() 日常开单出货 ​

分支二 — processDealerOutbound() 大宗团购/BC营销出货 ​

分支三 — processStoreReturn() 大宗团购/日常退货 ​

外部依赖调用汇总 ​

关键设计要点 ​

注意

  1. 幂等控制:所有分支通过 Redis setNXEx(key, 2s) 实现同一批码 2 秒内只能提交一次
  2. 事务注解:save() 标注 @Transactional,但 MongoDB 操作不在 Spring 事务管理范围内,实际靠 Redis decr 手动回滚流水号
  3. 码加密:codeEncrypt() 通过 TagUtil.parseCode 解析码结构,提取 domain + digestCode 重新组装
  4. 唯一性 hash:将所有码排序后 hashCode 再 SHA256,拼接 scanScene 值,用于幂等 key 和签收码
  5. 退货特殊处理:退货时通过 updateReturnSignPENDING() 将待签收单中对应码标记为 PENDING,签收时再标记为 DONE