Quellcode durchsuchen

update 统一工作流FlowParams构造方式为建造者模式,提升代码可读性

AprilWind vor 1 Jahr
Ursprung
Commit
564ab331d7

+ 4 - 7
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/handler/FlowProcessEventHandler.java

@@ -32,13 +32,10 @@ public class FlowProcessEventHandler {
      * @param params     办理参数
      * @param submit     当为true时为申请人节点办理
      */
-    public void processHandler(String flowCode, Instance instance,
-                               String status, Map<String, Object> params, boolean submit) {
-
+    public void processHandler(String flowCode, Instance instance, String status, Map<String, Object> params, boolean submit) {
         String tenantId = TenantHelper.getTenantId();
-        log.info("【流程事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 状态: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 是否申请人节点: {}, 参数: {}",
+        log.info("【流程事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 流程状态: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 是否申请人节点: {}, 参数: {}",
             tenantId, flowCode, instance.getBusinessId(), status, instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), submit, params);
-
         ProcessEvent processEvent = new ProcessEvent();
         processEvent.setTenantId(tenantId);
         processEvent.setFlowCode(flowCode);
@@ -61,7 +58,7 @@ public class FlowProcessEventHandler {
      */
     public void processCreateTaskHandler(String flowCode, Instance instance, Long taskId) {
         String tenantId = TenantHelper.getTenantId();
-        log.info("发布流程任务事件, 租户ID: {}, 流程编码: {}, 业务ID: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}",
+        log.info("【流程任务事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}, 节点类型: {}, 节点编码: {}, 节点名称: {}, 任务ID: {}",
             tenantId, flowCode, instance.getBusinessId(), instance.getNodeType(), instance.getNodeCode(), instance.getNodeName(), taskId);
         ProcessCreateTaskEvent processCreateTaskEvent = new ProcessCreateTaskEvent();
         processCreateTaskEvent.setTenantId(tenantId);
@@ -82,7 +79,7 @@ public class FlowProcessEventHandler {
      */
     public void processDeleteHandler(String flowCode, String businessId) {
         String tenantId = TenantHelper.getTenantId();
-        log.info("发布删除流程事件, 租户ID: {}, 流程编码: {}, 业务ID: {}", tenantId, flowCode, businessId);
+        log.info("【流程删除事件发布】租户ID: {}, 流程编码: {}, 业务ID: {}", tenantId, flowCode, businessId);
         ProcessDeleteEvent processDeleteEvent = new ProcessDeleteEvent();
         processDeleteEvent.setTenantId(tenantId);
         processDeleteEvent.setFlowCode(flowCode);

+ 6 - 6
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwCommonServiceImpl.java

@@ -198,12 +198,12 @@ public class FlwCommonServiceImpl implements IFlwCommonService {
         }
         for (FlowTask task : list) {
             List<UserDTO> userList = flwTaskService.currentTaskAllUser(task.getId());
-            FlowParams flowParams = FlowParams.build();
-            flowParams.nodeCode(targetNodeCode);
-            flowParams.message(message);
-            flowParams.skipType(SkipType.PASS.getKey());
-            flowParams.flowStatus(flowStatus).hisStatus(flowHisStatus);
-            flowParams.ignore(true);
+            FlowParams flowParams = FlowParams.build()
+                .nodeCode(targetNodeCode)
+                .message(message)
+                .skipType(SkipType.PASS.getKey())
+                .flowStatus(flowStatus).hisStatus(flowHisStatus)
+                .ignore(true);
             //解决会签没权限问题
             if (CollUtil.isNotEmpty(userList)) {
                 flowParams.handler(userList.get(0).getUserId().toString());

+ 5 - 5
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java

@@ -437,11 +437,11 @@ public class FlwInstanceServiceImpl implements IFlwInstanceService {
             }
             List<FlowTask> flowTaskList = flwTaskService.selectByInstId(bo.getId());
             for (FlowTask flowTask : flowTaskList) {
-                FlowParams flowParams = new FlowParams();
-                flowParams.message(bo.getComment());
-                flowParams.flowStatus(BusinessStatusEnum.INVALID.getStatus())
-                    .hisStatus(TaskStatusEnum.INVALID.getStatus());
-                flowParams.ignore(true);
+                FlowParams flowParams = FlowParams.build()
+                    .message(bo.getComment())
+                    .flowStatus(BusinessStatusEnum.INVALID.getStatus())
+                    .hisStatus(TaskStatusEnum.INVALID.getStatus())
+                    .ignore(true);
                 taskService.termination(flowTask.getId(), flowParams);
             }
             return true;

+ 27 - 27
ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwTaskServiceImpl.java

@@ -117,10 +117,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
             dto.setTaskId(taskList.get(0).getId());
             return dto;
         }
-        FlowParams flowParams = new FlowParams();
-        flowParams.flowCode(startProcessBo.getFlowCode());
-        flowParams.variable(startProcessBo.getVariables());
-        flowParams.flowStatus(BusinessStatusEnum.DRAFT.getStatus());
+        FlowParams flowParams = FlowParams.build()
+            .flowCode(startProcessBo.getFlowCode())
+            .variable(startProcessBo.getVariables())
+            .flowStatus(BusinessStatusEnum.DRAFT.getStatus());
         Instance instance;
         try {
             instance = insService.start(businessId, flowParams);
@@ -170,13 +170,13 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
                 completeTaskBo.getVariables().putAll(assigneeMap);
             }
             // 构建流程参数,包括变量、跳转类型、消息、处理人、权限等信息
-            FlowParams flowParams = new FlowParams();
-            flowParams.variable(completeTaskBo.getVariables());
-            flowParams.skipType(SkipType.PASS.getKey());
-            flowParams.message(completeTaskBo.getMessage());
-            flowParams.flowStatus(BusinessStatusEnum.WAITING.getStatus()).hisStatus(TaskStatusEnum.PASS.getStatus());
-
-            flowParams.hisTaskExt(completeTaskBo.getFileId());
+            FlowParams flowParams = FlowParams.build()
+                .variable(completeTaskBo.getVariables())
+                .skipType(SkipType.PASS.getKey())
+                .message(completeTaskBo.getMessage())
+                .flowStatus(BusinessStatusEnum.WAITING.getStatus())
+                .hisStatus(TaskStatusEnum.PASS.getStatus())
+                .hisTaskExt(completeTaskBo.getFileId());
             // 执行任务跳转,并根据返回的处理人设置下一步处理人
             Instance instance = taskService.skip(taskId, flowParams);
             this.setHandler(instance, flowTask, flowCopyList);
@@ -310,10 +310,10 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
         task.setId(taskId);
         task.setNodeName("【抄送】" + task.getNodeName());
         Date updateTime = new Date(flowHisTask.getUpdateTime().getTime() - 1000);
-        FlowParams flowParams = FlowParams.build();
-        flowParams.skipType(SkipType.NONE.getKey());
-        flowParams.hisStatus(TaskStatusEnum.COPY.getStatus());
-        flowParams.message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName));
+        FlowParams flowParams = FlowParams.build()
+            .skipType(SkipType.NONE.getKey())
+            .hisStatus(TaskStatusEnum.COPY.getStatus())
+            .message("【抄送给】" + StreamUtils.join(flowCopyList, FlowCopyBo::getUserName));
         HisTask hisTask = hisTaskService.setSkipHisTask(task, flowNode, flowParams);
         hisTask.setCreateTime(updateTime);
         hisTask.setUpdateTime(updateTime);
@@ -456,13 +456,13 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
             Long definitionId = task.getDefinitionId();
             Definition definition = defService.getById(definitionId);
             String applyNodeCode = flwCommonService.applyNodeCode(definitionId);
-            FlowParams flowParams = FlowParams.build();
-            flowParams.nodeCode(bo.getNodeCode());
-            flowParams.message(message);
-            flowParams.skipType(SkipType.REJECT.getKey());
-            flowParams.flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus())
-                .hisStatus(TaskStatusEnum.BACK.getStatus());
-            flowParams.hisTaskExt(bo.getFileId());
+            FlowParams flowParams = FlowParams.build()
+                .nodeCode(bo.getNodeCode())
+                .message(message)
+                .skipType(SkipType.REJECT.getKey())
+                .flowStatus(applyNodeCode.equals(bo.getNodeCode()) ? TaskStatusEnum.BACK.getStatus() : TaskStatusEnum.WAITING.getStatus())
+                .hisStatus(TaskStatusEnum.BACK.getStatus())
+                .hisTaskExt(bo.getFileId());
             taskService.skip(task.getId(), flowParams);
 
             Instance instance = insService.getById(inst.getId());
@@ -519,9 +519,9 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
             if (ObjectUtil.isNotNull(instance)) {
                 BusinessStatusEnum.checkInvalidStatus(instance.getFlowStatus());
             }
-            FlowParams flowParams = new FlowParams();
-            flowParams.message(bo.getComment());
-            flowParams.flowStatus(BusinessStatusEnum.TERMINATION.getStatus())
+            FlowParams flowParams = FlowParams.build()
+                .message(bo.getComment())
+                .flowStatus(BusinessStatusEnum.TERMINATION.getStatus())
                 .hisStatus(TaskStatusEnum.TERMINATION.getStatus());
             taskService.termination(taskId, flowParams);
             return true;
@@ -662,8 +662,8 @@ public class FlwTaskServiceImpl implements IFlwTaskService {
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean taskOperation(TaskOperationBo bo, String taskOperation) {
-        FlowParams flowParams = new FlowParams();
-        flowParams.message(bo.getMessage());
+        FlowParams flowParams = FlowParams.build()
+            .message(bo.getMessage());
         if (LoginHelper.isSuperAdmin() || LoginHelper.isTenantAdmin()) {
             flowParams.ignore(true);
         }