编辑 | blame | 历史 | 原始文档

MES 产品项目接入 BPM 审批 - 前端联调方案

涉及页面

  • 生产管控-产品设计-产品项目 列表页(src/views/mes/pd/project/index.vue
  • 产品项目 详情页(src/views/mes/pd/project/detail/index.vue
  • 产品项目 流程进度组件(src/views/mes/pd/project/modules/workflow-timeline.vue

业务流程与数据带入

  1. 待审核(2) → 列表/详情点「提交审批」:先调 GET /mes/pd/project/approve-process-list 获取可用 BPM 流程 → 打开流程选择弹窗 → 选中流程后调 PUT /mes/pd/project/submit-approval?id={id}&processDefinitionKey={key} → 项目状态变为 审批中(5)
  2. BPM 后台审批通过 → 后端监听器回调 → 项目状态变为 待归档(3);审批驳回/取消 → 状态回到 待审核(2),可重新提交
  3. 审批中(5) → 列表/详情显示「查看审批」按钮 → 跳转 BPM 流程详情页查看审批进度
  4. 待归档(3) → 点「归档」→ PUT /mes/pd/project/archive?id={id} → 状态变为 已归档(4)

API

方法 路径 说明
GET /mes/pd/project/approve-process-list 获得可用 BPM 审批流程列表
PUT /mes/pd/project/submit-approval 提交审批(待审核→审批中)
PUT /mes/pd/project/archive 归档(待归档→已归档)

请求参数(submit-approval):

参数 类型 必填 说明
id Long 项目编号
processDefinitionKey String 选中的 BPM 流程定义 Key

响应字段变更(/get、/page):

字段 类型 说明
processInstanceId String BPM 流程实例编号,审批中及以后有值

响应示例(approve-process-list):

{
  "code": 0,
  "data": [
    { "id": "xxx", "name": "产品项目审批流程", "key": "mes-pd-project-audit" }
  ]
}

字段展示规则

字段 展示位置 说明
状态 列表、详情 新增字典值「审批中」(value=5),列表 CellDict 自动渲染
processInstanceId 列表/详情「查看审批」 有值才显示「查看审批」按钮

页面改动

1. 列表页 index.vue

  • 「审核」按钮改为「提交审批」:ifShow 仍为 status === PENDING_AUDIT,点击先查流程列表(空则提示「暂无可用审批流程,请先配置 BPM 流程」),有则打开流程选择弹窗
  • 新增「查看审批」按钮:ifShowstatus === APPROVINGprocessInstanceId 有值,点击跳 BPM 流程详情
  • 新增流程选择弹窗组件 process-select-modal.vue(Select 下拉选流程,默认选第一个,确认后调 submit-approval)

2. 详情页 detail/index.vue

  • 「审核通过」按钮改为「提交审批」,逻辑同上,成功后刷新详情
  • 新增「查看审批」按钮:ifShow 为审批中状态,点击跳 BPM 流程详情
  • 顶部按钮区新增审批中判断

3. 流程进度组件 workflow-timeline.vue

  • 步骤由 5 步扩为 6 步:待发布 → 待上传 → 待审核 → 审批中 → 待归档 → 已归档
  • 状态值到步骤索引的映射需显式处理(审批中 value=5 插在待审核之后)

业务规则说明

场景 规则
提交审批 仅待审核(2)状态可提交;若项目下存在未审核的设计资料,后端返回错误「该项目下存在未审核的资料」
审批通过 状态 → 待归档(3),可执行归档
审批驳回/取消 状态 → 待审核(2),可修改后重新提交
归档 仅待归档(3)状态可归档,归档后生成台账记录、项目不可再修改

注意事项

  • 需先在 BPM 后台手工部署审批流程(流程 key=mes-pd-project-audit,分类=mes_pd_project_approve),否则「提交审批」提示暂无可用流程
  • 未提交审批(processInstanceId 为空)时点「查看审批」应提示「该项目尚未提交审批」
  • 历史数据 status 0-4 不受影响;时间线组件需兼容状态值到步骤的非连续映射