diff --git a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java index c08d5dc..9d8a07c 100644 --- a/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java +++ b/dk-modules/business/src/main/java/org/dromara/business/service/impl/BusinessAlertServiceImpl.java @@ -584,10 +584,12 @@ public class BusinessAlertServiceImpl implements IBusinessAlertService { } String tableWorkflow = ptPrefix.getTableWorkflow(); // eg: "dk_workflow" - wrapper.notIn("t.flowStatus", BusinessStatusEnum.CANCEL.getStatus()); +// wrapper.notIn("t.flowStatus", BusinessStatusEnum.CANCEL.getStatus()); + + wrapper.eq("t.handle_type", BusinessStatusEnum.WAITING.getStatus()); // wrapper.apply(" EXISTS(select * from w_dk_workflow.flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)"); - wrapper.apply(" EXISTS(select * from "+tableWorkflow+".flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)"); +// wrapper.apply(" EXISTS(select * from "+tableWorkflow+".flow_his_task ht where ht.approver ='" + LoginHelper.getUserId() + "' and ht.instance_id = t.instanceId)"); Page page = this.baseMapper.pageBusinessAlertHandle(pageQuery.build(), wrapper, ptPrefix); diff --git a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml index b3be2bf..ee5c6f7 100644 --- a/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml +++ b/dk-modules/business/src/main/resources/mapper/business/BusinessAlertMapper.xml @@ -66,14 +66,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java index bffe9d9..d5de845 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java @@ -99,6 +99,8 @@ public class CompleteTaskBo implements Serializable { */ private Boolean assign = false; + private Boolean firstNode = false; + public Map getVariables() { if (variables == null) { return new HashMap<>(16); diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java index bbae4a6..e146fda 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/handler/FlwAlertHandler.java @@ -51,11 +51,22 @@ public class FlwAlertHandler implements FlwCommonHandler { @Override public void processCreateTaskHandler(ProcessCreateTaskEvent processCreateTaskEvent) { String assignName = null; + Boolean firstAlert = false; if (ObjectUtil.isNotEmpty(processCreateTaskEvent.getParams())){ assignName = ObjectUtil.isNotEmpty(processCreateTaskEvent.getParams().get("handler"))?(String)processCreateTaskEvent.getParams().get("handler"):null; + + firstAlert = ObjectUtil.isNotEmpty(processCreateTaskEvent.getParams().get("firstNode"))?(Boolean)processCreateTaskEvent.getParams().get("firstNode"):false; + + } + + //属于第一个节点,还未走到审核节点 + if (firstAlert){ + alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.TODO.getStatus(),processCreateTaskEvent.getIsIllegal(),processCreateTaskEvent.getAlertType(),processCreateTaskEvent.getMessage(),assignName); + + }else { + alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.WAITING.getStatus(),processCreateTaskEvent.getIsIllegal(),processCreateTaskEvent.getAlertType(),processCreateTaskEvent.getMessage(),assignName); } - alertService.updateAlertStatus(processCreateTaskEvent.getBusinessId(), BusinessStatusEnum.WAITING.getStatus(),processCreateTaskEvent.getIsIllegal(),processCreateTaskEvent.getAlertType(),processCreateTaskEvent.getMessage(),assignName); } /** diff --git a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index e6d7bcc..d418f6f 100644 --- a/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/dk-modules/workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -158,7 +158,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { dto.setProcessInstanceId(instance.getId()); dto.setTaskId(taskList.get(0).getId()); - executeTask(taskList.get(0).getId()); + executeTask(taskList.get(0).getId(),true); return dto; } @@ -203,6 +203,12 @@ public class FlwTaskServiceImpl implements IFlwTaskService { variables.put("assign",completeTaskBo.getAssign()); variables.put("handler", completeTaskBo.getHandler()); + if (completeTaskBo.getFirstNode()){ + variables.put("firstNode", true); + }else { + variables.put("firstNode", false); + } + flowParams.variable(variables); flowParams.skipType(SkipType.PASS.getKey()); flowParams.message(completeTaskBo.getMessage()); @@ -900,10 +906,11 @@ public class FlwTaskServiceImpl implements IFlwTaskService { * 初始化流程任务 * @param taskId */ - public boolean executeTask(Long taskId) { + public boolean executeTask(Long taskId,Boolean firstNode) { CompleteTaskBo completeTaskBo = new CompleteTaskBo(); completeTaskBo.setTaskId(taskId); completeTaskBo.setMessageType(List.of(MessageTypeEnum.SYSTEM_MESSAGE.getCode())); + completeTaskBo.setFirstNode(firstNode); IFlwTaskService service = applicationContext.getBean(IFlwTaskService.class); service.completeTask(completeTaskBo); return true;