From f5729d040d6ab96fcf4b864bcb7b9c2663d16fd1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=96=AF=E7=8B=82=E7=9A=84=E7=8B=AE=E5=AD=90Li?= <15040126243@163.com> Date: Tue, 22 Jul 2025 18:15:26 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E5=A2=9E=E5=8A=A0=20=E5=82=AC=E5=8A=9E?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E8=B0=83=E6=95=B4=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/FlwTaskController.java | 11 ++++++ .../workflow/domain/bo/FlowUrgeTaskBo.java | 38 +++++++++++++++++++ .../workflow/service/IFlwCommonService.java | 12 ++++++ .../workflow/service/IFlwTaskService.java | 7 ++++ .../service/impl/FlwCommonServiceImpl.java | 14 ++++++- .../service/impl/FlwTaskServiceImpl.java | 25 ++++++++++++ 6 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java index 26d4f5ef..88124603 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java @@ -209,4 +209,15 @@ public class FlwTaskController extends BaseController { return R.ok(flwTaskService.currentTaskAllUser(List.of(taskId))); } + /** + * 催办任务 + * + * @param bo 参数 + * @return 结果 + */ + @PostMapping("/urgeTask") + public R urgeTask(@RequestBody FlowUrgeTaskBo bo) { + return toAjax(flwTaskService.urgeTask(bo)); + } + } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java new file mode 100644 index 00000000..8e51b12e --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowUrgeTaskBo.java @@ -0,0 +1,38 @@ +package org.dromara.workflow.domain.bo; + +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import org.dromara.common.core.validate.AddGroup; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + +/** + * 流程变量参数 + * + * @author may + */ +@Data +public class FlowUrgeTaskBo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务id + */ + @NotNull(message = "任务id为空", groups = AddGroup.class) + private List taskIdList; + + /** + * 消息类型 + */ + private List messageType; + + /** + * 催办内容 + */ + @NotNull(message = "催办内容为空", groups = AddGroup.class) + private String message; +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java index 2390c43e..2e3eb72d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwCommonService.java @@ -1,5 +1,7 @@ package org.dromara.workflow.service; +import org.dromara.system.api.domain.vo.RemoteUserVo; + import java.util.List; /** @@ -18,6 +20,16 @@ public interface IFlwCommonService { */ void sendMessage(String flowName, Long instId, List messageType, String message); + /** + * 发送消息 + * + * @param messageType 消息类型 + * @param message 消息内容 + * @param subject 邮件标题 + * @param userList 接收用户 + */ + void sendMessage(List messageType, String message, String subject, List userList); + /** * 申请人节点编码 * diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java index 1e738f9b..be1e4bbc 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IFlwTaskService.java @@ -199,4 +199,11 @@ public interface IFlwTaskService { */ FlowNode getByNodeCode(String nodeCode, Long definitionId); + /** + * 催办任务 + * + * @param bo 参数 + * @return 结果 + */ + boolean urgeTask(FlowUrgeTaskBo bo); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java index f442bf2f..1628514e 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java @@ -61,6 +61,19 @@ public class FlwCommonServiceImpl implements IFlwCommonService { if (CollUtil.isEmpty(userList)) { return; } + sendMessage(messageType, message, "单据审批提醒", userList); + } + + /** + * 发送消息 + * + * @param messageType 消息类型 + * @param message 消息内容 + * @param subject 邮件标题 + * @param userList 接收用户 + */ + @Override + public void sendMessage(List messageType, String message, String subject, List userList) { for (String code : messageType) { MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code); if (ObjectUtil.isEmpty(messageTypeEnum)) { @@ -80,7 +93,6 @@ public class FlwCommonServiceImpl implements IFlwCommonService { default -> throw new IllegalStateException("Unexpected value: " + messageTypeEnum); } } - } /** 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 8f6a5b7e..212ef901 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 @@ -725,4 +725,29 @@ public class FlwTaskServiceImpl implements IFlwTaskService { .eq(FlowNode::getDefinitionId, definitionId)); } + /** + * 催办任务 + * + * @param bo 参数 + */ + @Override + public boolean urgeTask(FlowUrgeTaskBo bo) { + try { + if (CollUtil.isEmpty(bo.getTaskIdList())) { + return false; + } + List userList = this.currentTaskAllUser(bo.getTaskIdList()); + if (CollUtil.isEmpty(userList)) { + return false; + } + List messageType = bo.getMessageType(); + String message = bo.getMessage(); + flwCommonService.sendMessage(messageType, message, "单据审批提醒", userList); + } catch (Exception e) { + log.error(e.getMessage(), e); + throw new ServiceException(e.getMessage()); + } + return true; + } + }