docs: initialize documentation repository

This commit is contained in:
2026-07-31 10:43:58 +08:00
commit 1ec28f7cfc
72 changed files with 48272 additions and 0 deletions
+20
View File
@@ -0,0 +1,20 @@
# 二期文档
二期以头程物流“02 到仓”为作业主线,完成预约取货、送货上门、入库测量、差异核对和指定库位闭环,并增加费用规则、应收应付、对账、线下收付款核销和单票利润的轻量财务闭环。
## 文档
- [二期开发规划:头程到仓](二期开发规划.md)
- [二期计费与财务模块规划](二期计费财务模块规划.md)
- [二期计费财务需求确认表](二期计费财务需求确认表.md)
- [二期计费财务需求确认表(Excel)](二期计费财务需求确认表.xlsx)
- [二期产品待确认事项(发产品填写)](二期产品待确认事项.md)
- [二期开发进度表](二期开发进度表.md)
- [二期开发进度表(Excel)](虫虫出海二期开发进度表.xlsx)
- [二期需求确认清单:产品与业务确认](二期需求确认清单.md)
- [二期需求确认清单(会议填写 Excel)](二期需求确认清单.xlsx)
- [规划依据:头程物流流程图](参考资料/头程物流流程图.svg)
## 当前状态
二期已经启动,采用“需求确认与开发并行”的推进方式。当前产品岗位空缺,由项目负责人会同业务、仓库、财务和技术形成临时需求基线;后续产品到岗后复核,不静默改写已开发规则。当前有 11 项仍需补齐,其中到仓作业 7 项、计费财务 4 项;其余事项按已有业务方向、原型和安全实现规则形成二期基线。具体任务状态和实际进度由开发负责人回填,当前文档不代表已承诺完成日期。
+64
View File
@@ -0,0 +1,64 @@
# 虫虫出海二期产品待确认事项
> 更新日期:2026-07-30
> 适用范围:头程物流“02 到仓”及二期计费财务
> 正式确认与状态维护以 [二期需求确认清单](二期需求确认清单.md) 的“会议确认主表”为准;本文件仅作为便于发送给产品的精简视图。
> 填写方式:产品空缺期间由项目负责人组织会议填写“临时结论”和“状态”,不需要填写确认人和确认时间。
> 生效规则:状态为“临时基线”且结论可直接转为业务规则时用于当前开发;产品到岗复核后改为“已确认”。状态为“暂缓”时必须写明二期临时处理方式。
## 一、结论摘要
- 需要产品补充确认:11 项。
- 到仓作业:7 项,分别为 P2-Q1、Q4、Q5、Q6、Q8、Q10、Q11。
- 计费财务:4 项,分别为 P2-Q13 至 P2-Q16。
- 其余 13 项已有产品方向、原型依据或可采用安全实现基线,不再重复发给产品确认。
## 二、需要产品确认的 11 项
| 编号 | 已有结论/原型情况 | 会议需要补充确认 | 当前建议 | 临时结论(会议填写) | 状态 |
|---|---|---|---|---|---|
| P2-Q1 | 已提出“以实际货物入库为准”;原型没有少货关闭流程 | 谁能关闭少货到仓单;关闭条件;原因、照片或交接凭证是否必填;是否通知客户 | 收货员登记少货,仓库主管关闭;必填原因并保留凭证;关闭后通知客户 | 待填写 | 待确认 |
| P2-Q4 | 已给出“毛重÷363”和“(长×宽×高÷6000)×箱数”;原型有 cm、kg、m³ 和材积重 | `/363` 的业务含义;各输入单位;计费重是否取毛重与材积重较大值;精度和舍入 | 长 cm、重量 kg、体积 m³;保留原始值和公式版本;最终结果统一四舍五入 | 待填写 | 待确认 |
| P2-Q5 | 已确认差异需要客户确认;原型没有拒绝和超时规则 | 是否所有差异都确认;客户拒绝或超时怎么办;确认前是否暂停上架和计费 | 数量、重量、体积、破损及归属差异均需确认;确认前暂停后续作业,拒绝后转人工处理 | 待填写 | 待确认 |
| P2-Q6 | 已确认没有独立隔离区 | 差异期间货物放置方式;谁能解除业务暂停;解除条件 | 保持当前物理位置并标记业务暂停;客户确认且仓库主管复核后解除 | 待填写 | 待确认 |
| P2-Q8 | 已确认上传称重照片和测量照片;原型没有附件规则 | 是否必传;按箱件还是按收货批次上传;数量、大小、格式和补传规则 | 每个收货批次必传称重、测量照片;支持补传但保留首次提交和补传记录 | 待填写 | 待确认 |
| P2-Q10 | 已暂缓无预报货物认领;原型没有临时处理方式 | 暂缓期间是拒收,还是允许线下登记后待认领;若允许,谁能绑定订单 | 二期系统拒绝将无预报货物直接绑定企业订单;线下处置,不进入正式库存和计费 | 待填写 | 待确认 |
| P2-Q11 | 已确认保存 12 个月;原型没有保留策略 | 从哪个时间点起算;到期删除还是归档;联系方式、照片、凭证和审计是否同期限 | 从业务单关闭日起算;联系方式匿名化,照片和凭证到期删除,审计记录按合规要求归档 | 待填写 | 待确认 |
| P2-Q13 | 原型覆盖费用、应收应付、账单、收付款和利润,但不能证明二期全部纳入 | 二期财务闭环终点 | 做到费用、应收应付、对账、线下收付款登记与核销、单票利润;不做在线支付、会计凭证和总账 | 待填写 | 待确认 |
| P2-Q14 | 原型费用项目较多,混合头程、仓储和其他阶段 | “02 到仓”首批费用项目白名单,以及每项应收/应付方向、单位、币种和税率 | 只纳入到仓实际使用项目;白名单外费用允许人工新增但必须审核 | 待填写 | 待确认 |
| P2-Q15 | 原型有费用分类和应收/应付,没有明确阶梯价、最低收费和规则优先级 | 二期需要的计费维度;是否支持阶梯价、最低收费、封顶、组合价和冲突优先级 | 至少支持客户、往来单位、仓库、服务类型和生效区间;复杂价格结构按实际需要裁剪 | 待填写 | 待确认 |
| P2-Q16 | 原型有费用日期和审核状态,没有明确到仓事件的自动计费节点 | 各类费用在哪个节点试算、生成、生效和锁定;人工费用何时生效 | 实测完成生成试算,差异确认后生效并锁定;非测量费用按已确认业务事件生成 | 待填写 | 待确认 |
## 三、P2-Q14 首批费用项目填写模板
产品确认 P2-Q14 时,至少补齐以下字段;没有实际业务的费用不要为了匹配原型而纳入二期。
| 费用编码 | 费用名称 | 业务阶段 | 应收/应付 | 往来对象 | 计费单位 | 默认币种 | 默认税率 | 自动/人工 | 触发节点 |
|---|---|---|---|---|---|---|---|---|---|
| 待填写 | 待填写 | 02 到仓 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |
## 四、无需再次发产品确认的 13 项
| 编号 | 二期采用的结论 | 依据 |
|---|---|---|
| P2-Q2 | 二期不做系统服务商调度;取货安排在线下完成,系统只记录结果和人工费用 | 产品回传结论已明确系统边界 |
| P2-Q3 | 预约在线下完成;系统记录预约日期时间、改期/取消结果及操作日志 | 产品回传方向和原型时间字段足以形成最小基线 |
| P2-Q7 | 二期不做库位容量校验;库位停用和状态合法性仍做基础校验 | 产品已明确当前没有库位容量 |
| P2-Q9 | 二期暂不接 PDA,使用后台或响应式作业页 | 产品已暂缓,且 PDA 原型属于“03 出仓” |
| P2-Q12 | 标签打印机为佳博 1324D 热敏标签打印机 | 产品已确认;纸张、连接、驱动和指令协议属于开发前实机核验 |
| P2-Q17 | 本位币 CNY;保存原币、人工业务汇率和折算金额,费用生效时锁定汇率快照 | 原型已有币种、汇率及人民币:美元汇率字段 |
| P2-Q18 | 保存未税金额、税率、税额和含税总额;金额/税额 2 位、汇率 6 位,服务端统一舍入 | 原型已有 0%/6%/9%/13% 税率及税额、含税合计 |
| P2-Q19 | 经办提交、财务审核;生效费用只能调整、红冲或作废并留痕 | 原型已有新增、客服提交和财务通过等状态;审计要求禁止直接覆盖 |
| P2-Q20 | 支持按选择和按截止时间生成账单,保存结算期间、账期和到期日 | 原型已有两种账单生成方式和结算字段 |
| P2-Q21 | 账单审核、确认、拒绝、锁定;争议调整后生成新版本 | 原型已有待审核、审核通过、审核拒绝、待确认、明细和支付历史 |
| P2-Q22 | 支持线下收付款、部分收付、余额、核销和反核销;不做预收预付、跨币种核销及银行自动认领 | 原型已有部分收款、已结清、余额、支付历史和核销入口 |
| P2-Q23 | 二期只登记发票信息和状态,不接电子税局或第三方开票平台 | 原型只有发票登记字段,没有外部开票接口 |
| P2-Q24 | 利润=已生效应收-已生效应付,利润率=利润÷收入;仅财务授权角色可见 | 原型已有收入、成本、利润、利润率和多维报表 |
## 五、确认后的处理
1. 产品空缺期间由项目负责人组织填写 11 项的“临时结论”和“状态”。
2. 产品确认后保留原始回传副本,不覆盖本文件或既有回传文件。
3. 技术审核结论是否足以转成状态、权限、计算、异常和验收规则。
4. 审核通过后同步更新二期开发规划、需求确认清单、开发进度表及 Excel 版本。
5. P2-Q13 至 P2-Q16 未形成临时基线前,计费财务只开发可逆的基础结构,不锁定闭环范围、复杂价格和自动计费节点。
+416
View File
@@ -0,0 +1,416 @@
# 虫虫出海二期开发规划:头程到仓与计费财务
> 创建日期:2026-07-28
> 状态:开发已启动,需求确认并行
> 流程依据:[头程物流流程图](参考资料/头程物流流程图.svg)中的头程物流“02 到仓”
> 前置阶段:[一期文档](../一期/README.md)
## 一、二期目标
二期承接一期“客户下单并选择平台收货仓”的结果,完成货物从待到仓到入仓、测量、差异确认和指定库位的作业闭环,并在实测数据之上完成费用生成、应收应付、对账、线下收付款核销和单票利润的最小财务闭环。
流程严格对应五个动作:
```text
预约取货 / 送货上门
↓
货物到达平台收货仓
↓
入库测量(件数、重量、体积和计费数据)
↓
申报与实测差异核对
↓
仓库作业(指定库位)
↓
计费、应收应付、对账与核销
```
二期完成标准不是“增加到仓状态”,而是每票货能够回答:怎么到仓、何时到仓、谁接收、实际收到什么、与订单差多少、差异如何处理、最终放在哪个库位、产生了哪些收入与成本、是否完成对账和收付款核销。
### 当前启动策略
- 二期已经开工,产品岗位暂时空缺;现阶段由项目负责人组织业务、仓库、财务和技术形成临时需求基线。
- 可先行开发稳定且可逆的能力:公共数据结构、权限与审计骨架、列表和详情、原始测量与附件、标签适配层、费用及账单基础数据结构。
- 依赖 P2-Q1、Q4、Q5、Q6、Q8、Q10、Q11、Q13 至 Q16 的自动流转、计算参数和最终锁定规则,在结论明确前必须配置化或保持可替换,不写死高成本业务假设。
- 后续产品到岗后复核临时基线。已进入开发的规则发生变化时,必须记录影响范围、数据迁移和验收调整,不直接覆盖历史版本。
## 二、阶段边界
### 纳入二期
- 客户预约取货和送货上门两种到仓方式。
- 平台收货仓到仓预报、预约安排、到仓签到和收货登记。
- 实收件数、重量、体积、尺寸、外包装和现场照片记录。
- 申报数据与实测数据对比、差异单、确认和调整留痕。
- 最小库位档案、上架任务、指定库位和上架完成记录。
- 箱件/托盘处理单元、标签和当前库位位置记录,为后续出仓提供可追踪输入。
- 客户端查看预约、到仓、实测、差异和上架结果。
- 管理后台进行预约调度、仓库收货、差异处理和库位分配。
- 费用项目、计费规则版本、费用试算与生效、应收应付和调整审计。
- 客户/供应商对账单、线下收付款登记、部分核销、反核销和余额查询。
- 发票状态登记、客户账单中心和单票利润查询。
- 服务端完成权限、状态、幂等、并发、审计和历史快照。
### 明确不纳入二期
- 流程图头程“03 出仓”:智能排柜、订舱、预约拖车、PDA 拣货、装柜、报关和港务信息。
- 完整 WMS:可用库存、库存成本、常规移库、盘点、冻结、拣货、复核和出库。二期只保留支撑指定库位所需的处理单元和位置记录。
- 正式 PDA 硬件扫描头或厂商 SDK 接入;二期仓库作业先由管理后台或响应式作业页完成。
- 对客询价、报价审批、报价转订单和合约报价体系。
- 在线支付、银企直连、银行流水自动认领、电子税局开票、会计凭证和总账报表;二期财务边界见 [二期计费与财务模块规划](二期计费财务模块规划.md)。
- 快递轨迹、地图调度、车队 GPS 和外部承运商接口自动同步。
- FBA/海外目的仓及尾程到港、到仓、出仓、签收流程。
## 三、参与角色与数据边界
| 角色 | 数据范围 | 主要操作 |
|---|---|---|
| 企业订单操作员 | 当前企业订单、到仓单和对客账单 | 提交预约、查看到仓结果、确认差异和查看账单 |
| 企业管理员 | 当前企业全部订单、到仓单和对客账单 | 查看、确认差异、确认/争议账单、管理企业联系人 |
| 平台客服/运营 | 授权客户和订单范围 | 审核预约、协调取货、处理异常、差异和对账争议 |
| 仓库收货员 | 被授权的平台收货仓 | 到仓签到、收货、测量、拍照和异常登记 |
| 仓库上架员 | 被授权的平台收货仓和库位 | 领取上架任务、指定库位、确认完成 |
| 计费专员 | 授权客户、仓库和业务范围 | 费用试算、人工加费、调整申请和对账准备 |
| 财务审核员 | 平台财务授权范围 | 费用审核、对账审核、收付款与核销审核 |
| 财务管理员 | 平台财务授权范围 | 费用项目、计费规则、汇率、结算参数和利润查询 |
| 平台管理员 | 平台授权范围 | 维护仓库、库位、快递公司、往来单位和权限 |
服务端必须依据登录身份确定企业、平台数据范围和仓库权限。订单 ID、企业 ID、仓库 ID 或操作员 ID 均不能由前端参数单独决定授权。
## 四、业务模块
### 1. 到仓单与到仓预报
- 规划基线采用“订单 1:N 到仓单、到仓单 1:N 收货批次、收货批次 1:N 处理单元”。一张订单可以分次取货或送货,每次独立预约形成到仓单;同一次预约允许分批实际到仓。
- 到仓单记录所属订单、平台收货仓、到仓方式、预计时间、联系人、货物摘要和备注。
- 生成客户可见的到仓单号和仓库收货识别码。
- 客户、平台代客创建和系统补录必须记录来源及操作者。
- 重复提交使用幂等键,避免网络重试产生重复预约。
- 到仓单保存计划件数/箱数、累计实收、剩余数量和是否允许继续到仓。未全部到仓时显示“部分收货”,由后续批次补齐或由授权人员填写原因后人工关闭。
- 到仓单分配到具体订单货物明细及计划数量;同一货物明细在所有有效到仓单中的累计计划量不得超过订单可到仓量,取消或关闭后按规则释放未使用分配量。
- 已人工关闭的少货到仓单不得继续登记新批次;需要补货时创建新的到仓单并关联原单。
### 2. 预约取货
- 客户选择取货地址、联系人、联系电话和期望取货时间窗。
- 带入往来单位联系人与地址,允许本次预约调整但不反向覆盖档案。
- 平台审核预约,分配快递公司或服务商、司机/联系人和预约时间。
- 支持待审核、已安排、已取货、运输中、已到仓、已取消和异常结果。
- 取货调度结果使用独立子状态维护;到仓单主状态只表达货物整体到仓进度,二者通过业务动作联动但不能相互覆盖。
- 一期快递公司和往来单位作为调度基础资料;外部轨迹和自动派单不进入二期。
- 仓库维护营业时间、停收日期、时间窗容量和人工超额确认权限;预约变更、爽约和重复时间窗冲突必须留痕。
### 3. 送货上门
- 客户选择送达仓库、预计送达时间和送货联系人。
- 可记录快递公司、快递单号或自送车辆信息。
- 仓库按到仓单号、订单号、快递单号或收货识别码检索预报。
- 无预报货物允许登记为“待认领”,但不得直接归入其他企业订单。
- 取消、过期、改仓和重复到仓必须保留处理记录。
- 到仓前改仓需取消原到仓单并新建目标仓到仓单,不直接改写已确认的仓库快照。
### 4. 到仓签到与收货
- 记录实际到仓时间、到仓方式、交接人、收货员和交接凭证。
- 登记实际包裹/箱数、包装状态、唛头、破损、受潮、缺失和多货等异常。
- 上传现场照片,照片关联到仓单和收货批次并受权限控制。
- 支持一票分批到仓;每个收货批次有独立时间、实收和异常记录。
- 到仓签到与实收提交均需幂等,防止重复扫码或重复点击。
- 每个实际箱件或托盘生成稳定处理单元编码,可打印和补打标签;补打、换标、作废和重复码处理必须保留操作者及原因。
- 二期箱件/托盘标签打印设备确定为佳博 1324D 热敏标签打印机。标签纸尺寸、连接方式、驱动和打印指令协议须在开发前通过实机核验,不依据型号名称直接假定。
- 托盘处理单元可以组合多个箱件,保存父子关系和各箱件对应的订单货物明细;拆托或重新组托必须生成新的组合版本。
- 错绑企业、订单或到仓单时不得删除收货记录。由有权限的主管发起冲正,保留原绑定、冲正原因、审批人和重新认领结果。
### 5. 入库测量
- 按收货批次或箱件记录实测数量、毛重、体积和尺寸。
- 服务端汇总订单实收件数、总重量和总体积,不接受客户端独立提交冲突合计。
- 保留测量设备/方式、操作员、时间和修订版本;修改实测数据必须填写原因。
- 测量规则使用独立版本,明确长度、重量和体积单位、体积重系数、精度及舍入方式。每条实测记录保存原始值、换算值、规则版本和复核结果,确保历史计费数据可复算。
- 二期输出体积重、计费重等结果,并作为费用试算输入;测量或计费规则版本发布后不反向改写已确认测量记录和已生效费用。
- 覆盖测量中、待复核、已完成和测量异常状态。
### 6. 调整差异核对
- 自动对比订单申报与仓库实测,形成数量、重量、体积、包装和货物归属差异。
- 差异支持待处理、待客户确认、客户已确认、平台调整完成和已关闭。
- 小于阈值的差异是否自动接受必须由产品配置,不在代码中写死。
- 客户确认后冻结本次实测版本;再次调整需创建新版本并记录原因。
- 差异未关闭时默认进入业务暂停。货物可以临时上架到隔离区,但不能标记正式上架完成,也不能进入后续出仓。
- 隔离区库位具有明确类型和暂停原因;差异关闭后执行释放并生成从隔离区到正式库位的位置变更记录。
- 客户对差异有异议时记录争议说明、证据、责任人和处理期限;超时策略必须配置,不能静默自动确认。
### 7. 指定库位与上架
- 维护最小库位档案:仓库、库区、库位编码、名称、类型、状态、容量约束和备注。库位类型至少区分正式库位、隔离区和待认领区。
- 创建上架任务,关联到仓单、收货批次、目标库位、执行人和优先级。
- 支持待分配、待上架、上架中、已完成、已取消和异常状态。
- 同一收货批次允许拆分到多个库位;每条分配记录保留数量或箱件范围。
- 上架完成时写入处理单元的当前库位位置,并保留进入、移出和历史位置。位置记录是三期拣货的输入,不等同于建设完整可用库存或库存成本台账。
- 目标库位停用、容量不足或不允许该货物类型时,服务端拒绝上架并要求重新分配。
### 8. 客户可视与通知
- 客户端订单详情增加到仓时间线:预约、取货/送货、到仓、实测、差异、上架。
- 客户只能查看本企业数据、公开照片和对客异常说明。
- 差异待确认、预约变更和到仓异常提供站内提醒。
- 短信、邮件或微信通知仅在渠道和合规方案确认后接入。
- 司机电话、客户联系人、照片和交接凭证按角色脱敏和授权下载,并明确保留期限、导出审计和到期清理策略。
### 9. 计费规则与费用台账
- 建立费用项目、应收/应付方向、计费单位、币种、税务属性和启停状态。
- 计费规则按客户、供应商/往来单位、仓库、服务类型和有效期版本化;历史费用保存输入、规则版本和计算快照。
- 实测确认、差异关闭或其他已确认业务节点触发费用草稿,重复事件不得重复计费。
- 生效费用不直接覆盖,改费、红冲、作废通过独立调整记录和审核链处理。
### 10. 应收应付与对账
- 应收关联客户,应付关联快递公司、仓库服务商或其他往来单位。
- 支持按票或按周期生成客户/供应商对账单,并维护审核、确认、争议、关闭和作废状态。
- 客户端提供账单列表、明细、确认和异议入口,不返回供应商成本、利润和内部备注。
### 11. 收付款、发票与利润
- 登记线下收款、付款、退款和调整,支持部分核销、多对多核销、反核销和凭证审计。
- 二期只登记发票申请、号码、金额、税率、日期、状态和附件,不连接外部开票平台。
- 单票利润按已生效应收减已生效应付计算;多币种使用锁定汇率折算,仅财务授权角色可见。
- 详细范围、任务和验收规则见 [二期计费与财务模块规划](二期计费财务模块规划.md)。
## 五、建议状态模型
不要把所有过程混成一个订单状态,建议使用到仓进度、差异、上架任务和异常处理四个相互关联的状态域。异常只暂停业务,不覆盖货物当前进度阶段。
### 到仓单状态
| 稳定编码 | 中文名称 | 含义 |
|---|---|---|
| `PENDING_ARRANGEMENT` | 待安排 | 到仓预报已创建,尚未完成取货或送货安排 |
| `SCHEDULED` | 已预约 | 取货或送货时间已确认 |
| `IN_TRANSIT_TO_WAREHOUSE` | 运往仓库 | 已取货或客户已发出 |
| `ARRIVED` | 已到仓 | 已完成到仓签到,等待收货测量 |
| `PARTIALLY_RECEIVED` | 部分收货 | 已确认至少一个收货批次,仍有计划货物待到仓或待人工关闭 |
| `MEASURING` | 测量中 | 正在登记和复核实收数据 |
| `RECEIVED` | 已收货 | 实收版本已确认 |
| `PUTAWAY_PENDING` | 待上架 | 实收已确认,等待正式库位分配或差异解除 |
| `PUTAWAY_COMPLETED` | 已上架 | 指定库位作业完成,二期流程结束 |
| `CANCELLED` | 已取消 | 到仓前按规则取消 |
主状态根据到仓单及其收货批次汇总。部分收货不能仅凭前端设置;服务端根据计划数量、累计实收和人工关闭标记计算可用动作。少货人工关闭只结束剩余到仓等待,不等于差异已确认;已有实收仍须完成测量、差异处理和正式上架后才能进入 `PUTAWAY_COMPLETED`。
### 取货调度子状态
`PENDING_REVIEW`、`SCHEDULED`、`PICKED_UP`、`IN_TRANSIT`、`ARRIVED`、`CANCELLED`。调度异常由异常单表达,不增加会覆盖正常进度的 `EXCEPTION` 状态。
送货上门不创建取货调度记录;到仓单从预约确认或发货动作推进主状态。取货车辆到达仓库后只能发起签到,必须由有收货权限的人员确认签到成功,才能把到仓单推进为 `ARRIVED`;签到、收货和后续处理仍以到仓单及收货批次为准。
### 差异状态
`NONE`、`PENDING_REVIEW`、`PENDING_CUSTOMER_CONFIRMATION`、`DISPUTED`、`CONFIRMED`、`ADJUSTED`、`CLOSED`。
### 上架任务状态
`PENDING_ASSIGNMENT`、`PENDING_PUTAWAY`、`IN_PROGRESS`、`COMPLETED`、`CANCELLED`。异常和暂停由独立异常单及 `businessHold` 表达。
### 异常与业务暂停
异常单状态使用 `OPEN`、`PROCESSING`、`WAITING_CUSTOMER`、`RESOLVED`、`CLOSED`。异常单记录发生阶段、类型、责任人、处理期限、证据、解决结果和恢复动作。
到仓单、收货批次或处理单元可设置 `businessHold`、暂停原因和解除条件。异常解决后恢复原进度阶段,不通过把主状态从 `EXCEPTION` 猜回原状态。
订单主状态只保留对全链路有意义的粗粒度节点,到仓、差异、上架和异常细节由对应业务对象维护。
## 六、核心数据对象
| 数据对象 | 关键内容 |
|---|---|
| 到仓单 | 订单、企业、仓库、方式、预计时间、联系人、状态、来源和版本 |
| 到仓计划分配 | 到仓单、订单货物明细、计划数量、累计实收、剩余数量、释放数量和人工关闭信息 |
| 取货预约 | 取货地址快照、时间窗、服务商、司机/联系人和调度状态 |
| 预约容量 | 仓库、营业时间、停收日期、时间窗、容量、已占用量和超额授权 |
| 收货批次 | 实际到仓时间、交接人、收货员、实收摘要和现场凭证 |
| 处理单元 | 稳定箱件/托盘编码、标签状态、所属批次、订单货物明细、数量、父子组合和当前业务暂停状态 |
| 组托版本 | 托盘、成员箱件、组合版本、生效/失效时间、操作人和拆托/重组原因 |
| 标签记录 | 处理单元、标签编码、设备型号、打印结果、生成、打印、补打、换标、作废及原因 |
| 测量规则版本 | 单位、体积重系数、精度、舍入方式、生效时间和版本状态 |
| 测量明细 | 处理单元、原始尺寸/重量、换算值、体积、体积重、计费重、规则版本、设备、操作员和复核版本 |
| 差异单 | 申报值、实测值、差异类型、阈值、责任人、确认和调整记录 |
| 异常单 | 发生阶段、类型、暂停范围、责任人、期限、证据、解决和恢复记录 |
| 库位 | 仓库、库区、稳定编码、名称、类型、容量约束、状态和数据范围 |
| 上架任务 | 收货批次、目标库位、数量/箱件范围、执行人、状态和完成时间 |
| 位置记录 | 处理单元、库位、数量/箱件范围、进入时间、移出时间和当前标记 |
| 冲正记录 | 原企业/订单/到仓单绑定、冲正原因、审批人、新绑定和完成时间 |
| 到仓时间线 | 事件、前后状态、操作者、发生时间、说明和请求关联 ID |
| 费用项目/计费规则 | 应收应付方向、单位、币种、税务属性、适用维度、计费方式、生效区间和规则版本 |
| 费用记录/调整 | 业务来源、往来方、计费输入、规则快照、原币金额、汇率、税额、状态和调整链 |
| 对账单/明细 | 对账对象、周期、费用、调整、已核销、余额、到期日、状态、版本和争议 |
| 收付款/核销 | 往来方、收付类型、金额、币种、流水、凭证、核销金额、反核销和审核记录 |
| 发票/汇率版本 | 发票方向、号码、金额、税率、日期、状态、附件,以及汇率日期、来源和锁定状态 |
所有基础资料引用都同时保存稳定 ID 和必要快照。仓库、往来单位、快递公司或库位后续改名、停用时,不改变历史到仓记录。
## 七、应用范围
### 管理后台 `apps/admin-web`
- 到仓单列表、筛选、详情和状态操作。
- 预约取货审核、仓库时间窗容量和服务商调度。
- 到仓签到、收货批次、处理单元标签、测量和照片。
- 差异处理、异常暂停、客户确认结果、调整和主管冲正。
- 库区/库位维护、隔离区、上架任务及当前货物位置查询。
- 费用项目、计费规则、费用审核与调整、应收应付、客户/供应商对账、收付款核销、发票登记和利润查询。
- 权限至少拆分为查看、预约调度、收货、标签、测量、差异处理、异常解除、冲正、库位维护、上架、规则发布、费用调整、费用审核、对账审核、收付款、核销、反核销、发票登记和利润查看。
### 企业客户端 `apps/client-web`
- 创建取货预约或送货预报。
- 查看预约安排、到仓时间线、实测结果和公开照片。
- 查看并确认差异;确认失败时保留页面输入和上下文。
- 查看部分到仓、剩余待到仓数量、业务暂停和异常处理结果。
- 查看上架完成结果,不暴露其他企业、内部库位运营信息或平台内部备注。
- 查看本企业账单、费用明细和付款状态,确认或提出异议;不暴露应付成本和内部利润。
### 服务端 `services/api`
- 最终保证身份、租户、仓库数据范围、状态转换、幂等、并发和审计。
- 管理到仓单、预约容量、收货批次、处理单元、标签、测量规则、差异、异常、库位、位置记录、上架、冲正及时间线事务边界。
- 管理计费规则版本、费用生成幂等、费用调整、应收应付、对账单版本、收付款核销、发票登记、汇率锁定和利润权限边界。
- 文件访问使用不可预测标识和授权下载,不信任客户端文件名与 MIME 类型。
- 联系方式、司机信息、照片和交接凭证执行字段脱敏、最小返回、导出审计、保留期限和到期清理。
- 为未来 PDA 或外部调度接口预留适配边界,但二期不绑定厂商 SDK。
## 八、建议里程碑
| 里程碑 | 交付目标 | 进入条件 |
|---|---|---|
| P2-M0 规则锁定 | 到仓规则、计费财务边界、费用项目、规则版本、结算、核销、汇率和权限基线确认 | 一期订单及基础资料契约稳定 |
| P2-M1 到仓预报 | 预约取货、送货上门预报及平台调度形成闭环 | 快递公司、往来单位和收货仓 API 可用 |
| P2-M2 到仓收货 | 到仓签到、分批收货、处理单元标签、异常、冲正和照片可追溯 | 文件存储和仓库权限可用 |
| P2-M3 测量差异 | 测量规则版本、可复算结果、自动对比、客户确认、隔离和调整闭环可用 | 测量口径和阈值确认 |
| P2-M4 库位上架 | 库位档案、隔离区、上架任务、处理单元当前位置和历史位置可查 | 库位编码、容量和拆分规则确认 |
| P2-M5 计费财务 | 费用生成、应收应付、客户/供应商对账、收付款核销和单票利润闭环可用 | Q13-Q16 确认,P2-M3 实测数据可用 |
| P2-M6 联调验收 | 跨端联调、迁移、安全、异常、财务勾稽、性能和发布完成 | P2-M1 至 P2-M5 验收通过 |
## 九、建议开发任务
| ID | 端 | 模块 | 交付内容 | 优先级 | 依赖 |
|---|---|---|---|---|---|
| P2-BASE-01 | 公共 | 到仓契约 | 状态、枚举、权限、事件、错误码和快照模型 | P0 | 一期订单契约 |
| P2-BASE-02 | 公共 | 数据模型 | 到仓单、计划分配、预约容量、批次、处理单元、标签、组托版本、测量规则、差异、异常、库位、位置、冲正和时间线 | P0 | P2-BASE-01 |
| P2-ADM-01 | 后台 | 到仓列表 | 查询、筛选、分页、详情、空态和异常态 | P0 | P2-BASE-01 |
| P2-ADM-02 | 后台 | 预约调度 | 审核预约、分配服务商、调整时间和取消 | P0 | P2-ADM-01 |
| P2-SCH-01 | 后台 | 预约容量 | 营业时间、停收日期、时间窗容量、冲突和人工超额授权 | P0 | P2-ADM-02 |
| P2-CLI-01 | 客户端 | 到仓预报 | 预约取货、送货上门、联系人地址带入、可用时间窗和提交 | P0 | P2-BASE-01、P2-SCH-01 |
| P2-WH-01 | 后台 | 到仓签到 | 识别到仓单、分批收货、交接和异常登记 | P0 | P2-BASE-02 |
| P2-LABEL-01 | 后台 | 处理单元标签 | 箱件/托盘编码、佳博 1324D 实机适配、打印结果、失败重试、补打、换标、作废和重复码处理 | P0 | P2-WH-01 |
| P2-REV-01 | 后台 | 收货冲正 | 错绑企业/订单/到仓单的主管审批、解绑和重新认领 | P0 | P2-WH-01 |
| P2-WH-02 | 后台 | 入库测量 | 原始测量、规则版本、换算、复核、照片和历史复算 | P0 | P2-LABEL-01 |
| P2-DIFF-01 | 公共 | 差异引擎 | 申报实测对比、阈值、差异单和阻塞规则 | P0 | P2-WH-02、P2-HOLD-01 |
| P2-ADM-03 | 后台 | 差异处理 | 复核、说明、调整、关闭和审计 | P0 | P2-DIFF-01 |
| P2-CLI-02 | 客户端 | 差异确认 | 查看实测、公开照片、确认或反馈差异 | P0 | P2-DIFF-01 |
| P2-HOLD-01 | 公共 | 异常与暂停 | 异常单、业务暂停、隔离、责任期限、解除和恢复阶段 | P0 | P2-BASE-02 |
| P2-LOC-01 | 后台 | 库位维护 | 库区、库位编码、类型、容量、状态和权限范围 | P0 | P2-BASE-02 |
| P2-PUT-01 | 后台 | 上架任务 | 创建、分配、拆分、隔离上架、异常和完成 | P0 | P2-LOC-01、P2-WH-02、P2-HOLD-01 |
| P2-POS-01 | 公共 | 位置记录 | 处理单元当前位置、进入/移出历史和库位占用校验 | P0 | P2-PUT-01 |
| P2-SEC-01 | 公共 | 隐私与保留 | 联系方式脱敏、照片授权、导出审计、保留期限和清理 | P0 | P2-WH-01 |
| P2-TIME-01 | 公共 | 时间线通知 | 对客事件、站内提醒和失败补偿记录 | P1 | 核心流程完成 |
| P2-FEE-01 | 后台 | 费用项目 | 费用项目、方向、单位、币种、税务属性和启停 | P0 | P2-BASE-01 |
| P2-RATE-01 | 后台/服务端 | 计费规则 | 规则维度、版本、生效区间、阶梯/最低价和发布审核 | P0 | P2-FEE-01、P2-WH-02 |
| P2-CALC-01 | 服务端 | 计费引擎 | 规则匹配、试算、事件触发、幂等、计算快照和复算 | P0 | P2-RATE-01 |
| P2-FEE-02 | 后台 | 费用台账 | 自动/人工费用、审核、调整、红冲、锁定和审计 | P0 | P2-CALC-01 |
| P2-ARAP-01 | 后台 | 应收应付 | 客户应收、供应商应付、查询汇总、权限和导出 | P0 | P2-FEE-02、一期往来单位 |
| P2-RECON-01 | 后台 | 对账单 | 按票/月结生成、审核、确认、争议、版本和关闭 | P0 | P2-ARAP-01 |
| P2-CLI-03 | 客户端 | 账单中心 | 对客账单列表、明细、确认、异议和付款状态 | P0 | P2-RECON-01 |
| P2-CASH-01 | 后台 | 收付款核销 | 收付款登记、凭证、审核、部分核销、反核销和余额 | P0 | P2-RECON-01 |
| P2-INV-01 | 后台 | 发票登记 | 开票/收票申请、号码、金额、税率、状态和附件 | P1 | P2-RECON-01 |
| P2-PROFIT-01 | 后台 | 单票利润 | 收入、成本、毛利、毛利率、折算和权限控制 | P1 | P2-ARAP-01、汇率版本 |
| P2-TEST-01 | 公共 | 自动化测试 | 越权、幂等、计费复算、费用调整、对账勾稽、核销、反核销、标签、差异、位置、文件和隐私测试 | P0 | 所有 P0 模块 |
| P2-REL-01 | 公共 | 发布验收 | 初始化预约日历、库区库位、测量规则、标签打印参数、迁移、联调、验收和生产发布 | P0 | P2-TEST-01 |
## 十、测试与验收重点
- 企业 A 不能读取、预约、确认企业 B 的到仓单和差异。
- 无仓库权限的员工不能收货、测量或分配库位。
- 重复预约、签到、标签生成、测量提交和上架完成不会产生重复记录。
- 取货调度、到仓主进度、差异、上架和异常状态独立维护;任一异常解除后能恢复到原业务阶段,不覆盖或倒退其他状态域。
- 一张订单多到仓单、一个到仓单多批收货的累计、剩余、部分收货和人工关闭结果正确。
- 少货人工关闭后不能继续登记原到仓单批次,也不会跳过测量、差异确认或正式上架;后续补货通过新到仓单关联原单。
- 多张有效到仓单不能超额分配同一订单货物明细;取消和人工关闭后未使用计划量按规则释放。
- 未认领货物不会归入错误订单或企业;错误绑定只能通过授权冲正恢复,原记录不可删除。
- 标签补打、换标和作废可追溯,重复标签不能同时绑定两个有效处理单元。
- 使用佳博 1324D 实机验证标签内容、尺寸、清晰度、连续打印、失败提示和重试;断电、缺纸或连接中断不会误记为打印成功。
- 组托、拆托和重新组托保留箱件父子关系及版本,任一箱件不会同时属于两个有效托盘。
- 实测修改保留旧版本、原因和操作者,客户确认绑定明确版本。
- 历史实测使用保存的单位、系数、精度、舍入规则和公式版本可复算出相同结果。
- 差异未关闭时严格执行已确认的上架和后续流程阻塞规则。
- 隔离区上架不会标记正式上架完成;解除暂停后生成到正式库位的位置变更。
- 上架完成后每个处理单元有且只有一个有效当前位置,停用或容量不足库位被服务端拒绝。
- 停用仓库、快递公司、往来单位和库位不能用于新业务,但历史记录可读。
- 照片和附件覆盖类型、大小、恶意内容、越权访问和删除引用。
- 联系方式按角色脱敏,敏感文件下载和批量导出有审计,过期数据按保留策略清理。
- 相同计费事件重试不重复生成费用,历史费用能按规则、输入和汇率快照复算一致。
- 费用调整、红冲、对账版本、核销和反核销形成不可删除的审计链。
- 对账单费用、调整、已核销和余额勾稽一致;多币种不直接相加且折算可追溯。
- 客户及非财务角色不能读取供应商成本、内部利润和其他企业财务数据。
- 页面覆盖加载、空态、失败、无权限、重复操作、数据过期和窄屏场景。
- 二期验收终点为指定库位完成,不以库存或出仓功能作为完成条件。
## 十一、启动前待确认事项
### 已采用的规划基线
| 编号 | 规划基线 | 说明 |
|---|---|---|
| P2-B1 | 订单 1:N 到仓单,到仓单 1:N 收货批次,批次 1:N 处理单元 | 支持分次预约和分批实际到仓 |
| P2-B2 | 异常单和业务暂停独立于到仓主状态 | 异常解除后恢复原进度,不覆盖或猜测主阶段 |
| P2-B3 | 二期建立处理单元和位置记录 | 只支撑标签、指定库位和三期拣货输入,不扩张为完整库存系统 |
| P2-B4 | 差异未关闭默认业务暂停,不建设单独隔离区 | 暂停期间不得进入正式上架完成和计费锁定节点 |
| P2-B5 | 错误收货通过主管冲正处理 | 不删除原记录,保留原绑定、原因、审批和重新认领结果 |
### 已确认的业务决策
| 编号 | 已确认事项 | 实施说明 |
|---|---|---|
| P2-Q1 | 少货处理以实际入库货物为准 | 实收和计划差异进入客户确认,原到仓单按实收结果处理 |
| P2-Q2 | 不走系统服务商调度 | 取货安排在线下完成,系统不建设自动服务商分配;相关费用人工添加 |
| P2-Q3 | 人工线下预约时间 | 系统记录预约结果、改期和取消留痕,不建设时间窗容量调度 |
| P2-Q4 | 毛重及材积重公式已确认 | 毛重相关值按毛重÷363;材积重按(长×宽×高÷6000)×箱数,单位和舍入写入规则版本 |
| P2-Q5 | 差异需要客户确认 | 差异确认前保持业务暂停 |
| P2-Q6 | 不建设单独隔离区域 | 以业务暂停控制后续操作,不生成隔离库位流程 |
| P2-Q7 | 当前不做库位容量校验 | 保留库位启停和权限校验,不按重量、箱数或体积拦截 |
| P2-Q8 | 上传称重照片和测量照片 | 收货测量流程提供对应附件上传和权限控制 |
| P2-Q11 | 敏感数据和凭证保存 12 个月 | 起算点及到期删除/归档方式在技术规则中统一定义 |
| P2-Q12 | 箱件/托盘标签使用佳博 1324D 热敏标签打印机 | 设备型号已锁定;标签纸尺寸、连接方式、驱动、指令协议和仓库部署参数在开发前通过实机核验 |
### 暂缓事项
| 编号 | 暂缓事项 | 二期临时基线 |
|---|---|---|
| P2-Q9 | 是否使用 PDA | 二期不接 PDA,使用后台或响应式作业页 |
| P2-Q10 | 无预报货物认领和超期处理 | 无预报货物不得直接绑定企业订单,完整认领和超期规则后续确认 |
### 仍需产品确认
以下事项由项目负责人依据 [二期需求确认清单](二期需求确认清单.md) 组织业务、仓库、财务和技术形成临时结论。本表保留规划摘要;状态为“临时基线”且结论可转为开发规则时可用于当前开发,产品到岗复核后改为“已确认”。
| 编号 | 待确认问题 | 当前建议 |
|---|---|---|
| P2-Q13 | 二期计费财务做到哪一个闭环终点? | 建议做到线下收付款登记和核销,不做总账会计 |
| P2-Q14 | 首批费用项目及应收/应付方向是什么? | 按到仓相关费用建立白名单,其他费用人工新增需审核 |
| P2-Q15 | 计费规则需要哪些维度、阶梯和最低收费? | 至少支持客户、供应商、仓库、服务和有效期版本 |
| P2-Q16 | 费用在什么业务节点生成并锁定? | 实测试算,差异关闭后确认;特殊费用按事件生成 |
P2-Q17 至 P2-Q24 已根据财务原型和安全实现规则形成二期基线,不再要求产品重复确认;详细口径见 [二期计费财务需求确认表](二期计费财务需求确认表.md)。
## 十二、建议实施顺序
1. 锁定仍需业务确认的口径,并完成到仓领域契约和数据关系评审。
2. 先实现服务端到仓单、预约容量、权限和部分收货汇总,再接客户预报与后台调度。
3. 实现到仓签到、分批收货、处理单元标签、照片、主管冲正和待认领流程。
4. 实现测量规则版本、原始测量、历史复算、差异对比和客户确认闭环。
5. 实现异常单、业务暂停、隔离区、解除和恢复阶段。
6. 实现库位容量、上架任务、处理单元当前位置和历史位置,终点锁定为“指定库位完成”。
7. 建立费用项目、计费规则和汇率版本,接入实测数据完成试算、审核、调整和应收应付台账。
8. 实现客户/供应商对账、账单中心、线下收付款、核销、反核销、发票登记和单票利润。
9. 完成跨租户、财务权限、幂等、并发、计费复算、对账勾稽、文件、隐私、异常和冲正流程测试。
10. 使用脱敏初始化数据联调、验收和灰度发布。
+130
View File
@@ -0,0 +1,130 @@
# 虫虫出海二期开发进度表:到仓与计费财务
> 创建日期:2026-07-28
> 更新日期:2026-07-30
> 当前阶段:开发已启动,需求确认并行
> 总体状态:已开工,具体任务进度待回填
二期严格以头程物流“02 到仓”为范围,规划和业务问题分别见 [二期开发规划](二期开发规划.md)与[二期需求确认清单](二期需求确认清单.md)。`docs/悦` 中的原型用于确认已有业务线索,不代表功能已经开发完成。
## 一、进度口径
- 开发任务共 31 项。项目已开工,但尚未收到具体已开工任务、完成量和负责人信息,因此任务表暂不虚填进度;开发负责人应在本表逐项回填状态和百分比。
- 二期共跟踪 24 项:4 项已确认、6 项确认中、2 项暂缓、4 项待确认、8 项原型基线。
- 仍需产品处理 11 项:P2-Q1、Q4、Q5、Q6、Q8、Q10、Q11、Q13 至 Q16。
- 无需重复确认:P2-Q2、Q3、Q7、Q9、Q12,以及已采用原型基线的 P2-Q17 至 Q24。
- 原型覆盖只表示存在页面、字段或流程参考,不能计入开发进度。
- 产品岗位空缺期间,业务、仓库、财务和技术在 [二期需求确认清单](二期需求确认清单.md) 中形成临时基线;后续产品复核产生的变化按需求变更处理。
## 二、总体进度
| 工作流 | 范围 | 状态 | 开发进度 | 需求状态 | 负责人 | 备注 |
|---|---|---|---:|---|---|---|
| 规则与数据 | 到仓契约、数据模型、安全和隐私 | 需求确认中 | 0% | 到仓规则已确认;财务规则待确认 | 待分配 | 一期订单及基础资料契约是前置依赖 |
| 到仓预报 | 预约取货、送货上门、预约容量和调度 | 待开始 | 0% | P2-Q2、Q3 已确认 | 待分配 | 改为人工线下预约,系统记录预约结果 |
| 到仓收货 | 签到、分批收货、标签、异常和冲正 | 需求确认中 | 0% | P2-Q1、Q8 已确认;Q10 暂缓 | 待分配 | 无预报货物临时禁止直接绑定企业订单 |
| 测量差异 | 实测、审核、差异阈值、客户确认和暂停 | 待开始 | 0% | P2-Q4、Q5、Q6 已确认 | 待分配 | 不设隔离区,差异期间采用业务暂停 |
| 库位上架 | 库位、状态、上架任务和位置历史 | 待开始 | 0% | P2-Q7 已确认;Q9 暂缓 | 待分配 | 不做容量校验,二期暂不接 PDA |
| 计费财务 | 费用规则、应收应付、对账、核销、发票和利润 | 需求确认中 | 0% | P2-Q13 至 Q16 待形成临时基线;Q17 至 Q24 原型基线 | 待分配 | 当前会议需确定范围、首批费用、规则复杂度和计费节点 |
| 联调发布 | 时间线、测试、初始化和发布 | 待开始 | 0% | 依赖全部 P0 决策 | 待分配 | 需求基线确认后再排期 |
## 三、详细任务表
| ID | 里程碑 | 端 | 模块 | 功能/交付内容 | 优先级 | 状态 | 进度 | 原型覆盖 | 需求阻塞 | 依赖 | 负责人 | 计划开始 | 计划完成 | 备注 |
|---|---|---|---|---|---|---|---:|---|---|---|---|---|---|---|
| P2-BASE-01 | P2-M0 | 公共 | 到仓契约 | 状态、枚举、权限、事件、错误码和快照模型 | P0 | 需求确认中 | 0% | 部分 | Q1-Q11 | 一期订单契约 | 待分配 | 待排期 | 待排期 | 原型存在状态线索,最终契约以业务确认结果为准 |
| P2-BASE-02 | P2-M0 | 公共 | 数据模型 | 到仓单、计划分配、预约容量、批次、处理单元、标签、组托、测量、差异、异常、库位、位置和冲正 | P0 | 需求确认中 | 0% | 部分 | Q1-Q11 | P2-BASE-01 | 待分配 | 待排期 | 待排期 | 原型字段可参考,数据关系按二期规划建设 |
| P2-ADM-01 | P2-M1 | 后台 | 到仓列表 | 查询、筛选、分页、详情、空态和异常态 | P0 | 待开始 | 0% | 较完整 | - | P2-BASE-01 | 待分配 | 待排期 | 待排期 | 后台原型有入库单列表、筛选和详情入口 |
| P2-ADM-02 | P2-M1 | 后台 | 预约调度 | 审核预约、分配服务商、调整时间和取消 | P0 | 待开始 | 0% | 部分 | Q2、Q3 | P2-ADM-01 | 待分配 | 待排期 | 待排期 | 原型未明确服务商分配和改期规则 |
| P2-SCH-01 | P2-M1 | 后台 | 预约容量 | 营业时间、停收日期、时间窗容量、冲突和人工超额授权 | P0 | 待开始 | 0% | 无 | Q3 | P2-ADM-02 | 待分配 | 待排期 | 待排期 | 需要业务确认时间窗及容量口径 |
| P2-CLI-01 | P2-M1 | 客户端 | 到仓预报 | 预约取货、送货上门、联系人地址带入、可用时间窗和提交 | P0 | 待开始 | 0% | 部分 | Q2、Q3 | P2-BASE-01、P2-SCH-01 | 待分配 | 待排期 | 待排期 | 原型有提货方式和提货信息,没有完整预约闭环 |
| P2-WH-01 | P2-M2 | 后台 | 到仓签到 | 识别到仓单、分批收货、交接和异常登记 | P0 | 待开始 | 0% | 部分 | Q1、Q8、Q10 | P2-BASE-02 | 待分配 | 待排期 | 待排期 | 原型有待到仓、收货中状态,未覆盖无预报认领 |
| P2-LABEL-01 | P2-M2 | 后台 | 处理单元标签 | 箱件/托盘编码、佳博 1324D 实机适配、打印结果、失败重试、补打、换标和作废 | P0 | 待开始 | 0% | 部分 | 设备参数核验 | P2-WH-01 | 待分配 | 待排期 | 待排期 | 型号已确认;纸张、连接、驱动和指令协议待实机核验 |
| P2-REV-01 | P2-M2 | 后台 | 收货冲正 | 错绑企业/订单/到仓单的主管审批、解绑和重新认领 | P0 | 待开始 | 0% | 无 | Q10 | P2-WH-01 | 待分配 | 待排期 | 待排期 | 原记录不可删除 |
| P2-WH-02 | P2-M3 | 后台 | 入库测量 | 原始测量、规则版本、换算、复核、照片和历史复算 | P0 | 待开始 | 0% | 较完整 | Q4、Q8 | P2-LABEL-01 | 待分配 | 待排期 | 待排期 | 原型有 cm、kg、m³、材积重及测量审核 |
| P2-DIFF-01 | P2-M3 | 公共 | 差异引擎 | 申报实测对比、阈值、差异单和阻塞规则 | P0 | 待开始 | 0% | 部分 | Q4、Q5 | P2-WH-02、P2-HOLD-01 | 待分配 | 待排期 | 待排期 | 原型有对比和审核,没有阈值 |
| P2-ADM-03 | P2-M3 | 后台 | 差异处理 | 复核、说明、调整、关闭和审计 | P0 | 待开始 | 0% | 部分 | Q5、Q6 | P2-DIFF-01 | 待分配 | 待排期 | 待排期 | 原型有审核不通过和失败原因 |
| P2-CLI-02 | P2-M3 | 客户端 | 差异确认 | 查看实测、公开照片、确认或反馈差异 | P0 | 待开始 | 0% | 无 | Q5、Q8 | P2-DIFF-01 | 待分配 | 待排期 | 待排期 | 客户确认流程需要新增 |
| P2-HOLD-01 | P2-M3 | 公共 | 异常与暂停 | 异常单、业务暂停、隔离、责任期限、解除和恢复阶段 | P0 | 待开始 | 0% | 部分 | Q1、Q5、Q6、Q10 | P2-BASE-02 | 待分配 | 待排期 | 待排期 | 原型仅有是否扣货和扣货理由 |
| P2-LOC-01 | P2-M4 | 后台 | 库位维护 | 库区、库位编码、类型、容量、状态和权限范围 | P0 | 待开始 | 0% | 较完整 | Q7 | P2-BASE-02 | 待分配 | 待排期 | 待排期 | 原型有库区、类型、最大承重和占用状态 |
| P2-PUT-01 | P2-M4 | 后台 | 上架任务 | 创建、分配、拆分、隔离上架、异常和完成 | P0 | 待开始 | 0% | 较完整 | Q6、Q7、Q9 | P2-LOC-01、P2-WH-02、P2-HOLD-01 | 待分配 | 待排期 | 待排期 | 原型有待上架、上架中、已完成及目标库位 |
| P2-POS-01 | P2-M4 | 公共 | 位置记录 | 处理单元当前位置、进入/移出历史和库位占用校验 | P0 | 待开始 | 0% | 部分 | Q7 | P2-PUT-01 | 待分配 | 待排期 | 待排期 | 原型有库存流水线索,二期不建设完整库存系统 |
| P2-SEC-01 | P2-M0 | 公共 | 隐私与保留 | 联系方式脱敏、照片授权、导出审计、保留期限和清理 | P0 | 需求确认中 | 0% | 无 | Q11 | P2-WH-01 | 待分配 | 待排期 | 待排期 | 保存期限需业务、法务和运维确认 |
| P2-FEE-01 | P2-M5 | 后台 | 费用项目 | 费用项目、方向、单位、币种、税务属性和启停 | P0 | 需求确认中 | 0% | 较完整 | Q14、Q18 | P2-BASE-01 | 待分配 | 待排期 | 待排期 | 后台原型有费用项目维护 |
| P2-RATE-01 | P2-M5 | 后台/服务端 | 计费规则 | 规则维度、版本、生效区间、阶梯/最低价和发布审核 | P0 | 需求确认中 | 0% | 部分 | Q15-Q18 | P2-FEE-01、P2-WH-02 | 待分配 | 待排期 | 待排期 | 原型有费用字段,缺可审计的规则版本 |
| P2-CALC-01 | P2-M5 | 服务端 | 计费引擎 | 规则匹配、试算、事件触发、幂等、计算快照和复算 | P0 | 需求确认中 | 0% | 无 | Q15-Q18 | P2-RATE-01 | 待分配 | 待排期 | 待排期 | 实测数据是主要计费输入 |
| P2-FEE-02 | P2-M5 | 后台 | 费用台账 | 自动/人工费用、审核、调整、红冲、锁定和审计 | P0 | 需求确认中 | 0% | 较完整 | Q16、Q18、Q19 | P2-CALC-01 | 待分配 | 待排期 | 待排期 | 原型有费用新增、审核和删除入口,删除需改为红冲 |
| P2-ARAP-01 | P2-M5 | 后台 | 应收应付 | 客户应收、供应商应付、查询汇总、权限和导出 | P0 | 需求确认中 | 0% | 较完整 | Q13、Q17-Q19 | P2-FEE-02、一期往来单位 | 待分配 | 待排期 | 待排期 | 原型有客户应收应付与供应商费用 |
| P2-RECON-01 | P2-M5 | 后台 | 对账单 | 按票/月结生成、审核、确认、争议、版本和关闭 | P0 | 需求确认中 | 0% | 较完整 | Q20、Q21 | P2-ARAP-01 | 待分配 | 待排期 | 待排期 | 原型有客户/供应商对账单与明细 |
| P2-CLI-03 | P2-M5 | 客户端 | 账单中心 | 对客账单列表、明细、确认、异议和付款状态 | P0 | 需求确认中 | 0% | 部分 | Q20、Q21 | P2-RECON-01 | 待分配 | 待排期 | 待排期 | 客户端已有应付账单列表和明细参考 |
| P2-CASH-01 | P2-M5 | 后台 | 收付款核销 | 收付款登记、凭证、审核、部分核销、反核销和余额 | P0 | 需求确认中 | 0% | 较完整 | Q17、Q22 | P2-RECON-01 | 待分配 | 待排期 | 待排期 | 原型有收付款状态,核销勾稽规则需补充 |
| P2-INV-01 | P2-M5 | 后台 | 发票登记 | 开票/收票申请、号码、金额、税率、状态和附件 | P1 | 需求确认中 | 0% | 部分 | Q18、Q23 | P2-RECON-01 | 待分配 | 待排期 | 待排期 | 二期建议不接外部开票平台 |
| P2-PROFIT-01 | P2-M5 | 后台 | 单票利润 | 收入、成本、毛利、毛利率、折算和权限控制 | P1 | 需求确认中 | 0% | 较完整 | Q17、Q24 | P2-ARAP-01、汇率版本 | 待分配 | 待排期 | 待排期 | 原型有利润表和收入成本明细 |
| P2-TIME-01 | P2-M6 | 公共 | 时间线通知 | 对客事件、站内提醒和失败补偿记录 | P1 | 待开始 | 0% | 部分 | Q1、Q5、Q8、Q21 | 核心流程完成 | 待分配 | 待排期 | 待排期 | 外部通知渠道不纳入未确认范围 |
| P2-TEST-01 | P2-M6 | 公共 | 自动化测试 | 越权、幂等、计费复算、费用调整、对账勾稽、核销、反核销、标签、差异、位置、文件和隐私测试 | P0 | 待开始 | 0% | 不适用 | 全部 P0 决策 | 所有 P0 模块 | 待分配 | 待排期 | 待排期 | 原型覆盖不能代替自动化测试 |
| P2-REL-01 | P2-M6 | 公共 | 发布验收 | 初始化业务/财务基础数据、迁移、联调、勾稽检查、验收和发布 | P0 | 待开始 | 0% | 不适用 | 全部 P0 决策 | P2-TEST-01 | 待分配 | 待排期 | 待排期 | 需求基线确认后才能承诺排期 |
## 四、里程碑
| 里程碑 | 交付目标 | 状态 | 进度 | 进入条件 | 计划完成 |
|---|---|---|---:|---|---|
| P2-M0 规则锁定 | 业务决策、到仓/财务契约、数据关系和权限基线确认 | 需求确认中 | 42% | 一期订单及基础资料契约稳定 | 待排期 |
| P2-M1 到仓预报 | 预约取货、送货预报和平台调度闭环 | 待开始 | 0% | Q2、Q3 确认 | 待排期 |
| P2-M2 到仓收货 | 签到、分批收货、标签、异常、冲正和照片可追溯 | 待开始 | 0% | Q1、Q8、Q10 及标签参数确认 | 待排期 |
| P2-M3 测量差异 | 实测、复算、差异、客户确认和隔离闭环 | 待开始 | 0% | Q4、Q5、Q6 确认 | 待排期 |
| P2-M4 库位上架 | 库位、上架任务和位置历史可查 | 待开始 | 0% | Q7、Q9 确认 | 待排期 |
| P2-M5 计费财务 | 计费、应收应付、对账、核销和利润闭环可用 | 需求确认中 | 0% | Q13-Q16 确认,P2-M3 实测数据可用 | 待排期 |
| P2-M6 联调验收 | 跨端联调、安全、勾稽、测试、初始化和发布完成 | 待开始 | 0% | P2-M1 至 P2-M5 验收通过 | 待排期 |
## 五、原型映射
| 流程/能力 | 原型依据 | 覆盖判断 | 二期任务 | 缺口或边界 |
|---|---|---|---|---|
| 预约取货/送货上门 | 入库单提货方式、提货时间和联系人字段 | 部分 | P2-ADM-02、P2-SCH-01、P2-CLI-01 | 缺服务商分配、时间窗容量、改期和爽约规则 |
| 到仓收货 | 海外仓入库单的待到仓、收货中、已上架状态 | 部分 | P2-WH-01、P2-REV-01 | 缺分批收货、待认领和冲正闭环 |
| 入库测量 | 入库单测量、测量审核、原单/实测对比 | 较完整 | P2-WH-02 | 缺计算规则版本、精度、舍入和历史复算 |
| 差异核对 | 审核通过/不通过、失败原因、是否扣货 | 部分 | P2-DIFF-01、P2-ADM-03、P2-CLI-02、P2-HOLD-01 | 缺阈值、客户确认、隔离和释放规则 |
| 指定库位 | 库位维护、最大承重、上架任务和上架状态 | 较完整 | P2-LOC-01、P2-PUT-01、P2-POS-01 | 缺容量强校验、隔离区和位置历史契约 |
| 标签打印 | 唛头导出、打印列表、Zebra/HP 打印机示例 | 部分 | P2-LABEL-01 | 二期实际设备为佳博 1324D,需实机适配 |
| 费用与应收应付 | 费用项目、客户应收应付、供应商费用 | 较完整 | P2-FEE-01、P2-FEE-02、P2-ARAP-01 | 缺规则版本、幂等、红冲和权限契约 |
| 对账与核销 | 客户/供应商对账、结算单应收应付、收付款状态 | 较完整 | P2-RECON-01、P2-CLI-03、P2-CASH-01 | 缺多对多核销、反核销和勾稽规则 |
| 发票与利润 | 发票状态、利润表、收入成本明细 | 部分 | P2-INV-01、P2-PROFIT-01 | 外部开票不纳入;利润和汇率采用原型基线 |
| PDA | 头程“03 出仓”PDA 拣货原型 | 不纳入二期 | - | 二期到仓不接 PDA,待业务确认边界 |
| 完整库存/WMS | 库存查询、理货、盘点、出库等原型 | 不纳入二期 | - | 二期仅维护处理单元和位置记录 |
## 六、需求确认进度
| 编号 | 状态 | 主题 | 产品结论 | 涉及业务角色 |
|---|---|---|---|---|
| P2-Q1 | 确认中 | 少货到仓单人工关闭 | 方向已确认,关闭权限、条件、凭证和通知待补 | 仓库、平台运营 |
| P2-Q2 | 已确认 | 预约取货服务商类型 | 不走系统服务商调度,人工添加费用项目 | 业务、调度 |
| P2-Q3 | 已确认 | 精确时间或预约时间窗 | 人工线下预约时间,系统记录结果 | 仓库、调度 |
| P2-Q4 | 确认中 | 实测单位和计费公式 | 公式方向已确认,含义、单位、计费重和舍入待补 | 仓库、财务/计费 |
| P2-Q5 | 确认中 | 差异阈值和客户确认 | 确认方向已明确,拒绝、超时和阻塞规则待补 | 业务、仓库、客服 |
| P2-Q6 | 确认中 | 隔离区释放规则 | 不设隔离区,暂停位置、解除权限和条件待补 | 仓库、业务 |
| P2-Q7 | 已确认 | 库位容量校验口径 | 当前不做库位容量校验 | 仓库 |
| P2-Q8 | 确认中 | 到仓照片必传节点 | 照片类型已明确,必传粒度和附件规则待补 | 仓库、客服 |
| P2-Q9 | 暂缓 | 二期是否使用 PDA | 临时按二期不接 PDA 处理 | 仓库、产品 |
| P2-Q10 | 暂缓 | 无预报货物认领和超期处理 | 临时禁止直接绑定企业订单 | 仓库、平台运营 |
| P2-Q11 | 确认中 | 敏感数据和凭证保存期限 | 12 个月已明确,起算点和到期处理待补 | 业务、法务、运维 |
| P2-Q12 | 已确认 | 标签打印设备 | 佳博 1324D 热敏标签打印机 | 业务 |
| P2-Q13 | 待确认 | 二期计费财务闭环终点 | 待确认 | 产品、业务、财务、技术 |
| P2-Q14 | 待确认 | 首批费用项目及收付方向 | 待确认 | 业务、财务/计费 |
| P2-Q15 | 待确认 | 计费维度、阶梯和最低收费 | 待确认 | 业务、财务/计费 |
| P2-Q16 | 待确认 | 费用生成和锁定节点 | 待确认 | 业务、仓库、财务/计费 |
| P2-Q17 | 原型基线 | 币种、本位币和汇率 | CNY 本位币,保存原币、人工汇率和锁定快照 | 财务 |
| P2-Q18 | 原型基线 | 税务、金额精度和舍入 | 保存未税、税率、税额、含税;金额 2 位、汇率 6 位 | 财务/税务 |
| P2-Q19 | 原型基线 | 人工费用调整和审批 | 经办提交、财务审核,生效后只允许调整或红冲 | 财务、内控 |
| P2-Q20 | 原型基线 | 对账方式和结算周期 | 按选择或截止时间生成,保存结算期间和账期 | 业务、财务、客服 |
| P2-Q21 | 原型基线 | 对账审核、确认和争议 | 审核、确认、拒绝、锁定,争议产生新版本 | 业务、财务、客服 |
| P2-Q22 | 原型基线 | 收付款与核销规则 | 线下收付、部分核销和反核销,不含预收及跨币种 | 财务、内控 |
| P2-Q23 | 原型基线 | 发票管理边界 | 只登记,不接外部开票平台 | 财务/税务、产品 |
| P2-Q24 | 原型基线 | 利润口径与查看权限 | 生效应收减应付,利润率为利润÷收入,财务授权可见 | 财务、管理层 |
## 七、状态维护规则
- 状态统一使用:需求确认中、待开始、进行中、联调中、测试中、已完成、已阻塞。
- 原型覆盖统一使用:较完整、部分、无、不适用;不得把“较完整”换算为开发进度。
- 负责人、计划开始和计划完成由排期会议填写;在需求基线确认前保持“待分配/待排期”。
- 开始编码后才可以填写大于 0% 的开发进度;开发、测试和验收均完成后才更新为“已完成”。
- 需求确认结论先回写 [二期需求确认清单](二期需求确认清单.md),再同步更新本表、开发规划、任务依赖和验收标准。
+167
View File
@@ -0,0 +1,167 @@
# 虫虫出海二期计费与财务模块规划
> 创建日期:2026-07-28
> 状态:开发已启动,范围确认并行
> 关联规划:[二期开发规划](二期开发规划.md)
> 原型依据:`docs/悦/货代SAAS平台后台/货代SaaS平台原型.html`、`docs/悦/头程下单/柏悦客户端.html`
## 一、建设目标
二期在“02 到仓”作业闭环上增加最小可用的计费与财务闭环,使每票到仓业务能够回答:按什么规则计费、产生了哪些应收和应付、是否完成对账、已收付多少、剩余多少,以及本票业务的收入、成本和毛利是多少。
```text
到仓实测/业务事件
↓
费用规则匹配与试算
↓
费用审核、调整与锁定
↓
应收 / 应付费用台账
↓
客户 / 供应商对账单
↓
收付款登记与核销
↓
单票利润与财务状态
```
## 二、二期纳入范围
### 1. 费用项目与计费规则
- 维护费用项目、应收/应付方向、默认币种、计费单位、税务属性和启停状态。
- 计费规则支持客户、供应商/往来单位、仓库、服务类型、货物属性、生效日期和失效日期等适用维度。
- 支持按票、箱、托、件、重量、体积、计费重、次数和固定金额计费;阶梯价、最低收费和封顶规则是否进入二期由业务确认。
- 规则必须版本化。历史费用保存规则版本、计费输入、计算过程和结果快照,不因新规则发布而变化。
- 二期的计费规则用于实际业务计费,不等同于对客询价或正式报价体系。
### 2. 费用生成与调整
- 到仓签到、实测确认、异常处理或指定库位完成后,根据已确认的触发节点生成费用草稿。
- 自动费用与人工费用均关联订单、到仓单、收货批次或处理单元,并记录客户/供应商、费用项目、数量、单价、币种、汇率、税额和来源。
- 同一业务事件重复投递不得重复生成费用;费用生成使用稳定来源键保证幂等。
- 费用支持试算、待审核、生效、已锁定、已冲销和作废状态。
- 生效费用不允许直接覆盖。调整通过新增调整行或红冲行处理,并保留原因、原记录、申请人和审核人。
### 3. 应收与应付
- 应收面向客户企业,应付面向快递公司、仓库服务商或其他往来单位。
- 支持按订单、到仓单、客户、供应商、费用项目、币种、审核状态和结算状态查询。
- 应收和应付分别授权;客户侧永不返回供应商成本、内部利润和内部调整备注。
- 多币种费用按原币保存,不允许直接跨币种相加;折算金额使用锁定汇率和汇率日期。
### 4. 对账单与账单
- 支持按票结算或按结算周期汇总生成客户/供应商对账单。
- 对账单包含期初、当期费用、调整、已核销、未核销、结算起止日期和到期日。
- 支持草稿、待审核、待对方确认、已确认、有争议、已关闭和已作废状态。
- 对账单确认后锁定明细;争议通过退回、调整费用和重新生成版本处理,不直接修改已确认版本。
- 企业客户端可以查看账单列表和明细、确认或提出异议;二期供应商对账采用后台登记确认结果,不建设供应商端。
### 5. 收付款与核销
- 二期支持线下收款、付款、退款和调整的登记,不接在线支付渠道。
- 支持部分核销、一笔收付款核销多张账单、一张账单被多笔收付款核销。
- 保存交易日期、往来单位、金额、币种、流水号、凭证、经办人和审核记录。
- 已审核核销不得删除;错误处理采用反核销或冲正,并保留完整审计链。
- 二期不纳入预收、预付及跨币种核销;确需支持时按范围变更处理。
### 6. 发票与利润
- 二期只登记发票申请、发票号码、金额、税率、开票/收票日期、状态和附件,不直接连接电子税局。
- 单票利润按已生效应收减已生效应付计算,同时展示未对账、未核销和异常费用提示。
- 利润报表至少支持按订单、客户、供应商、仓库和月份筛选;不同币种先按锁定汇率折算到本位币。
- 利润和成本只向财务及授权管理角色开放。
## 三、明确不纳入二期
- 对客询价、报价审批、报价转订单和合约报价体系。
- 在线支付、支付网关、自动扣款、银企直连和银行流水自动认领。
- 电子税局或第三方开票平台直连、税务申报和税控设备集成。
- 会计科目、会计凭证、总账、资产负债表、现金流量表及法定财务报表。
- 自动获取外部汇率;二期由财务维护并锁定业务使用汇率。
- 预算、资金计划、信用保险和复杂授信管理。
## 四、角色与权限
| 角色 | 主要权限 | 数据边界 |
|---|---|---|
| 计费专员 | 维护费用草稿、试算、发起调整 | 授权客户、仓库和业务范围 |
| 财务审核员 | 审核费用、对账单、收付款和核销 | 平台授权范围 |
| 财务管理员 | 维护费用项目、规则、汇率、结算参数和财务权限 | 平台授权范围 |
| 客服/运营 | 查看对客费用、发起对账、处理争议 | 授权客户范围,不可查看供应商成本和利润 |
| 企业客户 | 查看本企业账单、明细、付款状态并确认或提出异议 | 当前企业 |
| 平台管理员 | 配置角色权限和审计查询 | 不因管理员身份默认获得财务明细权限 |
关键动作至少拆分为:规则发布、费用新增、费用调整、费用审核、对账单审核、收款登记、付款登记、核销、反核销、发票登记、利润查看和财务导出。
## 五、核心数据对象
| 数据对象 | 关键内容 |
|---|---|
| 费用项目 | 编码、名称、应收/应付方向、计费单位、默认币种、税务属性和状态 |
| 计费规则版本 | 适用客户/供应商/仓库/服务、计费方式、阶梯、最低价、币种、生效区间和版本状态 |
| 费用记录 | 业务来源、应收/应付、往来方、计费输入、单价、金额、税额、币种、汇率、规则快照和状态 |
| 费用调整 | 原费用、调整类型、差额、原因、申请人、审核人和冲销链 |
| 对账单 | 对账对象、结算周期、币种、期初、费用、调整、核销、余额、到期日、状态和版本 |
| 对账单明细 | 对账单、费用记录、业务单据、原币金额、折算金额和争议状态 |
| 收付款记录 | 收/付/退/调、往来方、金额、币种、日期、流水号、凭证和审核状态 |
| 核销记录 | 收付款记录、账单/费用、核销金额、汇兑差额、操作者、时间和冲正关系 |
| 发票记录 | 发票方向、抬头、税号、号码、金额、税率、日期、状态、附件和关联账单 |
| 汇率版本 | 原币、目标币、汇率、汇率日期、来源、审核人和锁定状态 |
所有金额使用定点小数,不使用浮点数。金额和税额保留 2 位、业务汇率保留 6 位,由服务端统一四舍五入;原币金额、折算金额和使用汇率必须同时保存。
## 六、开发任务建议
| ID | 端 | 模块 | 交付内容 | 优先级 | 依赖 |
|---|---|---|---|---|---|
| P2-FEE-01 | 后台 | 费用项目 | 费用项目、方向、单位、币种、税务属性和启停 | P0 | P2-BASE-01 |
| P2-RATE-01 | 后台/服务端 | 计费规则 | 规则维度、版本、生效区间、阶梯/最低价和发布审核 | P0 | P2-FEE-01、P2-WH-02 |
| P2-CALC-01 | 服务端 | 计费引擎 | 规则匹配、试算、事件触发、幂等、计算快照和复算 | P0 | P2-RATE-01 |
| P2-FEE-02 | 后台 | 费用台账 | 自动/人工费用、审核、调整、红冲、锁定和审计 | P0 | P2-CALC-01 |
| P2-ARAP-01 | 后台 | 应收应付 | 客户应收、供应商应付、查询汇总、权限和导出 | P0 | P2-FEE-02、一期往来单位 |
| P2-RECON-01 | 后台 | 对账单 | 按票/月结生成、审核、确认、争议、版本和关闭 | P0 | P2-ARAP-01 |
| P2-CLI-03 | 客户端 | 账单中心 | 对客账单列表、明细、确认、异议和付款状态 | P0 | P2-RECON-01 |
| P2-CASH-01 | 后台 | 收付款核销 | 收付款登记、凭证、审核、部分核销、反核销和余额 | P0 | P2-RECON-01 |
| P2-INV-01 | 后台 | 发票登记 | 开票/收票申请、号码、金额、税率、状态和附件 | P1 | P2-RECON-01 |
| P2-PROFIT-01 | 后台 | 单票利润 | 收入、成本、毛利、毛利率、折算和权限控制 | P1 | P2-ARAP-01、汇率版本 |
## 七、启动前业务确认
### 仍需产品确认
| 编号 | 待确认问题 | 当前建议 |
|---|---|---|
| P2-Q13 | 二期计费财务做到哪一个闭环终点? | 做到线下收付款登记和核销,不做在线支付、会计凭证和总账 |
| P2-Q14 | “02 到仓”首批费用项目及应收/应付方向是什么? | 建立费用白名单,白名单外费用只允许人工新增并审核 |
| P2-Q15 | 计费规则需要哪些维度、阶梯和最低收费? | 至少支持客户、往来单位、仓库、服务和有效期;复杂价格结构按实际需要裁剪 |
| P2-Q16 | 各类费用在什么业务节点生成、审核和锁定? | 实测完成试算,差异确认后生效;其他费用按已确认事件生成 |
### 已由原型和实现基线确定
| 编号 | 已确定结论 | 原型依据摘要 |
|---|---|---|
| P2-Q17 | 本位币 CNY;保存原币、人工业务汇率和折算金额,费用生效时锁定汇率快照 | 币种、汇率、CNY/USD/EUR 及人民币:美元汇率字段 |
| P2-Q18 | 保存未税金额、税率、税额、含税总额;金额/税额 2 位、汇率 6 位,服务端统一舍入 | 0%/6%/9%/13% 税率及税额、含税合计 |
| P2-Q19 | 经办提交、财务审核;生效费用只能调整、红冲或作废并留痕 | 新增、客服提交、财务通过等状态 |
| P2-Q20 | 支持按选择和按截止时间生成账单,保存结算期间、账期和到期日 | 两种生成账单入口及结算字段 |
| P2-Q21 | 账单审核、确认、拒绝、锁定和争议后新版本流程 | 待审核、审核通过、审核拒绝、待确认及明细/历史 |
| P2-Q22 | 线下收付款、部分收付、余额、核销和反核销;不含预收预付、跨币种和银行自动认领 | 待收款、部分收款、已结清、余额、支付历史和核销入口 |
| P2-Q23 | 只做发票信息和状态登记,不接外部开票平台 | 发票抬头、日期、状态、税率和税额字段 |
| P2-Q24 | 利润=已生效应收-已生效应付,利润率=利润÷收入;仅财务授权角色可见 | 收入、成本、利润、利润率及多维报表 |
P2-Q13 至 P2-Q16 纳入 [二期需求确认清单](二期需求确认清单.md)。产品岗位空缺期间可先开发费用、账单和审计基础结构,但闭环范围、费用白名单、复杂价格规则和自动计费节点必须配置化;四项临时结论回写后再锁定最终业务流。P2-Q17 至 P2-Q24 不再要求重复确认。
## 八、验收重点
- 相同业务事件重试不会重复生成费用。
- 历史费用使用保存的规则版本、计费输入和汇率能够复算一致。
- 费用调整、红冲、核销和反核销形成不可删除的完整审计链。
- 多币种不直接汇总;所有折算都能追溯到汇率版本和日期。
- 对账单明细之和、调整、核销和余额能够勾稽一致。
- 部分核销、多对多核销和反核销后的未结余额正确且不为负数。
- 客户不能查看供应商成本、内部利润、内部备注或其他企业账单。
- 未授权运营人员不能查看利润、付款和供应商成本。
- 已确认对账单不能静默修改,重新计算必须生成调整或新版本。
- 财务导出、凭证下载和敏感金额查询具有权限与审计记录。
@@ -0,0 +1,34 @@
# 二期计费财务需求确认表
> 用途:产品空缺期间由项目负责人组织确认原型无法决定、且会改变二期范围或计费模型的事项。
> 不需要填写确认人和确认日期;状态为“临时基线”且有可开发结论时用于当前开发,产品到岗复核后改为“已确认”。
> 关联文档:[二期计费与财务模块规划](二期计费财务模块规划.md)
## 一、需要产品确认的 4 项
| 编号 | 需要产品确认的事项 | 当前建议 | 最终结论 | 状态 |
|---|---|---|---|---|
| P2-Q13 | 二期计费财务做到哪一个闭环终点? | 做到费用生成、应收应付、对账、线下收付款登记与核销、单票利润;不做在线支付、会计凭证和总账 | 待填写 | 待确认 |
| P2-Q14 | “02 到仓”首批费用项目白名单及应收/应付方向是什么? | 逐项给出费用编码、名称、方向、单位、默认币种和税率;未进白名单的费用只允许人工新增并审核 | 待填写 | 待确认 |
| P2-Q15 | 二期计费规则需要支持到什么复杂度? | 至少按客户、往来单位、仓库、服务类型和生效区间匹配;阶梯价、最低收费、封顶和组合价只实现业务明确需要的部分 | 待填写 | 待确认 |
| P2-Q16 | 各类费用在哪个业务节点生成、审核和锁定? | 实测完成生成试算,差异确认后生效并锁定;非测量费用按已确认业务事件生成 | 待填写 | 待确认 |
## 二、原型已经明确,不再发产品确认
| 编号 | 采用的二期基线 | 原型依据 |
|---|---|---|
| P2-Q17 | 本位币采用 CNY;费用保存原币、业务汇率和折算金额;二期人工维护汇率,不接外部汇率源,费用生效时锁定汇率快照 | 原型已有 CNY、USD、EUR、币种、汇率及“人民币:美元汇率”字段 |
| P2-Q18 | 保存未税金额、税率、税额和含税总额;税额按未税金额×税率计算;金额/税额保留 2 位、汇率保留 6 位并由服务端统一四舍五入 | 原型已有 0%、6%、9%、13% 税率及金额、税额、含税合计 |
| P2-Q19 | 经办提交、财务审核;生效费用不直接删除或覆盖,只能调整、红冲或作废并保留审计链 | 原型已有“新增、客服提交、财务通过”等审核状态;直接删除入口按财务审计要求收紧 |
| P2-Q20 | 支持勾选费用生成账单和按截止时间批量生成;账单保存结算起止日、账期和到期日,二期不额外建设复杂自动月结调度 | 原型已有“按选择生成账单”“按截止时间生成账单”、结算起止日和账期 |
| P2-Q21 | 账单按草稿/待审核/审核通过/审核拒绝/待确认/已关闭流转;确认后锁定,争议调整后生成新版本 | 原型已有待审核、审核通过、审核拒绝、待确认、账单明细和支付历史 |
| P2-Q22 | 支持线下收付款登记、部分收付、余额和核销;错误核销用反核销留痕;二期不做预收预付、跨币种核销和银行自动认领 | 原型已有待收款、部分收款、已结清、逾期、应付/已付/余额、支付历史和核销入口 |
| P2-Q23 | 二期仅登记开票/收票信息、税率、税额、日期、状态和附件,不接电子税局或第三方开票平台 | 原型只有发票抬头、开票日期、已开票/未开票、税率和税额,没有外部开票接口 |
| P2-Q24 | 单票利润=已生效应收-已生效应付;利润率=利润÷收入;支持按客户、货柜、单票和月份查看,仅财务授权角色可见 | 原型直接展示收入、成本、利润、利润率及相应查询维度 |
## 三、会议填写规则
- 认可当前建议:复制为临时结论,将“状态”改为“临时基线”。
- 修改当前建议:填写会议确定的临时口径,再将“状态”改为“临时基线”。
- 暂不确定:将“状态”改为“暂缓”,并填写二期临时处理方式。
- P2-Q17 至 P2-Q24 已作为原型和安全实现基线,不再重复确认;产品到岗后如提出变更,再按需求变更流程更新。
Binary file not shown.
+319
View File
@@ -0,0 +1,319 @@
# 虫虫出海二期需求确认清单:头程到仓与计费财务
> 创建日期:2026-07-28
> 更新日期:2026-07-30
> 当前状态:开发已启动;11 项待形成临时结论,13 项已有结论或原型基线
> 确认范围:头程物流“02 到仓”及二期计费财务闭环
> 关联规划:[二期开发规划](二期开发规划.md)
> 原型依据:[头程物流流程图](参考资料/头程物流流程图.svg)
## 一、文档用途
本清单用于组织业务、仓库、运营、财务和技术共同确认二期需求口径。产品岗位空缺期间由项目负责人主持;产品到岗后再对临时基线进行复核。确认重点不是页面长什么样,而是谁可以操作、什么条件可以推进、异常如何处理以及最终如何验收。
未形成结论的问题不得直接写成不可变的开发默认值。每项临时确认至少记录结论、适用范围和例外情况;状态为“临时基线”且结论可直接转为开发规则时,可用于当前开发。产品到岗复核后改为“已确认”;复核产生变化时按需求变更处理。
## 二、确认参与人
| 参与方 | 主要职责 |
|---|---|
| 项目负责人 | 产品空缺期间主持确认、记录临时结论、维护范围和验收口径 |
| 产品负责人 | 到岗后复核临时基线,处理范围变化和产品验收口径 |
| 业务/运营负责人 | 确认客户服务、调度、差异和异常处理规则 |
| 仓库负责人 | 确认收货、测量、照片、库位、标签和现场作业规则 |
| 财务/计费负责人 | 确认计费、币种汇率、税务、应收应付、对账、收付款、核销、发票和利润口径 |
| 法务/运维负责人 | 确认隐私数据、照片和凭证的保留与清理策略 |
| 技术负责人 | 评估可实现性、系统影响和数据迁移风险,不替代业务作决定 |
## 三、确认顺序
建议按以下顺序召开确认会,前一组结论可能影响后一组的数据和流程设计:
1. 到仓与调度:补充 P2-Q1、P2-Q10。
2. 测量与差异:补充 P2-Q4、P2-Q5、P2-Q6、P2-Q8。
3. 合规与保留:补充 P2-Q11。
4. 计费与财务:确认 P2-Q13 至 P2-Q16。
5. 原型基线复核:P2-Q17 至 P2-Q24 仅在产品要求变更时讨论。
6. 汇总评审:核对跨问题冲突,更新规划基线、任务依赖和验收标准。
## 四、会议确认主表
会议时只维护本表的“临时结论”和“状态”。已有方向不是可开发结论,项目负责人需要组织相关业务角色将例外情况、权限、节点或临时处理方式补充完整。
| 编号 | 已有结论/原型情况 | 本次会议必须确定 | 当前建议 | 临时结论(会议填写) | 状态 |
|---|---|---|---|---|---|
| P2-Q1 | 已提出“以实际货物入库为准”;原型没有少货关闭流程 | 谁能关闭;关闭条件;原因、照片或交接凭证是否必填;是否通知客户 | 收货员登记少货,仓库主管关闭;必填原因并保留凭证;关闭后通知客户 | 待填写 | 确认中 |
| P2-Q4 | 已给出“毛重÷363”和“(长×宽×高÷6000)×箱数”;原型有 cm、kg、m³ 和材积重 | `/363` 的业务含义;输入单位;计费重取值;精度和舍入 | 长 cm、重量 kg、体积 m³;保留原始值和公式版本;最终结果统一四舍五入 | 待填写 | 确认中 |
| P2-Q5 | 已确认差异需要客户确认;原型没有拒绝和超时规则 | 是否所有差异都确认;拒绝或超时如何处理;确认前是否暂停上架和计费 | 数量、重量、体积、破损及归属差异均需确认;确认前暂停后续作业,拒绝后转人工处理 | 待填写 | 确认中 |
| P2-Q6 | 已确认没有独立隔离区 | 差异期间货物放置方式;谁能解除业务暂停;解除条件 | 保持当前物理位置并标记业务暂停;客户确认且仓库主管复核后解除 | 待填写 | 确认中 |
| P2-Q8 | 已确认上传称重照片和测量照片;原型没有附件规则 | 是否必传;按箱件还是收货批次上传;数量、大小、格式和补传规则 | 每个收货批次必传称重、测量照片;允许补传但保留首次提交和补传记录 | 待填写 | 确认中 |
| P2-Q10 | 已暂缓无预报货物认领;原型没有临时处理方式 | 暂缓期间拒收还是允许线下登记待认领;如允许,谁能绑定订单 | 二期系统拒绝将无预报货物直接绑定企业订单;线下处置,不进入正式库存和计费 | 待填写 | 暂缓 |
| P2-Q11 | 已确认保存 12 个月;原型没有保留策略 | 起算时间;到期删除还是归档;联系方式、照片、凭证和审计是否同期限 | 从业务单关闭日起算;联系方式匿名化,照片和凭证到期删除,审计记录归档 | 待填写 | 确认中 |
| P2-Q13 | 原型覆盖费用、应收应付、账单、收付款和利润,但不能证明二期全部纳入 | 二期财务闭环终点 | 做到费用、应收应付、对账、线下收付款登记与核销、单票利润;不做在线支付、会计凭证和总账 | 待填写 | 待确认 |
| P2-Q14 | 原型费用项目较多,混合头程、仓储和其他阶段 | “02 到仓”首批费用白名单,以及每项应收/应付方向、单位、币种和税率 | 只纳入到仓实际使用项目;白名单外费用允许人工新增但必须审核 | 待填写 | 待确认 |
| P2-Q15 | 原型有费用分类和应收/应付,没有明确阶梯价、最低收费和规则优先级 | 计费维度;是否支持阶梯价、最低收费、封顶、组合价和冲突优先级 | 至少支持客户、往来单位、仓库、服务类型和生效区间;复杂价格结构按实际需要裁剪 | 待填写 | 待确认 |
| P2-Q16 | 原型有费用日期和审核状态,没有明确到仓事件的自动计费节点 | 各类费用在哪个节点试算、生成、生效和锁定;人工费用何时生效 | 实测完成生成试算,差异确认后生效并锁定;非测量费用按已确认业务事件生成 | 待填写 | 待确认 |
填写规则:认可当前建议时,可将建议复制到“临时结论”并把状态改为“临时基线”;不能确定时使用“暂缓”,同时写明二期处理方式。产品到岗复核后再改为“已确认”。
## 五、全量确认跟踪表
项目负责人在产品空缺期间维护临时结论和状态。状态使用:待确认、确认中、临时基线、已确认、暂缓、原型基线;产品到岗后负责复核“临时基线”。
| 编号 | 优先级 | 涉及业务角色 | 状态 |
|---|---|---|---|
| P2-Q1 | P0 | 仓库、平台运营 | 确认中 |
| P2-Q2 | P0 | 业务、调度 | 已确认 |
| P2-Q3 | P0 | 仓库、调度 | 已确认 |
| P2-Q4 | P0 | 仓库、财务/计费 | 确认中 |
| P2-Q5 | P0 | 业务、仓库、客服 | 确认中 |
| P2-Q6 | P0 | 仓库、业务 | 确认中 |
| P2-Q7 | P0 | 仓库 | 已确认 |
| P2-Q8 | P0 | 仓库、客服 | 确认中 |
| P2-Q9 | P0 | 仓库、产品 | 暂缓 |
| P2-Q10 | P0 | 仓库、平台运营 | 暂缓 |
| P2-Q11 | P0 | 业务、法务、运维 | 确认中 |
| P2-Q12 | P0 | 仓库、技术 | 已确认 |
| P2-Q13 | P0 | 产品、业务、财务、技术 | 待确认 |
| P2-Q14 | P0 | 业务、财务/计费 | 待确认 |
| P2-Q15 | P0 | 业务、财务/计费 | 待确认 |
| P2-Q16 | P0 | 业务、仓库、财务/计费 | 待确认 |
| P2-Q17 | P0 | 财务 | 原型基线 |
| P2-Q18 | P0 | 财务/税务 | 原型基线 |
| P2-Q19 | P0 | 财务、内控 | 原型基线 |
| P2-Q20 | P0 | 业务、财务、客服 | 原型基线 |
| P2-Q21 | P0 | 业务、财务、客服 | 原型基线 |
| P2-Q22 | P0 | 财务、内控 | 原型基线 |
| P2-Q23 | P1 | 财务/税务、产品 | 原型基线 |
| P2-Q24 | P1 | 财务、管理层 | 原型基线 |
## 六、详细确认事项与依据
### P2-Q1 少货到仓单如何人工关闭
- 优先级:P0,阻塞收货状态和差异流程设计。
- 需确认方:仓库负责人、平台运营负责人。
- 原型情况:未体现少货关闭人、审批动作和证明材料。
- 需要确认:
- 谁可以发起少货关闭?
- 谁拥有最终关闭权限?
- 是否需要客户确认后才能关闭?
- 必须提供哪些证明:实收数量、现场照片、交接凭证或承运商说明?
- 当前建议:收货员登记少货并上传证据,仓库主管确认关闭;平台运营仅在争议场景介入,系统同步通知客户。
- 业务确认结论:待填写。
- 产品确认状态/结论:确认中;“以实际货物入库为准”作为方向保留,关闭权限、条件、凭证和通知规则仍需在本清单“会议确认主表”补齐。
### P2-Q2 预约取货由哪类服务商承接
- 优先级:P0,影响快递公司、往来单位和调度数据模型。
- 需确认方:业务负责人、调度负责人。
- 原型情况:存在快递公司、往来单位和提货方式字段,但没有明确三者的分配关系。
- 需要确认:
- 只允许选择快递公司,还是也允许车队、供应商等往来单位?
- 同一预约能否更换服务商?更换后是否需要重新通知客户?
- 自有司机是否作为一种服务商处理?
- 当前建议:统一抽象为“可分配服务商”,快递公司、车队和其他承运往来单位作为不同类型。
- 业务确认结论:待填写。
- 产品确认状态/结论:已确认,不走系统服务商调度,相关费用由人工添加费用清单项目。
### P2-Q3 预约采用精确时间还是时间窗
- 优先级:P0,影响预约容量、冲突校验和客户表单。
- 需确认方:仓库负责人、调度负责人。
- 原型情况:只有提货时间和预计到仓日期,没有时间窗及容量规则。
- 需要确认:
- 预约精确到日期、小时还是开始/结束时间窗?
- 每个时间窗允许多少票、多少箱或多少车辆?
- 迟到、爽约和临时改期如何处理?
- 当前建议:采用开始时间和结束时间组成的时间窗,由仓库配置营业时间、停收日期和时间窗容量。
- 业务确认结论:待填写。
- 产品确认状态/结论:已确认,采用人工线下预约时间,系统记录预约结果。
### P2-Q4 实测及计费计算口径
- 优先级:P0,阻塞测量数据模型、差异计算和历史复算。
- 需确认方:仓库负责人、财务/计费负责人。
- 原型情况:明确展示 cm、kg、m³、材积重及原单/实测对比,但没有体积重系数、计费公式、精度和舍入规则。
- 必须逐项确认:
| 计算项 | 业务确认值 |
|---|---|
| 长度单位 | 待填写 |
| 重量单位 | 待填写 |
| 体积单位 | 待填写 |
| 体积重公式及除数 | 待填写 |
| 计费重取值规则 | 待填写 |
| 尺寸、重量和体积精度 | 待填写 |
| 每一步还是最终结果舍入 | 待填写 |
| 舍入方式 | 待填写 |
- 当前建议:公式由服务端按版本统一计算,每条测量记录保存原始值和规则版本,规则变更不反向修改历史记录。
- 产品确认状态/结论:确认中;公式方向已保留,`/363` 含义、单位、计费重取值和舍入规则仍需在本清单“会议确认主表”补齐。
### P2-Q5 哪些差异必须由客户确认
- 优先级:P0,影响差异单、业务暂停和客户确认页面。
- 需确认方:业务负责人、仓库负责人、客户服务负责人。
- 原型情况:有原单/实测对比、审核通过、审核不通过和失败原因,没有自动接受阈值及客户确认条件。
- 必须逐项确认:
| 差异类型 | 自动接受范围 | 必须客户确认范围 | 是否暂停后续作业 |
|---|---|---|---|
| 数量/箱数 | 待填写 | 待填写 | 待填写 |
| 重量 | 待填写 | 待填写 | 待填写 |
| 体积 | 待填写 | 待填写 | 待填写 |
| 包装/破损 | 待填写 | 待填写 | 待填写 |
| 货物归属 | 待填写 | 待填写 | 待填写 |
- 当前建议:阈值按差异类型配置,超过阈值必须客户确认;阈值不得写死在客户端。
- 产品确认状态/结论:确认中;“差异需要客户确认”作为方向保留,拒绝、超时和确认前阻塞规则仍需补齐。
### P2-Q6 隔离区货物如何释放
- 优先级:P0,影响差异暂停、隔离位置和正式上架。
- 需确认方:仓库负责人、业务负责人。
- 原型情况:存在“是否扣货/扣货理由”,但没有隔离库位、批准释放人和释放条件。
- 需要确认:
- 哪些异常必须进入隔离区?
- 谁可以批准释放?
- 哪些情况必须先取得客户确认?
- 释放后由谁安排转移到正式库位?
- 当前建议:差异关闭后由仓库主管批准释放;重大数量、破损或货物归属差异需先由客户确认。
- 业务确认结论:待填写。
- 产品确认状态/结论:确认中;不设隔离区并采用业务暂停作为方向保留,货物位置、解除权限和解除条件仍需补齐。
### P2-Q7 库位容量采用什么校验口径
- 优先级:P0,影响库位档案和上架校验。
- 需确认方:仓库负责人。
- 原型情况:库位原型已有“最大承重(kg)”和闲置/占用状态,但没有超容量处理规则。
- 需要确认:
- 二期是否以最大承重作为强校验?
- 箱数和体积是否需要同时强校验?
- 超容量时禁止上架,还是允许主管授权?
- 当前建议:二期以最大承重为强校验,箱数和体积先提示;确需超额时必须由仓库主管授权并留痕。
- 业务确认结论:待填写。
- 产品确认状态/结论:已确认,当前不做库位容量校验。
### P2-Q8 哪些到仓节点必须上传现场照片
- 优先级:P0,影响收货表单、文件存储和验收规则。
- 需确认方:仓库负责人、客户服务负责人。
- 原型情况:照片上传出现在 BOL/派送页面,到仓收货原型没有照片必传规则。
- 需要确认:
- 正常收货是否必须上传照片?
- 破损、受潮、少货、多货和无预报货物是否分别必传?
- 每类异常至少需要几张、拍摄哪些角度?
- 当前建议:破损、受潮、少货、多货和无预报货物必传;正常收货是否必传由仓库确认。
- 业务确认结论:待填写。
- 产品确认状态/结论:确认中;照片类型已明确,必传粒度、附件限制和补传规则仍需补齐。
### P2-Q9 二期是否使用 PDA
- 优先级:P0,影响二期终端范围和技术方案。
- 需确认方:仓库负责人、项目负责人;产品到岗后复核。
- 原型情况:流程图将 PDA 拣货放在头程“03 出仓”,现有 PDA 原型也是集装箱拣货,不是到仓测量或上架。
- 需要确认:二期到仓签到、测量和上架是否统一使用电脑/响应式作业页,不接入 PDA?
- 当前建议:二期不接 PDA,使用管理后台或响应式作业页;PDA 正式接入在“03 出仓/WMS”阶段规划。
- 业务确认结论:待填写。
- 产品确认状态/结论:暂缓;二期开发基线暂按不接 PDA、使用后台或响应式作业页处理。
### P2-Q10 无预报货物如何认领和超期处理
- 优先级:P0,影响租户隔离、待认领区和错绑冲正。
- 需确认方:仓库负责人、平台运营负责人。
- 原型情况:没有无预报货物、待认领区、认领审批和超期处理设计。
- 需要确认:
- 谁可以创建无预报收货记录?
- 认领需要客户提供什么证明?
- 由单人、双人还是主管确认后绑定订单?
- 超过多少天未认领,如何通知、收费、退回或处置?
- 当前建议:先进入待认领区,由主管确认后绑定企业和订单;超期天数及处置方式由业务另行明确。
- 业务确认结论:待填写。
- 产品确认状态/结论:暂缓;无预报货物不得直接绑定企业订单,具体认领和超期规则后续确认。
### P2-Q11 敏感数据和凭证保存多久
- 优先级:P0,影响存储成本、隐私合规和自动清理任务。
- 需确认方:业务负责人、法务负责人、运维负责人。
- 原型情况:没有联系方式、司机信息、现场照片和交接凭证的保留期限。
- 必须逐项确认:
| 数据类型 | 在线保存期限 | 归档期限 | 到期处理方式 |
|---|---|---|---|
| 客户/司机联系方式 | 待填写 | 待填写 | 待填写 |
| 到仓现场照片 | 待填写 | 待填写 | 待填写 |
| 交接凭证 | 待填写 | 待填写 | 待填写 |
| 导出及下载审计 | 待填写 | 待填写 | 待填写 |
- 当前建议:按数据类型分别设置期限;到期后自动删除或匿名化,下载和批量导出必须保留审计。
- 产品确认状态/结论:确认中;12 个月期限作为方向保留,起算点、删除/归档和各类数据适用范围仍需补齐。
### P2-Q13 二期计费财务的闭环终点
- 优先级:P0,决定二期财务系统边界和总体工作量。
- 需确认方:产品、业务、财务和技术负责人。
- 需要确认:二期是否以“线下收付款登记并完成核销”为终点;是否明确排除在线支付、银企直连、外部开票、会计凭证和总账。
- 当前建议:采用 [二期计费与财务模块规划](二期计费财务模块规划.md)中的轻量财务闭环。
- 产品确认状态/结论:待确认。
### P2-Q14 首批费用项目及应收应付方向
- 优先级:P0,阻塞费用项目、权限和数据初始化。
- 需确认方:业务、财务/计费负责人。
- 需要确认:费用编码、名称、应收/应付、计费单位、默认币种、税率/税务属性、可否人工新增和启停规则。
- 当前建议:先建立到仓相关费用白名单,其他费用人工新增必须审核。
- 产品确认状态/结论:待确认。
P2-Q14 费用白名单按下表逐项填写;原型中存在但“02 到仓”实际不用的费用不要纳入二期。
| 费用编码 | 费用名称 | 应收/应付 | 往来对象 | 计费单位 | 默认币种 | 默认税率 | 自动/人工 | 触发节点 |
|---|---|---|---|---|---|---|---|---|
| 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 | 待填写 |
### P2-Q15 计费规则维度和价格结构
- 优先级:P0,阻塞规则模型和计费引擎。
- 需确认方:业务、财务/计费负责人。
- 需要确认:是否按客户、供应商、仓库、服务、货物属性和有效期区分;是否支持阶梯价、最低收费、封顶、组合价和优先级冲突处理。
- 当前建议:规则版本化,至少支持客户、供应商、仓库、服务和有效期;复杂组合价未确认前不实现。
- 产品确认状态/结论:待确认。
### P2-Q16 费用生成和锁定节点
- 优先级:P0,阻塞实测、差异和费用状态衔接。
- 需确认方:业务、仓库、财务/计费负责人。
- 需要确认:到仓签到、实测完成、差异关闭、上架完成分别生成哪些费用;何时只是试算,何时生效并禁止直接修改。
- 当前建议:实测完成生成试算,差异关闭后确认;事件来源键保证重复触发不重复计费。
- 产品确认状态/结论:待确认。
### P2-Q17 至 P2-Q24 原型财务基线
以下事项已能从财务原型和必要的审计规则形成二期基线,不再发给产品重复确认。详细依据见 [二期计费财务需求确认表](二期计费财务需求确认表.md)。
| 编号 | 二期采用基线 | 状态 |
|---|---|---|
| P2-Q17 | 本位币 CNY;保存原币、人工业务汇率和折算金额,费用生效时锁定汇率快照 | 原型基线 |
| P2-Q18 | 保存未税金额、税率、税额和含税总额;金额/税额 2 位、汇率 6 位,服务端统一舍入 | 原型基线 |
| P2-Q19 | 经办提交、财务审核;生效费用只能调整、红冲或作废并留痕 | 原型基线 |
| P2-Q20 | 支持按选择和按截止时间生成账单,保存结算期间、账期和到期日 | 原型基线 |
| P2-Q21 | 账单审核、确认、拒绝、锁定;争议处理后生成新版本 | 原型基线 |
| P2-Q22 | 线下收付款、部分收付、余额、核销和反核销;不含预收预付、跨币种及银行自动认领 | 原型基线 |
| P2-Q23 | 只登记发票信息和状态,不接外部开票平台 | 原型基线 |
| P2-Q24 | 利润=已生效应收-已生效应付,利润率=利润÷收入;仅财务授权角色可见 | 原型基线 |
## 七、已确认事项
| 编号 | 确认结论 | 后续核验 | 状态 |
|---|---|---|---|
| P2-Q12 | 箱件/托盘标签使用佳博 1324D 热敏标签打印机 | 标签纸尺寸、连接方式、驱动、打印指令协议和仓库部署参数需在开发前实机核验 | 已确认 |
## 八、确认完成标准
阻塞开发的 P0 问题形成临时基线后,项目负责人应组织一次汇总评审并完成以下动作:
- 将确认结论回写到 [二期开发规划](二期开发规划.md)的规划基线、业务规则和状态模型。
- 调整受影响的开发任务、依赖、优先级和验收标准。
- 对仍存在例外或暂缓决定的事项明确负责人、截止日期和临时处理规则。
- 产品空缺期间由项目负责人、业务负责人、仓库负责人、财务负责人和技术负责人共同形成临时范围基线;产品到岗后复核。
- 范围基线确认后再制定正式排期;确认清单本身不代表已经承诺开发时间。
Binary file not shown.
@@ -0,0 +1,37 @@
# 2026-07-28 二期产品确认回传审核记录
> 回传原件:[2026-07-28-二期需求确认-产品回传.xlsx](2026-07-28-二期需求确认-产品回传.xlsx)
> 审核结论:暂不直接合并为正式需求基线
## 一、确认口径
二期由单一产品负责人统一确认,不要求填写产品跟进人、业务确认人和确认日期。回传文件中状态为“已确认”且已填写最终结论,即视为产品确认结果;状态为“暂缓”的项目需要明确二期临时处理方式。
## 二、需要产品补充澄清
| 编号 | 产品当前结论 | 仍需补充 |
|---|---|---|
| P2-Q1 | 以实际货物入库为准 | 谁可以关闭少货到仓单、关闭条件、必填原因/证明、是否通知客户 |
| P2-Q2 | 不走服务商,以人工添加费用清单项目 | 实际由谁取货、是否只做客户送货上门、快递公司/往来单位是否仍参与调度;费用项目不能替代履约主体 |
| P2-Q3 | 人工线下预约时间 | 系统是否仅记录预约结果;需要记录日期、具体时间还是时间段;改期和取消如何留痕 |
| P2-Q4 | 重量体积(毛重/363);总材积重(长×宽×高/6000)×箱数 | 单位、公式中 `/363` 的业务含义、计费重是否取毛重和材积重较大值、精度和舍入规则 |
| P2-Q5 | 差异需客户确认 | 是否所有差异都确认;客户拒绝、超时未确认以及确认前货物能否上架/计费 |
| P2-Q6 | 没有隔离单独的区域 | 差异未关闭时货物放哪里、系统是否使用“业务暂停”而不使用隔离库位、谁可以解除暂停 |
| P2-Q7 | 当前没有库位容量 | 二期是否完全不做容量校验;库位停用、占用和货物类型不匹配是否仍需拦截 |
| P2-Q8 | 称重照片、测量照片上传 | 是否必传、每个箱件还是每个收货批次上传、允许的文件数量/大小和补传规则 |
| P2-Q9 | 暂缓 | 明确二期不接 PDA,并确定使用后台网页或响应式作业页 |
| P2-Q10 | 暂缓 | 暂缓期间无预报货物是否拒收;如允许收货,需要临时认领和超期规则 |
| P2-Q11 | 保存 12 个月 | 从哪个时间点起算、到期删除还是归档、各类照片/联系方式/凭证是否采用同一期限 |
## 三、当前可保留的结论
- `P2-Q12`:标签打印设备为佳博 1324D 热敏标签打印机;标签纸、连接、驱动和指令协议仍需实机核验。
- `P2-Q8` 已明确需要称重照片和测量照片,可作为规则方向保留,必传粒度和附件限制补齐后再锁定。
- `P2-Q9、P2-Q10` 可以保持“暂缓”,但必须给出二期临时处理规则,否则仍会阻塞对应开发任务。
## 四、下一步
1. 产品在新回传副本中补齐上表需要进一步转成开发规则的内容。
2. 财务负责人同时确认新增的 `P2-Q13` 至 `P2-Q24`。
3. 产品重新回传时使用新文件名,不覆盖本次原件。
4. 完成审核后再统一更新正式需求基线和开发进度表。
+28
View File
@@ -0,0 +1,28 @@
# 二期产品确认回传管理
本目录只保存产品原始回传文件,不直接作为正式开发进度表使用,也不覆盖 `docs/二期/虫虫出海二期开发进度表.xlsx`。
## 文件命名
```text
YYYY-MM-DD-二期需求确认-产品回传-vN.xlsx
```
## 合并条件
每个 `P2-Qxx` 同时具备以下内容后才能合并为“已确认”:
- 最终结论能够直接转成业务规则和验收标准。
- 例外情况、暂缓范围和临时处理规则明确。
- 与其他确认项不存在冲突。
二期由单一产品负责人统一确认,不要求填写确认人、产品跟进人和确认日期。产品将状态设置为“已确认”即代表结论生效。
## 合并流程
1. 原样保存产品回传文件,不在原件上二次修改。
2. 对比正式确认清单,形成回传审核记录。
3. 产品补充不完整或冲突的结论,并将状态设置为“已确认”或“暂缓”。
4. 按 `P2-Qxx` 合并到 `二期需求确认清单.md`。
5. 同步更新开发规划、开发任务、依赖、验收标准和 Excel 进度表。
6. 合并前后的正式版本分别保存到 `docs/二期/版本归档/`。
@@ -0,0 +1,224 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1600 1100" width="1600" height="1100" role="img" aria-labelledby="title desc">
<title id="title">跨境物流全链路流程图</title>
<desc id="desc">从头程下单、到仓、出仓及装船发运,到尾程到港前、到港、到仓、出仓和签收的完整业务流程。</desc>
<defs>
<linearGradient id="pageBg" x1="0" y1="0" x2="1" y2="1">
<stop offset="0" stop-color="#F5F9FF"/>
<stop offset="1" stop-color="#F7FBFA"/>
</linearGradient>
<linearGradient id="firstMile" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#155EEF"/>
<stop offset="1" stop-color="#2878FF"/>
</linearGradient>
<linearGradient id="lastMile" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#087E8B"/>
<stop offset="1" stop-color="#16A085"/>
</linearGradient>
<linearGradient id="transit" x1="0" y1="0" x2="1" y2="0">
<stop offset="0" stop-color="#EAF2FF"/>
<stop offset="0.5" stop-color="#DDF5F1"/>
<stop offset="1" stop-color="#EAF2FF"/>
</linearGradient>
<filter id="shadow" x="-15%" y="-15%" width="130%" height="140%">
<feDropShadow dx="0" dy="8" stdDeviation="10" flood-color="#16324F" flood-opacity="0.09"/>
</filter>
<filter id="softShadow" x="-20%" y="-20%" width="140%" height="150%">
<feDropShadow dx="0" dy="4" stdDeviation="6" flood-color="#0F3057" flood-opacity="0.10"/>
</filter>
<marker id="arrowBlue" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto">
<path d="M1 1L8 5L1 9" fill="none" stroke="#7AA7ED" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
</marker>
<marker id="arrowGreen" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="7" markerHeight="7" orient="auto">
<path d="M1 1L8 5L1 9" fill="none" stroke="#62B8AD" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"/>
</marker>
<style>
text{font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC",Arial,sans-serif}
.title{font-size:34px;font-weight:700;fill:#102A43;letter-spacing:1px}
.subtitle{font-size:15px;fill:#627D98}
.lane-title{font-size:22px;font-weight:700;fill:#fff}
.lane-en{font-size:11px;font-weight:600;fill:#fff;opacity:.72;letter-spacing:1.7px}
.phase-title{font-size:18px;font-weight:700;fill:#102A43}
.phase-no{font-size:11px;font-weight:700;fill:#fff;letter-spacing:.5px}
.step{font-size:13px;fill:#334E68}
.step-small{font-size:12px;fill:#334E68}
.step-no{font-size:10px;font-weight:700;fill:#fff}
.summary-label{font-size:11px;font-weight:700;fill:#627D98;letter-spacing:1px}
.summary-value{font-size:15px;font-weight:700;fill:#243B53}
</style>
</defs>
<rect width="1600" height="1100" fill="url(#pageBg)"/>
<circle cx="1490" cy="50" r="180" fill="#D9F1ED" opacity=".42"/>
<circle cx="90" cy="1080" r="220" fill="#DFEBFF" opacity=".48"/>
<!-- 标题与概览 -->
<text x="52" y="58" class="title">跨境物流全链路流程</text>
<text x="52" y="88" class="subtitle">从客户下单到海外签收 · 头程与尾程全节点协同</text>
<g transform="translate(1195 28)">
<rect width="112" height="60" rx="14" fill="#fff" stroke="#D9E2EC"/>
<text x="18" y="22" class="summary-label">业务阶段</text><text x="18" y="45" class="summary-value">8 个阶段</text>
<rect x="124" width="112" height="60" rx="14" fill="#fff" stroke="#D9E2EC"/>
<text x="142" y="22" class="summary-label">关键动作</text><text x="142" y="45" class="summary-value">35 个节点</text>
<rect x="248" width="112" height="60" rx="14" fill="#fff" stroke="#D9E2EC"/>
<text x="266" y="22" class="summary-label">最终结果</text><text x="266" y="45" class="summary-value">完成签收</text>
</g>
<!-- 头程泳道 -->
<rect x="30" y="120" width="1540" height="430" rx="24" fill="#FFFFFF" stroke="#D7E4F4" filter="url(#shadow)"/>
<path d="M54 120H1546A24 24 0 0 1 1570 144V194H30V144A24 24 0 0 1 54 120Z" fill="url(#firstMile)"/>
<g transform="translate(58 142)">
<circle cx="22" cy="22" r="22" fill="#fff" opacity=".16"/>
<path d="M10 23h24M14 23v11h16V23M17 19v-6h10v6M21 27h3" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<text x="58" y="18" class="lane-title">头程物流</text>
<text x="58" y="38" class="lane-en">FIRST-MILE LOGISTICS · 国内集货与出口</text>
</g>
<g transform="translate(1306 145)">
<rect width="210" height="42" rx="21" fill="#fff" opacity=".15"/>
<text x="105" y="26" text-anchor="middle" font-size="13" font-weight="600" fill="#fff">下单 → 到仓 → 出仓</text>
</g>
<!-- 头程阶段连接 -->
<path d="M435 365H474" stroke="#7AA7ED" stroke-width="2" marker-end="url(#arrowBlue)"/>
<path d="M850 365H889" stroke="#7AA7ED" stroke-width="2" marker-end="url(#arrowBlue)"/>
<!-- 一、下单 -->
<g transform="translate(55 220)">
<rect width="380" height="300" rx="18" fill="#F8FBFF" stroke="#C9DBF7"/>
<circle cx="32" cy="32" r="17" fill="#155EEF"/><text x="32" y="36" text-anchor="middle" class="phase-no">01</text>
<text x="60" y="39" class="phase-title">下单</text>
<text x="326" y="37" font-size="11" fill="#829AB1">4 个动作</text>
<line x1="20" y1="64" x2="360" y2="64" stroke="#D9E8FA"/>
<g transform="translate(20 82)">
<rect width="340" height="42" rx="10" fill="#fff" stroke="#DFEAF8"/><circle cx="22" cy="21" r="11" fill="#3B82F6"/><text x="22" y="25" text-anchor="middle" class="step-no">1</text><text x="44" y="26" class="step">客户下单</text>
<rect y="52" width="340" height="42" rx="10" fill="#fff" stroke="#DFEAF8"/><circle cx="22" cy="73" r="11" fill="#3B82F6"/><text x="22" y="77" text-anchor="middle" class="step-no">2</text><text x="44" y="78" class="step">委托我们下单</text>
<rect y="104" width="340" height="42" rx="10" fill="#fff" stroke="#DFEAF8"/><circle cx="22" cy="125" r="11" fill="#3B82F6"/><text x="22" y="129" text-anchor="middle" class="step-no">3</text><text x="44" y="130" class="step">快速下单(只有唛头)</text>
<rect y="156" width="340" height="42" rx="10" fill="#fff" stroke="#DFEAF8"/><circle cx="22" cy="177" r="11" fill="#3B82F6"/><text x="22" y="181" text-anchor="middle" class="step-no">4</text><text x="44" y="182" class="step">换标下单(中转、退货)</text>
</g>
</g>
<!-- 二、到仓 -->
<g transform="translate(470 220)">
<rect width="380" height="300" rx="18" fill="#F8FBFF" stroke="#C9DBF7"/>
<circle cx="32" cy="32" r="17" fill="#155EEF"/><text x="32" y="36" text-anchor="middle" class="phase-no">02</text>
<text x="60" y="39" class="phase-title">到仓</text>
<text x="326" y="37" font-size="11" fill="#829AB1">5 个动作</text>
<line x1="20" y1="64" x2="360" y2="64" stroke="#D9E8FA"/>
<g transform="translate(20 76)">
<rect width="340" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="18" r="10" fill="#3B82F6"/><text x="20" y="22" text-anchor="middle" class="step-no">1</text><text x="40" y="23" class="step">预约取货</text>
<rect y="42" width="340" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="60" r="10" fill="#3B82F6"/><text x="20" y="64" text-anchor="middle" class="step-no">2</text><text x="40" y="65" class="step">送货上门</text>
<rect y="84" width="340" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="102" r="10" fill="#3B82F6"/><text x="20" y="106" text-anchor="middle" class="step-no">3</text><text x="40" y="107" class="step">入库测量(称重计费)</text>
<rect y="126" width="340" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="144" r="10" fill="#3B82F6"/><text x="20" y="148" text-anchor="middle" class="step-no">4</text><text x="40" y="149" class="step">调整差异核对</text>
<rect y="168" width="340" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="186" r="10" fill="#3B82F6"/><text x="20" y="190" text-anchor="middle" class="step-no">5</text><text x="40" y="191" class="step">仓库作业(指定库位)</text>
</g>
</g>
<!-- 三、出仓 -->
<g transform="translate(885 220)">
<rect width="660" height="300" rx="18" fill="#F8FBFF" stroke="#C9DBF7"/>
<circle cx="32" cy="32" r="17" fill="#155EEF"/><text x="32" y="36" text-anchor="middle" class="phase-no">03</text>
<text x="60" y="39" class="phase-title">出仓</text>
<text x="604" y="37" font-size="11" fill="#829AB1">9 个动作</text>
<line x1="20" y1="64" x2="640" y2="64" stroke="#D9E8FA"/>
<g transform="translate(20 76)">
<rect width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="18" r="10" fill="#3B82F6"/><text x="20" y="22" text-anchor="middle" class="step-no">1</text><text x="40" y="23" class="step-small">智能排柜</text>
<rect y="42" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="60" r="10" fill="#3B82F6"/><text x="20" y="64" text-anchor="middle" class="step-no">2</text><text x="40" y="65" class="step-small">订舱</text>
<rect y="84" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="102" r="10" fill="#3B82F6"/><text x="20" y="106" text-anchor="middle" class="step-no">3</text><text x="40" y="107" class="step-small">预约托车</text>
<rect y="126" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="144" r="10" fill="#3B82F6"/><text x="20" y="148" text-anchor="middle" class="step-no">4</text><text x="40" y="149" class="step-small">PDA 拣货</text>
<rect y="168" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="20" cy="186" r="10" fill="#3B82F6"/><text x="20" y="190" text-anchor="middle" class="step-no">5</text><text x="40" y="191" class="step-small">拍货柜及铅封照上传</text>
<rect x="320" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="340" cy="18" r="10" fill="#3B82F6"/><text x="340" y="22" text-anchor="middle" class="step-no">6</text><text x="360" y="23" class="step-small">客户上传报关资料</text>
<rect x="320" y="42" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="340" cy="60" r="10" fill="#3B82F6"/><text x="340" y="64" text-anchor="middle" class="step-no">7</text><text x="360" y="65" class="step-small">整理给到报关代理报关</text>
<rect x="320" y="84" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="340" cy="102" r="10" fill="#3B82F6"/><text x="340" y="106" text-anchor="middle" class="step-no">8</text><text x="360" y="107" class="step-small">回执上传系统供客户下载</text>
<rect x="320" y="126" width="300" height="36" rx="9" fill="#fff" stroke="#DFEAF8"/><circle cx="340" cy="144" r="10" fill="#3B82F6"/><text x="340" y="148" text-anchor="middle" class="step-no">9</text><text x="360" y="149" class="step-small">查港务信息(预计开船、到港等)</text>
<g transform="translate(320 171)"><rect width="300" height="32" rx="16" fill="#E7F0FF"/><circle cx="24" cy="16" r="8" fill="#155EEF"/><path d="M20 16h8M24 12v8" stroke="#fff" stroke-width="1.5"/><text x="44" y="21" font-size="12" font-weight="600" fill="#155EEF">完成国内出仓,等待装船</text></g>
</g>
</g>
<!-- 海运衔接带 -->
<g transform="translate(350 570)" filter="url(#softShadow)">
<rect width="900" height="74" rx="37" fill="url(#transit)" stroke="#B9D8DF"/>
<path d="M0 37H286M614 37H900" stroke="#78AFC1" stroke-width="1.5" stroke-dasharray="7 7"/>
<g transform="translate(302 12)">
<circle cx="25" cy="25" r="25" fill="#fff"/>
<path d="M11 29h28l-4 7H16l-5-7Zm5-3h19l-3-11H19l-3 11Zm8-11V9h4v6" fill="none" stroke="#087E8B" stroke-width="2" stroke-linejoin="round"/>
<text x="68" y="23" font-size="16" font-weight="700" fill="#0B6070">装船发运 · 国际海运在途</text>
<text x="68" y="43" font-size="12" fill="#527C86">头程完成,进入海外清关与尾程履约</text>
</g>
</g>
<!-- 尾程泳道 -->
<rect x="30" y="670" width="1540" height="400" rx="24" fill="#FFFFFF" stroke="#CFE7E2" filter="url(#shadow)"/>
<path d="M54 670H1546A24 24 0 0 1 1570 694V744H30V694A24 24 0 0 1 54 670Z" fill="url(#lastMile)"/>
<g transform="translate(58 692)">
<circle cx="22" cy="22" r="22" fill="#fff" opacity=".16"/>
<path d="M10 27h7l3-10h10l3 10h3M15 27a4 4 0 1 0 0 8 4 4 0 0 0 0-8Zm20 0a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<text x="58" y="18" class="lane-title">尾程物流</text>
<text x="58" y="38" class="lane-en">LAST-MILE LOGISTICS · 海外清关、入仓与派送</text>
</g>
<g transform="translate(1185 695)">
<rect width="330" height="42" rx="21" fill="#fff" opacity=".15"/>
<text x="165" y="26" text-anchor="middle" font-size="13" font-weight="600" fill="#fff">到港前 → 到港 → 到仓 → 出仓 → 签收</text>
</g>
<!-- 尾程连接线 -->
<path d="M328 900H352" stroke="#62B8AD" stroke-width="2" marker-end="url(#arrowGreen)"/>
<path d="M633 900H657" stroke="#62B8AD" stroke-width="2" marker-end="url(#arrowGreen)"/>
<path d="M938 900H962" stroke="#62B8AD" stroke-width="2" marker-end="url(#arrowGreen)"/>
<path d="M1243 900H1267" stroke="#62B8AD" stroke-width="2" marker-end="url(#arrowGreen)"/>
<!-- 尾程阶段卡片 -->
<g transform="translate(48 770)">
<rect width="280" height="268" rx="16" fill="#F7FCFB" stroke="#CBE7E1"/>
<circle cx="28" cy="29" r="16" fill="#087E8B"/><text x="28" y="33" text-anchor="middle" class="phase-no">01</text><text x="54" y="35" class="phase-title">到港前</text><text x="54" y="53" font-size="11" fill="#648A87">船在海上</text>
<g transform="translate(16 72)">
<rect width="248" height="36" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="18" r="10" fill="#13A18D"/><text x="18" y="22" text-anchor="middle" class="step-no">1</text><text x="38" y="23" class="step-small">FBA 仓预约</text>
<rect y="42" width="248" height="44" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="64" r="10" fill="#13A18D"/><text x="18" y="68" text-anchor="middle" class="step-no">2</text><text x="38" y="61" class="step-small">BOL 预清货</text><text x="38" y="77" font-size="10" fill="#829AB1">时间、费用、目的仓</text>
<rect y="92" width="248" height="42" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="113" r="10" fill="#13A18D"/><text x="18" y="117" text-anchor="middle" class="step-no">3</text><text x="38" y="110" class="step-small">清关资料上传到</text><text x="38" y="126" class="step-small">对应货柜</text>
<rect y="140" width="248" height="36" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="158" r="10" fill="#13A18D"/><text x="18" y="162" text-anchor="middle" class="step-no">4</text><text x="38" y="163" class="step-small">明细备注货物中转等</text>
</g>
</g>
<g transform="translate(353 770)">
<rect width="280" height="268" rx="16" fill="#F7FCFB" stroke="#CBE7E1"/>
<circle cx="28" cy="29" r="16" fill="#087E8B"/><text x="28" y="33" text-anchor="middle" class="phase-no">02</text><text x="54" y="35" class="phase-title">到港</text>
<g transform="translate(16 82)">
<rect width="248" height="50" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="25" r="10" fill="#13A18D"/><text x="18" y="29" text-anchor="middle" class="step-no">1</text><text x="38" y="30" class="step-small">清关放行</text>
<rect y="60" width="248" height="64" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="92" r="10" fill="#13A18D"/><text x="18" y="96" text-anchor="middle" class="step-no">2</text><text x="38" y="88" class="step-small">DO 或 PU 邮发</text><text x="38" y="106" class="step-small">通知码头车队提柜</text>
<rect y="136" width="248" height="38" rx="19" fill="#E3F6F2"/><text x="124" y="160" text-anchor="middle" font-size="12" font-weight="600" fill="#087E8B">完成提柜 · 运往海外仓</text>
</g>
</g>
<g transform="translate(658 770)">
<rect width="280" height="268" rx="16" fill="#F7FCFB" stroke="#CBE7E1"/>
<circle cx="28" cy="29" r="16" fill="#087E8B"/><text x="28" y="33" text-anchor="middle" class="phase-no">03</text><text x="54" y="35" class="phase-title">到仓</text>
<g transform="translate(16 82)">
<rect width="248" height="42" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="21" r="10" fill="#13A18D"/><text x="18" y="25" text-anchor="middle" class="step-no">1</text><text x="38" y="26" class="step-small">开柜拍照比对</text>
<rect y="50" width="248" height="42" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="71" r="10" fill="#13A18D"/><text x="18" y="75" text-anchor="middle" class="step-no">2</text><text x="38" y="76" class="step-small">根据 PDA 需求打托作业</text>
<rect y="100" width="248" height="42" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="121" r="10" fill="#13A18D"/><text x="18" y="125" text-anchor="middle" class="step-no">3</text><text x="38" y="126" class="step-small">派送车队筛选预约</text>
</g>
</g>
<g transform="translate(963 770)">
<rect width="280" height="268" rx="16" fill="#F7FCFB" stroke="#CBE7E1"/>
<circle cx="28" cy="29" r="16" fill="#087E8B"/><text x="28" y="33" text-anchor="middle" class="phase-no">04</text><text x="54" y="35" class="phase-title">出仓</text>
<g transform="translate(16 72)">
<rect width="248" height="34" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="17" r="9" fill="#13A18D"/><text x="18" y="21" text-anchor="middle" class="step-no">1</text><text x="36" y="22" class="step-small">预排车转 BOL 送货</text>
<rect y="40" width="248" height="34" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="57" r="9" fill="#13A18D"/><text x="18" y="61" text-anchor="middle" class="step-no">2</text><text x="36" y="62" class="step-small">PDA 拣货装车</text>
<rect y="80" width="248" height="34" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="97" r="9" fill="#13A18D"/><text x="18" y="101" text-anchor="middle" class="step-no">3</text><text x="36" y="102" class="step-small">派送车队到仓装车</text>
<rect y="120" width="248" height="34" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="137" r="9" fill="#13A18D"/><text x="18" y="141" text-anchor="middle" class="step-no">4</text><text x="36" y="142" class="step-small">整柜派送</text>
<rect y="160" width="248" height="34" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="177" r="9" fill="#13A18D"/><text x="18" y="181" text-anchor="middle" class="step-no">5</text><text x="36" y="182" class="step-small">自提出仓(一件代发)</text>
</g>
</g>
<g transform="translate(1268 770)">
<rect width="284" height="268" rx="16" fill="#F7FCFB" stroke="#CBE7E1"/>
<circle cx="28" cy="29" r="16" fill="#087E8B"/><text x="28" y="33" text-anchor="middle" class="phase-no">05</text><text x="54" y="35" class="phase-title">签收</text>
<g transform="translate(16 82)">
<rect width="252" height="42" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="21" r="10" fill="#13A18D"/><text x="18" y="25" text-anchor="middle" class="step-no">1</text><text x="38" y="26" class="step-small">私人仓签收回执上传</text>
<rect y="50" width="252" height="42" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="71" r="10" fill="#13A18D"/><text x="18" y="75" text-anchor="middle" class="step-no">2</text><text x="38" y="76" class="step-small">FBA 仓签收回执上传</text>
<rect y="100" width="252" height="42" rx="9" fill="#fff" stroke="#D8EBE7"/><circle cx="18" cy="121" r="10" fill="#13A18D"/><text x="18" y="125" text-anchor="middle" class="step-no">3</text><text x="38" y="126" class="step-small">送仓异常处理</text>
<g transform="translate(0 156)"><rect width="252" height="38" rx="19" fill="#087E8B"/><circle cx="24" cy="19" r="9" fill="#fff" opacity=".2"/><path d="M20 19l3 3 6-7" fill="none" stroke="#fff" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><text x="132" y="24" text-anchor="middle" font-size="13" font-weight="700" fill="#fff">全流程完成 · 已签收</text></g>
</g>
</g>
<text x="800" y="1088" text-anchor="middle" font-size="11" fill="#829AB1">HEAD-HAUL &amp; LAST-MILE LOGISTICS PROCESS · 全程节点可追踪</text>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.