From 1fb613c8bdbe0a6be4c910aebeb8f1b7b1e30e3a Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Wed, 21 Oct 2026 13:22:39 +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 --- AI工程执行与协作约束.md | 4 +- Admin列表样式推广核对记录.md | 2 + Admin海外仓样式核对记录.md | 8 ++++ Admin货柜管理样式核对记录.md | 13 +++++++ Admin高密度界面规范.md | 4 ++ 业务单据编号契约.md | 4 +- 测试环境单机部署与配置契约.md | 39 +++++++++++++++++++ 海外仓业务/外配业务首版开发契约.md | 10 +++-- 海外仓业务/排车列表统一作业改造契约.md | 2 +- 海外仓业务/自有业务首版开发契约.md | 6 +-- 独立任务协作登记.md | 8 +++- 界面参考/蓝白卡片式工作台风格参考.md | 3 ++ .../openapi/finance-core-five-pages-v1.yaml | 1 + 13 files changed, 92 insertions(+), 12 deletions(-) diff --git a/AI工程执行与协作约束.md b/AI工程执行与协作约束.md index be74661..65e0816 100644 --- a/AI工程执行与协作约束.md +++ b/AI工程执行与协作约束.md @@ -23,8 +23,8 @@ - 在工作区根使用:`& ./baiyue-firstleg/scripts/local-check.ps1 -WorkingDirectory ./apps/admin-web -Label 'Admin typecheck' -Command @('pnpm', 'typecheck')`。定向 Vitest 示例:`-Command @('pnpm', 'exec', 'vitest', 'run', 'src/目标.test.ts')`;后端示例:`-WorkingDirectory ./baiyue-firstleg -Command @('mvn', '-pl', '目标模块', '-am', 'test-compile')`。参数使用数组,不拼接命令字符串。 - 查看占用:`& ./baiyue-firstleg/scripts/local-check.ps1 -Status`。默认最多排队 900 秒(`-WaitSeconds`),执行最多 1200 秒(`-TimeoutSeconds`)。排队超时退出 75 且不启动检查;执行超时退出 124 并回收本次进程树;其他情况透传命令退出码。锁由操作系统文件句柄维护,不删除锁文件抢占。正常结束、超时和包装器强制退出均由 Windows Job Object 回收本次后代;不按 Node/Java 进程名清理其他任务。 - 子进程默认设置 Vitest 最多 2 个 worker;Node 单进程堆上限 2048MB;Java 单进程堆上限 1536MB、可见处理器 2 个。直接运行 `node --test` 时自动补 `--test-concurrency=2`;直接运行 Maven 时补 `-T 1 -DforkCount=1 -DreuseForks=true`,拒绝重复指定这些并发参数。嵌套 shell/自定义脚本不得另行提高并发、覆盖限制或并发启动重型任务;经包管理器间接调用 Node 内置测试时,在该测试命令中显式保留 `--test-concurrency=2`。这些是每进程限制,并非整个进程树的总内存限额。 -- 前后端全量入口 `backend-full-regression.ps1`、`frontend-full-regression.ps1` 执行时整批占一个名额,DryRun 不占用。已在入口保护下的批次执行原始命令,不重复申请锁;入口会拒绝嵌套调用,避免互相等待。 -- 每个任务先完成必要的定向检查;批次收尾再统一执行应用要求的全量门禁,不因排队取消必要验证。复用结果前核对命令、目录、相关源码/依赖/配置均相同;验证期间相关输入变化则作废重跑。入口仅保存最近一次执行摘要,不自动计算代码快照、不自动跳过测试,也不保证先来先执行。 +- 后端分层入口 `backend-check.ps1` 及前后端全量入口 `backend-full-regression.ps1`、`frontend-full-regression.ps1` 执行时整批占一个名额,DryRun 不占用。已在入口保护下的批次执行原始命令,不重复申请锁;入口会拒绝嵌套调用,避免互相等待。 +- 每个任务先完成必要的定向检查;批次收尾按应用要求执行受影响模块或全量门禁,不因排队取消必要验证。后端分层及全量触发条件唯一维护在 `../baiyue-firstleg/AGENTS.md`,普通局部任务完成不自动触发全仓回归。复用结果前核对命令、目录、相关源码/依赖/配置均相同;验证期间相关输入变化则作废重跑。交付记录命令、目录、范围、结果及未验证项;只有已有记录且能确认相关输入未变才可复用,不能仅凭时间接近或上次绿灯推定有效。入口仅保存最近一次执行摘要,不自动计算代码快照、不自动跳过测试,也不保证先来先执行。 - 本机每槽独立保存占用者与最近结果:首槽 `owner.json`、`last-result.json`,第二槽 `owner-2.json`、`last-result-2.json`。只保存检查名称、目录、工具、PID、槽号、时间和退出码,不保存命令参数、凭据或测试输出;名称不得包含秘密。`-Status` 分别展示两槽及总占用,摘要不是业务/部署事实来源。无需凭据,不访问网络、数据库或部署环境;被包装命令原有的网络/写入能力及授权要求不变。 - 只读检索和互不冲突的编辑可并行;开发服务按应用复用已有实例,不纳入短任务队列,也不通过本入口启动常驻服务。已有运行任务由所属对话收尾;本入口不自动终止它们。 - 免排队范围仅限离线只读的静态合同:`baiyue-firstleg/scripts/agents-index-contract.ps1`、`scripts/mapper-scan-contract.mjs` 等直接扫描文件的 PowerShell/MJS 脚本;`node --test` 形式的合同测试文件仍属测试。任何 `pnpm test`、`pnpm typecheck`、`pnpm build`、`node --test` 和 `mvn` 命令必须经 `local-check.ps1`,不得以“离线合同”为由绕过。 diff --git a/Admin列表样式推广核对记录.md b/Admin列表样式推广核对记录.md index 50613cd..084a058 100644 --- a/Admin列表样式推广核对记录.md +++ b/Admin列表样式推广核对记录.md @@ -2,6 +2,8 @@ ## 本轮依据与边界 +2026-10-21 后续视觉确认:列表页签对齐与灰白斑马纹以[蓝白工作台当前规范](界面参考/蓝白卡片式工作台风格参考.md#视觉基线与维护入口)为准;下文“无斑马纹”为此前批次实现记录,不再作为接入要求。 + 2026-09-30,用户确认排车列表样式后授权按客户管理、国内仓、货柜管理、海外仓顺序推广;特殊页面保留待人工确认。直接视觉依据为本轮截图 `41fea1ee-f30a-46db-97b0-82ec96846ec7/image-1.png` 与 [排车样板](Admin排车列表样式试点.md)。仅修改测试环境工作区 `apps/admin-web`,不部署或发布。 统一布局:左侧列表名称、右侧原业务按钮与字段设置,搜索和表格位于同一连续卡片。仅列表操作列采用蓝色普通文字、红色危险文字、悬停无下划线;查询、顶部、弹框按钮不变。列显隐、排序和拖动宽度使用公共浏览器偏好存储。保持所有业务字段、状态、权限和事件,不改变详情、新增、编辑、审核、文件预览与删除确认的承载方式。 diff --git a/Admin海外仓样式核对记录.md b/Admin海外仓样式核对记录.md index 8bfcbf4..532f9ed 100644 --- a/Admin海外仓样式核对记录.md +++ b/Admin海外仓样式核对记录.md @@ -48,6 +48,14 @@ ## 用户截图复核修正 +2026-10-21 接续原“整理页面风格”对话的两张截图:`b93804b4-c276-49bb-bc41-7fc054f889f5` 显示排车顶部执行阶段比下方审核分区多缩进一层;`72efa811-a846-41a4-a074-3dde6d4c2ae0` 为用户指定的销量分析灰白行底色样板。本次仅调整公共对齐与表格斑马纹,修复后仍待人工截图确认。 + +| 操作 | 截图现状与目标 | 本次修正 | +|---|---|---| +| 排车列表执行阶段切换、审核分区及筛选 | 顶部页签叠加工具栏 12px 缩进,下方分区未叠加 | 主列表首个状态页签由公共样式抵消重复缩进;前置返回按钮、嵌套列表保留自己的间距与布局 | +| 排车及其他标准列表查看、悬停、选中 | 多数列表显式关闭斑马纹;销量分析默认灰白相间 | 清理历史关闭属性,使用 DataTable 默认斑马纹;保留悬停/选中提示和业务行色,行底色不穿透内嵌表 | +| 主列表底部分页 | 用户补充底部 padding 过大;集成列表仍为最小 64px、上下 14px | 公共主列表分页收紧到最小 48px、上下 6px、左右 12px;保持按钮尺寸与换行,内嵌表格不继承该布局;待人工截图 | + 用户提供尾程详情与国内订单详情截图后,确认上一轮仅接入密度变量不足以达到样板一致:尾程存在重复页头标签、缺少业务摘要、自定义绿色状态边框、页签首项贴边且选中底色缺失、基本信息被两个标题拆断。截图证据为本轮附件 f76bcf5f(尾程)与 151a1d06(国内样板)。 | 操作 | 样板及现状 | 本次修正 | diff --git a/Admin货柜管理样式核对记录.md b/Admin货柜管理样式核对记录.md index baeccfb..b5bdc2f 100644 --- a/Admin货柜管理样式核对记录.md +++ b/Admin货柜管理样式核对记录.md @@ -1,5 +1,18 @@ # Admin 货柜管理样式核对记录 +## 拖车预约说明提示清理(2026-10-21) + +依据用户本轮拖车预约详情截图:移除说明图标及其提示内容,让页面更清爽。 + +| 页面 / 操作 | 现有承载与截图依据 | 本次变更 | 验收 | +|---|---|---|---| +| 拖车预约详情 | 原独立详情页;截图中的历史关联快照、拖车费、派车信息 | 删除三处 InlineHelp 及无用导入/样式;共享表单的新建与编辑入口同步移除费用和派车说明 | 定向5文件44项通过;待人工1920×1080、100%截图确认 | +| 拖车预约详情 → 单号去重 | 用户追加截图指出同一提单号显示四次 | 顶部仅保留预约号和状态,删除包含订舱号/提单号/订单号的副标题及历史关联快照行;订舱号在选择框、提单号与仓库在订舱带入信息各保留一处 | 定向5文件44项通过;待人工截图确认 | + +保留订舱/供应商业务资料、字段、折叠区、校验、权限、状态操作及真实错误/阻断提示;只对展示位置去重,不改数据或共享提示组件。 + +本次类型检查、生产构建通过;全量4255项中4254项通过,唯一失败是并行排车文案改动后的 `overseas-warehouse/pages/prototypeContract.test.ts:264` 仍断言旧提示文字,与本次拖车提示清理无关。报告:工作区 `.codex-tmp/trucking-help-cleanup-20261021-tests.json`、`.codex-tmp/trucking-help-cleanup-20261021-full.json`。未改动排车在途文件。 + ## 浮层隔离与附件布局复查(2026-10-21) 本轮由用户反馈“推广后弹框混乱、不好用”触发,保留原承载与业务规则;不因定向测试通过关闭人工验收。 diff --git a/Admin高密度界面规范.md b/Admin高密度界面规范.md index 8908ff5..ba2aa21 100644 --- a/Admin高密度界面规范.md +++ b/Admin高密度界面规范.md @@ -235,6 +235,10 @@ ## 国内仓、客户管理的样式维护边界 +2026-10-21 用户确认 Admin 表头统一采用低饱和浅蓝底 `#edf4ff`、深蓝文字 `#284b78`,替代灰色表头。公共颜色由 `foundation.css` 的 `--cc-list-table-header-bg` 与 `--cc-list-table-header-text` 维护,标准列表、工作台、弹框/抽屉内 Element 表格及 `density-table` 共用;不改变正文行、搜索区和详情标签底色。 + +2026-10-21 用户确认 Admin 所有列表的搜索/筛选区与下方表格分开,作为独立区块,圆角统一为 `5px`。公共尺寸由 `foundation.css` 的 `--cc-list-query-radius` 与 `--cc-list-query-gap` 维护;`DataTable` 的筛选容器统一提供边框、底色及下方 `16px` 间距,内部 `QueryToolbar` 不重复套卡片;独立 `QueryToolbar` 使用相同圆角,沿用列表布局已有的区块间距。此约定替代下述历史连续列表模式中搜索区与表格相连的外观,不改变字段、查询行为和操作承载。 + 2026-09-30 确认的连续列表模式见 [排车列表公共接入规范](Admin排车列表样式试点.md):通过 `DataTable appearance="integrated"` 显式接入标题、业务按钮、查询、结果和分页共用卡片;仅操作列使用蓝色普通文字、红色危险文字并禁止悬停下划线。该模式的行高、卡片、搜索与页头样式由 DataTable 统一维护,行操作外观由 `adminTextActions.css` 维护;查询、顶部和弹框按钮保持原样。此约定优先于本节历史的行内描边、图标和独立路由标题规则;未接入页面保持默认。当前接入范围与特殊页面见 [推广核对记录](Admin列表样式推广核对记录.md)。 本节维护表适用于已接入页面及其实际子组件,当前范围以推广核对记录为准。此次收敛以保留业务字段、权限、计算与承载方式为前提。 diff --git a/业务单据编号契约.md b/业务单据编号契约.md index 5e796d2..00fd327 100644 --- a/业务单据编号契约.md +++ b/业务单据编号契约.md @@ -22,7 +22,9 @@ | 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` 结算收付款流水 | +| Finance | `REC` 对账单、`AR` 应收结算、`AP` 应付结算、`RC` 充值申请、`AC` 账户流水、`VC` 车辆成本、`VP` 车辆付款、`PAY` 结算付款流水 | + +同柜组按入仓码查询的公开摘要返回 `groupNo`;结算详情的付款流水返回 `transactionNo`,均取已生成的业务号。应收结算引用的收款凭证不生成 PAY 号,其 `transactionNo` 为空,不以内部 ID 或银行参考号替代。 同一类型的所有创建入口共用序列:例如普通卡车下单与车队商业池创建均使用 `TR`;正常车次与取货车次均使用 `CT`。预装和正式装柜清单继续使用同一个 `LP` 计划编号。 diff --git a/测试环境单机部署与配置契约.md b/测试环境单机部署与配置契约.md index 56747fd..b8354c6 100644 --- a/测试环境单机部署与配置契约.md +++ b/测试环境单机部署与配置契约.md @@ -1,5 +1,13 @@ # 测试环境单机部署与配置契约 +## 2026-10-21 排车日历柜号检索修复已发布 TEST + +- 用户本轮明确授权发布 TEST。本批仅修复排车日历柜号检索、起运仓当地计划时间说明及缺资料提示,不包含其他任务正在修改的智能排车三栏页面,不执行 SQL、不推进排车业务状态。 +- Lastleg Jenkins **#395 SUCCESS**,运行镜像提交 `a2c3d36c2062d407ea3f63a384858a2a46f72b9e`、容器 healthy。该发布对象以原运行 `f00d0e16cfca7f8f0ee6b701f0333736b33c5b84` 为父,仅纳入本批六文件;正常 `test` 分支实现提交为 `9fb39604c672026506c06da0f23485c5d331fe50`,已推送,未逆向覆盖该分支其他改进。CI 完整构建成功,测试日志合计 3420 项、零失败/错误;Lastleg 汇总含 11 项跳过,本批日历 13 项全部实际通过。 +- Admin Jenkins **#670 SUCCESS**,运行镜像 `eb0b0f85d171094d068c8248dbef1148be53c36d`、容器 healthy,本批六文件已提交推送。#669 在检出阶段把裸提交号当分支而失败,未更新容器;#670 使用指向同一提交的固定标签成功,临时 SCM 固定配置已恢复 `release/test`,配置正文与原文一致。Jenkins 对 XML 声明的引号及换行规范化已单独核对,不视为配置正文变更。 +- 真实只读 HTTP 已核对:`PC202610210010` 日历只出现一条,关联柜号 `MSCU7264017` 去重为一项,与详情两条货物的柜号一致;计划 UTC `2026-10-22T16:00:00Z` 按 `America/Los_Angeles` 落在 **2026-10-22 09:00**,对应北京时间 10 月 23 日 00:00。主单仍为 LOADING/version 8。本批自有验证会话已退出;其他不完整排车 `PC202610210006` 仍按真实缺时区/路线原因返回,不伪造日期。 +- 公网实际日历资源 `/assets/AppointmentCalendarView-CM-FKpmg.js` SHA256 `1e465a40e2e9b291bec4b1ed56e81952e7abcbfa875e28ebe9fb3e841563e79b`,已核对柜号字段、当地时间说明、具名单号提示与新搜索占位文本。当前为接口、资源及运行健康验证通过,真实页面布局仍由用户刷新后人工确认。 + ## 本轮排车 HTTP 目标完成:原PLAN与自有/临时外配扩展(2026-10-21) 本轮目标为TEST真实HTTP联调和完整请求响应小于1秒;截至本记录,原离港预排主链及原自有/临时外配同托双来源两条扩展链全部完成。不得扩大为界面、实物硬件或未单独验证的财务不干扰验收已通过。 @@ -2799,3 +2807,34 @@ Client #382(`a0736239e4ee4cd58b620dab912ffc0641360d9f`)正式页面在1920× - Client `503659319555396708bdb85c239a8a1f9f4d870a` 已通过 TEST Jenkins `client-web-test #433` 发布,SUCCESS 且检出提交一致。新建、重置订单及快速下单生成草稿默认 `SELF_TRUCK`(卡车自送);已有草稿继续回显已保存的取货方式。 - 本次仅调整 Client 默认值,沿用原接口与取货方式枚举;无后端、SQL、Gateway 或 Nacos 变更。66 项受影响测试、类型检查和生产构建通过。 - 6 项真实 HTTP 检查通过:公开页面入口及新增页路由可访问,发布的普通下单与快速下单 JS 资源均包含卡车自送默认值。证据:本机私有环境目录 `firstleg-pickup-default-release-20261020.json`、`firstleg-pickup-default-http-report-20261020.json`。此次检查不包含浏览器实际点击操作。 + +## Java、Admin、Client TEST 更新(2026-10-21) + +- 后端 `f00d0e16cfca7f8f0ee6b701f0333736b33c5b84` 由 `backend-java #706` 发布,13 个保留服务全部 SUCCESS;逐项核对 SOURCE_COMMIT、镜像 tag `f00d0e16cfca` 与运行健康。网关随本批更新;未发布 Nacos 配置或 PDA 产物。 +- Admin `db3b5f7157c900b885ade2626014f70c61cb0849` 由 `admin-web-test #668` 发布成功,类型检查、构建及健康检查通过。Client 最新提交 `78893f1144ff9c70d69a47ac73854b042665d1cc` 已由 `client-web-test #436` 发布,本轮核对运行版本后复用,未重复发布。 +- 最终 13 个后端与两个前端共 15 个容器全部 running/healthy,镜像版本与目标提交一致。两端公网首页与容器首页 SHA256 一致,Admin 63 个、Client 93 个引用 JS/CSS 全部 HTTP 200。 +- 本地部署/路由合同 32 项、Admin 466 文件/4255 项测试通过。后端 `#705` 在用户授权跳过剩余单测时终止:已报告 4094 项,其中 12 项跳过,失败与错误均为 0;不标记全量单测通过。随后 `#706` 显式 SKIP_TESTS=true,全部服务保留测试源码编译、打包和健康门禁;没有跳过测试源码编译。 +- 经用户单独授权,仅执行一条 DDL:为 `baiyue_lastleg.ll_cargo_discard_carton` 补齐正式基线已有的 `source_type VARCHAR(32) NOT NULL DEFAULT 'DROPSHIP'`,回读确认成功。运输任务三表、任务类型、日流水及散板来源字段/索引此前已经存在,未重复执行 SQL,也未删除记录。 +- 发布后 8 项 HTTP 检查通过:平台登录、工作台指标、本土卡车运输候选、到仓取货候选、平台退出、客户登录、客户资料、客户退出。首次核验脚本漏加客户 `/api` 前缀,修正为实际前端路径后复核通过;不是账号失效,未重置账号或凭据。 +- 结构诊断不作为全库一致性通过证据:既有检查器将约束 AND/OR 行误判为 5 个字段;汇总 SQL 的退货出库流水表另含模块基线和实体均未声明的 `return_sku_quantity`,未据此扩大 DDL。本次结果仅覆盖发布版本、运行健康、静态资源和上述 HTTP 烟测,不替代完整业务写流程或人工页面验收。 +- 发布证据保存在本机私有环境目录 `release-20261021-summary.json`、`release-20261021-runtime-verified.json`、`release-20261021-http-smoke.json` 与相应 Jenkins 日志;凭据和业务响应正文不写入本契约。 + +## TEST 充值渠道验收配置补齐(2026-10-21) + +- 用户在单号 HTTP 验收对话选择“部署对话补齐后再验”,据此仅更新 TEST 的 `finance-service.yml`:`baiyue.finance.recharge.qr-code-url` 默认值补为 `/customer-recharge-qr.svg`,保留 `FINANCE_RECHARGE_QR_CODE_URL` 覆盖能力;源码 TEST 模板同步更新。其余 Data ID 和配置项未变。 +- 复用 Client 已发布的示例 SVG,图片明确标注“开发示例、不可付款”,不含真实收款信息;仅用于测试充值申请流程,不用于真实转账。图片 HTTP 200、Content-Type 为 `image/svg+xml`,忽略换行格式后与源码一致。 +- Nacos 发布与逐字回读一致,仅重启 Finance;运行镜像仍为 `f00d0e16cfca`(原 `baiyue-firstleg-finance #131`),容器恢复 healthy。没有重新构建、重跑全量单测或执行 SQL。 +- 使用配置的客户账号实际调用 `GET /api/client/finance/v1/recharge-channel`,返回 `enabled=true`、`qrCodeUrl=/customer-recharge-qr.svg`。配置缺失阻塞已解除;未代替验收对话提交 RC,完整申请流程由该对话继续验证。验收会话已退出。 +- 证据保存在本机私有环境目录 `rc-channel-20261021.json`、`rc-nacos-last-result-20261021.txt`;模板改动尚未提交。 + + +## 业务单号 HTTP 验收与 Finance 幂等摘要修复(2026-10-21) + +- 用户明确授权 TEST 部署、数据库操作及真实 HTTP 验收。最新编号字段补齐提交为 `b4ff441a7030`:Firstleg `#506`、Finance `#134` 均 SUCCESS;2026-10-21 12:21(北京时间)已核对两个运行镜像与提交一致、running/healthy。该次仅部署这两个服务,无数据库结构或配置变更;两任务的 SCM pin 均按原配置哈希保护恢复。其他服务的实际镜像记录在本轮 runtime-verified.json,不由本次重复发布。 +- CLG 按入仓码公开摘要增加真实 `groupNo`;PAY 结算付款明细增加落库 `transactionNo`。读取经 Repository/Mapper,保持原平台权限、客户及结算单范围。应收结算引用的收款凭证不生成 PAY 号,字段为空,不以内部 ID 或银行参考号替代。OpenAPI 已同步,前端现有页面不依赖这两个新增字段,未变更页面展示或权限。 +- 本地定向74项通过,Firstleg全模块1697项(9跳过)、Finance285项(无跳过),均0失败/0错误;Mapper注册和5项Gateway合同通过。CI Firstleg合计1845项(9跳过)、Finance合计433项(1跳过),均0失败/0错误。新HTTP批次 `http-public-number-fields.json` 为542/542通过,其中字段专项40项通过;新号 `CLG202610210002`、`PAY202610210004` 的创建、详情及原键重放一致,旧样本跨部署原号不变,应收收款未误填PAY号。同键异金额仍拒绝,付款只保留一笔1.23元合成样本;无未知写入结果,未清理样本。 +- 49类改号前缀现均有本轮核心HTTP样本证据。初轮CLG/PAY依赖只读SQL补证的两项公开字段缺口已由上述HTTP复验关闭。逐项清单为私有 `numbering-http-progress.md`,裁定为 `numbering-http-adjudication.json`;不据此声称全系统所有业务、状态、权限及每个共享入口都已穷举通过。跨日、9999耗尽、事务回滚边界没有本轮真实HTTP证据;头程来源尾程分组号未单独完成HTTP验证,保留其限制。 +- 此前Finance `#132` 发布 `b072c0a884b1`、`#133` 发布 `91b6574d5319`,修复五处幂等摘要:JSON Map稳定键序后求摘要,避免同请求跨重启误判异载荷。旧摘要不回填。AP/PAY以原键原载荷跨这两次真实重启重放成功;相关证据保留在 `finance-canonical-all/` 与 `http-finance-after-restart.json`。 +- 此前充值申请表与正式基线不一致,已在确认主表及幂等记录为空后,按授权移除多余必填 `payment_method` 列/约束并将 `request_no` 对齐VARCHAR(32),未重置数据库或回填业务记录。首次失败前上传的合成附件保留。RC创建、审核、重放和唯一AC流水21/21;CK装车至派送23/23;二次拆分67/67;REC至AR收款20/20;CT取货共享入口12/12;运力确认TR/LB共享入口44/44通过。拆分沿用原单号/入仓码的`-1`、`-2`规则,D柜次号保持原全局连续规则。 +- 退货脚本旧参数、PARCEL计箱及实物箱码断言已修,定向49项离线合同及语法检查通过,最终退货HTTP复验1282/1282。PDA非法PHOTO_STEP_9的S0503错误分类、无关bulk固定托盘文案合同失败仍保留;本轮新测量样本缺固定TP-001时复用同仓已有托盘,记录为非阻断fixture覆盖说明,不把未覆盖项改写为通过。 +- 原始失败批次、最终报告和逐请求检查点保存在工作区私有 `.codex-temp/business-numbering-deploy/`,由 `http-followup-plan.json` 定位;本次发布证据在 `public-number-fields-release/`。密码与Token不进入报告,跟进自动化已停用以避免重复造数。早期旧模块曾绕过初始DELETE保护,删除本轮合成附件引用和临时分配,已告知用户并保留证据;随后统一请求与全局fetch均拦截DELETE,未再做清理。 diff --git a/海外仓业务/外配业务首版开发契约.md b/海外仓业务/外配业务首版开发契约.md index 640b6d5..8c733e5 100644 --- a/海外仓业务/外配业务首版开发契约.md +++ b/海外仓业务/外配业务首版开发契约.md @@ -1,8 +1,10 @@ -# 外配业务首版开发契约 +# 外配任务开发契约 -## 已确认业务边界(2026-10-20) +## 已确认业务边界(2026-10-21更新) -本页是原排车装车后的外配车辆运营视图,与自有业务按车辆归属区分,不是第二套排车或车次流程。仅显示 ACTIVE 且 AFTER_LOADING、DELIVERING、DELIVERED 的原排车,一单一行,多个目的地、预约在行内展开。档案车辆装车时归属 DISPATCHED、临时车辆原资源模式 EXTERNAL 都属于本页;读取原装车事务的归属证据,不按货物 OWN/EXTERNAL 分类,不在 GET 回填旧样本。原排车四页签及履约流程不变。 +本页是原排车装车后实际接入拼车货物的运营视图,与自有业务按是否实际拼车区分,不按车辆归属区分。仅显示 ACTIVE 且 AFTER_LOADING、DELIVERING、DELIVERED 的原排车,一单一行,多个目的地、预约在行内展开。自有车辆、档案外配车辆、临时外配车辆均可进入;车辆信息继续读取原装车证据,不在GET回填旧样本。原排车四页签及履约流程不变。 + +实际拼车判定复用原关系:`ll_fleet_external_booking.offer_id`非空、状态BOUND、有实收确认,且trip_id/dispatch_no指向本车;来货客户和入仓来源须在本车真实计划托盘组成中,实托已关联且货物箱数为正。只发布余位、询价、确认占位、未排入的实收、已取消或移出本车的货物不计;非需求池来源的普通外接登记和多客户同车本身也不计。用EXISTS判断,至少一票即整车归入外配任务,多票不得重复计数。自有入口使用相同条件的否定;列表、全量统计、详情和运营操作保持一致。装车后货物不能普通增删,已绑定预订不能普通取消;复用这些现行门禁及关联事实,不新增分类持久化或回填链路。 用户本轮明确批准:后台登记整车承运金额,单价为金额除以实际物理托数;保留逐目的仓实际到达时间和五个装车照片位,省略实际里程、油耗与两个油耗照片位。不实现原型的自有货/外接货拆分成本或自动分摊、应付/支付;不增加报价、派单、改派或异常状态机。异常仍按已确认的线下处理规则。 @@ -15,7 +17,7 @@ - 外配 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 样例。 -- 可以复用四张附加表及原装车捕获;技术表名不决定车辆分类,服务端按冻结归属与可信入口限定。本域不新增业务表、不改原主单/库存/财务。如确有无法复用之处先交根裁定,不自行执行 SQL 或扩大持久化模型。 +- 复用四张附加表及原装车捕获;服务端按实际拼车分类与可信入口限定业务访问,原车辆冻结证据只保证真实车辆信息。vehicle.ownership允许OWNED/DISPATCHED,不能固定返回DISPATCHED。本次不扩展两页运营表单及照片槽,本域不新增业务表、不改原主单/库存/财务。 ## 本批职责与验证 diff --git a/海外仓业务/排车列表统一作业改造契约.md b/海外仓业务/排车列表统一作业改造契约.md index 44c722f..c56fbcf 100644 --- a/海外仓业务/排车列表统一作业改造契约.md +++ b/海外仓业务/排车列表统一作业改造契约.md @@ -13,7 +13,7 @@ 5. 装车完成进入装车后;后台在装车后、实际发车前办理安排派送,核对派送信息及各客户费用,按客户和目的仓拆分派送单。派送安排完成后才允许后台或 PDA 确认发车。 6. 实际发车进入派送中;全部正常派送签收完成后自动汇总派送完成。拒收、退回等作为异常,先线下人工处理,不自动视为正常签收完成,不在本批新建线上异常闭环或伪造库存恢复、签收、账务结果。 7. 本批聚焦排车列表、详情、直接关联操作及必要生产者和消费者。车辆列表、司机管理、自有业务、外配业务、出车记录的整页改造后续逐页处理。 -8. 同时支持先选同一起运仓的可排货物/托盘再生成排车单,以及先创建空排车单再添加货物;空单不能伪造货物、拣货、装车或发车事实。 +8. 同时支持先选同一起运仓的可排货物/托盘再生成排车单,以及先创建空排车单再添加货物;空单不能伪造货物、拣货、装车或发车事实。2026-10-21 用户进一步明确先排车和货物,车辆、司机在建单后由调度或客服在后台补充,不涉及客户自助填写;新建排车不展示或要求填写车辆、司机及证照,先完成货物分组,允许选填每趟计划时间和备注。计划托位仅用于预排分组,不表示已绑定真实车辆。后续维护车辆信息及提交审核继续使用既有资源资格校验。用户随后明确:货物计划增减统一在智能排车办理,排车列表车辆信息及详情不再单独提供添加/移除货物。智能排车同时承载新建及已生成排车货物调整,已有单使用原排车号和正式货物命令,不转换为草稿或重建单据;保留真实PDA拣货,已扫码禁止调整,理货审核通过且零扫码时先显式退回重审后再调整。 9. 车辆和司机既可从已有档案选择,也允许临时填写外配车辆和司机;临时填写不伪造车辆或司机档案关联,不自行创建主档。 10. 后台确认装车完成必须以PDA真实拣货核平为前提。后台不提供替代PDA的拣货数量补录来绕过此条件;PDA和后台均可确认装车完成及实际发车的既有确认保持。 11. 用户随后澄清本次“新增预约”是预约日历的功能需求,先与本批排车改造分开整理。本批不新增日历预约创建或独立约车流程;排车保留已有FBA预约关联;用户随后对车辆预约权威来源问题答复“那就不要”,因此排车取消车辆预约字段、关联操作及公开协议,不再等待或新建该权威提供者。此前确认的先保存后关联意见保留为日历需求输入,不作为本批扩大实现范围的授权。 diff --git a/海外仓业务/自有业务首版开发契约.md b/海外仓业务/自有业务首版开发契约.md index 8d5110f..f2134d2 100644 --- a/海外仓业务/自有业务首版开发契约.md +++ b/海外仓业务/自有业务首版开发契约.md @@ -4,9 +4,9 @@ ## 已确认规则 -用户最新明确本质:自有业务、外配业务就是现有排车列表装车后数据按自有车辆/外配车辆区分的运营视图,自有车辆管理细,外配车辆相对简化。本契约维护自有视图;用户随后批准的外配视图单独维护在[外配业务首版开发契约](外配业务首版开发契约.md)。两页共用原排车主单及真实履约事实,不另建第二套任务、车次主单、货物、审核、装车、发车或签收状态机;新增数据仅限关联该排车单的附加运营记录。 +2026-10-21 用户确认按实际拼车货物分类:自有业务是未实际接入拼车货物的排车,外配任务是已实际接入拼车货物的排车,与车辆属于自有或外配无关。本契约维护自有视图;外配任务维护在[外配业务首版开发契约](外配业务首版开发契约.md)。两页共用原排车主单及真实履约事实,不另建第二套任务、车次主单、货物、审核、装车、发车或签收状态机。本次最小变更保留原页面、统计项及两页运营表单差异,不新增分类表或分类字段。 -1. 自有指我们自己的车辆,不按自有货源过滤;承运货物仍保留各客户真实归属。外配业务按其单独契约处理,不混入自有视图。 +1. 自有业务按“无实际拼车货物”筛选,允许自有车辆、档案外配车辆及临时外配车辆;承运货物仍保留各客户真实归属。实际拼车的判定唯一见外配契约,列表、完整统计、详情及运营写入统一使用同一分类;同车多客户本身不代表拼车。 2. 从排车装车完成后展示,覆盖装车后、派送中、派送完成;不把审核通过或拣货核平本身当作装车完成。 3. 一张排车单就是一趟车,列表一张排车单一行;多个目的仓、预约号在行内展开,不按客户或目的地重复整车统计。 4. 后台登记一次整车总金额,单价由系统按整车总金额除以实际托数计算。用明确币种记录,不将该运营金额自动当作客户应收、车队应付、Finance入账或利润;不重复收费。金额未登记与明确零金额区分,实际托数为零时不除零。 @@ -56,7 +56,7 @@ - 油耗按原型单位L/100km,手填字段 `fuelConsumptionLitresPer100Km`;实际里程为mile,字段 `actualDistanceMiles`。不把油耗率变成燃油总升数,不自动推算总油量。 - 金额币种沿已有CNY/USD,必须明确选择,不预选不换汇。一份整车金额可在同一版本化编辑中更正或清空,并保存历史;“登记一次”表示同车唯一记录,不是一次提交后永久不可编辑。零值、未登记及单价除零按既有条款区分。 - 照片沿原型七框,逐槽上传后绑定立即保存;只有绑定回执成功才显示已保存。上传成功绑定失败保留原fileId、绑定请求键及载荷,重试只绑定;未知上传保留原命令,不自动重新上传或虚称恢复成功。关闭弹框不另造保存动作。 -- 车辆归属按原排车装车完成时点冻结,作为该排车的归属证据附加行,不构成第二套主单;根只在loadingComplete原事务接一个窄捕获点,新包提供者读取真实车辆ownership/版本。按原资源模式识别临时外配,不把MASTER当OWNED。旧已装车TEST无历史快照不回填、不以当前主档降级推算,本页实际验收使用新原生样本;原排车读取不受影响。 +- 车辆归属仍按原排车装车完成时点冻结,仅作车辆事实及装车依据一致性校验,不再决定业务分类。两个入口的vehicle.ownership均可为OWNED/DISPATCHED,临时车辆vehicleId可空;按真实快照返回,不能以所在页面改写车辆归属。原loadingComplete捕获点不变,旧已装车TEST无车辆快照不回填、不按当前主档猜测;原排车读取不受影响。 - 数据表为附加record/command/history及ownership证据,结构由后端提出、根维护基线;文件分类为 `OVERSEAS_DISPATCH_LOADING_PHOTO`/`OVERSEAS_DISPATCH_FUEL_PHOTO`,平台0、businessId=原dispatch内部主键,JPG/PNG、10MiB。没有新的主排车状态机、客户收费或Finance写入。 - 附加命令唯一键为 `(dispatch_id,idempotency_key)`,记录并验证原operator;异操作者复用原键A0403,不按操作者分组创建第二条命令。同一原操作者只恢复同动作、原版本、原载荷,异载荷A0409;上传和绑定各保留自己的稳定键。 - 操作记录只读聚合原排车真实历史与本页附加历史,不复制原流水。历史明确 `eventSource=DISPATCH/OPERATIONS`,附加recordVersion和原dispatchRecordVersion可分别为空,不混淆两个版本序列;原排车事件不伪造运营快照或照片,运营事件保留其真实快照。 diff --git a/独立任务协作登记.md b/独立任务协作登记.md index 1853d2b..c948fbb 100644 --- a/独立任务协作登记.md +++ b/独立任务协作登记.md @@ -26,10 +26,16 @@ ## 2026-10-20 Admin 蓝白清爽风格推广 -本节由 `01a1587b-196b-7221-8774-933aab521ce9`(整理页面风格并定位修改页)总控维护。2026-10-21 用户反馈推广后多处页面、尤其弹框布局不可用,明确提供五个既有对话要求继续分工修复。当前为样式回归排查批次,复用这五个对话,不新建任务。已逐一核实五个任务桌面保存项目绑定均为 TEST `c64729ff-6710-43c6-8ef2-d84e9666cc1e`、host local、实际 cwd `C:/Users/BY-OY/Desktop/code/chongchong-global`,与本登记匹配;不使用同项目保存根中的开发目录。 +本节原由 `01a1587b-196b-7221-8774-933aab521ce9`(整理页面风格)总控维护;2026-10-21 用户明确要求接手,现由 `01a15c55-dbec-78b3-9719-7d01b737679b` 在同一工作区接续。此前用户反馈推广后多处页面、尤其弹框布局不可用,明确提供五个既有对话要求分工修复;这批五组修复已完成自动检查,人工验收仍待截图。原五任务的桌面保存项目绑定均为 TEST `c64729ff-6710-43c6-8ef2-d84e9666cc1e`、host local、实际 cwd `C:/Users/BY-OY/Desktop/code/chongchong-global`,与本登记匹配;不使用同项目保存根中的开发目录。 + +当前接续范围为原对话最后两张截图提出的主列表状态页签对齐和灰白斑马纹:接续已有公共 CSS 修改,恢复标准表格默认斑马纹,保留业务行色与悬停/选中状态;不重新启动此前五组排查。本轮仅当前对话及内部子代理分工,公共样式与集成验证由当前总控唯一维护,内部子代理只清理列表 stripe 关闭属性及直接断言。既有排车、拖车在途业务改动保留;无部署或环境写入。 + +2026-10-21 接续新增用户要求:收紧主列表底部分页留白,公共规则采用最小 48px、上下 6px、左右 12px,保留翻页控件尺寸和换行。已清理58个Vue文件中59处标准DataTable关闭斑马纹属性,并启用财务调账明细表斑马纹;页签修复限主列表首项,避免挤压前置返回按钮。自动检查期间,用户另在 `01a15c6a-e715-7172-9d69-4c31cd5e0fb1`(分离搜索区与表格)要求公共搜索区独立、5px圆角及浅蓝表头,该对话仍维护这些增量。双方现有改动均保留,本接续不覆盖对方共享文件,不另启动重复全量。接续全量报告为467文件、4269项通过,但前后快照检测到7个公共文件被该对话更新,故该报告不作为最终统一快照通过证明;对方最新构建与129项公共定向检查已通过。最新整体全量收尾以该对话在途检查及其最终输入为准。本轮证据位于 Admin `.logs/admin-style-handoff-20261021/`;未发布,实际页面仍待人工截图。 此前全量自动检查仅证明当时输入的测试与编译结果,不能证明弹框视觉或交互已验收;此轮优先处理浮层布局、嵌套污染、正文与页脚滚动、表单和按钮可用性,再处理列表与详情的间距。用户已直接确认隐藏的长汇总不恢复,业务与权限变化不夹入本轮。 +接续三项样式在搜索区/表头增量合入后,已追加公共组件及样式6文件135项定向确认,全部通过;最新结果与并行输入限制见上述证据目录的 `verification.json`。本接续实现与定向验证收口,整体统一快照及发布不在此处重复宣告完成。 + 共同视觉合同为[蓝白卡片式工作台风格参考](界面参考/蓝白卡片式工作台风格参考.md):清爽、少提示,复用公共样式;保留当前业务、权限、数据含义、密度和交互承载。各组覆盖本域正式路由及其关联表单、详情、弹框和抽屉;打印版面保持原尺寸。以下目录均相对 `apps/admin-web/src/modules/`,只授予展示改造及直接验证、最近验收矩阵写权,不接管 API、业务状态、路由接线或其他专项在途逻辑。 | task_id | 当前对话名 | 唯一风格改造职责 | diff --git a/界面参考/蓝白卡片式工作台风格参考.md b/界面参考/蓝白卡片式工作台风格参考.md index 00f188d..01b9743 100644 --- a/界面参考/蓝白卡片式工作台风格参考.md +++ b/界面参考/蓝白卡片式工作台风格参考.md @@ -42,6 +42,7 @@ | 普通指标卡高度 | `--workbench-metric-min-height: 186px`;长内容可自然撑高,紧凑指标不继承此最小高度 | | 空间 | 外壳内容区上/左右 12px、底部 16px;工作台根内边距 `--workbench-page-padding: 12px`;区块间距仍为 24px,普通卡片内边距 20px、紧凑卡片内边距 14px、同级网格间距 18px | | 主列表顶部 | 工具栏最小高度 48px、上下内边距 6px;筛选区上下 8px;两区左右统一 12px,普通按钮与筛选控件 32px;内容多时自然换行,不截断或固定总高度 | +| 主列表底部分页 | 最小高度 48px(border-box)、上下内边距 6px、左右 12px,与筛选区对齐;保留 32px 翻页按钮和长统计换行,不沿用集成列表旧的 64px 高度、14px 上下留白 | | 文字层级 | 页标题 24px、分区标题 18px、普通指标名称 15px、重点数字 34px、紧凑指标数字 26px | | 辅助色 | 青、绿、紫、黄、红用于图标、分区与真实状态,不能代替状态文字 | @@ -59,6 +60,8 @@ 主列表不要叠加“重复路由标题行 → 分类页签行 → 按钮行”。有同级分类/状态页签时,将原页签移入 DataTable 的 `toolbar-start`,原按钮留在 `toolbar-actions`/`toolbar-end`,筛选留在 `filters`;页签使用 `workbench-list-tabs` 清除重复外框和内边距。无页签时保留紧凑标题与按钮行。真实业务子分区、统计数量、加载失败与当前范围继续保留,不因减高消失。工具栏与筛选共用 `--workbench-list-inset`,页面不再额外增加左右偏移;表格单元格仍由原密度规范管理。 +2026-10-21 用户截图补充:主列表顶部第一个状态页签与下方审核分区对齐,公共样式抵消工具栏重复叠加的 12px 缩进;页签前有返回按钮时保留按钮与页签间距,嵌套表格不套该偏移。标准 DataTable 使用组件默认斑马纹,按销量分析样板呈现浅灰、白色交替,不再由业务页显式关闭。行底色复用 `--admin-row-stripe`,悬停行、当前行和悬停单元格交回 Element 对应状态样式;父表行底色不穿透内嵌表格。 + ## 信息层级与渐进披露 页面常驻内容以**关键标题、数值、简短状态和操作**为主。老板已明确不希望页面堆满提示文字;以下规则用于组织实际业务信息,不能把本规范逐条搬成页面说明。 diff --git a/财务管理/openapi/finance-core-five-pages-v1.yaml b/财务管理/openapi/finance-core-five-pages-v1.yaml index 46a0b5f..579bca5 100644 --- a/财务管理/openapi/finance-core-five-pages-v1.yaml +++ b/财务管理/openapi/finance-core-five-pages-v1.yaml @@ -1384,6 +1384,7 @@ components: required: [transactionId, transactionType, transactionDate, amount, method, createdBy, createdAt] properties: transactionId: {$ref: '#/components/schemas/Id'} + transactionNo: {type: string, nullable: true, pattern: '^PAY[0-9]{12}$', description: 结算付款落库业务号;收款记录未生成PAY号时为空,不使用内部ID或凭证参考号替代} transactionType: {type: string, enum: [RECEIPT, PAYMENT]} transactionDate: {type: string, format: date} amount: {$ref: '#/components/schemas/PositiveMoney'}