2026-10-21 07:10:19 +08:00
|
|
|
# 业务单据编号契约
|
|
|
|
|
|
|
|
|
|
## 格式与分配
|
|
|
|
|
|
|
|
|
|
纳入本契约的新建业务单据采用 `前缀 + yyyyMMdd + 四位流水`,无分隔符。前缀为 2~4 位大写英文字母,总长度为 14~16 位,例如 `FL202610200001`。
|
|
|
|
|
|
|
|
|
|
- 业务日期统一按 `Asia/Shanghai` 计算;每个前缀每天独立分配 `0001` 至 `9999`。
|
|
|
|
|
- 同一前缀不按客户或仓库分段;服务内所有创建入口共用同一个序列。前缀按下表归属,禁止在不同服务重复分配同一前缀。
|
|
|
|
|
- 单号由服务端生成并保持不变。编辑、审核、作废、重复提交不换号;幂等重放返回原业务记录及原号,不重新取号。
|
|
|
|
|
- 序列在所属服务数据库内以原子更新和独立短事务分配;外层业务回滚允许断号,已分配号不回收。不以最大业务编号加一、时间戳、随机串、实体 ID 或其截断值生成。
|
|
|
|
|
- 单日四位流水用尽时明确失败,不改为五位、不循环或随机回退。日期在取号前确定,不能在格式化时重新读取日期。
|
|
|
|
|
- 本契约不授权对已有测试数据改号、回填、重置或执行 SQL;数据库与部署操作须独立授权。
|
|
|
|
|
|
|
|
|
|
## 前缀登记
|
|
|
|
|
|
|
|
|
|
| 服务 | 前缀与单据 |
|
|
|
|
|
|---|---|
|
|
|
|
|
| Order | `FL` 头程主订单 |
|
|
|
|
|
| Warehouse | `ZGRK` 国内整柜入库、`ZGCK` 国内整柜出库 |
|
|
|
|
|
| Firstleg | `OB` 订舱、`TA` 国内拖车派车、`LP` 预装/正式装柜计划、`DECL` 报关申报批次、`BR` 报关行批次、`PS` 船节点船期、`SL` 船期日历航次、`ST` 船期周模板、`CLG` 同柜组 |
|
2026-10-23 18:45:49 +08:00
|
|
|
| Lastleg 入出库 | `WC` 头程来源尾程订单、`IP` 入仓计划、`CK` 普通出库、`DFCK` 一件代发出库、`HBCK` 换标出库、`THCK` 退货出库、`PDA` 出库作业任务、`DL` 派送、`EX` 异常、`CD` 废弃 |
|
2026-10-21 07:10:19 +08:00
|
|
|
| Lastleg 库内服务 | `TB` 换标、`ZY` 转运、`TH` 退货、`THHB` 退货换标、`RR` 退货收货、`RB` 收货批次、`HX` 合箱计划、`YY` 送仓预约 |
|
|
|
|
|
| Lastleg 商业业务 | `TR` 本土卡车、`LB` 散板、`CG` 采购订单、`PR` 采购实收、`PJ` 采购交寄、`PF` 采购费用(含更正与退款费用)、`PN` 采购说明、`PX` 采购关闭、`PG` 采购更正记录 |
|
|
|
|
|
| Lastleg 车队 | `PC` 海外排车(原规则已符合)、`CT` 车次、`FB` 车队预订、`FO` 运力发布、`VR` 车辆运维记录 |
|
2026-10-21 13:22:39 +08:00
|
|
|
| Finance | `REC` 对账单、`AR` 应收结算、`AP` 应付结算、`RC` 充值申请、`AC` 账户流水、`VC` 车辆成本、`VP` 车辆付款、`PAY` 结算付款流水 |
|
|
|
|
|
|
|
|
|
|
同柜组按入仓码查询的公开摘要返回 `groupNo`;结算详情的付款流水返回 `transactionNo`,均取已生成的业务号。应收结算引用的收款凭证不生成 PAY 号,其 `transactionNo` 为空,不以内部 ID 或银行参考号替代。
|
2026-10-21 07:10:19 +08:00
|
|
|
|
|
|
|
|
同一类型的所有创建入口共用序列:例如普通卡车下单与车队商业池创建均使用 `TR`;正常车次与取货车次均使用 `CT`。预装和正式装柜清单继续使用同一个 `LP` 计划编号。
|
|
|
|
|
|
2026-10-23 18:45:49 +08:00
|
|
|
海外出库作业任务统一使用 `PDA + yyyyMMdd + 四位流水`,例如 `PDA202610230001`;一件代发、退货、转运和换标出库共用该序列,不拼接内部实体 ID。PDA 出库列表及详情以出库单号为主标识,任务号标明“任务号”作为辅助信息;扫描出库单号或任务号均可定位当前任务。入仓任务编号不在此规则范围内。
|
|
|
|
|
|
2026-10-22 11:56:50 +08:00
|
|
|
头程来源尾程订单采用 `WC + yyyyMMdd + 四位流水`,共14位,例如 `WC202610210001`,按来源柜 `sourceContainerBookingId` 复用:该来源柜首次创建尾程订单时在柜级行锁内取号,后续同柜的入仓单、不同客户或跨日交接事件复用原号;事件重放不重新取号。真实集装箱号 `containerNo` 不作为复用身份,不同来源柜即使使用相同集装箱号也不能共用尾程编号。
|
|
|
|
|
|
2026-10-21 07:10:19 +08:00
|
|
|
## 明确保留的规则
|
|
|
|
|
|
|
|
|
|
- 入仓码、拆分子订单号和子入仓码不变。子订单继续使用主订单号加拆分后缀;新主订单改号后子单自然继承主号,但不改拆分算法或重新分配独立流水。
|
|
|
|
|
- 柜次号继续使用全局连续的 `D0001`,不按日期重置,超过四位自然增长。
|
|
|
|
|
- 实物箱码、散货托盘码、退货/转运箱码及一件代发 `DP-yyMMdd-####` 托盘标签不纳入本次改号。
|
2026-10-22 11:56:50 +08:00
|
|
|
- 换标、转运、退货来源尾程订单继续沿用对应业务单号,不增加第二套业务身份。
|
2026-10-21 07:10:19 +08:00
|
|
|
- 自营采集任务号、主数据编码及未列入登记表的其他编号不在本次范围。
|
|
|
|
|
- 外部提单号、真实集装箱号、运单号、FBA 货件号、银行流水号等保留外部原号。
|
|
|
|
|
|
|
|
|
|
## 实现与验收
|
|
|
|
|
|
|
|
|
|
通用格式由 `baiyue-firstleg/common-core/.../number/DailyDocumentNumber.java` 提供;各服务通过自己的 `DocumentSequenceRepository → DocumentSequenceMapper` 访问本库编号表。海外排车继续复用原 `DispatchNumberSequence`。
|
|
|
|
|
|
|
|
|
|
验证覆盖北京时间跨日、前缀独立、并发唯一、外层回滚不复用、缓存绕过、9999 上限、业务重放及保留编号规则。数据库变更同步模块空库基线和 `deploy/sql/` 统一空库入口;本地测试不代表已执行数据库变更或已部署。
|