主题
运营对接管理 · 测试与验收文档
文档版本:0.10 | 最近核对日期:2026-09-28
文档控制
| 项目 | 内容 |
|---|---|
| 模块名称 | 运营对接管理 |
| 编写日期 | 2026-09-26 |
| 关联文档 | 需求分析、概要设计、详细设计、操作手册 |
1. 验证环境与版本
- 环境:本地开发前端与后端、开发数据库、Warm-Flow 流程工作台、平台 OSS 文件服务。
- 流程:问题清单及闭环 V5(定义 ID
2103716067758149633);三权移交 V3(定义 ID2103717320710000642)。两份定义在流程设计器查看,办理页读到相同版本。 - 业务账号:具备本模块访问权限的开发账号。未用其他角色执行权限负向检查。
- 页面验证均通过真实页面和真实业务接口完成,不使用 Mock 或 Stub。开发库测试记录保留,未删除其他测试记录。
2. 自动化与静态验证
| 检查 | 命令或对象 | 结果 |
|---|---|---|
| 后端全量依赖构建及测试 | \.agents\tools\dev.ps1 maven -pl digital-construction-admin -am test '-Dmaven.test.skip=false' | BUILD SUCCESS。该轮运行时本模块项目查询回归测试仍被 Surefire 标签过滤,故另补 dev 标签并执行下列定向测试。 |
| 问题查询空项目名回归 | \.agents\tools\dev.ps1 maven '-Dmaven.test.skip=false' '-Dtest=OperationDockProblemServiceImplTest' '-Dsurefire.failIfNoSpecifiedTests=false' -pl digital-construction-modules/digital-construction-business -am test | 目标测试实际执行 1 项,0 失败、0 错误、0 跳过。 |
| Warm-Flow 固定退回目标 | \.agents\tools\dev.ps1 maven '-Dmaven.test.skip=false' '-Dtest=FlwTaskServiceImplTest' '-Dsurefire.failIfNoSpecifiedTests=false' -pl digital-construction-modules/digital-construction-workflow -am test | 目标测试实际执行 3 项,0 失败、0 错误、0 跳过;包含固定目标允许/拒绝及既有办理人表达式用例。 |
| 前端规则检查 | pnpm lint | 通过。 |
| 前端开发构建 | pnpm build:dev | 通过。 |
| 流程图核验 | operation_dock_problem.json V5、operation_dock_transfer.json V3 | CLASSICS 模型、四向锚点和正交折线核对通过;无 REJECT 连线。设计器查看未见交叉、穿节点或边标签遮挡。 |
3. 真实页面端到端验证
3.1 问题清单及闭环
测试记录 ID 2103723375959597057,业务编码 1790401713809。在台账新增记录,填写项目、线路、部门、问题及处理结果,上传两组 TXT 附件;责任部门副部长留空。
- 首次提交后,待办节点为“责任部门部长”。从该节点退回时,页面只提供“申请人”目标;申请人修改记录并重新提交,既有办理历史保留。
- 重提后实际待办顺序为“责任部门部长 → 发起部门部长 → 责任部门经办人”。办理页没有弹出手工指定下一办理人的对话框。
- 三节点依次同意后,未选择的副部长没有生成待办;系统提示流程已完成,问题台账行显示“已完成”。
- 两组附件在审批页和台账分别可见;分页列表读出真实行与总数。
结论:问题审批的顺序、申请人退回和重提、选填副部长跳过、完成状态、附件分组及列表分页主链通过真实页面验证。
3.2 三权移交
测试记录 ID 2103727691478982658,业务编码 1790402742703。填写接收线路、接收区段(域)、正式移交类型、接收时间,保留默认填报人,单选一名审批人,并上传移交表与接收协议 TXT 附件。
- 提交后真实待办出现“审批人”节点;办理页显示三权移交 V3、选定的单一审批人、两组附件和审批时间线。
- 批准操作没有要求再选下一办理人;同意后系统提示三权移交审批已完成,待办列表不再包含该单据。
- 提交待审批期间,记录已在台账可见且没有修改、删除操作;该台账没有审核状态列,故列表可见不作为生效证据。
结论:表单单选审批人、提交进入审批、单节点同意完成及附件展示的真实页面链路通过。流程事件监听代码将完成状态写回 finish;本轮未通过 dcp-dm8-dev 对该条记录执行新的数据库回读,因此该记录的最终物理状态未单独直接核验。
4. 测试中发现并修复的问题
| 问题 | 修复 | 验证 |
|---|---|---|
问题台账列表接口返回分页 PageResult,前端却按数组读取,导致列表/总数契约不一致 | 两个列表 API 统一声明 PageResult<VO>,页面读取 rows 与 total | 真实列表页读取记录并显示总数 |
问题列表项目名称条件为空时,查询代码直接 trim() 导致请求异常 | 仅对非空项目名称执行去空格处理 | OperationDockProblemServiceImplTest 定向测试通过 |
| OSS 返回的文件后缀带前导点时,被后端允许格式校验误拒 | 校验前移除一个前导点并统一转小写 | 两组 TXT 文件真实上传、提交与读取通过 |
| 流程节点只在页面限制退回目标,伪造请求仍可能指定其他历史节点 | 固定目标优先于委托办理候选;Warm-Flow 服务端校验请求节点必须与配置一致 | FlwTaskServiceImplTest 3 项通过;真实流程页只显示申请人目标 |
问题查询回归用例未标记默认 dev 测试组,完整构建成功但用例没有运行 | 为 OperationDockProblemServiceImplTest 增加 @Tag("dev") | 定向 Surefire 报告确认目标用例执行 1 项 |
5. 尚未验证的范围
- 仅使用具备模块权限的开发账号;无权限角色访问、不同角色的按钮可见性、后端 403、他人记录编辑/删除拒绝未做真实角色切换验证。
- 三权移交退回和沿原流程重提按规划管理同级基线实现,尚未进行端到端退回验证。
- 列表各筛选组合、Excel 导出、缺少必填附件时的页面拦截、单个附件组多文件、文件大小上限和不支持格式的失败路径未做完整页面回归。
- 三权记录审批完成后的
finish状态未通过本轮数据库 MCP 回读;页面流程完成提示、待办消失及流程事件监听代码提供旁证。 - 测试数据库保留真实验证记录;本轮未清理其他仍待处理的开发测试流程。
上述未验证项不影响已取得证据支持的流程主链结论;不将本报告表述为全角色或全验收项通过。
6. 2026-09-28 本轮复核与接口回归
| 检查 | 结果 | 证据与范围 |
|---|---|---|
| 运营对接后端回归 | 通过,3 项通过、0 失败、0 错误、0 跳过 | OperationDockProblemServiceImplTest 2 项、OperationDockTransferServiceImplTest 1 项;覆盖问题描述/处理结果边界与接收区段边界。均包含在 business 模块全量 234 项测试中。Maven 显式使用 -Dmaven.test.skip=false。 |
| 长度边界 API 负向回归 | 通过,3 项均被拒绝 | 当前代码启动的后端分别拒绝 601 字问题描述、601 字处理结果和 61 字接收区段;HTTP 为 200、统一业务码为 500,未返回新记录 ID。流程没有附件上传步骤。 |
| 真实接口只读检查 | 通过 | 问题清单列表返回 2 行,三权移交列表返回 1 行;两个接口均 HTTP 200。该数目来自当轮 API 响应,不据此声明审批状态或权限负向通过。 |
| 数据库与流程定义 | 通过 | MCP 回读运营对接 4 张表、68 列;问题闭环 V5 为 8 节点/8 连线,三权移交 V3 为 4 节点/3 连线。两份流程 JSON 均为 0 锚点异常、0 穿节点、0 交叉、0 长共段、0 标签问题。 |
| 全量工程回归 | 通过 | business 模块 234/234;共享 workflow 模块 14/14;前端生产构建转换 3,823 个模块,全量 vue-tsc --noEmit --pretty false 0 项诊断;文档检查 144 个文本文件、2,960 个链接、0 问题。 |
2026-09-28 前一轮接口回归未使用交互式浏览器;第 3 节的页面记录是 2026-09-26 历史结果。当前会话的浏览器与后端启动尝试见第 7 节。附件上传不属于此前长度边界 API 回归的前置步骤,也未以附件上传能力作为接口回归的停止条件。角色切换、退回重提和导出等页面/接口路径仍按第 5 节保持待验收。
7. 2026-09-28 当前会话端到端验证尝试
- 拟测基线:
main@3b6edc5;目标为问题清单及闭环、三权移交的真实页面与业务链路。桌面 Google Chrome 未出现在当前会话可用浏览器中,按用户要求改用 Codex 内置浏览器。 - 环境恢复:最初两次启动虽已注入五项文档规定的 JVM 参数,仍在 Netty NIO Selector 初始化时报
Unable to establish loopback connection。查阅环境配置与运行后将DCP_JAVA_TEMP_DIR指向C:\Temp,后端在 8080 正常监听并记录Started DigitalConstructionApplication;前端在 80 正常监听。GET /actuator/health返回 401,表明请求到达受鉴权端点,不作为健康检查通过证据。 - 启动脚本修复:确认 8080 监听进程由本任务的 PowerShell
-EncodedCommand启动链派生,但脚本未解析编码命令,误报为归属不明。修复.agents/tools/dev-env.ps1后,dev-env.ps1 ensure已能正确复用 8080 和 80 的当前项目进程。 - 本轮回归:运营对接后端定向回归 3/3 通过;此结果不替代真实模块 API 流程及页面操作。
- 页面状态与影响:桌面 Google Chrome 未出现在当前会话可用浏览器中,已按用户要求使用内置浏览器并停留在登录页。浏览器安全策略拒绝用
file:页面读取本机文件;登录仍待用户在该页手动完成。当前未调用需登录的运营对接接口或页面操作,也未通过业务流程新增、修改或删除测试记录;本轮运营对接真实页面 E2E 待登录后执行,历史页面主链仅支持原覆盖范围,不能代替本轮页面证据。
8. 2026-10-01 本轮业务链路与前置提示补充
| 验证项 | 结果 | 证据与边界 |
|---|---|---|
| 问题清单及闭环主链 | 通过(单一开发管理员角色) | 以已关联线路的项目提交问题记录并上传附件;依次办理责任部门负责人、发起部门负责人、责任部门经办人三个必经节点;台账状态与详情时间线回读为“已完成”。选填副部长节点未选择并按流程跳过。该证据不代表跨角色或角色矩阵通过。 |
| 三权移交代表样本 | 通过(单一开发管理员角色) | 有代表性页面提交、单节点审批完成和台账/附件回读证据;跨角色退回重提仍未覆盖。 |
| 未关联线路项目提示 | 已增加实现,页面回归待完成 | 本轮修复前的真实页面检查确认可选中无线路项目并在提交时被后端拒绝,未产生业务记录。需求基线、用户手册和服务端均要求提交时必须有项目关联线路。本轮在项目选择后显示无线路/线路加载失败提示,并在提交时前端拦截;服务端原校验保留。由于当前无法安全完成账号登录,修复后的真实页面反馈未复验。 |
| 自动化与全模块范围 | 见本轮主报告 | 前端全量 Vitest 45 个文件、246 项通过,Vue/TypeScript 类型检查及本次修改前端文件格式检查通过;OperationDockProblemServiceImplTest 2 项定向测试通过。该数量覆盖整个前端测试集,不等于运营对接所有分支、角色和页面均通过。 |
本补充不改变需求中“问题清单项目必须关联线路”的规则;无线路项目不能提交,现由页面更早提示这一既有约束。数据库 MCP 未用于本补充验证,流程数据保持在开发环境。全平台覆盖边界见《全业务端到端测试与问题报告-20260930》(原存于仓库 reports/ 目录,资料清理时移除,内容可从 Git 历史检索)。
9. 2026-10-15 任民授权线路与工点选择回归
以任民真实账号分别打开三权移交与问题闭环新增表单:工程线路候选加载后均包含已整线授权的27号线和已部分授权的15号线;27号线选择“璧山站”成功,15号线显示授权01/02标的11个工点并可选择“九曲河东站”。返回/取消表单后未创建记录。页面首次线路候选约等待8~9秒,加载完成后选择值保留正常;本轮覆盖工程选择,不覆盖运营审批流转与角色矩阵。