Browse Source

获取任务,优化没有任务时的查询速度。修改我发起的任务没有数据的问题

qianxb 1 year ago
parent
commit
df9daefb41

+ 3 - 1
blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/feign/NewFlowClient.java

@@ -4,9 +4,11 @@ import org.springblade.core.launch.constant.AppConstant;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
 import org.springblade.flow.core.vo.FlowProcessVO;
+import org.springblade.flow.core.vo.SendPageVO;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
@@ -30,7 +32,7 @@ public interface NewFlowClient {
      * 获取已发起
      */
     @PostMapping(SEND_LIST)
-    R<Object> selectSendPage(@RequestParam Integer current, @RequestParam Integer size, @RequestParam Integer ordType, @RequestParam String parallelProcessInstanceIds);
+    R<Object> selectSendPage(@RequestBody SendPageVO vo);
 
     /**
      * 获取待办

+ 16 - 0
blade-ops-api/blade-flow-api/src/main/java/org/springblade/flow/core/vo/SendPageVO.java

@@ -0,0 +1,16 @@
+package org.springblade.flow.core.vo;
+
+import lombok.Data;
+
+/**
+ * @Param
+ * @Author wangwl
+ * @Date 2023/8/30 14:44
+ **/
+@Data
+public class SendPageVO {
+    private Integer current;
+    private Integer size;
+    private Integer ordType;
+    private String parallelProcessInstanceIds;
+}

+ 5 - 4
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/feign/NewFlowClientImpl.java

@@ -15,6 +15,7 @@ import org.springblade.flow.business.service.FlowBusinessService;
 import org.springblade.flow.core.entity.BladeFlow;
 import org.springblade.flow.core.feign.NewFlowClient;
 import org.springblade.flow.core.vo.FlowProcessVO;
+import org.springblade.flow.core.vo.SendPageVO;
 import org.springblade.flow.engine.entity.FlowProcess;
 import org.springblade.flow.engine.service.FlowEngineService;
 import org.springframework.web.bind.annotation.RestController;
@@ -33,11 +34,11 @@ public class NewFlowClientImpl implements NewFlowClient {
     private final TaskService taskService;
 
     @Override
-    public R<Object> selectSendPage(Integer current, Integer size, Integer ordType, String parallelProcessInstanceIds) {
+    public R<Object> selectSendPage(SendPageVO vo) {
         Query query = new Query();
-        query.setCurrent(current);
-        query.setSize(size);
-        return R.data(this.flowBusinessService.selectSendPage(Condition.getPage(query), ordType, new BladeFlow(), parallelProcessInstanceIds));
+        query.setCurrent(vo.getCurrent());
+        query.setSize(vo.getSize());
+        return R.data(this.flowBusinessService.selectSendPage(Condition.getPage(query), vo.getOrdType(), new BladeFlow(), vo.getParallelProcessInstanceIds()));
     }
 
     @Override

+ 11 - 3
blade-service/blade-business/src/main/java/org/springblade/business/controller/TaskController.java

@@ -32,6 +32,7 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.flow.core.entity.BladeFlow;
 import org.springblade.flow.core.feign.NewFlowClient;
+import org.springblade.flow.core.vo.SendPageVO;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.resource.feign.CommonFileClient;
@@ -220,8 +221,12 @@ public class TaskController extends BladeController {
             //设置主表map,方便获取
             Map<String, Task> masterTaskMap = new HashMap<>();
             masterTaskList.forEach(task -> masterTaskMap.put(task.getProcessInstanceId(), task));
-
-            R<Object> rObject = this.newFlowClient.selectSendPage(queryVO.getCurrent(), queryVO.getSize(), queryVO.getOrdType() == null ? 1 : queryVO.getOrdType(), String.join(",", processInstanceIds));
+            SendPageVO pageVO = new SendPageVO();
+            pageVO.setCurrent(queryVO.getCurrent());
+            pageVO.setSize(queryVO.getSize());
+            pageVO.setOrdType(queryVO.getOrdType() == null ? 1 : queryVO.getOrdType());
+            pageVO.setParallelProcessInstanceIds(String.join(",", processInstanceIds));
+            R<Object> rObject = this.newFlowClient.selectSendPage(pageVO);
             if (rObject.isSuccess()) {
                 Query query = new Query();
                 query.setCurrent(queryVO.getCurrent());
@@ -404,6 +409,9 @@ public class TaskController extends BladeController {
         List<String> parallelProcessInstanceIds = new ArrayList<>();
         //统合查询方法
         this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "2,3");
+        if (masterTaskMap.size() == 0 || parallelMap.size() == 0) {
+            return R.data(null);
+        }
 
         //获取已办(基于原生已办)
         R<Object> rObject = this.newFlowClient.selectDonePage(queryVO.getCurrent(), queryVO.getSize(), queryVO.getOrdType() == null ? 1 : queryVO.getOrdType(), String.join(",", parallelProcessInstanceIds));
@@ -449,7 +457,7 @@ public class TaskController extends BladeController {
         List<String> parallelProcessInstanceIds = new ArrayList<>();
         //统合查询方法
         this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "1");
-        if (masterTaskMap.size() == 0) {
+        if (masterTaskMap.size() == 0 || parallelMap.size() == 0) {
             return R.data(null);
         }
         //获取待办(基于原生待办)