From 07b29e06cfdd3d49b53157e186b7e46b0dd43fd3 Mon Sep 17 00:00:00 2001 From: gssong <1742057357@qq.com> Date: Mon, 9 Mar 2026 10:12:02 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E8=BD=AC=E5=8A=9E?= =?UTF-8?q?=E7=AD=89=E6=B6=88=E6=81=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/FlwTaskServiceImpl.java | 73 ++++++++++--------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java index 3624f8240..acbc9a75c 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java @@ -144,9 +144,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService { throw new ServiceException("流程【" + startProcessBo.getFlowCode() + "】未发布,请先在流程设计器中发布流程定义"); } Dict dict = JsonUtils.parseMap(definition.getExt()); - boolean autoPass = !ObjectUtil.isNull(dict) && dict.getBool(FlowConstant.AUTO_PASS); - variables.put(FlowConstant.AUTO_PASS, autoPass); - variables.put(FlowConstant.BUSINESS_CODE, this.generateBusinessCode(bizExt)); + boolean autoPass = !ObjectUtil.isNull(dict) && dict.getBool(AUTO_PASS); + variables.put(AUTO_PASS, autoPass); + variables.put(BUSINESS_CODE, this.generateBusinessCode(bizExt)); FlowParams flowParams = FlowParams.build() .handler(startProcessBo.getHandler()) .flowCode(startProcessBo.getFlowCode()) @@ -208,11 +208,11 @@ public class FlwTaskServiceImpl implements IFlwTaskService { List flowCopyList = completeTaskBo.getFlowCopyList(); // 设置抄送人 Map variables = completeTaskBo.getVariables(); - variables.put(FlowConstant.FLOW_COPY_LIST, flowCopyList); + variables.put(FLOW_COPY_LIST, flowCopyList); // 消息类型 - variables.put(FlowConstant.MESSAGE_TYPE, messageType); + variables.put(MESSAGE_TYPE, messageType); // 消息通知 - variables.put(FlowConstant.MESSAGE_NOTICE, notice); + variables.put(MESSAGE_NOTICE, notice); FlowTask flowTask = flowTaskMapper.selectById(taskId); @@ -222,7 +222,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { Instance ins = insService.getById(flowTask.getInstanceId()); // 检查流程状态是否为草稿、已撤销或已退回状态,若是则执行流程提交监听 if (BusinessStatusEnum.isDraftOrCancelOrBack(ins.getFlowStatus())) { - variables.put(FlowConstant.SUBMIT, true); + variables.put(SUBMIT, true); } // 设置弹窗处理人 Map assigneeMap = setPopAssigneeMap(completeTaskBo.getAssigneeMap(), ins.getVariableMap()); @@ -275,9 +275,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService { flowParams. message("流程引擎自动审批!"). variable(Map.of( - FlowConstant.SUBMIT, false, - FlowConstant.FLOW_COPY_LIST, Collections.emptyList(), - FlowConstant.MESSAGE_NOTICE, StringUtils.EMPTY)); + SUBMIT, false, + FLOW_COPY_LIST, Collections.emptyList(), + MESSAGE_NOTICE, StringUtils.EMPTY)); skipTask(task.getId(), flowParams, instanceId, true); } } @@ -489,9 +489,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService { Map variable = new HashMap<>(); // 消息类型 - variable.put(FlowConstant.MESSAGE_TYPE, messageType); + variable.put(MESSAGE_TYPE, messageType); // 消息通知 - variable.put(FlowConstant.MESSAGE_NOTICE, notice); + variable.put(MESSAGE_NOTICE, notice); FlowParams flowParams = FlowParams.build() .nodeCode(bo.getNodeCode()) @@ -756,9 +756,29 @@ public class FlwTaskServiceImpl implements IFlwTaskService { } } - // 发送消息给相关用户 - List messageType = bo.getMessageType(); - if (CollUtil.isNotEmpty(messageType)) { + // 设置任务状态并执行对应的任务操作 + boolean result = false; + switch (op) { + case DELEGATE_TASK -> { + flowParams.hisStatus(TaskStatusEnum.DEPUTE.getStatus()); + result = taskService.depute(taskId, flowParams); + } + case TRANSFER_TASK -> { + flowParams.hisStatus(TaskStatusEnum.TRANSFER.getStatus()); + result = taskService.transfer(taskId, flowParams); + } + case ADD_SIGNATURE -> { + flowParams.hisStatus(TaskStatusEnum.SIGN.getStatus()); + result = taskService.addSignature(taskId, flowParams); + } + case REDUCTION_SIGNATURE -> { + flowParams.hisStatus(TaskStatusEnum.SIGN_OFF.getStatus()); + result = taskService.reductionSignature(taskId, flowParams); + } + } + + // 操作执行成功后再发送消息 + if (result && CollUtil.isNotEmpty(bo.getMessageType())) { List userIdList = new ArrayList<>(); if (StrUtil.isNotBlank(bo.getUserId())) { userIdList.add(Convert.toLong(bo.getUserId())); @@ -768,33 +788,14 @@ public class FlwTaskServiceImpl implements IFlwTaskService { } if (CollUtil.isNotEmpty(userIdList)) { flwCommonService.sendMessage( - messageType, + bo.getMessageType(), StringUtils.isNotBlank(bo.getMessage()) ? bo.getMessage() : "单据「" + op.getDesc() + "」通知", "单据「" + op.getDesc() + "」提醒", userService.selectListByIds(userIdList) ); } } - // 设置任务状态并执行对应的任务操作 - switch (op) { - case DELEGATE_TASK -> { - flowParams.hisStatus(TaskStatusEnum.DEPUTE.getStatus()); - return taskService.depute(taskId, flowParams); - } - case TRANSFER_TASK -> { - flowParams.hisStatus(TaskStatusEnum.TRANSFER.getStatus()); - return taskService.transfer(taskId, flowParams); - } - case ADD_SIGNATURE -> { - flowParams.hisStatus(TaskStatusEnum.SIGN.getStatus()); - return taskService.addSignature(taskId, flowParams); - } - case REDUCTION_SIGNATURE -> { - flowParams.hisStatus(TaskStatusEnum.SIGN_OFF.getStatus()); - return taskService.reductionSignature(taskId, flowParams); - } - } - return false; + return result; } /**