From 89c1cf63ebb342aa1a21eeeca5226730001c556e 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: Sat, 11 Jan 2025 19:21:01 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BC=98=E5=8C=96=20=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E9=9A=94=E7=A6=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/domain/dto/CompleteTaskDTO.java | 71 +++++++++++++++++++ .../common/core/domain/dto/FlowCopyDTO.java | 30 ++++++++ .../core/domain/dto/StartProcessDTO.java | 45 ++++++++++++ .../common/core/service/WorkflowService.java | 12 ++-- .../controller/FlwTaskController.java | 2 - .../workflow}/domain/bo/CompleteTaskBo.java | 4 +- .../workflow/domain/bo/FlowCopyBo.java | 4 +- .../workflow}/domain/bo/StartProcessBo.java | 2 +- .../workflow/service/IFlwTaskService.java | 2 - .../service/impl/FlwTaskServiceImpl.java | 11 ++- .../service/impl/WorkflowServiceImpl.java | 21 +++--- 11 files changed, 173 insertions(+), 31 deletions(-) create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java create mode 100644 ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java rename {ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core => ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow}/domain/bo/CompleteTaskBo.java (94%) rename ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/FlowCopy.java => ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java (77%) rename {ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core => ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow}/domain/bo/StartProcessBo.java (96%) diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java new file mode 100644 index 000000000..2e63f8aca --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/CompleteTaskDTO.java @@ -0,0 +1,71 @@ +package org.dromara.common.core.domain.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +/** + * 办理任务请求对象 + * + * @author may + */ +@Data +public class CompleteTaskDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 任务id + */ + private Long taskId; + + /** + * 附件id + */ + private String fileId; + + /** + * 抄送人员 + */ + private List flowCopyList; + + /** + * 消息类型 + */ + private List messageType; + + /** + * 办理意见 + */ + private String message; + + /** + * 消息通知 + */ + private String notice; + + /** + * 流程变量 + */ + private Map variables; + + /** + * 扩展变量(此处为逗号分隔的ossId) + */ + private String ext; + + public Map getVariables() { + if (variables == null) { + return new HashMap<>(16); + } + variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue())); + return variables; + } + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java new file mode 100644 index 000000000..2f20b21f7 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/FlowCopyDTO.java @@ -0,0 +1,30 @@ +package org.dromara.common.core.domain.dto; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + + +/** + * 抄送 + * + * @author may + */ +@Data +public class FlowCopyDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 用户id + */ + private Long userId; + + /** + * 用户名称 + */ + private String userName; + +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java new file mode 100644 index 000000000..3934ada55 --- /dev/null +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/dto/StartProcessDTO.java @@ -0,0 +1,45 @@ +package org.dromara.common.core.domain.dto; + + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; + +/** + * 启动流程对象 + * + * @author may + */ +@Data +public class StartProcessDTO implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 业务唯一值id + */ + private String businessId; + + /** + * 流程定义编码 + */ + private String flowCode; + + /** + * 流程变量,前端会提交一个元素{'entity': {业务详情数据对象}} + */ + private Map variables; + + public Map getVariables() { + if (variables == null) { + return new HashMap<>(16); + } + variables.entrySet().removeIf(entry -> Objects.isNull(entry.getValue())); + return variables; + } +} diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java index fb0a5ec04..565362e56 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/service/WorkflowService.java @@ -1,7 +1,7 @@ package org.dromara.common.core.service; -import org.dromara.common.core.domain.bo.CompleteTaskBo; -import org.dromara.common.core.domain.bo.StartProcessBo; +import org.dromara.common.core.domain.dto.CompleteTaskDTO; +import org.dromara.common.core.domain.dto.StartProcessDTO; import java.util.List; import java.util.Map; @@ -63,16 +63,16 @@ public interface WorkflowService { /** * 启动流程 * - * @param startProcessBo 参数 + * @param startProcess 参数 * @return 结果 */ - Map startWorkFlow(StartProcessBo startProcessBo); + Map startWorkFlow(StartProcessDTO startProcess); /** * 办理任务 * - * @param completeTaskBo 参数 + * @param completeTask 参数 * @return 结果 */ - boolean completeTask(CompleteTaskBo completeTaskBo); + boolean completeTask(CompleteTaskDTO completeTask); } 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 13163a9f6..7736b7bf8 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 @@ -2,8 +2,6 @@ package org.dromara.workflow.controller; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.dromara.common.core.domain.bo.CompleteTaskBo; -import org.dromara.common.core.domain.bo.StartProcessBo; import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.idempotent.annotation.RepeatSubmit; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/CompleteTaskBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java similarity index 94% rename from ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/CompleteTaskBo.java rename to ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java index 6520ea311..9fdf48478 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/CompleteTaskBo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/CompleteTaskBo.java @@ -1,4 +1,4 @@ -package org.dromara.common.core.domain.bo; +package org.dromara.workflow.domain.bo; import jakarta.validation.constraints.NotNull; import lombok.Data; @@ -36,7 +36,7 @@ public class CompleteTaskBo implements Serializable { /** * 抄送人员 */ - private List flowCopyList; + private List flowCopyList; /** * 消息类型 diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/FlowCopy.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java similarity index 77% rename from ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/FlowCopy.java rename to ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java index 8088c47c0..a45e52109 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/FlowCopy.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/FlowCopyBo.java @@ -1,4 +1,4 @@ -package org.dromara.common.core.domain.bo; +package org.dromara.workflow.domain.bo; import lombok.Data; @@ -12,7 +12,7 @@ import java.io.Serializable; * @author may */ @Data -public class FlowCopy implements Serializable { +public class FlowCopyBo implements Serializable { @Serial private static final long serialVersionUID = 1L; diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/StartProcessBo.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java similarity index 96% rename from ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/StartProcessBo.java rename to ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java index 27ce17bfc..ea21a81e7 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/bo/StartProcessBo.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/domain/bo/StartProcessBo.java @@ -1,4 +1,4 @@ -package org.dromara.common.core.domain.bo; +package org.dromara.workflow.domain.bo; import jakarta.validation.constraints.NotBlank; 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 e30646a90..80bfa948c 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 @@ -1,7 +1,5 @@ package org.dromara.workflow.service; -import org.dromara.common.core.domain.bo.CompleteTaskBo; -import org.dromara.common.core.domain.bo.StartProcessBo; import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; 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 939da78bf..fca38fbac 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 @@ -11,8 +11,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.common.core.domain.bo.CompleteTaskBo; -import org.dromara.common.core.domain.bo.StartProcessBo; import org.dromara.common.core.domain.dto.UserDTO; import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.common.core.exception.ServiceException; @@ -39,7 +37,6 @@ import org.dromara.warm.flow.orm.mapper.FlowTaskMapper; import org.dromara.workflow.common.enums.TaskAssigneeType; import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.domain.bo.*; -import org.dromara.common.core.domain.bo.FlowCopy; import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowTaskVo; import org.dromara.workflow.handler.FlowProcessEventHandler; @@ -139,7 +136,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { List messageType = completeTaskBo.getMessageType(); String notice = completeTaskBo.getNotice(); // 获取抄送人 - List flowCopyList = completeTaskBo.getFlowCopyList(); + List flowCopyList = completeTaskBo.getFlowCopyList(); FlowTask flowTask = flowTaskMapper.selectById(taskId); Instance ins = insService.getById(flowTask.getInstanceId()); // 获取流程定义信息 @@ -175,7 +172,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { * @param task (当前任务)未办理的任务 * @param flowCopyList 抄送人 */ - private void setHandler(Instance instance, FlowTask task, List flowCopyList) { + private void setHandler(Instance instance, FlowTask task, List flowCopyList) { if (ObjectUtil.isNull(instance)) { return; } @@ -208,7 +205,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { * @param task 任务信息 * @param flowCopyList 抄送人 */ - public void setCopy(FlowTask task, List flowCopyList) { + public void setCopy(FlowTask task, List flowCopyList) { if (CollUtil.isEmpty(flowCopyList)) { return; } @@ -225,7 +222,7 @@ public class FlwTaskServiceImpl implements IFlwTaskService { FlowParams flowParams = FlowParams.build(); flowParams.skipType(SkipType.NONE.getKey()); flowParams.hisStatus(TaskStatusEnum.COPY.getStatus()); - flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopy::getUserName)); + flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName)); HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams); hisTask.setCreateTime(updateTime); hisTask.setUpdateTime(updateTime); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java index 53fc3c335..d00c90735 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java @@ -1,12 +1,15 @@ package org.dromara.workflow.service.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; -import org.dromara.common.core.domain.bo.CompleteTaskBo; -import org.dromara.common.core.domain.bo.StartProcessBo; +import org.dromara.common.core.domain.dto.CompleteTaskDTO; +import org.dromara.common.core.domain.dto.StartProcessDTO; import org.dromara.common.core.service.WorkflowService; import org.dromara.common.core.utils.StringUtils; import org.dromara.warm.flow.orm.entity.FlowInstance; +import org.dromara.workflow.domain.bo.CompleteTaskBo; +import org.dromara.workflow.domain.bo.StartProcessBo; import org.dromara.workflow.service.IFlwDefinitionService; import org.dromara.workflow.service.IFlwInstanceService; import org.dromara.workflow.service.IFlwTaskService; @@ -26,7 +29,7 @@ public class WorkflowServiceImpl implements WorkflowService { private final IFlwInstanceService flwInstanceService; private final IFlwDefinitionService flwDefinitionService; - private final IFlwTaskService iFlwTaskService; + private final IFlwTaskService flwTaskService; /** * 删除流程实例 @@ -97,20 +100,20 @@ public class WorkflowServiceImpl implements WorkflowService { /** * 启动流程 * - * @param startProcessBo 参数 + * @param startProcess 参数 */ @Override - public Map startWorkFlow(StartProcessBo startProcessBo) { - return iFlwTaskService.startWorkFlow(startProcessBo); + public Map startWorkFlow(StartProcessDTO startProcess) { + return flwTaskService.startWorkFlow(BeanUtil.toBean(startProcess, StartProcessBo.class)); } /** * 办理任务 * - * @param completeTaskBo 参数 + * @param completeTask 参数 */ @Override - public boolean completeTask(CompleteTaskBo completeTaskBo) { - return iFlwTaskService.completeTask(completeTaskBo); + public boolean completeTask(CompleteTaskDTO completeTask) { + return flwTaskService.completeTask(BeanUtil.toBean(completeTask, CompleteTaskBo.class)); } }