IQC来料检验任务流程开发说明.md** (continued) 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. 通过 Listener 监听流程回调并更新 `flowstate`。
  2. 业务状态 `FINSPECTSTATUS` 可在流程节点触发或流程结束时统一更新。
  3. #### 2.2.1 流程提交后:更新为“审批中”
  4. ```sql
  5. update qms_qcp_insappnentry
  6. set flowstate = '审批中'
  7. where id = '{<TaskEntryId>}';
  8. ```
  9. #### 2.2.2 流程结束后:更新为“审批完成”
  10. ```sql
  11. update qms_qcp_insappnentry
  12. set flowstate = '审批完成',
  13. FINSPECTSTATUS = '检验完成'
  14. where id = '{<TaskEntryId>}';
  15. ```
  16. #### 2.2.3 流程驳回/取消(示例)
  17. ```sql
  18. update qms_qcp_insappnentry
  19. set flowstate = '已驳回'
  20. where id = '{<TaskEntryId>}';
  21. ```
  22. ---
  23. ## 3. 后端业务逻辑开发(参照 oa_leave)
  24. ### 3.1 参考类
  25. 请假流程后端参考:
  26. - `BpmOALeaveController`
  27. - `BpmOALeaveServiceImpl`
  28. IQC 任务流程需实现类似结构的 Controller + Service,并按“业务表 + 流程”方式接入。
  29. ### 3.2 流程模型编号(PROCESS_KEY)
  30. 请假:`oa_leave`
  31. IQC 任务(示例):`iqc_task`
  32. > 该 Key 必须与流程模型实际配置一致。
  33. ### 3.3 创建流程实例
  34. 使用 `BpmProcessInstanceApi` 创建流程实例:
  35. - `#createProcessInstance(...)`
  36. 发起 IQC 任务流程时建议完成:
  37. - 创建流程实例
  38. - 回写 `qms_qcp_insappnentry.process_instance_id`
  39. - 更新 `flowstate = '审批中'`
  40. ---
  41. ## 4. 前端业务逻辑开发(参照 oa_leave)
  42. ### 4.1 参考页面
  43. 请假模块前端参考:
  44. - 发起:`leave/create.vue`
  45. - 详情:`leave/detail.vue`
  46. - 列表:`leave/index.vue`
  47. ### 4.2 IQC 任务页面对齐建议
  48. 可沿用现有 QMS 任务页面逻辑:
  49. - 列表:`TaskList.vue`(已存在)
  50. - 表单:`TaskForm.vue`(已存在)
  51. 接入流程后建议实现:
  52. - 列表 “开始检验 / 继续检验” → 发起流程(create)
  53. - 详情查看 → 进入流程详情(detail)
  54. ---
  55. ## 5. 路由配置(参照 remaining.ts 的请假流程配置)
  56. 为 IQC 任务流程新增隐藏路由(create/detail),用于:
  57. - 从任务列表发起流程
  58. - 在流程流转/审批中查看业务详情
  59. 示例(路径可按实际模块调整):
  60. ```ts
  61. {
  62. path: '/qms',
  63. component: Layout,
  64. name: 'qms',
  65. meta: { hidden: true },
  66. children: [
  67. {
  68. path: 'iqc/task/create',
  69. component: () => import('@/views/qms/TaskForm.vue'),
  70. name: 'IqcTaskCreate',
  71. meta: {
  72. noCache: true,
  73. hidden: true,
  74. canTo: true,
  75. title: '发起 IQC 任务',
  76. activeMenu: '/qms/iqc/task/list'
  77. }
  78. },
  79. {
  80. path: 'iqc/task/detail/:id',
  81. component: () => import('@/views/qms/TaskForm.vue'),
  82. name: 'IqcTaskDetail',
  83. meta: {
  84. noCache: true,
  85. hidden: true,
  86. canTo: true,
  87. title: '查看 IQC 任务',
  88. activeMenu: '/qms/iqc/task/list'
  89. }
  90. }
  91. ]
  92. }
  93. ```
  94. ---
  95. ## 6. 流程结束回调监听与业务状态更新(必须)
  96. ### 6.1 监听器机制
  97. 审批结束时(通过 / 不通过 / 取消),后端必须监听最终结果并更新业务表状态。
  98. 请假流程实现参考:
  99. - `BpmOALeaveStatusListener`
  100. (继承 `BpmProcessInstanceStatusEventListener`)
  101. ### 6.2 IQC 任务监听器要求
  102. 需新增监听器(示例命名:`BpmIqcTaskStatusListener`),继承:
  103. - `BpmProcessInstanceStatusEventListener`
  104. 监听流程结束结果并更新:
  105. - `qms_qcp_insappnentry.flowstate`
  106. - `qms_qcp_insappnentry.FINSPECTSTATUS`(按业务规则设置为“检验完成”或“待检验”)
  107. ---
  108. ## 7. 交付清单(Checklist)
  109. ### 7.1 后端
  110. - [ ] 定义 `PROCESS_KEY = "iqc_task"`(以实际模型为准)
  111. - [ ] Controller(参照 `BpmOALeaveController`)
  112. - [ ] ServiceImpl(参照 `BpmOALeaveServiceImpl`)
  113. - [ ] 调用 `BpmProcessInstanceApi#createProcessInstance(...)` 创建流程实例
  114. - [ ] 回写 `process_instance_id`
  115. - [ ] 提交后/结束后 `flowstate` 更新逻辑(建议走 Listener)
  116. - [ ] 新增流程结束监听器(继承 `BpmProcessInstanceStatusEventListener`)
  117. ### 7.2 前端
  118. - [ ] 任务列表 “开始检验/继续检验” 触发流程发起
  119. - [ ] create 页面(复用 `TaskForm.vue` 或新建)
  120. - [ ] detail 页面(复用 `TaskForm.vue` 或新建)
  121. - [ ] `router/modules/remaining.ts` 增加 IQC 任务 create/detail 路由