| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- 通过 Listener 监听流程回调并更新 `flowstate`。
- 业务状态 `FINSPECTSTATUS` 可在流程节点触发或流程结束时统一更新。
- #### 2.2.1 流程提交后:更新为“审批中”
- ```sql
- update qms_qcp_insappnentry
- set flowstate = '审批中'
- where id = '{<TaskEntryId>}';
- ```
- #### 2.2.2 流程结束后:更新为“审批完成”
- ```sql
- update qms_qcp_insappnentry
- set flowstate = '审批完成',
- FINSPECTSTATUS = '检验完成'
- where id = '{<TaskEntryId>}';
- ```
- #### 2.2.3 流程驳回/取消(示例)
- ```sql
- update qms_qcp_insappnentry
- set flowstate = '已驳回'
- where id = '{<TaskEntryId>}';
- ```
- ---
- ## 3. 后端业务逻辑开发(参照 oa_leave)
- ### 3.1 参考类
- 请假流程后端参考:
- - `BpmOALeaveController`
- - `BpmOALeaveServiceImpl`
- IQC 任务流程需实现类似结构的 Controller + Service,并按“业务表 + 流程”方式接入。
- ### 3.2 流程模型编号(PROCESS_KEY)
- 请假:`oa_leave`
- IQC 任务(示例):`iqc_task`
- > 该 Key 必须与流程模型实际配置一致。
- ### 3.3 创建流程实例
- 使用 `BpmProcessInstanceApi` 创建流程实例:
- - `#createProcessInstance(...)`
- 发起 IQC 任务流程时建议完成:
- - 创建流程实例
- - 回写 `qms_qcp_insappnentry.process_instance_id`
- - 更新 `flowstate = '审批中'`
- ---
- ## 4. 前端业务逻辑开发(参照 oa_leave)
- ### 4.1 参考页面
- 请假模块前端参考:
- - 发起:`leave/create.vue`
- - 详情:`leave/detail.vue`
- - 列表:`leave/index.vue`
- ### 4.2 IQC 任务页面对齐建议
- 可沿用现有 QMS 任务页面逻辑:
- - 列表:`TaskList.vue`(已存在)
- - 表单:`TaskForm.vue`(已存在)
- 接入流程后建议实现:
- - 列表 “开始检验 / 继续检验” → 发起流程(create)
- - 详情查看 → 进入流程详情(detail)
- ---
- ## 5. 路由配置(参照 remaining.ts 的请假流程配置)
- 为 IQC 任务流程新增隐藏路由(create/detail),用于:
- - 从任务列表发起流程
- - 在流程流转/审批中查看业务详情
- 示例(路径可按实际模块调整):
- ```ts
- {
- path: '/qms',
- component: Layout,
- name: 'qms',
- meta: { hidden: true },
- children: [
- {
- path: 'iqc/task/create',
- component: () => import('@/views/qms/TaskForm.vue'),
- name: 'IqcTaskCreate',
- meta: {
- noCache: true,
- hidden: true,
- canTo: true,
- title: '发起 IQC 任务',
- activeMenu: '/qms/iqc/task/list'
- }
- },
- {
- path: 'iqc/task/detail/:id',
- component: () => import('@/views/qms/TaskForm.vue'),
- name: 'IqcTaskDetail',
- meta: {
- noCache: true,
- hidden: true,
- canTo: true,
- title: '查看 IQC 任务',
- activeMenu: '/qms/iqc/task/list'
- }
- }
- ]
- }
- ```
- ---
- ## 6. 流程结束回调监听与业务状态更新(必须)
- ### 6.1 监听器机制
- 审批结束时(通过 / 不通过 / 取消),后端必须监听最终结果并更新业务表状态。
- 请假流程实现参考:
- - `BpmOALeaveStatusListener`
- (继承 `BpmProcessInstanceStatusEventListener`)
- ### 6.2 IQC 任务监听器要求
- 需新增监听器(示例命名:`BpmIqcTaskStatusListener`),继承:
- - `BpmProcessInstanceStatusEventListener`
- 监听流程结束结果并更新:
- - `qms_qcp_insappnentry.flowstate`
- - `qms_qcp_insappnentry.FINSPECTSTATUS`(按业务规则设置为“检验完成”或“待检验”)
- ---
- ## 7. 交付清单(Checklist)
- ### 7.1 后端
- - [ ] 定义 `PROCESS_KEY = "iqc_task"`(以实际模型为准)
- - [ ] Controller(参照 `BpmOALeaveController`)
- - [ ] ServiceImpl(参照 `BpmOALeaveServiceImpl`)
- - [ ] 调用 `BpmProcessInstanceApi#createProcessInstance(...)` 创建流程实例
- - [ ] 回写 `process_instance_id`
- - [ ] 提交后/结束后 `flowstate` 更新逻辑(建议走 Listener)
- - [ ] 新增流程结束监听器(继承 `BpmProcessInstanceStatusEventListener`)
- ### 7.2 前端
- - [ ] 任务列表 “开始检验/继续检验” 触发流程发起
- - [ ] create 页面(复用 `TaskForm.vue` 或新建)
- - [ ] detail 页面(复用 `TaskForm.vue` 或新建)
- - [ ] `router/modules/remaining.ts` 增加 IQC 任务 create/detail 路由
|