|
@@ -5,6 +5,7 @@ import com.flow.common.oauth2.utils.SecurityContextUtil;
|
|
|
import com.flow.constant.NodeTypeConstant;
|
|
|
import com.flow.entity.*;
|
|
|
import com.flow.entity.node.ApprovalNode;
|
|
|
+import com.flow.entity.node.StartNode;
|
|
|
import com.flow.entity.settings.CancelConfig;
|
|
|
import com.flow.entity.settings.Settings;
|
|
|
import com.flow.enums.ApprovalNobodyEnum;
|
|
@@ -29,6 +30,7 @@ import org.springframework.transaction.support.TransactionSynchronizationManager
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Objects;
|
|
|
|
|
|
@Component
|
|
|
@Slf4j
|
|
@@ -50,10 +52,6 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
|
|
|
@Override
|
|
|
protected void taskCreated(FlowableEngineEntityEvent event) {
|
|
|
TaskEntityImpl entity = (TaskEntityImpl) event.getEntity();
|
|
|
- FlowDefine define = flowDefineService.getDefine(entity.getProcessDefinitionId());
|
|
|
- ApprovalNode approvalNode = define.getNode(entity.getTaskDefinitionKey(), ApprovalNode.class);
|
|
|
- AssigneeTypeEnum assigneeType = approvalNode.getAssigneeType();
|
|
|
- ApprovalNobodyEnum nobody = approvalNode.getNobody();
|
|
|
|
|
|
// 更新任务状态
|
|
|
FlowTask flowTask = FlowTask.buildStatus(entity.getId(), ProcessStatus.RUNNING);
|
|
@@ -65,28 +63,35 @@ public class GlobalActivityEventListener extends AbstractFlowableEngineEventList
|
|
|
flowActivity.setStatus(ProcessStatus.RUNNING);
|
|
|
flowActivityService.save(flowActivity);
|
|
|
|
|
|
- // 自动通过
|
|
|
- if (assigneeType == AssigneeTypeEnum.AUTO_PASS) {
|
|
|
- flowTaskService.autoComplete(entity.getId());
|
|
|
- return;
|
|
|
- }
|
|
|
|
|
|
- // 自动拒绝
|
|
|
- if (assigneeType == AssigneeTypeEnum.AUTO_REFUSE) {
|
|
|
- flowTaskService.autoRefuse(entity.getId());
|
|
|
- return;
|
|
|
- }
|
|
|
+ FlowDefine define = flowDefineService.getDefine(entity.getProcessDefinitionId());
|
|
|
+ ApprovalNode approvalNode = define.getNode(entity.getTaskDefinitionKey(), ApprovalNode.class);
|
|
|
+ if(Objects.nonNull(approvalNode)){
|
|
|
+ AssigneeTypeEnum assigneeType = approvalNode.getAssigneeType();
|
|
|
+ ApprovalNobodyEnum nobody = approvalNode.getNobody();
|
|
|
+
|
|
|
+ // 自动通过
|
|
|
+ if (assigneeType == AssigneeTypeEnum.AUTO_PASS) {
|
|
|
+ flowTaskService.autoComplete(entity.getId());
|
|
|
+ return;
|
|
|
+ }
|
|
|
|
|
|
- // 审批人为空方式
|
|
|
- if (StringUtils.isBlank(entity.getAssignee()) || "empty".equals(entity.getAssignee())) {
|
|
|
- entity.setAssignee("admin");
|
|
|
- taskService.setAssignee(entity.getId(), "admin");
|
|
|
- if (nobody == ApprovalNobodyEnum.PASS) {
|
|
|
- flowTaskService.autoComplete(entity.getId(), " 审批人为空");
|
|
|
- } else if (nobody == ApprovalNobodyEnum.REFUSE) {
|
|
|
- flowTaskService.autoRefuse(entity.getId(), " 审批人为空");
|
|
|
+ // 自动拒绝
|
|
|
+ if (assigneeType == AssigneeTypeEnum.AUTO_REFUSE) {
|
|
|
+ flowTaskService.autoRefuse(entity.getId());
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 审批人为空方式
|
|
|
+ if (StringUtils.isBlank(entity.getAssignee()) || "empty".equals(entity.getAssignee())) {
|
|
|
+ entity.setAssignee("admin");
|
|
|
+ taskService.setAssignee(entity.getId(), "admin");
|
|
|
+ if (nobody == ApprovalNobodyEnum.PASS) {
|
|
|
+ flowTaskService.autoComplete(entity.getId(), " 审批人为空");
|
|
|
+ } else if (nobody == ApprovalNobodyEnum.REFUSE) {
|
|
|
+ flowTaskService.autoRefuse(entity.getId(), " 审批人为空");
|
|
|
+ }
|
|
|
+ return;
|
|
|
}
|
|
|
- return;
|
|
|
}
|
|
|
|
|
|
// 消息通知
|