Min 1 tahun lalu
induk
melakukan
a50f425a10

+ 55 - 44
fhKeeper/formulahousekeeper/management-platform/src/main/java/com/management/platform/service/impl/ProjectServiceImpl.java

@@ -11370,6 +11370,7 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
         List<ProjectQueryResponse> projectQueryResponses = xmlResponseData.getProjectQueryResponses();
         List<Map<String,Object>> idsMapList=new ArrayList<>();
         LocalDate localDate=LocalDate.now();
+//        projectQueryResponses=projectQueryResponses.stream().filter(p->p.getProjectID().equals("CPSP2250001")).collect(Collectors.toList());
         if(projectQueryResponses!=null&&projectQueryResponses.size()>0){
             for (ProjectQueryResponse item : projectQueryResponses) {
                 Project project=new Project();
@@ -11431,23 +11432,21 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                     project.setId(any.get().getId());
                 }
                 saveOrUpdate(project);
-                if(project.getProjectCode().equals("CPSP2250001")){
-                    System.out.println(1);
-                }
                 //处理项目下任务 ----> 工时管家生成任务分组
                 List<ProjectTask> projectTasks = item.getProjectTasks();
                 if(projectTasks!=null&&projectTasks.size()>0){
                     //找到任务列表中 作为项目出现的第一级列表
                     Optional<ProjectTask> targetProject = projectTasks.stream().filter(p -> p.getProjectElementID().equals(project.getProjectCode())).findFirst();
                     String targetUUID = targetProject.get().getUUID();
-                    //按照层级抽取数据
+                    //todo:按照层级抽取数据
                     //项目下第一层 作为任务分组数据
-                    List<ProjectTask> taskGroupList = projectTasks.stream().filter(p -> p.getParentTaskUUID() != null && p.getParentTaskUUID().equals(targetUUID) && p.getSummaryTaskIndicator()!=null&& p.getSummaryTaskIndicator().equals("true")).collect(Collectors.toList());
+                    List<ProjectTask> taskGroupList = projectTasks.stream().filter(p -> p.getParentTaskUUID() != null && p.getParentTaskUUID().equals(targetUUID)).collect(Collectors.toList());
                     //抽调任务分组下级数据 作为阶段数据(是没有下级数据的情况下 作为最末级--->工时管家任务)
                     List<String> taskGroupUUIDList = taskGroupList.stream().map(ProjectTask::getUUID).collect(Collectors.toList());
-                    List<ProjectTask> stagesList = projectTasks.stream().filter(p -> p.getParentTaskUUID() != null && taskGroupUUIDList.contains(p.getParentTaskUUID()) && p.getSummaryTaskIndicator()!=null&& p.getSummaryTaskIndicator().equals("true")).collect(Collectors.toList());
+                    List<ProjectTask> stagesList = projectTasks.stream().filter(p -> p.getParentTaskUUID() != null && taskGroupUUIDList.contains(p.getParentTaskUUID())).collect(Collectors.toList());
+                    List<String> stagesUUIDList = stagesList.stream().map(ProjectTask::getUUID).collect(Collectors.toList());
                     //抽调出最末级
-                    List<ProjectTask> taskList = projectTasks.stream().filter(p ->p.getSummaryTaskIndicator()==null||(p.getSummaryTaskIndicator()!=null && !p.getSummaryTaskIndicator().equals("true"))).collect(Collectors.toList());
+                    List<ProjectTask> taskList = projectTasks.stream().filter(p ->p.getParentTaskUUID() != null &&stagesUUIDList.contains(p.getParentTaskUUID())&&(p.getSummaryTaskIndicator()==null||(p.getSummaryTaskIndicator()!=null && !p.getSummaryTaskIndicator().equals("true")))).collect(Collectors.toList());
                     if(taskGroupList!=null && taskGroupList.size()>0){
                         for (ProjectTask group : taskGroupList) {
                             TaskGroup taskGroup=new TaskGroup();
@@ -11461,57 +11460,65 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             taskGroupService.saveOrUpdate(taskGroup);
                             Map<String,Object> map=new HashMap<>();
                             map.put("groupId",taskGroup.getId());
-                            map.put("taskGroupUUID",group.getUUID());
+                            map.put("UUID",group.getUUID());
                             map.put("projectId",project.getId());
                             idsMapList.add(map);
-                            //当没有作为阶段的数据时 创建默认阶段数据
-                            if(stagesList==null || stagesList.size()==0){
-                                Stages stage = new Stages();
-                                stage.setSequence(1);
-                                stage.setProjectId(project.getId());
-                                stage.setGroupId(taskGroup.getId());
-                                stage.setStagesName("工作开展");
-                                stagesService.saveOrUpdate(stage);
-                                Map<String,Object> map1=new HashMap<>();
-                                map1.put("groupId",taskGroup.getId());
-                                map1.put("taskGroupUUID",group.getUUID());
-                                map1.put("stageId",stage.getId());
-                                map1.put("projectId",project.getId());
-                                idsMapList.add(map1);
-                            }
                         }
                     }
                     if(stagesList!=null&&stagesList.size()>0){
                         for (ProjectTask targetStage : stagesList) {
-                            Optional<Map<String, Object>> targetGroup = idsMapList.stream().filter(i -> i.get("taskGroupUUID").equals(targetStage.getParentTaskUUID())).findFirst();
+                            Optional<Map<String, Object>> targetGroup = idsMapList.stream().filter(i -> i.get("UUID").equals(targetStage.getParentTaskUUID())).findFirst();
                             if(!targetGroup.isPresent()){
                                 continue;
                             }
-                            Stages stage = new Stages();
-                            stage.setSequence(1);
-                            stage.setProjectId(project.getId());
-                            stage.setGroupId(Integer.valueOf(String.valueOf(targetGroup.get().get("groupId"))));
-                            stage.setStagesCode(targetStage.getProjectElementID());
-                            stage.setStagesName(targetStage.getTaskGroupName()==null?"":targetStage.getTaskGroupName().getName());
-                            Stages one = stagesMapper.selectOne(new QueryWrapper<Stages>().eq("project_id", project.getId()).eq("stages_name", targetStage.getProjectElementID()).eq("group_id",stage.getGroupId()));
-                            if(one!=null){
-                                stage.setId(one.getId());
+                            //如果作为第三层数据是不存在下级数据的 把当前数据作为第四层数据 手动添加阶段数据 作为该数据的上级数据
+                            if(targetStage.getSummaryTaskIndicator()==null){
+                                Stages stage = new Stages();
+                                stage.setSequence(1);
+                                stage.setProjectId(project.getId());
+                                stage.setGroupId(Integer.valueOf(String.valueOf(targetGroup.get().get("groupId"))));
+                                stage.setStagesName("工作开展");
+                                Stages one = stagesMapper.selectOne(new QueryWrapper<Stages>().eq("project_id", project.getId()).eq("stages_name","工作开展").eq("group_id",stage.getGroupId()));
+                                if(one!=null){
+                                    stage.setId(one.getId());
+                                }
+                                stagesService.saveOrUpdate(stage);
+                                Task task=new Task();
+                                task.setProjectId(project.getId());
+                                task.setGroupId(Integer.valueOf(String.valueOf(targetGroup.get().get("groupId"))));
+                                task.setStagesId(stage.getId());
+                                task.setCreateDate(localDate);
+                                task.setCompanyId(companyId);
+                                task.setName(targetStage.getTaskGroupName()==null?"空的任务名称":targetStage.getTaskGroupName().getName());
+                                Task two = taskMapper.selectOne(new LambdaQueryWrapper<Task>().eq(Task::getProjectId, task.getProjectId()).eq(Task::getGroupId, task.getGroupId()).eq(Task::getStagesId, task.getStagesId()));
+                                if(two!=null){
+                                    task.setId(two.getId());
+                                }
+                                taskService.saveOrUpdate(task);
+                            }else {
+                                Stages stage = new Stages();
+                                stage.setSequence(1);
+                                stage.setProjectId(project.getId());
+                                stage.setGroupId(Integer.valueOf(String.valueOf(targetGroup.get().get("groupId"))));
+                                stage.setStagesCode(targetStage.getProjectElementID());
+                                stage.setStagesName(targetStage.getTaskGroupName()==null?"":targetStage.getTaskGroupName().getName());
+                                Stages one = stagesMapper.selectOne(new QueryWrapper<Stages>().eq("project_id", project.getId()).eq("stages_name", targetStage.getProjectElementID()).eq("group_id",stage.getGroupId()));
+                                if(one!=null){
+                                    stage.setId(one.getId());
+                                }
+                                stagesService.saveOrUpdate(stage);
+                                Map<String,Object> map=new HashMap<>();
+                                map.put("groupId",targetGroup.get().get("groupId"));
+                                map.put("stageId",stage.getId());
+                                map.put("UUID",targetStage.getUUID());
+                                map.put("projectId",project.getId());
+                                idsMapList.add(map);
                             }
-                            stagesService.saveOrUpdate(stage);
-                            Map<String,Object> map=new HashMap<>();
-                            map.put("groupId",targetGroup.get().get("groupId"));
-                            map.put("stageId",stage.getId());
-                            map.put("taskGroupUUID",targetGroup.get().get("taskGroupUUID"));
-                            map.put("projectId",project.getId());
-                            idsMapList.add(map);
                         }
                     }
                     for (ProjectTask targetTask : taskList) {
-                        Optional<Map<String, Object>> targetMapOp = idsMapList.stream().filter(i -> i.get("taskGroupUUID").equals(targetTask.getParentTaskUUID())&&i.get("stageId")!=null).findFirst();
+                        Optional<Map<String, Object>> targetMapOp = idsMapList.stream().filter(i -> String.valueOf(i.get("UUID")).equals(targetTask.getParentTaskUUID())&&i.get("stageId")!=null).findFirst();
                         if(targetMapOp.isPresent()){
-//                            if(StringUtils.isEmpty(targetTask.getTaskGroupName())){
-//                                continue;
-//                            }
                             Map<String, Object> targetMap = targetMapOp.get();
                             Task task=new Task();
                             task.setProjectId(project.getId());
@@ -11520,6 +11527,10 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
                             task.setCreateDate(localDate);
                             task.setCompanyId(companyId);
                             task.setName(targetTask.getTaskGroupName()==null?"空的任务名称":targetTask.getTaskGroupName().getName());
+                            Task one = taskMapper.selectOne(new LambdaQueryWrapper<Task>().eq(Task::getProjectId, task.getProjectId()).eq(Task::getGroupId, task.getGroupId()).eq(Task::getStagesId, task.getStagesId()));
+                            if(one!=null){
+                                task.setId(one.getId());
+                            }
                             taskService.saveOrUpdate(task);
                         }
                     }