40 lines
7.6 KiB
Markdown
40 lines
7.6 KiB
Markdown
# 外配任务开发契约
|
||
|
||
## 已确认业务边界(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;根停止环境写操作,维护门禁、回执核对及调度。各任务修改新独占一次性发布/验收驱动,不相互覆盖根已冻结的驱动和原人工样本;未知写必须按原意图核对,不能自动重试。
|