Files
docs/海外仓业务/外配业务首版开发契约.md
T
2026-10-21 13:22:39 +08:00

40 lines
7.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 外配任务开发契约
## 已确认业务边界(2026-10-21更新)
本页是原排车装车后实际接入拼车货物的运营视图,与自有业务按是否实际拼车区分,不按车辆归属区分。仅显示 ACTIVE 且 AFTER_LOADING、DELIVERING、DELIVERED 的原排车,一单一行,多个目的地、预约在行内展开。自有车辆、档案外配车辆、临时外配车辆均可进入;车辆信息继续读取原装车证据,不在GET回填旧样本。原排车四页签及履约流程不变。
实际拼车判定复用原关系:`ll_fleet_external_booking.offer_id`非空、状态BOUND、有实收确认,且trip_id/dispatch_no指向本车;来货客户和入仓来源须在本车真实计划托盘组成中,实托已关联且货物箱数为正。只发布余位、询价、确认占位、未排入的实收、已取消或移出本车的货物不计;非需求池来源的普通外接登记和多客户同车本身也不计。用EXISTS判断,至少一票即整车归入外配任务,多票不得重复计数。自有入口使用相同条件的否定;列表、全量统计、详情和运营操作保持一致。装车后货物不能普通增删,已绑定预订不能普通取消;复用这些现行门禁及关联事实,不新增分类持久化或回填链路。
用户本轮明确批准:后台登记整车承运金额,单价为金额除以实际物理托数;保留逐目的仓实际到达时间和五个装车照片位,省略实际里程、油耗与两个油耗照片位。不实现原型的自有货/外接货拆分成本或自动分摊、应付/支付;不增加报价、派单、改派或异常状态机。异常仍按已确认的线下处理规则。
沿自有业务已确认的计划发车日期筛选、完整筛选统计、三阶段、物理托盘去重、币种 CNY/USD 显式选择、金额零值与空值区分、两位单价及版本/原键恢复约束。承运商、车牌、司机电话来自原资源快照;临时外配 vehicleId 为空合法,缺承运商显示“—”,不猜当前档案。装车及运营信息不推定真实签收。
## 共同接口与承载
- API 前缀 `/api/platform/v1/last-leg/fleet/outsourced-business`;前端路由 `/overseas-master-data/outsourced-business` 和 `/:dispatchNo`;权限 `platform:fleet:outsourced-business:list/edit/upload`,查看含详情、历史及已授权照片读取。原权限与客户隔离不放宽,外配权限不能调用自有 API,反之亦然。
- list/detail/history/operations/photos/commands 八类路径及请求方法沿自有业务结构;查询字段与同筛选四项统计相同,不拿当前页算总数。公开标识只用 dispatchNo,后台权威金额与托数计算,不逐行 GET。
- 外配 DTO 单独明确表达精简字段:`operations={money,arrivals}`,无实际里程/油耗;`vehicle={vehicleId,plate,ownership,carrierName}`,vehicleId 可空;`photoSummary={loadingCount}`。其他 Row/Detail/History/Command 字段及版本语义沿已确认自有合同,附加与原主单版本独立。后台拒绝本域不支持的油耗写入/照片槽,不能仅前端隐藏。
- 五框枚举为 LOADING_SCENE、LOADING_LIST、PRE_DEPARTURE_CHECK、DRIVER_LICENSE、RECEIPT;复用已经发布的原排车装车照片 File 分类,不新增 File 分类。上传与绑定分开,multipart 内 file/idempotencyKey,未知停写、绑定失败复用原 fileId 与原键。
- 详情三个彩色图标页签:任务与车辆信息、路线货物与凭证、操作记录。运营登记和照片居中弹窗沿现有组件规范;照片只有装车五框。列表操作列第一列;缺值明确“—”,无 GPS/ETA 样例。
- 复用四张附加表及原装车捕获;服务端按实际拼车分类与可信入口限定业务访问,原车辆冻结证据只保证真实车辆信息。vehicle.ownership允许OWNED/DISPATCHED,不能固定返回DISPATCHED。本次不扩展两页运营表单及照片槽,本域不新增业务表、不改原主单/库存/财务。
## 本批职责与验证
总控为当前 TEST 对话 `01a15230-a9d6-7503-a8a9-d70691df49e5`,工作区保持 `C:/Users/BY-OY/Desktop/code/chongchong-global`。复用用户明确指定的三个独立对话,不创建新对话。
- 排车派送与费用后端 `01a1524f-56a9-7320-a5fd-8ff76fa4356b`:外配后端唯一实现者;可写 `fleet/outsourcedbusiness/`、直接测试和本域独立 OpenAPI;为复用原附加记录,允许定点调整 `fleet/ownedbusiness/` 的公共内部作用域/查询/命令服务及其直接测试,保留自有公开合同和已有行为。不得写 dispatch 主流程、File、IAM、共享 SQL、导航或其他后端域;共享触点交根。先返回计划改动路径和共同 DTO 确认,再按本契约实现。
- 排车前端与 PDA `01a1524f-52c7-7cc3-9b08-d34ad24c172a`:外配 Admin 页面、组件、类型、API 及直接测试;不得改自有在途生产组件或共享导航/路由/权限。先做显示与交互,再按后端真实合同接线,禁止 Mock/Fixture 进入实际页面。
- 排车后端 `01a1524f-4f11-70c2-8a46-8e06e73a2d86`:本批转为自有发布候选及 HTTP 验收专项;共享环境只在根明确交接执行窗口后写入,不与根同时发布或造数。
- 根唯一维护公共契约、导航/根路由/权限/SQL/API 门禁、发布和集成;自有固定发布对象 `7c6a3af473e892a7e244ddc0b88cf00ca5708a7d` 与后续外配源码分开核实,不夹带在途外配进入本次自有发布。
测试经 local-check,先受影响回归、同批统一门禁;同时覆盖自有不回归、两类外配身份、缺快照、三个阶段、多客户同托、多目的地、完整过滤统计、金额清空/零值/两位单价、到达、五图历史/授权/幂等,以及油耗写入拒绝。实现完成、检查通过、TEST 发布、真实 HTTP 与1920×1080、100%人工页面验收分别记录;下节记录已交付的实现与验证,最新运行及HTTP事实只查部署主契约,不将准备阶段状态当作当前状态。
## 本轮实现、验证与执行交接
首版已交付:前端19个新文件,摘要`e33793d079d06010a8c221eaebb337424988489ce77ea14b0f3a60aa89c1efa2`;后端14文件,包含三外配生产类、内部固定作用域复用、独立OpenAPI及14个新增测试。根首次编译发现限定泛型的类型注解问题,已改为显式导入Arrival后复验。联合Maven82项全部通过,覆盖原自有35、scope10、外配合同4、原装车24及读适配/Mapper/schema门禁;IAM权限种子4项、Gateway/依赖联合34项通过,八公开路径及56条引用可解析,AGENTS索引1229项通过。
前端36项定向、默认资源类型检查与构建通过。完整Admin461文件4144项中4094通过、50失败,来自其他在途客户选择器改造的三份OceanBooking/GlobalSmartLoading测试,本域及导航路由没有失败。不修改或发布这些在途文件,不标记完整全绿。外配最小24路径及23项直接依赖已与实际Admin#661一致核对,用户批准固定Admin`3f4021c0ab05b9811bbb193bf47ebb6e9bf4c5db`、Lastleg`9f3755f8e246f763054d1048e58ef52f7e0fca39`发布和三权限最小SQL;不新增表或重置数据。真实发布与HTTP结果唯一维护在部署主契约。
用户进一步要求发布和联调也分配三个对话:56执行已授权IAM及Lastleg,52独立审IAM后执行Admin,4f在根交接环境窗口后执行自有/外配真实HTTP;根停止环境写操作,维护门禁、回执核对及调度。各任务修改新独占一次性发布/验收驱动,不相互覆盖根已冻结的驱动和原人工样本;未知写必须按原意图核对,不能自动重试。