This commit is contained in:
2026-10-19 17:56:33 +08:00
parent c116bcfe8a
commit 94bbdea386
15 changed files with 1865 additions and 4 deletions
@@ -1,5 +1,95 @@
# 测试环境单机部署与配置契约
## 列表操作文字间距减半 TEST Admin 发布(2026-10-19,已发布)
所有已接入公共文字行操作的列表统一收紧按钮横向内边距与组间距:每侧10px改为5px,组间距6px改为3px,相邻文字留白由26px改为13px;字号、高度、业务动作及页面列宽保持。公共规则位于 `adminTextActions.css` 与 `adminDensity.css`,对应密度合同同步更新;以 Admin #647 为基线仅发布3文件,精确提交 `786f0d6b75c70a06f930b929e6f4887db82a8a9f`,固定标签 `admin-action-spacing-20261019-786f0d6b75c7`,保留已发布的供应商入口、ECharts与测量差异红字。
Jenkins `admin-web-test #648` SUCCESS,精确检出、类型检查与构建通过;镜像 `admin-web-test:786f0d6b75c7`,镜像ID `sha256:920b5e2dc7d7e526325f2a05cc04497c7d16f95d2ff738598ce2e5d5244ddb62`,running / healthy。公网8项HTML/JS/CSS与容器SHA-256一致,已核对公共间距、供应商入口、图表及测量颜色规则;健康、订单、供应商及出车记录路由HTTP200。临时Job配置已恢复并核对原始SHA-256一致。
定向5文件169项通过;本地按 `local-check.ps1` 的2 workers限制执行全量414文件3495项,全部通过,耗时629.44秒。本地 `pnpm typecheck` 与 `pnpm build` 均在规定的2048MB Node堆上限触发OOM,退出134,不能标记本地构建或类型检查通过;精确发布版本的CI构建已通过。视觉仍待用户1920×1080、100%截图确认。
本次只发布Admin,没有发布后端、Client或PDA,没有执行SQL、修改业务数据、Nacos或账号权限。证据位于 Admin `.logs/admin-action-spacing-release-20261019/` 的 `manifest.json`、`checks.json`、`release-state.json`、Jenkins记录、`runtime-after.json` 及 `verification.json`。
## 测量差异红字 TEST Admin 发布(2026-10-19,已发布)
测量弹框的10%差异提示、偏差说明及对比表非零差异文字统一使用红色;差异计算、提示阈值、警告背景、保存及审核逻辑保持。以 Admin #646 为基线,仅发布 `InboundMeasurementPanel.vue` 两处颜色声明及密度合同断言,共2文件;精确提交 `1b96ac128dcc6f0f45e8c1d39ea222485e4006c5`,固定标签 `admin-measurement-red-20261019-1b96ac128dcc`,保留已发布的ECharts及供应商入口。
Jenkins `admin-web-test #647` SUCCESS,精确检出、类型检查及构建通过;镜像 `admin-web-test:1b96ac128dcc`,镜像ID `sha256:7e7f4242693f47460c09a68f54ef9c15d2592fe36df63abe8143526ad022727b`,running / healthy。公网6项HTML/JS/CSS与容器SHA-256一致,含测量差异红色声明;健康、订单、供应商及出车记录路由HTTP200,临时Job配置恢复并核对原始SHA-256一致。
测量及密度66项定向检查通过。共享工作区全量使用8 workers、单例15秒测试期限运行,414文件/3485项中3481项通过、4项失败,均为在途 `SmartDispatchDialog.test.ts` 的3项DataCloneError及1项请求次数不符;工作区构建另受其他预约/排车测试Fixture缺失recordVersion阻断,均未纳入精确发布候选,不声称全量通过。视觉仍待用户1920×1080、100%截图确认。
没有发布后端、Client或PDA,没有SQL、业务数据、Nacos或账号权限写入。证据在 Admin `.logs/admin-measurement-red-release-20261019/` 的 `manifest.json`、`release-state.json`、`checks.json`、Jenkins记录、`runtime-after.json` 及 `verification.json`;后续发布继续按实际运行版本核对。
## 出车记录 ECharts 精简统计 TEST Admin 发布(2026-10-19,已发布)
当前出车记录使用项目既有 ECharts / vue-echarts 原生饼图、圆点图例和悬停数值,替代手写SVG;仍保留原有日期、目的地和币种分组。默认仅显示指标标题、主数值、四个饼图及短图例,日期图例按月日显示;页头“统计详情”按需展开完整图例数值、口径、出车汇总及成本,默认不再显示说明段落、重复系列标题、图例数值及底部成本行。多币种独立切换;顶部均价仍为最近统计日值,不混币种或简单平均日报价。
发布以当时已成功运行的 Admin #645、`e2f9023156fe0fe1ce5a0abe5ca3bd8eb67492d4` 为基线,保留其已发布预约及费用改动;仅纳入8个本页、图表、导航、测试及矩阵文件,并恢复“通用 → 供应商列表”。精确提交 `61e9cfe196b4cf8befb75ee3366359adc4d1479c`,固定标签 `admin-trip-echarts-20261019-61e9cfe196b4`;没有创建或切换分支、工作树或项目副本,没有混入工作区其他未提交修改。
Jenkins `admin-web-test #646` SUCCESS,耗时63.897秒,精确检出、干净类型检查与构建通过。镜像 `admin-web-test:61e9cfe196b4`,镜像ID `sha256:812e020a77631586bde685632179914ccf77fbc8f4ec280fc6194ef9d824d932`,容器 running / healthy。临时固定提交与完整SCM检出配置已恢复,原Job配置SHA-256一致。公网HTML、主JS、导航JS及本页JS/CSS共5文件与容器SHA-256逐项一致,健康页、供应商与出车记录路由HTTP200;公网模块包含ECharts Canvas配置、按需详情和精简样式,原SVG扇区、重复系列标题与常驻统计页脚样式已移除。
自动检查:本页及密度合同38项、工作区类型检查/构建通过;工作区全量414文件/3444项中3442项通过,2项因5000ms超时失败,分别为海外出库退货SKU及入仓计划挂载测试。两文件随后以单worker独立重跑10项全部通过,未修改断言或超时配置;不将原全量命令标记为全部通过。组件测试检查ECharts配置与真实业务数据,不代替Canvas实际页面视觉;1920×1080、100%截图仍待用户确认。
本轮只发布Admin,没有发布后端、Client或PDA,没有执行SQL、修改业务数据、Nacos或账号权限。证据位于 Admin `.logs/admin-style-echarts-release-20261019/` 的 `manifest.json`、`release-state.json`、`checks.json`、`jenkins-build.json`、`jenkins-console.txt`、`runtime-after.json` 及 `verification.json`。后续发布仍须以实际运行版本为基线,不能仅按分支HEAD覆盖固定标签中的本页与供应商改动。
## FBA新增预约与目的仓筛选 TEST 发布及真实HTTP验收(2026-10-19)
用户明确授权发布本次Admin与Lastleg匹配版本到TEST并继续验收。范围为新增FBA预约入口、月视图4/5/6周自适应和目的FBA仓搜索筛选;普通客户仓未纳入。新增只读接口 `GET /api/platform/v1/last-leg/appointment-planning/cargo/destinations` 复用原Gateway通配路由及预约/尾程订单读取权限,不新增仓库管理权限、SQL、Schema或Nacos配置。
Lastleg仅提交5个相关文件,精确候选 `a563f6385714cd2839751f9f4b7cb3a7b24c9d58`,固定标签 `appointment-dest-20261019-a563f6385714`。Jenkins `baiyue-firstleg-lastleg-service #368` SUCCESS,按该提交完整测试和打包;业务测试2949项、失败/错误0、跳过9,独立SQL语义测试51项通过。运行镜像 `lastleg-service:a563f6385714`,镜像ID `sha256:f18765f50b08d1a617fd5c4087c9039f2e8097fa3416926355b5af85eb7d22c5`,running / healthy。
Admin本次14文件的功能提交为 `5a46198bf0d8923e1cfad64ecc3844472287d35f`。等待期间另一任务已完成Admin #644,因此最终候选以其实际运行提交 `d2f2ecf57a0f132ebb4cbafc3ce8d14550be0f0a` 为基线,保留10个已上线订单/出库文件,再合入本次14文件;精确提交 `e2f9023156fe0fe1ce5a0abe5ca3bd8eb67492d4`,固定标签 `appointment-fba-20261019-e2f9023156fe`。未创建或切换分支、工作树或项目副本,未强推已有分支,未纳入其他在途源码。Jenkins `admin-web-test #645` SUCCESS,检出与候选一致,类型检查和生产构建通过。镜像 `admin-web-test:e2f9023156fe`,镜像ID `sha256:7ac9ede4bdb10f0517e3ccbac6e892131d58119aa8d3fc5e93e672f79b337b8b`,running / healthy;临时固定提交的Job配置已恢复,原始XML语义一致。
发布前真实探测曾发现目的仓选项接口HTTP200但业务码A0404,requestId `00afec57-3c9c-40c5-a2cf-f0f251121001`;保留为接口未发布时的失败证据,不按HTTP200判成功。发布后统一Gateway完整验收25项、Admin同源验收13项全部通过,逐请求核对HTTP、业务码、实际数据和完整响应体读取耗时;38项最慢588.87ms,无请求超过1000ms。覆盖完整目的仓选项、关键词组合、两页过滤、重置、空结果、非法目的仓拒绝、来源核对、预览、保存与详情回查、同键重放、同键异载荷及重复分配拒绝、未登录401与客户访问平台403。同源另回归到港/还柜、计划到仓和派送车次日历,月范围为2026-09-28至2026-11-02开区间。
写入使用既有自动化测试货物 `AT308919F5D351FDD42AA5`,4箱、目的仓ABE4;新增待确认预约 `AP-20261019-007A8CED56CA`,计划当地时间2026-10-26 10:00—11:00,备注明确标记HTTP合成验收资料。5次预约写请求中只有首次产生新预约,2次原键重放返回同一预约,2次冲突写入被拒绝;详情、覆盖与货物资格回查确认仅一个有效预约、4箱未重复分配。记录保留供回查,未删除或重置。本轮证明平台内登记链路,正式FBA确认仍由原业务取得。
公网HTML、入口JS/CSS、日历、创建面板及API分块共7文件与容器SHA-256逐项一致,另含健康入口和预约路由共9项通过,4个新增功能标记存在。本地预约与密度38文件/310项、构建、后端测试编译与13项定向测试、Gateway/部署/回滚17项合同通过。工作区全量413文件/3440项通过、1项其他车队弹窗超时,同文件单独3项复查通过,不合并描述为单次全量绿灯。人工1920×1080、100%截图仍待确认。
证据:Admin `.logs/appointment-destination-release-20261019/` 的两端源码清单、Jenkins构建及控制台、`runtime-after.json`、Job恢复记录、`public-static-verification.json`;`.logs/appointment-destination-http-20261019/` 的 `probe-report.json`、`acceptance-report.json`、`same-origin-report.json`、原写入检查点及脚本。首次失败、拒绝场景和全部计时保留;自有平台/客户会话均已退出。本轮未执行SQL、配置发布、删除或重置,HTTP与资源验证不代替人工页面验收。
## 出车记录饼图与供应商入口 TEST Admin 发布(2026-10-19,已发布)
用户确认四块统计均使用饼图,保留当前日期、目的地及币种分组,不改变后端统计口径;同时恢复“通用 → 供应商列表”,继续使用 `platform:supplier:list`,写操作权限独立。
本轮以当时运行中的 Admin #642、`b92e5379bcc7196c034542087b6e9a6615f9ae71` 为基线,仅纳入8个出车记录页面、图表、导航、测试及矩阵文件;固定源码 `6738eae457195028855b2dd5c98561ca3e4dad5f`,发布标签 `admin-trip-pies-20261019-6738eae45719`。没有创建或切换分支、工作树或项目副本;未将其他预约、派送、散板及未发布远端改动混入本次发布,当前工作区仍保留这些在途修改。
Jenkins `admin-web-test #643` 为 SUCCESS,实际检出上述精确源码,执行类型检查和构建;镜像 `admin-web-test:6738eae45719`,镜像ID `sha256:81a5e3566f99eef43f145c6b2cd49a37e2106d26530329327e5d9d86e36ed5a5`,容器 running / healthy。临时固定版本与完整SCM检出配置已恢复,原始Job配置SHA-256逐字节核对一致。
本地工作区全量413文件/3435项测试、54项定向测试、类型检查与构建通过;精确发布由Jenkins单独完成干净类型检查与构建。公网HTML、主JS、导航JS及出车记录JS/CSS共5个文件与容器SHA-256逐项一致;健康页、供应商及出车记录路由均HTTP200。公网导航模块确认供应商不再隐藏,图表样式包含饼图与彩色图例,已移除原折线和排名条形样式。以上静态与HTTP检查不代替真实数据页面人工验收,1920×1080、100%截图仍待用户确认。
本轮没有发布后端、Client或PDA,没有执行SQL、修改业务数据、Nacos或账号权限。证据在 Admin `.logs/admin-style-release-20261019/` 的 `manifest.json`、`release-state.json`、`jenkins-build.json`、`jenkins-console.txt`、`runtime-after.json` 及 `verification.json`。后续TEST发布须以实际运行版本为基线核对,不能仅凭分支HEAD假定本次固定标签改动已合入分支。
## 散板需求菜单 TEST Admin 发布(2026-10-19,已发布)
用户最终确认本轮只发布菜单移动和改名;本土散板下单字段优化不进入本轮。以当时已成功发布的 Admin #639、`f7f6637c45ccc8fa4252dc99b98e9b6006a07a46` 为基线,仅加入5个菜单/路由标题/页面文案及对应测试文件,源码候选为 `763bd90d19cf372ce22e5c37b50e96125d5e5bf0`,固定发布标签 `admin-menu-only-20261019-763bd90d19cf`。未创建或切换分支、工作树或项目副本,未将工作区散板表单、派送、预约等其他未提交改动纳入发布。
Jenkins `admin-web-test #640` 为 SUCCESS,实际检出与候选一致;当前 Admin 镜像 `admin-web-test:763bd90d19cf`、镜像ID `sha256:2e953cb75b8f3e1364387c38951ecb0c2b09ec7840348ad6566e2e51780f3144`,状态 running / healthy。Jenkins按精确提交完成类型检查与生产构建;固定版本与完整SCM检出只用于本轮,Job原始配置已恢复并核对完整语义一致。
菜单由“车辆管理 → 拼车接货”调整为“海外业务 → 散板需求”,对应页面、页签辅助文案和返回入口同步改名;原路径、权限及业务功能保持。52项直接测试通过;公网与容器6项HTML/JS/CSS资源逐项SHA-256一致,另含健康与页面路由共8项检查通过;运行导航模块确认新入口位于海外业务,车辆管理下不再包含该入口。
本轮未执行 SQL、未修改数据库或业务数据、未触发后端/客户端发布、未修改Nacos或权限配置。散板新增订单字段改造仅保留在工作区,不能将本次菜单发布视为该改造已上线。1920×1080、100%缩放的人工视觉验收仍待截图确认;静态资源与HTTP检查不代替人工点击验收。
证据位于 Admin `.logs/menu-only-release-20261019/`:`manifest.json`、`release-state.json`、`jenkins-build.json`、`jenkins-console.txt`、`runtime-before.txt`、`runtime-after.txt`、`verification.json`。最初基于#638准备的候选在并行#639发布开始前未触发构建、未部署,随后重新以#639为基线生成并发布上述候选,避免覆盖其他已发布功能。
## 预约列表四类简化 TEST 发布(2026-10-19,已发布)
用户本轮授权部署预约列表简化。恢复左侧月/周日历、右侧当天安排,仅保留到港、排车、还柜、计划到仓;实际到港优先、否则预计到港,加2个自然日带出默认计划,人工计划优先且保留原冻结门禁。排车来源限定海外仓出库派送用途(DELIVERY),上门取货(PICKUP)排除;同一实际车次只显示一次。原业务精确深链保留,日历通用新增和全局工作待办入口取消。
| 发布单元 | Jenkins | 精确源码 | 实际镜像标签 | 状态 |
|---|---|---|---|---|
| Firstleg | baiyue-firstleg-firstleg #500 | aa195cef66b347b78ae3c34584b67a098bd828c4 | aa195cef66b3 | SUCCESS;running / healthy |
| Lastleg | baiyue-firstleg-lastleg-service #364 | fafcf7501458f41d972ad10a99df627d011bbd86 | fafcf7501458 | SUCCESS;running / healthy |
| Admin | admin-web-test #638 | 05cf82dbbcaaa8e333787a6f169034cb96ee0ea2 | 05cf82dbbcaa | SUCCESS;running / healthy |
Firstleg镜像ID为`sha256:0d4e6781bc30e2655793bb0597dcba5ca10ca0fd20500af8c90d3dbf5914198a`;Lastleg为`sha256:cddb55e3384a9a4fb8906a2d183640c852af2abba92a8d566701cd3f8d1d4978`;Admin为`sha256:4e038b0639fde0f26ea384be063e6f733b5d3209535b089b2c639542366d9575`。Lastleg先由#363发布基础接口,#364追加排除取货用途;两次均按固定提交执行完整测试。Admin #637在轻量SCM检出时失败,未进入构建或更新容器;改用临时完整SCM检出后#638成功。固定提交及完整检出只用于本次发布,Job完整XML语义已恢复并核对原配置一致。
验证:Admin工作区全量405文件/3372项、精确发布候选预约模块36文件/260项、类型检查及构建通过;直接受影响后端与Gateway、部署、回滚、Mapper合同通过。Jenkins Firstleg为1669项、失败/错误0、跳过9;最终Lastleg业务测试2938项、失败/错误0、跳过9,独立SQL语义测试51项全过,两个后端均SKIP_TESTS=false。发布门禁中既有取货测试Bean/API数量、输入提示/弹框密度/页签结构及空库SQL归属与表数问题已作最小源码修正;日历不新增Schema,未对环境执行SQL。
发布后通过测试Gateway及Admin同源统一入口分别只读验证:到港/还柜来源GET、计划到仓查询POST、车次日历GET均HTTP200/业务200;本次42天窗口分别读取394个来源柜、234条还柜、408条整柜到仓投影及151个有地点资料的车次。POST为查询,业务写入0;仅创建并退出本次自有认证会话。公网健康页、预约路由及60个入口引用资源HTTP200;HTML、主JS/CSS和预约日历JS/CSS共5文件与部署容器逐项SHA-256一致,8项四类日历代码/样式标记存在。
证据位于Admin `.logs/appointment-calendar-release-20261019/`:`release-complete.json`、`source-manifest.json`、`backend-purpose-manifest.json`、各Job构建/控制台记录、`runtime-after.json`、`smoke-after.json`、`smoke-admin-same-origin.json`、`public-static-verification.json`及`admin-job-configuration-restored.json`;后端基础21文件清单为Backend `.logs/appointment-calendar-release-manifest.json`。本轮未修改业务数据、Nacos或权限配置,未执行SQL/删除/重置。未提交工作区其他已有改动。1920×1080、浏览器100%缩放下的新页面与弹框人工视觉仍待用户截图确认,不将HTTP和自动测试作为人工验收。
## 随机数量演示批次D1681准备(2026-10-19)
用户随后要求沿用流程、随机调整数量,选定12箱4托、每托3箱,现场演示9箱首批与3箱后批。此前D1680已实收入库,因此保留不改;本次通过正式TEST业务接口另建柜次 `D1681`、柜号 `TSTU2713380`、入仓码 `NYEXX2610190002`、国内订单 `FL2112001474456780802`、尾程订单 `FL-WH-20261019-328883`、海外入库单 `IP-ABE4-20261019-724033`。客户为IT测试公司,路线US-LAX-01洛杉矶仓至ABE4;4个真实托盘为 `D1681-126-001` 至 `D1681-126-004`,各3箱,已完成海外入库。货物核实、预约、9+3分批、排车、车次均留给现场;首批拟选择前三托,后批保留第四托。
@@ -2231,6 +2321,7 @@ Client #382(`a0736239e4ee4cd58b620dab912ffc0641360d9f`)正式页面在1920×
上述脚本定向离线检查 8 文件/72 项通过;全范围离线检查分别为 scripts 根级 79 文件/709 项(696 通过、13 失败),Admin 模块 129 文件/1159 项(1154 通过、5 失败)。失败文件精确记录于同目录 result.json:agents-index-registry-contract.test.mjs、database-schema-alignment-migrations-contract.test.mjs、java-quality-summary.test.mjs、synchronous-dependency-contract.test.mjs,以及 admin-test-env-modules/initialization-baseline-contract.test.mjs、phase3-producer-chain-contract.test.mjs。AGENTS 索引门禁仍因登记表不符合固定三任务假设失败,未改动登记表或放宽断言。本次 HTTP 正常链通过不等于全仓质量门禁通过。
## 本土卡车与散板需求字段发布(2026-10-19)
当前字段规则唯一见[海外仓业务 README](海外仓业务/README.md#本土散板简化下单)及同文“美国本土卡独立下单”。本轮仅发布 Lastleg、Client 与 Admin;没有发布 Gateway、Auth 或其它服务。
@@ -2247,6 +2338,7 @@ Client #382(`a0736239e4ee4cd58b620dab912ffc0641360d9f`)正式页面在1920×
- 两端公网入口及本轮精确 JS 产物的 34 项静态 HTTP 检查通过,已核对车型、两端联系人、取送时间、散板商品和预计托数及分钟格式。运行证据为私有环境目录内的 `looseboard-release-status-20261019.json`、`truck-demand-http-report-20261019.json`、`looseboard-demand-http-report-20261019.json`、`looseboard-demand-frontend-http-20261019.json`,不提交凭据或运行报告。
- 人工页面视觉仍待 1920×1080、浏览器 100% 截图确认;自动化接口及静态产物检查不代替视觉验收。
## Admin / Client 统一运输下单表单发布(2026-10-19)
- 本轮只发布前端:Admin `b92e5379bcc7196c034542087b6e9a6615f9ae71`(`admin-web-test #642`)、Client `17580fb0a22ddf7dbf2576fc8fc4ab94a31cb4fd`(`client-web-test #429`),均核对精确 checkout,类型检查、构建及部署成功。Lastleg 沿用 #367;没有执行 SQL 或发布后端。