主题
规划管理 · 测试与验证报告
文档版本:1.00 | 最近核对日期:2026-10-15
本报告汇总规划管理模块本轮(2026-09-20)的验证证据:真实页面端到端验收(开发库 + 内置浏览器)、真实接口与开发库回读、前端与文档自动化检查,以及后端规划测试的验证受阻范围。报告只记录实际执行并取得结果的范围;未执行、受阻或以接口证据替代的范围分别标注,不作已通过表述。
文档控制与范围
| 项目 | 内容 |
|---|---|
| 模块名称 | 规划管理(项目储备:储备清单、状态跟踪;规划报建:线网规划、建设规划、工可研究;专题类型目录;9 条流程定义) |
| 关联需求分析 | 需求分析(业务规则 R-PL-001~R-PL-032、验收标准 AC-PL-001~AC-PL-009、验证受阻范围见该文 6.4) |
| 关联概要设计 | 概要设计 |
| 关联详细设计 | 详细设计(接口契约、流程接入、权限与数据范围、实现映射与设计差异) |
| 关联数据库设计 | 数据库设计(13 张 biz_planning_* 表全量字段矩阵、约束索引与差异) |
| 测试环境 | 本地开发环境:前端(Vue 3 + Vite)开发服务、后端(Spring Boot)本地实例、达梦 DM8 开发库(通过项目 MCP dcp-dm8-dev 访问)、内置浏览器。不涉及生产或其他受保护环境 |
| 测试数据 | 开发库本轮新建的规划管理业务记录(回读时点:任务 31 行、阶段记录 22 行、成果版本 22 行、成果明细 25 行、审批记录 51 行、实例登记 21 行、意见征求批次 3 行、部门意见 5 行、专题类型 2 行);本轮建立/启用的测试部门与测试用户仅用于端到端办理。账号与连接信息不写入本文档 |
| 执行人/日期 | 规划管理实施与端到端复验:2026-09-20;数据库结构与注册数据只读复核:2026-09-20(文档 Agent) |
| 受测代码状态 | 提交 f13cf89(当前 HEAD;该提交只含文档改动,代码内容与前一提交 12e8729「修复:规划管理审批回写与意见征求缺陷,并对齐原型入口与台账口径」一致)。端到端复验时工作区含本轮未提交改动,相关改动已全部提交入库;本报告编写时工作区无代码改动,仅新增本模块资料目录(未跟踪) |
| 页面验收方式 | Agent 以真实角色登录、在内置浏览器执行真实页面端到端检查并逐一办理至流程结束;未做用户侧业务验收 |
| 总体结论 | 待验收:Agent 端到端页面与真实接口验证在本报告第 2、4 节列明范围内通过;后端 13 项规划测试验证受阻、附件页面上传验证受阻(见第 5 节);业务验收待用户判定 |
1. 验证范围与环境
- 范围:5 个业务模块(储备清单、状态跟踪、线网规划、建设规划编制/报审/批复、工可研究报审/批复等阶段变体)+ 专题类型目录 + 流程工作台(流程图、审批历史、重启实例、只读详情)+ 意见征求会签(含部门退回)+ 退回重提 + 状态跟踪自动引用。
- 环境:开发库 + 本地前后端 + 内置浏览器,全部为开发环境;不含生产或其他受保护环境、不涉及凭据与私有地址记录。
- 执行方式(四类证据并用,各自标注范围):
- 浏览器真实页面:以真实角色登录,从各模块台账页进入新增/编辑/审核/详情与办理页,按节点逐一办理(含意见征求会签、退回、重启实例入口)到流程结束;
- 真实接口:页面操作触发的真实后端接口(提交、暂存、办理、退回、意见征求决定与部门意见、流程图/审批历史查询);
- 开发库回读:通过项目 MCP
dcp-dm8-dev只读回读业务表、审批记录、意见征求明细、实例登记、字典、流程定义与菜单权限数据; - 自动化命令:前端类型检查、规划模块前端断言、文档站检查(见第 3 节)。
- 页面入口与角色(角色按归属表述,不记录账号):
| 入口 | 页面路径 | 端到端验证中使用的角色归属 |
|---|---|---|
| 储备清单 | /planning/projectReserve/reserve | 二级单位部门经办人、二级单位部门负责人、开投集团项目中心部门窗口、项目中心经办人、项目中心部门负责人、运营管理部/资产管理部/建设管理部意见接收人 |
| 状态跟踪 | /planning/projectReserve/statusTracking | 二级单位部门经办人、二级单位部门负责人、项目中心部门窗口、项目中心经办人、项目中心部门负责人 |
| 线网规划 | /planning/planningSubmission/networkPlan | 同上(二级单位与项目中心链路) |
| 建设规划(编制/报审/批复) | /planning/planningSubmission/constructionPlan | 二级单位部门经办人/负责人、项目中心部门窗口/经办人/部门负责人、四部门意见接收人(编制阶段) |
| 工可研究(报审/批复) | /planning/planningSubmission/feasibilityStudy | 二级单位与项目中心链路 |
| 专题类型目录 | /planning/planningSubmission/topicType | 具备目录维护权限的角色 |
| 办理页工作台 | /planning/projectReserve/*/flowForm、/planning/planningSubmission/*/flowForm(9 条固定路由) | 各节点当前办理人 |
| 项目历史数据聚合 | /planning/projectHistory(静态注册路由) | 具备页面权限的查看角色 |
| 流程实例重启 | 详情页工作台入口 | 系统管理员/流程管理员(planning:process:restart) |
2. 端到端验收记录(2026-09-20,开发库 + 内置浏览器真实页面)
2.1 主链路结果
| 验证项 | 实际结果 | 证据 |
|---|---|---|
| 五个模块与阶段变体全部走到「已通过」 | 通过:储备清单、状态跟踪、线网规划、建设规划(编制/报审/批复)、工可研究(报审/批复)等模块与阶段变体均在真实页面按节点办理至流程结束,列表审核状态显示「已通过」 | 页面台账与详情、流程历史查询接口、开发库任务/阶段记录状态回读 |
| 逐条审批记录齐全 | 通过:每个办理节点均生成审批记录,含节点名称、审批意见、结果、办理人、办理人部门、发起单位、办理时间;审批记录按引擎办理记录幂等,无重复行(回读时点 51 行) | 开发库 biz_planning_approval_record 回读、页面审批时间线 |
| 意见征求:会签部门意见各自回写 | 通过:选择多个部门后仅被选中部门生成待办;每位部门接收人提交后各自回写本人意见与结果(轮次批次 + 逐部门明细落库,回读时点批次 3 行、部门意见 5 行);全部部门完成才流转 | biz_planning_consultation_batch/biz_planning_consultation_task 回读、意见征求面板与流程时间线 |
| 退回:部门退回回到业务发起人并标记本轮未通过 | 通过:任一部门退回后本轮批次标记为未通过(REJECTED),流程回到业务发起人节点,已完成部门意见保留在历史记录中 | 页面退回弹窗与流程时间线、批次状态回读 |
| 退回后重提走完 | 通过:发起人修改后重新提交,沿用原流程实例,原审批记录保留、新增办理记录可查,最终走到「已通过」 | 页面与流程时间线、审批记录回读 |
| 状态跟踪自动引用生成 | 通过:自动引用生成 5 条(建设规划编制/报审/批复 + 工可研究报审/批复),来源模块编码分别为建设规划与工可研究;引用记录无阶段记录、无成果版本、无待办(不参与审批);同一来源阶段记录重复触发不重复生成 | 状态跟踪台账与项目台账页面、biz_planning_task 中来源字段回读 |
| 审批时间线渲染节点卡片 | 通过:详情页流程工作台的时间线按节点渲染卡片,展示节点名称、办理人、部门、审批意见、结果与时间;业务标识含 #,前端对流程历史请求路径段做了 URL 编码,时间线有数据(未编码时时间线恒为空) | 详情页工作台页面 |
| 详情只读工作台可访问 | 通过:列表「详情」直接进入流程工作台只读视图,业务表单只读;底部「流程图」「审批历史」「重启实例」「返回」入口均可访问并正常返回列表 | 详情页工作台页面 |
| 流程图 | 通过:详情页可打开流程图,节点与连线按已发布流程定义呈现(9 条定义 VERSION=1、IS_PUBLISH=1、ACTIVITY_STATUS=1) | 流程图抽屉页面 + FLOW_DEFINITION 回读 |
| 双发起方式 | 通过:二级单位发起与开投集团发起两条路线均可从页面发起并按各自节点链路办理到结束 | 页面发起表单与办理链路、任务 INITIATOR_TYPE 回读 |
2.2 阶段任务化口径
- 建设规划与工可研究的编制/报审/批复各自为一条独立任务,每条任务 1 条阶段记录(
SEQ_NO=1)、1 个独立流程实例、成果版本号从 1 起;回读时点任务 31 行、阶段记录 22 行、成果版本 22 行,数量关系与"引用记录与草稿不建阶段记录"的口径一致。 - 同一项目下的多条阶段任务在项目台账按项目聚合展示,项目台账提供「该项目历史数据」聚合入口(按查询实时聚合,不复制业务表)。
2.3 补充验证(2026-09-30,发起方式解除归属限制 + V2 流程图升级)
按用户裁决取消发起方式的人员归属限制、清理在途实例与业务数据及 7 条基础定义、16 条定义重出图升级 V2 并导入发布后的回归结果:
| 验证项 | 实际结果 | 证据 |
|---|---|---|
| 开发库清理 | 通过:规划相关流程实例 23 条、待办 75 条、历史任务 97 条、办理人关联 78 条及 13 张 biz_planning_* 业务表全部清空(含专题类型目录 2 条,用户裁决一并清空);7 条不区分发起方式的基础定义(储备清单、状态跟踪、线网规划、建设规划报审/批复、工可研究报审/批复)连同节点、连线删除;回读剩 16 条拆分/编制定义 | 项目 MCP dcp-dm8-dev 删除行数回报与回读 |
| 16 条 V2 导入发布 | 通过:经产品导入接口逐条导入(16/16 成功),节点/连线重复行检查均为 0,逐条发布后回读 VERSION=2、IS_PUBLISH=1,同编码 V1 全部 IS_PUBLISH=0 | 导入/发布接口返回、FLOW_DEFINITION 回读 |
| V2 流程图渲染 | 通过:发起弹窗流程图抽屉中节点名称按 7 字换行分两行展示,网关不写名、关键边带「需征求/无需征求」标签,无交叉压盖(与升级前 V1 挤行渲染对比) | 内置浏览器截图 |
| 发起弹窗流程图常驻 | 通过:建设规划/工可研究新增弹窗打开即显示「流程图」按钮;未选工作阶段时点击提示「请先选择工作阶段后再查看流程图」,不打开抽屉;选阶段后正常打开对应流程图;单阶段模块打开即可查看 | 内置浏览器真实页面 |
| 集团人员以二级单位方式发起 | 通过:集团部门(数智科技部)人员点击「二级单位新增」发起建设规划编制阶段,提交成功,实例运行于 planning_construction_compilation VERSION=2,当前节点 unit_dept_leader_audit,发起方式 SECONDARY_UNIT | 页面列表「进行中」、流程工作台、实例回读 |
| 集团方式发起 | 通过:点击「开投集团新增」发起线网规划,提交成功,实例运行于 planning_network_plan_group VERSION=2,当前节点 group_leader_audit,发起单位记集团根部门 | 页面列表「进行中」、实例与发起单位回读 |
| 项目台账详情/办理入口 | 通过:项目台账行「详情」进入流程工作台只读视图(含审批时间线),不再误报「请先选择工作阶段」;接口回读台账行已带 initiatorType | 内置浏览器真实页面、台账接口返回 |
2.4 复审与验证(2026-10-09,四部门并行意见征求 + 14 项改动清单)
对用户当日 14 项改动清单的复审、缺陷修复与两条端到端链路验证结果(开发库 1.12.68.9 + 本地前后端 + 内置浏览器真实页面):
| 验证项 | 实际结果 | 证据 |
|---|---|---|
| 流程定义升级 V3 | 通过:两条编制阶段定义按「互斥网关 → 并行分叉 → 四部门办理节点 → 并行汇聚 → 经办人确认」重出图,经导入接口导入为 VERSION=3(建设规划 2108260587521220610、工可研究 2108260570966302722),导入后节点 16 条/连线 19 条、节点与连线重复行检查均为 0,随后发布成功,同编码 V2 转 IS_PUBLISH=9 供在途实例使用 | 导入/发布接口返回、FLOW_DEFINITION/FLOW_NODE/FLOW_SKIP 回读 |
| 并行部门节点创建 | 通过:决定节点选「是」并为四部门各选接收人后,实例生成 dept_operation_opinion、dept_asset_opinion、dept_construction_opinion、dept_other_opinion 四条待办,biz_planning_consultation_task 四条 PENDING 且节点编码与部门一一对应,办理人姓名按用户 ID 补齐(汤雨聪/杨单丹/程浩/于岐) | 页面办理页「各部门意见征求情况」卡片、FLOW_TASK/FLOW_USER/biz_planning_consultation_task 回读 |
| 并行汇聚 | 通过:四条部门待办全部办结后实例由 parallel_consult_merge 汇聚到 center_handler_confirm,再经 center_leader_confirm 至 end,任务状态 finish(已通过) | 页面办理页、FLOW_INSTANCE/biz_planning_task 回读 |
| 无需征求分支 | 通过:同一编制流程在决定节点选「否」提交后实例直接到 end,任务状态 finish,不生成部门待办 | 决定接口返回、FLOW_INSTANCE/biz_planning_task 回读 |
| 部门接收人拦截 | 通过:仅选 1 个部门提交被拒(「请选择资产管理部、建设管理部、其他部门意见征求接收人」);四部门选同一人被拒(「各部门接收人不能重复,请为每个部门选择不同接收人」);页面对应提示一致 | 决定接口返回、页面提示 |
| 部门退回 | 通过:部门节点退回后实例回到申请人节点(submit),其余并行分支待办失效,任务状态 back | FLOW_TASK/biz_planning_task 回读 |
| 自定义专题落库 | 通过:biz_planning_task_topic 支持模板引用为空的自定义专题(TOPIC_TYPE_ID 放开非空,已回读 NULLABLE=Y),任务名称快照为「模板专题(改名)、自定义专题」;修复前自定义专题被 resolveTopicTypes 丢弃 | 新增弹窗页面操作、biz_planning_task/biz_planning_task_topic 回读 |
| 填报单位下拉 | 通过:列表筛选「填报单位」为下拉,候选限业主单位(deptType=1 + orgTypes=company,branch,开发库 5 条),修复前误取 deptName 导致下拉为空 | 页面下拉选项、/system/option/deptTree 接口回读 |
| 审核页成果展示 | 通过:办理页只读展示填报成果内容与成果附件列(工可研究编制阶段文件),无备注字段 | 页面办理页 |
| 线网规划 | 通过:列表无「项目名称」筛选与列,表单不显示项目名称,后端放开项目必填 | 页面线网规划列表、后端校验 |
| 静态检查 | 通过:后端业务模块 mvn -Dmaven.test.skip=false compile 成功;前端 vue-tsc --noEmit 无错误;oxlint 3 项错误均为既有非规划文件(bidding、FlowChartComponent)存量问题 | 命令输出 |
| 验证说明 | 四部门并行链路中,部门意见提交经由产品接口(页面按钮在自动化环境下点击不可靠);中间审核节点分别经页面与产品接口办理,页面渲染与提示均已核对 | — |
3. 自动化验证记录
证据口径遵循软件交付文档 · 最新验证证据。
| 验证项 | 命令或入口 | 执行时间 | 结果摘要 | 结果 |
|---|---|---|---|---|
| 前端类型检查 | .agents/tools/verify.ps1 -Check FrontendTypes | 2026-09-20 | 通过 | 通过 |
| 规划模块前端断言(办理页流程逻辑) | vitest:src/views/business/planning/planningFlow.spec.ts | 2026-09-20 | 6 项断言全部通过 | 通过 |
| 规划模块前端断言(原型页面口径对齐) | vitest:src/views/business/planning/planningPrototypeAlignment.spec.ts | 2026-09-20 | 5 项断言全部通过 | 通过 |
| 文档站检查 | .agents/tools/verify.ps1(默认 Docs 检查,即 docs:check) | 2026-09-20 | 通过 | 通过 |
| 后端规划测试(本轮新增) | Maven:PlanningTaskServiceImplTest、PlanningProcessEventListenerTest(业务模块及依赖) | 2026-09-20 | 本机因 Mockito 插件加载失败全部报错 | 验证受阻(不得记为通过,见第 5 节) |
| 后端规划测试复测 | Maven:同上两个测试类 | 2026-09-30 | 5 + 8 共 13 项全部通过(此前 Mockito 加载失败在本机已不复现) | 通过 |
| 接口与数据库实测 | 项目 MCP dcp-dm8-dev 只读回读 | 2026-09-20 | 13 张 biz_planning_* 表(237 列)、13 个主键约束、2 个唯一约束、12 个具名普通索引、6 个字典类型(20 条字典值)、9 条规划管理流程定义(均已发布启用)、73 条规划管理菜单/按钮权限行,回读结果与实体代码逐项一致 | 通过 |
| 后端规划测试(2026-10-09 复审) | Maven:PlanningTaskServiceImplTest、PlanningProcessEventListenerTest(-Dmaven.test.skip=false) | 2026-10-09 | 16 项全部通过(原 13 项 + 新增 3 项:四部门接收人缺失拦截、接收人重复拦截、四部门办理人变量绑定) | 通过 |
| 前端规划模块断言(2026-10-09 复审) | vitest run src/views/business/planning | 2026-10-09 | 11 项全部通过(原型对齐 5 项按新面板文案「附件上传」更新,流程逻辑 6 项不变) | 通过 |
| 前端类型检查(2026-10-09 复审) | vue-tsc --noEmit、oxlint src | 2026-10-09 | 类型检查无错误;lint 3 项错误均为既有非规划文件(bidding、FlowChartEntry)存量问题 | 通过(规划范围) |
| 后端编译(2026-10-09 复审) | Maven:业务模块及依赖 compile(-Dmaven.test.skip=false) | 2026-10-09 | 编译成功 | 通过 |
| 文档站检查(2026-10-09 复审) | .agents/tools/verify.ps1(Docs) | 2026-10-09 | 154 个文本文件、3271 条本地链接,0 问题 | 通过 |
3.2 2026-10-14 本轮修复回归
| 验证项 | 命令或入口 | 执行时间 | 结果摘要 | 结果 |
|---|---|---|---|---|
| 前端自动化 | pnpm vitest run | 2026-10-14 | 50 个测试文件、276 项全部通过 | 通过 |
| 前端代码检查 | pnpm run lint;pnpm exec vue-tsc --noEmit | 2026-10-14 | Oxlint 0 warning/0 error;Vue 类型检查退出码 0 | 通过 |
| 后端规划与工程手续回归 | mvn -Dmaven.test.skip=false -Dtest=EngineeringProcedureServiceImplTest,PlanningTaskServiceImplTest -Dsurefire.failIfNoSpecifiedTests=false -pl digital-construction-modules/digital-construction-business -am test | 2026-10-14 | 两个测试类合计 25 项,失败 0、错误 0 | 通过 |
| 流程图几何检查 | .agents/skills/flow-graph/scripts/check_layout.py 检查储备清单集团/二级单位 V3 | 2026-10-14 | 集团 13 节点/16 连线;二级单位 16 节点/19 连线;锚点、交叉、重叠与标签检查均无问题 | 通过 |
| V3 导入发布回读 | 项目 MCP dcp-dm8-dev | 2026-10-14 | 两条 V3 IS_PUBLISH=1、ACTIVITY_STATUS=1;节点/连线数量与源文件一致,重复节点/连线为 0;发布前 V2 活动实例为 0 | 通过 |
| 储备清单集团 V3 页面端到端 | 内置浏览器:新增、提交、负责人选择「否」、审批同意、列表回读 | 2026-10-14 | 新建测试单据进入 V3 group_leader_audit,经 needConsultation=0 分支结束;页面「已通过」,MCP 回读流程实例 finish、业务状态完成、无活动待办 | 通过 |
V3 的「是」会签路径没有创建实际接收人待办:该路径要求分别指定运营、资产、建设三名互不重复的人员,提交后会给相应账号生成待办。本轮通过源文件、运行态连线/条件回读及服务测试核对分支配置;会签及汇聚真实办理留待使用专门测试账号再验收。
3.1 后端规划测试的用例构成(受阻前的实际用例数)
| 测试类 | 用例数 | 覆盖内容 |
|---|---|---|
PlanningTaskServiceImplTest | 5 | 意见征求决定按流程任务 ID 解析业务任务;拒绝非规划流程/其他模块的任务;部门意见提交按流程任务 ID 回写;未知流程任务被拒 |
PlanningProcessEventListenerTest | 8 | 任务事件按实例最近一条已办理历史写审批记录;当前节点取事件携带的新节点;退回结果与部门意见标记;重复审批记录幂等跳过;无历史时只更新当前节点;结束事件生成状态跟踪引用、重复触发幂等跳过、单阶段模块不生成引用 |
| 合计 | 13 | — |
说明:上表用例数按当前测试源码统计(
@Test方法数),合计 13 项。历史设计稿记载为「PlanningTaskServiceImplTest10 项、PlanningProcessEventListenerTest3 项」,与当前测试源码不一致(两处合计同为 13 项);本报告以测试源码为准并登记该差异。
4. 覆盖矩阵
按模块列出已验证链路与未覆盖项。状态口径:已验证 表示本轮有真实页面/接口/数据库证据;部分覆盖 表示主链路已验证但存在未覆盖分支;未覆盖 表示本轮未执行。
| 模块/入口 | 已验证链路 | 未覆盖项 | 状态 |
|---|---|---|---|
| 储备清单 | 二级单位发起与开投集团发起两条路线从填写、暂存、提交到多级审核、意见征求会签、部门确认、结束;意见征求选择部门、部门各自回写、任一部门退回回到发起人、退回后重提走完;详情只读工作台(流程图/审批历史/重启实例/返回) | 非管理员角色的数据范围视角(本模块默认不做单位隔离,本轮未按不同单位角色交叉验证列表可见范围);会签面板页面提交在「首个部门之外的其他部门」的多部门场景(本轮首个部门通过页面提交验证,其余部门的逐部门页面提交未逐一执行);导出的实际文件内容 | 部分覆盖 |
| 储备清单 V3(2026-10-14) | 集团发起版本 V3 新建、提交、负责人选择「否」、审批同意,流程进入 end 并显示已通过;办结详情字段、成果明细、审批时间线两步记录、V3 流程图与无需征求路径均在内置浏览器复核;MCP 回读定义 ID、版本与流程实例状态一致 | 「是」会签的运营/资产/建设接收人办理、OTHER 选填与汇聚完整路径;二级单位 V3 页面发起;重启实例仅查看并取消弹窗,未执行重启 | 部分覆盖 |
| 状态跟踪 | 手工新增进度任务的两条发起路线办理至结束;来源阶段「已通过」后自动引用生成 5 条(建设规划编制/报审/批复 + 工可研究报审/批复);引用记录不参与审批、按来源阶段记录幂等 | 自动引用记录的详情页与重启入口在无阶段记录/无实例时的表现(只读核对发现的可疑行为,本轮未复现验证);引用记录在项目台账的聚合范围是否应收窄为「引用记录 + 状态跟踪任务」(当前实现展示建设规划/工可研究全部任务,范围比设计文案更宽,待业务确认) | 部分覆盖 |
| 线网规划 | 二级单位发起与开投集团发起两条路线从成果明细填写、提交到多级审核与结束;成果明细列名「线网规划成果文件」;详情只读工作台可访问 | 文件目录引用(按原型为预留:本模块未实现信息管理/文件目录配置对接,成果文件只能直接上传);导出的实际文件内容;非管理员角色的数据范围视角 | 部分覆盖 |
| 建设规划(编制阶段) | 二级单位发起(编制阶段按口径不提供开投集团发起);文件上传、提交、部门负责人审核、项目中心窗口、经办人确认、是否需要意见征求判断、四部门意见征求(含部门退回与部门回写)、部门确认、结束;详情与审批时间线 | 四部门意见征求中多部门的逐部门页面提交场景;导出的实际文件内容;非管理员角色的数据范围视角 | 部分覆盖 |
| 建设规划(报审阶段) | 二级单位发起与开投集团发起两条路线完整办理至「已通过」;成果明细列名「建设规划报审成果文件」;项目台账聚合与「该项目历史数据」入口;自动引用生成 | 同一项目下「再次报审新建第二条报审任务」的两条任务互不覆盖场景(口径已确认,本轮未按双报审任务实测);导出的实际文件内容 | 部分覆盖 |
| 建设规划(批复阶段) | 二级单位发起与开投集团发起两条路线完整办理至「已通过」;成果明细列名「建设规划批复成果文件」;自动引用生成 | 导出的实际文件内容;非管理员角色的数据范围视角 | 部分覆盖 |
| 工可研究(编制阶段) | 编制阶段口径(仅二级单位发起、含意见征求判断)随建设规划编制阶段同构实现并已核对节点链路 | 完整链路未在本轮端到端验收中独立走通(本轮工可研究验证覆盖报审与批复阶段);该阶段的意见征求分支未独立复验 | 未覆盖 |
| 工可研究(报审阶段) | 完整办理至「已通过」;成果明细列名「工可研究报审成果文件」;自动引用生成 | 导出的实际文件内容;非管理员角色的数据范围视角 | 部分覆盖 |
| 工可研究(批复阶段) | 完整办理至「已通过」;成果明细列名「工可研究批复成果文件」;自动引用生成 | 导出的实际文件内容;非管理员角色的数据范围视角 | 部分覆盖 |
| 专题类型目录 | 目录列表查询(按规划报建阶段筛选)、新增/修改/删除、关联项目(多选);被任务引用后不可物理删除(改为停用)的规则 | 关联项目多选在项目台账/状态跟踪聚合中的连带影响(本轮未逐一验证);目录项停用后的在途任务展示 | 部分覆盖 |
| 流程工作台与权限 | 详情只读工作台、流程图、审批历史时间线、重启实例入口与返回;planning:* 权限码菜单与按钮授权;三个规划管理角色补授流程实例查询与流程定义列表权限后即时生效 | 非管理员角色调用重启实例被判权的负向场景(口径已确认,本轮未以普通业务角色实测拒绝;该项为验收标准 AC-PL-005 的一部分);台账视图权限码在菜单侧与代码侧取值不一致(详见详细设计 · 9.1第 2 项),未在有权限角色下实测台账接口 | 部分覆盖 |
储备清单 V3 办结详情服务级页面复核(2026-10-14)
- 按用户说明复用另一会话已启动的本地后端,没有停止或重启该进程。内置浏览器打开办结记录
E2E验收-V3无会签-20261014(任务 ID2110059980708728834),页面完整显示任务、填报单位/人员/时间、发起方式、审核状态、成果版本和成果明细。 - 后端运行日志记录详情、流程摘要、审批历史与流程图查询均成功:
GET /business/planning/reserve/get/{id}、GET /business/planning/reserve/process-info/{id}、GET /workflow/instance/flowHisTaskList/{stageRecordId}%23{instanceSeq}、GET /warm-flow/query-flow-chart/{instanceId}。页面流程名称及版本显示为储备清单(开投集团)V3,时间线显示申请人与集团负责人审核两步均通过。 - 流程图实际渲染开始、申请人、负责人审核、条件判断、并行拆分、运营/资产/建设/其他部门意见、并行汇聚、经办人确认、负责人确认与结束节点;当前办结实例高亮的是「无需征求」路径。该页面证据只证明图表和无需征求路径展示正常,不代表「需征求」并行会签已运行态验证。
- 打开并取消「重启流程实例」弹窗,核对原因和下一步审核人字段及保留历史提示;没有提交重启。测试记录页面展示两个项目名称,本次仅以该记录验证流程详情,不据此判断项目选择规则。记录没有附件,附件上传/预览仍按既有未验证范围报告。
- 本次未复现详情字段空白:接口完成加载后页面数据齐全;未发现需要代码修复的问题。此复核不改变会签路径、附件交互及重启写入的未覆盖状态。
5. 验证受阻与未验证范围
5.1 验证受阻(必要检查未取得有效结果,不得记为通过)
| 编号 | 受阻项 | 实际现象 | 已取得的部分证据 | 替代证据的边界 | 影响范围 |
|---|---|---|---|---|---|
| BLOCK-PL-001 | 后端 13 项规划测试(PlanningTaskServiceImplTest 5 项、PlanningProcessEventListenerTest 8 项) | 在本机执行时因 Mockito 插件加载失败,全部 13 项报错,未产生通过结果 | 无通过的自动化结果 | 受影响结论改用真实页面端到端与真实接口验证替代(见第 2 节),但自动化回归覆盖仍然缺失,不得表述为该批测试通过 | 意见征求按流程任务 ID 解析、部门意见回写、审批记录幂等与来源节点、状态跟踪自动引用幂等这几项结论缺少自动化证据,仅有端到端证据 |
| BLOCK-PL-002 | 附件上传交互 | 内置浏览器不支持文件选择,无法通过页面完成上传操作 | 附件随办理提交写入流程历史 ext 已用真实 ossId 验证;附件展示依赖 system:oss:query 权限并已按该依赖补授 | 附件经 biz_planning_attachment_ref 落库与页面附件预览的完整交互未取得页面证据(回读时点该表 0 行) | 成果明细附件与部门意见附件的页面上传/预览路径缺少页面证据;接口侧已按真实文件标识验证 |
5.2 未覆盖及原因
- 非管理员角色的数据范围视角:本模块默认不做单位隔离(用户已确认),本轮未以不同单位/不同角色交叉验证列表可见范围与越权查询行为。
- 多部门场景下除首个部门之外的页面提交:意见征求会签的部门意见回写已验证(含落库),但未逐一在页面上以每个部门接收人的身份执行提交。
- 工可研究编制阶段的完整链路:本轮工可研究覆盖报审与批复阶段,编制阶段仅核对节点链路与同构实现,未独立走通完整链路。
- 流程实例重启的负向场景:普通业务角色调用重启接口被拒的口径已确认,本轮未以普通业务角色实测拒绝结果。
- 导出的实际文件内容与导出列最终口径:导出列默认口径(按列表列 + 成果明细展开)与实现(实际列数与枚举中文化)存在差异,属未决项,本轮未核对导出文件内容。
- 台账视图权限码在菜单侧与代码侧取值不一致:已在详细设计登记为待核对项,本轮未在有权限角色下实测台账接口。
- 跨浏览器与深色模式表现:本轮只在内置浏览器验证默认显示,未做跨浏览器与深色模式核对。
- 储备清单 V3 会签路径:集团及二级单位 V3 定义已发布,集团版「无需会签」分支已真实办理;「需要会签」涉及三名不同接收人并生成工作待办,本轮未创建业务人员待办,OTHER 选填与并行汇聚完整办理待使用测试账号复验。
- 正式环境部门启用范围:「二级单位」判定口径与项目中心、运营管理部、资产管理部、建设管理部在正式环境的启用状态待业务方确认,本轮仅在开发库按现状验证。
6. 缺陷与遗留问题
| 编号 | 问题 | 严重度 | 影响范围 | 处理/规避 | 复验结果 | 状态 |
|---|---|---|---|---|---|---|
| BUG-PL-001 | 任务事件的 nodeCode 指向新生成的下一待办,而审批记录应写刚完成的来源节点,按事件节点解析会把记录写错节点 | 高 | 各节点审批记录、节点办理快照与后续流转 | 事件回写补充来源节点处理:审批记录取该实例最近一条已办理历史,当前节点取事件携带的新节点 | 已修复(提交 12e8729);端到端复验中逐条审批记录的节点、意见、结果、办理人、部门与时间齐全一致 | 已修复并核验 |
| BUG-PL-002 | 意见征求部门意见漏回写(多部门会签场景下仅最后一名办理人触发的事件会写入) | 高 | 部门意见落库与意见征求流转 | 提交入口按登录人回写本人 PENDING 明细(不依赖流程事件),事件回写作为最后一名办理人的补充路径 | 已修复(提交 12e8729);端到端复验中每个部门意见各自落库(回读 5 行部门意见明细) | 已修复并核验 |
| BUG-PL-003 | 流程业务标识含 #,前端查询流程历史时未做路径段 URL 编码,审批时间线恒为空 | 中 | 详情页审批时间线展示 | 流程历史请求处对路径段做 URL 编码 | 已修复;端到端复验中时间线按节点卡片正常渲染 | 已修复并核验 |
| BUG-PL-004 | 线网规划(NETWORK_PLAN)无关联项目保存时,后端 saveProjects 误拦截并抛出「请选择项目」阻断保存 | 高 | 线网规划新增/编辑与暂存 | 在 saveProjects 中对空项目列表做安全早退,由 validateSaveBo 按模块类型控制项目必填校验 | 2026-10-12 真实浏览器端到端复验通过(成功创建并回显) | 已修复并核验 |
| BUG-PL-005 | 部门意见征求表格仅把 FINISHED 显示为完成;服务端当前持久化状态 DONE 被误显示为「待办理」,与结果、意见、办理时间和审批历史矛盾 | 中 | 储备清单部门意见征求详情 | 新增统一完成态判断,兼容当前 DONE 与历史 FINISHED;不改变后端状态契约 | 定向 Vitest 7 项、vue-tsc 通过;本地 Dev 真实页面回读四部门均显示「已办理」 | 已修复并核验 |
| OBS-PL-001 | DEV 选人列表中运营/资产/建设部门筛选无候选人;全部人员列表中所选测试人组织归属为项目中心 | 观察项(业务口径已确认) | 意见征求分支与办理人组织归属的关系 | 用户于 2026-10-15 确认允许跨部门选人,部门名称标识意见分支,不代表办理人组织归属;无需修改 DEV 用户、部门、角色或权限 | 四个分支已真实页面办结;按已确认口径验收通过 | 口径已确认 |
| LIMIT-PL-001 | 规划管理全部附件交互尚未逐模块覆盖(此前内置浏览器文件选择能力未确认) | 中 | 各模块附件上传、预览与下载 | 本轮在储备清单真实页面通过文件选择器上传成果、意见征求说明和运营审查意见,并从详情/审批历史回读;其他规划模块上传仍待逐项验证 | 储备清单页面上传与回读通过;非本链路模块未验证 | 部分验证 |
| LIMIT-PL-002 | 后端 13 项规划测试在本机无法执行(Mockito 插件加载失败) | 中 | 相关结论的自动化回归覆盖 | 在有可用测试环境时重跑该批测试;当前以端到端与接口证据替代并在此列明未覆盖的自动化范围 | 2026-09-30 复测通过(13 项全部通过,阻塞已不复现) | 已修复并核验 |
| LIMIT-PL-003 | 文件目录引用能力为预留(FileReferenceAdapter 未实现,SOURCE_TYPE='FILE_CATALOG'/CATALOG_ID 无写入证据) | 低 | 线网规划、建设规划/工可研究批复阶段成果文件引用目录 | 本轮按直接上传口径实现并验证;对接能力待「信息管理/文件目录配置」模块立项 | 范围外,未复验 | 范围边界 |
| LIMIT-PL-004 | 设计稿与实现的差异(台账权限码已统一为 planning:ledger:task / planning:ledger:project;专题类型目录已静态注册固定路由;详情页已补充各部门意见征求情况列表渲染;自动引用记录重启已加固;导出列已转换中文业务枚举) | 中 | 权限准入、页面可达性、详情渲染与导出可读性 | 台账权限码已对齐;路由已静态注册;详情页与导出中文转换已落地代码并完成回归 | 已修复并核验 | 已修复并核验 |
7. 验收结论
- 已覆盖的角色旅程(Agent 验证通过范围):二级单位部门经办人(填写、暂存、提交、退回后重提);二级单位部门负责人(审核、判断是否需要意见征求);开投集团项目中心部门窗口(选人转办);项目中心经办人(审核/确认);项目中心部门负责人(审核/确认、意见征求决定);意见征求部门接收人(各自提交部门意见、部门退回);系统管理员(详情只读工作台、流程图、审批历史、重启实例入口)。覆盖储备清单、状态跟踪、线网规划、建设规划编制/报审/批复、工可研究报审/批复共 9 个流程定义对应的模块链路,以及专题类型目录维护。
- 实现完成:本轮范围内的后端、前端、流程定义、菜单与权限、字典与数据库对象已完成并已提交入库。
- 验证通过(限定范围):本报告第 2 节与第 4 节标注为「已验证/部分覆盖」的链路,按真实页面、真实接口与开发库回读的实际覆盖通过;第 3 节自动化检查中前端类型检查、规划模块前端断言(6 + 5 项)、文档站检查通过。
- 本轮新增验证(2026-10-14):前端 276 项自动化测试、lint 与类型检查通过;规划/工程手续后端定向 25 项测试通过;集团/二级单位储备清单 V3 已经项目 MCP 导入发布,集团版 V3「无需会签」路线页面办理到结束并回读
finish。会签路径仍按第 5.2 节列为未覆盖。 - 历史验证受阻记录:详见第 5 节;规划后端 13 项测试已于 2026-09-30 复测通过。本轮储备清单附件上传已通过真实页面验证,其他规划模块上传类型仍按未验证处理。
- 业务验收通过:无。Agent 以真实角色登录执行的页面检查计入"验证通过"的页面证据范围,不构成用户业务验收。
- 业务验收待验收:模块业务路径是否符合业务方预期,由用户或业务方查看页面后判定,尚无反馈。
- 用户补充查看:用户自行打开页面查看属于补充验收,不替代本报告已执行的验证范围。
- 业务确认人及日期:待确认。
8. 最新补测:9 月批次中的项目储备最复杂分支(2026-10-15)
8.1 执行范围与真实页面路径
- 环境:本地 Dev 前端/后端 + DEV 开发库;全程未访问生产环境。
- 交互方式:在内置浏览器中真实点击、逐字段键入、通过页面文件选择器选取并上传附件;业务创建、审批与意见提交均由页面触发,没有用脚本/API 代替页面录入或办理。
- 测试单据:15 号线一期「手工E2E-15号线储备-20261015-01」,储备清单 V3(二级单位发起);成果明细、流程意见与附件均使用合成测试内容。
- 完整路径:申请人 → 建设单位负责人 → 项目中心部门窗口 → 项目中心经办人审核 → 项目中心负责人决定征求意见 → 运营/资产/建设/其他部门四路并行意见 → 项目中心经办人确认 → 项目中心负责人终审。包含可选「其他部门」分支,最终单据状态为「已通过」,各审批节点均显示「通过」。
- 附件:成果文件、负责人发起四部门征求说明、运营管理部审查意见,均经页面文件选择器上传,并在终审详情/审批历史中回读到文件名;附件和流程记录留在 DEV。
- 终态回读:四个意见分支均为「已办理/同意」且有办理时间;运营意见附件可回读;二次负责人节点意见及开始/结束时间可见;业务状态显示「已通过」。证据截图:
reports/evidence/2026-10-15-reserve-final-approved.png(资料清理时移除,内容可从 Git 历史检索)。
8.2 本轮缺陷与待决项
- BUG-PL-005(已修复):会签明细接口返回当前完成态
DONE,旧前端只识别FINISHED,导致已结束的意见分支显示成「待办理」。前端统一判断兼容DONE与历史值FINISHED;未改变服务端状态及审批契约。真实页面复测四行均正确显示「已办理」。 - OBS-PL-001(业务口径已确认):部门人员筛选按运营管理部/资产管理部/建设管理部搜索时没有候选人,全部人员列表中本次选用的 DEV 用户归属显示为项目中心。用户确认允许跨部门选人,部门名称只标识意见分支,不约束办理人的组织归属;本次四个分支按此口径验收通过。本轮未修改用户、部门、角色或权限。
- 范围限制:本次人工页面补测使用 15 号线;本报告其他链路中的 27 号线证据属于既有测试记录,不代表本轮又走了一次 27 号线储备。其他规划模块的附件上传、不同部门真实组织归属和角色数据范围仍未逐项验收。
8.3 本轮前端回归
pnpm exec vitest run src/views/business/planning/planningFlow.spec.ts:1 个测试文件、7 项测试全部通过,含DONE/FINISHED完成态及待办态边界。pnpm exec vue-tsc --noEmit:通过。- 定向
pnpm exec oxlint(本次修改的 3 个前端文件):通过。 - 浏览器热更新后真实页面回读:运营、资产、建设、其他部门均显示「已办理」。业务全链终态:通过;用户/业务方验收仍待确认。