Skip to content

工程投资管理 · 详细设计文档 ​

文档版本:0.10 | 最近核对日期:2026-09-27

文档控制 ​

项目内容
模块名称工程投资管理
关联需求分析需求分析
关联概要设计概要设计
关联数据库设计数据库设计
关联代码版本main 工作区(本轮任务改动,提交前);后端编译及 API 端到端回归通过
编写/核对人Codex
待确认事项无阻塞项;需求未给出且会改变实现的事项按推荐默认处理,见需求分析决策记录

1. 页面、路由与交互 ​

页面/组件路由进入条件可见角色主要操作状态/异常反馈
投资计划上报台账/investment/plan/report动态菜单与 investment:planReport:list有计划上报查看权限的用户筛选、查看、新增、编辑、暂存、提交、删除、Excel 导入、模板下载、导出显示草稿/流转/退回/办结;校验失败保留输入并定位项目行
投资计划确认台账/investment/plan/confirm动态菜单与 investment:planConfirm:list有计划确认查看权限的用户筛选、维护一致标志、调整计划、删除、导出、进入下达文件台账一致标志为明确维护的“是”前允许下达;调整单独生成版本
投资计划上报流程表单/investment/plan/report/flowForm上报页进入;办理入口携带流程参数发起人或当前办理人草稿保存、提交、查看流程/办理意见、退回后续提流程提交经 Warm-Flow;业务状态由流程事件更新
计划调整流程表单/investment/plan/issueModify/flowForm确认台账中的调整计划被授权的调整发起人或当前办理人复制当前版本、修改项目与分摊、暂存或提交办结后更新当前版本指针和未归档下达分摊关联;旧版本及流程历史保留
投资计划下达文件台账/investment/issue由一致计划进入的隐藏菜单路由有计划下达权限的用户年度文件维护、附件管理、责任分摊下达每年一个台账行,可有多个附件;文件记录没有单独审批流
投资实施台账/investment/implementation动态菜单与 investment:implementation:list有实施台账查看权限的用户年度/项目/部门筛选、查看 12 个月计划与实绩、导出、进入月报记录/填报展示已办结月报;月度、累计与年度完成率由服务端重算
投资实施月报记录/investment/implementation/records从实施台账选项目责任分摊进入有月报记录权限的用户新增、编辑、暂存、提交、查看、删除草稿或退回记录一个责任分摊、计划年、月份最多一条有效记录;只计办结记录
投资实施月报流程表单/investment/implementation/report/flowForm月报新增或流程办理入口发起人或当前办理人月份实际填报、暂存、提交、查看流程/办理意见月计划从下达分摊带出,累计值只读并按有效办结记录计算

页面沿用项目筛选卡、列表卡、工具栏、分页及水平滚动表格。宽表按月份横向滚动;必填和金额错误在页面上提示;批量导入错误包含行号与字段。文件附件限原型列出的格式,单个文件不超过 50MB。加载、空态、接口失败和重试按项目 UI 规范实现。

2. 接口契约 ​

统一前缀 /business/investment。业务 ID 按 string | number 传输,前端不转换为 JS Number;金额以亿元为单位,库内与接口均使用十进制精确值,比例为百分数,两位小数,分母为零时返回 null。

接口方法调用方权限请求对象响应对象幂等/事务
/business/investment/plan/page、/summaryGET两个计划台账investment:planReport:list 或 investment:planConfirm:listmode、年度、项目名、发起单位、责任部门、行业/阶段/重点标记、线路、投资/预备费、分页分页台账与六项汇总只读;筛选与导出使用同一条件,项目筛选按当前有效版本
/business/investment/plan/{id}、/process-info/{id}GET计划台账/流程表单investment:planReport:query 或 investment:planConfirm:query原始 ID单据、项目、部门拆分、月份与流程信息只读
/business/investment/planPOST / PUT上报/调整表单investment:planReport:add/edit 或 investment:planConfirm:adjust计划头、项目、部门拆分、12 月计划与选定审批人保存后的 ID/单据单事务写入头、明细、拆分;重复 ID 与非草稿状态拒绝
/plan/{id}/project/{itemId}/metadataPUT投资计划上报台账investment:planReport:edit行业、建设阶段、市级重点与拟申报市级重点无仅草稿/退回的发起人可改,且项目明细必须属于该计划
/business/investment/plan/{id}/submit、/consistencyPOST / PUT上报/确认页investment:planReport:submit、investment:planConfirm:consistency节点人员或一致标志/说明更新结果与业务状态重复提交保护;流程启动与状态写入同事务
/business/investment/plan/{id}/modification、/plan/modification/{id}/process-infoPOST / GET确认台账/流程表单investment:planConfirm:adjust/query来源计划 ID 与审批人新版本单据或流程信息克隆旧版本并启动流程;办结才切换当前版本/下达关联
/plan/template、/plan/import、/plan/exportGET / POST / GET计划台账investment:planReport:export/import、investment:planConfirm:export模式、筛选条件或 xlsx 文件xlsx 下载或逐行校验结果导入全部校验通过后一个事务保存;失败不写入部分项目
/issue/page、/issue/{id}、/issue/{ids}GET / POST / PUT / DELETE下达文件台账investment:planIssue:list/query/add/edit/delete年份、标题/文号/日期、附件 ID 集合年度文件行及分摊信息年度唯一;无已下达责任分摊时允许软删除
/issue/{id}/plan-options?year=...、/issue/{id}/allocation、/issue/allocation/{id}/submitGET / POST下达文件台账investment:planIssue:issue计划拆分 ID、接收用户 ID、备注可选计划/责任部门或下达结果同一有效拆分不可重复下达;提交直接生效,无额外流程
/implementation/page、/implementation/summary、/implementation/exportGET实施台账investment:implementation:list/export上报年度、计划年度、项目名、发起单位、责任部门、行业/阶段/重点标记、线路、投资/预备费、分页项目/责任部门行、12 月指标、汇总只读;数据按当前下达版本及筛选范围聚合
/implementation/allocation/{allocationId}/report?month=...GET月报表单investment:implementation:add下达拆分 ID 与月份月计划、期初累计、期末累计、既有月报只读预填,计划来自有效下达拆分
/implementation/record/page、/implementation/record/{id}、/implementation/record/process-info/{id}GET月报记录investment:implementation:record拆分 ID、年月、分页或月报 ID记录列表、明细或流程信息只读
/implementation/record、/implementation/record/{id}/submit、/implementation/record/{ids}POST / PUT / POST / DELETE月报表单/记录investment:implementation:add/edit/submit/delete实际额、说明、附件、审批人月报记录与状态按拆分行加锁检查年度月份唯一;提交时启动或续接流程

所有写接口在服务层校验当前状态、当前用户、组织/项目/拆分关系、金额范围和目标流程审批人;删除使用逻辑删除,并拒绝影响已下达关系或流程历史的级联删除。所有 Long ID 序列化遵循项目 BigNumber 处理。

3. 状态与业务动作 ​

当前状态动作允许角色前置校验数据变化下一状态失败处理
草稿/退回保存有新增/编辑权限的发起人当前用户有权维护该单;字段和子表有效头、项目、分摊原子更新草稿或退回校验失败不保留部分变更
草稿/退回提交上报/调整/月报对应提交权限的发起人必填字段、金额、月份唯一、所选办理人完整Warm-Flow 启动或完成退回后的申请人节点流转中重复点击及流程服务失败时回滚业务写入
流转中办理/退回引擎当前办理人Warm-Flow 校验任务归属和流程定义引擎记录意见/任务历史;监听器更新状态、节点与办理人流转中/退回/办结非当前办理人由引擎拒绝;业务侧不伪造审批
计划办结维护一致标志有 investment:planConfirm:consistency 权限者单据是当前版本且已办结更新一致标志与说明办结失败保持旧标志
一致计划下达有 investment:planIssue:issue 权限者当前版本已办结且一致为是;拆分未下达年度台账附件与责任拆分接收人绑定;保存快照下达完成任一拆分无效则整次下达失败
月报草稿/退回删除有删除权限的发起人当前人有权维护;记录尚未办结逻辑删除,不计入完成额已删除失败不改变流程历史

计划状态及流程节点以 Warm-Flow 为准。调整单是新的业务 ID,保留前序计划 ID、版本号与克隆来源;办结事件将来源当前版本切到新版本,并把活动分摊绑定到新版本对应拆分。原计划与原流程历史不删除。

4. 权限与数据范围 ​

资源/动作菜单权限按钮权限接口权限数据范围越权结果
计划上报investment:planReport:listquery/add/edit/submit/delete/import/export同名三段式权限无公司/部门数据隔离;通过筛选及业务状态限制后端返回无权错误
计划确认investment:planConfirm:listquery/adjust/consistency/delete/export同名三段式权限同上;只允许一致且办结的当前版本进入下达后端拒绝未满足状态的动作
计划下达隐藏动态菜单 investment:planIssue:listquery/add/edit/delete/issue同名三段式权限只读取当前年度办结且已维护为一致的计划拆分后端拒绝重复或不一致拆分
投资实施investment:implementation:listrecord/add/edit/submit/delete/export同名三段式权限按已下达责任拆分显示,不另按用户/部门隔离后端拒绝无效拆分、他人无权维护的单据或非当前流程任务

列表菜单权限和按钮权限只控制页面可见性;Controller 通过 StpUtil.checkPermission(...) 校验接口权限,Service 再校验状态、计划发起人及记录归属。角色菜单权限行已在开发库建立,生产部署需按实际角色授权。

5. 异常、事务与并发 ​

场景检测位置用户提示回滚/补偿日志与告警测试用例
重复提交Controller 防重复提交、Service 状态检查单据状态已变化,请刷新后重试流程与业务更新事务回滚应用审计日志TC-提交重复
同年红头记录并发新增年度唯一索引与 Service upsert已存在该年度台账读取并返回唯一年度行唯一索引冲突由服务层转业务提示TC-年度唯一
同拆分年度月份并发月报Service 锁定 allocation 行并检查有效记录该责任部门该月份已有上报插入/更新在同一事务完成记录事务失败TC-月报并发/重复
导入文件部分错误上传解析与逐行服务校验返回行号、列名、错误原因校验完整后事务批量保存;任一保存失败全回滚仅记录文件名及错误摘要,不记录凭据TC-导入退回
Warm-Flow 不可用/流程失败流程辅助类流程暂不可用,请稍后重试启动/续流失败时回滚单据状态异常栈留服务端日志TC-流程失败
文件引用缺失或不支持文件 ID 校验/前端文件控件附件格式或大小不符合要求不保存文件引用记录校验失败TC-附件边界

6. 实现映射与验证 ​

责任代码位置验证方式证据
后端digital-construction-modules/digital-construction-business/src/main/java/com/bokun/business/investment/Maven 编译、计算单测、接口与流程事件回归编译通过;3 项计算单测通过;计划保存、计划调整、下达、月报及审批回写 API 主链路通过
前端digital-construction-ui/src/views/business/investment/ 与 src/api/business/investment/构建、格式/静态检查、真实页面端到端操作构建、格式和定向 lint 通过;真实登录后的页面交互未验收
流程digital-construction-modules/digital-construction-workflow/src/main/resources/flow/investment/JSON 静态几何核验、Warm-Flow 导入发布、流程图 JSON 回读静态核验、三条流程导入发布和审批事件回归通过;开发库保留一版未发布旧定义
数据库BIZ_INVEST_* 七张业务表、流程分类与 SYS_MENUdcp-dm8-dev MCP 查询、写后回读结构、流程分类、菜单及计划/调整/下达/月报数据均回读;验收行数见测试报告

7. 变更记录 ​

版本日期变更原因/来源确认人
v0.12026-09-27按原型、现有平台契约和推荐默认建立详细设计用户授权按推荐默认完成模块实施待业务验收
v0.22026-09-27补充实现映射、验证边界与 BO 映射修复记录计划上报接口端到端尝试定位到缺少项目实体转换器;修复已编译,复测受本机 NIO selector 异常阻断待业务验收
v0.32026-09-27更新主链路与调整版本端到端结果,记录标记值、月份列映射修复及累计口径实测结果21 项 API 检查通过;真实浏览器页面操作仍待验收待页面验收