Browse Source

任务BUG

liuyc 1 year ago
parent
commit
511d553d4a

+ 21 - 9
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchiveFileTaskController.java

@@ -191,11 +191,23 @@ public class ArchiveFileTaskController extends BladeController {
                 }
             }
         } else if (contractInfo != null && (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3))) {
-            //如果是监理合同段,那么默认查询关联的全部施工合同段+本身任务
-            List<ContractRelationJlyz> contractRelationJLYZ = jdbcTemplate.query("select contract_id_sg from m_contract_relation_jlyz where contract_id_jlyz = " + dto.getCurrentContractId(), new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
-            Set<Long> ids = contractRelationJLYZ.stream().map(ContractRelationJlyz::getContractIdSg).collect(Collectors.toSet());
-            ids.add(dto.getCurrentContractId()); //把监理本身也加入查询
-            sqlString.append(" AND contract_id in(").append(StringUtils.join(ids, ",")).append(")");
+            if (ObjectUtil.isNotEmpty(dto.getContractIdValue())) {
+                if (dto.getContractIdValue().equals(dto.getCurrentContractId())) {
+                    //如果下拉框合同段选择框合同段=当前用户登陆合同段,那么查询全部合同段的数据
+                    List<ContractRelationJlyz> contractRelationJLYZ = jdbcTemplate.query("select contract_id_sg from m_contract_relation_jlyz where contract_id_jlyz = " + dto.getCurrentContractId(), new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
+                    Set<Long> ids = contractRelationJLYZ.stream().map(ContractRelationJlyz::getContractIdSg).collect(Collectors.toSet());
+                    ids.add(dto.getCurrentContractId()); //把监理本身也加入查询
+                    sqlString.append(" AND contract_id in(").append(StringUtils.join(ids, ",")).append(")");
+                } else {
+                    //如果下拉框合同段选择框合同段!=当前用户登陆合同段,那么查询下拉框合同段数据
+                    sqlString.append(" AND contract_id = ?");
+                    params.add(dto.getContractIdValue());
+                }
+            } else {
+                //如果下拉框合同段id=null,那么查询当前整个项目的数据
+                sqlString.append(" AND project_id = ?");
+                params.add(dto.getProjectIdValue());
+            }
         }
 
         if (ObjectUtil.isNotEmpty(dto.getBatchValue())) {
@@ -270,10 +282,10 @@ public class ArchiveFileTaskController extends BladeController {
         Set<String> processInstanceIds = resultList.stream().map(Task::getProcessInstanceId).collect(Collectors.toSet());
         Map<String, List<TaskParallel>> taskParallelGroupMap = new HashMap<>();
         if (processInstanceIds.size() > 0) {
-            StringJoiner joiner = new StringJoiner(",", "'", "'");
-            processInstanceIds.forEach(joiner::add);
-            String joinedIds = joiner.toString();
-            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user_name,e_visa_status,e_visa_content from u_task_parallel where process_instance_id in(" + joinedIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
+            String resultIds = processInstanceIds.stream()
+                    .map(id -> "'" + id + "'")
+                    .collect(Collectors.joining(","));
+            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user_name,e_visa_status,e_visa_content from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
         }
         Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
 

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

@@ -1110,13 +1110,26 @@ public class TaskController extends BladeController {
                 }
             }
         } else if (contractInfo != null && (contractInfo.getContractType().equals(2) || contractInfo.getContractType().equals(3))) {
-            //如果是监理合同段,那么默认查询关联的全部施工合同段+本身任务
-            List<ContractRelationJlyz> contractRelationJLYZ = jdbcTemplate.query("select contract_id_sg from m_contract_relation_jlyz where contract_id_jlyz = " + dto.getCurrentContractId(), new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
-            Set<Long> ids = contractRelationJLYZ.stream().map(ContractRelationJlyz::getContractIdSg).collect(Collectors.toSet());
-            ids.add(dto.getCurrentContractId()); //把监理本身也加入查询
-            sqlString.append(" AND contract_id in(").append(StringUtils.join(ids, ",")).append(")");
+            if (ObjectUtil.isNotEmpty(dto.getContractIdValue())) {
+                if (dto.getContractIdValue().equals(dto.getCurrentContractId())) {
+                    //如果下拉框合同段选择框合同段=当前用户登陆合同段,那么查询全部合同段的数据
+                    List<ContractRelationJlyz> contractRelationJLYZ = jdbcTemplate.query("select contract_id_sg from m_contract_relation_jlyz where contract_id_jlyz = " + dto.getCurrentContractId(), new BeanPropertyRowMapper<>(ContractRelationJlyz.class));
+                    Set<Long> ids = contractRelationJLYZ.stream().map(ContractRelationJlyz::getContractIdSg).collect(Collectors.toSet());
+                    ids.add(dto.getCurrentContractId()); //把监理本身也加入查询
+                    sqlString.append(" AND contract_id in(").append(StringUtils.join(ids, ",")).append(")");
+                } else {
+                    //如果下拉框合同段选择框合同段!=当前用户登陆合同段,那么查询下拉框合同段数据
+                    sqlString.append(" AND contract_id = ?");
+                    params.add(dto.getContractIdValue());
+                }
+            } else {
+                //如果下拉框合同段id=null,那么查询当前整个项目的数据
+                sqlString.append(" AND project_id = ?");
+                params.add(dto.getProjectIdValue());
+            }
         }
 
+
         if (ObjectUtil.isNotEmpty(dto.getBatchValue())) {
             sqlString.append(" AND batch = ?");
             params.add(dto.getBatchValue());
@@ -1189,11 +1202,12 @@ public class TaskController extends BladeController {
         Set<String> processInstanceIds = resultList.stream().map(Task::getProcessInstanceId).collect(Collectors.toSet());
         Map<String, List<TaskParallel>> taskParallelGroupMap = new HashMap<>();
         if (processInstanceIds.size() > 0) {
-            StringJoiner joiner = new StringJoiner(",", "'", "'");
-            processInstanceIds.forEach(joiner::add);
-            String joinedIds = joiner.toString();
-            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user_name,e_visa_status,e_visa_content from u_task_parallel where process_instance_id in(" + joinedIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
+            String resultIds = processInstanceIds.stream()
+                    .map(id -> "'" + id + "'")
+                    .collect(Collectors.joining(","));
+            taskParallelGroupMap = jdbcTemplate.query("select process_instance_id,task_user_name,e_visa_status,e_visa_content from u_task_parallel where process_instance_id in(" + resultIds + ") order by id", new BeanPropertyRowMapper<>(TaskParallel.class)).stream().collect(Collectors.groupingBy(TaskParallel::getProcessInstanceId));
         }
+
         Map<String, List<TaskParallel>> finalTaskParallelGroupMap = taskParallelGroupMap;
 
         //获取用户信息Map
@@ -1239,7 +1253,9 @@ public class TaskController extends BladeController {
         R<IPage<BusinessTaskPageVO>> iPageR = R.data(page);
 
         //待办推送
-        if (dto.getSelectedType().equals(1)) {
+        if (dto.getSelectedType().
+
+                equals(1)) {
             if (ObjectUtil.isNotEmpty(iPageR.getData()) && ObjectUtil.isNotEmpty(iPageR.getData().getRecords()) && ObjectUtil.isNotEmpty(dto.getContractIdValue()) && ObjectUtil.isNotEmpty(dto.getProjectIdValue())) {
                 this.sendsWebSocketCount(iPageR, 1, dto);
             } else if (ObjectUtil.isNotEmpty(dto.getContractIdValue()) && ObjectUtil.isNotEmpty(dto.getProjectIdValue())) {