|
|
@@ -370,9 +370,37 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
devcloudProject.setUserIds(memberIds);
|
|
|
devcloudProjectDao.save(devcloudProject);
|
|
|
|
|
|
+ Integer userId = addProjectDTO.getUserId();
|
|
|
+
|
|
|
+ //查询该项目是否有关联项目,如果有关联项目,需要把该成员也加入关联项目中
|
|
|
+ Optional<ProjectRelate> result2 = projectRelateDao.findById(projectId);
|
|
|
+ Integer relateId = -1;
|
|
|
+ //如果存在关联项目
|
|
|
+ if(result2.isPresent()){
|
|
|
+ relateId = projectRelateDao.findById(projectId).get().getRelateId();
|
|
|
+ }
|
|
|
+
|
|
|
+ DevcloudProject relateProject;
|
|
|
+ if(relateId != -1){
|
|
|
+ Optional<DevcloudProject> result3 = devcloudProjectDao.findById(relateId);
|
|
|
+ if(!result3.isPresent()){
|
|
|
+ relateProject = new DevcloudProject();
|
|
|
+ relateProject.setProjectId(relateId);
|
|
|
+ }else {
|
|
|
+ relateProject = devcloudProjectDao.findById(relateId).get();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Integer> relateMembers = relateProject.getUserIds();
|
|
|
+ if(!relateMembers.contains(userId)){
|
|
|
+ relateMembers.add(userId);
|
|
|
+ relateProject.setUserIds(relateMembers);
|
|
|
+ }
|
|
|
+
|
|
|
+ devcloudProjectDao.save(relateProject);
|
|
|
+ }
|
|
|
+
|
|
|
//处理完项目-用户关系,现在处理用户-项目关系
|
|
|
//所有的devcloudUser都在此处创建
|
|
|
- Integer userId = addProjectDTO.getUserId();
|
|
|
DevcloudUser devcloudUser;
|
|
|
|
|
|
Optional<DevcloudUser> result1 = devcloudUserDao.findById(userId);
|
|
|
@@ -388,18 +416,22 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
if(!projectIds.contains(addProjectDTO.getProjectId())){
|
|
|
projectIds.add(addProjectDTO.getProjectId());
|
|
|
}
|
|
|
+ if(relateId!=-1){
|
|
|
+ if(!projectIds.contains(relateId)){
|
|
|
+ projectIds.add(relateId);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
devcloudUser.setProjectIds(projectIds);
|
|
|
devcloudUserDao.save(devcloudUser);
|
|
|
|
|
|
- //查询该项目是否有关联项目,如果有关联项目,需要把
|
|
|
-
|
|
|
return devcloudProject;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public ProjectRelate updateDevInfoType109(RelateProjectDTO relateProjectDTO){
|
|
|
Integer projectAId = relateProjectDTO.getProjectAId();
|
|
|
+ Integer projectBId = relateProjectDTO.getProjectBId();
|
|
|
ProjectRelate projectRelate;
|
|
|
|
|
|
Optional<ProjectRelate> result = projectRelateDao.findById(projectAId);
|
|
|
@@ -416,6 +448,65 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
}
|
|
|
|
|
|
//增加关联后,A和B中的成员应该相同,每个成员也应该加入
|
|
|
+ //先将A、B项目中的成员同步
|
|
|
+ DevcloudProject projectA, projectB;
|
|
|
+ Optional<DevcloudProject> result1 = devcloudProjectDao.findById(projectAId);
|
|
|
+ if(!result1.isPresent()){
|
|
|
+ projectA = new DevcloudProject();
|
|
|
+ projectA.setProjectId(projectAId);
|
|
|
+ }else {
|
|
|
+ projectA = devcloudProjectDao.findById(projectAId).get();
|
|
|
+ }
|
|
|
+
|
|
|
+ Optional<DevcloudProject> result2 = devcloudProjectDao.findById(projectBId);
|
|
|
+ if(!result2.isPresent()){
|
|
|
+ projectB = new DevcloudProject();
|
|
|
+ projectB.setProjectId(projectBId);
|
|
|
+ }else {
|
|
|
+ projectB = devcloudProjectDao.findById(projectBId).get();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Integer> totalMembers = new ArrayList<>();
|
|
|
+ for(Integer id : projectA.getUserIds()){
|
|
|
+ if(!totalMembers.contains(id)){
|
|
|
+ totalMembers.add(id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for(Integer id : projectB.getUserIds()){
|
|
|
+ if(!totalMembers.contains(id)){
|
|
|
+ totalMembers.add(id);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ projectA.setUserIds(totalMembers);
|
|
|
+ projectB.setUserIds(new ArrayList<>(totalMembers));
|
|
|
+
|
|
|
+ devcloudProjectDao.save(projectA);
|
|
|
+ devcloudProjectDao.save(projectB);
|
|
|
+
|
|
|
+ //然后将小组成员遍历,将projectA、B都添加
|
|
|
+ for(Integer userId : totalMembers){
|
|
|
+ DevcloudUser devcloudUser;
|
|
|
+ Optional<DevcloudUser> result3 = devcloudUserDao.findById(userId);
|
|
|
+ if(!result3.isPresent()){
|
|
|
+ devcloudUser = new DevcloudUser();
|
|
|
+ devcloudUser.setUserId(userId);
|
|
|
+ }else {
|
|
|
+ devcloudUser = devcloudUserDao.findById(userId).get();
|
|
|
+ }
|
|
|
+
|
|
|
+ List<Integer> projectIds = devcloudUser.getProjectIds();
|
|
|
+ if(!projectIds.contains(projectAId)){
|
|
|
+ projectIds.add(projectAId);
|
|
|
+ }
|
|
|
+ if(!projectIds.contains(projectBId)){
|
|
|
+ projectIds.add(projectBId);
|
|
|
+ }
|
|
|
+
|
|
|
+ devcloudUser.setProjectIds(projectIds);
|
|
|
+ devcloudUserDao.save(devcloudUser);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
return projectRelate;
|
|
|
}
|