From c8099930bbd7f03115f6d78be7ab21a179175ffe Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Thu, 22 Oct 2026 11:56:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Admin客户管理样式核对记录.md | 9 +++++ Admin海外仓样式核对记录.md | 2 +- Admin高密度界面规范.md | 20 ++++++++--- 业务单据编号契约.md | 6 ++-- .../阶段三-国内货柜履约与出仓.md | 19 +++++++++-- 测试环境单机部署与配置契约.md | 30 ++++++++++++++++ 海外仓业务/内部拼车需求池首版开发契约.md | 2 +- 海外仓业务/排车列表统一作业改造契约.md | 10 +++--- 海外仓业务/预约工作日历V13变更说明.md | 5 +-- 独立任务协作登记.md | 34 +++++++++++++++++++ .../openapi/finance-core-five-pages-v1.yaml | 2 ++ 财务管理/财务费用入池P0闭环.md | 2 ++ 12 files changed, 124 insertions(+), 17 deletions(-) diff --git a/Admin客户管理样式核对记录.md b/Admin客户管理样式核对记录.md index f809f26..1d84908 100644 --- a/Admin客户管理样式核对记录.md +++ b/Admin客户管理样式核对记录.md @@ -123,3 +123,12 @@ 确认的问题:新增/编辑客户仍为已确认的 1120px 居中框,但基础资料与联系商务的短字段回退成两列;资质区前的表单因此加长。恢复两个分组每行三个短字段,保持原字段顺序、必填项和绑定;注册资本、地址、备注保留整行。普通标签宽度为 120px,较长的统一社会信用代码标签单独保留 144px。客户计费、资质预览、审核、结果及危险确认的原有承载未改。 实际挂载验证包含三列单元格与整行跨列、客户名称真实 blur 校验后的错误提示、底部保存入口、原编辑与资质预览行为。测试插件按本项目其他 Element 行为测试采用同一 CJS 运行时,避免混用 ES/CJS 表单上下文使校验无法触发。客户 34 项和消息中心 22 项定向回归通过;该结果只证明挂载与交互,不证明真实排版已验收。普通/全屏、长公司名称、信用代码、文件名、多条错误、关闭重开与预览关闭后返回编辑,均待用户 1920×1080、100% 人工截图确认。 + +## 2026-10-22 客户编辑表单确认 + +用户提供当前客户编辑弹框截图并确认继续采用这套输入控件外观;通用规则唯一维护在[Admin 界面规范“输入框与字段”](Admin高密度界面规范.md#输入框与字段),本节仅记录本窗口落点。 + +- 保留 1120px 弹框、三列短字段及注册资本/地址/备注整行;普通标签 120px,“营业执照企业名称”和统一社会信用代码标签单独 144px。 +- 输入控件白底、浅灰边框、8px 圆角,悬停加深、聚焦蓝框;注册资本与账期数字左对齐,客户昵称占位文字为“选填,默认自动生成”。通过 `density-form--outlined` 接公共边框,客户模块仅限定本编辑框的圆角与数值对齐。 +- 删除底部保存/审核流程说明及已登记信用代码旁的只读说明;信用代码仍按原资格只读,保存、资质上传及提交审核行为不变。“企业认证资料”、帮助入口和现有状态标签同一行。 +- 用户截图已核对输入边界和企业名称标签单行;后续数字对齐、占位文字及状态同行调整已获用户确认纳入规范。未据此推定资质区下半部分、错误态、普通/全屏及关闭重开的全部场景均完成视觉验收。相关定向检查已通过,本次写规范仅核对文档差异与引用,不重复执行业务测试。 diff --git a/Admin海外仓样式核对记录.md b/Admin海外仓样式核对记录.md index 5265a27..99e7fb2 100644 --- a/Admin海外仓样式核对记录.md +++ b/Admin海外仓样式核对记录.md @@ -30,7 +30,7 @@ | 派送单资料 | `DeliveryDocumentsDialog` 上传、替换、删除、下载、保存、重新加载确认 | 1040px;关闭放弃未保存修改 | 保留文件生命周期,正文单一滚动区 | | 换标单 | `RelabelOrdersView` 新增、审核、查看 | 760px 表单;独立详情 | 保留创建与审核模式、状态候选与必填字段 | | 换标详情 | `RelabelOrderDetailView` 完工证据、总 PDF、明细 PDF 上传/预览 | 连续详情、预览 900px | 保留 PDF 物理预览尺寸与绑定数据,紧凑文件行 | -| 托盘管理 | `PalletsView` 汇总、新增、编辑、查看;`PalletDetailView` | 760px 表单;独立详情 | 汇总改紧凑行;保留仓库编辑限制 | +| 托盘管理 | `PalletsView` 汇总、新增、编辑、查看;`PalletDetailView` | 顶部四张等宽统计卡片,采用公共紧凑卡片及图标样式,不继承186px最小高度;760px 表单;独立详情 | 统计卡片按2026-10-22用户参考截图并依后续反馈压缩高度:白底圆角、浅色图标、蓝色数字和“个”单位;原四项统计与筛选口径、仓库编辑限制保留;压缩后待人工1920×1080、100%缩放截图确认 | | 库存管理 | `InventoryView` 汇总、查看、导出;`InventoryDetailView` | 独立详情,库位/托盘箱号/流水表 | 连续汇总、信息表;不改变库存口径 | | 库存流水 | `InventoryTransactionsView` 导出、返回、关联数据 | 列表深链;共享关联框 1060px | 只为本轮调用显式接入共享框,保留分区域只读权限 | | 退货库存管理 | `ReturnInventoryManagementView mode=inventory` | 库存/流水页签、查询、分页 | 两页签保留各自数据和查询模式 | diff --git a/Admin高密度界面规范.md b/Admin高密度界面规范.md index 6a41e54..6d26b9c 100644 --- a/Admin高密度界面规范.md +++ b/Admin高密度界面规范.md @@ -121,9 +121,9 @@ Admin 仍使用 Element Plus。普通 `el-select` 由构建组件解析器统一 - 汇总使用单行摘要或紧凑描述表。自动费用与其他费用保持各自业务口径,金额、单价、计费量、附加费和版本完整展示。 - 保留公式、计费依据和价格来源入口,不能为了减少行数合并不同口径的金额或重量。 - 测量各来源保留独立分组;展开时在表尾显示合计,折叠时在标题显示摘要,同一口径不在上下重复占位。 -- 测量作业弹框采用用户确认的分区配色:申报与实测对比浅绿(`#f4fbf8`)、客户申报明细浅蓝(`#f7f9ff`)、平台实测箱规白色(`#fff`),保留细边框和 8px 圆角,不使用左侧强调色条,作为连续白底规则的局部例外。区块不得使用负外边距伸出正文;左右内边距由 `measurementDensity.css` 统一维护,通用密度规则不得将其清零。保持 1560px、92vh 居中作业弹框及原有业务分组,不因修复裁切而移除彩色分区。 三个分区同级排列,客户申报不得嵌套在实测大框内。箱数、毛重、体积集中在“指标/客户申报/平台实测/差异(实测 − 申报)”表中,不在下方重复总数;未采集显示“未测量/待测量”,申报缺失显示“—”,相等显示“一致”。净重、材积重单独显示平台事实,不与申报毛重混比。 客户申报区保持只读;实际品名和预计托数放在“平台实测箱规”区,沿用原保存与权限规则。未采集时只保留主状态,有箱规和来源后显示采集来源;平台补充数据的口径说明通过提示展示。提交按钮旁显示当前订单状态、缺少测量或称重等实际阻断原因。 桌面布局中,对比区标题与客户、渠道、状态同排;申报区标题与原单据号码同排,标签和值横向排列;实测箱规标题、实际品名、预计托数及录入操作共享一行。长内容自然换行,不截断编号或缩小字号。提交阻断原因集中在固定底栏,正文不重复显示同一提示,业务状态、偏差和冲突提醒保留。 +- 测量作业弹框采用用户确认的分区配色:申报与实测对比白色(`#fff`)、客户申报明细浅蓝(`#f7f9ff`)、平台实测箱规白色(`#fff`),保留细边框和 8px 圆角,不使用左侧强调色条,作为连续白底规则的局部例外。区块不得使用负外边距伸出正文;左右内边距由 `measurementDensity.css` 统一维护,通用密度规则不得将其清零。保持 1560px、92vh 居中作业弹框及原有业务分组,各区按当前确认配色呈现,不恢复已移除的绿色背景。 三个分区同级排列,客户申报不得嵌套在实测大框内。箱数、毛重、体积集中在“指标/客户申报/平台实测/差异(实测 − 申报)”表中,不在下方重复总数;未采集显示“未测量/待测量”,申报缺失显示“—”,相等显示“一致”。净重、材积重单独显示平台事实,不与申报毛重混比。 客户申报区保持只读;实际品名和预计托数放在“平台实测箱规”区,沿用原保存与权限规则。未采集时只保留主状态,有箱规和来源后显示采集来源;平台补充数据的口径说明通过提示展示。提交按钮旁显示当前订单状态、缺少测量或称重等实际阻断原因。 桌面布局中,对比区标题与客户、渠道、状态同排;申报区标题与原单据号码同排,标签和值横向排列;实测箱规标题、实际品名、预计托数及录入操作共享一行。长内容自然换行,不截断编号或缩小字号。提交阻断原因集中在固定底栏,正文不重复显示同一提示,业务状态、偏差和冲突提醒保留。 - 同一计算策略只保留一个明确操作入口,保存中、无权限、冻结与失败信息照常显示。 -- 称重图片可用缩略图加紧凑事实行;保留查看原图、托盘/库位信息和人工修正入口。可视化、图纸、标签预览、库位示意等按业务用途保留合适尺寸。 +- 测量称重图片可用缩略图加紧凑事实行;审核称重图片使用表格承载,保留查看原图、托盘/库位信息和人工修正入口。可视化、图纸、标签预览、库位示意等按业务用途保留合适尺寸。 ### 历史、备注与空态 @@ -168,15 +168,27 @@ Admin 仍使用 Element Plus。普通 `el-select` 由构建组件解析器统一 | 适用窗口 | 已确认分区 | 浅底色 | |---|---|---| -| 测量作业主弹框 | 申报与实测对比 | `#f4fbf8` | +| 测量作业主弹框 | 申报与实测对比 | `#fff`(白底、普通细边框) | | 测量作业主弹框 | 客户申报明细 | `#f7f9ff` | | 测量作业主弹框 | 平台实测箱规 | `#fff`(白底、普通细边框) | | 测量作业主弹框 | 测量偏差提示 | `#fff`(保留红色警示文字与图标) | - 表格单元格以白底为主,表头采用“尺寸与颜色”的统一浅蓝底、深蓝文字;普通字号、控件高度、行高、间距沿用公共令牌。单位、必填标识、校验错误、表单标签及原因说明完整保留。 -- 弹窗中横向排列的表单标签与控件垂直居中,由 `adminDensity.css` 统一处理;普通表单、行内表单和连续编辑表共用此规则,顶部标签保持原有上下排列。 - 汇总尽量只出现一次;表格已完整表达的字段不再另做统计卡片。错误、警告、成功及禁用状态继续使用现有语义,彩色分区不掩盖真实风险。 +#### 输入框与字段 + +2026-10-22 用户确认以客户新增/编辑弹框的输入控件外观作为后续同类表单的参考;只统一控件外观与可用性,不据此复制客户的三列布局、表格结构或弹框尺寸。 + +- 文本、数字、日期、下拉选择及多行文本使用白底、可辨识的浅灰边框和 8px 圆角(`--cc-radius-lg`);悬停边框加深、聚焦使用蓝色边框。普通单行控件沿用通常 32px 的公共高度,多行文本保留业务需要的行数。不能通过透明边框把可编辑内容显示成普通文字。 +- 普通文本与表单数字左对齐,包括注册资本、账期等;数字增减按钮与单位、币种保留原功能。此条不改变只读数据表的金额、数量列对齐方式。 +- 横向排列的表单标签与控件垂直居中,由 `adminDensity.css` 统一处理;顶部标签保持原有上下排列。普通短字段标签优先单行,较长标签按实际文字单独加宽,不缩小字号或截断标签;长地址、备注等保留已确认跨列方式。 +- 占位文字简短,避免长说明被输入框截断,例如客户昵称使用“选填,默认自动生成”。标签始终保留,不能仅靠占位文字说明字段含义;详细规则确有必要时放入已有说明入口。 +- 只读值直接展示,与可输入控件明确区分;禁用、权限不足、校验错误、处理中和实际操作阻断保留原反馈。精简文案不改变字段可编辑资格、保存及审核流程。 +- 分区标题、已有帮助入口与该分区状态标签优先同一行,例如“企业认证资料”与“启用”;不为简短状态单独占一行。内容过长时自然换行,不强行裁切。 +- 字段旁及底部不重复铺设保存/审核流程介绍、只读规则等常驻小字,按[提示文字与加载布局](#提示文字与加载布局)处理;实际风险、错误和阻断原因仍须清楚反馈。 +- 实现复用 Element Plus 控件。连续编辑表内的表单通过 `density-form--outlined` 接入 [adminDensity.css](../apps/admin-web/src/styles/adminDensity.css) 的白底与中性边框规则;客户参考实现为 [CustomersView.vue](../apps/admin-web/src/modules/customers/pages/CustomersView.vue) 与 [customerDensity.css](../apps/admin-web/src/modules/customers/customerDensity.css),后者当前限定客户编辑框的圆角和数字对齐。后续在明确修改范围内接入,通用外观维护在公共入口,不逐页复制颜色与控件规则,也不自动批量改造其他弹框。 + #### 底部操作与交互 - 底部以细分隔线与正文区分,右侧排列原有取消、保存、提交等操作;一个阶段突出一个主操作,其他操作保持次级样式。按钮职责、顺序和保存触发方式按当前业务确认保留,不新增原本没有的“暂存”或“保存并提交”。 diff --git a/业务单据编号契约.md b/业务单据编号契约.md index 00fd327..ca0a515 100644 --- a/业务单据编号契约.md +++ b/业务单据编号契约.md @@ -18,7 +18,7 @@ | 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 入出库 | `WC` 头程来源尾程订单、`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` 车辆运维记录 | @@ -28,12 +28,14 @@ 同一类型的所有创建入口共用序列:例如普通卡车下单与车队商业池创建均使用 `TR`;正常车次与取货车次均使用 `CT`。预装和正式装柜清单继续使用同一个 `LP` 计划编号。 +头程来源尾程订单采用 `WC + yyyyMMdd + 四位流水`,共14位,例如 `WC202610210001`,按来源柜 `sourceContainerBookingId` 复用:该来源柜首次创建尾程订单时在柜级行锁内取号,后续同柜的入仓单、不同客户或跨日交接事件复用原号;事件重放不重新取号。真实集装箱号 `containerNo` 不作为复用身份,不同来源柜即使使用相同集装箱号也不能共用尾程编号。 + ## 明确保留的规则 - 入仓码、拆分子订单号和子入仓码不变。子订单继续使用主订单号加拆分后缀;新主订单改号后子单自然继承主号,但不改拆分算法或重新分配独立流水。 - 柜次号继续使用全局连续的 `D0001`,不按日期重置,超过四位自然增长。 - 实物箱码、散货托盘码、退货/转运箱码及一件代发 `DP-yyMMdd-####` 托盘标签不纳入本次改号。 -- 尾程独立 `WC` 编号尚未确认。头程来源尾程订单保留原分组规则;换标、转运、退货来源尾程订单继续沿用对应业务单号,不增加第二套业务身份。 +- 换标、转运、退货来源尾程订单继续沿用对应业务单号,不增加第二套业务身份。 - 自营采集任务号、主数据编码及未列入登记表的其他编号不在本次范围。 - 外部提单号、真实集装箱号、运单号、FBA 货件号、银行流水号等保留外部原号。 diff --git a/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md b/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md index 641aa43..626a820 100644 --- a/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md +++ b/头程到尾程分阶段流程/阶段三-国内货柜履约与出仓.md @@ -115,9 +115,12 @@ 3. 选择 `ACTIVE/BOOKING` 订舱供应商; 4. 填写三类参与方和已知运输资料; 5. 至少维护一项、最多二十项柜型需求,数量为正整数; -6. 保存为 `DRAFT`,系统生成 `OB-yyMMdd-####` 订舱号。 +6. 录入预报(委)件数、毛重、体积及包装单位、品名、唛头;未确定的数据留空; +7. 保存为 `DRAFT`,系统生成 `OB-yyMMdd-####` 订舱号并留在详情,可继续维护资料、上传文件和打印托运单。 -草稿允许资料不完整、替换文件和继续编辑。柜型需求只表达需要多少个什么柜型,不创建真实货柜行。 +草稿允许资料不完整、替换文件和继续编辑;关系方名称未填时,其已录入的联系人、邮箱、电话、税号和地址仍随草稿保存,放舱前必须补齐三方名称。柜型需求只表达需要多少个什么柜型,不创建真实货柜行。 + +新建页面默认柜型 `40HQ`、整箱 `FCL`,运费条款 `FREIGHT PREPAID`、运输条款 `CY-CY`、包装单位 `CARTONS`,均按实际业务维护。港口、日期、品名、免用箱要求及货量不写样例默认值;包装单位可选 CARTONS、PCS、PALLETS,货量为本订舱总量。 ### 5.2 补齐并放舱 @@ -130,7 +133,17 @@ - 存在有效 `BOOKING_CONFIRMATION` 或 `BILL_OF_LADING` 文件; - 订舱供应商仍为有效主档。 -点击放舱后状态从 `DRAFT` 进入 `RELEASED`,运输快照永久只读。放舱不要求真实柜号,不得为了通过校验伪造柜号。 +点击放舱后状态从 `DRAFT` 进入 `RELEASED`,运输和预报货量快照永久只读;实际货量通过独立受控入口补录。放舱不要求真实柜号,不得为了通过校验伪造柜号。 + +### 5.3 客服补实与单据打印 + +- 客服手工录入本订舱的实际件数、毛重(KGS)和体积(CBM),不自动汇总关联柜或覆盖仓库测量事实。未采集保持 NULL;已填写数值必须大于零,件数为整数,重量、体积最多三位小数。 +- 草稿保存委/实资料;放舱后仅持有订舱编辑权限的人员可通过 `PUT /api/platform/v1/ocean-bookings/{oceanBookingId}/actual-cargo` 补录或修正三项实值,必须提交当前版本、幂等键和原因,同事务递增版本并记录前后快照、操作人和时间。运输资料、三方关系人、柜型需求、预报货量和文件关联仍冻结。 +- 核心资料右侧并排展示发货人、收货人、通知人,下方独立展示船名、航次、提单号。保留仓库、渠道、预计到港、多柜型需求及文件入口。 +- “打印托运单”读取已保存的委值;“打印提单确认件”读取已保存的实值。两类单据复用现有 A4 PDF 模板和预览/下载,未填字段显示“—”,实值缺失不能回退为委值,也不以柜型容量代替货量。未保存修改须先保存再打印。 +- 柜量描述按柜型需求和数量生成,件数英文大写按对应的委/实件数及包装单位生成;品名、唛头及三方联系信息来自已保存资料。没有来源的传真、代理联系人等保持“—”。 +- 系统仅生成提单确认件,正式提单由外部提供,通过订舱资料附件上传和下载;不新增正式提单签发模板。附件维护仍遵循草稿可写、放舱冻结的现有边界。 +- 不在订舱新增中实现 FBA 同组入仓 30 天校验;该规则须先明确分组与时间事实后单独确认。 ## 6. F16 订舱级国内拖车 diff --git a/测试环境单机部署与配置契约.md b/测试环境单机部署与配置契约.md index b8739f6..e32f324 100644 --- a/测试环境单机部署与配置契约.md +++ b/测试环境单机部署与配置契约.md @@ -1,5 +1,35 @@ # 测试环境单机部署与配置契约 +## 2026-10-22 排车取消、驳回与失败后继续操作专项 + +- 用户授权 TEST 发布与真实 HTTP 验收。Admin 提交 `090431b40927b8f4f7770d4564dd23a463c0cf48` 已通过 `admin-web-test #692` 发布,镜像 `090431b40927`、镜像 ID `bc3825ed3ae3ee7593be6c8b0b2519b912e80ee3f3a2835d8e13e36e65925232`,running/healthy,健康端点返回 ok。复用已发布的 Lastleg `#411` / `e60890e63e36fd48ea601ecc1e9f95b1aa49d2b9`,再次核对镜像一致且 healthy。前端失败请求仅保留执行中的忙碌状态,结束后释放,清除旧会话缓存;部署资源已无“原请求结果尚待核对”提示。 +- Admin `#691` 因浮动 Node 基础镜像更新后下载停滞而主动中止,未替换容器;`#692` 固定上一成功构建使用的 Node 镜像摘要后完成类型检查、生产构建及部署。临时构建参数已移除,Job 配置与操作前原文逐字核对一致。 +- 本轮使用固定验收客户及现有海外 PDA、空闲合成测试车辆司机,通过正式接口实收入库两票各一托一箱;排车 `PC202610220004` 覆盖缺运输计划拒绝、过期版本拒绝后新请求成功、调度驳回、PDA 理货驳回。两类驳回均真实命中 BEFORE_LOADING / VEHICLE_INFO 列表,修改车辆资料后可重新提交并完成两级审核;零扫码显式退回后正常取消,关联车次取消,库存余额、库位明细及来货单完整快照不变,原两托重新成为可排候选。 +- 使用上述同一批货物及原预约逐批分配重新建立 `PC202610220006`,原车辆司机分配成功,再次取消且货物快照不变;空单 `PC202610220007` 取消成功。首次重新建单请求漏带预约批次分配,被 A0409 正常拒绝;保留失败请求证据,回查原预约当前版本后补齐正式分配,未重做入库或通过 SQL 绕过校验。所有本轮排车最终取消,登录会话退出;未修改用户重下的 `PC202610210022`,无 SQL、删除、重置或新增主档。 +- 本地前端 11 个受影响文件共 247 项测试通过,取消后端两类 40 项定向测试通过;未运行全量回归。真实 HTTP 证据为 `baiyue-firstleg/reports/dispatch-loading-exception-20261022-1030/report.json` 和 `dispatch-loading-exception-20261022-1030-resume2/{report,summary}.json`,原失败事实保留。无实托 PLAN 取消复用本文件下节已发布版本的 `PC202610220003` HTTP 证据;本轮新样本为实收货及空单。HTTP 与组件测试不替代页面截图或 Android 真机验收,本轮未宣称全部排车异常分支通过。 +- 用户追加要求真实页面验收并指定 1920×1080、100% 缩放后,Admin 已发布页面通过智能排车重新选择本轮 `ZY202610220001/0002` 的两托两箱,生成 `PC202610220008`。实际触发维护保存缺车辆的 A0400 后,原弹框可继续选车辆司机、填写运输时间并提交;调度实际驳回后自动返回车辆信息,显示退回原因,可修改资料重提并审核通过。 +- PDA 使用本机既有 H5、既有绑定洛杉矶仓的测试账号连接 TEST Gateway,实际打开同一排车并驳回理货审核;后台重新查询车辆信息显示同单与理货退回原因,实际维护修改、重提、调度通过后,PDA 再次审核通过,进入装车中且真实已拣仍为0。随后 Admin 页面执行零扫码退回装车前及取消 `PC202610220008`,原两托重新可选。 +- 在原两托新草稿中仅对验收标签页模拟断网,生成失败后显示“本次排车操作失败,请重试”,货物选择保留、生成及取消等按钮可用;页面控制曾超时,恢复连接后明确执行在线网络设置,再核对原失败状态。在原弹框直接再次点击生成成功得到 `PC202610220009`,未退出、清缓存或重放旧请求;新单通过页面复用原车辆和司机并保存成功。未将控制连接延迟当作产品接口耗时。 +- 最终通过正式 HTTP 核对原单已取消、新单为同两托且车辆司机保存正确;以当前版本正常取消新单释放测试资源,再从真实页面详情确认“已取消”。两单均无真实拣货、出库或派送,库存余额、库位明细及来货单与最初验收前完整快照相同,两托再次可排,车辆司机无占用,PDA 验收会话已从页面退出。本轮无源码修改、SQL、删除、重置、新账号或主档;未操作用户原排车单。 +- 页面截图、失败后 DOM、最终 HTTP 回执及汇总保存在本机指定凭据目录下 `dispatch-ui-20261022/`;最终验收截图均为1920×1080,浏览器 scale=1。范围是上述取消、驳回重提、维护及网络失败恢复,PDA 为 H5 真实页面,不替代 Android 真机及未执行的其他异常分支。 + +## 2026-10-22 本批32项修复发布与验收(已暂停,转人工验收) + +- 本批固定源码:Backend `2c3435adafe48c8e97ef145fa301eaa11ea230be`,Admin `2e26477db523cebf23db8c28f8a4dc39cb0df1bd`,Client `7adb97d145e28e61eb391ff7609aecdb2fda7e62`,国内PDA `5fcc51d73c2ba48f109ca513831f4a5f816dbb92`,海外PDA `9c2f0a54ec1e9147db7cd434455e963e8c4cb22a`。在先取消专项与验收脚本工作树差异均保留,未夹入本批提交;远端新增尾程列表需求保留于合并后的开发分支,本次未发布该需求或Order。 +- Firstleg `#510`、Finance `#136`、Lastleg `#409` 均SUCCESS,运行镜像标签均为 `2c3435adafe4`;复用本地定向测试,CI仍编译生产/测试源码并打包,未宣称全量测试。Admin最终 `#690` SUCCESS、镜像 `2e26477db523`;Client最终 `#440` SUCCESS、镜像 `7adb97d145e2`。已核运行镜像与目标提交一致,五个服务均running/healthy;前端任务SCM及lightweight配置已恢复原值。 +- Client `#439` 在lightweight检出阶段失败,未替换容器;改用完整检出后完成 `#440`。Admin `#689` 曾因过早恢复SCM使agent工作区取到合并提交,随后保持精确pin至构建结束,`#690`已替换为本批目标镜像。保留上述事实,不把读取Jenkinsfile的SHA当作实际构建SHA。基础Node镜像下载较慢不构成代码检查通过或失败依据。 +- 国内/海外PDA H5分别使用 `5fcc51d73c2b`、`9c2f0a54ec1e`,均running/healthy。普通文件归档、传输SHA及远端首页SHA已核对一致;国内首页 `34e9fc9fcef86d1fd7d375b0613df4babab720a9eb2c186ab59901f119625c17`,海外首页 `080d396928d6ccf1f92dd7d124c6bd0e605b776db24722de4045eb0abab39223`。仅发布H5,appResource/app编译不等于APK/WGT发布或真机验证。 +- 真实HTTP已验证本批空排车 `PC202610220002`:MASTER车辆照片保存后引用及文件内容保留、8项维护资料往返保存和空值清空、原键重放不增版本、错误附件分类被明确拒绝、实际发车时间未被改写;空排车最终取消且登录会话退出。此前选到已被其他车次占用的车辆时接口正常拒绝,未生成排车;确认结果已知后改用只读核对为空闲的主档。未代替此空单提交调度审核,不据此声称审核页面已验收。 +- 国内装柜完成真实HTTP通过:本批订单 `FL202610220001` 的1箱作业请求约88ms受理,约492ms观察到任务及完成命令最终COMPLETED;250ms串行观察,原operationId重放保持命令身份、任务版本、明细、操作历史和库存结算不变。首次测量审核因验收脚本使用旧主单版本而A0409明确拒绝,按权威measurement.inboundVersion接续同单,未重建订单或重做称重。证据为同目录 `loading-http.json`。 +- 费用调整真实HTTP通过:应收、应付均使用同一费用项目创建两条独立来源100/100,只调整首条为120并审核;业务与Finance当前各2条合计220,历史3条,原100/调整120/另一100及对应版本操作日志一致。验收脚本曾仅按nullable sourceFeeId过滤而漏掉原v1,修正取稳定来源身份后只读接续原应收,不重发已成功写入;应付随后一次完成。未覆盖无公开新增来源入口的Finance手工费用调整,未机械重放无幂等合同的Firstleg调整。证据 `fees-http.json`。 +- 尾程编号与默认日期真实HTTP通过:本批生成 `WC202610220001`,符合WC+yyyyMMdd+四位流水;原柜默认权威plannedDate为2026-10-28,未执行人工覆盖,直接转换唯一入库计划后plannedArrivalDate同为2026-10-28;权威查询planCount=1、isDefault=false、冻结日期不变。证据 `overseas-http.json`。预约来源正确阻断未开船货物,正按同一自有TEST柜补齐正式模拟前置,不借用其他单据或改数据库状态。 +- 预约登记发现并修复未排车客户被空排车锁范围拒绝的真实缺陷:仅FbaAppointmentExecutionAdapter及直接测试29增1删,8项定向测试和独立审查通过;原发布基线2c3435ada叠加该修复的精确候选 `74f510a49b8a378b377f94c92f007a2b937f6744` 经Lastleg `#410` SUCCESS,运行镜像 `74f510a49b8a`、镜像ID `ae277a635af099220ec373ddbb4202491eb2fa184886d9677180927edcb1ea51` healthy。其余六个运行镜像不变;开发分支合入候选祖先并保留远端新需求与本地在途差异,不发布无关HEAD。 +- 同一原TEST柜通过正式报关/自动离仓/人工模拟节点仅推进到DEPARTED_ORIGIN_PORT,原因明确SYNTHETIC_TEST,不代表真实报关或开船。登记下一步正确拒绝LGB8测试主档旧UTC-8;按现行WarehouseSaveNormalizer及已接受公共CSV,通过正常Warehouse PUT仅修正该既有主档为America/Los_Angeles,其他语义字段核对一致,未新增仓库、未SQL。保留所有明确拒绝回执后,用原预约批次、原key/body完成SUCCESS登记,确认号与时间窗读回一致;不代表第三方真实预约,客户原预约号自动带入按用户要求排除。证据 `appointment-fix-deployment.json`、`appointment-timezone-data.json`、`appointment-http.json`。 +- 后继实际维护/调度审核通过:自有PLAN排车 `PC202610220003` 使用原 `IP202610220001` 和SUCCESS预约,完整8项维护字段、关联订单、白底上传卡片均已页面核对;由维护弹框正常提交审核,权威状态DISPATCH_PENDING/version4。实际审核弹框加载同一自有VEHICLE图片及MASTER驾驶证图片,均核到非零naturalWidth,未审核通过或推进实际仓库作业。准备取消时发现已发布版本错误复验未实收PLAN装车资格;将既有取消专项四文件88增1删精确叠加74f510,独立审查及两类40项定向测试全部通过,Lastleg `#411` SUCCESS,最终提交 `e60890e63e36fd48ea601ecc1e9f95b1aa49d2b9`、镜像ID `fbd61a6577b72ea9e837b12bb5538268976f0e7d34aa5fa0e8be39734bc68605` healthy,其余六镜像保持不变。随后原PC3及 `CT202610220003` 正常取消,车辆/司机occupiedTripNo均为空,0实际拣货/出库/派送;证据 `dispatch-cancel-fix-deployment.json`、`dispatch-ui-cleanup-http.json`。 +- 内置浏览器已恢复;Admin/Client均实际1920×1080、100%。已核订单节点、其他页签顺序、新增费用白底与文字操作、测量申报底色/无更多、审核总览与称重表格、完整车辆维护及审核照片、柜次号副文案移除、柜详情指标/提示删减、人工补录白底、订舱草稿创建时间/放舱白底、关联白底/输入边界、智能装柜加入白底/提示删减、预装备注白底/输入边界、预装独立事件名称、日历柜次号、入库单查看预约白底、既有预约直接确认字段,以及客户端头程标签/按钮分行。货柜/订舱/日历一个明确诊断窗口58个数据请求,最大342ms;有会话过期刷新,未将401算作业务成功或将工具延迟算作产品延迟。更早请求计时缓冲区已满的记录只作局部证据,不据此宣称后续零请求。 +- 用户现明确要求停止自动操作,改由人工验收;本批不标全量验收完成,不再自动修复、部署或推进业务。待人工重点核对客户端退税资料弹框、PDA双端390×848页面/上传/完成交互、推送PDA弹框及其余未完整覆盖场景。当前自有测试柜 `D1818` / `TSTU3723017`,订舱 `OB202610220002` 已在页面正常放舱并关联;预装 `LP202610220002` 已在页面加入退税测试单 `FL202610220003` / `ZBYHK2610220003` 的1箱,尚未选择PDA操作员、未确认推送、未领取/拣货/装柜完成、未报关。页面停在该预装详情的操作员下拉框,Admin/Client页保留供人工接手。前一张买单UI种子 `FL202610220002` / `ZBYHK2610220002` 仍待分柜。退税种子审核曾明确A0409拒绝版本4;原拒绝及INTENT保留,独立后缀双读一致的新版本后正常审核并完成费用/客户确认,未重建或重复测量,不把原拒绝回执改写为成功。 +- 本地海外PDA仍为原5176服务、国内仍为原5175;未停止服务、未启动准备好的5176回环代理,未切换端口或改manifest。本轮未执行SQL、重置或新建公共主档;仅前述既有LGB8主档经正常API修正时区。部署/HTTP报告入口为 `baiyue-firstleg/reports/repair32-20261021/`;截图及详细浏览器请求记录保存在本机指定凭据目录的 `repair32-ui/`,不将客户与环境敏感信息入库。人工结果仍在本节接续。 + ## 2026-10-21 TEST 客户保留名单清理与恢复 - 用户明确要求删除其他客户,最终保留 `TEN2097708157074210818`、`TEN2097867276078874626`、`TEN2097882345072295938` 三个客户。核对 TEST 入口、数据库身份和编号映射后,20:17(Asia/Shanghai)单事务删除 738 个客户、761 个专属客户账号及相关资料、配置、资金账户、客户销售报价和安全关联,共 30 张表 59,278 行;904 个平台账号及平台主体保留。公共仓库、车辆、自营数据、独立审计、物理文件和编号序列继续保留。 diff --git a/海外仓业务/内部拼车需求池首版开发契约.md b/海外仓业务/内部拼车需求池首版开发契约.md index 94cfeff..4ba1694 100644 --- a/海外仓业务/内部拼车需求池首版开发契约.md +++ b/海外仓业务/内部拼车需求池首版开发契约.md @@ -6,7 +6,7 @@ ### 当前页面范围(2026-10-21) -用户确认「海外业务 → 散板需求」当前仅作为平台内部的排车余位需求池,人工联系、下单,不向客户公开运力市场。日常派送排车增加“发布公共散板需求”,新建默认勾选,每车独立保存;维护车辆信息时可取消或恢复勾选。选项与原新建/编辑命令同事务保存,沿用原权限、公共版本和幂等键;只切换发布选项不作废已有调度/理货审核依据。 +用户确认「海外业务 → 散板需求」当前仅作为平台内部的排车余位需求池,人工联系、下单,不向客户公开运力市场。2026-10-22 简化智能排车:搜索区仅提供默认不勾选的“发布公共需求”,统一应用于本次生成的所有排车单,每车独立保存;移除下方计划时间与备注填写区,需求时间直接使用关联排车的计划发车时间,时间和备注沿用“维护车辆信息”维护。维护车辆信息时可取消或恢复本车发布勾选。选项与原新建/编辑命令同事务保存,沿用原权限、公共版本和幂等键;只切换发布选项不作废已有调度/理货审核依据。 数据源直接来自当前排车主单,不再依赖旧车次的人工余位发布记录,也不创建另一份车次、发布单或占位。仅勾选发布、ACTIVE、DELIVERY、未实际发车且处于装车前/装车中/装车后的排车进入列表;取消勾选、取消排车、实际发车/进入派送中或任一已知容量维度满载时自动退出。取货和本土卡车排车不参与。查询复用实时排车快照,按本车业务号一行展示,不返回客户货物、司机私人信息或内部ID。 diff --git a/海外仓业务/排车列表统一作业改造契约.md b/海外仓业务/排车列表统一作业改造契约.md index 919f5a7..4f3e5bb 100644 --- a/海外仓业务/排车列表统一作业改造契约.md +++ b/海外仓业务/排车列表统一作业改造契约.md @@ -8,13 +8,15 @@ 2026-10-21 用户最终澄清:允许先预排车辆和货物;FBA预约未确认、送达时间及计划来车/发车安排未核对时,客服不得提交有效审核、调度和理货不得批准,更不得开始实际拣货。审批拒绝入口保留,不能因通过条件不满足而无法驳回。两级审核展示当前有效收货确认及运输时间,按真实客户、来源、目的仓及确认覆盖量核验,不借同批其他客户的确认通过;原收货确认发生变化时审核依据失效。发车仍复验,不能等货物全部拣完才首次发现预约未就绪。当前已执行拣货事实不得清空、重建或伪造预约来强行发车。 -2026-10-21 新增内部散板需求发布选项:新建排车默认勾选“发布公共散板需求”,可在维护车辆信息时修改;按车与新建/编辑命令同事务持久化。对派送排车的候选、满载退出及未知容量口径统一见[内部散板需求池当前范围](内部拼车需求池首版开发契约.md#当前页面范围2026-10-21),不改变排车审核、实际拣货、装车照片或发车流程。 +2026-10-21 新增内部散板需求发布选项,2026-10-22 简化智能排车入口;当前发布选项、时间来源及派送排车的候选、满载退出和未知容量口径统一见[内部散板需求池当前范围](内部拼车需求池首版开发契约.md#当前页面范围2026-10-21)。选项按车与新建/编辑命令同事务持久化,不改变排车审核、实际拣货、装车照片或发车流程。 1. 2026-10-21 用户最新确认:排车列表恢复装车前、装车中、装车后、派送中、派送完成五个作业阶段。装车中可同步上传资料;确认装车完成且资料齐全才进入派送中。装完但资料未齐留在装车后,资料先齐则确认装车时直接派送;此规则替代同日此前“装完即发车”的确认。 2. 一张排车单就是一趟车,允许同车多个客户、多个目的仓;各票货物、库存、单据和费用必须保留真实客户归属。 3. 装车前包含车辆信息、调度审核、理货员审核;维护车辆信息后提交调度审核,再经理货员审核进入装车中。2026-10-21 用户确认审核链:客服在最初的车辆信息入口维护并提交,不新增独立客服审批级别;调度或理货员任一环节驳回均须填写原因,并统一回车辆信息/客服处理分区,离开待审队列。客服处理期间保留驳回环节、原因和原审核记录,编辑不抹除原因;重新提交开启新轮次,必须重新经过调度及理货审核,不复用旧批准。理货审核允许 Admin 或绑定仓 PDA 操作,两端共用版本、幂等和审核依据;通过前不得真实拣货,通过后才进入装车中。 - 2026-10-21 用户确认精简车辆维护入口:仓库派送排车的列表、详情隐藏“调整卸货顺序”和独立“提交调度审核”;提交统一放在“维护车辆信息”弹框,保留“保存”和“提交审核”。提交审核先保存本次车辆、司机、时间与附件,再读取最新版本和服务端资格提交;两步分别保留原请求,失败恢复不重复保存已确认资料。车辆维护和提交审核不提供备注输入,保留已有备注;调度/理货审核的驳回原因仍必填。到仓取货沿独立运输操作入口,不受本次车辆维护弹框合并影响。 + 2026-10-21 用户确认精简车辆维护入口:仓库派送排车的列表、详情隐藏“调整卸货顺序”和独立“提交调度审核”;提交统一放在“维护车辆信息”弹框,保留“保存”和“提交审核”。提交审核先保存本次车辆、司机、时间与附件,再读取最新版本和服务端资格提交;两步分别执行,失败提示后保留输入并结束请求态,用户再次点击按当前事实重新请求。车辆维护和提交审核不提供备注输入,保留已有备注;调度/理货审核的驳回原因仍必填。到仓取货沿独立运输操作入口,不受本次车辆维护弹框合并影响。 2026-10-21 用户进一步确认:调度审核、理货员审核两个列表分区只提供“审核、详情”,不展示维护车辆信息或其他操作菜单。Admin审核弹框可补充车辆图片、司机照片、驾驶证照片,已有证据只读预览;新增附件随本次通过或驳回保存,不借维护车辆信息重写车辆/司机资料或改变审核依据。上传及提交均按当前待审环节的审核权限校验,并逐文件核验本车及分类归属;附件读取沿列表查看权限。理货驳回、客服修改保留已提供证据,新一轮提交清当前审核附件并保留历史。PDA继续使用既有审核入口,本次不新增PDA上传界面。 + + 维护资料通过 `DispatchCommands.Update.maintenance` 保存到现有 `resourcesJson.maintenance`,详情对称返回 `vehicleInfo.maintenance`,唯一类型为 `DispatchContracts.Maintenance`。整体及八字段均可空,空白文本规范为 null,允许空草稿保存:`plannedDeliveryDate` 为 ISO 日期 `YYYY-MM-DD`;`deliveryMethod` 为 FBA自提/客户自提/卡派打托/卡派地板/快递/外配;`pickupMethod` 为一提一卸/一提多卸;`loadType` 为托盘/地板/混装;`fleetEmail` 最多254字符;`vehicleType` 为厢式货车/平板车/集装箱卡车;`appointmentAccount`、`appointmentNo` 各最多128字符。预约号仅是本趟补充资料,不替代正式 FBA 预约,不新增审核级别、权限或必填门禁;计划时间、实际发车及正式派送费用口径保留。MASTER/EXTERNAL 车辆的本趟 `evidenceFileIds` 均保留到资源快照,不能被主档解析清空;保存及审核对非空照片逐项核验本排车及 VEHICLE 类别、有效性,调度审核读取同一已保存证据,不写入车辆主档。 2026-10-21 用户确认:在装车前清除“有效排车”筛选后,仍保留车辆信息、调度审核、理货员审核三个页签及当前选中项;查询沿用空值默认有效排车的规则,切换页签继续按当前审核分区查询。 4. 2026-10-21 用户确认:装车完成确认真实实载,Admin与PDA成功结果在资料未齐时为AFTER_LOADING、资料已齐时为DELIVERING。装车中及装车后均提供“装车照片1至5”五个固定框,两端均可拍照/选择图片、上传、预览及替换,按整张排车单共用当前照片与附加资料版本,不依赖派送单或按客户重复上传。五框全部绑定保存且已确认装车完成后自动进入派送中;不以选图、文件上传回执或重复槽位充数。保留真实拣货核平、实载校验、版本及防重复约束。 5. 装车已完成时,第五张装车照片绑定与按客户和目的地生成出库/派送单、记录实际发车并进入派送中在同一事务完成;照片先齐时,这些动作随装车确认在同一事务完成,仍无人工安排派送及确认发车入口。上传和绑定各保留稳定原请求键;第五张绑定或派送失败时保留装车后、前四张及原上传文件,原请求可恢复,不能留下半车或重复派送。PDA每次按Token绑定仓校验,Admin沿排车list只读、edit上传保存。照片使用原整车附加记录及文件归属,不新增存储表;五个既有技术槽位仅映射装车照片1至5,不表示司机审核或真实签收。真实外接报价沿原费用路径发布,未知派送补充资料与费用保持未确认,不猜测金额或原费用覆盖、不填写零费;后续由既有后台资料/费用管理维护。装车中上传齐资料不会提前发车;照片先齐时派送失败回滚本次装车确认、保留已保存照片,原请求可重试。装车完成原键恢复本次事务原最终阶段(AFTER_LOADING或DELIVERING),资料保存原键恢复原保存结果,当前阶段须另读;不重复扣库存。 @@ -31,7 +33,7 @@ 10. 后台确认装车完成必须以PDA真实拣货核平为前提。后台不提供替代PDA的拣货数量补录来绕过此条件;PDA和后台均可确认装车完成;两端可在装车中同步上传五张装车照片,由服务端在装车与资料均完成时自动发车。 11. 用户随后澄清本次“新增预约”是预约日历的功能需求,先与本批排车改造分开整理。本批不新增日历预约创建或独立约车流程;排车保留已有FBA预约关联;用户随后对车辆预约权威来源问题答复“那就不要”,因此排车取消车辆预约字段、关联操作及公开协议,不再等待或新建该权威提供者。此前确认的先保存后关联意见保留为日历需求输入,不作为本批扩大实现范围的授权。 12. 用户进一步明确“本批支持整托同车”:两张换标单已合到同一实托时,整托进入同一排车主单,物理托盘及容量只计一次,各换标单的箱数、客户及扫码归属分别保留。不得只装第一来源、借第一客户承载其他来源,或把同一实托拆成两张排车绕过排他占用;此确认取代该场景的待决定状态及仅作前置拦截的候选方案。 -13. 用户进一步确认:换标已由客户确认完成、关联出库单尚未扫码时,只取消本次出库安排,保留已完成的换标成果,退回待安排。不得将已确认换标申请一并作废;取消须清除本次有效出库关联,保持真实客户、原换标成果及重新安排资格。此规则不放开已扫码取消或新增回库流程,整车取消仍遵循既有阶段、版本和零扫码门禁。 +13. 用户进一步确认:换标已由客户确认完成、关联出库单尚未扫码时,只取消本次出库安排,保留已完成的换标成果,退回待安排。不得将已确认换标申请一并作废;取消须清除本次有效出库关联,保持真实客户、原换标成果及重新安排资格。此规则不放开已扫码取消或新增回库流程,整车取消仍遵循既有阶段、版本和零扫码门禁。2026-10-21 用户确认排车安排与货物事实分离:整车取消只撤销本车运输安排、预约分配及逻辑/物理占用,恢复本车换标预占,不改变货物实收、库存或已完成换标成果;未实收计划无需实托,已有实托也不重新按当前库存数量、来源组成或装车资格校验取消。取消仍先锁本车原换标申请及原实托串行点,并保留版本、装车前、零真实扫码、无有效出库及车队未执行门禁;扫码、装车和发运继续使用原严格货源校验。 14. 2026-10-21 用户确认:排车BOL前端仅在本轮调度审核通过后展示下载入口,无需等待理货审核或装车完成;未提交、待审核、驳回及审核失效时隐藏。用户明确本次仅改前端,后端下载接口不增加审核判断。审核分区仍仅保留审核、详情。2026-10-20 用户在人工BOL验收中最终确认:保持现有一次下载/预览PDF的方式,PDF内按“目的地+预约号”分别生成BOL;同仓同预约号的货物合并,不同预约号分成各自BOL,不按客户拆打印分组。用户前述“不同PDF”在后续“就和现在一样”的答复中已明确沿用现有承载,总控已说明当前实际是一个PDF包含多张BOL;不新增选择弹框、压缩包或下载协议。没有预约号也能打印,预约号栏留空,同目的地且均无号的货物合成一份。各BOL明细超页时可有自身续页,按原分页容量处理;打印分组不修改各票货物、库存、派送和费用的真实客户归属。货物按真实预约分配及数量归集,不把同一明细全量重复复制到每个预约。 @@ -105,7 +107,7 @@ - 同一仓多个客户、多个目的仓装一车;同一目的仓不同客户的派送及费用不串客户,客户只读只能访问自己的货物和单据。 - 调度审核与理货员审核的正常通过、驳回与重提;未通过不能进入装车,改货物或关键资源后旧审核不得误用。 -- 装车完成且资料齐全才进入派送中,两项可并行;后台与PDA对同一版本同时操作只产生一次合法结果,自动建单、发车和命令结果同事务,未知结果按原请求键核对和重试。 +- 装车完成且资料齐全才进入派送中,两项可并行;后台与PDA对同一版本同时操作只产生一次合法结果,自动建单、发车和命令结果同事务,服务端继续保证版本校验和业务防重。2026-10-21 用户确认取消Admin排车前端的未确认请求持久化、旧请求重放及失败锁页:仅请求进行中防连点,任何失败均结束请求态并保留输入,下一次点击按当前事实重新请求;关闭重开不恢复历史失败请求,也不阻断其他排车或操作入口。 - 全部正常签收才汇总派送完成;部分签收仍未完成,异常不伪造完成、退库或费用结算。 - 普通入仓、换标/退货来源、同托多来源及既有预约批次/工作事项的直接调用不丢来源、不重复扣库存或收费;保留上一批修复约束。 - 加载、空态、错误、无权限、附件预览及四页签长编号展示;不逐行查询列表详情或附件。 diff --git a/海外仓业务/预约工作日历V13变更说明.md b/海外仓业务/预约工作日历V13变更说明.md index 4532365..9b61921 100644 --- a/海外仓业务/预约工作日历V13变更说明.md +++ b/海外仓业务/预约工作日历V13变更说明.md @@ -4,12 +4,13 @@ 本节来自用户本次确认,优先于下文 V13 对预约列表入口、类型与承载方式的早期规定;下文数量、客户隔离、真实执行等原业务约束继续适用于各自业务模块。 -- 预约列表恢复用户截图 `codex-clipboard-840bcc07-6b54-4afa-9dc7-666d09ff04f2.png` 的左侧月/周日历、右侧当天安排。类型仅为到港、排车、还柜、计划到仓;每日期格最多三条预览,完整记录在右侧查看。保留当前范围搜索和未定日期入口。 +- 预约列表恢复用户截图 `codex-clipboard-840bcc07-6b54-4afa-9dc7-666d09ff04f2.png` 的左侧月/周日历、右侧当天安排。类型仅为到港、排车、还柜、计划到仓;货柜事项以柜次号作为主标识,集装箱号只在明细与检索中展示;每日期格最多三条预览,完整记录在右侧查看。保留当前范围搜索和未定日期入口。 - 月视图按当月所需显示4、5或6个完整周,仅在首尾周补齐相邻月份日期,不固定追加六周。2026年10月显示9月28日至11月1日,不显示11月2—8日整周;日历查询同步采用实际展示范围,周视图仍为7天。 -- 到港优先实际到港,缺实际时采用预计到港。计划到仓默认在该到港当地日期上加两个自然日,跨月和夏令时仍按日期加两天,不补造具体时刻。人工保存的整柜时间优先,已有入库计划的冻结时间保持;尚未人工维护和未建计划的默认日期随到港事实变化。预约日历“计划到仓”与清关提柜列表、详情“预计到仓”共用该日期规则,默认值显示日期并标明“默认/默认推算”,不补零点。该默认值不自动写入尾程订单或入库计划、不充当实际到仓;读取失败或已有计划但时间不一致时,不以默认日期掩盖缺失。人工调整复用整柜预计到仓命令、原编辑权限、版本及幂等键;已有入库计划后仍不可改。 +- 到港优先实际到港,缺实际时采用预计到港。计划到仓默认在该到港当地日期上加两个自然日,跨月和夏令时仍按日期加两天,不补造具体时刻。人工保存的整柜时间优先,已有入库计划的冻结时间保持;尚未人工维护和未建计划的默认日期随到港事实变化。预约日历“计划到仓”与清关提柜列表、详情“预计到仓”共用该日期规则,默认值显示日期并标明“默认/默认推算”,不补零点。默认日期由 Lastleg 统一读取 Firstleg 权威到港来源后解析,清关提柜、日历及生成入库计划共用 plannedDate/isDefault;读取时不写尾程订单,生成入库计划时冻结该日期,不补造零点,也不充当实际到仓;读取失败或已有计划但时间不一致时,不以默认日期掩盖缺失。人工调整复用整柜预计到仓命令、原编辑权限、版本及幂等键;已有入库计划后仍不可改。 - 排车仅指海外仓送往 FBA/客户仓的真实整车排车主单,一张主单中的多客户只展示一次;已发车按实际起运仓当地日期,未发车按计划日期,取消主单不列入活动安排。日历返回真实排车单号并进入排车详情;独立旧车次不作为日历来源,也不得将内部车次号当排车号拼接路径。读取沿用排车列表权限;从详情可返回原日历日期与月/周视图。港口提柜送海外仓不作为排车类型。 - 还柜未完成按原业务截止日期提醒,完成后按实际还柜日期展示;日历不独立计算或改写还柜状态,登记进入原货柜业务。 - 用户随后明确恢复日历顶部“新增预约”:本次先支持FBA,普通客户仓不在本次范围。居中弹框选择已有货物,核对真实来源后复用原预约表单与保存接口;同起运仓、同目的FBA仓可跨客户合约,保留原写权限、版本/幂等、未知结果重试及未保存保护。货物查询栏支持可搜索、可清空的目的FBA仓下拉框;选项来自同权限范围的权威美国FBA目录,不从当前分页推算。提交查询后回到第一页,翻页沿用目的仓条件,重置恢复全部目的仓;跨页已选货物仍保留并执行同起运仓、同目的仓校验。保存成功显示真实预约编号及内容,不自动创建车次,不增加第五类日历或手工编造到港/还柜等事实。 +- 平台新建及重新登记 FBA 送仓预约时均填写已取得的外部约号、确认开始时间和可选结束时间,直接保存正式确认,不再提供“先保存安排,等待对方确认”选项;已有取消、替代和只读记录仍展示真实历史状态。客户、来源版本、目的仓、货物完整性与外部约号唯一性校验继续执行。 - 入口移除全局工作待办、流程筛选、负责人分派、跟进、复核、责任交接,以及货物核实/分批/共约/共车编排入口;这些原业务在相应模块继续处理。仍由其他业务页面实际使用的精确来源或事项深链可以打开原业务表单,不恢复旧全局待办及筛选协议。 - 排车日历同时返回各排车单货物快照中的关联柜号,按单去空、去重;同车多个柜号均可在当前日历范围搜索,仍只展示一条排车安排。柜号只作检索和展示,不改变客户归属、货物数量或排车状态。详情明确展示起运仓时区及当地计划出发时间;北京时间与美国当地日期可能跨日,不把浏览器日期用作日历归属。 - 缺权限、来源失败或缺时区明确提示数据范围不完整,不能显示为全部完成或完整空日历。未能定位日期的排车提示具体排车单号和原因,避免误认为当前搜索的单据缺资料。未知日期保留未定,不用浏览器当前日期、内部 ID 或假数据补齐。 diff --git a/独立任务协作登记.md b/独立任务协作登记.md index c948fbb..50590bf 100644 --- a/独立任务协作登记.md +++ b/独立任务协作登记.md @@ -1,5 +1,39 @@ # 测试环境独立任务协作登记 +## 2026-10-21 用户验收32项修复与统一发布 + +总控为 `01a15eae-fd50-7f42-93b5-eb203648b808`。用户本轮指定复用五个既有对话,并在“样式优化”分区新增两个独立对话,合计七个执行专项;目标为 TEST 项目 `c64729ff-6710-43c6-8ef2-d84e9666cc1e`、host `local`、当前工作区 `C:/Users/BY-OY/Desktop/code/chongchong-global`。两个新对话保存项目已核对为 TEST;五个旧对话的项目迁移工具返回成功,但复读仍为 `projectId=null`,按实际空值登记,不声称迁移已落地。五者均为用户本轮精确指定的本地同工作区任务,未发生跨环境调度;不操作开发工作区、不新建分支或 worktree。 + +用户授权在本批全部修复、必要检查及总控复核完成后,由本总控统一部署受影响 TEST 服务及端侧,并执行真实 HTTP 验收。执行专项只有本地实现与定向检查写权,不自行提交、推送、发布、执行 SQL、造数或调用写接口。根负责精确发布候选、发布窗口及验收数据;删除、重置、SQL 和本批外发布不在授权内。凭据仅从用户指定的 `C:/Users/BY-OY/.codex/env/chongchong-global` 私有目录加载,禁止输出真实值或把值写入源码、文档及报告。部署事实只维护部署主契约,本节维护派工和文件归属。 + +| task_id | 本批稳定职责 | 问题编号及唯一写入边界 | +| --- | --- | --- | +| `01a15dcc-dfe7-7660-98b0-7f9a2384c439` | 订单、测量与审核 | 1–7;Admin `unified-orders`、`first-leg-orders` 及实际复用的入库测量/审核组件和直接测试;纯展示不进入后端。费用明细面板展示归本专项,财务记录调整逻辑归下行。 | +| `01a15dcc-5645-77b1-984b-f95af08120b7` | 客户应收应付 | 8;Admin `finance`、Finance费用调整的直接后端与测试。确需 Firstleg 费用来源修改先列精确文件,避开订单面板和柜费面板。 | +| `01a15dcc-7f62-70d1-a016-1410a5ae6b1e` | 货柜、智能装柜与预装清单 | 9–12、16–17、21–22、25;Admin `container-loading`(含本批 SmartLoading)与 `loading-lists`、对应直接测试。历史重复若需后端,仅对应历史生产/读取触点;不得并写 PDA完成链路。 | +| `01a15dcb-8638-7ca0-9037-b27b2a1ccac2` | 订舱管理 | 13–15;Admin `ocean-bookings` 与直接测试;时间字段缺失时可追踪 Firstleg `oceanbooking` 的直接生产者。货柜中的订舱关联弹框归货柜专项。 | +| `01a15eb4-8850-7582-8cf0-5ab848427ae7` | 国内PDA装柜完成链路 | 18;国内 PDA `pages/picking`、完成状态/请求辅助和直接测试,Firstleg装柜完成命令/查询的直接链路与测试。先拆分等待来源,不以隐藏处理中代替修复;货柜/清单展示文件不写入。 | +| `01a15eb4-8c12-7903-844f-a3241adcef3c` | 客户端头程订单与资料 | 19–20;Client `first-leg` 和退税报关资料直接使用组件及测试;“关闭”改“提交”只改文字,不改动作。 | +| `01a15e2b-3e40-7110-8d2b-88d15e965110` | 海外预约、尾程与入库 | 23–24、26–28;Admin `appointment-calendar` 与实际海外入库/FBA预约页面、Lastleg预约来源/编号/预计到仓传递的直接后端及测试;客户预约号的直接读取消费归本专项,Client源码若需修改须先协调。 | + +总控唯一维护本批登记、公共样式/组件、共享导航/根路由/IAM/统一SQL和发布验收接线。实现者先回报入口、精确文件与预计验证,随后在授权范围继续;共享文件需求交总控,不并发改写。各组复用有效定向结果,不各跑全量;所有测试、类型检查、构建经 `scripts/local-check.ps1` 两槽门禁。界面视觉仍以1920×1080、100%人工截图为准;代码检查、部署/HTTP通过、人工视觉确认分别记录。 + +启动时已有他人差异必须保留:Admin 的 `WorkSharedTripForm.vue`、排车三个组件、`dispatchCommandRecovery.ts`、`DispatchesView.vue`;后端 `DispatchAggregateService/DispatchService` 与直接两测试,以及全量验收脚本专项在 `scripts/` 的现存差异。各专项不接管这些文件;必要交叉由总控确认唯一写者后接续。第1项先按移除“已经确认数据”节点展示定位,不授权删除业务数据;第11项先核重复来源,保留真实有效历史;第26项修复权威编号生成,不前端截短。 + +定位后的必要扩展:货柜专项追加 `port-schedules/components/CarrierScheduleQueryPanel.vue`、`ContainerPortSchedulePanel.vue` 实际路径与直接测试的展示写权,覆盖货柜人工补录及嵌入船期弹框;海外专项追加 Firstleg 日历柜次号的直接 DTO、查询/组装器和测试,精确类路径由专项回报,不改其他船节点、订舱历史或PDA完成链路。货柜组已冻结并按SHA256释放 `ContainersView.vue`、`ContainerDetailView.vue`,到仓结果映射的写权交海外组;实际类型触点为 `api/containerArrivalTimes.ts`。公共 `adminDensity.test.ts` 仍归总控。 + +用户后续追加29–32,仍复用上述七个执行对话,不新建聊天:订舱专项接续29–31排车“维护车辆信息”的原型字段补齐、上传操作及调度审核照片回显,PDA专项在18租约返修后接续32海外PDA装车照片样式。29的依据为用户截图 `codex-clipboard-0b236f6d-d66c-4878-8992-52ad04104489.png` 及命中的局部原型;先核字段与直接契约,不将原型示例或计划时间伪装为实际发车事实。新增前端触点以实际资源表单/审核/照片组件为限;现有排车并行写者未冻结前,共享调度文件只读。32仅复用国内上传呈现思路,海外源码留在本应用,保留照片、权限和命令语义。 + +29–31跨端拆包:`01a15dcc-5645-77b1-984b-f95af08120b7`在财务冻结后接续唯一后端实现,维护 `DispatchCommands.Update.maintenance`、`DispatchViews.VehicleInfo.maintenance`、必要资源快照/存取、Aggregate update/detail、`FleetTripService.dispatchResources`及直接测试/OpenAPI;订舱/车辆专项只写对应前端。八个可空字段为plannedDeliveryDate、deliveryMethod、pickupMethod、loadType、fleetEmail、vehicleType、appointmentAccount、appointmentNo;不新增金额/审核硬门禁,不把本趟预约资料替代正式FBA预约。优先沿已有资源JSON的唯一正式类型保存,不引入无必要表列。取消专项已完成并idle;总控已记录其既有调度文件差异基线,再释放 `DispatchWorkflowDialog.vue` 给前端、Aggregate局部给后端,保留全部在先差异,禁止整体覆盖。18/32已交付12文件并冻结,租约缺口已补实际Mapper/事务回归;财务同毫秒排序返修已通过独立只读复核。26前缀与24范围采用用户后续确认,见本节当前状态。 + +当前状态:七个实现包均已交付;财务同毫秒历史排序与PDA旧worker租约检查点两项审查缺陷均已返修并经独立复核关闭。订单超限提醒、订舱时间、货柜/预装白底、客户端两项、预约真实确认状态、到仓日期传递、车辆资料保存/照片审核与海外PDA照片均已完成相应定向检查;次数有交叉,不相加为覆盖总数。用户随后明确26采用WC+日期+四位流水,24暂不做客户原预约号自动带入;海外专项据此收口编号主契约,不新增客户字段或猜测referenceId映射。车辆后端独立审查无阻断;总控对照用户原型发现MASTER模式承运公司和电话缺少展示,现唯一释放 `DispatchResourceFields.vue` continuous分支及直接测试给订舱/车辆专项补只读可见信息,其他模式和入口保持原语义。 + +发布准备:Admin及Client生产构建通过,国内PDA的H5和appResource、海外PDA的H5和app资源编译通过;未发布APK/WGT、未在设备验证。MASTER补显34项及日期消费者32项定向检查已通过。客户端专项只在忽略临时目录准备逐项核实的HTTP验收草案,不读取凭据或联网;执行权仍归总控。人工视觉核对仍待1920×1080、100%截图。 + +固定发布候选:Backend `2c3435adafe48c8e97ef145fa301eaa11ea230be`、Admin `2e26477db523cebf23db8c28f8a4dc39cb0df1bd`、Client `7adb97d145e28e61eb391ff7609aecdb2fda7e62`、国内PDA `5fcc51d73c2ba48f109ca513831f4a5f816dbb92`、海外PDA `9c2f0a54ec1e9147db7cd434455e963e8c4cb22a`,均已推到各自既有分支。共享文件用本轮前快照剥离取消专项增量后写入index提交,保留完整工作树;布局测试亦只提交本批字段/照片用例。远端随后出现未部署的尾程列表需求,正常合并并保留分支源码,但本批发布仍pin上述原提交,不追加Order或该新需求;当前运行版本已核为本批候选祖先。尝试扩展审查后及时撤回该范围,局部草稿不进入发布。发布由总控执行,实际Jenkins、容器及HTTP事实只写部署主契约。 + +用户随后明确完整验收目标:总控在本批修改完成后,先运行真实HTTP流程,通过后打开内置浏览器登录检查样式、交互和请求量;Admin/Client使用已部署TEST、1920×1080,国内/海外PDA使用本地 `http://localhost:5176/#/`、390×848。该明确授权覆盖本轮默认人工截图限制,并允许TEST部署、真实HTTP及必要测试数据库操作;不据此清空用户数据或操作其他环境。总控继续唯一环境执行,专项只收口本地草案。当前部署与已验证范围见部署主契约,HTTP全链及四端页面未完成前不关闭目标。 + ## 2026-10-20 排车、自有及外配 HTTP 扩展收尾 2026-10-21 本轮明确的TEST真实HTTP与小于1秒目标已完成:4f交付原PLAN主链及原extra两单后缀全部履约、结案、资源释放和完整库存证明;7b独立复核主链身份/时序/失败闭合通过;根核三单最终事实、真实全响应计时和两客户全部阶段库存一致。具体结果及保留限制只维护部署主契约顶部。56、63实现/审查候选保持冻结;没有新增生产改动、SQL或发布任务,不重复派工或重跑成功链。52此前四图与材料有效校验已纳入证据,若旧turn仍显示active不据此重启或扩大任务。 diff --git a/财务管理/openapi/finance-core-five-pages-v1.yaml b/财务管理/openapi/finance-core-five-pages-v1.yaml index 579bca5..07a13fc 100644 --- a/财务管理/openapi/finance-core-five-pages-v1.yaml +++ b/财务管理/openapi/finance-core-five-pages-v1.yaml @@ -240,6 +240,7 @@ paths: get: operationId: listFinanceFeeSources summary: 分页查询客户应收应付费用来源 + description: 默认按 sourceSystem + sourceType + sourceFeeId 只展示最新版本,计数与分页口径一致;同名不同来源费用不合并。显式筛选 SUPERSEDED 时查询被替代的历史版本。 x-permission: platform:finance:customer-arap:list parameters: - name: page @@ -1034,6 +1035,7 @@ components: sourceHash: {type: string} operationLogs: type: array + description: 同客户、同收付方向、同来源费用身份的历次同步及财务审计;保留版本和调整前后金额,系统同步不冒充原业务操作者。历史版本仅返回当时及此前版本记录。 items: {$ref: '#/components/schemas/OperationLog'} FeePoolItemRead: type: object diff --git a/财务管理/财务费用入池P0闭环.md b/财务管理/财务费用入池P0闭环.md index 6b8a6a5..3ea7931 100644 --- a/财务管理/财务费用入池P0闭环.md +++ b/财务管理/财务费用入池P0闭环.md @@ -61,6 +61,8 @@ USD 费用必须命中业务日期所在月份的有效 USD/CNY 汇率。入池 | 调整 | 新版本替换旧版本;Finance 仍按来源费用号和版本幂等消费 | | 作废 | 仅未冻结来源允许作废;已结算或已出单来源必须走财务调整流程 | +客户应收应付默认按 `sourceSystem + sourceType + sourceFeeId` 展示同一费用的最新版本,计数、分页和金额均采用该口径;明确筛选“已被调整替代”时才单独查询旧版本。同名费用项目但来源费用号不同的记录不得合并。业务调整重新审核发布后更新该费用的当前展示,旧快照保留用于账单追溯,不能覆盖已出单或已结清事实。费用详情的操作记录串联同客户、同收付方向的历次版本及财务审计,记录版本、调整前后金额;同步记录明确显示系统同步时间,不冒充原业务操作者或审批时间。历史版本详情只展示当时及此前记录。 + 资金账户事件和费用来源事件可能先后到达。Finance 会在任一事件到达时尝试按客户、业务类型、业务单号和金额互相绑定,保证同一业务不会既自动扣款又再次生成对账单。 ## 6. P0 验收标准