diff --git a/Admin货柜管理样式核对记录.md b/Admin货柜管理样式核对记录.md index b60e123..3466cfb 100644 --- a/Admin货柜管理样式核对记录.md +++ b/Admin货柜管理样式核对记录.md @@ -1,5 +1,15 @@ # Admin 货柜管理样式核对记录 +## 智能装柜跨客户加入与箱数对齐(2026-10-20) + +用户截图 `codex-clipboard-708cec4f-a0c5-4f76-a2f5-8bfceeb998ca.png` 反馈确认加入后提示无权限、箱数输入未对齐;原始响应为 `A0403 / 客户归属不匹配`。源码确认是 `SmartLoadingService` 将柜次关联订舱的客户快照误作候选/加入/调整的客户白名单,并被前端统一403提示掩盖;不是本次管理员缺少操作权限。 + +后端移除该旧限制,候选、普通入仓、待审核占位、整托、调整及推荐允许跨客户,仍保留每票权威客户身份、显式筛选、权限、版本、占用、容量及作业门禁。正式语义见[阶段三4.3](头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md#43-智能推荐和人工加入)。未改IAM、网关或账号权限,也不修改测试存量数据。 + +“本次分配箱数”改用与上方相同的原生表格标签列,输入位于其余三列,保留必填语义、原上下限及提交逻辑。加入失败及诊断标识在当前分配弹框内呈现,保留箱数输入;主工作区不重复同一错误。真实缺权限仍按原403拒绝,不自动重试或放宽授权。 + +经 `local-check.ps1` 完成前端定向2文件50项测试及类型检查,均通过。后端定向 `SmartLoadingServiceTest` 的 Maven 检查已完成生产源码编译,但测试编译被工作区另一处 `FirstlegDocumentNumberGeneratorTest` 的3处旧 `JdbcTemplate` 构造参数阻断,尚不能认定服务回归通过;未改写该编号重构的在途文件。跨客户候选、普通加入和待审核加入的回归断言已同步。未部署,真实接口与1920×1080、100%缩放下的对齐效果待更新服务后人工确认。 + ## 货柜详情截图反馈(2026-10-20) 依据用户截图 `codex-clipboard-3e6e27f8-10fe-4b74-93a3-0bcd5ead5a11.png`,本次只调整共享货柜详情及其实际消费的异常、履约轨迹展示;当前工作区的其他在途改动保留。 diff --git a/README.md b/README.md index c76aaa5..ace3a14 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ - [测试环境单机部署与配置契约](测试环境单机部署与配置契约.md):唯一环境、部署配置、整体切换与验收。 - [统一认证与服务通信契约](统一认证与服务通信契约.md):统一入口、权限撤销、逐事件投递与幂等。 +- [业务单据编号契约](业务单据编号契约.md):单据前缀、北京时间日流水、唯一性及保留编号范围。 ## 业务域文档 diff --git a/业务单据编号契约.md b/业务单据编号契约.md new file mode 100644 index 0000000..5e796d2 --- /dev/null +++ b/业务单据编号契约.md @@ -0,0 +1,42 @@ +# 业务单据编号契约 + +## 格式与分配 + +纳入本契约的新建业务单据采用 `前缀 + 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` 同柜组 | +| Lastleg 入出库 | `IP` 入仓计划、`CK` 普通出库、`DFCK` 一件代发出库、`HBCK` 换标出库、`THCK` 退货出库、`DL` 派送、`EX` 异常、`CD` 废弃 | +| 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` 车辆运维记录 | +| Finance | `REC` 对账单、`AR` 应收结算、`AP` 应付结算、`RC` 充值申请、`AC` 账户流水、`VC` 车辆成本、`VP` 车辆付款、`PAY` 结算收付款流水 | + +同一类型的所有创建入口共用序列:例如普通卡车下单与车队商业池创建均使用 `TR`;正常车次与取货车次均使用 `CT`。预装和正式装柜清单继续使用同一个 `LP` 计划编号。 + +## 明确保留的规则 + +- 入仓码、拆分子订单号和子入仓码不变。子订单继续使用主订单号加拆分后缀;新主订单改号后子单自然继承主号,但不改拆分算法或重新分配独立流水。 +- 柜次号继续使用全局连续的 `D0001`,不按日期重置,超过四位自然增长。 +- 实物箱码、散货托盘码、退货/转运箱码及一件代发 `DP-yyMMdd-####` 托盘标签不纳入本次改号。 +- 尾程独立 `WC` 编号尚未确认。头程来源尾程订单保留原分组规则;换标、转运、退货来源尾程订单继续沿用对应业务单号,不增加第二套业务身份。 +- 自营采集任务号、主数据编码及未列入登记表的其他编号不在本次范围。 +- 外部提单号、真实集装箱号、运单号、FBA 货件号、银行流水号等保留外部原号。 + +## 实现与验收 + +通用格式由 `baiyue-firstleg/common-core/.../number/DailyDocumentNumber.java` 提供;各服务通过自己的 `DocumentSequenceRepository → DocumentSequenceMapper` 访问本库编号表。海外排车继续复用原 `DispatchNumberSequence`。 + +验证覆盖北京时间跨日、前缀独立、并发唯一、外层回滚不复用、缓存绕过、9999 上限、业务重放及保留编号规则。数据库变更同步模块空库基线和 `deploy/sql/` 统一空库入口;本地测试不代表已执行数据库变更或已部署。 diff --git a/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md b/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md index 59ccacb..641aa43 100644 --- a/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md +++ b/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md @@ -89,6 +89,10 @@ 人工加入:选择候选,填写普通货分配箱数或选择一件代发整托,携带计划版本提交。系统重新校验资格;页面旧结果不能作为写入依据。 +平台柜次允许拼装多个客户的货物。关联订舱中的客户资料是业务快照,不是柜次的客户准入名单;不能据此裁剪其他客户的候选,或拒绝其普通箱数、待审核占位、整托分配及后续数量调整。智能推荐仍遵循渠道和用户显式选择的客户/入仓码范围。 + +跨客户拼柜不改变货物归属。每条明细仍以权威订单、入库单及托盘的原客户身份取数、写入和重算费用;客户端、文件、费用、报关资料及其他客户可见接口继续按原客户隔离,不能把物理拼柜当作跨客户读取授权。 + 一件代发一票多托时逐托展示,其中一托已分配不得隐藏其他未分配托盘。容量不足时跳过整托,不能回退成按箱拆托。 ### 4.4 调整与费用影响 diff --git a/测试环境单机部署与配置契约.md b/测试环境单机部署与配置契约.md index a53ca96..56747fd 100644 --- a/测试环境单机部署与配置契约.md +++ b/测试环境单机部署与配置契约.md @@ -1,5 +1,126 @@ # 测试环境单机部署与配置契约 +## 本轮排车 HTTP 目标完成:原PLAN与自有/临时外配扩展(2026-10-21) + +本轮目标为TEST真实HTTP联调和完整请求响应小于1秒;截至本记录,原离港预排主链及原自有/临时外配同托双来源两条扩展链全部完成。不得扩大为界面、实物硬件或未单独验证的财务不干扰验收已通过。 + +| 已验证目标 | 最终权威事实 | 证据 | +| --- | --- | --- | +| 原柜离港后、到港前先预排,再沿原计划与排车出库履约 | 原柜TSTU5934549;原计划IP-ONT-20261020-845889;PC202610210001最终DELIVERED,原派送DELIVERED、出库OUTBOUNDED、车次COMPLETED、车辆司机分别释放 | `baiyue-firstleg/reports/fleet-plan-after-loading-DEPARTEDPLAN20261020LIVE1/`及其封印父报告 | +| 自有车辆、同实托两条换标来源 | PC202610200001最终DELIVERED;itemCount=2、palletCount=1、2箱全部拣货与出库;车次COMPLETED,两资源释放 | `baiyue-firstleg/reports/fleet-extra-stage-EXTRASTAGE20261021LIVE1/`,OWNED_SHARED | +| 临时外配无车辆主档、同实托两条换标来源 | PC202610200002最终DELIVERED,同为2来源/1实托/2箱;vehicleId为空但真实车辆释放记录存在,司机释放、车次COMPLETED,未伪造主档占用查询 | 同上,EXTERNAL_SHARED | +| 真实分页与响应耗时 | 默认第一页、第二页及换标筛选成功,页间无重复、总数一致;完整响应757.6382/516.8088/653.2847ms | `baiyue-firstleg/reports/fleet-query-after-hotfix-389-20261021/report.json`;#390/#391未修改该查询 | + +原PLAN累计181次不重复完整响应均小于1000ms,最大539.3415ms;7b独立只读复核身份时序、原失败闭合、state/result/journal/network和33个去重封印,未发现未闭合HTTP项。最终派送安排至释放段64项通过、39次请求最大441.0899ms。实际时序为北京时间10月20日23:56离港、10月21日01:49预排、02:23到港、02:24实收及首拣、02:46装车、02:59签收。 + +extra原前段152项检查通过,94次完整HTTP最大417.0776ms;后缀184项检查全部通过,105次完整HTTP最大451.4096ms。两张原单均从既有AFTER_LOADING继续,没有重造或重放前段。执行前刷新完整客户仓基线:OWNED旧库存完全一致;EXTERNAL增加的3条余额、1条位置、7条流水均以正式只读PLAN/订单/库存证明关联到本批三组专属PLAN,原行无修改或删除。BEFORE_SUFFIX、AFTER_DEPART、AFTER_SIGN、AFTER_RELEASE及全段最终两客户库存均与刷新基线逐字段相等,根再次独立读取比较全部为true。OWNED最终1余额/3位置/18流水;EXTERNAL最终272余额/232位置/993流水。两条物理实托仍各计一次,无二次扣库存。 + +extra实际保存读回检查、会话退出和执行锁释放通过;state/result SHA同为 `73ebc71194f82b7acc237ff72dfeb3c1dba46d308ce1a9b818adea6658f01f3e`,`backendHttpPassed=true`。前段计时证据 `baiyue-firstleg/reports/fleet-extra-timing-EXTRA20261020LIVE1/continuation-known-prepared/result.json`。第二有权平台账号的重放隔离已由独立 `fleet-second-actor-FLEETACTOR220261020LIVE1/result.json` 覆盖:83项/57请求,原详情与命令不变,专用账号已确认停用、两会话退出;不能因extra自身未重复创建该账号而误列为本轮未完成。 + +TEST最终Lastleg为#391/`5d2a1d5b7258746f3d824a818460d78a5c61fd1f`,Admin为#667/`873e16f4de7ac10ecdb929ac1341d229fe71596a`,已核对运行健康和发布配置恢复。原S0500、S0503及脚本字段误判均保留原证据并由对应修复、真实负例或后继成功链闭合。各脚本仍保留UI/硬件及独立Finance前后基线未验证的限制;这些不属于此次明确的HTTP流程与时延目标,不把运营金额自动推定为客户账务已核对。 + +## 离港预排至原单履约真实 HTTP 主链完成(2026-10-21) + +56最终after-loading接续模块 `53baee80c900ff6bf55c5217723e7f504890db844accd9606bb24cc7f5433d95`、测试 `c730675f2c594fedf012ac9f77ecd3694a81dd59a5ba113dca4827ddfae75e06` 经真实已保存preview/items/pick/完整库存驱动的21项检查和63独立复核GO,根核对传输/范围后交4f执行。库存关联采用原订单ID+原计划号+入仓码,禁止重放装车,原失败脚本及报告不变;本轮无需再发布。 + +4f在匹配#391的运行证明下实际完成原排车 `PC202610210001` 的派送安排、发车、签收、车次结案及车辆/司机分别释放。最终派送 `DL-WH-20261021-234114` 为DELIVERED,出库 `OB-WH-20261021-456898` 为OUTBOUNDED,原排车DELIVERED,原车次 `TR-8KY97CP3J51SUUYSWQ143MEMW` 为COMPLETED。实际resource-occupancy查询证明分别释放后原占用已清空;全程保持原柜 `TSTU5934549`、原计划 `IP-ONT-20261020-845889`、原条目及实托,不另建现货排车代替预排。 + +- 后半程64项断言通过、39次完整HTTP最大441.0899ms;包含已保存前段的181次完整响应均小于1000ms,最大539.3415ms。原历史失败仍保留,其生产修复/业务拒绝及本地脚本修正通过对应后继证据闭合,不把历史失败改写为成功。 +- BEFORE_ARRANGEMENT、AFTER_DEPARTURE、AFTER_SIGNING、AFTER_RELEASE四份完整客户仓快照均为272条余额、232条位置、993条流水;相对原装车前基线无新增、删除或字段变化,未再次扣库存。 +- 实际保存state/journal读回、会话退出均通过,`backendHttpPassed=true`、`serializationVerified=true`;界面/实物硬件不在此次HTTP证明范围,保留未验。原extra自有/临时外配两单后缀仍待执行,不能据此把全部扩展验收标为完成。 + +根独立读取最终请求、状态、四份库存差异及全段原始计时,证据 `baiyue-firstleg/reports/fleet-plan-after-loading-DEPARTEDPLAN20261020LIVE1/`,范围复核 `.codex-temp/fleet-plan-after-loading-root-review-20261021.json`。4f已获原extra已审287cfb35后缀执行放行,须先刷新两客户完整证明及实际#391运行证明;7b并行只读复核主链身份、时序、失败闭合和最终证据。 + +## 原预排装车完成,派送安排前脚本字段校验待修(2026-10-21) + +4f在匹配#391下执行已审after-pick后缀:原排车 `PC202610210001`、原车次 `TR-8KY97CP3J51SUUYSWQ143MEMW` 保持同原柜/计划/实托,唯一loading-complete回执为APPLIED,进入AFTER_LOADING/v6。此前21项断言通过,15次完整HTTP均低于1000ms(最慢539.3415ms),会话正常退出。读取真实派送预览后,本地关联校验拒绝,transfer-delivery尚未发送,没有未知写,整段仍为FAILED而非履约完成。 + +真实预览的ORDER来源、原订单ID、条目、实托和成功拣货位置均匹配;库存余额的inboundOrderId是原订单ID,但inboundOrderNo实际为计划号 `IP-ONT-20261020-845889`,脚本却要求等于业务订单号 `FL-WH-20261020-578523`。63核定直接写入语义,56仅以新增after-loading后缀及直接测试修正此关联并接续已完成装车断点,不重放任何已成功动作。4f只读核原v6、原装车命令和完整库存,之后继续唯一执行。 + +原始证据 `baiyue-firstleg/reports/fleet-plan-after-pick-DEPARTEDPLAN20261020LIVE1/` 保留;state SHA `ec5f34734f42c6548491947f27d02b5903f0800a3ef479b38634624d824d9e50`,requests SHA `abc91718b8411527f7af695f8e83245f1644a90dd306e9261d10fc8d2d76a3fe`。不能以装车成功替代后续安排、发车、签收和释放证明。 + +## 托盘提供者业务冲突 TEST 热修发布完成(2026-10-21) + +实际链已在#390完成原PLAN实收及首拣至LOADING/v5、2/2核平,随后通用托盘resolve返回S0503。63核定提供者对SHIP后正常SCRAPPED的托盘返回HTTP200/A0409,Lastleg误将空data转换为服务不可用;空托报废生命周期无误。按正式发布窗口授权,7b以#390/`ed98073c345d8284ae9d47b2fba7af86c399ba3d`为基线,仅发布 `HttpWarehouseResourceGateway` 及其测试两文件,冻结patch SHA `4686fc92cbb9660c0dd3be0f4a6af77dc4240266b732a0e7c589daa0a32a8c04`。代码保留提供者业务A0409及HTTP409为冲突,保留未找到语义,成功必须业务码200且有数据;冲突不触发按ID重试,未修改仓储生命周期。 + +- Lastleg **#391 SUCCESS**,提交 `5d2a1d5b7258746f3d824a818460d78a5c61fd1f`,耗时108.700秒。独立核对补丁、两份源码SHA及原始Surefire报告:Gateway21、PDA读取1、库存命令36、PDA仓储4,共62项通过、无失败/错误/跳过;其中现有SHIP空托报废测试确认正常行为。复用这些受影响结果,本轮 `SKIP_TESTS=true`,精确候选完成生产与测试源码编译、打包、部署;未重复未受影响全量,不声称新候选全量执行通过。 +- 实际镜像标签 `5d2a1d5b7258`,镜像ID `sha256:44c658cd6235c8e0ac73e9324d92e55b4a6d20e9acd702f7db659b4392b321f8`,北京时间02:38:40启动、02:39:12健康检查通过;独立回查精确提交及running/healthy。 +- 后端SCM恢复 `*/test`,配置SHA与发布前一致:`c66e132f6396794eebef0d2782f469e81b69d67e5c173ff6cf745399313968e2`。候选清单外路径与#390相同,本地分支、HEAD及原索引未变;Admin保持#667,无SQL、仓储服务、其他服务、Nacos或Gateway部署,发布对话业务HTTP写入0。 + +发布窗口交回4f。随后在匹配#391下实际只读负例通过:原托盘查询返回A0409“托盘已报废”,原主单、条目、PDA、装载预览及完整客户仓库存前后完全一致;7项断言通过,17次完整HTTP均小于1000ms(最慢419.779ms),会话正常退出,业务写入0。根独立读取结果和计时并比较完整before/after相同,证据为 `baiyue-firstleg/reports/fleet-plan-pallet-negative-391-20261021/result.json`。不能将此负例通过当作后半程履约通过。 + +后缀基于原单PDA positions、items/loading关联及完整库存证据接续,不重放成功收货和首拣。56首版33项通过,但63独立审查发现其沿用旧arrangementBody错误要求PLAN来源,实际物化后派送预览为ORDER来源,故当时未放行。随后仅在新后缀内按原条目、订单、客户、实托、库存位置、数量及成功拣货回执证明关联后消费服务端ORDER sourceKey和原始hash,补十类错配负例;最终43项通过,63独立复核GO。最终模块SHA `eb118951d51acff088745104c170a44e2da049b76be04afd687cfdf5eb399174`、测试SHA `9264fa270e4dfe3dbc8b638d09a27d9ebb902ed2bbbfd87748deb67f1200616f`;根核传输、完整读体计时、原身份、四阶段完整库存和真实保存读回,记录 `.codex-temp/fleet-plan-after-pick-root-review-20261021.json`。4f已获上述精确候选、匹配#391的执行放行,实际业务结果仍须另核;冻结前段及失败历史不变。 + +发布证据:后端 `reports/pallet-resolve-business-conflict-hotfix-20261021/` 及根 `.codex-temp/dispatch-number-release-20261020/pallet-conflict-*`,含精确候选/源码与原报告指纹、Jenkins日志、配置恢复和 `pallet-conflict-backend-runtime.json`。 + +## 原柜到港、实收及原预排首拣 HTTP 通过,托盘资料查询待修(2026-10-21) + +已完成成功检查点的精确脱敏消费修复:模块`d9fc6f4f3ebd2a4a2e6796a6db857224bac686615104c7e3d121923c04d5e048`、57项直接检查及7b独立差异审查通过;根确认arrival `86ec96a5b19ebac9dfd515672e5e52f24f12050d6953e834b4fb3a9f8c8be675` 只更新validator绑定,其余与已审版本逐字节一致。原成功reconcile及失败历史未修改,未重复原补验POST,未重新部署生产服务。 + +4f基于原成功检查点实际执行同原柜 `TSTU5934549` 的到港、卸船、可提、拖车安排及提柜,12次完整HTTP均成功,最慢434.4847ms,到港时间严格晚于原预排。`baiyue-firstleg/reports/fleet-plan-arrival-20261021/result.json` 的业务证明、性能和退出检查通过。 + +随后同原计划 `IP-ONT-20261020-845889`、入仓码 `ZBYHK2610200268` 的PDA收货准备、三张卸货图片、签名、实收及收货完成均成功;原排车 `PC202610210001` 的首拣成功,保留PLAN来源,当前LOADING/v5、2箱已拣/2箱计划、`pickingReconciled=true`,未另建现货排车。该段46项断言通过、34次完整HTTP均低于1000ms(最慢419.8966ms),但后续只读 `POST /api/pda/v1/last-leg/pallets/resolve` 查询 `D1747-1-001` 返回HTTP200/S0503“Warehouse pallet service returned no usable response”。requestId `43c1db9a-1616-49a7-b03d-87060fb8f9ac`,traceId `96327221248a2137e3db69bf094b16a0`。当前失败是只读查询,无未知业务写,已正常退出会话;不能将整条履约链认定完成。 + +证据 `baiyue-firstleg/reports/fleet-plan-reconciled-DEPARTEDPLAN20261020LIVE1/fulfill/` 的原state/result/journal全部保留。63负责托盘resolver及直接提供者的最小根因/修复;4f取真实日志并保持已实收/已拣事实;56准备从已核平断点继续装车及后半链,禁止重放到港、收货或拣货;7b保持独立审查及必要发布职责。extra原两单后缀仍待本链库存状态稳定后执行。 + +随后实际提供者只读取证确认:按码查询返回A0409“托盘已报废”,按ID读取原实托为SCRAPPED/v2;63核对现有SHIP清空后的报废规则及直接测试,确认生命周期正常。仅修正Lastleg把业务拒绝误映射成S0503的两文件边界,冻结清单为 `baiyue-firstleg/reports/pallet-resolve-business-conflict-hotfix-20261021/manifest.json`,patch SHA `4686fc92cbb9660c0dd3be0f4a6af77dc4240266b732a0e7c589daa0a32a8c04`,62项直接回归通过;7b已接独立审查和基于#390的最小发布,当前尚不能视为部署或真实反例通过。不改Warehouse、不恢复报废托盘、不在状态冲突时自动按ID重试。 + +后续驱动改用原排车PDA GET保留的关联零库存仓位,并结合原明细/装车预览绑定身份。该投影不能代替完整库存证据;根预审要求56同时保留完整客户仓余额、位置、流水快照,核对发车、签收和释放不产生第二次扣减。56仅修改已授权的after-pick三文件,63只读审查其后半程契约,4f准备原单材料且等待匹配发布和最终脚本审查后再执行。 + +## #390 原装车负例 HTTP 补验通过、接续证据消费待修(2026-10-21) + +7b对原命令接续模块完成独立复审,补齐排期在开始及唯一POST前仍有效的门禁后,最终模块`b138daefc6d3cf61ef2a6c22f9c612451dd77475ce34ef202057165d90f9b203`获GO;初轮43项含observer、本轮受影响39项通过。根独立核对到港入口最终`0426768786de22539f43f8b8cc7a920fc587f2768f67f10d267b92250ea6fa22`及新validator绑定,8项及实际绑定检查通过。原失败state/journal、f38b与输入未改。 + +4f在新鲜#390证明下实际执行reconcile:仅补验原未生效的loading-complete请求,原演员、原键、原body返回预期A0409;18项断言通过,前后原业务状态及完整客户仓库存一致,23次完整HTTP均低于1000ms,自有会话正常退出。原单仍`PC202610210001/LOADING/v4`、未实收,原柜仍实际离港未到港。成功证据位于 `baiyue-firstleg/reports/fleet-plan-reconciled-DEPARTEDPLAN20261020LIVE1/reconcile/`,state SHA为`1f25306bd6eea07a357658c4d73a9a36c5d8e33ae5f4fca8e5102c0e96fcc74c`,journal SHA为`69fb5cc2e47b1984d420e8ae5190a07379e0514076f1f6a572937883364914ad`。 + +到港入口随后在本地校验成功检查点时拒绝,尚未登录或发出到港HTTP,业务未推进。实际差异仅为before/after完整库存中两条ledger的operatorId与登录名同值,被保存器的广泛字符串替换写成`[REDACTED]`,其他事实一致。见 `.codex-temp/fleet-plan-reconcile-persisted-blocker-20261021.json` 及 `.codex-temp/fleet-plan-reconciled-serialization-diagnosis-20261021.result.json`。56定点修复该已封印成功检查点的消费及实际持久化读回回归,7b只复审差异,4f只同步validator绑定;不得重跑成功reconcile或修改报告,不能通用忽略operatorId和任意库存差异。该问题为验收脚本证据序列化,不需再次部署生产服务;后续到仓、实收、原单出库和extra后缀仍待执行。 + +## 未实收 PLAN 装车前置拒绝 TEST 热修发布完成(2026-10-21) + +收到正式发布窗口交接后,7b独立核对63冻结补丁 `37d19b6a8fa33c72bdbd08a1ec3cfaadd215bbc2cf835f6ec31a528dd9e9d353`,以实际运行#389/`42d548194deffc48663d770e21ff1c804daefae2`为基线,仅纳入 `DispatchAggregateService.loadingComplete` 一处前置校验和新增 `DispatchLoadingEligibilityPersistenceTest`。未物化实托的明细在原命令重放、版本/阶段检查后、来源锁前按现有A0409拒绝;正常实托锁定与锁后核平保留。候选 `ed98073c345d8284ae9d47b2fba7af86c399ba3d` 的清单外路径与#389一致,未混入在途taskType/客户筛选改动,本地分支、HEAD及原索引未变。 + +- Lastleg **#390 SUCCESS**,耗时107.173秒;精确候选完成生产及测试源码编译、打包和部署。复用原始报告31项通过(新负例2、工作区Aggregate25、PLAN PDA4);其中Aggregate包含一项未纳入发布的其他任务测试,不能称为31项精确发布候选测试。新增测试与冻结文件一致、对应生产方法与已检查工作区一致,#389既有夹具API已核对;本轮 `SKIP_TESTS=true`,未重复运行未受影响全量。 +- 新负例覆盖全车在途及部分实托已拣的混合车,断言A0409、来源锁/库存提供者未调用及主单/明细/命令/历史/扫码/归属/占用/车次完整快照不变;既有装车正常流及幂等重放检查通过。真实原命令续验仍由4f执行,不能以这些自动检查替代。 +- 镜像标签 `ed98073c345d`,镜像ID `sha256:2c488e69d18b9631c47e85ac960ed0cd3b7a102477405938599b15e22c819298`,北京时间02:00:33启动、02:01:06健康检查通过,独立回查精确提交及running/healthy。SCM恢复 `*/test`,配置SHA与原值一致:`c66e132f6396794eebef0d2782f469e81b69d67e5c173ff6cf745399313968e2`。 + +发布窗口交回4f;续验须刷新匹配#390的运行时证明,按已审核原命令接续,不重造单、不改写原始失败证据。本次没有SQL、Admin、其他服务、Nacos或Gateway变更,发布对话业务HTTP写入0。证据:后端 `reports/dispatch-plan-loading-hotfix-20261021/` 及根 `.codex-temp/dispatch-number-release-20261020/loading-*`,其中 `loading-backend-candidate.json` 保留输入/报告指纹与测试复用范围,`loading-backend-release.json`、`loading-backend-390.log`、`loading-backend-runtime.json` 保存发布与恢复证据。 + +## #389 真实分页通过、原离港预排进入装车中(2026-10-21) + +4f 在匹配 #389/`42d548194deffc48663d770e21ff1c804daefae2` 后执行真实全部来源分页:第一页757.6382ms、第二页516.8088ms、RELABEL筛选653.2847ms,均HTTP200/业务200;8项分页与来源断言通过,总数一致、相邻页无重复。登录与退出也小于1000ms。证据 `baiyue-firstleg/reports/fleet-query-after-hotfix-389-20261021/report.json`;根独立读取完整计时和断言,不以此前SQL时间代替本次HTTP结果。 + +同原货柜 `TSTU5934549`、计划 `IP-ONT-20261020-845889`、入仓码 `ZBYHK2610200268` 已实际离港但尚未到仓实收,原冻结驱动创建排车 `PC202610210001` 并完成两级审核至LOADING/v4。前段53项断言通过,42次完整HTTP均小于1000ms;未实收装车负例返回S0500,使驱动停为UNKNOWN_WRITE_STOPPED,不能认定前段验收或整链通过。实际异常为 `DispatchService.lockExecutionSources` 对空实托集合抛 `IllegalArgumentException`,来自 `DispatchAggregateService.loadingComplete`;requestId `86b2047c-dca1-41fb-9245-61694f67a604`,traceId `83f649cbcc34edb5380a952b2efed41e`。 + +4f只读恢复确认原命令查询A0404、主单和native事实完全一致、仍LOADING/v4、未到仓且实收0;与本轮原完整库存快照相比,客户仓余额、位置、流水均无新增/删除/改变。原失败报告和请求保留,不重建排车、不重放成功动作。证据为 `baiyue-firstleg/reports/fleet-departed-plan-DEPARTEDPLAN20261020LIVE1/`、`.codex-temp/fleet-plan-loading-blocker-389-20261021.json` 及其服务日志、只读恢复引用。63负责生产拒绝门禁修复,56准备绑定原请求和原单的接续方案,7b独立审查及发布;4f仍唯一业务HTTP执行者,当前停止依赖写入。 + +两张原extra单后缀新版 `287cfb35fbfe7217bf747c8ade79b238d687ce96f5b4130b49ad7dd53d2b1d71` 的90项离线检查及63独立来源/库存证明审查通过;根完成对应transport和封印审查,记录 `.codex-temp/fleet-extra-stage-transport-review-287cfb35-20261021.json`。主PLAN库存动作结束后由4f刷新两客户完整证明,再串行执行原两单后缀;尚无实际后缀完成证据。 + +## 候选查询 MySQL 排序规则热修 TEST 发布完成(2026-10-21) + +#388 发布后全部来源候选查询出现 S0500,真实 MySQL 异常为 UNION 文本排序规则冲突。63 将 count/page 的所有文本投影统一为 utf8mb4_unicode_ci,保留数值与时间类型;7b 独立核对冻结 patch、三份源码 SHA 及 Surefire 原始报告,仅在实际运行 #388/`eeb50d5f6012120b423dcf5ec5c1cda8ac48977e` 上叠加 Mapper、合托测试适配及真实 MySQL 只读测试三文件。最终提交 `42d548194deffc48663d770e21ff1c804daefae2`,清单外路径与运行基线一致,本地分支、HEAD 和原索引未变。 + +- Lastleg **#389 SUCCESS**,耗时106.391秒;精确候选完成生产及测试源码编译、打包和部署。复用 #388 未受影响的完整 CI,热修直接相关31项通过(14项合同、15项合托、2项真实 MySQL);本轮 CI 采用 `SKIP_TESTS=true`,没有重复执行全量,不表述为新候选全量测试通过。 +- 两项真实 MySQL 测试均实际执行、无跳过:纯 SELECT 复现原混合排序规则 UNION 失败并验证修正投影;正式 MyBatis BoundSQL/参数执行默认全部来源第一页、第二页和筛选 count/page。默认总数1079,前两页各20条,SQL合计耗时分别593.170/436.110ms;只读连接、0 DDL、0业务写入。以上为 SQL 耗时,不是完整 HTTP 响应时间。 +- 运行镜像标签 `42d548194def`,镜像ID `sha256:e3829d44439801d4ec60450f85a394557a0b4cf618de7ccf054b8b042b406bae`,北京时间01:47:13启动、01:47:45健康检查通过;独立回查精确提交及 running/healthy。后端 SCM 已恢复 `*/test`,配置SHA与原值一致:`c66e132f6396794eebef0d2782f469e81b69d67e5c173ff6cf745399313968e2`。Admin 保持 #667/`873e16f4de7ac10ecdb929ac1341d229fe71596a`,未重复发布。 + +本次没有 SQL、表排序规则、Nacos 或 Gateway 修改,发布对话业务 HTTP 写入0。发布窗口已释放给4f,需刷新匹配 #389 的运行时证明后继续真实分页完整响应计时及原 PLAN 履约验收;部署健康和 SQL 测试不代替业务链、页面或小于1000ms验收。证据:后端 `reports/dispatch-candidate-collation-hotfix-20261021/` 及根 `.codex-temp/dispatch-number-release-20261020/collation-*`,含独立源码/补丁/原始测试报告指纹、MySQL输出摘录、精确候选、Jenkins日志、配置恢复及 `collation-backend-runtime.json`。 + +## 候选分页与离港预排 TEST 匹配发布完成(2026-10-21) + +63 封存18路径后端分页及离港 PLAN/PDA 首拣增量,52 封存19路径 Admin 直接消费者;7b独立核对清单、源码及检查证据后串行发布。后端以实际运行#387为基线,仅应用封存patch,提交`eeb50d5f6012120b423dcf5ec5c1cda8ac48977e`,`DispatchAggregateService`仅纳入candidates方法,未混入独立taskType改动。Admin以实际运行#666/`f9744bf5de57fe644104c81cb5946eefe5915b93`为基线保留日期时间控件更新,提交`873e16f4de7ac10ecdb929ac1341d229fe71596a`。两个候选的清单外路径均与实际运行基线一致,本地分支、HEAD及原索引未改。 + +- Lastleg **#388 SUCCESS**,耗时2146.863秒;精确候选完整CI共3402项,3393通过、9跳过,失败和错误均为0,包含独立SQL语义51项全过。镜像标签`eeb50d5f6012`,ID `sha256:dfd74ca3d3d0ea0eb44c17f0372732c717df6f13af6377dd3f3e22729b029f38`,北京时间01:18:53启动、01:19:25健康检查通过,独立回查running/healthy。 +- Admin **#667 SUCCESS**,耗时61.666秒;精确候选类型检查、构建及部署通过。冻结输入的定向226/226、全量4242/4242报告及SHA已独立核对。镜像标签`873e16f4de7a`,ID `sha256:55da73d9701652a307843bafe668115166a45881f55577bf0121e67c1ae8d2a9`,北京时间01:22:19启动,独立回查running/healthy;容器healthz为ok,实际JS产物包含候选分页和加货分页入口。 +- 后端SCM恢复后配置SHA与原值一致:`c66e132f6396794eebef0d2782f469e81b69d67e5c173ff6cf745399313968e2`。Admin恢复`release/test`,完整配置正文与原值一致,正文SHA为`afaf93e1decedd5cea4d82b6f16c1a711b5ff2d21e41e9ff0c830764fb830e90`;全文SHA变化仅来自XML声明和开头换行,已保存前后证据。 + +发布窗口已释放给4f;7b不再追加部署或环境检查。本次无SQL、Nacos、Gateway修改,发布对话业务HTTP写入0。真实分页首/末/筛选计时及同原PLAN履约链仍由4f执行,健康与自动测试不代替页面、物理或小于1000ms验收。证据位于后端`reports/dispatch-paging-prearrival-release-20261021/`、`.codex-temp/candidate-pagination-admin-delivery-20261021.json`及`.codex-temp/dispatch-number-release-20261020/pagination-*`,含两端精确候选、Jenkins日志/恢复记录、`pagination-backend-runtime.json`、`pagination-admin-runtime.json`和产物核对回执。 + +发布后真实 HTTP 首轮未通过:`fleet-query-after-388-20261021/report.json` 的全部来源首屏返回 HTTP200/S0500,完整响应497.9802ms,requestId `c76e71cd-58ba-45da-86c7-038a92326e86`,trace `534372bdc0d989cd2dc84a74fc26ce8a`。实际异常证明 `DispatchCandidatePageMapper.count` 的 MySQL `UNION` 文本排序规则冲突,证据 `.codex-temp/fleet-candidate-388-sql-read-20261021.result.json`;第二页同类失败。4f已停止依赖业务写、正常退出会话,新PLAN排车未创建。有限只读补查中,排车列表约104ms、自有/外配列表约67/59ms、换标筛选约677ms且业务成功;这些成功不覆盖全部来源分页。63负责定点修复count/page投影及真实MySQL语义验证,7b复审热修;不改环境表排序规则、不重复发布Admin。 + +同窗两张既有 extra 单材料已准备,但后缀尚未执行:真实派送预览采用 ORDER 来源键,而主单采用 RELABEL 来源键,旧48e8后缀的直接等同断言不成立;本轮另三张专属PLAN正式建单增加同客户的IN_TRANSIT库存事实,旧全客户快照不再逐字相同,原extra货物未发生移动。4f保存了原始完整差异、来源映射及明确TEST费用/收据,见 `.codex-temp/fleet-extra-stage-materials-20261021/material-report.json`。56修正独立后缀的来源关联和证据比较,保留历史基线、解释专属PLAN变化,另存执行前完整快照验证后缀不产生额外库存变化;不改原报告或将这些执行前阻断记成业务通过。 + +离港全链驱动 `f38b81abb42ab825bbc5e07402d7223aa1b93bc7701d4fb8f7123692f07bcd5b` 已通过独立脚本审查及82项离线检查;52 对执行输入的复核发现三张卸货图与签收图 PNG 校验/解码失败。4f 已仅替换本地 TEST 图片并重新封存,未重造订单或回退货柜;52 实际独立校验命令返回 `LOCAL_DELTA_PASS/exit 0`,四图 CRC、Pillow 校验及完整解码通过,12项材料封印与6项交接引用匹配,原业务身份未变。根据此放行修正输入 `ec601abd6ae1b610158f99580e3d2da389b56195805b9379575568ce99895dbe`,仍以匹配部署健康及4f运行时资格/状态复核为执行前提。实际在途预排及后续收货、出库链尚未执行。分页完整响应小于1000ms仍待真实测量,不能用离线检查推定。 + ## 排车候选批读性能 TEST 发布(2026-10-20) 按本轮持续 TEST 授权及总控停写窗口,以实际健康运行的 Lastleg `#386 / 3ceafa9ca7022645a98bcbb43388b2634207a118` 为基线,仅叠加独立审查通过的5文件增量:`DispatchSourceMapper`、`DispatchSourceRepository`、`DispatchService`、`DispatchAggregateService` 和 `DispatchWholeSourcePersistenceTest`。固定提交 `6877c372bd8bde9fd10d19ef444eff6ba355c9fd`,标签 `dispatch-query-test-20261020-6877c372bd8b`;逐项匹配作者发布清单及审查SHA256,保留#386全部既有功能,未纳入其他工作区差异,未切换本地分支、HEAD或原索引。 @@ -106,7 +227,7 @@ Lastleg 固定38路径自有候选 `7c6a3af473e892a7e244ddc0b88cf00ca5708a7d` 2026-10-20 #387 及扩展续跑更新:Lastleg 源码 `6877c372bd8bde9fd10d19ef444eff6ba355c9fd` 已发布成功、容器 healthy;3394 项检查中 3385 通过、9 条件跳过、零失败,仅包含已审五文件性能增量。4f 在该版本按同条件读取 293 条/278 组完整候选,三次完整响应为约 2783/2493/2548ms,仍未满足小于 1s;RELABEL 42 条三次为约 732/727/698ms。实际报告 `baiyue-firstleg/reports/fleet-query-after-387-20261020/report.json`。用户随后允许慢查询采用分页,现已进入正式服务端分页实施;不能把本次发布视为分页或离港预排业务增量已上线。 -同版 `EXTRA20261020LIVE1/continuation-known-prepared` 已执行完成,152 检查通过、0 失败,正式复用两组已准备货源,生成 `PC202610200001`(OWNED)及 `PC202610200002`(EXTERNAL)。两单均达到 AFTER_LOADING,资源保留占用,未在该续跑中发车、签收或释放;完整后半程计时仍须单独覆盖。续跑计时记录 94 次完整请求,均小于 1s,最大 417.078ms。原失败证据保留,新摘要 SHA `fb11a09f5e0092b41a4166121a41c18a55188054d2955809af358b0b925f6a43`,计时结果 SHA `45784c718f677243a0fb432b51cf38289d8dade07dd34b7970a930b63abc44a8`;独立实际证据审查正在接续,不能据执行摘要提前宣称全部验收完成。新“实际离港→实收前 PLAN 预排→到仓→原排车出库”链与硬件/人工页面范围仍未由本条覆盖。 +同版 `EXTRA20261020LIVE1/continuation-known-prepared` 已执行完成,152 检查通过、0 失败,正式复用两组已准备货源,生成 `PC202610200001`(OWNED)及 `PC202610200002`(EXTERNAL)。两单均达到 AFTER_LOADING,资源保留占用,未在该续跑中发车、签收或释放;完整后半程计时仍须单独覆盖。续跑计时记录 94 次完整请求,均小于 1s,最大 417.078ms。原失败证据保留,新摘要 SHA `fb11a09f5e0092b41a4166121a41c18a55188054d2955809af358b0b925f6a43`,计时结果 SHA `45784c718f677243a0fb432b51cf38289d8dade07dd34b7970a930b63abc44a8`。52 已完成实际证据独立核对:两来源同实托、EXTERNAL 无车辆主档、原键重放及主单/明细/实载不变证据成立;库存后快照未独立保存,只能确认执行断言通过,不能宣称库存差异可独立重算。本轮共托是同客户两来源,不覆盖跨客户共托。新“实际离港→实收前 PLAN 预排→到仓→原排车出库”链与硬件/人工页面范围仍未由本条覆盖。 diff --git a/海外仓业务/排车列表统一作业改造契约.md b/海外仓业务/排车列表统一作业改造契约.md index f3d3424..44c722f 100644 --- a/海外仓业务/排车列表统一作业改造契约.md +++ b/海外仓业务/排车列表统一作业改造契约.md @@ -28,6 +28,10 @@ 17. 用户要求真实 HTTP 跑通“货柜实际出港→实收前预排→到仓→原排车出库”完整流程,并要求请求完整响应小于 1s;单用现有库存直接排车不覆盖该验收。用户允许在全量候选优化后仍慢时采用分页显示。分页须由服务端处理查询范围、筛选和排序,明确当前页与总量语义,不先完整计算所有候选后仅切片;选货仍按权威完整选择组核对跨页同托来源,不以当前可见页冒充整托完整货物。此条记录目标与条件授权,不表示已实现分页或已通过性能验收。 + 候选分页参数为`page`(默认1)、`size`(默认20,最大50)及服务端仓库页签`warehouseTab=ALL/LAX/NYC`;沿用原仓、计划、订单、目的仓、来源阶段和草稿筛选。响应`total/page/size/pages`明确筛选全集及当前页,顶层`complete`仅首且唯一页包含全部来源时为true,不能用于拒绝普通分页;`selectionGroup.complete`继续独立证明同托及整申请完整来源。原草稿一次选取仍由服务端解析完整组,不能按页拆开锁货。 + + 原PLAN实收后的PDA任务GET须在不写入绑定的前提下,核对原客户、仓、数量、目的地、订单组成及完整同托来源后返回真实可拣仓位。未实收或组成变化不返回可拣仓位;首次pick仍在原事务中加锁复核、绑定原计划实托及扣减库存。诊断接口补仓位不算正式PDA产品链路通过。 + ## 二 原型依据与详情四块 原型为用户提供的新版 HTML,页面 `page-outbound-vehicle`、`page-outbound-vehicle-detail`,以及本轮最新排车详情截图。HTML 位于用户提供的本机原型路径,实施者沿本契约和目标模块矩阵定向读取,不扫描原型其他模块。截图最新确认优先于前一条“三块”的描述。 diff --git a/独立任务协作登记.md b/独立任务协作登记.md index aed5924..fc01183 100644 --- a/独立任务协作登记.md +++ b/独立任务协作登记.md @@ -2,6 +2,20 @@ ## 2026-10-20 排车、自有及外配 HTTP 扩展收尾 +2026-10-21 本轮明确的TEST真实HTTP与小于1秒目标已完成:4f交付原PLAN主链及原extra两单后缀全部履约、结案、资源释放和完整库存证明;7b独立复核主链身份/时序/失败闭合通过;根核三单最终事实、真实全响应计时和两客户全部阶段库存一致。具体结果及保留限制只维护部署主契约顶部。56、63实现/审查候选保持冻结;没有新增生产改动、SQL或发布任务,不重复派工或重跑成功链。52此前四图与材料有效校验已纳入证据,若旧turn仍显示active不据此重启或扩大任务。 + +2026-10-21 原PLAN主链已真实履约完成,具体状态、计时和库存证明见部署主契约顶部。4f保持唯一HTTP执行权,接续已审287cfb35原extra自有/临时外配两单,先刷新两客户完整库存证明及运行版本,不重造样本;7b并行只读复核原PLAN主链的最终证据。56的after-loading两文件及63最终审查已交付冻结,暂无新增生产修改或发布,根继续处理证据整合与实际失败的最小分工。 + +2026-10-21 原单后缀实际完成装车至AFTER_LOADING/v6,派送安排前的本地字段校验停止,安排POST未发送、无未知写。实际库存balance.inboundOrderNo保存原计划号,而脚本误与订单号相等比较。56仅获新增 `.codex-temp/fleet-plan-after-loading-continuation-20261021.mjs` 及直接 `.test.mjs` 的写权,绑定此次成功装车回执及state/journal,从派送安排继续,不重放装车或前段、不新增通用reconcile;原eb后缀及报告保持冻结。63只读核库存字段写入语义及最终窄差异;4f核对原v6、装车命令成功及完整库存后仍为唯一HTTP执行者。根维护接口关联和实际结果,7b此次#391发布已完成,不重复部署。 + +2026-10-21 后续接续已完成原柜到港、实收及原预排首拣,当前原单LOADING/v5、2/2核平;只读托盘解析被仓储A0409“已报废”拒绝并在Lastleg误映射为S0503。63沿该resolver与实际生命周期核定必要生产修复,不得为测试恢复或重置报废托盘;4f唯一执行正式只读取证及之后HTTP。56唯一新增 `.codex-temp/fleet-plan-after-pick-continuation-20261021.mjs`、`.test.mjs`、`.plan.md`,绑定已成功fulfill前段state/journal,仅从已拣货断点继续装车/派送/签收/释放,禁止到港、收货、拣货、审核、建单及新的reconcile。已冻结f38b、d9fc、extra及原报告不改;7b继续独立审查和必要发布,根负责合法查询语义与接续范围裁定。实际结果与提供方响应唯一见部署主契约及引用证据。 + +2026-10-21 原离港预排已实际到 `PC202610210001/LOADING/v4`;#389真实分页通过,未实收装车负例出现S0500并经只读恢复确认原命令未生效、主单和完整库存未变。63唯一修改该生产装车前置校验及直接回归,7b按#389基线独立审查和最小发布。56唯一新增 `.codex-temp/fleet-plan-loading-negative-continuation-20261021.mjs`、`.test.mjs`、`.plan.md`,保留原失败报告、原请求和冻结f38b驱动,形成严格 `PLAN_LOADING_NEGATIVE_RECONCILED_V1` 接续检查点;4f唯一修改 `fleet-plan-arrival-20261021.mjs` 及直接测试消费该检查点、新部署版本和原父封印。4f仍唯一HTTP执行者,当前暂停依赖写入;修复/接续审查与运行状态核验后继续原单,不重建或重审。extra新版287cfb35已完成90项检查及独立审查,主PLAN库存操作完成后再刷新证明执行;52此前材料校验已纳入有效证据,不重复检查。具体运行结果唯一见部署主契约。 + +2026-10-21 接续:56 的离港分段驱动已冻结为 `f38b81abb42ab825bbc5e07402d7223aa1b93bc7701d4fb8f7123692f07bcd5b`,82 项离线检查通过,7b 已独立复审 GO;4f 的专属正例只停在实际离港且尚未到港/实收,待匹配版本和执行放行。56 已完成 `fleet-extra-stage-continuation-plan-20261021.md` 的只读接线清单,随后获准新增 `fleet-extra-stage-continuation-20261021.mjs` 及直接测试,处理既有两张 extra 单从 AFTER_LOADING 到结案、车/司机分别释放的计时缺口;原冻结脚本/报告和离港驱动不改,不执行 HTTP,不新增生产需求或业务样本。4f 并行准备这两原单只读预览及明确 TEST 费用、收据材料,执行仍由 4f 串行,离港全链优先。63/52 分别交付后端与 Admin 真分页,统一交 7b 审查和匹配发布;分页是否达到小于 1s 仍须发布后由 4f 实测。 + +分页实施分工更新:63 已明确本轮未修改 Admin 候选分页并释放前端写权;52 接管 `SmartDispatchDialog`、候选 API/类型及直接消费者和测试的分页实施,不能修改 Java/SQL/OpenAPI 或其他组共享样式。63 保留后端分页、离港 PLAN 候选及首拣位置只读解析的唯一写权。7b 接续前后端候选及 56 全链脚本的独立审查、最终串行发布;52 不自审其新增前端实现。56 按正式分页 DTO 接线新离港全链驱动,4f 准备专属素材并唯一执行。原 extra 续跑已完成独立核对,原脚本与报告保持冻结。 + 用户随后明确增加整链验收:货柜实际出港后先预排车,再衔接到仓及出库全部流程。既有合托、临时外配及性能收尾继续保留。56 负责复用正式编排入口形成离港 PLAN 预排至出库的 HTTP 驱动及直接测试;4f 只读选择可用合成货柜与计划并唯一执行正式接口;52 独立核对未离港、未实收门禁和同原计划/排车关联的连续性;63 核对预排候选业务逻辑及相对实际部署的必要增量;7b 统一审查及串行发布。原库存直接排车不能代替离港预排证据,预留托盘不能代替实收库存,到仓后不得另建现货排车冒充原预排链衔接。当前在途性能发布 #387 保持冻结,新必要生产增量另按最终候选验证和发布。 2026-10-20 本轮最新用户目标覆盖此前本批授权限制:持续授权本总控在 TEST 部署、操作测试数据库并调用真实 HTTP 跑流程,优先完成 HTTP 联调;请求完整返回耗时要求小于 1000ms。凭据仍仅从 `C:/Users/BY-OY/.codex/env/chongchong-global` 私有目录加载,不进入源码、报告或对话输出。复用用户明确提供的五个既有对话,不创建新任务。4f 唯一本批业务造数及流程执行;56 唯一扩展脚本与直接测试修复;52 独立复核脚本、输入、真实证据与耗时口径;`01a15963-16ca-7610-90e3-7afce598a7d8` 保留当前智能排车对齐和候选查询性能修复职责,独占其已修改文件;`01a1597b-17d2-75e3-8429-5024c21b61fd` 保留排车编号修复及在途 Lastleg 发布,统一串行发布本批后端候选。发布窗口与业务写入串行衔接,编号建单验证复用 4f 新单;性能定位可只读,不能并发压测污染流程样本。功能通过与小于 1s 的性能验收分别记录,尚未计时不能推定性能通过。实际部署与 HTTP 结果仍只维护部署主契约。 diff --git a/财务管理/openapi/finance-core-five-pages-v1.yaml b/财务管理/openapi/finance-core-five-pages-v1.yaml index 3cb6158..46a0b5f 100644 --- a/财务管理/openapi/finance-core-five-pages-v1.yaml +++ b/财务管理/openapi/finance-core-five-pages-v1.yaml @@ -1091,7 +1091,7 @@ components: required: [statementId, statementNo, customerId, customerName, periodStart, periodEnd, creditDays, currency, lineCount, sourceCount, sourceAmount, adjustmentAmount, totalReceivable, receivedAmount, outstandingAmount, settled, status, version, customerConfirmationStatus, createdBy, createdAt, updatedBy, updatedAt] properties: statementId: {$ref: '#/components/schemas/Id'} - statementNo: {type: string, pattern: '^REC-\d{6}-\d{4}$', example: REC-260818-0001} + statementNo: {type: string, pattern: '^REC[0-9]{12}$', example: REC202608180001} customerId: {$ref: '#/components/schemas/Id'} customerName: {type: string} periodStart: {type: string, format: date} @@ -1226,7 +1226,7 @@ components: properties: id: {$ref: '#/components/schemas/Id'} customerId: {$ref: '#/components/schemas/Id'} - settlementNo: {type: string, pattern: '^AR-\d{6}-\d{4}$', example: AR-260818-0001} + settlementNo: {type: string, pattern: '^AR[0-9]{12}$', example: AR202608180001} billDate: {type: string, format: date} dueDate: {type: string, format: date} receivableAmount: {$ref: '#/components/schemas/Money'} @@ -1241,7 +1241,7 @@ components: properties: id: {$ref: '#/components/schemas/Id'} customerId: {$ref: '#/components/schemas/Id'} - settlementNo: {type: string, pattern: '^AP-\d{6}-\d{4}$', example: AP-260818-0001} + settlementNo: {type: string, pattern: '^AP[0-9]{12}$', example: AP202608180001} costType: {type: string, enum: [SINGLE_ORDER, CONTAINER_SHARED]} orderId: {$ref: '#/components/schemas/Id'} inboundId: {$ref: '#/components/schemas/Id'} @@ -1313,7 +1313,7 @@ components: required: [settlementId, settlementNo, direction, currency, totalAmount, paidAmount, outstandingAmount, generatedDate, dueDate, paymentStatus, status, version] properties: settlementId: {$ref: '#/components/schemas/Id'} - settlementNo: {type: string, pattern: '^(AR|AP)-\d{6}-\d{4}$', example: AR-260818-0001} + settlementNo: {type: string, pattern: '^(AR|AP)-\d{6}-\d{4}$', example: AR202608180001} direction: {$ref: '#/components/schemas/FeeDirection'} customerId: {$ref: '#/components/schemas/Id'} customerName: {type: string}