liuyc 1 рік тому
батько
коміт
e0f6bfb067

+ 8 - 7
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/InformationQueryServiceImpl.java

@@ -515,13 +515,14 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
         if (result != null && result.size() != 0) {
 
             //属于待审批和已审批状态,查询待办信息
-            Map<Long, Task> taskMaps = new HashMap<>();
+            Map<String, List<Task>> taskMaps = new HashMap<>();
             Map<String, List<TaskParallel>> taskParallelMaps = new HashMap<>();
             List<Long> informationIds = result.stream().filter(f -> f.getStatus().equals(1) || f.getStatus().equals(2)).map(InformationQuery::getId).collect(Collectors.toList());
             String informationIdsStr = informationIds.stream().map(String::valueOf).collect(Collectors.joining(","));
             if (StringUtils.isNotEmpty(informationIdsStr)) {
                 List<Task> query = jdbcTemplate.query("SELECT id,form_data_id,process_instance_id,approval_type,status,batch,project_id,contract_id FROM u_task WHERE form_data_id IN(" + informationIdsStr + ") AND status IN (1, 2, 3) AND is_deleted = 0", new BeanPropertyRowMapper<>(Task.class));
-                taskMaps = query.stream().collect(Collectors.toMap(Task::getId, Function.identity()));
+
+                taskMaps = query.stream().collect(Collectors.groupingBy(Task::getFormDataId));
 
                 Set<String> processInstanceIds = query.stream().map(Task::getProcessInstanceId).map(id -> "'" + id + "'").collect(Collectors.toSet());
                 if (processInstanceIds.size() > 0) {
@@ -545,7 +546,7 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
             List<InformationQueryVO> voResult = JSONArray.parseArray(JSONObject.toJSONString(result), InformationQueryVO.class);
             //处理流程状态
             List<InformationQuery> finalInformationQueries = informationQueries;
-            Map<Long, Task> finalTaskMaps = taskMaps;
+            Map<String, List<Task>> finalTaskMaps = taskMaps;
             Map<String, List<TaskParallel>> finalTaskParallelMaps = taskParallelMaps;
             voResult.forEach(vor -> {
                 if (ObjectUtil.isNotEmpty(vor.getCreateTime())) {
@@ -583,16 +584,16 @@ public class InformationQueryServiceImpl extends BaseServiceImpl<InformationQuer
                         //设置上报批次
                         vor.setReportNumber(String.valueOf(tasks.get(0).getBatch()));
                     }*/
-                    Task task = finalTaskMaps.getOrDefault(vor.getId(), null);
-                    if (task != null) {
+                    List<Task> tasks = finalTaskMaps.getOrDefault(vor.getId().toString(), null);
+                    if (tasks != null && tasks.size() > 0) {
                         //查询当前任务的所有待办人
-                        List<TaskParallel> linkTasks = finalTaskParallelMaps.getOrDefault(task.getProcessInstanceId(), null);
+                        List<TaskParallel> linkTasks = finalTaskParallelMaps.getOrDefault(tasks.get(0).getProcessInstanceId(), null);
                         if (linkTasks != null && linkTasks.size() > 0) {
                             //处理审批状态
                             this.integrationMethod(vor, linkTasks);
                         }
                         //设置上报批次
-                        vor.setReportNumber(String.valueOf(task.getBatch()));
+                        vor.setReportNumber(String.valueOf(tasks.get(0).getBatch()));
                     }
                 }