diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/BusinessStatusEnum.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java similarity index 99% rename from ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/BusinessStatusEnum.java rename to ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java index 6eb6ffe6..0af943a7 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/enums/BusinessStatusEnum.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/enums/BusinessStatusEnum.java @@ -1,4 +1,4 @@ -package org.dromara.workflow.common.enums; +package org.dromara.common.core.enums; import cn.hutool.core.util.StrUtil; import lombok.AllArgsConstructor; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java index b96f3432..3332f86a 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/ActModelController.java @@ -5,7 +5,6 @@ import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotEmpty; import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; -import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -13,11 +12,7 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.web.core.BaseController; -import org.dromara.resource.api.RemoteFileService; -import org.dromara.resource.api.domain.RemoteFile; -import org.dromara.system.api.model.LoginUser; import org.dromara.workflow.domain.bo.ModelBo; import org.dromara.workflow.domain.vo.ModelVo; import org.dromara.workflow.service.IActModelService; @@ -53,8 +48,6 @@ public class ActModelController extends BaseController { */ @GetMapping("/list") public TableDataInfo page(ModelBo modelBo, PageQuery pageQuery) { - RemoteFileService bean = SpringUtils.getBean(RemoteFileService.class); - List remoteFiles = bean.selectByIds("1"); return actModelService.page(modelBo, pageQuery); } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/AttachmentCmd.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/AttachmentCmd.java index 070f2db8..da6fd432 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/AttachmentCmd.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/flowable/cmd/AttachmentCmd.java @@ -38,7 +38,8 @@ public class AttachmentCmd implements Command { public Boolean execute(CommandContext commandContext) { try { if (StringUtils.isNotBlank(fileId)) { - List ossList = SpringUtils.getBean(RemoteFileService.class).selectByIds(fileId); + RemoteFileService remoteFileService = SpringUtils.getBean(RemoteFileService.class); + List ossList = remoteFileService.selectByIds(fileId); if (CollUtil.isNotEmpty(ossList)) { for (RemoteFile oss : ossList) { AttachmentEntityManager attachmentEntityManager = CommandContextUtil.getAttachmentEntityManager(); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/runner/WorkflowApplicationRunner.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/runner/WorkflowApplicationRunner.java new file mode 100644 index 00000000..414cd693 --- /dev/null +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/runner/WorkflowApplicationRunner.java @@ -0,0 +1,31 @@ +package org.dromara.workflow.runner; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.resource.api.RemoteFileService; +import org.dromara.system.api.RemoteUserService; +import org.springframework.boot.ApplicationArguments; +import org.springframework.boot.ApplicationRunner; +import org.springframework.stereotype.Component; + +/** + * 初始化 dubbo 接口生成接口代理 不然无法直接用 SpringUtils 注入 dubbo 接口使用 + * + * @author Lion Li + */ +@Slf4j +@RequiredArgsConstructor +@Component +public class WorkflowApplicationRunner implements ApplicationRunner { + + @DubboReference + private RemoteUserService remoteUserService; + @DubboReference + private RemoteFileService remoteFileService; + + @Override + public void run(ApplicationArguments args) throws Exception { + } + +} diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index 7c1f0679..fd45ef64 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -16,7 +16,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.workflow.common.constant.FlowConstant; -import org.dromara.workflow.common.enums.BusinessStatusEnum; +import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.domain.ActHiProcinst; import org.dromara.workflow.domain.bo.ProcessInstanceBo; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java index 7578931b..ad71836b 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java @@ -19,7 +19,7 @@ import org.dromara.system.api.RemoteUserService; import org.dromara.system.api.domain.vo.RemoteUserVo; import org.dromara.system.api.model.RoleDTO; import org.dromara.workflow.common.constant.FlowConstant; -import org.dromara.workflow.common.enums.BusinessStatusEnum; +import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.domain.ActHiTaskinst; import org.dromara.workflow.domain.WfTaskBackNode; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java index 85d42dc1..1744c152 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java @@ -15,7 +15,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.workflow.api.domain.RemoteWorkflowService; import org.dromara.workflow.api.domain.event.ProcessEvent; import org.dromara.workflow.api.domain.event.ProcessTaskEvent; -import org.dromara.workflow.common.enums.BusinessStatusEnum; +import org.dromara.common.core.enums.BusinessStatusEnum; import org.dromara.workflow.domain.TestLeave; import org.dromara.workflow.domain.bo.TestLeaveBo; import org.dromara.workflow.domain.vo.TestLeaveVo; diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index 26c1e3af..57a9920f 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -25,7 +25,6 @@ import org.dromara.workflow.domain.vo.MultiInstanceVo; import org.dromara.workflow.domain.vo.ParticipantVo; import org.dromara.workflow.flowable.cmd.UpdateHiTaskInstCmd; import org.dromara.workflow.mapper.ActHiTaskinstMapper; -import org.dromara.workflow.service.IActHiProcinstService; import org.flowable.bpmn.model.BpmnModel; import org.flowable.bpmn.model.FlowNode; import org.flowable.common.engine.api.delegate.Expression; @@ -50,8 +49,6 @@ import java.util.*; public class WorkflowUtils { private static final ProcessEngine PROCESS_ENGINE = SpringUtils.getBean(ProcessEngine.class); - private static final RemoteUserService USER_SERVICE = SpringUtils.getBean(RemoteUserService.class); - private static final IActHiProcinstService ACT_HI_PROCINST_SERVICE = SpringUtils.getBean(IActHiProcinstService.class); private static final ActHiTaskinstMapper ACT_HI_TASKINST_MAPPER = SpringUtils.getBean(ActHiTaskinstMapper.class); /** @@ -129,6 +126,7 @@ public class WorkflowUtils { * @param taskId 任务id */ public static ParticipantVo getCurrentTaskParticipant(String taskId) { + RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class); ParticipantVo participantVo = new ParticipantVo(); List linksForTask = PROCESS_ENGINE.getHistoryService().getHistoricIdentityLinksForTask(taskId); Task task = QueryUtils.taskQuery().taskId(taskId).singleResult(); @@ -136,10 +134,11 @@ public class WorkflowUtils { List groupList = StreamUtils.filter(linksForTask, e -> StringUtils.isNotBlank(e.getGroupId())); if (CollUtil.isNotEmpty(groupList)) { List groupIds = StreamUtils.toList(groupList, e -> Long.valueOf(e.getGroupId())); - List userIds = USER_SERVICE.selectUserIdsByRoleIds(groupIds); + + List userIds = remoteUserService.selectUserIdsByRoleIds(groupIds); if (CollUtil.isNotEmpty(userIds)) { participantVo.setGroupIds(groupIds); - List userList = USER_SERVICE.selectListByIds(userIds); + List userList = remoteUserService.selectListByIds(userIds); if (CollUtil.isNotEmpty(userList)) { List userIdList = StreamUtils.toList(userList, RemoteUserVo::getUserId); List nickNames = StreamUtils.toList(userList, RemoteUserVo::getNickName); @@ -158,7 +157,7 @@ public class WorkflowUtils { } } - List userList = USER_SERVICE.selectListByIds(userIdList); + List userList = remoteUserService.selectListByIds(userIdList); if (CollUtil.isNotEmpty(userList)) { List userIds = StreamUtils.toList(userList, RemoteUserVo::getUserId); List nickNames = StreamUtils.toList(userList, RemoteUserVo::getNickName); @@ -237,6 +236,7 @@ public class WorkflowUtils { * @param message 消息内容,为空则发送默认配置的消息内容 */ public static void sendMessage(List list, String name, List messageType, String message) { + RemoteUserService remoteUserService = SpringUtils.getBean(RemoteUserService.class); Set userIds = new HashSet<>(); if (StringUtils.isBlank(message)) { message = "有新的【" + name + "】单据已经提交至您的待办,请您及时处理。"; @@ -244,7 +244,7 @@ public class WorkflowUtils { for (Task t : list) { ParticipantVo taskParticipant = WorkflowUtils.getCurrentTaskParticipant(t.getId()); if (CollUtil.isNotEmpty(taskParticipant.getGroupIds())) { - List userIdList = USER_SERVICE.selectUserIdsByRoleIds(taskParticipant.getGroupIds()); + List userIdList = remoteUserService.selectUserIdsByRoleIds(taskParticipant.getGroupIds()); if (CollUtil.isNotEmpty(userIdList)) { userIds.addAll(userIdList); } @@ -255,7 +255,7 @@ public class WorkflowUtils { } } if (CollUtil.isNotEmpty(userIds)) { - List userList = USER_SERVICE.selectListByIds(new ArrayList<>(userIds)); + List userList = remoteUserService.selectListByIds(new ArrayList<>(userIds)); for (String code : messageType) { MessageTypeEnum messageTypeEnum = MessageTypeEnum.getByCode(code); if (ObjectUtil.isNotEmpty(messageTypeEnum)) {