| | |
| | | import cn.iocoder.yudao.framework.common.util.object.ObjectUtils; |
| | | import cn.iocoder.yudao.framework.common.util.object.PageUtils; |
| | | import cn.iocoder.yudao.framework.datapermission.core.annotation.DataPermission; |
| | | import cn.iocoder.yudao.module.bpm.api.event.BpmProcessInstanceStatusEvent; |
| | | import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO; |
| | | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.BpmModelMetaInfoVO; |
| | | import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO; |
| | |
| | | import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.BpmnModelUtils; |
| | | import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.FlowableUtils; |
| | | import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.SimpleModelUtils; |
| | | import cn.iocoder.yudao.module.bpm.service.attach.BpmBusinessAttachService; |
| | | import cn.iocoder.yudao.module.bpm.service.definition.BpmProcessDefinitionService; |
| | | import cn.iocoder.yudao.module.bpm.service.message.BpmMessageService; |
| | | import cn.iocoder.yudao.module.system.api.dept.DeptApi; |
| | |
| | | |
| | | @Resource |
| | | private BpmProcessIdRedisDAO processIdRedisDAO; |
| | | |
| | | @Resource |
| | | private BpmBusinessAttachService businessAttachService; |
| | | |
| | | // ========== Query 查询相关方法 ========== |
| | | |
| | |
| | | Map<String, String> formFieldsPermission = getFormFieldsPermission(bpmnModel, reqVO.getActivityId(), taskId); |
| | | |
| | | // 3. 拼接数据 |
| | | return BpmProcessInstanceConvert.INSTANCE.buildApprovalDetail(bpmnModel, processDefinition, |
| | | processDefinitionInfo, processInstance, |
| | | BpmApprovalDetailRespVO detailRespVO = BpmProcessInstanceConvert.INSTANCE.buildApprovalDetail(bpmnModel, |
| | | processDefinition, processDefinitionInfo, processInstance, |
| | | processInstanceStatus, approveNodes, todoTask, formFieldsPermission, userMap, deptMap); |
| | | |
| | | // 4. 填充业务附件配置,实现审批详情自动展示外部业务信息 |
| | | businessAttachService.fillBusinessForm(detailRespVO.getProcessDefinition(), processDefinition.getKey(), |
| | | processInstance != null ? processInstance.getBusinessKey() : null); |
| | | return detailRespVO; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | // 3. 发送流程实例的状态事件 |
| | | processInstanceEventPublisher.sendProcessInstanceResultEvent( |
| | | BpmProcessInstanceConvert.INSTANCE.buildProcessInstanceStatusEvent(this, instance, status, reason)); |
| | | BpmProcessInstanceStatusEvent statusEvent = BpmProcessInstanceConvert.INSTANCE |
| | | .buildProcessInstanceStatusEvent(this, instance, status, reason); |
| | | // 带上流程分类(bpm_process_definition_info.category),便于业务模块兼容同一分类下的历史自定义 Key |
| | | BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService |
| | | .getProcessDefinitionInfo(instance.getProcessDefinitionId()); |
| | | if (processDefinitionInfo != null) { |
| | | statusEvent.setProcessDefinitionCategory(processDefinitionInfo.getCategory()); |
| | | } |
| | | processInstanceEventPublisher.sendProcessInstanceResultEvent(statusEvent); |
| | | |
| | | // 4. 流程后置通知 |
| | | if (Objects.equals(status, BpmProcessInstanceStatusEnum.APPROVE.getStatus())) { |
| | | BpmProcessDefinitionInfoDO processDefinitionInfo = processDefinitionService. |
| | | getProcessDefinitionInfo(instance.getProcessDefinitionId()); |
| | | if (ObjUtil.isNotNull(processDefinitionInfo) && |
| | | ObjUtil.isNotNull(processDefinitionInfo.getProcessAfterTriggerSetting())) { |
| | | BpmModelMetaInfoVO.HttpRequestSetting setting = processDefinitionInfo.getProcessAfterTriggerSetting(); |