|
|
@@ -28,8 +28,8 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
private DevcloudProjectDao devcloudProjectDao;
|
|
|
@Autowired
|
|
|
private DevcloudUserDao devcloudUserDao;
|
|
|
- @Autowired
|
|
|
- private ProjectRelateDao projectRelateDao;
|
|
|
+// @Autowired
|
|
|
+// private ProjectRelateDao projectRelateDao;
|
|
|
@Autowired
|
|
|
private UserDao userDao;
|
|
|
@Autowired
|
|
|
@@ -372,35 +372,36 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
|
|
|
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);
|
|
|
- }
|
|
|
+// //查询该项目是否有关联项目,如果有关联项目,需要把该成员也加入关联项目中
|
|
|
+// 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都在此处创建
|
|
|
+
|
|
|
DevcloudUser devcloudUser;
|
|
|
|
|
|
Optional<DevcloudUser> result1 = devcloudUserDao.findById(userId);
|
|
|
@@ -416,11 +417,11 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
if(!projectIds.contains(addProjectDTO.getProjectId())){
|
|
|
projectIds.add(addProjectDTO.getProjectId());
|
|
|
}
|
|
|
- if(relateId!=-1){
|
|
|
- if(!projectIds.contains(relateId)){
|
|
|
- projectIds.add(relateId);
|
|
|
- }
|
|
|
- }
|
|
|
+// if(relateId!=-1){
|
|
|
+// if(!projectIds.contains(relateId)){
|
|
|
+// projectIds.add(relateId);
|
|
|
+// }
|
|
|
+// }
|
|
|
|
|
|
devcloudUser.setProjectIds(projectIds);
|
|
|
devcloudUserDao.save(devcloudUser);
|
|
|
@@ -429,23 +430,23 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public ProjectRelate updateDevInfoType109(RelateProjectDTO relateProjectDTO){
|
|
|
+ public int updateDevInfoType109(RelateProjectDTO relateProjectDTO){
|
|
|
Integer projectAId = relateProjectDTO.getProjectAId();
|
|
|
Integer projectBId = relateProjectDTO.getProjectBId();
|
|
|
- ProjectRelate projectRelate;
|
|
|
|
|
|
- Optional<ProjectRelate> result = projectRelateDao.findById(projectAId);
|
|
|
- if(!result.isPresent()){
|
|
|
- projectRelate = new ProjectRelate();
|
|
|
- projectRelate.setProjectId(projectAId);
|
|
|
- projectRelate.setRelateId(relateProjectDTO.getProjectBId());
|
|
|
- projectRelateDao.save(projectRelate);
|
|
|
- }else {
|
|
|
- //项目的关联项目只能有一个
|
|
|
- projectRelate = projectRelateDao.findById(projectAId).get();
|
|
|
- projectRelate.setRelateId(relateProjectDTO.getProjectBId());
|
|
|
- projectRelateDao.save(projectRelate);
|
|
|
- }
|
|
|
+// ProjectRelate projectRelate;
|
|
|
+// Optional<ProjectRelate> result = projectRelateDao.findById(projectAId);
|
|
|
+// if(!result.isPresent()){
|
|
|
+// projectRelate = new ProjectRelate();
|
|
|
+// projectRelate.setProjectId(projectAId);
|
|
|
+// projectRelate.setRelateId(relateProjectDTO.getProjectBId());
|
|
|
+// projectRelateDao.save(projectRelate);
|
|
|
+// }else {
|
|
|
+// //项目的关联项目只能有一个
|
|
|
+// projectRelate = projectRelateDao.findById(projectAId).get();
|
|
|
+// projectRelate.setRelateId(relateProjectDTO.getProjectBId());
|
|
|
+// projectRelateDao.save(projectRelate);
|
|
|
+// }
|
|
|
|
|
|
//增加关联后,A和B中的成员应该相同,每个成员也应该加入
|
|
|
//先将A、B项目中的成员同步
|
|
|
@@ -466,6 +467,7 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
projectB = devcloudProjectDao.findById(projectBId).get();
|
|
|
}
|
|
|
|
|
|
+ //将A和B中的user_id进行合并
|
|
|
List<Integer> totalMembers = new ArrayList<>();
|
|
|
for(Integer id : projectA.getUserIds()){
|
|
|
if(!totalMembers.contains(id)){
|
|
|
@@ -508,7 +510,7 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
}
|
|
|
|
|
|
|
|
|
- return projectRelate;
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -736,22 +738,25 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
public FormatGroup getGroupAnalysis(Integer project_id){
|
|
|
//暂时不存在GroupId,先使用ProjectId代替
|
|
|
FormatGroup formatGroup = new FormatGroup();
|
|
|
+ //记录该小组拥有的所有项目的id
|
|
|
List<Integer> projectList = new ArrayList<>();
|
|
|
+ //记录所有项目的信息,用于小组项目信息展示
|
|
|
List<Project> projects = new ArrayList<>();
|
|
|
- Integer projectAId = project_id;
|
|
|
- Integer projectBId;
|
|
|
- Optional<ProjectRelate> result1 = projectRelateDao.findById(project_id);
|
|
|
- if(!result1.isPresent()){
|
|
|
- System.out.println("没有找到关联项目");
|
|
|
- }else {
|
|
|
- projectBId = projectRelateDao.findById(project_id).get().getRelateId();
|
|
|
- projectList.add(projectBId);
|
|
|
- projects.add(projectDao.findById(projectBId).get());
|
|
|
- }
|
|
|
|
|
|
- projectList.add(projectAId);
|
|
|
-
|
|
|
- projects.add(projectDao.findById(projectAId).get());
|
|
|
+// Integer projectAId = project_id;
|
|
|
+// Integer projectBId;
|
|
|
+// Optional<ProjectRelate> result1 = projectRelateDao.findById(project_id);
|
|
|
+// if(!result1.isPresent()){
|
|
|
+// System.out.println("没有找到关联项目");
|
|
|
+// }else {
|
|
|
+// projectBId = projectRelateDao.findById(project_id).get().getRelateId();
|
|
|
+// projectList.add(projectBId);
|
|
|
+// projects.add(projectDao.findById(projectBId).get());
|
|
|
+// }
|
|
|
+
|
|
|
+ //先将传入的project加入List
|
|
|
+ projectList.add(project_id);
|
|
|
+ projects.add(projectDao.findById(project_id).get());
|
|
|
|
|
|
Optional<DevcloudProject> result2 = devcloudProjectDao.findById(project_id);
|
|
|
if(!result2.isPresent()){
|
|
|
@@ -761,13 +766,29 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
|
|
|
List<Integer> userIds = devcloudProjectDao.findById(project_id).get().getUserIds();
|
|
|
|
|
|
+ //遍历加入项目中所有成员下拥有的项目,得到该小组所有的项目
|
|
|
+ for(Integer userId : userIds){
|
|
|
+ Optional<DevcloudUser> result = devcloudUserDao.findById(userId);
|
|
|
+ if(!result.isPresent()){
|
|
|
+ continue;
|
|
|
+ }else {
|
|
|
+ List<Integer> proIds = devcloudUserDao.findById(userId).get().getProjectIds();
|
|
|
+ for(Integer proId : proIds){
|
|
|
+ if(!projectList.contains(proId)){
|
|
|
+ projectList.add(proId);
|
|
|
+ projects.add(projectDao.findById(proId).get());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //将所有的成员信息加入
|
|
|
List<User> users = new ArrayList<>();
|
|
|
for(int i=0;i<userIds.size();i++){
|
|
|
Integer userId = userIds.get(i);
|
|
|
users.add(userDao.findByUserId(userId));
|
|
|
}
|
|
|
int n = userIds.size();
|
|
|
-// System.out.println("n: "+n);
|
|
|
|
|
|
formatGroup.setProjects(projects);
|
|
|
formatGroup.setStudents(users);
|
|
|
@@ -798,8 +819,8 @@ public class DevcloudDataAnalysisServiceImpl implements DevcloudDataAnalysisServ
|
|
|
//记录小组不同成员的treeNode贡献
|
|
|
int[] treeNodeTimes = new int[n];
|
|
|
|
|
|
- //
|
|
|
- for(int i=0;i<projects.size();i++){
|
|
|
+ //遍历所有的项目,将整体信息作为小组的分析情况
|
|
|
+ for(int i=0;i<projectList.size();i++){
|
|
|
Integer projectId = projectList.get(i);
|
|
|
DevcloudInfo devcloudInfo;
|
|
|
Optional<DevcloudInfo> result3 = devcloudInfoDao.findById(projectId);
|