主题
运营对接管理 · 详细设计文档
文档版本:0.10 | 最近核对日期:2026-09-26
文档控制
| 项目 | 内容 |
|---|---|
| 模块名称 | 运营对接管理 |
| 编写日期 | 2026-09-26 |
| 关联文档 | 需求分析、概要设计、数据库设计、测试报告 |
1. 页面、路由与实现组成
页面范围按需求分析执行。运营对接管理下有问题清单及闭环、三权移交两个台账,以及由流程工作台进入的固定办理页;不另设业务详情或独立审批中心。
| 页面 | 路由 | 主要组件 |
|---|---|---|
| 问题清单及闭环台账、表单 | /operationDock/problemCloseLoop | src/views/business/operationDock/problemCloseLoop/index.vue、components/ProblemCloseLoopForm.vue |
| 问题清单及闭环流程办理 | /operationDock/problemCloseLoop/flowForm | src/views/business/operationDock/problemCloseLoop/flowForm.vue |
| 三权移交台账、表单 | /operationDock/threeRightsTransfer | src/views/business/operationDock/threeRightsTransfer/index.vue、components/ThreeRightsTransferForm.vue |
| 三权移交流程办理 | /operationDock/threeRightsTransfer/flowForm | src/views/business/operationDock/threeRightsTransfer/flowForm.vue |
前端 API 类型位于 src/api/business/operationDock/。后端采用 Controller → Service → Mapper/Entity 分层,业务代码位于 com.bokun.business.operationdock,固定表单流程复用 OperationDockWorkflowHelper 与 Warm-Flow。
2. 接口、分页与权限
两个列表接口返回 PageResult<VO>;前端读 rows 和 total,不把分页结果当数组。ID 在前端保留 string | number 原始值,后端 Long 由项目 JSON 映射处理。
三权移交按工点共享语义检查同一线路下整线授权,或至少一个当前有效标段×工点组合包含目标工点;候选、列表、详情和写入使用同一判断。问题闭环列表、详情和导出按跨部门台账基线全量可读;其线路→工点候选按共享工点授权过滤,新增/修改服务端校验选定的线路与工点归属及授权,不能通过直接构造请求绕过候选范围。
| 操作 | 问题清单及闭环 | 三权移交 | 权限动作 |
|---|---|---|---|
| 分页查询 | GET /business/operationDock/problemCloseLoop/list | GET /business/operationDock/threeRightsTransfer/list | list |
| 详情读取 | GET .../problemCloseLoop/{id} | GET .../threeRightsTransfer/{id} | query |
| 暂存新增/修改 | POST / PUT 各自业务路径 | POST / PUT 各自业务路径 | add / edit |
| 提交审批 | POST .../problemCloseLoop/submit | POST .../threeRightsTransfer/submit | submit |
| 批量删除 | DELETE .../{ids} | DELETE .../{ids} | remove |
| 流程信息 | GET .../problemCloseLoop/process-info/{id} | GET .../threeRightsTransfer/process-info/{id} | query |
| 导出 | POST .../problemCloseLoop/export | POST .../threeRightsTransfer/export | export |
控制器的 @SaCheckPermission 与对应页面的 v-hasPermi 使用三段式权限码 operationDock:<resource>:<action>。服务端另校验记录创建者或 manage 权限、记录状态和流程任务归属;前端按钮显隐不构成授权。列表及导出沿用规划管理已确认的同级基线,具备页面查询权限即可查询模块全部记录,不按单位隔离。
3. 业务写入与状态回写
3.1 问题清单及闭环
- 暂存新增写入
draft,允许尚未完成提交校验;编辑仅允许草稿或退回状态。 - 问题描述与处理结果上限各为 600 字,接收区段(域)上限为 60 字;Service 在新增、修改及提交共用的表单映射入口检查,不能只依赖 Controller 的 Bean Validation 或页面
maxlength。草稿可缺少提交必填项,但长度约束仍生效。 - 提交在事务中校验项目、项目关联线路、处理部门、发起人、问题描述、处理结果、三名必选审批人及两组附件;上报时间首次提交时写入,退回重提保留原时间。
- 流程变量由后端从已校验的记录构造:
responsibleDeptLeaderId、initiatingDeptLeaderId、responsibleDeptHandlerId、responsibleDeptDeputyId和hasDeputy。未选择副部长时注入hasDeputy=0,条件网关直接结束;已选择时进入末节点。 - 退回目标固定为
submit(申请人)。流程节点配置固定目标,办理页只展示该目标;共享流程服务校验请求目标与节点配置一致,不接受伪造的历史节点编码。 draft → waiting → back → waiting → finish。审批历史由 Warm-Flow 保留;业务表监听流程事件更新状态和实例标识。
3.2 三权移交
- 暂存写入
draft;提交必须校验接收线路为工程树LINE节点、区段(域)、移交类型、接收时间、填报人、单选审批人及两组附件。 - 提交流程变量为表单指定的
approverId,由一个“审批人”节点办理。退回目标按规划管理同级流程基线固定为申请人,发起人可修改并沿原流程实例重提;此退回路径尚无端到端验证。 draft → waiting → back → waiting → finish。流程事件监听负责将 Warm-Flow 结果写回业务状态;记录只有处于finish时才算生效。- 审批中的记录仍可通过三权台账查询;业务服务禁止修改或删除审批中的记录。台账在审批完成前不显示审核状态列(列表展示方式按平台同级台账确定),台账可见性不代表记录已生效。
3.3 事务、重提与异常
新增、修改、附件关联、提交及流程启动由业务 Service 的事务覆盖。流程启动失败回滚业务数据和附件引用。退回重提时,OperationDockWorkflowHelper 通过当前登录人查找原业务当前任务,再完成该任务,不另起一个活动流程实例;找不到本人任务时拒绝重提。控制器提交接口使用 @RepeatSubmit,服务端也校验业务状态和已有流程。
4. 流程定义与图形规范
流程图遵循流程图编排规范:设计器选 CLASSICS;办理卡片按 100 × 80 计算四向锚点;边用正交折线,不画 REJECT 退回线;普通 PASS 边无标签,仅条件分支显示短标签。
| 流程 | JSON 与发布版本 | 节点顺序与关键配置 |
|---|---|---|
| 问题清单及闭环 | digital-construction-modules/digital-construction-workflow/src/main/resources/flow/operation-dock/operation_dock_problem.json;V5;定义 ID 2103716067758149633 | 开始 → 申请人 → 责任部门部长 → 发起部门部长 → 责任部门经办人 → 条件网关 →(已选)责任部门副部长 /(未选)结束 → 结束。审批节点固定退回 submit。 |
| 三权移交 | digital-construction-modules/digital-construction-workflow/src/main/resources/flow/operation-dock/operation_dock_transfer.json;V3;定义 ID 2103717320710000642 | 开始 → 申请人 → 审批人 → 结束;审批人取自表单单选值,并固定退回 submit。 |
两份定义均使用 PASS 主线与边条件,不含 REJECT 连线;问题流程的选填副部长分支在同一局部区域展开。静态坐标按节点四向锚点连接并使用水平、垂直折点;V5/V3 已在流程设计器查看,当前布局无边交叉、穿节点或边标签遮挡。定义发布后,真实办理页分别显示 V5 和 V3。
5. 附件与字段持久化
附件统一保存 OSS 对象引用,不复制文件实体。主业务与附件关联表分别为 BIZ_OPERATION_DOCK_PROBLEM、BIZ_OPERATION_DOCK_PROBLEM_FILE、BIZ_OPERATION_DOCK_TRANSFER、BIZ_OPERATION_DOCK_TRANSFER_FILE。附件组和顺序由 file_group 与 sort_no 保存;问题记录的组为 PROBLEM、RESULT,三权记录的组为 TRANSFER、AGREEMENT。
浏览器上传组件按最大 50MB、格式 doc/docx/xls/xlsx/ppt/pptx/txt/pdf 校验,超限上传被拒绝并提示,页面不常驻展示大小与格式提示;后端通过 OSS 查验文件存在,并按小写后缀校验格式,兼容 OSS 后缀带前导点的返回值。提交时后端再次验证两组附件均非空。实际字段、物理类型、空值、默认值和索引以数据库设计的 MCP 回读矩阵为准。
6. 接口异常与边界
| 场景 | 服务端处理 |
|---|---|
| 必填业务字段或附件缺失 | 抛出业务异常,事务内不产生部分提交 |
| 线路不存在或不是 LINE 节点 | 拒绝保存或提交 |
| OSS 文件标识格式无效、文件不存在或后缀不支持 | 拒绝关联并提示对应附件组 |
非创建人且无 manage 权限的人员编辑/删除 | 拒绝操作 |
| 修改或删除状态不允许的记录 | 草稿或退回以外的记录拒绝修改;仅草稿可删除 |
| 不是当前办理人或请求退回到非固定节点 | 流程服务拒绝处理 |
| 流程启动失败 | 回滚业务提交与附件关联 |
7. 需求追踪与验证状态
需求编号、用户答复和同级基线推断只在需求分析维护。流程、状态、权限、分页、文件和事务的真实验证记录及尚未覆盖范围只在测试报告维护。当前测试由具备模块访问权限的开发账号执行,其他角色的权限负向、三权退回、导出和跨单位可见范围尚未通过真实角色切换验证。