Ver código fonte

app任务列表bug

“zhifk” 2 anos atrás
pai
commit
1316f8dd4e

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

@@ -30,13 +30,13 @@ public interface NewFlowClient {
      * 获取已发起
      */
     @PostMapping(SEND_LIST)
-    R<Object> selectSendPage(@RequestParam Integer current, @RequestParam Integer size, @RequestParam String parallelProcessInstanceIds);
+    R<Object> selectSendPage(@RequestParam Integer current, @RequestParam Integer size,@RequestParam Integer ordType, @RequestParam String parallelProcessInstanceIds);
 
     /**
      * 获取待办
      */
     @PostMapping(DONE_LIST)
-    R<Object> selectDonePage(@RequestParam Integer current, @RequestParam Integer size, @RequestParam String parallelProcessInstanceIds);
+    R<Object> selectDonePage(@RequestParam Integer current, @RequestParam Integer size,@RequestParam Integer ordType, @RequestParam String parallelProcessInstanceIds);
 
     /**
      * 根据业务ID获取流程ID
@@ -54,7 +54,7 @@ public interface NewFlowClient {
      * 流程待办列表
      */
     @GetMapping(TO_DO_LIST)
-    R<Object> selectTodoPage(@RequestParam Integer current, @RequestParam Integer size, @RequestParam String parallelProcessInstanceIds);
+    R<Object> selectTodoPage(@RequestParam Integer current, @RequestParam Integer size,@RequestParam Integer ordType, @RequestParam String parallelProcessInstanceIds);
 
     /**
      * 查询可运行的模型

+ 3 - 3
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/controller/WorkController.java

@@ -79,7 +79,7 @@ public class WorkController {
 	@ApiOperationSupport(order = 3)
 	@ApiOperation(value = "待办事务列表页", notes = "传入流程信息")
 	public R<IPage<BladeFlow>> todoList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
-		IPage<BladeFlow> pages = flowBusinessService.selectTodoPage(Condition.getPage(query), bladeFlow, null);
+		IPage<BladeFlow> pages = flowBusinessService.selectTodoPage(Condition.getPage(query),1, bladeFlow, null);
 		return R.data(pages);
 	}
 
@@ -90,7 +90,7 @@ public class WorkController {
 	@ApiOperationSupport(order = 4)
 	@ApiOperation(value = "已发事务列表页", notes = "传入流程信息")
 	public R<IPage<BladeFlow>> sendList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
-		IPage<BladeFlow> pages = flowBusinessService.selectSendPage(Condition.getPage(query), bladeFlow, null);
+		IPage<BladeFlow> pages = flowBusinessService.selectSendPage(Condition.getPage(query),1, bladeFlow, null);
 		return R.data(pages);
 	}
 
@@ -101,7 +101,7 @@ public class WorkController {
 	@ApiOperationSupport(order = 5)
 	@ApiOperation(value = "办结事务列表页", notes = "传入流程信息")
 	public R<IPage<BladeFlow>> doneList(@ApiParam("流程信息") BladeFlow bladeFlow, Query query) {
-		IPage<BladeFlow> pages = flowBusinessService.selectDonePage(Condition.getPage(query), bladeFlow, null);
+		IPage<BladeFlow> pages = flowBusinessService.selectDonePage(Condition.getPage(query),1, bladeFlow, null);
 		return R.data(pages);
 	}
 

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

@@ -33,19 +33,19 @@ public class NewFlowClientImpl implements NewFlowClient {
     private final TaskService taskService;
 
     @Override
-    public R<Object> selectSendPage(Integer current, Integer size, String parallelProcessInstanceIds) {
+    public R<Object> selectSendPage(Integer current, Integer size, Integer ordType, String parallelProcessInstanceIds) {
         Query query = new Query();
         query.setCurrent(current);
         query.setSize(size);
-        return R.data(this.flowBusinessService.selectSendPage(Condition.getPage(query), new BladeFlow(), parallelProcessInstanceIds));
+        return R.data(this.flowBusinessService.selectSendPage(Condition.getPage(query),ordType, new BladeFlow(), parallelProcessInstanceIds));
     }
 
     @Override
-    public R<Object> selectDonePage(Integer current, Integer size, String parallelProcessInstanceIds) {
+    public R<Object> selectDonePage(Integer current, Integer size,Integer ordType, String parallelProcessInstanceIds) {
         Query query = new Query();
         query.setCurrent(current);
         query.setSize(size);
-        return R.data(this.flowBusinessService.selectDonePage(Condition.getPage(query), new BladeFlow(), parallelProcessInstanceIds));
+        return R.data(this.flowBusinessService.selectDonePage(Condition.getPage(query),ordType, new BladeFlow(), parallelProcessInstanceIds));
     }
 
     @Override
@@ -75,11 +75,11 @@ public class NewFlowClientImpl implements NewFlowClient {
     }
 
     @Override
-    public R<Object> selectTodoPage(Integer current, Integer size, String parallelProcessInstanceIds) {
+    public R<Object> selectTodoPage(Integer current, Integer size,Integer ordType, String parallelProcessInstanceIds) {
         Query query = new Query();
         query.setCurrent(current);
         query.setSize(size);
-        return R.data(this.flowBusinessService.selectTodoPage(Condition.getPage(query), new BladeFlow(), parallelProcessInstanceIds));
+        return R.data(this.flowBusinessService.selectTodoPage(Condition.getPage(query), ordType, new BladeFlow(), parallelProcessInstanceIds));
     }
 
     @Override

+ 3 - 3
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/service/FlowBusinessService.java

@@ -44,7 +44,7 @@ public interface FlowBusinessService {
 	 * @param bladeFlow 流程类
 	 * @return
 	 */
-	IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow, String parallelProcessInstanceIds);
+	IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page,Integer ordType, BladeFlow bladeFlow, String parallelProcessInstanceIds);
 
 	/**
 	 * 流程已发列表
@@ -53,7 +53,7 @@ public interface FlowBusinessService {
 	 * @param bladeFlow 流程类
 	 * @return
 	 */
-	IPage<BladeFlow> selectSendPage(IPage<BladeFlow> page, BladeFlow bladeFlow, String parallelProcessInstanceIds);
+	IPage<BladeFlow> selectSendPage(IPage<BladeFlow> page,Integer ordType, BladeFlow bladeFlow, String parallelProcessInstanceIds);
 
 	/**
 	 * 流程办结列表
@@ -62,7 +62,7 @@ public interface FlowBusinessService {
 	 * @param bladeFlow 流程类
 	 * @return
 	 */
-	IPage<BladeFlow> selectDonePage(IPage<BladeFlow> page, BladeFlow bladeFlow, String parallelProcessInstanceIds);
+	IPage<BladeFlow> selectDonePage(IPage<BladeFlow> page,Integer ordType, BladeFlow bladeFlow, String parallelProcessInstanceIds);
 
 	/**
 	 * 完成任务

+ 42 - 18
blade-ops/blade-flow/src/main/java/org/springblade/flow/business/service/impl/FlowBusinessServiceImpl.java

@@ -23,6 +23,7 @@ import org.flowable.engine.HistoryService;
 import org.flowable.engine.TaskService;
 import org.flowable.engine.history.HistoricProcessInstance;
 import org.flowable.engine.history.HistoricProcessInstanceQuery;
+import org.flowable.task.api.Task;
 import org.flowable.task.api.TaskQuery;
 import org.flowable.task.api.history.HistoricTaskInstance;
 import org.flowable.task.api.history.HistoricTaskInstanceQuery;
@@ -71,9 +72,9 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 			.includeProcessVariables().active().orderByTaskCreateTime().desc();
 
 		// 构建列表数据
-		buildFlowTaskList(bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM);
-		buildFlowTaskList(bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
-		buildFlowTaskList(bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
+		buildFlowTaskList(page,bladeFlow, flowList, claimUserQuery, FlowEngineConstant.STATUS_CLAIM);
+		buildFlowTaskList(page,bladeFlow, flowList, claimRoleWithTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
+		buildFlowTaskList(page,bladeFlow, flowList, claimRoleWithoutTenantIdQuery, FlowEngineConstant.STATUS_CLAIM);
 
 		// 计算总数
 		long count = claimUserQuery.count() + claimRoleWithTenantIdQuery.count() + claimRoleWithoutTenantIdQuery.count();
@@ -87,7 +88,7 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 	}
 
 	@Override
-	public IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page, BladeFlow bladeFlow, String parallelProcessInstanceIds) {
+	public IPage<BladeFlow> selectTodoPage(IPage<BladeFlow> page,Integer ordType, BladeFlow bladeFlow, String parallelProcessInstanceIds) {
 		String taskUser = TaskUtil.getTaskUser();
 		List<BladeFlow> flowList = new LinkedList<>();
 
@@ -95,14 +96,20 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 		TaskQuery todoQuery;
 		if(StringUtils.isEmpty(parallelProcessInstanceIds)){
 			todoQuery = taskService.createTaskQuery().taskAssignee(taskUser).active()
-					.includeProcessVariables().orderByTaskCreateTime().desc();
+					.includeProcessVariables();
+//					.orderByTaskCreateTime().desc();
 		} else {
 			todoQuery = taskService.createTaskQuery().taskAssignee(taskUser).active()
-					.includeProcessVariables().processInstanceIdIn(Arrays.asList(parallelProcessInstanceIds.split(",").clone())).orderByTaskCreateTime().desc();
+					.includeProcessVariables().processInstanceIdIn(Arrays.asList(parallelProcessInstanceIds.split(",").clone()));
+//					.orderByTaskCreateTime().desc();
+		}
+		if(ordType == 1){
+			todoQuery.orderByTaskCreateTime().desc();
+		}else{
+			todoQuery.orderByTaskCreateTime().asc();
 		}
-
 		// 构建列表数据
-		buildFlowTaskList(bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO);
+		buildFlowTaskList(page,bladeFlow, flowList, todoQuery, FlowEngineConstant.STATUS_TODO);
 
 		// 计算总数
 		long count = todoQuery.count();
@@ -116,18 +123,22 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 	}
 
 	@Override
-	public IPage<BladeFlow> selectSendPage(IPage<BladeFlow> page, BladeFlow bladeFlow, String parallelProcessInstanceIds) {
+	public IPage<BladeFlow> selectSendPage(IPage<BladeFlow> page,Integer ordType, BladeFlow bladeFlow, String parallelProcessInstanceIds) {
 		String taskUser = TaskUtil.getTaskUser();
 		List<BladeFlow> flowList = new LinkedList<>();
 
 		HistoricProcessInstanceQuery historyQuery;
 		if(StringUtils.isEmpty(parallelProcessInstanceIds)){
-			historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser).orderByProcessInstanceStartTime().desc();
+			historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser);
 		} else {
 			List<String> array = Arrays.asList(parallelProcessInstanceIds.split(","));
-			historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser).processInstanceIds(new HashSet<>(array)).orderByProcessInstanceStartTime().desc();
+			historyQuery = historyService.createHistoricProcessInstanceQuery().startedBy(taskUser).processInstanceIds(new HashSet<>(array));
+		}
+		if(ordType == 1){
+			historyQuery.orderByProcessInstanceStartTime().desc();
+		}else{
+			historyQuery.orderByProcessInstanceStartTime().asc();
 		}
-
 		if (bladeFlow.getCategory() != null) {
 			historyQuery.processDefinitionCategory(bladeFlow.getCategory());
 		}
@@ -194,19 +205,23 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 	}
 
 	@Override
-	public IPage<BladeFlow> selectDonePage(IPage<BladeFlow> page, BladeFlow bladeFlow, String parallelProcessInstanceIds) {
+	public IPage<BladeFlow> selectDonePage(IPage<BladeFlow> page,Integer ordType, BladeFlow bladeFlow, String parallelProcessInstanceIds) {
 		String taskUser = TaskUtil.getTaskUser();
 		List<BladeFlow> flowList = new LinkedList<>();
 
 		HistoricTaskInstanceQuery doneQuery;
 		if(StringUtils.isEmpty(parallelProcessInstanceIds)){
 			doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished()
-					.includeProcessVariables().orderByHistoricTaskInstanceEndTime().desc();
+					.includeProcessVariables();
 		} else {
 			doneQuery = historyService.createHistoricTaskInstanceQuery().taskAssignee(taskUser).finished()
-					.includeProcessVariables().processInstanceIdIn(Arrays.asList(parallelProcessInstanceIds.split(","))).orderByHistoricTaskInstanceEndTime().desc();
+					.includeProcessVariables().processInstanceIdIn(Arrays.asList(parallelProcessInstanceIds.split(",")));
+		}
+		if(ordType == 1){
+			doneQuery.orderByHistoricTaskInstanceEndTime().desc();
+		}else{
+			doneQuery.orderByHistoricTaskInstanceEndTime().asc();
 		}
-
 		if (bladeFlow.getCategory() != null) {
 			doneQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
 		}
@@ -295,7 +310,7 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 	 * @param taskQuery 任务查询类
 	 * @param status    状态
 	 */
-	private void buildFlowTaskList(BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) {
+	private void buildFlowTaskList(IPage<BladeFlow> page,BladeFlow bladeFlow, List<BladeFlow> flowList, TaskQuery taskQuery, String status) {
 		if (bladeFlow.getCategory() != null) {
 			taskQuery.processCategoryIn(Func.toStrList(bladeFlow.getCategory()));
 		}
@@ -308,7 +323,16 @@ public class FlowBusinessServiceImpl implements FlowBusinessService {
 		if (bladeFlow.getEndDate() != null) {
 			taskQuery.taskCreatedBefore(bladeFlow.getEndDate());
 		}
-		taskQuery.list().forEach(task -> {
+		List<Task> list;
+		//代办任务列表分页失效,在这里加上分页取数
+		if(status.equals(FlowEngineConstant.STATUS_TODO)){
+			int l = (int) ((page.getCurrent()-1) * page.getSize());
+			int l1 = (int) page.getSize();
+			list = taskQuery.listPage(l,l1);
+		}else{
+			list = taskQuery.list();
+		}
+		list.forEach(task -> {
 			BladeFlow flow = new BladeFlow();
 			flow.setTaskId(task.getId());
 			flow.setTaskDefinitionKey(task.getTaskDefinitionKey());

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

@@ -204,7 +204,7 @@ public class TaskController extends BladeController {
 			Map<String, Task> masterTaskMap = new HashMap<>();
 			masterTaskList.forEach(task -> masterTaskMap.put(task.getProcessInstanceId(), task));
 
-			R<Object> rObject = this.newFlowClient.selectSendPage(queryVO.getCurrent(), queryVO.getSize(), String.join(",", processInstanceIds));
+			R<Object> rObject = this.newFlowClient.selectSendPage(queryVO.getCurrent(), queryVO.getSize(),queryVO.getOrdType(), String.join(",", processInstanceIds));
 			if(rObject.isSuccess()){
 				Query query = new Query();
 				query.setCurrent(queryVO.getCurrent());
@@ -354,7 +354,7 @@ public class TaskController extends BladeController {
 		this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "2,3");
 
 		//获取已办(基于原生已办)
-		R<Object> rObject = this.newFlowClient.selectDonePage(queryVO.getCurrent(), queryVO.getSize(), String.join(",", parallelProcessInstanceIds));
+		R<Object> rObject = this.newFlowClient.selectDonePage(queryVO.getCurrent(), queryVO.getSize(),queryVO.getOrdType(), String.join(",", parallelProcessInstanceIds));
 		//处理参数
 		return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, false);
 	}
@@ -388,7 +388,7 @@ public class TaskController extends BladeController {
 		this.integrationMethod(queryVO, masterTaskMap, parallelMap, parallelProcessInstanceIds, "1");
 
 		//获取待办(基于原生待办)
-		R<Object> rObject = this.newFlowClient.selectTodoPage(queryVO.getCurrent(), queryVO.getSize(), String.join(",", parallelProcessInstanceIds));
+		R<Object> rObject = this.newFlowClient.selectTodoPage(queryVO.getCurrent(), queryVO.getSize(),queryVO.getOrdType(), String.join(",", parallelProcessInstanceIds));
 		//处理参数
 		return this.integrationMethod(queryVO, rObject, masterTaskMap, parallelMap, true);
 	}

+ 5 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -6,7 +6,9 @@ import lombok.AllArgsConstructor;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.tool.api.R;
 import org.springblade.manager.dto.WbsTreeContractDTO2;
+import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.vo.AppWbsTreeContractVO;
 import org.springblade.manager.vo.WbsContractNodeVo;
@@ -24,6 +26,7 @@ import java.util.List;
 public class WbsTreeContractController extends BladeController {
 
     private final IWbsTreeContractService iWbsTreeContractService;
+    private final ContractClient contractClient;
 
     @GetMapping("/search-node-tables")
     @ApiOperationSupport(order = 1)
@@ -93,6 +96,8 @@ public class WbsTreeContractController extends BladeController {
     public R appSearchConcealedNodes(long primaryKeyId, long contractId) {
         List<WbsContractNodeVo> list = iWbsTreeContractService.appSearchConcealedNodes(primaryKeyId, contractId);
         if (list.size() > 0) {
+            ContractInfo contract = this.contractClient.getContractById(contractId);
+            list.get(0).setNodeName(contract.getContractName());
             return R.data(list);
         }
         return R.fail(200, "未查询到数据");