Jelajahi Sumber

优化传递流程审批内容

hubin 11 bulan lalu
induk
melakukan
ccd04c3c6d

+ 12 - 0
src/main/java/com/aizuda/boot/modules/flw/flow/FlowHelper.java

@@ -1,5 +1,6 @@
 package com.aizuda.boot.modules.flw.flow;
 
+import com.aizuda.bpm.engine.FlowDataTransfer;
 import com.aizuda.bpm.engine.core.FlowCreator;
 import com.aizuda.bpm.engine.entity.FlwTaskActor;
 import com.aizuda.service.web.UserSession;
@@ -18,4 +19,15 @@ public class FlowHelper {
         UserSession userSession = UserSession.getLoginInfo();
         return FlwTaskActor.ofUser(null, userSession.getUserId(), userSession.getUsername());
     }
+
+    /**
+     * 传递流程审批内容
+     */
+    public static void setProcessApprovalOpinion(String content) {
+        FlowDataTransfer.put("processApprovalOpinion", content);
+    }
+
+    public static String getProcessApprovalOpinion() {
+        return FlowDataTransfer.get("processApprovalOpinion");
+    }
 }

+ 1 - 1
src/main/java/com/aizuda/boot/modules/flw/flow/FlowTaskListener.java

@@ -76,7 +76,7 @@ public class FlowTaskListener implements TaskListener {
                 boolean saveContent = false;
                 ApprovalContent content = new ApprovalContent();
                 if (EventType.cc.ne(eventType)) {
-                    String opinion = FlowDataTransfer.get("processApprovalOpinion");
+                    String opinion = FlowHelper.getProcessApprovalOpinion();
                     if (StringUtils.hasLength(opinion)) {
                         content.setOpinion(opinion);
                         saveContent = true;

+ 8 - 16
src/main/java/com/aizuda/boot/modules/flw/service/impl/ProcessTaskServiceImpl.java

@@ -10,7 +10,6 @@ import com.aizuda.boot.modules.flw.flow.FlowForm;
 import com.aizuda.boot.modules.flw.flow.FlowHelper;
 import com.aizuda.boot.modules.flw.mapper.FlowlongMapper;
 import com.aizuda.boot.modules.flw.service.*;
-import com.aizuda.bpm.engine.FlowDataTransfer;
 import com.aizuda.bpm.engine.FlowLongEngine;
 import com.aizuda.bpm.engine.RuntimeService;
 import com.aizuda.bpm.engine.TaskService;
@@ -261,7 +260,7 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
             ApiAssert.fail(!Objects.equals(true, configure.getProcessSetting().getAllowRevocation()),
                     "该审批流程不允许撤回");
         }
-        this.processApprovalOpinion(dto.getContent());
+        FlowHelper.setProcessApprovalOpinion(dto.getContent());
         flowLongEngine.runtimeService().revoke(dto.getInstanceId(), flowCreator);
         return true;
     }
@@ -269,17 +268,10 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean execute(ExecuteTaskDTO dto) {
-        this.processApprovalOpinion(dto.getOpinion());
+        FlowHelper.setProcessApprovalOpinion(dto.getOpinion());
         return flowLongEngine.executeTask(dto.getTaskId(), FlowHelper.getFlowCreator(), dto.getArgs());
     }
 
-    /**
-     * 传递流程审批内容
-     */
-    private void processApprovalOpinion(String content) {
-        FlowDataTransfer.put("processApprovalOpinion", content);
-    }
-
     @Override
     public List<FlwHisTaskVO> listHisTaskByInstanceId(Long instanceId) {
         List<FlwHisTaskVO> voList = flowlongMapper.selectListHisTaskByInstanceId(instanceId);
@@ -299,14 +291,14 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
         FlwTask flwTask = flowLongEngine.queryService().getTask(dto.getTaskId());
         ApiAssert.isEmpty(flwTask, "当前ID执行任务不存在");
         TaskService taskService = flowLongEngine.taskService();
-        this.processApprovalOpinion(dto.getReason());
+        FlowHelper.setProcessApprovalOpinion(dto.getReason());
         return taskService.rejectTask(flwTask, FlowHelper.getFlowCreator(), dto.getArgs()).isPresent();
     }
 
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean transfer(TaskAssigneeDTO dto) {
-        this.processApprovalOpinion(dto.getContent());
+        FlowHelper.setProcessApprovalOpinion(dto.getContent());
         if (Objects.equals(0, dto.getType())) {
             // 转办
             TaskService taskService = flowLongEngine.taskService();
@@ -334,7 +326,7 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     @Override
     public boolean consent(TaskApprovalDTO dto) {
         FlwTask flwTask = this.getFlwTask(dto.getTaskId());
-        this.processApprovalOpinion(dto.getContent());
+        FlowHelper.setProcessApprovalOpinion(dto.getContent());
         ApiAssert.fail(!flwProcessFormService.saveForm(flwTask.getInstanceId(), dto.getProcessForm()), "保存保单内容失败");
         FlowForm.argsTransfer(dto.getProcessForm());
 
@@ -351,7 +343,7 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     @Override
     public boolean rejection(TaskApprovalDTO dto) {
         FlwTask flwTask = this.getFlwTask(dto.getTaskId());
-        this.processApprovalOpinion(dto.getContent());
+        FlowHelper.setProcessApprovalOpinion(dto.getContent());
         if (dto.isTermination()) {
             // 驳回并终止流程
             runtimeService.reject(flwTask.getInstanceId(), FlowHelper.getFlowCreator());
@@ -364,7 +356,7 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     @Override
     public boolean appendNode(TaskAppendNodeDTO dto) {
         FlwTask flwTask = this.getFlwTask(dto.getTaskId());
-        this.processApprovalOpinion(dto.getContent());
+        FlowHelper.setProcessApprovalOpinion(dto.getContent());
         return flowLongEngine.executeAppendNodeModel(flwTask.getId(), dto.toNodeModel(),
                 FlowHelper.getFlowCreator(), dto.getType() == 9);
     }
@@ -372,7 +364,7 @@ public class ProcessTaskServiceImpl implements IProcessTaskService {
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean jump(TaskJumpDTO dto) {
-        this.processApprovalOpinion(dto.getContent());
+        FlowHelper.setProcessApprovalOpinion(dto.getContent());
         return flowLongEngine.executeJumpTask(dto.getTaskId(), dto.getNodeName(), FlowHelper.getFlowCreator());
     }
 

+ 5 - 2
src/main/java/com/aizuda/boot/modules/test/service/impl/TestPurchaseOrderServiceImpl.java

@@ -1,11 +1,13 @@
 package com.aizuda.boot.modules.test.service.impl;
 
 import com.aizuda.boot.modules.flw.entity.dto.ProcessStartDTO;
+import com.aizuda.boot.modules.flw.flow.FlowHelper;
 import com.aizuda.boot.modules.flw.service.IFlwProcessService;
 import com.aizuda.boot.modules.test.entity.TestPurchaseOrder;
 import com.aizuda.boot.modules.test.entity.dto.TestProcessStartDTO;
 import com.aizuda.boot.modules.test.mapper.TestPurchaseOrderMapper;
 import com.aizuda.boot.modules.test.service.ITestPurchaseOrderService;
+import com.aizuda.bpm.engine.FlowDataTransfer;
 import com.aizuda.bpm.engine.core.FlowCreator;
 import com.aizuda.bpm.engine.core.enums.EventType;
 import com.aizuda.bpm.engine.entity.FlwInstance;
@@ -69,12 +71,13 @@ public class TestPurchaseOrderServiceImpl extends BaseServiceImpl<TestPurchaseOr
         if (eventType == EventType.end || eventType == EventType.reject) {
             // 审批结束更新业务状态为 2,已通过 3,已拒绝
             TestPurchaseOrder tpo = new TestPurchaseOrder();
+            String opinion = FlowHelper.getProcessApprovalOpinion();
             if (eventType == EventType.end) {
                 tpo.setStatus(2);
-                tpo.setFlwComment("审批完成");
+                tpo.setFlwComment(opinion);
             } else {
                 tpo.setStatus(3);
-                tpo.setFlwComment("审批拒绝");
+                tpo.setFlwComment(opinion);
             }
             FlwInstance flwInstance = event.getFlwInstance();
             baseMapper.update(tpo, Wrappers.<TestPurchaseOrder>lambdaQuery().eq(TestPurchaseOrder::getFlwInstanceId, flwInstance.getId()));