|
@@ -46,7 +46,7 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
private TaskToUserDao taskToUserDao;
|
|
|
|
|
|
@Autowired
|
|
|
- private UserDao userDao;
|
|
|
+ private UserRepo userRepo;
|
|
|
|
|
|
@Autowired
|
|
|
private ApplicationTypeDao applicationTypeDao;
|
|
@@ -136,9 +136,6 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
return this.getCrowdTestProject(taskCode, crowdTestProjectDao.findByCodeAndIsDeleted(crowdTestProjectCode, DeletedStatus.isNotDeleted));
|
|
|
}
|
|
|
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
@NotNull
|
|
|
public CrowdTestProject getCrowdTestProject(String taskCode, CrowdTestProjectPO crowdTestProjectPO) {
|
|
|
if (crowdTestProjectPO == null) {
|
|
@@ -173,68 +170,47 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
|
|
|
crowdTestProjectDao.save(crowdTestProjectPO);
|
|
|
List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
- if (crowdTestTaskList != null) {
|
|
|
- for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
|
|
|
- CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
|
|
|
- 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<TaskToUserPO> taskToUserPOS = taskToUserDao.findByTaskCodeAndHasReport(crowdTestTask.getCode(), 1);
|
|
|
-// Set<Long> collect = taskToUserPOS.stream().map(TaskToUserPO::getUserId).collect(Collectors.toSet());
|
|
|
-// crowdTestTaskPO.setParticipantHasReportCount(collect.size());
|
|
|
- crowdTestTaskDao.save(crowdTestTaskPO);
|
|
|
-
|
|
|
- // 判断是否存在配置项
|
|
|
- if(commonRepo.getTestTypeByAppCode(crowdTestTask.getType()).getType() == 1){
|
|
|
- // 保存配置项信息
|
|
|
- if(crowdTestTask.getEndPoint() != null){
|
|
|
- Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(crowdTestTask.getCode());
|
|
|
- EndPoint endPoint = crowdTestTask.getEndPoint();
|
|
|
- EndPointPO addEndPointPO = new EndPointPO();
|
|
|
- if(endPointPO.isPresent()){
|
|
|
- addEndPointPO = Converter.convert(EndPointPO.class, endPoint);
|
|
|
- addEndPointPO.setId(endPointPO.get().getId());
|
|
|
- }
|
|
|
- addEndPointPO.setProjectCode(crowdTestProject.getCode());
|
|
|
- addEndPointPO.setTaskCode(crowdTestTask.getCode());
|
|
|
- addEndPointPO.setCollaborativeType(endPoint.getCollaborativeType());
|
|
|
- if(endPoint.getServerCode() != null && endPoint.getServerCode() != ""){
|
|
|
- addEndPointPO.setServerCode(endPoint.getServerCode());
|
|
|
- }
|
|
|
- if(endPoint.getToken() != null && endPoint.getToken() != ""){
|
|
|
- addEndPointPO.setToken(endPoint.getToken());
|
|
|
- }
|
|
|
- if(endPoint.getUrl() != null && endPoint.getUrl() != ""){
|
|
|
- addEndPointPO.setUrl(endPoint.getUrl());
|
|
|
- }
|
|
|
- if(endPoint.getThreePageUrl() != null && endPoint.getThreePageUrl() != ""){
|
|
|
- addEndPointPO.setThreePageUrl(endPoint.getThreePageUrl());
|
|
|
- }
|
|
|
- if(endPoint.getExamId() != null && endPoint.getExamId() != ""){
|
|
|
- addEndPointPO.setExamId(endPoint.getExamId());
|
|
|
- }
|
|
|
- if(endPoint.getCaseId() != null && endPoint.getCaseId() != ""){
|
|
|
- addEndPointPO.setCaseId(endPoint.getCaseId());
|
|
|
- }
|
|
|
- endPointDao.save(addEndPointPO);
|
|
|
- }
|
|
|
- }else{
|
|
|
- Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(crowdTestTask.getCode());
|
|
|
- if(endPointPO.isPresent()){
|
|
|
- endPointDao.deleteEndPoint(crowdTestTask.getCode());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
+ Optional.ofNullable(crowdTestTaskList).orElse(new ArrayList<>()).stream().forEach(crowdTestTask -> {
|
|
|
+ List<TaskToUser> acceptedUserList = crowdTestTask.getAcceptedUserList();
|
|
|
+ Optional.ofNullable(acceptedUserList).orElse(new ArrayList<>()).stream().forEach(taskToUser -> {
|
|
|
+ // 保存接包信息
|
|
|
+ taskToUserDao.save(Converter.convert(TaskToUserPO.class, taskToUser));
|
|
|
+ // 保存报告信息
|
|
|
+ List<CrowdTestReport> crowdTestReportList = taskToUser.getCrowdTestReportList();
|
|
|
+ Optional.ofNullable(crowdTestReportList).orElse(new ArrayList<>()).stream()
|
|
|
+ .forEach(crowdTestReport -> crowdTestReportDao.save(Converter.convert(CrowdTestReportPO.class, crowdTestReport)));
|
|
|
+ });
|
|
|
+ // 保存任务基本信息
|
|
|
+ crowdTestTaskDao.save(Converter.convert(CrowdTestTaskPO.class, crowdTestTask));
|
|
|
+ // 保存任务配置信息
|
|
|
+ this.saveEndPoint(crowdTestProject, crowdTestTask);
|
|
|
+ });
|
|
|
// 保存项目报告
|
|
|
+ this.saveProjectReport(crowdTestProject);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存项目基本信息和任务的信息(基本和配置)
|
|
|
+ * @param crowdTestProject
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public void saveCrowdTestProjectAndTaskInfo(CrowdTestProject crowdTestProject) {
|
|
|
+ CrowdTestProjectPO crowdTestProjectPO = Converter.convert(CrowdTestProjectPO.class, crowdTestProject);
|
|
|
+ crowdTestProjectDao.save(crowdTestProjectPO);
|
|
|
+ List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
|
|
|
+ Optional.ofNullable(crowdTestTaskList).orElse(new ArrayList<>()).stream().forEach(crowdTestTask -> {
|
|
|
+ // 保存任务基本信息
|
|
|
+ crowdTestTaskDao.save(Converter.convert(CrowdTestTaskPO.class, crowdTestTask));
|
|
|
+ // 保存任务配置信息
|
|
|
+ this.saveEndPoint(crowdTestProject, crowdTestTask);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存项目报告信息
|
|
|
+ * @param crowdTestProject
|
|
|
+ */
|
|
|
+ private void saveProjectReport(CrowdTestProject crowdTestProject) {
|
|
|
if (crowdTestProject.getCrowdTestReportForProject() != null) {
|
|
|
CrowdTestReport reportForProject = crowdTestProject.getCrowdTestReportForProject();
|
|
|
CrowdTestReportPO crowdTestReportPO = Converter.convert(CrowdTestReportPO.class, reportForProject);
|
|
@@ -242,6 +218,73 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+// if (crowdTestTaskList != null) {
|
|
|
+// for (CrowdTestTask crowdTestTask : crowdTestTaskList) {
|
|
|
+// CrowdTestTaskPO crowdTestTaskPO = Converter.convert(CrowdTestTaskPO.class, crowdTestTask);
|
|
|
+// 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);
|
|
|
+// }
|
|
|
+// }
|
|
|
+// crowdTestTaskDao.save(crowdTestTaskPO);
|
|
|
+// this.saveEndPoint(crowdTestProject, crowdTestTask);
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 保存任务的相关配置信息
|
|
|
+ * @param crowdTestProject
|
|
|
+ * @param crowdTestTask
|
|
|
+ */
|
|
|
+ private void saveEndPoint(CrowdTestProject crowdTestProject, CrowdTestTask crowdTestTask) {
|
|
|
+ // 判断是否存在配置项
|
|
|
+ if(commonRepo.getTestTypeByAppCode(crowdTestTask.getType()).getType() == JudgeType.YES.getId()){
|
|
|
+ // 保存配置项信息
|
|
|
+ if(crowdTestTask.getEndPoint() != null){
|
|
|
+ Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(crowdTestTask.getCode());
|
|
|
+ EndPoint endPoint = crowdTestTask.getEndPoint();
|
|
|
+ EndPointPO addEndPointPO = new EndPointPO();
|
|
|
+ if(endPointPO.isPresent()){
|
|
|
+ addEndPointPO = Converter.convert(EndPointPO.class, endPoint);
|
|
|
+ addEndPointPO.setId(endPointPO.get().getId());
|
|
|
+ }
|
|
|
+ addEndPointPO.setProjectCode(crowdTestProject.getCode());
|
|
|
+ addEndPointPO.setTaskCode(crowdTestTask.getCode());
|
|
|
+ addEndPointPO.setCollaborativeType(endPoint.getCollaborativeType());
|
|
|
+ if(endPoint.getServerCode() != null && endPoint.getServerCode() != ""){
|
|
|
+ addEndPointPO.setServerCode(endPoint.getServerCode());
|
|
|
+ }
|
|
|
+ if(endPoint.getToken() != null && endPoint.getToken() != ""){
|
|
|
+ addEndPointPO.setToken(endPoint.getToken());
|
|
|
+ }
|
|
|
+ if(endPoint.getUrl() != null && endPoint.getUrl() != ""){
|
|
|
+ addEndPointPO.setUrl(endPoint.getUrl());
|
|
|
+ }
|
|
|
+ if(endPoint.getThreePageUrl() != null && endPoint.getThreePageUrl() != ""){
|
|
|
+ addEndPointPO.setThreePageUrl(endPoint.getThreePageUrl());
|
|
|
+ }
|
|
|
+ if(endPoint.getExamId() != null && endPoint.getExamId() != ""){
|
|
|
+ addEndPointPO.setExamId(endPoint.getExamId());
|
|
|
+ }
|
|
|
+ if(endPoint.getCaseId() != null && endPoint.getCaseId() != ""){
|
|
|
+ addEndPointPO.setCaseId(endPoint.getCaseId());
|
|
|
+ }
|
|
|
+ endPointDao.save(addEndPointPO);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(crowdTestTask.getCode());
|
|
|
+ if(endPointPO.isPresent()){
|
|
|
+ endPointDao.deleteEndPoint(crowdTestTask.getCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<CrowdTestProject> getByProject() {
|
|
|
List<CrowdTestProject> crowdTestProjectList=new ArrayList<>();
|
|
@@ -361,17 +404,14 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
|
|
|
// 检索任务中的所有已接收任务的人员信息
|
|
|
List<TaskToUserPO> taskToUserPOList = taskToUserDao.findByTaskCode(crowdTestTaskResult.getCode());
|
|
|
+// List<TaskToUserPO> taskToUserPOList = taskToUserDao.findByTaskCodeAndIsAccepted(crowdTestTaskResult.getCode(), JudgeType.YES.getId());
|
|
|
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("无此人员的信息");
|
|
|
- }
|
|
|
+ taskToUser.setUser(userRepo.getByIDJustInfo(taskToUser.getUserId()));
|
|
|
// 获取每个人员的报告信息
|
|
|
- List<CrowdTestReport> crowdTestReportListResult = getReportByTaskCodeAndUserId(crowdTestTaskPO.getCode(), taskToUser.getUserId());
|
|
|
+ // 获取指定的报告信息
|
|
|
+ List<CrowdTestReport> crowdTestReportListResult = this.getReportByTaskCodeAndUserId(crowdTestTaskPO.getCode(), taskToUser.getUserId());
|
|
|
taskToUser.setCrowdTestReportList(crowdTestReportListResult);
|
|
|
return taskToUser;
|
|
|
}).collect(Collectors.toList());
|
|
@@ -400,27 +440,6 @@ public class CrowdTestProjectRepo implements ICrowdTestProjectRepo {
|
|
|
return taskPOS.stream().map(crowdTestTaskPO -> Converter.convert(CrowdTestTask.class, crowdTestTaskPO)).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
- public CrowdTestTask getTaskDetail(CrowdTestTask crowdTestTask, Long userId){
|
|
|
- // 检索任务中的所有已接收任务的人员信息
|
|
|
- List<TaskToUserPO> taskToUserPOList = taskToUserDao.findByTaskCode(crowdTestTask.getCode()).stream().filter(taskToUserPO -> taskToUserPO.getUserId().equals(userId)).collect(Collectors.toList());
|
|
|
- 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(crowdTestTask.getCode(), taskToUser.getUserId());
|
|
|
- taskToUser.setCrowdTestReportList(crowdTestReportListResult);
|
|
|
- return taskToUser;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- crowdTestTask.setAcceptedUserList(taskToUserList);
|
|
|
- return crowdTestTask;
|
|
|
- }
|
|
|
-
|
|
|
/**
|
|
|
* 通过任务code和人员id获取报告列表
|
|
|
*
|