ruoyi-admin/src/main/resources/application.yml
@@ -276,7 +276,7 @@ --- # warm-flow工使µé ç½® warm-flow: # æ¯å¦å¼å¯å·¥ä½æµï¼é»è®¤true enabled: true enabled: false # æ¯å¦å¼å¯è®¾è®¡å¨ui ui: true # é»è®¤Authorizationï¼å¦ææå¤ä¸ªtokenï¼ç¨éå·åé ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java
@@ -57,7 +57,6 @@ private final SysDictTypeMapper dictTypeMapper; private final SysDictDataMapper dictDataMapper; private final SysConfigMapper configMapper; private final WorkflowService workflowService; /** * æ¥è¯¢ç§æ· @@ -195,8 +194,13 @@ config.setTenantId(tenantId); } configMapper.insertBatch(sysConfigList); //æ°å¢ç§æ·æµç¨å®ä¹ workflowService.syncDef(tenantId); // æªå¼å¯å·¥ä½æµä¸æ§è¡ä¸æ¹æä½ if (SpringUtils.getProperty("workflow.enabled", Boolean.class, false)) { WorkflowService workflowService = SpringUtils.getBean(WorkflowService.class); // æ°å¢ç§æ·æµç¨å®ä¹ workflowService.syncDef(tenantId); } return true; } ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/common/ConditionalOnEnable.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ package org.dromara.workflow.common; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target({ ElementType.TYPE, ElementType.METHOD }) @ConditionalOnProperty(value = "workflow.enabled", havingValue = "true") public @interface ConditionalOnEnable { } ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/config/WarmFlowConfig.java
@@ -1,6 +1,7 @@ package org.dromara.workflow.config; import org.dromara.workflow.common.ConditionalOnEnable; import org.springframework.context.annotation.Configuration; /** @@ -8,6 +9,7 @@ * * @author may */ @ConditionalOnEnable @Configuration public class WarmFlowConfig { ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwCategoryController.java
@@ -13,6 +13,7 @@ import org.dromara.common.log.annotation.Log; import org.dromara.common.log.enums.BusinessType; import org.dromara.common.web.core.BaseController; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.domain.bo.FlowCategoryBo; import org.dromara.workflow.domain.vo.FlowCategoryVo; import org.dromara.workflow.service.IFlwCategoryService; @@ -26,6 +27,7 @@ * * @author may */ @ConditionalOnEnable @Validated @RequiredArgsConstructor @RestController ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwDefinitionController.java
@@ -12,9 +12,9 @@ import org.dromara.warm.flow.core.entity.Definition; import org.dromara.warm.flow.core.service.DefService; import org.dromara.warm.flow.orm.entity.FlowDefinition; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.domain.vo.FlowDefinitionVo; import org.dromara.workflow.service.IFlwDefinitionService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -28,15 +28,14 @@ * * @author may */ @ConditionalOnEnable @Validated @RequiredArgsConstructor @RestController @RequestMapping("/workflow/definition") public class FlwDefinitionController extends BaseController { @Autowired(required = false) private DefService defService; private final DefService defService; private final IFlwDefinitionService flwDefinitionService; /** ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwInstanceController.java
@@ -9,12 +9,12 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; import org.dromara.warm.flow.core.service.InsService; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.domain.bo.FlowCancelBo; import org.dromara.workflow.domain.bo.FlowInstanceBo; import org.dromara.workflow.domain.bo.FlowInvalidBo; import org.dromara.workflow.domain.vo.FlowInstanceVo; import org.dromara.workflow.service.IFlwInstanceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -26,15 +26,14 @@ * * @author may */ @ConditionalOnEnable @Validated @RequiredArgsConstructor @RestController @RequestMapping("/workflow/instance") public class FlwInstanceController extends BaseController { @Autowired(required = false) private InsService insService; private final InsService insService; private final IFlwInstanceService flwInstanceService; /** ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/FlwTaskController.java
@@ -11,6 +11,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; import org.dromara.warm.flow.core.entity.Node; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.domain.bo.*; import org.dromara.workflow.domain.vo.FlowHisTaskVo; import org.dromara.workflow.domain.vo.FlowTaskVo; @@ -26,6 +27,7 @@ * * @author may */ @ConditionalOnEnable @Validated @RequiredArgsConstructor @RestController ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/TestLeaveController.java
@@ -15,6 +15,7 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.domain.bo.TestLeaveBo; import org.dromara.workflow.domain.vo.TestLeaveVo; import org.dromara.workflow.service.ITestLeaveService; @@ -29,6 +30,7 @@ * @author may * @date 2023-07-21 */ @ConditionalOnEnable @Validated @RequiredArgsConstructor @RestController ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java
@@ -6,6 +6,7 @@ import org.dromara.common.core.domain.event.ProcessTaskEvent; import org.dromara.common.core.utils.SpringUtils; import org.dromara.common.tenant.helper.TenantHelper; import org.dromara.workflow.common.ConditionalOnEnable; import org.springframework.stereotype.Component; /** @@ -14,6 +15,7 @@ * @author may * @date 2024-06-02 */ @ConditionalOnEnable @Slf4j @Component public class FlowProcessEventHandler { ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/WorkflowPermissionHandler.java
@@ -4,6 +4,7 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.model.LoginUser; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.enums.TaskAssigneeEnum; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.warm.flow.core.dto.FlowParams; @@ -22,6 +23,7 @@ * * @author AprilWind */ @ConditionalOnEnable @RequiredArgsConstructor @Component @Slf4j ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/listener/WorkflowGlobalListener.java
@@ -11,6 +11,7 @@ import org.dromara.warm.flow.core.listener.GlobalListener; import org.dromara.warm.flow.core.listener.ListenerVariable; import org.dromara.warm.flow.orm.entity.FlowTask; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.handler.FlowProcessEventHandler; import org.dromara.workflow.service.IFlwInstanceService; import org.dromara.workflow.service.IFlwTaskService; @@ -23,6 +24,7 @@ * * @author may */ @ConditionalOnEnable @Component @Slf4j @RequiredArgsConstructor ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/CategoryNameTranslationImpl.java
@@ -4,6 +4,7 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.core.TranslationInterface; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.service.IFlwCategoryService; import org.springframework.stereotype.Service; @@ -13,6 +14,7 @@ * * @author AprilWind */ @ConditionalOnEnable @Slf4j @RequiredArgsConstructor @Service ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCategoryServiceImpl.java
@@ -13,13 +13,13 @@ import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.warm.flow.core.service.DefService; import org.dromara.warm.flow.orm.entity.FlowDefinition; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.domain.FlowCategory; import org.dromara.workflow.domain.bo.FlowCategoryBo; import org.dromara.workflow.domain.vo.FlowCategoryVo; import org.dromara.workflow.mapper.FlwCategoryMapper; import org.dromara.workflow.service.IFlwCategoryService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cache.annotation.CacheEvict; import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; @@ -32,13 +32,12 @@ * * @author may */ @ConditionalOnEnable @RequiredArgsConstructor @Service public class FlwCategoryServiceImpl implements IFlwCategoryService { @Autowired(required = false) private DefService defService; private final DefService defService; private final FlwCategoryMapper baseMapper; /** ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwDefinitionServiceImpl.java
@@ -30,13 +30,13 @@ import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper; import org.dromara.warm.flow.orm.mapper.FlowNodeMapper; import org.dromara.warm.flow.orm.mapper.FlowSkipMapper; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.constant.FlowConstant; import org.dromara.workflow.domain.FlowCategory; import org.dromara.workflow.domain.vo.FlowDefinitionVo; import org.dromara.workflow.mapper.FlwCategoryMapper; import org.dromara.workflow.service.IFlwDefinitionService; import org.dromara.workflow.utils.WorkflowUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; @@ -53,22 +53,17 @@ * * @author may */ @ConditionalOnEnable @Slf4j @RequiredArgsConstructor @Service public class FlwDefinitionServiceImpl implements IFlwDefinitionService { @Autowired(required = false) private DefService defService; @Autowired(required = false) private FlowDefinitionMapper flowDefinitionMapper; @Autowired(required = false) private FlowHisTaskMapper flowHisTaskMapper; @Autowired(required = false) private FlowNodeMapper flowNodeMapper; @Autowired(required = false) private FlowSkipMapper flowSkipMapper; private final DefService defService; private final FlowDefinitionMapper flowDefinitionMapper; private final FlowHisTaskMapper flowHisTaskMapper; private final FlowNodeMapper flowNodeMapper; private final FlowSkipMapper flowSkipMapper; private final FlwCategoryMapper flwCategoryMapper; /** ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
@@ -34,6 +34,7 @@ import org.dromara.warm.flow.orm.entity.FlowTask; import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper; import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.domain.bo.FlowCancelBo; import org.dromara.workflow.domain.bo.FlowInstanceBo; @@ -47,7 +48,6 @@ import org.dromara.workflow.service.IFlwInstanceService; import org.dromara.workflow.service.IFlwTaskService; import org.dromara.workflow.utils.WorkflowUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -60,26 +60,19 @@ * * @author may */ @ConditionalOnEnable @Slf4j @RequiredArgsConstructor @Service public class FlwInstanceServiceImpl implements IFlwInstanceService { @Autowired(required = false) private InsService insService; @Autowired(required = false) private DefService defService; @Autowired(required = false) private TaskService taskService; @Autowired(required = false) private FlowHisTaskMapper flowHisTaskMapper; @Autowired(required = false) private FlowInstanceMapper flowInstanceMapper; private final InsService insService; private final DefService defService; private final TaskService taskService; private final FlowHisTaskMapper flowHisTaskMapper; private final FlowInstanceMapper flowInstanceMapper; private final FlowProcessEventHandler flowProcessEventHandler; private final IFlwTaskService flwTaskService; private final FlwInstanceMapper flwInstanceMapper; private final FlwCategoryMapper flwCategoryMapper; ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskAssigneeServiceImpl.java
@@ -20,6 +20,7 @@ import org.dromara.warm.flow.ui.dto.TreeFunDto; import org.dromara.warm.flow.ui.service.HandlerSelectService; import org.dromara.warm.flow.ui.vo.HandlerSelectVo; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.enums.TaskAssigneeEnum; import org.dromara.workflow.service.IFlwTaskAssigneeService; import org.springframework.stereotype.Service; @@ -33,6 +34,7 @@ * * @author AprilWind */ @ConditionalOnEnable @Slf4j @RequiredArgsConstructor @Service ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java
@@ -32,8 +32,8 @@ import org.dromara.warm.flow.orm.entity.*; import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper; import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper; import org.dromara.warm.flow.orm.mapper.FlowNodeMapper; import org.dromara.warm.flow.orm.mapper.FlowTaskMapper; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.common.enums.TaskAssigneeType; import org.dromara.workflow.common.enums.TaskStatusEnum; import org.dromara.workflow.domain.bo.*; @@ -45,7 +45,6 @@ import org.dromara.workflow.mapper.FlwTaskMapper; import org.dromara.workflow.service.IFlwTaskService; import org.dromara.workflow.utils.WorkflowUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -60,36 +59,23 @@ * * @author may */ @ConditionalOnEnable @Slf4j @RequiredArgsConstructor @Service public class FlwTaskServiceImpl implements IFlwTaskService { @Autowired(required = false) private TaskService taskService; @Autowired(required = false) private InsService insService; @Autowired(required = false) private DefService defService; @Autowired(required = false) private HisTaskService hisTaskService; @Autowired(required = false) private NodeService nodeService; @Autowired(required = false) private FlowInstanceMapper flowInstanceMapper; @Autowired(required = false) private FlowTaskMapper flowTaskMapper; @Autowired(required = false) private FlowHisTaskMapper flowHisTaskMapper; @Autowired(required = false) private FlowNodeMapper flowNodeMapper; private final TaskService taskService; private final InsService insService; private final DefService defService; private final HisTaskService hisTaskService; private final NodeService nodeService; private final FlowInstanceMapper flowInstanceMapper; private final FlowTaskMapper flowTaskMapper; private final FlowHisTaskMapper flowHisTaskMapper; private final IdentifierGenerator identifierGenerator; private final FlowProcessEventHandler flowProcessEventHandler; private final UserService userService; private final FlwTaskMapper flwTaskMapper; private final FlwCategoryMapper flwCategoryMapper; ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/TestLeaveServiceImpl.java
@@ -17,6 +17,7 @@ import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.workflow.common.ConditionalOnEnable; import org.dromara.workflow.domain.TestLeave; import org.dromara.workflow.domain.bo.TestLeaveBo; import org.dromara.workflow.domain.vo.TestLeaveVo; @@ -34,6 +35,7 @@ * @author may * @date 2023-07-21 */ @ConditionalOnEnable @RequiredArgsConstructor @Service @Slf4j ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java
@@ -8,6 +8,7 @@ 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.common.ConditionalOnEnable; import org.dromara.workflow.domain.bo.CompleteTaskBo; import org.dromara.workflow.domain.bo.StartProcessBo; import org.dromara.workflow.service.IFlwDefinitionService; @@ -23,6 +24,7 @@ * * @author may */ @ConditionalOnEnable @RequiredArgsConstructor @Service public class WorkflowServiceImpl implements WorkflowService {