Skip to content

造价单位管理 · 测试与验收文档 ​

文档版本:0.10 | 最近核对日期:—

执行日期:2026-09-27。已执行范围的开发环境验证完成,仍有未验证项;业务验收待业务方。写入仅发生在本地开发环境和 DM8 开发库,所有 E2E 附件均为本任务生成的测试文本。

1. 范围与环境 ​

项目内容
范围六个页面、九张业务表、抽取申请 V3 和中标情况 V3
环境本地前端 localhost、后端 8080、DM8 开发库
测试角色集团造价管理岗(完整模块权限);造价单位E2E无权验证岗(无模块菜单权限);开发超级管理员(临时代办流程审批)
测试记录专用测试单位、抽取申请、中标申请及测试附件保留在开发库
测试账号与岗位两个开发测试账号均挂在既有建设管理部,使用本任务新增的造价单位E2E验证岗;未修改部门、负责人或部门停用状态
流程办理用户授权临时用开发超级管理员办理测试节点;未修改组织资料

2. 真实页面与业务链路 ​

范围实际结果
基础信息新增、修改并附审批文件、字段历史、有效名称重复拒绝、有关联单位删除拒绝;Excel 两行有效数据导入成功,混合有效/无效行整批拒绝
暂停/启用/出库暂停窗口派生、启用清窗、出库原因和时间、重复操作校验
违规/季度/年度三类 CRUD;分数边界 0、100 及超界/超精度校验;同单位期间重复拒绝
抽取申请 V2 既有回归草稿→提交→退回→修改重提→经办人上传结果→已通过
抽取申请 V3业务记录 2103749073461850114:真实页面保存草稿、编辑后再保存、提交启动 V3、集团经办人上传结果并通过;列表、表单与时间线均显示正确数据
中标情况 V2 既有回归常规六节点路径完成浏览器 E2E
中标情况 V3业务记录 2103751058923728898:通过发起部门部长、监督审计法务部部长、建设管理部部长、发起部门分管领导、总经理、董事长六节点,逐节点填写办理意见后完成;流程信息显示 V3、列表显示已通过,完整时间线的六节点均为通过
附件与导入边界抽取申请签字版、比选文件、抽取结果和中标结果测试文本上传成功,并在台账/流程详情可见;.xls 文件通过真实页面导入 1 行成功;下载模板工作簿的表名、5 列表头和 3,758 字节文件已核验;10 MB + 1 字节文件被前端提示并清空、开始按钮禁用,同一弹窗可重新选择有效 .xls
数据范围与角色鉴权集团岗账号登录成功,路由回读包含六个台账页和两个隐藏办理页;六类列表接口均返回业务码 200。无权角色账号登录成功,但调用单位列表接口返回业务码 403;匿名请求仍返回业务码 401
建管部发起中标 V3记录 2103935101422325762:集团岗账号归属既有建设管理部,提交后 V3 实例 2103935104257675265 通过;流程变量 skipConstructionHead=Y,历史节点包含发起部门部长、监督审计法务部部长、发起部门分管领导、总经理、董事长,未出现建设管理部部长节点。其余节点由开发超级管理员临时代办

后端重启后重新访问六个台账路由,页面均正常加载;抽取台账仍可见 2 条已通过测试记录,中标台账可见 3 条已通过测试记录,V3 流程详情可打开并显示审批时间线。本轮浏览器未重复提交或办理既有业务记录。

3. 流程版本、布局与开发库回读 ​

  • Warm-Flow 定义已发布状态:抽取申请 V3 定义 ID 2103744514127572994,中标情况 V3 定义 ID 2103745208763035649。数据库 FLOW_INSTANCE 回读到对应 V3 实例,实例 ID 分别为 2103749226310676481 和 2103751061557751809,两条实例 FLOW_STATUS=finish、未删除。
  • V3 将版本号由 2 升至 3,并只调整 FLOW_NODE.COORDINATE 和 FLOW_SKIP.COORDINATE。逐字段对照 V2→V3,除版本元数据和坐标外,节点、边、条件、权限标记及业务字段均无差异。旧定义行均保留;中标 V2 已失效,抽取申请 V2 保留且未发布。
  • V3 几何静态审查与 Warm-Flow 设计器显示核对:
流程节点/连线画布范围与适配交叉/共享路段/穿节点/锚点异常/斜线/卡片重叠/标签冲突
抽取申请 V34 / 3525×310,宽高比 1.69,适配比例 2.55全部 0
中标情况 V310 / 10975×400,宽高比 2.44,适配比例 1.69全部 0
  • 开发库 MCP 回读九张业务表共 134 列及业务索引。造价单位菜单树共 42 行:模块目录、六个台账、两条隐藏流程办理页及 33 个动作权限。现已关联开发超级管理员和集团造价管理岗;负向测试角色未关联任何菜单权限。

4. 自动化与工程验证 ​

  • Maven 造价单位定向测试:.agents/tools/dev.ps1 maven -pl digital-construction-modules/digital-construction-business -am test -Dmaven.test.skip=false -Dtest=CostUnitAwardResultServiceImplTest,CostUnitAssessmentServiceImplTest,CostUnitWorkflowSupportTest -Dsurefire.failIfNoSpecifiedTests=false;BUILD SUCCESS,6 项通过,覆盖考核期唯一、过期 taskId 拒绝及建管部发起跳过节点变量。
  • 后端 business 模块全量开发标签回归:.agents/tools/dev.ps1 maven -Dmaven.test.skip=false -pl digital-construction-modules/digital-construction-business -am test;BUILD SUCCESS,193 项测试通过,失败/错误/跳过均为 0,包含造价单位的 6 项定向用例。
  • Oxfmt 本轮检查造价单位页面及时间线测试涉及的 12 个文件通过;Oxlint 检查造价单位页面及时间线测试文件通过。
  • 前端全量 Vitest:43 个测试文件、240 项中 239 项通过;唯一失败是全局台账固定列契约,报告两个其他业务页面(招投标挂标列表、问题闭环列表)的状态列未固定。造价单位流程台账的状态列问题已按契约修复,不再出现在失败项中;时间线样式测试已规范化换行符并通过。
  • 造价单位流程台账将“业务状态”列固定在操作列左侧;真实中标台账复核显示状态与操作仍贴在右侧,附件和时间列保留在非固定区域。
  • 权限拒绝检查:无登录态请求 GET /business/costUnit/unit/list?pageNum=1&pageSize=10,开发后端 HTTP 200、业务码 401;这只验证匿名拒绝,不替代低权限登录账号验证。
  • .agents/tools/verify.ps1 文档检查通过:136 个文本文件、2,846 个本地链接,0 个问题。
  • vue-tsc --noEmit 全局检查有 6 个诊断,均在其他业务目录;本模块无诊断,不记为全局通过。
  • Excel 导入:模板两行有效数据导入成功;含一条无效字典值的混合文件整批拒绝,页面反馈真实行号及原因,开发库回读确认失败批次没有写入;旧版 .xls 真实页面导入成功。选择超过单文件 10 MB 平台限制的文件时,前端明确提示、移除文件并禁用导入;同一弹窗可再选有效 .xls,本次未重复提交。
  • 模板下载:真实页面点击后在下载目录发现 造价单位导入模板.xlsx(3,758 字节);读取工作簿确认工作表为“造价单位基本信息”、范围 A1:E1,五列表头与导入字段一致。内嵌浏览器未捕获下载事件,但下载文件和内容均已核验。
  • 后端 API、前端页面和数据库列/索引的模块级验证见本报告第 2 节及既有测试记录;本轮新增验证聚焦于 V3 定义布局与真实流程运行。

5. 未验证范围 ​

  1. 六页业务交互与流程页面的浏览器 E2E 由前述开发超级管理员会话完成;本轮新增集团岗/无权角色的账号级登录、动态路由和后端权限验证使用真实开发 API,未用集团岗重新逐页操作浏览器。
  2. 2026-09-28 全量 vue-tsc --noEmit --pretty false 检查通过,0 项诊断。
  3. E2E 测试记录和上传的测试附件保留在开发环境,本轮不清理;测试账号与岗位信息维护在私有仓库根 README.md。

6. 结论 ​

抽取申请与中标情况 V3 均已由真实页面创建业务记录、启动对应 V3 定义并完成流程;中标 V3 六节点逐节点完成,数据库实例状态为 finish。本轮未改变业务流程语义;V2 既有退回重提等回归继续适用。

本报告结论限于已执行的开发环境验证。集团造价管理岗已完成开发库模块菜单映射;建管部发起跳过分支已通过真实业务接口启动 V3、逐节点审批及实例变量/历史回读验证。开发测试授权不代表正式环境人员授权;业务验收待业务方,未验证范围见第 5 节。

7. 证据位置 ​

后端测试位于 digital-construction-modules/digital-construction-business/src/test/java/com/bokun/business/costunit;页面/API 位于 digital-construction-ui/src/views/business/costUnit 与 src/api/business/costUnit;V3 流程 JSON 位于 digital-construction-modules/digital-construction-workflow/src/main/resources/flow/cost-unit。开发库的表字段、索引、流程定义、实例和历史节点由项目 MCP dcp-dm8-dev 回读核验。

8. 2026-09-28 本轮复核 ​

检查结果证据与范围
造价单位后端回归通过,13 项通过、0 失败、0 错误、0 跳过CostUnitAwardResultServiceImplTest 5 项、CostUnitDrawApplicationServiceImplTest 3 项、CostUnitAssessmentServiceImplTest 2 项、CostUnitWorkflowSupportTest 2 项、CostUnitServiceImplTest 1 项;均包含在 business 模块全量 234 项测试中。Maven 显式使用 -Dmaven.test.skip=false。
真实接口只读检查通过从当前工作区构建启动的后端完成加密登录及用户信息读取;造价单位选项接口 HTTP 200、业务码 200,返回 4 项。测试未上传附件或创建业务记录。
前端检查通过pnpm build:prod 转换 3,823 个模块;全量 vue-tsc --noEmit --pretty false 0 项诊断;造价单位页面 Oxlint 与文档、前端类型检查通过。
数据库及流程定义复核通过MCP 回读造价单位 9 张表、134 列及模块权限映射;造价单位 2 份流程 JSON(14 个节点、13 条连线)静态布局问题均为 0。全量 15 份流程静态复核结果见运营对接测试报告的本轮记录。
文档检查通过.agents/tools/verify.ps1 Docs 检查:144 个文本文件、2,960 个本地链接、0 个问题。

2026-09-28 前一轮复核时没有交互式浏览器控制工具,因此未复验真实页面。第 2 节的页面流程与附件上传结果是 2026-09-27 的历史证据;本轮修改的后端字段边界已由 API 与自动化回归覆盖。当前会话的浏览器与后端启动尝试见第 9 节,页面验收状态仍保留为待验收。

9. 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 的当前项目进程。
  • 本轮回归:造价单位后端定向回归 13/13 通过。该结果不替代业务页面、接口旅程或数据库回读。
  • 页面状态与影响:桌面 Google Chrome 未出现在当前会话可用浏览器中,已按用户要求使用内置浏览器并停留在登录页。浏览器安全策略拒绝用 file: 页面读取本机文件;登录仍待用户在该页手动完成。当前未调用需登录的造价单位接口或页面操作,也未通过业务流程新增、修改或删除测试记录;本轮造价单位真实页面 E2E 待登录后执行,既有历史结果不代替本轮证据。