|
|
@@ -1,17 +1,12 @@
|
|
|
package com.mooctest.crowd.domain.repository;
|
|
|
|
|
|
-import com.mooctest.crowd.domain.dao.CrowdTestProjectDao;
|
|
|
-import com.mooctest.crowd.domain.dao.CrowdTestReportDao;
|
|
|
-import com.mooctest.crowd.domain.dao.CrowdTestTaskDao;
|
|
|
-import com.mooctest.crowd.domain.domainobject.CrowdTestProject;
|
|
|
-import com.mooctest.crowd.domain.domainobject.CrowdTestReport;
|
|
|
-import com.mooctest.crowd.domain.domainobject.CrowdTestTask;
|
|
|
-import com.mooctest.crowd.domain.domainobject.DeletedStatus;
|
|
|
+import com.mooctest.crowd.domain.dao.*;
|
|
|
+import com.mooctest.crowd.domain.domainobject.*;
|
|
|
import com.mooctest.crowd.domain.exception.CrowdTestProjectNotExistException;
|
|
|
-import com.mooctest.crowd.domain.model.CrowdTestProjectPO;
|
|
|
-import com.mooctest.crowd.domain.model.CrowdTestReportPO;
|
|
|
-import com.mooctest.crowd.domain.model.CrowdTestTaskPO;
|
|
|
+import com.mooctest.crowd.domain.exception.HttpBadRequestException;
|
|
|
+import com.mooctest.crowd.domain.model.*;
|
|
|
import com.mooctest.crowd.domain.util.Converter;
|
|
|
+import com.mooctest.crowd.domain.domainobject.ReportScopeType;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
@@ -19,6 +14,7 @@ import org.springframework.stereotype.Component;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
import java.util.Optional;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* @author guochao
|
|
|
@@ -37,6 +33,12 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
@Autowired
|
|
|
private CrowdTestReportDao crowdTestReportDao;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private TaskToUserDao taskToUserDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserDao userDao;
|
|
|
+
|
|
|
@Override
|
|
|
public CrowdTestProject getByID(Long crowdTestProjectId) throws CrowdTestProjectNotExistException {
|
|
|
|
|
|
@@ -89,22 +91,35 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
|
|
|
crowdTestTaskDao.save(crowdTestTaskPO);
|
|
|
- List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
|
|
|
- if(crowdTestReportList != null){
|
|
|
+ List<TaskToUser> acceptedUserList = crowdTestTask.getAcceptedUserList();
|
|
|
+ for(TaskToUser taskToUser:acceptedUserList){
|
|
|
+ taskToUserDao.save(Converter.convert(TaskToUserPO.class, taskToUser));
|
|
|
+ // 保存报告信息
|
|
|
+ List<CrowdTestReport> crowdTestReportList = taskToUser.getCrowdTestReportList();
|
|
|
for(CrowdTestReport crowdTestReport : crowdTestReportList){
|
|
|
CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, crowdTestReport);
|
|
|
crowdTestReportDao.save(crowdTestReportPO);
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ // 保存报告
|
|
|
+// List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
|
|
|
+// if(crowdTestReportList != null){
|
|
|
+// for(CrowdTestReport crowdTestReport : crowdTestReportList){
|
|
|
+// CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, crowdTestReport);
|
|
|
+// crowdTestReportDao.save(crowdTestReportPO);
|
|
|
+// }
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
//保存项目报告
|
|
|
- CrowdTestReport crowdTestReportForProject = crowdTestProject.getCrowdTestReportForProject();
|
|
|
- if(crowdTestReportForProject != null){
|
|
|
- CrowdTestReportPO crowdTestReportForProjectPO = Converter.convert(CrowdTestReportPO.class, crowdTestReportForProject);
|
|
|
- crowdTestReportDao.save(crowdTestReportForProjectPO);
|
|
|
- }
|
|
|
+// CrowdTestReport crowdTestReportForProject = crowdTestProject.getCrowdTestReportForProject();
|
|
|
+// if(crowdTestReportForProject != null){
|
|
|
+// CrowdTestReportPO crowdTestReportForProjectPO = Converter.convert(CrowdTestReportPO.class, crowdTestReportForProject);
|
|
|
+// crowdTestReportDao.save(crowdTestReportForProjectPO);
|
|
|
+// }
|
|
|
}
|
|
|
|
|
|
// @Override
|
|
|
@@ -188,9 +203,27 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
|
|
|
for(CrowdTestTaskPO crowdTestTaskPO : crowdTestTaskPOList){
|
|
|
CrowdTestTask crowdTestTaskResult = Converter.convert(CrowdTestTask.class, crowdTestTaskPO);
|
|
|
- // 检索任务中的所有的报告
|
|
|
- List<CrowdTestReport> crowdTestReportListResult = getCrowdTestReportByCrowdTestTask(crowdTestTaskPO.getCode());
|
|
|
- crowdTestTaskResult.setCrowdTestReportList(crowdTestReportListResult);
|
|
|
+ // 检索任务中的所有已接收任务的人员信息
|
|
|
+ List<TaskToUserPO> taskToUserPOList = taskToUserDao.findByTaskCode(crowdTestTaskResult.getCode());
|
|
|
+ List<TaskToUser> taskToUserList = taskToUserPOList.stream().map(taskToUserPO -> {
|
|
|
+ TaskToUser taskToUser = Converter.convert(TaskToUser.class, taskToUserPO);
|
|
|
+ // 获取人员详细信息
|
|
|
+ Optional<UserPO> userPOOptional = userDao.findById(taskToUser.getUserId());
|
|
|
+ if(userPOOptional.isPresent()){
|
|
|
+ taskToUser.setUser(Converter.convert(User.class, userPOOptional.get()));
|
|
|
+ }else{
|
|
|
+ throw new HttpBadRequestException("无此人员的信息");
|
|
|
+ }
|
|
|
+ // 获取每个人员的报告信息
|
|
|
+ List<CrowdTestReport> crowdTestReportListResult = getReportByTaskCodeAndUserId(crowdTestTaskPO.getCode(), taskToUser.getUserId());
|
|
|
+ taskToUser.setCrowdTestReportList(crowdTestReportListResult);
|
|
|
+ return taskToUser;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ crowdTestTaskResult.setAcceptedUserList(taskToUserList);
|
|
|
+
|
|
|
+// // 检索任务中的所有的报告
|
|
|
+// List<CrowdTestReport> crowdTestReportListResult = getCrowdTestReportByCrowdTestTask(crowdTestTaskPO.getCode());
|
|
|
+// crowdTestTaskResult.setCrowdTestReportList(crowdTestReportListResult);
|
|
|
crowdTestTaskListResult.add(crowdTestTaskResult);
|
|
|
}
|
|
|
crowdTestProjectResult.setCrowdTestTaskList(crowdTestTaskListResult);
|
|
|
@@ -206,6 +239,17 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 通过任务code和人员id获取报告列表
|
|
|
+ * @param taskCode
|
|
|
+ * @param userId
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ private List<CrowdTestReport> getReportByTaskCodeAndUserId(String taskCode, Long userId) {
|
|
|
+ List<CrowdTestReportPO> crowdTestReportPOList = crowdTestReportDao.findByDependencyCodeAndUserIdAndScopeAndIsDeleted(taskCode, userId, ReportScopeType.TASK_SCOPE.getId(), DeletedStatus.isNotDeleted);
|
|
|
+ return crowdTestReportPOList.stream().map(crowdTestReportPO -> Converter.convert(CrowdTestReport.class, crowdTestReportPO)).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 通过任务信息获取报告信息
|
|
|
* @param crowdTestTaskCode
|
|
|
* @return
|