|
@@ -11435,43 +11435,62 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project> impl
|
|
|
List<ProjectTask> projectTasks = item.getProjectTasks();
|
|
|
if(projectTasks!=null&&projectTasks.size()>0){
|
|
|
projectTasks.forEach(ps->{
|
|
|
- TaskGroup taskGroup=new TaskGroup();
|
|
|
- taskGroup.setProjectId(project.getId());
|
|
|
- taskGroup.setTaskGroupCode(ps.getProjectElementID());
|
|
|
- taskGroup.setName(ps.getTaskGroupName()==null?"":ps.getTaskGroupName().getName());
|
|
|
- TaskGroup one = taskGroupMapper.selectOne(new QueryWrapper<TaskGroup>().eq("project_id", project.getId()).eq("task_group_code", ps.getProjectElementID()));
|
|
|
- if(one!=null){
|
|
|
- taskGroup.setId(one.getId());
|
|
|
- }
|
|
|
- taskGroupService.saveOrUpdate(taskGroup);
|
|
|
- Map<String,Object> map=new HashMap<>();
|
|
|
- map.put("groupId",taskGroup.getId());
|
|
|
- map.put("projectId",project.getId());
|
|
|
- idsMapList.add(map);
|
|
|
+ boolean match = idsMapList.stream().anyMatch(i -> i.get("taskGroupUUID").equals(ps.getUUID()));
|
|
|
+ if(!match){
|
|
|
+ if(StringUtils.isEmpty(ps.getParentTaskUUID())){
|
|
|
+ TaskGroup taskGroup=new TaskGroup();
|
|
|
+ taskGroup.setProjectId(project.getId());
|
|
|
+ taskGroup.setTaskGroupCode(ps.getProjectElementID());
|
|
|
+ taskGroup.setName(ps.getTaskGroupName()==null?"":ps.getTaskGroupName().getName());
|
|
|
+ TaskGroup one = taskGroupMapper.selectOne(new QueryWrapper<TaskGroup>().eq("project_id", project.getId()).eq("task_group_code", ps.getProjectElementID()));
|
|
|
+ if(one!=null){
|
|
|
+ taskGroup.setId(one.getId());
|
|
|
+ }
|
|
|
+ taskGroupService.saveOrUpdate(taskGroup);
|
|
|
+ Map<String,Object> map=new HashMap<>();
|
|
|
+ map.put("groupId",taskGroup.getId());
|
|
|
+ map.put("taskGroupUUID",ps.getUUID());
|
|
|
+ map.put("projectId",project.getId());
|
|
|
+ idsMapList.add(map);
|
|
|
+ }else {
|
|
|
+ Optional<ProjectTask> task = projectTasks.stream().filter(p -> p.getUUID().equals(ps.getParentTaskUUID())).findFirst();
|
|
|
+ if(task.isPresent()){
|
|
|
+ Stages stage = new Stages();
|
|
|
+ Optional<Map<String, Object>> exist = idsMapList.stream().filter(i -> i.get("taskGroupUUID").equals(task.get().getUUID())).findFirst();
|
|
|
+ if(exist.isPresent()){
|
|
|
+ stage.setGroupId(Integer.valueOf(String.valueOf(exist.get().get("groupId"))));
|
|
|
+ }else {
|
|
|
+ //避免排序问题导致 上级数据未添加 漏掉子数据
|
|
|
+ TaskGroup taskGroup=new TaskGroup();
|
|
|
+ taskGroup.setProjectId(project.getId());
|
|
|
+ taskGroup.setTaskGroupCode(ps.getProjectElementID());
|
|
|
+ taskGroup.setName(ps.getTaskGroupName()==null?"":ps.getTaskGroupName().getName());
|
|
|
+ TaskGroup one = taskGroupMapper.selectOne(new QueryWrapper<TaskGroup>().eq("project_id", project.getId()).eq("task_group_code", ps.getProjectElementID()));
|
|
|
+ if(one!=null){
|
|
|
+ taskGroup.setId(one.getId());
|
|
|
+ }
|
|
|
+ taskGroupService.saveOrUpdate(taskGroup);
|
|
|
+ Map<String,Object> map=new HashMap<>();
|
|
|
+ map.put("groupId",taskGroup.getId());
|
|
|
+ map.put("taskGroupUUID",ps.getUUID());
|
|
|
+ map.put("projectId",project.getId());
|
|
|
+ idsMapList.add(map);
|
|
|
+ stage.setGroupId(taskGroup.getId());
|
|
|
+ }
|
|
|
+ stage.setSequence(1);
|
|
|
+ stage.setProjectId(project.getId());
|
|
|
+ stage.setStagesName(ps.getTaskGroupName()==null?"":ps.getTaskGroupName().getName());
|
|
|
+ Stages one = stagesMapper.selectOne(new QueryWrapper<Stages>().eq("project_id", project.getId()).eq("stages_name", ps.getProjectElementID()).eq("group_id",stage.getGroupId()));
|
|
|
+ if(one!=null){
|
|
|
+ stage.setId(one.getId());
|
|
|
+ }
|
|
|
+ stagesService.saveOrUpdate(stage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
- if(idsMapList.size()>0){
|
|
|
- List<Integer> projectIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("projectId")))).collect(Collectors.toList());
|
|
|
- List<Integer> groupIds = idsMapList.stream().map(i -> Integer.valueOf(String.valueOf(i.get("groupId")))).collect(Collectors.toList());
|
|
|
- List<Stages> allStages = stagesMapper.selectList(new LambdaQueryWrapper<Stages>().in(Stages::getProjectId, projectIds).in(Stages::getGroupId, groupIds));
|
|
|
- for (Map<String, Object> map : idsMapList) {
|
|
|
- Optional<Stages> first = allStages.stream().filter(a -> a.getGroupId().equals(String.valueOf(map.get("groupId"))) && a.getProjectId().equals(String.valueOf(map.get("projectId")))).findFirst();
|
|
|
- if(!first.isPresent()){
|
|
|
- //创建默认列表
|
|
|
- Stages stage = new Stages();
|
|
|
- stage.setGroupId(Integer.valueOf(String.valueOf(map.get("groupId"))));
|
|
|
- stage.setSequence(1);
|
|
|
- stage.setProjectId(Integer.valueOf(String.valueOf(map.get("projectId"))));
|
|
|
- stage.setStagesName(MessageUtils.message("excel.WorkUnfolds"));
|
|
|
- allStages.add(stage);
|
|
|
- stagesList.add(stage);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if(stagesList.size()>0){
|
|
|
- stagesService.saveBatch(stagesList);
|
|
|
- }
|
|
|
}
|
|
|
//处理项目下服务数据 ------->工时管家相关项目下任务分组下创建任务数据
|
|
|
List<SapProjectService> serviceList = sapProjectServiceService.list(new LambdaQueryWrapper<SapProjectService>().eq(SapProjectService::getCompanyId, companyId));
|