Files
risk-management-process/docs/前期讨论/003-基于前端原型的业务与技术推断报告.md
2026-08-13 08:51:04 +08:00

133 KiB
Raw Permalink Blame History

风险防控管理系统业务与技术需求分析推断报告

文档版本:V0.5(接口字段契约完善稿)
分析日期:2026-08-13
主要依据:deprecated/build/20260812 prototype 静态原型
参考输入:docs/前期讨论/001-后端API文档-用户管理相关.mddocs/前期讨论/002-服务风险防控-工作流程-V2.pos

1. 文档目的与结论

本文档将静态原型还原为可评审的业务与技术需求,覆盖页面、角色、业务流程、字段、接口和后端约束。20260812 原型共 41 个画板,其中 1 个名称带“备份”的画板属于页面状态变体;按业务能力合并后,可归纳为 18 类页面、12 个主要流程步骤、7 类业务角色。

系统核心业务是将线下取得的 12398 工单导入系统,关联 95598 业务处理信息,由服务监督主管判定主责或协查并派工。派工后服务监督员可以先行填报部分调查信息并保存草稿,但主责工单必须等待首联及全部初查完成、协查工单必须等待全部初查完成后才能提交。两级审核完成后,业务部主任基于派工阶段持久化的责任类型分支:主责进入回访,协查直接进入 11 调查报告编写;报告页面以汇总调查及回访信息并确认下载为主要交互。

原型能够证明页面展示、操作入口和大部分表单字段,但不能证明数据库结构、全部枚举值、必填规则、接口路径、异常处理、状态码和数据权限。本报告对这些内容采用以下标记:

标记 含义
已确认 原型或已有接口文档直接展示,可作为当前需求基线
参考补充 来自前期流程图,仅作需求评审输入,需业务确认
技术建议 为保证系统可实现、可审计而提出的设计建议
待确认 现有材料存在缺口或冲突,不能直接作为开发定论

1.1 版本变化

V0.5 主要变化:

  • 将第 8 章重排为 8.1~8.12 连续章节,修复接口目录合并后遗留的跳号问题。
  • 所有目录接口统一补充请求字段定义和响应字段定义,明确字段位置、类型、必填条件及业务含义。
  • 保留请求与响应示例作为字段表的补充,并修正登录返回结构及章节交叉引用。

V0.4 主要变化:

  • 为接口补充可直接用于联调的请求头、请求字段、响应字段、分页、错误响应和状态变更约定。
  • 明确主责/协查派工、前置任务校验及业务部主任审核分支在接口层的表达方式。
  • 补充联调枚举、版本字段、幂等键、文件引用和异步任务查询规则。

V0.3 主要变化:

  • 将 41 张画板编号和名称整体切换到 20260812 原型,删除旧原型中的重复/备份编号判断。
  • 固化服务监督主管判定主责/协查并派工、服务监督员先行填报及分支前置条件。
  • 补入业务部主任审核弹窗和完整审核页,并明确协查审核通过后直接进入 11 调查报告编写。
  • 将报告需求由“在线编辑并提交”调整为“汇总业务信息、确认生成并受权下载”,同时统一回访结果枚举和条件附件规则。

2. 分析范围与证据

2.1 分析范围

  • 登录与当前用户识别;
  • 12398 工单文件导入、预览、确认和批次查询;
  • 工单查询、待办和工单详情;
  • 服务监督主管判定主责/协查并派工、智能派工、回访分派;
  • 首联、事件初查、调查结果填报;
  • 服务监督主管审核、业务部主任审核;
  • 回访结果、答复书及送达凭证;
  • 调查报告、成果物输出;
  • 派工规则、流程时限和统计分析;
  • 角色权限、状态流转、审计、幂等、并发、文件与安全约束。

2.2 不在本稿中定论的内容

  • 技术栈、部署架构、中间件和数据库产品;
  • 组织机构与岗位编码的最终数据模型;
  • 与 12398、95598 外部系统的在线对接方式;
  • 智能派工、智能写作和“五级溯源”的算法实现;
  • 统计指标口径、绩效考核与整改闭环的详细规则;
  • 法定保存期限、附件大小和文件格式白名单的具体数值。

2.3 证据边界

  1. 原型的日期、姓名、电话、工单号和数量均为示例数据,不应固化为业务规则。
  2. 画板间没有足够完整的可执行跳转链,流程顺序主要由页面名称、按钮、表单内容及前期流程图交叉还原。
  3. “备份”画板只用于识别方案差异,不应直接形成重复页面或重复接口。
  4. 001-后端API文档-用户管理相关.md 只确认登录及用户查询相关接口,不代表工单业务接口已经存在。
  5. 20260812 原型替代 20260811 原型作为当前页面和字段基线;旧原型仅用于识别变化,不再作为编号或页面状态依据。
  6. 已确认的主责/协查流程规则优先于画板中的静态展示。若画板仍同时展示不适用于协查的首联或回访字段,应视为设计待同步,而不能据此改变业务分支。

3. 业务范围与领域对象

3.1 核心领域对象

对象 说明 关键关系
导入批次 ImportBatch 一次 Excel/CSV 预览和确认导入记录 包含多条导入行,成功后产生或更新工单
12398 工单 WorkOrder 系统的核心业务聚合 关联客户、分类、任务、95598 记录、附件、报告和审计轨迹
95598 处理记录 ServiceRecord 与 12398 工单关联的历史业务处理信息 一张 12398 工单可关联多条记录、录音和转译文本
流程实例 ProcessInstance 记录工单当前环节、状态、时限和流程版本 一张工单原则上对应一个有效流程实例
待办任务 Task 分派到角色、部门、岗位或人员的可执行工作项 支持并行初查、单人首联、审核和回访任务
派工记录 Dispatch 服务监督主管的主责/协查判定,以及首联、初查、监督员和提级督办选择 按责任类型产生对应待办任务,并向服务监督员开放调查填报
首联记录 FirstContact 客服班组首次联系客户的结果 属于一张工单及一个首联任务
初查记录 PreliminaryInvestigation 被选部门对事件的初步调查结果 多部门可并行,一任务一记录
全面调查 Investigation 服务监督员可在派工后先行填报并保存草稿,待前置任务完成后提交完整调查结果 主责依赖首联及全部初查完成;协查依赖全部初查完成
审核记录 Review 服务监督主管、业务部主任的审核结论 保留审核层级、结论、意见及驳回去向
回访记录 Callback 主责工单的客服回访及服务监督员结果填报 “不同意或客户主动要求”触发附件要求;协查工单不进入回访
调查报告 InvestigationReport 基于调查及回访信息形成的报告版本和输出记录 最新原型以“确认下载”为主要动作;是否允许在线编辑或智能生成待确认
成果物 Deliverable 办结输出物及其版本 与报告、附件和办结动作关联
规则配置 RuleConfig 智能派工规则和流程时限配置 必须版本化并记录生效范围

3.2 业务关系要点

  • 一个导入批次包含多条导入行;导入行应独立记录成功、失败和失败原因。
  • 一张 12398 工单可关联多条 95598 处理记录。
  • 一张工单可并行产生多个事件初查任务,但首联任务原则上为单选部门下的单个有效任务。
  • 服务监督员首次指定后,后续调查、回访结果、报告和成果物环节原则上保持同一责任人(参考补充,待确认);协查工单不产生回访任务,但仍由服务监督员完成报告。
  • 审核、驳回和重新提交必须新增记录,不覆盖历史版本。

4. 页面梳理

4.1 页面结构总览

页面域 逻辑页面 主要能力 主要角色
公共 登录 账号、密码、验证码登录 全部用户
导入 工单导入、导入预览、导入明细 文件选择、批次号、预览、确认、批次历史 服务监督主管
查询 工单查询、工单详情 多条件查询、分页、详情查看 6 类业务角色
待办 待办列表、分类统计 按环节查看个人/岗位待办 除纯查询人员外的业务角色
派工 主管派单、智能派工 初查多选、首联单选、监督员、提级督办 服务监督主管
首联 首联分派、首联填报 分派班组/人员,填写首次联系信息 客服部主管、客服部班长/成员
调查 初查填报、全面调查填报 初查内容、调查问卷和处置结果 调查部门、服务监督员
审核 调查审核、业务审核 同意/不同意、驳回理由、按责任类型确定下步分支 服务监督主管、业务部主任
回访 回访分派、回访填报、结果确认 班组分派、回复信息、同意/不同意结果、条件附件 客服部主管、客服班组、服务监督员
输出 调查报告、成果物 汇总调查/回访信息、条件附件、确认下载、成果物输出 服务监督员
配置 智能派工规则、流程时限 规则维护、环节时限维护 服务监督主管或配置管理员
分析 统计分析 办结统计与展示 有菜单权限人员

4.2 41 个原型画板清单

原型编号 画板名称 页面状态/用途 处理结论
1-1 登录页2 登录 有效页面
1-2 服务监督主管-首页(工单导入)导入预览 导入文件后的行级预览 有效页面状态
1-3 服务监督主管-首页(工单导入)导入明细 历史批次列表 有效页面状态
1-4 服务监督主管-工单处理(审核弹窗) 主管审核弹窗:审核结果、驳回理由、回访分派 有效页面状态;回访分派的实际生效时点待统一
1-5 服务监督主管-工单处理(待审核) 主管待审核列表 有效页面状态
1-6 服务监督主管-规则配置-智能派工规则配置 智能派工规则入口 页面内容待补齐
1-7 服务监督主管-规则配置-流程时限管理 整体及环节时限配置 有效页面
1-8 服务监督主管-统计分析 统计分析入口 指标和图表待补齐
1-9 服务监督主管-工单处理(待审核) 全量调查结果审核长页面 有效长页面
1-10 服务监督主管-工单处理(待分配派工) 待派工列表和派工入口 有效页面状态
1-11 服务监督主管-待分派(确定标题版) 主管派工详情 有效长页面;业务上由服务监督主管完成主责/协查判定和派工
1-12 服务监督主管-工单处理 主管任务总览 有效页面
1-13 服务监督人员-待办工单(调查结果填报)业务类型 调查表单简化/业务类型方案 与 1-21 的适用条件待确认
1-14 服务监督人员-待办工单(调查报告编写-不同意) 报告确认下载及条件附件状态 有效条件分支
1-15 服务监督人员-待办工单(调查报告编写-同意) 报告确认下载状态 有效页面状态
1-16 服务监督人员-待办工单(成果物输出) 成果物输出 有效长页面;成果物清单仍待定义
1-17 服务监督人员-待办工单(处理工单)事件类型(回访结果填写)不同意上传 “不同意或客户主动要求”附件状态 有效条件分支
1-18 业务部主任-待办工单(审核)(弹窗) 二级审核弹窗:审核结果、驳回理由、回访分派 有效页面状态;协查通过后业务上不应要求回访分派
1-19 业务部主任-待办工单(审核) 二级审核完整详情 有效长页面
1-20 服务监督人员-待办工单(处理工单)事件类型(回访结果填写) 回访结果完整表单 有效长页面
1-21 服务监督人员-待办工单(调查结果填报) 全面调查表单 有效长页面
1-22 服务监督人员-待办工单 调查、报告、回访、成果物待办总览 有效页面
1-23 总值班经理待办工单-待调查(处理) 初查内容填报 有效页面
1-24 智能运营团队-待办工单-待调查(处理) 初查内容填报 有效页面
1-25 客服部主管-待办工单-待调研 客服部门初查 有效页面
1-26 客服部班长-待办工单备份 首联填写状态 页面状态有效,名称应去掉“备份”
1-27 业务部主任-待办工单 业务审核列表 有效页面
1-28 总值班经理-待办工单 初查待办列表 有效页面
1-29 智能运营团队-待办工单 初查待办列表 有效页面
1-30 客服部班长-待办工单 首联待办列表 有效页面
1-31 客服部主管-待办工单-回访分派 回访任务选择班组/人员 有效页面
1-32 客服部主管-待办工单-首联分派 首联任务选择班组/人员 有效页面
1-33 客服部主管-待办工单 任务总数、首联分派、回访分派入口 有效页面
1-34 业务部主任 工单查询 有效页面,名称需规范化
1-35 总值班经理-工单查询 工单查询 有效页面
1-36 智能运营团队-工单查询 工单查询 有效页面
1-37 客服部班长-工单查询 工单查询 有效页面
1-38 客服部主管-工单查询 工单查询 有效页面
1-39 服务监督人员-工单查询 工单查询 有效页面
1-40 服务监督主管-工单查询 工单查询 有效页面
1-41 服务监督主管-首页(工单导入) 导入入口 有效页面

4.3 通用列表需求

工单查询页在各角色间基本一致,应实现为同一页面组件加数据权限,而不是复制六套接口。查询条件包括:12398 工单编号、工单环节、信息来源、客户致电 12398 日期、转办日期、客户名称、联系方式、用户地址、客户所在地区(省)、省份、事件类型、转办事项分类、问题分类。

列表至少展示:序号、12398 工单编号、工单状态/环节、信息来源、客户致电日期、转办日期、客户名称、联系方式、用户地址、客户所在地区及操作。列表必须服务端分页,排序字段使用白名单,手机号按权限脱敏。

待办列表应与查询列表区分:查询页返回用户可见工单,待办页只返回当前用户可办理的有效任务。任务统计卡片必须与相同筛选口径下的列表一致。

5. 角色与权限梳理

5.1 业务角色

角色 主要职责 原型可见菜单 关键操作
服务监督主管 导入、主责/协查判定与派工、调查一级审核、规则与时限管理 工单导入、工单查询、工单处理、规则配置、统计分析 预览/确认导入、判定责任类型并派工、审核、维护配置;原型显示的回访分派生效时点待统一
服务监督人员 全面调查、回访结果、调查报告、成果物 工单查询、待办工单 派工后先行填报调查草稿,满足前置条件后提交;填回访结果、上传材料、确认下载报告、输出成果物
客服部主管 将首联或回访任务分派到本部门班组/人员,也可承担部门初查 工单查询、待办工单 首联分派、回访分派、初查提交
客服部班长/成员 执行首联或客户回访 工单查询、待办工单 填写首联时间、首联工单号、首联内容;回访表单待进一步确认
智能运营团队 执行被派发的事件初查 工单查询、待办工单 填写初查内容并提交
总值班经理/团队 执行被派发的事件初查 工单查询、待办工单 填写初查内容并提交
业务部主任 对调查结果进行第二级业务审核,并依据前序责任类型触发后续分支 工单查询、待办工单 审核同意/不同意并填写意见;主责进入回访,协查直接进入调查报告
系统任务(建议) 导入解析、时限计时、提醒、统计、智能派工/写作 无人工菜单 异步处理、规则计算、通知和审计

原型出现 7 个业务称谓,但“客服部班长/成员”可建模为同一执行角色下的岗位或人员范围;“智能运营团队”和“总值班经理”更适合作为可被派工的组织/岗位,而非写死在流程代码中。

5.2 权限矩阵

能力 监督主管 监督人员 客服主管 客服班组 智能运营 总值班 业务主任
导入工单 - - - - - -
查询可见工单
查看完整客户联系方式 按权限 按任务 按任务 按任务 按任务 按任务 按审核任务
主管派工 - - - - - -
首联/回访班组分派 - - - - - -
首联填报 - - 可选 - - -
初查填报 - - - -
全面调查填报 - - - - - -
调查一级审核 - - - - - -
调查二级审核 - - - - - -
回访结果填报/材料 - 分派 执行待确认 - - -
报告和成果物 - - - - - -
规则与时限 写或配置管理员 - - - - - -
统计分析 按菜单权限 按菜单权限 按菜单权限 按菜单权限 按菜单权限 按菜单权限 按菜单权限

5.3 数据权限原则

  • 服务监督主管:可查看其管理范围内全部工单和任务。
  • 执行角色:默认只查看本人、本岗位或本部门被分派的工单;跨部门信息按任务需要开放。
  • 查询权限与办理权限分离;能查看工单不代表可以提交当前任务。
  • 联系方式、地址、录音、转译文本和附件属于敏感业务数据,应分别控制查看、播放、下载和导出权限。
  • 所有写操作必须以服务端当前任务所有者、角色、状态和版本为准,不能只依赖前端隐藏按钮。

6. 业务流程

6.1 主流程

flowchart TD
    A["01 线下导入12398工单"] --> B["服务监督主管判定主责或协查并派工"]
    B -. "同时开放" .-> H["05 服务监督员可先行填报并保存调查草稿"]
    B --> R{"服务监督主管判定结果"}
    R -->|"主责"| C["02 客服主管分派首联"]
    C --> D["03 客服班组完成首联"]
    R -->|"主责"| E["04 多部门并行事件初查"]
    R -->|"协查"| E
    D --> F{"主责:首联及全部初查均完成"}
    E -->|"主责"| F
    E -->|"协查"| G{"协查:全部初查均完成"}
    H -. "只能在对应前置条件满足后提交" .-> S["05 提交全面调查"]
    F --> S
    G --> S
    S --> I["06 服务监督主管审核"]
    I -->|"不通过"| H
    I -->|"通过"| J["07 业务部主任审核"]
    J -->|"不通过"| H
    J -->|"通过"| Q{"按服务监督主管前序判定分支"}
    Q -->|"主责"| K["08 客服主管分派回访"]
    Q -->|"协查"| O["11 调查报告编写"]
    K --> L["09 客服班组回访"]
    L --> M["10 服务监督员填报回访结果"]
    M -->|"不同意或客户主动要求"| N["上传答复书和送达凭证"]
    M -->|"同意"| O["11 调查报告编写"]
    N --> O
    O --> P["12 成果物输出并办结"]

6.2 流程步骤明细

步骤 操作人 输入 操作/输出 进入下一步条件
01 导入 服务监督主管 Excel/CSV、导入批次 预览校验,确认生成工单 批次确认成功且行级校验通过
01A 判定派工 服务监督主管 工单、95598 记录 判定主责/协查,选择初查部门、首联部门、监督员、提级督办;同时向服务监督员开放调查填报 派工事务成功;服务监督员可开始填报和保存草稿
02 首联分派 客服部主管 首联任务 选择本部门班组/人员 目标人员有效且属于授权范围
03 班组首联 客服班组 客户及工单信息 填首联时间、首联工单号、首联内容 首联任务提交完成
04 事件初查 被派部门主管/岗位 工单及 95598 记录 填写初查内容 每个并行初查任务均提交完成
05 全面调查 服务监督人员 工单信息,以及办理过程中逐步形成的首联和初查信息 派工后可先行填报并保存部分信息;前置任务完成后提交完整调查表 主责:首联及全部初查完成;协查:全部初查完成;表单校验通过
06 主管审核 服务监督主管 调查版本 同意或驳回并填写意见 同意进入二级审核;驳回重开调查
07 业务审核 业务部主任 已通过一级审核的调查版本、服务监督主管前序判定结果 同意或驳回并填写意见 不同意则重开调查;同意且为主责进入回访,同意且为协查直接进入调查报告
08 回访分派 客服部主管 主责工单的回访任务 选择本部门班组/人员 仅主责工单进入;目标人员有效
09 班组回访 客服班组 主责工单的联系信息、处理结果 记录客户联系及原始回访情况 回访执行任务完成
10 回访结果 服务监督人员 主责工单的回访执行记录 填回复人、时间、电话、回复情况、结果 “不同意或客户主动要求”分支附件齐全
11 调查报告 服务监督人员 调查数据;主责还包括回访及条件附件 核对报告上下文并确认生成/下载 主责在回访结果完成后进入;协查在业务部主任审核通过后直接进入;报告输出版本生成成功
12 成果物/办结 服务监督人员 报告和附件 汇总、输出、确认办结 必备成果物齐全且不存在未完成任务

6.3 主责与协查分支

流程分支规则如下:

  • 服务监督主管负责判定工单属于主责还是协查,并完成派工;该判定结果必须随流程实例持久化,供后续分支使用。
  • 主责工单同时产生首联任务、一个或多个并行事件初查任务,并向指定服务监督员开放全面调查填报。
  • 协查工单从服务监督主管派工直接进入 04 多部门并行事件初查,不产生首联任务;同时向指定服务监督员开放全面调查填报。
  • 服务监督员在派工完成后即可先行填写部分调查信息并保存草稿,无需等待首联或初查结束。
  • 全面调查的“提交”动作受前置条件约束:主责必须等待首联及全部初查完成;协查必须等待全部初查完成。前置条件未满足时只能继续编辑或保存草稿。
  • 服务监督主管审核通过后进入业务部主任审核。业务部主任审核通过时,系统读取服务监督主管在派工阶段作出的判定:主责进入 08~10 回访流程,协查直接进入 11 调查报告编写。
  • 事件初查部门可多选;主责工单的首联部门单选。

6.4 建议状态模型

不建议只使用原型中的“待分派/处理中/已结束”三个展示状态驱动流程。建议拆分“工单生命周期状态”和“任务环节状态”:

类型 建议状态
工单生命周期 IMPORTED 已导入、DISPATCHING 待派工、PROCESSING 办理中、REVIEWING 审核中、CALLBACK 回访中、REPORTING 报告中、CLOSED 已办结、CANCELLED 已取消
任务状态 PENDING 待领取/待办理、ASSIGNED 已分派、IN_PROGRESS 办理中、SUBMITTED 已提交、APPROVED 已通过、REJECTED 已驳回、COMPLETED 已完成、CANCELLED 已取消
流程环节 DISPATCHFIRST_CONTACT_ASSIGNFIRST_CONTACTPRELIMINARY_INVESTIGATIONINVESTIGATIONSUPERVISOR_REVIEWBUSINESS_REVIEWCALLBACK_ASSIGNCALLBACKCALLBACK_RESULTREPORTDELIVERABLE

工单状态由有效任务和流程实例聚合计算,不允许客户端直接提交任意目标状态。

7. 字段梳理

7.1 字段约定

  • ID 建议使用系统内部不可猜测标识;业务编号另设唯一字段。
  • 日期使用 YYYY-MM-DD,日期时间使用带时区的 ISO 8601;存储使用统一时区,展示按用户时区转换。
  • 是否类字段使用布尔或明确枚举,不使用自由文本。
  • 所有枚举保存稳定编码,界面显示名称通过字典返回。
  • “必填”在原型中未用星号完整表达,以下仅将流程成立所需字段标为“建议必填”,最终以业务评审为准。

7.2 登录与用户上下文

字段 建议类型 必填 来源/说明
username string(64) 登录账号
password string 只用于认证请求,不落业务日志
code string(16) 验证码
uuid string(64) 验证码唯一标识
userId int64/string 系统 当前用户标识
nickName string(64) 系统 页头显示名称
deptId int64/string 系统 数据权限和派工候选范围
roleIds/postIds array 系统 菜单与操作授权

7.3 导入批次与导入行

字段 建议类型 必填 说明
batchId string 系统 导入批次内部标识
batchNo string(64) 原型示例 20260806-B01,需唯一性规则
fileId/fileName string 原始导入文件
importMode enum EXCEL/CSV
status enum 系统 上传中、预览成功、部分失败、已确认、已取消
totalCount/successCount/failureCount integer 系统 批次数量统计
importedBy/importedAt string/datetime 系统 操作人和时间
previewToken string 系统 预览到确认之间的短期凭证,防止文件被替换
rowNo integer 系统 原文件行号
rowStatus enum 系统 有效、重复、错误、待确认
errorCode/errorMessage string 行级错误原因

7.4 12398 工单基础信息

字段 建议类型 必填 说明
workOrderId string 系统 内部主键
workOrderNo12398 string(64) 12398 工单编号,建议唯一
orderStatus enum 系统 工单生命周期状态
currentStage enum 系统 当前流程环节
sourceCode enum 信息来源,如 12398 电话
customerCalledAt date/datetime 客户致电 12398 日期/时间
transferredAt date/datetime 转办日期/时间
customerName string(128) 建议 客户名称
contactPhone string(32) 建议 联系方式,密文或受控存储
customerAddress string(512) 用户地址,敏感字段
customerRegion string(128) 客户所在地区(省)
provinceCode string(32) 建议 省份稳定编码
eventTypeCode string(32) 建议 事件类型
transferCategoryCode string(32) 建议 转办事项分类
problemCategoryCode string(32) 建议 问题分类
responsibilityType enum 由服务监督主管在派工时判定:PRIMARY 主责 / ASSIST 协查;后续业务审核分支以该值为准
escalationFlag boolean 是否提级督办
processVersion integer 系统 流程/乐观锁版本
createdAt/updatedAt datetime 系统 审计时间

7.5 95598 业务处理信息

字段 建议类型 必填 说明
serviceRecordId string 系统 记录标识
serviceOrderNo95598 string(64) 建议 95598 工单编号
acceptanceContent text 建议 受理内容
businessTypeCode string(32) 业务类型
acceptedAt datetime 受理时间
powerSupplyOrgId/name string 供电单位编码及名称
recordingFileId string 录音文件引用
recordingDuration integer 录音时长(秒)
transcriptText text 转译文本
sequenceNo integer 系统 同一工单内排序

7.6 派工信息

字段 建议类型 必填 说明
dispatchId string 系统 派工记录标识
workOrderId string 所属工单
responsibilityType enum 服务监督主管在派工时判定主责/协查,并持久化到流程实例
preliminaryDeptIds array 初查部门,多选且去重
firstContactDeptId string 主责必填 首联部门,单选;协查应为空
supervisorUserId string 服务监督员,单选
escalationDeptIds array 提级督办部门多选
dispatchMode enum MANUAL/SMART
ruleVersion integer 智能派工时 命中的规则版本
dispatchedBy/dispatchedAt string/datetime 系统 派工人和时间

7.7 首联与初查

对象 字段 建议类型 必填 说明
首联分派 assigneeDeptId string 客服主管所在部门
首联分派 assigneeUserId/postId string 本部门班组人员或岗位
首联 firstContactAt datetime 首联时间
首联 firstContactOrderNo string(64) 首联工单号
首联 firstContactContent text 首联内容
初查 taskId string 一任务一初查,保证并行结果可追踪
初查 preliminaryContent text 原型中的“初查内容”
通用 submittedBy/submittedAt string/datetime 系统 提交审计字段

7.8 全面调查

字段 建议类型 建议必填 说明
investigationId/version string/integer 系统 每次提交生成不可变版本
acceptedContent12398 text 原型业务类型方案中展示“导入的12398投诉内容”
externalExposureRisk boolean 是否存在国家级媒体、党政机关、监管机构等外部渠道风险
internalAppealIssued boolean 是否派发内部诉求工单
customerAppealSummary text 客户诉求概况
escalationReason text 客户升级主要原因
investigationProcess text 本期诉求调查过程
localResponsibility boolean 条件 是否本单位事项
handlingSituation text 条件 办理情况
accountable boolean 条件 是否有责
hasHandlingBasis boolean 条件 是否有处理依据
handlingMethod text 条件 处理方式
handlingResult text 条件 处理结果
investigationSummary text 待确认 原型出现独立“调查结果”,与上述字段可能重复
draftFlag boolean 系统 是否草稿;原型未显示“暂存”按钮,建议补充

“是否本单位事项”之后的字段在 1-21 完整调查页出现、在 1-13 业务类型方案中未出现,可能是按事件类型或责任判定动态展示,需确认显示条件及条件必填规则。

7.9 审核、回访、报告与成果物

对象 字段 建议类型 必填/条件
审核 reviewLevel enum 是:主管审核/业务审核
审核 reviewResult enum 是:同意/不同意
审核 rejectReason text 不同意时必填
审核 reviewedBy/reviewedAt string/datetime 系统生成
回访分派 callbackDeptId string
回访分派 assigneeUserId/postId string 客服主管二次分派时必填
回访 respondentName string(64) 原型显示“回复人”
回访 repliedAt datetime
回访 replyPhone string(32) 是,敏感字段
回访 replySituation text
回访 callbackResult enum 是;最新原型统一为 AGREE 同意 / DISAGREE_OR_CUSTOMER_REQUEST 不同意或客户主动要求
附件 responseLetterFileIds array 不同意或客户主动要求时至少 1 个答复书
附件 deliveryProofFileIds array 不同意或客户主动要求时至少 1 个送达凭证
报告 reportId/version string/integer 系统
报告 sourceInvestigationVersion string/integer 是;锁定生成报告所依据的调查版本
报告 sourceCallbackVersion string/integer 主责必填;协查为空
报告 outputFileId string 确认生成后返回的可控下载文件
报告 outputStatus enum 待生成、生成中、可下载、生成失败、已确认
报告 generationMode enum 模板生成/智能辅助;是否开放在线编辑待确认
成果物 deliverableType/fileId enum/string 待确认具体成果物类型
办结 closedBy/closedAt/closeReason string/datetime/text 系统/条件

20260812 原型未提供独立富文本报告编辑器,而是展示调查信息、主责工单的回访信息及条件附件,并通过“确认下载”输出报告。因此 reportContent 不应在当前阶段被直接定为前端必填字段;后端可内部保存结构化快照或模板渲染内容,但其格式属于技术方案而非原型已确认需求。

7.10 规则与时限

字段 建议类型 说明
configId/configVersion string/integer 配置标识和版本
totalLimitMinutes integer 整体时限,原型示例 188 分钟不能视为正式值
stageCode enum 办理派工、首联、事件调查、调查审核、回访、调查报告、编写提交等
stageLimitMinutes integer 环节时限,必须为正整数
smartDispatchRule json/rule DSL 智能派工条件和结果,原型未提供字段
effectiveFrom/effectiveTo datetime 生效区间
status enum 草稿、启用、停用
changedBy/changedAt/changeReason string/datetime/text 配置审计

8. 接口梳理

8.1 接口约定

现有后端文档采用 Bearer Token、AjaxResultTableDataInfo。为保持兼容,本报告沿用这些返回结构;新业务接口路径是建议契约,最终应与后端统一前缀和命名规范后进入 OpenAPI。

通用约定:

  • 除验证码和登录外,接口请求头携带 Authorization: Bearer <token>
  • 分页统一使用 pageNumpageSize;响应使用 totalrowscodemsg
  • 写接口携带 requestIdIdempotency-Key,涉及状态变更时携带 version
  • 业务校验失败返回稳定业务错误码,不依赖提示语解析。
  • 列表只返回摘要;详情接口按权限返回敏感字段和附件权限。

8.2 接口目录

接口目录只用于定位,不替代字段契约。每个接口的请求字段定义、响应字段定义和 JSON 示例见 8.5~8.11 节。

8.2.1 已有认证与用户接口

方法 路径 用途 状态
GET /captchaImage 获取验证码和 uuid 已有文档确认
POST /login 账号、密码、验证码登录 已有文档确认
GET /system/user/profile 当前用户信息 已有文档确认
GET /system/user/list 用户候选查询 已有文档确认,业务派工应增加数据范围过滤
GET /system/user/deptTree 部门树 已有文档确认
GET /system/user/{userId} 用户详情 已有文档确认
PUT /system/user/profile/updatePwd 修改密码 已有文档确认

8.2.2 导入接口

编号 方法 建议路径 用途 备注
IMP-01 GET /risk/import-batches/template 下载导入模板 返回文件流及模板版本
IMP-02 POST /risk/import-batches/preview 上传并解析 Excel/CSV multipartfile、batchNo;返回 previewToken、统计、行级预览
IMP-03 GET /risk/import-batches/{previewToken}/rows 分页查看预览行 pageNum/pageSize/rowStatus
IMP-04 POST /risk/import-batches/confirm 确认导入 previewToken、batchNo、requestId;返回 batchId 和成功/失败数量
IMP-05 GET /risk/import-batches 导入批次列表 时间、批次号、人员、状态、分页
IMP-06 GET /risk/import-batches/{batchId} 批次详情 批次统计和文件信息
IMP-07 GET /risk/import-batches/{batchId}/rows 导入结果行明细 行状态、错误码、关联工单

8.2.3 工单查询与详情接口

编号 方法 建议路径 用途 备注
WO-01 GET /risk/work-orders 权限范围内工单查询 原型全部查询条件、分页、排序
WO-02 GET /risk/work-orders/{workOrderId} 工单基础详情 基础信息、当前环节、权限动作
WO-03 GET /risk/work-orders/{workOrderId}/service-records 95598 处理信息 列表、录音授权、转译文本
WO-04 GET /risk/work-orders/{workOrderId}/process 流程视图 当前节点、并行任务、历史节点、时限
WO-05 GET /risk/work-orders/{workOrderId}/timeline 操作轨迹 派工、提交、审核、驳回、附件、办结事件
WO-06 GET /risk/work-orders/{workOrderId}/allowed-actions 当前用户可执行动作 动作编码及所需版本;也可并入详情响应

8.2.4 待办与派工接口

编号 方法 建议路径 用途 备注
TASK-01 GET /risk/tasks 当前用户待办列表 stage/status/工单条件/分页
TASK-02 GET /risk/tasks/summary 待办统计卡片 各环节数量,与列表同口径
TASK-03 GET /risk/tasks/{taskId} 待办上下文 工单摘要、表单数据、任务版本、允许动作
DSP-01 GET /risk/work-orders/{id}/dispatch-candidates 派工候选 初查部门、首联部门、监督员、督办部门
DSP-02 POST /risk/work-orders/{id}/smart-dispatch-suggestion 获取智能派工建议 工单版本;返回建议和规则解释,不直接落单
DSP-03 POST /risk/work-orders/{id}/dispatch 确认人工/智能派工 主责/协查、部门、监督员、督办、version、requestId
DSP-04 POST /risk/tasks/{taskId}/assign 客服主管分派班组/人员 assigneeUserId/postId、version
DSP-05 POST /risk/work-orders/{id}/callback-department 审核环节确定主责工单的回访承接部门 callbackDeptId、reviewTaskId、version;具体由一级还是二级审核生效待确认

8.2.5 办理与审核接口

编号 方法 建议路径 用途 备注
ACT-01 PUT /risk/tasks/{taskId}/draft 保存草稿 formType、formData、version;技术建议
ACT-02 POST /risk/tasks/{taskId}/first-contact/submit 提交首联 时间、工单号、内容、version
ACT-03 POST /risk/tasks/{taskId}/preliminary-investigation/submit 提交初查 preliminaryContent、version
ACT-04 GET /risk/tasks/{taskId}/investigation-context 获取全面调查上下文 派工后即可调用;返回已形成的首联/初查、历史调查版本和 submitReady/未完成前置任务
ACT-05 POST /risk/tasks/{taskId}/investigation/submit 提交全面调查 第 7.8 节字段、version;主责校验首联及全部初查,协查校验全部初查
ACT-06 POST /risk/tasks/{taskId}/supervisor-review 主管审核 result、rejectReason、investigationVersion、version
ACT-07 POST /risk/tasks/{taskId}/business-review 业务审核 result、rejectReason、investigationVersion、version
ACT-08 POST /risk/tasks/{taskId}/callback/submit 提交班组回访 原始回访字段,具体字段待确认
ACT-09 POST /risk/tasks/{taskId}/callback-result/submit 提交回访结果 回复信息、结果、附件 fileIds、version
ACT-10 GET /risk/tasks/{taskId}/report-context 获取报告确认上下文 返回责任类型、锁定的调查版本、主责回访版本、附件及当前输出状态
ACT-11 POST /risk/tasks/{taskId}/report/confirm 确认生成报告 模板版本、调查/回访数据版本、version、requestId;可同步返回 reportId,或异步返回 jobId
ACT-12 GET /risk/reports/{reportId}/download 受权下载已生成报告 返回受控文件流或短期下载地址,不改变流程状态
ACT-13 POST /risk/tasks/{taskId}/deliverables/submit 提交成果物并申请办结 deliverables、version
ACT-14 POST /risk/work-orders/{id}/close 确认办结 version、requestId;仅在所有前置条件满足时允许

8.2.6 文件、字典、配置和统计接口

编号 方法 建议路径 用途
FILE-01 POST /risk/files 上传录音、答复书、送达凭证或成果物,返回 fileId
FILE-02 GET /risk/files/{fileId} 受权下载/播放,建议返回短期签名地址或受控流
FILE-03 DELETE /risk/files/{fileId} 删除尚未绑定且由当前用户上传的临时文件
DICT-01 GET /risk/dictionaries/{type} 信息来源、省份、事件类型、事项分类、问题分类等
CFG-01 GET /risk/config/sla 获取当前时限配置和版本
CFG-02 PUT /risk/config/sla 保存并发布整体/环节时限
CFG-03 GET /risk/config/dispatch-rules 获取智能派工规则
CFG-04 PUT /risk/config/dispatch-rules 保存并发布规则版本
ANA-01 GET /risk/analytics/overview 统计概览;指标口径待定义
ANA-02 GET /risk/analytics/closed-orders 办结工单统计与明细
JOB-01 GET /risk/jobs/{jobId} 查询导入、报告生成等异步任务进度

8.3 页面—接口映射

页面 读接口 写接口
登录 /captchaImage /login
工单导入 IMP-01、IMP-05 IMP-02、IMP-04
导入预览/明细 IMP-03、IMP-06、IMP-07 IMP-04
工单查询 WO-01、DICT-01
工单详情 WO-02WO-06 按允许动作进入对应接口
主管处理列表 TASK-01、TASK-02
派工 WO-02、WO-03、DSP-01 DSP-02、DSP-03
首联/回访分派 TASK-03、候选用户/岗位 DSP-04、DSP-05
首联/初查 TASK-03、WO-03 ACT-01ACT-03
全面调查 ACT-04、WO-02、WO-03 ACT-01、ACT-05
两级审核 TASK-03、历史调查版本 ACT-06、ACT-07
回访结果 TASK-03、附件读取 FILE-01、ACT-09
报告/成果物 ACT-10、报告输出状态、流程上下文 ACT-11ACT-14、FILE-01
时限/规则配置 CFG-01、CFG-03 CFG-02、CFG-04
统计分析 ANA-01、ANA-02

8.4 联调公共契约

本节给出前后端联调基线。除 8.2 节已有接口外,以下均为建议契约;进入开发前应固化为 OpenAPI 3.1。示例中的 ID、日期、人员和数量均为演示值。

8.5~8.11 节统一按以下顺序描述接口:

  1. 请求字段定义:逐项说明字段位置、名称、类型、是否必填和业务含义;无请求体也必须明确写出。
  2. 响应字段定义:逐项说明业务数据字段路径、类型和业务含义;公共包装字段引用 8.4.2~8.4.4。
  3. 请求示例GET/DELETE 接口没有请求体时给出完整 URLJSON 或 multipart 接口给出请求体。
  4. 响应示例:JSON 接口给出完整响应;文件流接口说明状态码、响应头和响应体类型。

字段路径中的 [] 表示数组元素,例如 data.rows[].workOrderId。标记为“条件必填”的字段必须在定义中写明触发条件。未在字段表中定义的业务字段,前后端不得仅凭示例自行增加。

8.4.1 请求头

请求头 必填 适用范围 说明
Authorization: Bearer <token> 除验证码、登录外 当前用户身份
Content-Type: application/json JSON 写接口 文件上传除外
Idempotency-Key 条件 导入确认、派工、提交、审核、报告确认、办结 客户端生成 UUID;同一业务动作重试必须复用
X-Request-Id 建议 全部接口 链路追踪;未传时由服务端生成
Accept-Language: zh-CN 全部接口 提示语语言,不影响业务错误码

8.4.2 单对象成功响应

响应字段 类型 必有 定义
code integer/string 成功时为 200;失败时为稳定业务错误码
msg string 面向用户的结果说明,不作为前端业务判断依据
data object/array/null 业务响应数据;无业务数据时为 null 或空对象,项目内须统一
requestId string 服务端链路追踪标识,应同时写入服务端日志
{
  "code": 200,
  "msg": "操作成功",
  "data": {},
  "requestId": "req-20260813-000001"
}

8.4.3 分页成功响应

响应字段 类型 必有 定义
total integer 符合查询条件的数据总数,不是当前页条数
rows object[] 当前页数据;无数据时返回空数组
code integer 成功结果码,固定为 200
msg string 查询结果说明
requestId string 服务端链路追踪标识
{
  "total": 1,
  "rows": [],
  "code": 200,
  "msg": "查询成功",
  "requestId": "req-20260813-000002"
}

分页请求统一使用 pageNumpageSizepageNum 从 1 开始,pageSize 建议限制为 10100。排序使用 orderByColumnisAsc,服务端必须使用字段白名单。

8.4.4 业务错误响应

新增 /risk/** 接口建议由 HTTP 状态表达协议结果,响应体 code 使用第 9.7 节稳定业务错误码,不用 HTTP 200 包装业务失败;8.2 节列出的既有接口继续保持现有返回约定,避免破坏兼容性。

{
  "code": "RISK-4220",
  "msg": "首联及全部初查完成后才能提交全面调查",
  "data": {
    "currentStage": "INVESTIGATION",
    "responsibilityType": "PRIMARY",
    "incompletePrerequisites": [
      { "type": "FIRST_CONTACT", "taskId": "TASK-FC-001", "status": "IN_PROGRESS" },
      { "type": "PRELIMINARY_INVESTIGATION", "taskId": "TASK-PI-003", "status": "PENDING" }
    ],
    "fieldErrors": []
  },
  "requestId": "req-20260813-000003"
}

建议 HTTP 映射:认证失效 401,越权 403,不存在 404,版本/状态冲突 409,业务前置条件或字段校验失败 422,限流 429,服务端异常 500

8.4.5 状态变更通用响应

所有任务写接口至少返回最新任务版本、工单版本、当前环节和新建后续任务,前端必须用响应覆盖本地版本,不能自行推算状态。

{
  "code": 200,
  "msg": "提交成功",
  "data": {
    "workOrderId": "WO-20260806-001",
    "taskId": "TASK-INV-001",
    "taskStatus": "COMPLETED",
    "currentStage": "SUPERVISOR_REVIEW",
    "workOrderVersion": 8,
    "taskVersion": 3,
    "nextTasks": [
      {
        "taskId": "TASK-SR-001",
        "stage": "SUPERVISOR_REVIEW",
        "status": "PENDING",
        "assigneeRole": "SERVICE_SUPERVISOR"
      }
    ]
  },
  "requestId": "req-20260813-000004"
}

8.5 认证与用户接口请求与响应字段定义

8.5.1 请求字段定义

接口 字段位置 字段 类型 必填 定义
GET /captchaImage 无查询参数、无请求体
POST /login body username string 登录账号
POST /login body password string 登录密码;仅通过 HTTPS 传输
POST /login body code string 条件 验证码开启时必填
POST /login body uuid string 条件 验证码开启时必填,与验证码图片绑定
GET /system/user/profile 无查询参数、无请求体;用户由 Token 确定
GET /system/user/list query pageNum integer 页码,从 1 开始
GET /system/user/list query pageSize integer 每页数量,建议 10100
GET /system/user/list query userName string 用户名模糊查询
GET /system/user/list query phonenumber string 手机号查询
GET /system/user/list query status string 用户状态
GET /system/user/list query deptId string 部门标识;服务端仍需执行数据范围过滤
GET /system/user/deptTree 无查询参数、无请求体
GET /system/user/{userId} path userId string 用户标识
PUT /system/user/profile/updatePwd query oldPassword string 原密码
PUT /system/user/profile/updatePwd query newPassword string 新密码,须满足密码策略

8.5.2 响应字段定义

接口 响应字段 类型 定义
GET /captchaImage code integer 结果码
GET /captchaImage data.uuid string 验证码会话标识
GET /captchaImage data.img string Base64 编码的验证码图片
POST /login code integer 结果码
POST /login msg string 结果说明
POST /login data string Bearer Token;前端不得写入日志
GET /system/user/profile data.user object 当前用户基本信息
GET /system/user/profile data.roles[] string[] 当前用户角色编码
GET /system/user/profile data.permissions[] string[] 当前用户权限编码
GET /system/user/list total integer 符合条件的用户总数
GET /system/user/list rows[] object[] 用户摘要列表
GET /system/user/list rows[].userId string 用户标识
GET /system/user/list rows[].userName string 用户名
GET /system/user/list rows[].nickName string 用户显示名称
GET /system/user/list rows[].dept object 所属部门摘要
GET /system/user/list rows[].status string 用户状态
GET /system/user/deptTree data[] object[] 部门树根节点
GET /system/user/deptTree data[].id string 部门标识
GET /system/user/deptTree data[].label string 部门名称
GET /system/user/deptTree data[].children[] object[] 子部门,递归结构
GET /system/user/{userId} data.user object 用户详情
GET /system/user/{userId} data.roleIds[] string[] 已关联角色标识
GET /system/user/{userId} data.postIds[] string[] 已关联岗位标识
PUT /system/user/profile/updatePwd code integer 结果码,成功为 200
PUT /system/user/profile/updatePwd msg string 修改结果说明

8.5.3 请求与响应示例

GET /captchaImage

无查询参数、无请求体。

{
  "code": 200,
  "msg": "操作成功",
  "data": {
    "uuid": "4c25fa10-6f61-4ea3-aea5-977c26759468",
    "img": "data:image/png;base64,iVBORw0KGgoAAA..."
  }
}
POST /login
{
  "username": "admin",
  "password": "******",
  "code": "TB5K",
  "uuid": "4c25fa10-6f61-4ea3-aea5-977c26759468"
}
{
  "code": 200,
  "msg": "登录成功",
  "data": "eyJhbGciOiJIUzI1NiJ9...",
  "requestId": "req-20260813-000010"
}
用户和部门查询
  • GET /system/user/list?pageNum=1&pageSize=20&deptId=101&status=0:无 body;响应 rows 为用户数组。
  • GET /system/user/deptTree?status=0:无 body;响应 data 为部门树。
  • GET /system/user/{userId}GET /system/user/profile:无 body;响应 data 为用户对象。
{
  "total": 1,
  "rows": [
    {
      "userId": 1001,
      "deptId": 101,
      "userName": "zhangsan",
      "nickName": "张某",
      "phonenumber": "131****7777",
      "status": "0",
      "roleIds": [201],
      "postIds": [301]
    }
  ],
  "code": 200,
  "msg": "查询成功"
}

派工候选不得直接使用无业务范围限制的全量用户列表;后端应基于部门、岗位、角色和启用状态过滤。

8.6 导入接口请求与响应字段定义

8.6.1 请求字段定义

接口 字段位置 字段 类型 必填 定义
IMP-01 query templateVersion string 指定模板版本;不传则下载当前有效版本
IMP-02 multipart file binary 待解析的 Excel/CSV 文件,须通过扩展名、MIME、大小和安全扫描校验
IMP-02 multipart batchNo string 用户填写的业务批次号,同一有效批次内唯一
IMP-02 multipart templateVersion string 文件使用的模板版本
IMP-03 path previewToken string 预览会话标识,过期后不可使用
IMP-03 query pageNum integer 页码,从 1 开始
IMP-03 query pageSize integer 每页数量
IMP-03 query rowStatus enum 行状态:VALIDDUPLICATEINVALID
IMP-04 body previewToken string IMP-02 返回的预览会话标识
IMP-04 body batchNo string 必须与预览阶段批次号一致
IMP-04 body fileSha256 string 文件摘要,防止预览后文件被替换
IMP-04 body duplicatePolicy enum 重复处理策略;当前建议仅支持 REJECT
IMP-04 body requestId string 幂等请求标识,与 Idempotency-Key 一致
IMP-05 query pageNum integer 页码,从 1 开始
IMP-05 query pageSize integer 每页数量
IMP-05 query batchNo string 批次号模糊或精确查询,开发前统一口径
IMP-05 query status enum 批次状态
IMP-05 query importedFrom date 导入开始日期,含边界
IMP-05 query importedTo date 导入结束日期,含边界
IMP-06 path batchId string 导入批次标识
IMP-07 path batchId string 导入批次标识
IMP-07 query pageNum integer 页码,从 1 开始
IMP-07 query pageSize integer 每页数量
IMP-07 query rowStatus enum 行处理状态

8.6.2 响应字段定义

接口 响应字段 类型 定义
IMP-01 HTTP body binary 模板文件流
IMP-01 Content-Type string Excel 模板 MIME 类型
IMP-01 Content-Disposition string 下载文件名
IMP-01 X-Template-Version string 实际下载的模板版本
IMP-02 data.previewToken string 预览会话标识
IMP-02 data.expiresAt datetime 预览会话过期时间
IMP-02 data.fileName string 原始文件名
IMP-02 data.fileSha256 string 文件 SHA-256 摘要
IMP-02 data.templateVersion string 解析所用模板版本
IMP-02 data.batchNo string 业务批次号
IMP-02 data.totalCount integer 数据总行数,不含标题行
IMP-02 data.validCount integer 校验通过且可导入行数
IMP-02 data.duplicateCount integer 重复行数
IMP-02 data.invalidCount integer 校验失败行数
IMP-02 data.canConfirm boolean 当前预览是否允许确认导入
IMP-02 data.sampleRows[] object[] 少量预览行;完整数据通过 IMP-03 查询
IMP-02 data.sampleRows[].rowNo integer 文件中的原始行号
IMP-02 data.sampleRows[].rowStatus enum 行校验状态
IMP-02 data.sampleRows[].workOrderNo12398 string 12398 工单号
IMP-02 data.sampleRows[].customerName string 客户名称
IMP-02 data.sampleRows[].errors[] object[] 行级错误集合
IMP-03/IMP-07 total integer 符合行状态条件的总数
IMP-03/IMP-07 rows[] object[] 当前页行明细
IMP-03/IMP-07 rows[].rowNo integer 原始行号
IMP-03/IMP-07 rows[].rowStatus enum 行状态
IMP-03/IMP-07 rows[].rawData object 原始单元格键值,不作为正式业务数据
IMP-03/IMP-07 rows[].normalizedData object/null 类型和格式归一化后的业务数据
IMP-03/IMP-07 rows[].errorCode string/null 行级稳定错误码
IMP-03/IMP-07 rows[].errorMessage string/null 行级错误说明
IMP-03/IMP-07 rows[].workOrderId string/null 导入成功后关联的工单标识;预览阶段为空
IMP-04 data.batchId string 服务端生成的导入批次标识
IMP-04 data.batchNo string 业务批次号
IMP-04 data.status enum 批次处理结果:成功、部分成功或失败
IMP-04 data.totalCount integer 确认处理总数
IMP-04 data.successCount integer 成功创建/关联工单数
IMP-04 data.failureCount integer 失败数
IMP-04 data.createdWorkOrderIds[] string[] 本次新建工单标识
IMP-05 total integer 批次总数
IMP-05 rows[] object[] 批次摘要列表,字段结构见下方批次对象
IMP-06 data object 批次详情,字段结构见下方批次对象
IMP-05/IMP-06 batchId string 导入批次标识
IMP-05/IMP-06 batchNo string 业务批次号
IMP-05/IMP-06 fileId string 原始导入文件标识
IMP-05/IMP-06 fileName string 原始文件名
IMP-05/IMP-06 templateVersion string 模板版本
IMP-05/IMP-06 status enum 批次状态
IMP-05/IMP-06 totalCount integer 总行数
IMP-05/IMP-06 successCount integer 成功行数
IMP-05/IMP-06 failureCount integer 失败行数
IMP-05/IMP-06 importedBy object 导入人摘要,包含 userIdname
IMP-05/IMP-06 importedAt datetime 导入时间

8.6.3 请求与响应示例

IMP-01 下载模板

GET /risk/import-batches/template?templateVersion=2026.08 无 body。成功响应为文件流,并返回:

Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Content-Disposition: attachment; filename="12398-work-order-template-2026.08.xlsx"
X-Template-Version: 2026.08
IMP-02 导入预览

POST /risk/import-batches/preview 使用 multipart/form-data

字段 类型 必填 说明
file binary Excel/CSV 文件
batchNo string 客户端填写的业务批次号
templateVersion string 使用的模板版本
{
  "code": 200,
  "msg": "文件解析完成",
  "data": {
    "previewToken": "pvw_6d0726d6",
    "expiresAt": "2026-08-13T18:00:00+08:00",
    "fileName": "12398工单.xlsx",
    "fileSha256": "84a3...e02c",
    "templateVersion": "2026.08",
    "batchNo": "20260813-B01",
    "totalCount": 10,
    "validCount": 8,
    "duplicateCount": 1,
    "invalidCount": 1,
    "canConfirm": true,
    "sampleRows": [
      {
        "rowNo": 2,
        "rowStatus": "VALID",
        "workOrderNo12398": "2026-08-06-001",
        "customerName": "某某有限公司",
        "errors": []
      }
    ]
  }
}
IMP-03/IMP-07 行明细

GET /risk/import-batches/{previewToken}/rows?pageNum=1&pageSize=20&rowStatus=INVALIDGET /risk/import-batches/{batchId}/rows 无 body。

{
  "total": 1,
  "rows": [
    {
      "rowNo": 5,
      "rowStatus": "INVALID",
      "rawData": {
        "workOrderNo12398": "",
        "customerCalledAt": "2026/13/40"
      },
      "normalizedData": null,
      "errorCode": "INVALID_DATE",
      "errorMessage": "客户致电12398日期格式不正确",
      "workOrderId": null
    }
  ],
  "code": 200,
  "msg": "查询成功"
}
IMP-04 确认导入
{
  "previewToken": "pvw_6d0726d6",
  "batchNo": "20260813-B01",
  "fileSha256": "84a3...e02c",
  "duplicatePolicy": "REJECT",
  "requestId": "f332e303-d335-4a58-b09e-e5879122fb7b"
}
{
  "code": 200,
  "msg": "导入完成",
  "data": {
    "batchId": "IB-20260813-001",
    "batchNo": "20260813-B01",
    "status": "PARTIAL_SUCCESS",
    "totalCount": 10,
    "successCount": 8,
    "failureCount": 2,
    "createdWorkOrderIds": ["WO-20260806-001", "WO-20260806-002"]
  }
}
IMP-05/IMP-06 批次列表与详情

GET /risk/import-batches?pageNum=1&pageSize=20&batchNo=20260813-B01&status=CONFIRMED&importedFrom=2026-08-01&importedTo=2026-08-31 无 body。

列表 rows 和详情 data 统一使用:

{
  "batchId": "IB-20260813-001",
  "batchNo": "20260813-B01",
  "fileId": "FILE-001",
  "fileName": "12398工单.xlsx",
  "templateVersion": "2026.08",
  "status": "PARTIAL_SUCCESS",
  "totalCount": 10,
  "successCount": 8,
  "failureCount": 2,
  "importedBy": { "userId": "1001", "name": "服务监督主管" },
  "importedAt": "2026-08-13T10:20:00+08:00"
}

8.7 工单与流程查询接口请求与响应字段定义

8.7.1 请求字段定义

接口 字段位置 字段 类型 必填 定义
WO-01 query pageNum integer 页码,从 1 开始
WO-01 query pageSize integer 每页数量
WO-01 query workOrderNo12398 string 12398 工单号
WO-01 query currentStage enum 当前流程环节
WO-01 query orderStatus enum 工单状态
WO-01 query sourceCode string 信息来源编码
WO-01 query calledFrom/calledTo datetime 客户致电 12398 时间范围
WO-01 query transferredFrom/transferredTo datetime 工单转入时间范围
WO-01 query customerName string 客户名称模糊查询
WO-01 query contactPhone string 联系电话精确或后四位查询,须受敏感数据权限控制
WO-01 query customerAddress string 客户地址模糊查询
WO-01 query regionCode string 区域编码
WO-01 query provinceCode string 省份编码
WO-01 query eventTypeCode string 事件类型编码
WO-01 query transferCategoryCode string 转办事项分类编码
WO-01 query problemCategoryCode string 问题分类编码
WO-01 query responsibilityType enum PRIMARY 主责或 ASSIST 协查
WO-01 query orderByColumn string 排序字段,仅允许服务端白名单字段
WO-01 query isAsc enum ascdesc
WO-02 path workOrderId string 工单标识
WO-03 path workOrderId string 工单标识
WO-03 query pageNum integer 页码,从 1 开始
WO-03 query pageSize integer 每页数量
WO-04 path workOrderId string 工单标识
WO-05 path workOrderId string 工单标识
WO-05 query pageNum integer 页码,从 1 开始
WO-05 query pageSize integer 每页数量
WO-06 path workOrderId string 工单标识

WO-01~WO-06 均无请求体,数据范围由当前用户身份和权限决定。

8.7.2 响应字段定义

接口 响应字段 类型 定义
WO-01 total integer 符合查询条件且当前用户有权查看的工单总数
WO-01 rows[] object[] 当前页工单摘要
WO-01 rows[].workOrderId string 工单标识
WO-01 rows[].workOrderNo12398 string 12398 工单号
WO-01 rows[].orderStatus enum 工单状态
WO-01 rows[].currentStage enum 当前流程环节编码
WO-01 rows[].currentStageName string 当前环节显示名称
WO-01 rows[].sourceCode/sourceName string 信息来源编码及名称
WO-01 rows[].customerCalledAt datetime 客户致电时间
WO-01 rows[].transferredAt datetime 工单转入时间
WO-01 rows[].customerName string 客户名称,按权限脱敏
WO-01 rows[].contactPhoneMasked string 脱敏联系电话
WO-01 rows[].customerAddressMasked string 脱敏地址
WO-01 rows[].responsibilityType enum/null 派工前为空,派工后为主责或协查
WO-01 rows[].version integer 工单乐观锁版本
WO-01 rows[].allowedActions[] string[] 当前用户在该工单上的允许动作
WO-02 data.workOrderId/workOrderNo12398 string 工单标识及 12398 工单号
WO-02 data.orderStatus/currentStage enum 工单状态及当前环节
WO-02 data.responsibilityType enum/null 主责/协查,派工前为空
WO-02 data.sourceCode string 信息来源编码
WO-02 data.customerCalledAt/transferredAt datetime 客户致电及转入时间
WO-02 data.customer object 客户信息对象
WO-02 data.customer.name string 客户名称
WO-02 data.customer.contactPhone string 联系电话,按权限脱敏
WO-02 data.customer.address string 地址,按权限脱敏
WO-02 data.customer.regionCode/provinceCode string 区域及省份编码
WO-02 data.classification object 事件、事项和问题分类编码集合
WO-02 data.version integer 工单版本
WO-02 data.allowedActions[] string[] 当前用户允许动作
WO-03 total integer 关联 95598 记录总数
WO-03 rows[] object[] 95598 业务记录
WO-03 rows[].serviceRecordId string 记录标识
WO-03 rows[].serviceOrderNo95598 string 95598 工单号
WO-03 rows[].acceptanceContent string 受理内容
WO-03 rows[].businessTypeCode string 业务类型编码
WO-03 rows[].acceptedAt datetime 受理时间
WO-03 rows[].powerSupplyOrg object 供电单位,包含 idname
WO-03 rows[].recording object/null 录音信息,包含 fileIddurationSecondsplayable
WO-03 rows[].transcriptText string/null 录音转译文本
WO-04 data.processInstanceId string 流程实例标识
WO-04 data.processVersion integer 流程定义/实例版本
WO-04 data.responsibilityType enum 主责或协查
WO-04 data.currentStage enum 当前环节
WO-04 data.workOrderVersion integer 工单版本
WO-04 data.nodes[] object[] 流程节点集合
WO-04 data.nodes[].stage/status enum 节点编码及状态
WO-04 data.nodes[].completedAt datetime/null 节点完成时间
WO-04 data.nodes[].completedCount/totalCount integer/null 并行节点完成数及总数
WO-04 data.nodes[].submitReady boolean/null 当前节点是否满足提交条件
WO-04 data.deadlineAt datetime 当前时限截止时间
WO-04 data.overdue boolean 是否逾期
WO-05 total integer 轨迹事件总数
WO-05 rows[] object[] 当前页轨迹事件
WO-05 rows[].eventId/eventType string 事件标识及类型
WO-05 rows[].stage enum 发生事件的环节
WO-05 rows[].actor object 操作人,包含 userIdnamerole
WO-05 rows[].occurredAt datetime 发生时间
WO-05 rows[].fromStatus/toStatus enum/null 变更前后状态
WO-05 rows[].summary string 事件摘要
WO-06 data.workOrderId string 工单标识
WO-06 data.workOrderVersion integer 当前工单版本
WO-06 data.actions[] object[] 动作集合
WO-06 data.actions[].code string 动作编码
WO-06 data.actions[].enabled boolean 是否允许执行
WO-06 data.actions[].reasonCode string/null 禁止执行时的稳定原因码

8.7.3 请求与响应示例

WO-01 工单列表
GET /risk/work-orders?pageNum=1&pageSize=20&workOrderNo12398=2026-08-06-001&currentStage=DISPATCH&customerName=某某&orderByColumn=transferredAt&isAsc=desc

无 body。响应:

{
  "total": 1,
  "rows": [
    {
      "workOrderId": "WO-20260806-001",
      "workOrderNo12398": "2026-08-06-001",
      "orderStatus": "PROCESSING",
      "currentStage": "DISPATCH",
      "currentStageName": "待分配派工",
      "sourceCode": "12398_PHONE",
      "sourceName": "12398 电话",
      "customerCalledAt": "2026-08-06T09:15:00+08:00",
      "transferredAt": "2026-08-06T11:00:00+08:00",
      "customerName": "某某有限公司",
      "contactPhoneMasked": "138****8888",
      "customerAddressMasked": "XX市XX区XX路88号",
      "responsibilityType": null,
      "version": 3,
      "allowedActions": ["VIEW", "DISPATCH"]
    }
  ],
  "code": 200,
  "msg": "查询成功"
}
WO-02 工单详情

GET /risk/work-orders/{workOrderId} 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "workOrderId": "WO-20260806-001",
    "workOrderNo12398": "2026-08-06-001",
    "orderStatus": "PROCESSING",
    "currentStage": "INVESTIGATION",
    "responsibilityType": "PRIMARY",
    "sourceCode": "12398_PHONE",
    "customerCalledAt": "2026-08-06T09:15:00+08:00",
    "transferredAt": "2026-08-06T11:00:00+08:00",
    "customer": {
      "name": "某某有限公司",
      "contactPhone": "138****8888",
      "address": "XX市XX区XX路88号",
      "regionCode": "120101",
      "provinceCode": "120000"
    },
    "classification": {
      "eventTypeCode": "COMPLAINT",
      "transferCategoryCode": "COMPLAINT_ITEM",
      "problemCategoryCode": "SAFETY_RISK"
    },
    "version": 7,
    "allowedActions": ["VIEW", "SAVE_INVESTIGATION_DRAFT"]
  }
}
WO-03 95598 记录

GET /risk/work-orders/{workOrderId}/service-records?pageNum=1&pageSize=20 无 body,返回 TableDataInfo

{
  "serviceRecordId": "SR-001",
  "serviceOrderNo95598": "95598-20260806-001",
  "acceptanceContent": "客户反映近期电压不稳,设备频繁重启。",
  "businessTypeCode": "COMPLAINT",
  "acceptedAt": "2026-08-06T08:45:00+08:00",
  "powerSupplyOrg": { "id": "ORG-1200", "name": "国网天津市电力公司" },
  "recording": {
    "fileId": "FILE-AUDIO-001",
    "durationSeconds": 384,
    "playable": true
  },
  "transcriptText": "客户反映近期电压不稳……"
}
WO-04 流程视图

GET /risk/work-orders/{workOrderId}/process 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "processInstanceId": "PI-001",
    "processVersion": 1,
    "responsibilityType": "PRIMARY",
    "currentStage": "INVESTIGATION",
    "workOrderVersion": 7,
    "nodes": [
      { "stage": "DISPATCH", "status": "COMPLETED", "completedAt": "2026-08-06T12:00:00+08:00" },
      { "stage": "FIRST_CONTACT", "status": "COMPLETED", "completedAt": "2026-08-06T14:32:00+08:00" },
      { "stage": "PRELIMINARY_INVESTIGATION", "status": "IN_PROGRESS", "completedCount": 1, "totalCount": 3 },
      { "stage": "INVESTIGATION", "status": "IN_PROGRESS", "submitReady": false }
    ],
    "deadlineAt": "2026-08-08T18:00:00+08:00",
    "overdue": false
  }
}
WO-05/WO-06 时间线与允许动作

GET /risk/work-orders/{workOrderId}/timeline?pageNum=1&pageSize=50 返回分页事件;GET /risk/work-orders/{workOrderId}/allowed-actions 返回动作集合。

{
  "eventId": "EVT-001",
  "eventType": "DISPATCHED",
  "stage": "DISPATCH",
  "actor": { "userId": "1001", "name": "服务监督主管", "role": "SERVICE_SUPERVISOR" },
  "occurredAt": "2026-08-06T12:00:00+08:00",
  "fromStatus": "PENDING",
  "toStatus": "COMPLETED",
  "summary": "判定主责并完成派工"
}
{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "workOrderId": "WO-20260806-001",
    "workOrderVersion": 7,
    "actions": [
      { "code": "SAVE_INVESTIGATION_DRAFT", "enabled": true },
      { "code": "SUBMIT_INVESTIGATION", "enabled": false, "reasonCode": "PREREQUISITES_INCOMPLETE" }
    ]
  }
}

8.8 待办与派工接口请求与响应字段定义

8.8.1 请求字段定义

接口 字段位置 字段 类型 必填 定义
TASK-01 query pageNum integer 页码,从 1 开始
TASK-01 query pageSize integer 每页数量
TASK-01 query stage enum 任务环节
TASK-01 query status enum 任务状态
TASK-01 query workOrderNo12398 string 12398 工单号
TASK-01 query customerName string 客户名称
TASK-02 query workOrderNo12398 string 与任务列表相同口径的工单号条件
TASK-02 query customerName string 与任务列表相同口径的客户条件
TASK-02 query status enum 需要统计的任务状态
TASK-03 path taskId string 任务标识
DSP-01 path id string 工单标识
DSP-01 query responsibilityType enum 用于筛选候选项;PRIMARYASSIST
DSP-02 path id string 工单标识
DSP-02 body workOrderVersion integer 工单当前版本
DSP-02 body responsibilityType enum 拟判定责任类型
DSP-03 path id string 工单标识
DSP-03 body responsibilityType enum 服务监督主管判定的 PRIMARYASSIST
DSP-03 body preliminaryDeptIds[] string[] 初查部门,至少 1 个且不可重复
DSP-03 body firstContactDeptId string/null 条件 主责必填;协查必须为空
DSP-03 body serviceOfficerUserId string 承办服务监督员用户标识
DSP-03 body escalationDeptIds[] string[] 督办/协同部门标识集合
DSP-03 body dispatchMode enum MANUALSMART_CONFIRMED
DSP-03 body suggestionId string/null 条件 采用智能建议时必填,人工派工为空
DSP-03 body workOrderVersion integer 工单版本,用于并发校验
DSP-03 body requestId string 幂等请求标识
DSP-04 path taskId string 待分派任务标识
DSP-04 body assigneeType enum USERPOST
DSP-04 body assigneeUserId string/null 条件 assigneeType=USER 时必填
DSP-04 body assigneePostId string/null 条件 assigneeType=POST 时必填
DSP-04 body taskVersion integer 任务版本
DSP-04 body requestId string 幂等请求标识
DSP-05 path id string 工单标识
DSP-05 body reviewTaskId string 当前审核任务标识
DSP-05 body callbackDeptId string 主责工单回访承接部门
DSP-05 body workOrderVersion integer 工单版本
DSP-05 body requestId string 幂等请求标识

TASK-01、TASK-02、TASK-03 和 DSP-01 均无请求体。

8.8.2 响应字段定义

接口 响应字段 类型 定义
TASK-01 total integer 当前用户符合条件的任务总数
TASK-01 rows[] object[] 当前页任务摘要
TASK-01 rows[].taskId string 任务标识
TASK-01 rows[].workOrderId/workOrderNo12398 string 工单标识及 12398 工单号
TASK-01 rows[].stage/stageName string 环节编码及名称
TASK-01 rows[].status enum 任务状态
TASK-01 rows[].assignee object/null 承办人或岗位摘要
TASK-01 rows[].deadlineAt datetime/null 截止时间
TASK-01 rows[].version integer 任务版本
TASK-01 rows[].allowedActions[] string[] 当前用户允许动作
TASK-02 data.total integer 与当前过滤条件一致的任务总数
TASK-02 data.counts[] object[] 按环节统计集合
TASK-02 data.counts[].stage/name string 环节编码及名称
TASK-02 data.counts[].count integer 环节任务数量
TASK-02 data.filterFingerprint string 统计条件指纹,用于核对列表与卡片口径
TASK-03 data.task object 当前任务,至少包含 taskIdstagestatusversion
TASK-03 data.workOrder object 工单摘要及 responsibilityTypeversion
TASK-03 data.form object/null 当前表单类型、草稿版本和保存时间
TASK-03 data.allowedActions[] string[] 当前任务允许动作
DSP-01 data.preliminaryDepartments[] object[] 可选初查部门,包含 deptIddeptNameenabled
DSP-01 data.firstContactDepartments[] object[] 主责可选首联部门;协查返回空数组
DSP-01 data.serviceOfficers[] object[] 可选服务监督员,包含用户和部门标识
DSP-01 data.escalationDepartments[] object[] 可选督办/协同部门
DSP-01 data.workOrderVersion integer 当前工单版本
DSP-02 data.suggestionId string 智能建议标识
DSP-02 data.ruleVersion integer 命中的规则版本
DSP-02 data.responsibilityType enum 建议对应的责任类型
DSP-02 data.preliminaryDeptIds[] string[] 建议初查部门
DSP-02 data.firstContactDeptId string/null 建议首联部门,协查为空
DSP-02 data.serviceOfficerUserId string 建议服务监督员
DSP-02 data.escalationDeptIds[] string[] 建议督办部门
DSP-02 data.explanations[] string[] 规则命中说明,不作为最终派工事实
DSP-03 data.dispatchId string 派工记录标识
DSP-03 data.workOrderId string 工单标识
DSP-03 data.responsibilityType enum 已持久化的责任类型
DSP-03 data.currentStage enum 派工后的当前环节;主责与协查取值不同
DSP-03 data.workOrderVersion integer 更新后的工单版本
DSP-03 data.createdTasks[] object[] 本次派工生成的任务集合
DSP-03 data.createdTasks[].taskId string 新任务标识
DSP-03 data.createdTasks[].stage/status enum 新任务环节及状态
DSP-03 data.createdTasks[].deptId string/null 部门任务的承接部门
DSP-03 data.createdTasks[].submitReady boolean/null 调查任务当前是否可提交
DSP-04 data.taskId string 被分派任务标识
DSP-04 data.assignee object 新承办对象
DSP-04 data.assignedBy object 分派操作人
DSP-04 data.assignedAt datetime 分派时间
DSP-04 data.taskVersion integer 更新后的任务版本
DSP-05 data.workOrderId string 工单标识
DSP-05 data.callbackDeptId string 已确定的回访承接部门
DSP-05 data.workOrderVersion integer 更新后的工单版本

8.8.3 请求与响应示例

TASK-01/TASK-02/TASK-03

GET /risk/tasks?pageNum=1&pageSize=20&stage=INVESTIGATION&status=IN_PROGRESS&workOrderNo12398=2026-08-06-001 无 body。

{
  "total": 1,
  "rows": [
    {
      "taskId": "TASK-INV-001",
      "workOrderId": "WO-20260806-001",
      "workOrderNo12398": "2026-08-06-001",
      "stage": "INVESTIGATION",
      "stageName": "调查结果填报",
      "status": "IN_PROGRESS",
      "assignee": { "type": "USER", "id": "1002", "name": "张某" },
      "deadlineAt": "2026-08-08T18:00:00+08:00",
      "version": 2,
      "allowedActions": ["VIEW", "SAVE_DRAFT"]
    }
  ],
  "code": 200,
  "msg": "查询成功"
}

GET /risk/tasks/summary?workOrderNo12398=&customerName= 无 body

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "total": 103,
    "counts": [
      { "stage": "INVESTIGATION", "name": "调查结果填报", "count": 34 },
      { "stage": "REPORT", "name": "调查报告编写", "count": 12 }
    ],
    "filterFingerprint": "sha256:62e8..."
  }
}

GET /risk/tasks/{taskId} 返回工单摘要、任务、允许动作及当前表单版本:

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "task": { "taskId": "TASK-INV-001", "stage": "INVESTIGATION", "status": "IN_PROGRESS", "version": 2 },
    "workOrder": { "workOrderId": "WO-20260806-001", "workOrderNo12398": "2026-08-06-001", "responsibilityType": "PRIMARY", "version": 7 },
    "form": { "formType": "INVESTIGATION", "draftVersion": 3, "lastSavedAt": "2026-08-13T10:10:00+08:00" },
    "allowedActions": ["SAVE_DRAFT"]
  }
}
DSP-01 派工候选

GET /risk/work-orders/{id}/dispatch-candidates?responsibilityType=PRIMARY 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "preliminaryDepartments": [{ "deptId": "D-OPS", "deptName": "运营部", "enabled": true }],
    "firstContactDepartments": [{ "deptId": "D-CS1", "deptName": "客服一部", "enabled": true }],
    "serviceOfficers": [{ "userId": "1002", "name": "张某", "deptId": "D-SERVICE", "enabled": true }],
    "escalationDepartments": [{ "deptId": "D-BIZ", "deptName": "业务部", "enabled": true }],
    "workOrderVersion": 3
  }
}
DSP-02 智能派工建议
{
  "workOrderVersion": 3,
  "responsibilityType": "PRIMARY"
}
{
  "code": 200,
  "msg": "建议生成成功",
  "data": {
    "suggestionId": "DS-001",
    "ruleVersion": 5,
    "responsibilityType": "PRIMARY",
    "preliminaryDeptIds": ["D-OPS"],
    "firstContactDeptId": "D-CS1",
    "serviceOfficerUserId": "1002",
    "escalationDeptIds": [],
    "explanations": ["问题分类为安全隐患,命中运营部初查规则"]
  }
}
DSP-03 服务监督主管确认派工

主责请求体示例:

{
  "responsibilityType": "PRIMARY",
  "preliminaryDeptIds": ["D-OPS", "D-BIZ"],
  "firstContactDeptId": "D-CS1",
  "serviceOfficerUserId": "1002",
  "escalationDeptIds": [],
  "dispatchMode": "MANUAL",
  "suggestionId": null,
  "workOrderVersion": 3,
  "requestId": "04d7de39-3e48-4b1e-b327-e0048678ac6b"
}

协查请求体必须将 firstContactDeptId 设为 null

{
  "responsibilityType": "ASSIST",
  "preliminaryDeptIds": ["D-OPS", "D-BIZ"],
  "firstContactDeptId": null,
  "serviceOfficerUserId": "1002",
  "escalationDeptIds": [],
  "dispatchMode": "MANUAL",
  "suggestionId": null,
  "workOrderVersion": 3,
  "requestId": "bc14ae85-cebd-4784-a30a-b42a56419ee5"
}
{
  "code": 200,
  "msg": "派工成功",
  "data": {
    "dispatchId": "DISP-001",
    "workOrderId": "WO-20260806-001",
    "responsibilityType": "PRIMARY",
    "currentStage": "FIRST_CONTACT_AND_PRELIMINARY_INVESTIGATION",
    "workOrderVersion": 4,
    "createdTasks": [
      { "taskId": "TASK-FC-001", "stage": "FIRST_CONTACT_ASSIGN", "status": "PENDING" },
      { "taskId": "TASK-PI-001", "stage": "PRELIMINARY_INVESTIGATION", "status": "PENDING", "deptId": "D-OPS" },
      { "taskId": "TASK-PI-002", "stage": "PRELIMINARY_INVESTIGATION", "status": "PENDING", "deptId": "D-BIZ" },
      { "taskId": "TASK-INV-001", "stage": "INVESTIGATION", "status": "IN_PROGRESS", "submitReady": false }
    ]
  }
}
DSP-04 班组/人员分派
{
  "assigneeType": "USER",
  "assigneeUserId": "2001",
  "assigneePostId": null,
  "taskVersion": 1,
  "requestId": "20cdb204-dc60-4182-bb9c-b6a1b5415c35"
}

响应采用 8.4.5 通用状态变更响应,并返回新的 assigneeassignedByassignedAt

DSP-05 回访承接部门
{
  "reviewTaskId": "TASK-BR-001",
  "callbackDeptId": "D-CS1",
  "workOrderVersion": 10,
  "requestId": "3197100b-1508-49c0-9d10-74459badbda2"
}
{
  "code": 200,
  "msg": "回访承接部门已确定",
  "data": {
    "workOrderId": "WO-20260806-001",
    "callbackDeptId": "D-CS1",
    "workOrderVersion": 11
  }
}

PRIMARY 工单允许调用;具体由一级还是二级审核调用仍属于 D-03 待确认项。

8.9 办理、审核与回访接口请求与响应字段定义

8.9.1 请求字段定义

接口 字段位置 字段 类型 必填 定义
ACT-01 path taskId string 当前办理任务标识
ACT-01 body formType enum 表单类型,如 INVESTIGATION
ACT-01 body formData object 草稿业务字段;结构必须与对应正式提交接口一致,可部分填写
ACT-01 body draftVersion integer 草稿版本;首次保存传 0
ACT-01 body taskVersion integer 任务版本
ACT-02 path taskId string 首联任务标识
ACT-02 body firstContactAt datetime 实际首联时间,不得晚于提交时间
ACT-02 body firstContactOrderNo string 首联关联工单号
ACT-02 body firstContactContent string 首联内容
ACT-02 body taskVersion integer 任务版本
ACT-02 body requestId string 幂等请求标识
ACT-03 path taskId string 初查任务标识
ACT-03 body preliminaryContent string 本部门初查结论和事实说明
ACT-03 body attachmentFileIds[] string[] 已上传且有权绑定的初查附件
ACT-03 body taskVersion integer 任务版本
ACT-03 body requestId string 幂等请求标识
ACT-04 path taskId string 全面调查任务标识;无请求体
ACT-05 path taskId string 全面调查任务标识
ACT-05 body acceptedContent12398 string 12398 受理内容
ACT-05 body externalExposureRisk boolean 是否存在外部曝光风险
ACT-05 body internalAppealIssued boolean 是否已下发内部诉求
ACT-05 body customerAppealSummary string 客户诉求摘要
ACT-05 body escalationReason string 升级/督办原因
ACT-05 body investigationProcess string 调查过程
ACT-05 body localResponsibility boolean 是否属于本单位责任
ACT-05 body handlingSituation string 当前处理情况
ACT-05 body accountable boolean 是否需要问责
ACT-05 body hasHandlingBasis boolean 是否存在处理依据
ACT-05 body handlingMethod string 处理方式
ACT-05 body handlingResult string 处理结果
ACT-05 body investigationSummary string 调查结论摘要
ACT-05 body draftVersion integer 本次提交依据的草稿版本
ACT-05 body taskVersion integer 任务版本
ACT-05 body workOrderVersion integer 工单版本
ACT-05 body requestId string 幂等请求标识
ACT-06 path taskId string 服务监督主管审核任务标识
ACT-06 body result enum APPROVEDREJECTED
ACT-06 body rejectReason string/null 条件 驳回时必填,通过时为空
ACT-06 body investigationVersion integer 审核所依据的调查版本
ACT-06 body taskVersion integer 审核任务版本
ACT-06 body workOrderVersion integer 工单版本
ACT-06 body requestId string 幂等请求标识
ACT-07 path taskId string 业务部主任审核任务标识
ACT-07 body result enum APPROVEDREJECTED
ACT-07 body rejectReason string/null 条件 驳回时必填
ACT-07 body callbackDeptId string/null 条件 若 D-03 确认为二级审核选部门,则主责通过时必填;协查必须为空
ACT-07 body investigationVersion integer 审核依据的调查版本
ACT-07 body taskVersion integer 审核任务版本
ACT-07 body workOrderVersion integer 工单版本
ACT-07 body requestId string 幂等请求标识
ACT-08 path taskId string 主责工单的班组回访任务标识
ACT-08 body contactedAt datetime 联系客户时间
ACT-08 body contactPhone string 实际联系号码,敏感字段
ACT-08 body contactResult enum 联系结果,如 CONNECTEDNOT_CONNECTED
ACT-08 body contactSummary string 回访执行摘要
ACT-08 body taskVersion integer 任务版本
ACT-08 body requestId string 幂等请求标识
ACT-09 path taskId string 服务监督员回访结果任务标识
ACT-09 body respondentName string 回复人姓名
ACT-09 body repliedAt datetime 回复时间
ACT-09 body replyPhone string 回复联系电话,敏感字段
ACT-09 body replySituation string 回复情况
ACT-09 body callbackResult enum AGREEDISAGREE_OR_CUSTOMER_REQUEST
ACT-09 body responseLetterFileIds[] string[] 条件 不同意或客户主动要求时至少 1 个
ACT-09 body deliveryProofFileIds[] string[] 条件 不同意或客户主动要求时至少 1 个
ACT-09 body taskVersion integer 任务版本
ACT-09 body workOrderVersion integer 工单版本
ACT-09 body requestId string 幂等请求标识

8.9.2 响应字段定义

除下列业务字段外,状态变更接口同时返回 8.4.5 定义的任务状态、当前环节、工单版本、任务版本和后续任务。

接口 响应字段 类型 定义
ACT-01 data.taskId string 草稿所属任务
ACT-01 data.draftVersion integer 保存后的草稿版本
ACT-01 data.taskVersion integer 更新后的任务版本
ACT-01 data.savedAt datetime 服务端保存时间
ACT-01 data.submitReady boolean 当前是否满足正式提交条件
ACT-02 data.firstContactId string 不可变首联记录标识
ACT-02 data.taskStatus enum 首联任务完成后的状态
ACT-02 data.workOrderVersion/taskVersion integer 更新后的版本
ACT-02 data.nextTasks[] object[] 因首联完成而更新或生成的任务
ACT-03 data.preliminaryInvestigationId string 不可变初查记录标识
ACT-03 data.taskId/taskStatus string/enum 初查任务及完成状态
ACT-03 data.completedCount/totalCount integer 并行初查完成数及总数
ACT-03 data.investigationSubmitReady boolean 全面调查是否满足提交前置条件
ACT-03 data.workOrderVersion/taskVersion integer 更新后的版本
ACT-04 data.taskId string 全面调查任务标识
ACT-04 data.taskVersion/workOrderVersion integer 当前任务及工单版本
ACT-04 data.responsibilityType enum 主责或协查
ACT-04 data.firstContact object/null 主责首联结果;协查固定为空
ACT-04 data.preliminaryProgress object 并行初查完成数、总数及任务明细
ACT-04 data.preliminaryProgress.items[] object[] 各部门初查任务的 taskId、部门和状态
ACT-04 data.draft object/null 草稿版本及表单数据
ACT-04 data.submitReady boolean 是否允许提交全面调查
ACT-04 data.incompletePrerequisites[] string[] 未完成的前置任务标识
ACT-05 data.investigationId string 不可变调查记录标识
ACT-05 data.investigationVersion integer 本次形成的调查版本
ACT-05 data.currentStage enum 提交后进入 SUPERVISOR_REVIEW
ACT-05 data.nextTasks[] object[] 新建的服务监督主管审核任务
ACT-06 data.reviewId string 审核记录标识
ACT-06 data.reviewLevel enum 固定为 SUPERVISOR
ACT-06 data.reviewResult enum 审核结果
ACT-06 data.currentStage enum 通过进入业务审核,驳回回到调查
ACT-06 data.nextTasks[] object[] 业务审核或返工任务
ACT-07 data.reviewId string 业务审核记录标识
ACT-07 data.responsibilityType enum 服务端从派工记录读取的责任类型
ACT-07 data.currentStage enum 主责通过为 CALLBACK_ASSIGN;协查通过为 REPORT;驳回为 INVESTIGATION
ACT-07 data.nextTasks[] object[] 按唯一业务分支生成的任务
ACT-08 data.callbackExecutionId string 班组回访执行记录标识
ACT-08 data.taskStatus enum 回访执行任务状态
ACT-08 data.nextTasks[] object[] 后续服务监督员回访结果任务
ACT-09 data.callbackResultId string 回访结果记录标识
ACT-09 data.callbackResult enum 已保存的回访结果
ACT-09 data.currentStage enum 成功后进入 REPORT
ACT-09 data.nextTasks[] object[] 新建调查报告任务

8.9.3 请求与响应示例

ACT-01 保存草稿
{
  "formType": "INVESTIGATION",
  "formData": {
    "investigationSummary": "经初查,台区监测记录存在短时电压波动。",
    "customerAppealSummary": "客户要求核查原因并恢复稳定供电。",
    "investigationProcess": "已调取历史记录并组织现场检查。"
  },
  "draftVersion": 3,
  "taskVersion": 2
}
{
  "code": 200,
  "msg": "草稿已保存",
  "data": {
    "taskId": "TASK-INV-001",
    "draftVersion": 4,
    "taskVersion": 3,
    "savedAt": "2026-08-13T10:30:00+08:00",
    "submitReady": false
  }
}
ACT-02 提交首联
{
  "firstContactAt": "2026-08-12T14:32:00+08:00",
  "firstContactOrderNo": "2026-08-06-001",
  "firstContactContent": "已联系客户核实情况并告知后续调查安排。",
  "taskVersion": 1,
  "requestId": "b4e95b87-3ec4-4207-aa85-d2df28641cc0"
}

响应采用 8.4.5,并返回 firstContactId;协查工单调用时返回 RISK-4091

ACT-03 提交事件初查
{
  "preliminaryContent": "现场检查设备运行正常,监测到短时电压波动。",
  "attachmentFileIds": ["FILE-PI-001"],
  "taskVersion": 1,
  "requestId": "85dd9477-c5df-444e-8b31-6fd660bc36ee"
}
{
  "code": 200,
  "msg": "初查结果已提交",
  "data": {
    "preliminaryInvestigationId": "PINV-001",
    "taskId": "TASK-PI-001",
    "taskStatus": "COMPLETED",
    "completedCount": 2,
    "totalCount": 3,
    "investigationSubmitReady": false,
    "workOrderVersion": 6,
    "taskVersion": 2
  }
}
ACT-04 全面调查上下文

GET /risk/tasks/{taskId}/investigation-context 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "taskId": "TASK-INV-001",
    "taskVersion": 3,
    "workOrderVersion": 7,
    "responsibilityType": "PRIMARY",
    "firstContact": { "status": "COMPLETED", "firstContactAt": "2026-08-12T14:32:00+08:00", "content": "已完成首联" },
    "preliminaryProgress": {
      "completedCount": 1,
      "totalCount": 3,
      "items": [
        { "taskId": "TASK-PI-001", "deptId": "D-OPS", "deptName": "运营部", "status": "COMPLETED" },
        { "taskId": "TASK-PI-002", "deptId": "D-BIZ", "deptName": "业务部", "status": "PENDING" }
      ]
    },
    "draft": { "draftVersion": 4, "formData": {} },
    "submitReady": false,
    "incompletePrerequisites": ["TASK-PI-002", "TASK-PI-003"]
  }
}

协查响应中的 firstContact 必须为 null,其 submitReady 只依据全部事件初查是否完成。

ACT-05 提交全面调查
{
  "acceptedContent12398": "客户反映近期电压不稳,设备频繁重启。",
  "externalExposureRisk": false,
  "internalAppealIssued": false,
  "customerAppealSummary": "客户要求核查电压不稳原因并恢复稳定供电。",
  "escalationReason": "问题偶发且多次反映。",
  "investigationProcess": "调取95598历史记录及台区监测数据并现场检查。",
  "localResponsibility": true,
  "handlingSituation": "已完成线路及设备检查。",
  "accountable": false,
  "hasHandlingBasis": true,
  "handlingMethod": "调整运行参数并增加监测频次。",
  "handlingResult": "当前数据恢复正常,后续持续跟踪。",
  "investigationSummary": "存在短时波动,已完成处置。",
  "draftVersion": 4,
  "taskVersion": 3,
  "workOrderVersion": 7,
  "requestId": "b6848224-1277-421e-907e-4a1f4c1039bb"
}

响应采用 8.4.5,并额外返回不可变的 investigationIdinvestigationVersion。前置任务未完成返回 RISK-4220

ACT-06 服务监督主管审核
{
  "result": "APPROVED",
  "rejectReason": null,
  "investigationVersion": 1,
  "taskVersion": 1,
  "workOrderVersion": 8,
  "requestId": "2ec9fd4b-c493-44dc-b1fd-8e70f72754ab"
}
{
  "code": 200,
  "msg": "审核通过",
  "data": {
    "reviewId": "REV-S-001",
    "reviewLevel": "SUPERVISOR",
    "reviewResult": "APPROVED",
    "currentStage": "BUSINESS_REVIEW",
    "workOrderVersion": 9,
    "taskVersion": 2,
    "nextTasks": [{ "taskId": "TASK-BR-001", "stage": "BUSINESS_REVIEW", "status": "PENDING" }]
  }
}

驳回时 resultREJECTEDrejectReason 必填;响应的 currentStage 回到 INVESTIGATION,并返回新建返工任务。

ACT-07 业务部主任审核

主责审核通过且 D-03 决定由二级审核选回访部门时:

{
  "result": "APPROVED",
  "rejectReason": null,
  "callbackDeptId": "D-CS1",
  "investigationVersion": 1,
  "taskVersion": 1,
  "workOrderVersion": 9,
  "requestId": "6c704449-6022-40fa-a7bb-509b879e93ee"
}

协查审核请求体必须省略或将 callbackDeptId 设为 null。主责响应:

{
  "code": 200,
  "msg": "审核通过,进入回访分配",
  "data": {
    "reviewId": "REV-B-001",
    "responsibilityType": "PRIMARY",
    "currentStage": "CALLBACK_ASSIGN",
    "workOrderVersion": 10,
    "taskVersion": 2,
    "nextTasks": [{ "taskId": "TASK-CA-001", "stage": "CALLBACK_ASSIGN", "status": "PENDING", "deptId": "D-CS1" }]
  }
}

协查响应:

{
  "code": 200,
  "msg": "审核通过,直接进入调查报告编写",
  "data": {
    "reviewId": "REV-B-002",
    "responsibilityType": "ASSIST",
    "currentStage": "REPORT",
    "workOrderVersion": 10,
    "taskVersion": 2,
    "nextTasks": [{ "taskId": "TASK-RPT-001", "stage": "REPORT", "status": "PENDING" }]
  }
}

服务端必须根据派工记录中的 responsibilityType 生成唯一分支,不接受客户端通过目标状态控制分支。

ACT-08 提交班组回访

班组回访字段仍待业务确认,当前最小请求体建议为:

{
  "contactedAt": "2026-08-13T15:20:00+08:00",
  "contactPhone": "13800008888",
  "contactResult": "CONNECTED",
  "contactSummary": "已向客户说明处理情况。",
  "taskVersion": 1,
  "requestId": "8f596b61-fcd9-4d52-93cc-0908c4654b8c"
}

响应采用 8.4.5,并返回 callbackExecutionId;仅主责回访任务允许调用。

ACT-09 服务监督员提交回访结果

“同意”分支:

{
  "respondentName": "监督员A(张某)",
  "repliedAt": "2026-08-13T16:00:00+08:00",
  "replyPhone": "13100007777",
  "replySituation": "客户认可处理结果。",
  "callbackResult": "AGREE",
  "responseLetterFileIds": [],
  "deliveryProofFileIds": [],
  "taskVersion": 1,
  "workOrderVersion": 12,
  "requestId": "84808ee5-c306-4543-89e1-53f733e2a3c8"
}

“不同意或客户主动要求”分支:

{
  "respondentName": "监督员A(张某)",
  "repliedAt": "2026-08-13T16:00:00+08:00",
  "replyPhone": "13100007777",
  "replySituation": "客户要求提供书面答复。",
  "callbackResult": "DISAGREE_OR_CUSTOMER_REQUEST",
  "responseLetterFileIds": ["FILE-RL-001"],
  "deliveryProofFileIds": ["FILE-DP-001"],
  "taskVersion": 1,
  "workOrderVersion": 12,
  "requestId": "560215f4-cab9-4ff2-806f-d47950116eea"
}

响应采用 8.4.5,并创建 REPORT 任务。缺少任一类附件返回 RISK-4221

8.10 调查报告、成果物与办结接口请求与响应字段定义

8.10.1 请求字段定义

接口 字段位置 字段 类型 必填 定义
ACT-10 path taskId string 调查报告任务标识;无请求体
ACT-11 path taskId string 调查报告任务标识
ACT-11 body templateId string 报告模板标识
ACT-11 body templateVersion integer 报告模板版本
ACT-11 body investigationVersion integer 锁定的调查版本
ACT-11 body callbackVersion integer/null 条件 主责必填;协查必须为空
ACT-11 body taskVersion integer 报告任务版本
ACT-11 body workOrderVersion integer 工单版本
ACT-11 body requestId string 幂等请求标识
ACT-12 path reportId string 已生成报告标识;无请求体
ACT-13 path taskId string 成果物提交任务标识
ACT-13 body reportId string 已生成报告标识
ACT-13 body reportVersion integer 报告版本
ACT-13 body deliverables[] object[] 成果物集合,至少 1 项
ACT-13 body deliverables[].type enum 成果物类型
ACT-13 body deliverables[].fileId string 已上传并有权绑定的文件标识
ACT-13 body taskVersion integer 任务版本
ACT-13 body workOrderVersion integer 工单版本
ACT-13 body requestId string 幂等请求标识
ACT-14 path id string 工单标识
ACT-14 body closeReason string 办结原因/说明
ACT-14 body deliverableSetId string 已提交成果物集合标识
ACT-14 body workOrderVersion integer 工单版本
ACT-14 body requestId string 幂等请求标识

8.10.2 响应字段定义

接口 响应字段 类型 定义
ACT-10 data.taskId/taskVersion string/integer 报告任务及版本
ACT-10 data.workOrder object 工单标识、12398 工单号、责任类型和版本
ACT-10 data.investigation object 锁定的调查记录、版本、提交时间和结构化数据
ACT-10 data.callback object/null 主责的回访结果;协查固定为空
ACT-10 data.attachments[] object[] 报告可引用附件
ACT-10 data.template object 模板标识、版本和名称
ACT-10 data.output object 输出状态、报告标识和文件标识
ACT-10 data.allowedActions[] string[] 当前允许的报告动作
ACT-11 data.reportId string 报告标识
ACT-11 data.jobId string/null 异步生成任务标识;同步生成时为空
ACT-11 data.outputStatus enum GENERATINGREADYFAILED
ACT-11 data.fileId/fileName string/null 同步完成或异步完成后的文件信息
ACT-11 data.contentType string/null 报告文件 MIME 类型
ACT-11 data.downloadable boolean 当前是否可下载
ACT-11 data.taskVersion/workOrderVersion integer 更新后的版本
ACT-12 HTTP body binary 报告文件流
ACT-12 Content-Type string 报告文件 MIME 类型
ACT-12 Content-Disposition string 下载文件名
ACT-12 X-File-Id string 输出文件标识
ACT-12 X-Report-Version integer 报告版本
ACT-13 data.deliverableSetId string 成果物集合标识
ACT-13 data.taskStatus enum 成果物任务状态
ACT-13 data.currentStage enum 当前流程环节
ACT-13 data.readyToClose boolean 是否满足办结条件
ACT-13 data.taskVersion/workOrderVersion integer 更新后的版本
ACT-14 data.workOrderId string 已办结工单标识
ACT-14 data.orderStatus enum 固定为 CLOSED
ACT-14 data.currentStage enum 办结时所在环节
ACT-14 data.closedAt datetime 服务端办结时间
ACT-14 data.closedBy object 办结人,包含 userIdname
ACT-14 data.workOrderVersion integer 更新后的工单版本

8.10.3 请求与响应示例

ACT-10 报告上下文

GET /risk/tasks/{taskId}/report-context 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "taskId": "TASK-RPT-001",
    "taskVersion": 1,
    "workOrder": { "workOrderId": "WO-20260806-009", "workOrderNo12398": "2026-08-06-009", "responsibilityType": "ASSIST", "version": 10 },
    "investigation": { "investigationId": "INV-009", "version": 1, "submittedAt": "2026-08-13T10:00:00+08:00", "data": {} },
    "callback": null,
    "attachments": [],
    "template": { "templateId": "TPL-RPT-001", "templateVersion": 2, "name": "12398调查报告" },
    "output": { "status": "PENDING", "reportId": null, "fileId": null },
    "allowedActions": ["CONFIRM_REPORT"]
  }
}

主责工单的 callback 必须包含已完成的回访版本;协查必须为 null

ACT-11 确认生成报告
{
  "templateId": "TPL-RPT-001",
  "templateVersion": 2,
  "investigationVersion": 1,
  "callbackVersion": null,
  "taskVersion": 1,
  "workOrderVersion": 10,
  "requestId": "aec607a6-a962-4f97-9650-d49624988bcb"
}

异步生成响应建议使用 HTTP 202 Accepted

{
  "code": 200,
  "msg": "报告生成任务已创建",
  "data": {
    "reportId": "RPT-001",
    "jobId": "JOB-RPT-001",
    "outputStatus": "GENERATING",
    "taskVersion": 2,
    "workOrderVersion": 11
  }
}

若实现为同步生成,可返回 HTTP 200,并直接提供 fileIdfileNamecontentTypedownloadable: true

ACT-12 下载报告

GET /risk/reports/{reportId}/download 无 body。成功返回受控文件流:

Content-Type: application/pdf
Content-Disposition: attachment; filename="2026-08-06-009-调查报告.pdf"
X-File-Id: FILE-RPT-001
X-Report-Version: 1

报告仍在生成时返回 HTTP 409、RISK-4091;生成失败时响应应包含可展示的失败原因和是否允许重新生成。

ACT-13 提交成果物
{
  "reportId": "RPT-001",
  "reportVersion": 1,
  "deliverables": [
    { "type": "INVESTIGATION_REPORT", "fileId": "FILE-RPT-001" },
    { "type": "SUPPORTING_MATERIAL", "fileId": "FILE-SUP-001" }
  ],
  "taskVersion": 1,
  "workOrderVersion": 11,
  "requestId": "e2f3d22c-2be0-461c-b9e5-c089ea4c0e9c"
}
{
  "code": 200,
  "msg": "成果物已提交",
  "data": {
    "deliverableSetId": "DEL-001",
    "taskStatus": "COMPLETED",
    "currentStage": "DELIVERABLE",
    "readyToClose": true,
    "taskVersion": 2,
    "workOrderVersion": 12
  }
}
ACT-14 确认办结
{
  "closeReason": "调查、审核、报告及成果物均已完成",
  "deliverableSetId": "DEL-001",
  "workOrderVersion": 12,
  "requestId": "995a8d84-a776-4dd8-98ca-779004ab8cbb"
}
{
  "code": 200,
  "msg": "工单已办结",
  "data": {
    "workOrderId": "WO-20260806-001",
    "orderStatus": "CLOSED",
    "currentStage": "DELIVERABLE",
    "closedAt": "2026-08-13T17:30:00+08:00",
    "closedBy": { "userId": "1002", "name": "张某" },
    "workOrderVersion": 13
  }
}

8.11 文件、字典、配置、统计与异步任务接口请求与响应字段定义

8.11.1 请求字段定义

接口 字段位置 字段 类型 必填 定义
FILE-01 multipart file binary 待上传文件,须校验大小、扩展名、MIME 和安全风险
FILE-01 multipart purpose enum 文件用途,取值见 8.12
FILE-01 multipart workOrderId string 所属工单标识
FILE-01 multipart taskId string 条件 任务办理过程中上传时必填
FILE-02 path fileId string 文件标识;无请求体
FILE-03 path fileId string 临时文件标识
FILE-03 query version integer 文件记录版本;无请求体
DICT-01 path type string 字典类型编码
DICT-01 query enabled boolean 是否只返回启用项,默认 true
CFG-01 无查询参数、无请求体
CFG-02 body configVersion integer 当前时限配置版本
CFG-02 body totalLimitMinutes integer 全流程总时限,必须为正整数
CFG-02 body stages[] object[] 环节时限集合
CFG-02 body stages[].stageCode enum 环节编码,不得重复
CFG-02 body stages[].limitMinutes integer 环节时限,必须为正整数
CFG-02 body effectiveFrom datetime 新版本生效时间
CFG-02 body changeReason string 变更原因
CFG-02 body publish boolean 是否立即发布
CFG-03 无查询参数、无请求体
CFG-04 body ruleVersion integer 当前规则版本
CFG-04 body rules[] object[] 派工规则集合
CFG-04 body rules[].ruleId string 条件 修改已有规则时必填;新增时可为空
CFG-04 body rules[].priority integer 规则优先级,数值冲突处理方式待确认
CFG-04 body rules[].conditions[] object[] 匹配条件集合
CFG-04 body rules[].conditions[].field string 条件字段,必须来自白名单
CFG-04 body rules[].conditions[].operator enum 比较操作符
CFG-04 body rules[].conditions[].value any 比较值,类型须与字段一致
CFG-04 body rules[].result object 派工建议结果
CFG-04 body rules[].enabled boolean 规则是否启用
CFG-04 body effectiveFrom datetime 生效时间
CFG-04 body changeReason string 变更原因
CFG-04 body publish boolean 是否发布
ANA-01 query from date 统计开始日期,含边界
ANA-01 query to date 统计结束日期,含边界
ANA-01 query deptId string 部门范围;仍受当前用户数据权限约束
ANA-02 query pageNum integer 页码,从 1 开始
ANA-02 query pageSize integer 每页数量
ANA-02 query from date 办结开始日期
ANA-02 query to date 办结结束日期
ANA-02 query deptId string 部门范围
JOB-01 path jobId string 异步任务标识;无请求体

8.11.2 响应字段定义

接口 响应字段 类型 定义
FILE-01 data.fileId string 文件标识,后续业务接口仅传此标识
FILE-01 data.fileName string 安全处理后的文件名
FILE-01 data.contentType string 服务端识别的 MIME 类型
FILE-01 data.size integer 文件字节数
FILE-01 data.sha256 string 文件摘要
FILE-01 data.purpose enum 文件用途
FILE-01 data.bindingStatus enum TEMPORARYBOUND
FILE-01 data.uploadedAt datetime 上传完成时间
FILE-02 HTTP body binary 受控文件流
FILE-02 Content-Type string 文件 MIME 类型
FILE-02 Content-Disposition string 内联播放或附件下载及安全文件名
FILE-02 Content-Length integer 文件字节数
FILE-03 data.fileId string 已删除临时文件标识
FILE-03 data.deleted boolean 是否删除成功
DICT-01 data.type string 字典类型
DICT-01 data.version integer 字典版本
DICT-01 data.items[] object[] 字典项集合
DICT-01 data.items[].value/label string 字典编码及显示名称
DICT-01 data.items[].sort integer 排序值
DICT-01 data.items[].enabled boolean 是否启用
CFG-01/CFG-02 data.configId string 时限配置标识
CFG-01/CFG-02 data.configVersion integer 配置版本
CFG-01/CFG-02 data.status enum 草稿、启用或停用
CFG-01/CFG-02 data.totalLimitMinutes integer 全流程总时限
CFG-01/CFG-02 data.stages[] object[] 环节编码及分钟数
CFG-01/CFG-02 data.effectiveFrom datetime 生效时间
CFG-03/CFG-04 data.ruleSetId string 规则集标识
CFG-03/CFG-04 data.ruleVersion integer 规则版本
CFG-03/CFG-04 data.status enum 规则集状态
CFG-03/CFG-04 data.rules[] object[] 规则、条件和建议结果集合
CFG-03/CFG-04 data.effectiveFrom datetime 生效时间
ANA-01 data.period object 实际统计日期范围
ANA-01 data.metrics.importedCount integer 导入工单数
ANA-01 data.metrics.processingCount integer 处理中工单数
ANA-01 data.metrics.closedCount integer 已办结工单数
ANA-01 data.metrics.overdueCount integer 逾期工单数
ANA-01 data.metrics.primaryCount integer 主责工单数
ANA-01 data.metrics.assistCount integer 协查工单数
ANA-01 data.generatedAt datetime 统计数据生成时间
ANA-02 total integer 已办结工单总数
ANA-02 rows[] object[] 工单摘要,继承 WO-01 并增加办结字段
ANA-02 rows[].closedAt datetime 办结时间
ANA-02 rows[].durationMinutes integer 从规定起点到办结的耗时分钟数,口径待 D-07 确认
ANA-02 rows[].overdue boolean 是否逾期
JOB-01 data.jobId string 异步任务标识
JOB-01 data.jobType enum 任务类型,如导入或报告生成
JOB-01 data.status enum PENDINGRUNNINGSUCCEEDEDFAILEDCANCELLED
JOB-01 data.progress integer 0100 的整数进度
JOB-01 data.createdAt/finishedAt datetime/null 创建和结束时间
JOB-01 data.result object/null 成功结果;结构由 jobType 决定
JOB-01 data.error object/null 失败信息,至少包含稳定错误码和说明

8.11.3 请求与响应示例

FILE-01/FILE-02/FILE-03 文件接口

POST /risk/files 使用 multipart/form-datafilepurposeworkOrderIdtaskIdpurpose 取值见 8.12。

{
  "code": 200,
  "msg": "上传成功",
  "data": {
    "fileId": "FILE-RL-001",
    "fileName": "答复书.pdf",
    "contentType": "application/pdf",
    "size": 248102,
    "sha256": "53dd...a8cb",
    "purpose": "RESPONSE_LETTER",
    "bindingStatus": "TEMPORARY",
    "uploadedAt": "2026-08-13T15:45:00+08:00"
  }
}

FILE-02 GET /risk/files/{fileId} 无 body,成功返回受控文件流;无权访问返回 RISK-4031。FILE-03

DELETE /risk/files/{fileId}?version=1
{ "code": 200, "msg": "临时文件已删除", "data": { "fileId": "FILE-RL-001", "deleted": true } }

已绑定业务记录的文件不得通过 FILE-03 删除。

DICT-01 字典

GET /risk/dictionaries/{type}?enabled=true 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "type": "RESPONSIBILITY_TYPE",
    "version": 1,
    "items": [
      { "value": "PRIMARY", "label": "主责", "sort": 1, "enabled": true },
      { "value": "ASSIST", "label": "协查", "sort": 2, "enabled": true }
    ]
  }
}
CFG-01/CFG-02 时限配置

GET /risk/config/sla 无 body;响应:

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "configId": "SLA-001",
    "configVersion": 3,
    "status": "ENABLED",
    "totalLimitMinutes": 188,
    "stages": [
      { "stageCode": "DISPATCH", "limitMinutes": 20 },
      { "stageCode": "FIRST_CONTACT", "limitMinutes": 30 },
      { "stageCode": "PRELIMINARY_INVESTIGATION", "limitMinutes": 60 }
    ],
    "effectiveFrom": "2026-08-01T00:00:00+08:00"
  }
}

PUT /risk/config/sla 请求体:

{
  "configVersion": 3,
  "totalLimitMinutes": 188,
  "stages": [
    { "stageCode": "DISPATCH", "limitMinutes": 20 },
    { "stageCode": "FIRST_CONTACT", "limitMinutes": 30 },
    { "stageCode": "PRELIMINARY_INVESTIGATION", "limitMinutes": 60 }
  ],
  "effectiveFrom": "2026-09-01T00:00:00+08:00",
  "changeReason": "调整事件初查时限",
  "publish": true
}

响应返回新的 configIdconfigVersionstatuseffectiveFrom,不得覆盖旧版本。

CFG-03/CFG-04 派工规则

GET /risk/config/dispatch-rules 无 body;响应 data 至少包含 ruleSetIdruleVersionstatusrules

{
  "ruleVersion": 5,
  "rules": [
    {
      "ruleId": "RULE-001",
      "priority": 10,
      "conditions": [{ "field": "problemCategoryCode", "operator": "EQ", "value": "SAFETY_RISK" }],
      "result": { "preliminaryDeptIds": ["D-OPS"] },
      "enabled": true
    }
  ],
  "effectiveFrom": "2026-09-01T00:00:00+08:00",
  "changeReason": "安全隐患默认由运营部初查",
  "publish": true
}

响应返回新规则版本和发布状态。规则 DSL、冲突策略和试算接口仍属于 D-06 待确认项。

ANA-01/ANA-02 统计

GET /risk/analytics/overview?from=2026-08-01&to=2026-08-31&deptId=D-OPS 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "period": { "from": "2026-08-01", "to": "2026-08-31" },
    "metrics": {
      "importedCount": 103,
      "processingCount": 34,
      "closedCount": 69,
      "overdueCount": 2,
      "primaryCount": 61,
      "assistCount": 42
    },
    "generatedAt": "2026-08-13T18:00:00+08:00"
  }
}

GET /risk/analytics/closed-orders?pageNum=1&pageSize=20&from=2026-08-01&to=2026-08-31 返回 TableDataInforows 使用 WO-01 工单摘要并增加 closedAtdurationMinutesoverdue。指标正式口径仍需关闭 D-07 后确定。

JOB-01 异步任务状态

GET /risk/jobs/{jobId} 无 body。

{
  "code": 200,
  "msg": "查询成功",
  "data": {
    "jobId": "JOB-RPT-001",
    "jobType": "REPORT_GENERATION",
    "status": "SUCCEEDED",
    "progress": 100,
    "createdAt": "2026-08-13T17:00:00+08:00",
    "finishedAt": "2026-08-13T17:00:08+08:00",
    "result": { "reportId": "RPT-001", "fileId": "FILE-RPT-001", "downloadable": true },
    "error": null
  }
}

任务状态建议为 PENDINGRUNNINGSUCCEEDEDFAILEDCANCELLED。前端轮询间隔建议不小于 1 秒,并在完成或失败后停止轮询。

8.12 联调枚举与字段规则

业务字段 编码 中文显示
responsibilityType PRIMARY / ASSIST 主责 / 协查
reviewResult APPROVED / REJECTED 同意 / 不同意
callbackResult AGREE / DISAGREE_OR_CUSTOMER_REQUEST 同意 / 不同意或客户主动要求
dispatchMode MANUAL / SMART 人工派工 / 智能建议后确认
rowStatus VALID / DUPLICATE / INVALID 有效 / 重复 / 错误
filePurpose IMPORT_SOURCE / RECORDING / PRELIMINARY_ATTACHMENT / RESPONSE_LETTER / DELIVERY_PROOF / REPORT_OUTPUT / DELIVERABLE 导入原件 / 录音 / 初查附件 / 答复书 / 送达凭证 / 报告输出 / 成果物

联调必须遵守以下规则:

  1. 前端提交稳定编码,展示使用后端返回的中文名称或字典,不提交中文作为枚举值。
  2. 所有时间使用带时区的 ISO 8601,例如 2026-08-13T16:00:00+08:00;纯日期使用 YYYY-MM-DD
  3. 金额以最小货币单位整数传输;当前原型没有金额字段,未来新增时不得使用浮点数。
  4. 空数组使用 [],无值对象使用 null;不得混用空字符串表达 null
  5. ID 一律按字符串处理,前端不得转换为 JavaScript number 后再传回。
  6. 手机号、地址、录音和附件是否返回完整数据由服务端权限决定;前端不得依据掩码值发起写操作。
  7. 前端只能提交当前详情响应中的 version;收到 RISK-4090 后重新获取详情,不自动覆盖。
  8. 写接口成功后以响应中的 currentStagenextTasks 和最新版本为准,不按按钮名称本地推断流程。
  9. PRIMARY 的全面调查提交依赖首联和全部初查;ASSIST 只依赖全部初查。该判断必须以后端 submitReady 为权威。
  10. 业务部主任审核请求不携带目标环节;后端依据持久化责任类型决定进入回访或调查报告。
  11. 报告“确认生成”和“下载”是两个动作;生成接口使用幂等键,下载接口不得推进任务状态。
  12. 文件先上传取得 fileId,业务提交再绑定;业务提交失败时文件保持临时状态并由后台清理。

9. 后端业务与技术约束

9.1 状态与权限约束

  1. 每个写接口同时校验:用户权限、数据范围、任务所有权、任务状态、工单当前环节和数据版本。
  2. 状态只允许按定义的状态机迁移;跳步、重复提交、对已完成任务再次提交均拒绝。
  3. 驳回必须指定目标环节并新建返工任务,旧任务和旧调查版本保持不可变。
  4. 并行初查使用任务集合判断完成,不能以工单上的单一“调查状态”覆盖多个部门结果。
  5. 派工完成后即创建或开放服务监督员全面调查任务,允许编辑和保存草稿;是否允许提交由服务端根据 responsibilityType 及前置任务完成情况实时计算。
  6. 业务部主任审核通过后必须读取派工阶段持久化的主责/协查判定:主责创建回访任务,协查创建调查报告任务,两个分支不得同时创建。
  7. 主责/协查切换如已生成任务,必须撤销旧任务并记录原因;禁止静默修改。
  8. 已办结工单默认只读;重新开启需独立权限、原因和审计事件。

9.2 幂等、并发与事务

  • 确认导入、派工、提交、审核、办结必须支持幂等键,重复请求返回同一业务结果。
  • 工单、任务、调查版本和配置均使用乐观锁版本号;版本冲突返回明确错误,提示用户刷新。
  • “派工记录 + 多个任务创建 + 流程状态更新 + 审计事件”必须处于同一事务。
  • “审核结果 + 当前任务完成 + 下游任务创建/返工任务创建 + 工单状态更新”必须处于同一事务。
  • 文件上传与业务提交分两阶段处理:先上传临时文件,业务提交成功后绑定;定期清理超时未绑定文件。
  • 异步导入和智能报告生成不能在 HTTP 请求中长时间阻塞,应使用任务状态查询,并保证重复消费幂等。

9.3 导入约束

  1. 文件扩展名和实际 MIME/内容类型必须同时校验,禁止只看后缀。
  2. 导入模板应带版本;字段缺失、类型错误、枚举无效、日期非法、编号重复必须形成行级错误。
  3. 预览不写入正式工单;确认导入必须绑定原预览文件摘要和 previewToken。
  4. 批次号唯一性、12398 工单编号重复处理策略需确认:拒绝、覆盖、忽略或形成新版本。
  5. 部分成功策略需确认。建议默认“整批校验、有效行可确认”,确认结果保留失败行,不允许悄然丢弃。
  6. 原始文件、解析版本、操作人和导入结果必须可追溯。

9.4 表单校验约束

  • 所有文本字段设置长度上限并进行服务端校验;富文本需消毒,防止脚本注入。
  • 电话号码保留业务允许的字符,但标准化后再用于查询;模糊查询需防止全表扫描。
  • 日期不得明显晚于当前业务允许时间;首联、调查、审核、回访时间应满足流程先后顺序。
  • 主责必须选择首联部门;协查不得生成首联任务;初查部门至少 1 个且不得重复。
  • 调查草稿可在前置任务完成前保存;调查提交时,主责必须校验首联及全部初查完成,协查必须校验全部初查完成。
  • 业务部主任审核通过时,主责必须进入回访分支,协查必须直接进入调查报告分支。
  • 审核不同意时驳回理由必填;同意时不得携带会误导流程的驳回理由。
  • 回访结果为“不同意或客户主动要求”时,答复书和送达凭证均为强制附件;“同意”分支不得被错误阻塞。
  • 报告确认必须锁定所依据的调查版本;主责还必须锁定回访版本,协查不得伪造或要求回访版本。
  • 报告生成与下载应分离:确认生成属于幂等写操作,重复下载属于受权读操作,不得因重复下载重复推进流程。
  • 办结前必须校验不存在未完成的有效任务,报告和成果物满足配置要求。

9.5 文件与敏感数据

  • 附件存储使用 fileId,不在业务表保存本地路径或公开 URL。
  • 下载/播放每次鉴权;链接短期有效,禁止通过猜测 fileId 越权访问。
  • 文件执行病毒/恶意内容扫描,限制类型、大小、数量和总容量;具体阈值待安全评审。
  • 客户姓名、电话、地址、录音、转译文本、答复书和送达凭证按敏感等级控制,日志中脱敏。
  • 导出和批量下载属于独立权限并记录审计;原型未展示导出入口,未经确认不实现。

9.6 时限、规则和审计

  • 时限以流程配置版本计算,已开始实例是否随新配置变化必须明确;建议锁定启动时版本。
  • 暂停、节假日、退回返工、并行任务的计时方式需业务确认。
  • 智能派工只产生可解释建议,主管确认后才创建任务;必须记录输入摘要、规则版本、建议和人工调整。
  • 配置发布需要高权限、二次确认、变更原因、生效时间和回滚能力。
  • 审计事件至少记录 actor、角色、部门、动作、对象、前后状态、业务版本、requestId、IP、时间和结果。

9.7 错误码建议

错误码 含义
RISK-4001 请求字段校验失败
RISK-4002 枚举或字典值无效
RISK-4010 登录失效或令牌无效
RISK-4030 无菜单/操作权限
RISK-4031 超出数据范围或任务不属于当前用户
RISK-4040 工单、任务或文件不存在
RISK-4090 数据版本冲突
RISK-4091 当前状态不允许该操作
RISK-4092 幂等请求参数与首次请求不一致
RISK-4220 前置任务尚未全部完成
RISK-4221 条件必填附件缺失
RISK-4222 导入批次或工单编号重复
RISK-4290 请求过于频繁
RISK-5001 异步任务处理失败

10. 非功能需求

维度 需求建议
可用性 所有提交操作给出明确成功/失败反馈;长表单提供草稿和离开提醒
性能 普通分页查询在约定数据量下稳定响应;录音、附件和统计使用独立加载,不阻塞基础详情
可扩展性 流程环节、部门类型、事件分类和规则使用配置/字典,不写死角色名称
可观测性 请求链路、异步任务、状态迁移和外部存储均可追踪;requestId 贯穿日志与审计
安全 认证、最小权限、敏感字段脱敏、文件扫描、下载鉴权、防重放和输入消毒
可恢复性 导入和异步任务可重试;配置可回滚;关键写操作可根据审计恢复业务事实
兼容性 保持已有 Bearer Token、用户/部门接口及通用返回结构,变更需版本化
无障碍/易用性 表单标签、错误提示和键盘焦点明确;状态不只依赖颜色表达

11. 原型问题、冲突与待确认事项

11.1 高优先级业务决策

编号 问题 影响 建议决策方向
D-01 派工完成后是否允许服务监督主管变更主责/协查判定 可能导致已生成的首联、初查、调查或回访任务失效 建议默认禁止;如业务必须支持,应限定时点并采用撤销旧任务、重新派工和全量审计
D-02 全面调查的 1-13 与 1-21 字段范围不同 影响动态表单和必填规则 明确按业务类型/事件类型的适用条件
D-03 1-4 与 1-18 审核弹窗均出现“回访分派”,但主流程只允许业务部主任通过后按责任类型分支 可能重复选择回访部门,或让协查错误进入回访 明确回访承接部门在哪一级审核生效;协查审核界面必须隐藏或禁用回访分派
D-04 班组回访表单缺失,只有分派和结果页 无法区分执行回访与监督员结果填报 明确两个环节是否合并及各自字段
D-05 调查报告已改为“确认下载”,但报告模板、文件格式、签章、重生成和历史版本规则未展示 无法确定报告生成与下载接口契约 明确模板、输出格式、生成失败处理、版本保留和重新下载规则
D-06 智能派工规则配置页为空 无法定义规则数据结构 补充条件、优先级、冲突、试算、发布和回滚需求
D-07 统计分析页为空 无法定义指标和接口 明确指标、口径、维度、权限和刷新频率
D-08 重复工单和部分导入失败策略未说明 影响数据一致性 确认唯一键、覆盖/忽略/拒绝策略
D-09 状态仅出现待分派/处理中/已结束,与实际 12 步不匹配 容易形成非法状态跃迁 采用生命周期 + 任务环节双层状态
D-10 流程时限只展示分钟,未说明工作日、暂停和驳回重算 影响 SLA 明确日历、起止点、暂停和重算规则

11.2 原型一致性问题

  • “智能运营团队”与页头“运营智能团队”名称不一致。
  • 总值班经理工单查询页页头错误显示“运营智能团队”。
  • 监督员待办统计出现“成果无输出”,疑似应为“成果物输出”。
  • 服务监督主管和业务部主任审核弹窗均出现回访分派字段,与“业务部主任审核通过后再按主责/协查分支”的流程规则存在职责重叠。
  • 1-14/1-15 调查报告页面已经区分不同意与同意状态,但报告模板、生成进度、失败重试和历史版本未展示。
  • 1-16 成果物输出继续复用大量调查/回访信息,专属成果物类型和办结清单仍不明确。
  • 最新原型将回访结果展示为“同意/不同意或客户主动要求”,旧文档或流程中如仍使用“满意/不满意”应统一替换。
  • “客户所在地区(省)”和“省份”同时存在,需明确一个是原始文本、一个是标准编码,还是重复字段。
  • “工单状态”和“工单环节”在部分列表列中混用,必须拆分定义。

12. 验收建议与追踪矩阵

12.1 关键业务验收场景

  1. 有效文件预览后确认导入,生成批次、工单和完整审计记录;重复确认不重复建单。
  2. 含错误行的文件展示准确行号和原因,未确认前不写正式工单。
  3. 服务监督主管判定主责并派工后,系统生成 1 个首联任务、N 个初查任务,并立即向指定服务监督员开放全面调查填报;服务监督员可先行填写和保存草稿。
  4. 服务监督主管判定协查并派工后,系统只生成 N 个初查任务,不生成首联任务,同时立即向指定服务监督员开放全面调查填报。
  5. 主责任一首联或初查任务未完成时、协查任一初查任务未完成时,全面调查均只能编辑/保存草稿,不能提交。
  6. 服务监督主管审核或业务部主任审核驳回后生成返工任务,历史调查和审核记录仍可查看。
  7. 业务部主任审核通过主责工单后生成回访分支任务;审核通过协查工单后不生成回访任务,直接生成调查报告任务。
  8. 无任务所有权的用户即使直接调用接口也不能办理。
  9. 两人同时操作同一任务时,后提交者收到版本冲突,不覆盖先提交结果。
  10. 回访选择“不同意或客户主动要求”但缺少任一必需附件时不能提交;“同意”分支无需附件。
  11. 协查报告上下文不要求首联或回访数据;主责报告必须引用已完成的回访版本。
  12. 报告确认生成重复请求只产生一个业务版本;报告生成完成后可重复受权下载,不重复推进流程。
  13. 已办结前存在未完成任务时拒绝办结;成功办结后普通用户不能再修改。
  14. 修改时限或派工规则产生新版本,不篡改既有流程实例的历史计算结果。
  15. 手机号、地址、录音和附件在无权限用户的列表、详情、日志和下载接口中均不可泄露。
  16. 各待办统计卡片数量与同条件列表总数一致。

12.2 需求追踪

需求域 原型证据 主要接口 主要约束
登录 1-1 认证接口 验证码、Bearer Token
导入 1-2、1-3、1-41 IMP-0107 预览隔离、幂等、行级错误
查询 1-341-40 WO-0106 数据权限、分页、脱敏
派工 1-101-12 DSP-0103 服务监督主管判定主责/协查、单选/多选、事务
首联 1-26、1-30、1-32、1-33 DSP-04、ACT-02 仅主责、本部门候选、任务所有权
初查 1-231-25、1-28、1-29 ACT-03 多部门并行任务全部完成
全面调查 1-13、1-21、1-22 ACT-04、ACT-05 先行填报、动态字段、版本化、分支前置条件
主管审核 1-4、1-5、1-9 ACT-06 驳回理由、不可覆盖历史
业务审核 1-18、1-19、1-27 ACT-07 按持久化责任类型创建唯一后续分支
回访 1-17、1-20、1-31、1-33 DSP-04/05、ACT-08/09、FILE 仅主责、条件附件、敏感信息
报告/成果物 1-141-16 ACT-1014 数据版本快照、确认生成、受权下载、办结校验
配置/统计 1-61-8 CFG、ANA 版本发布、指标口径待补齐

13. 后续交付建议

在进入后端开发前,建议按以下顺序完成需求基线:

  1. 业务评审本报告第 6、7、11 节,先关闭 D-01D-10。
  2. 设计人员统一两级审核中的回访分派职责,并补齐班组回访、报告生成状态、成果物清单、智能规则和统计分析页面。
  3. 将字段字典固化为数据模型与枚举表,将状态模型固化为状态迁移矩阵。
  4. 基于第 8 节生成 OpenAPI 3.1,补充请求/响应 Schema、权限编码和错误码。
  5. 用第 12.1 节场景形成接口验收测试和流程集成测试。

本稿可作为需求评审和接口设计的输入,但在高优先级待确认项关闭前,不应直接据此创建数据库表或固化流程代码。