|
@@ -126,6 +126,9 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
@Autowired
|
|
|
private ThemeStatusTaskService themeStatusTaskService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private EndPointDao endPointDao;
|
|
|
+
|
|
|
@Override
|
|
|
public List<CrowdTestProjectVO> crowdTestProjects() {
|
|
|
List<CrowdTestProjectVO> authingList = new ArrayList<>();
|
|
@@ -563,7 +566,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
//我的众测 - 项目相关信息
|
|
|
//获取我创建的项目列表
|
|
|
List<CrowdProjectVO> myProejcts = projectDao.findByUserIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
|
|
|
- .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed()).map(crowdTestProjectPO -> {
|
|
|
+ .stream().map(crowdTestProjectPO -> {
|
|
|
CrowdTestProject project = new CrowdTestProject();
|
|
|
BeanUtils.copyProperties(crowdTestProjectPO, project);
|
|
|
CrowdProjectVO projectVO = new CrowdProjectVO(project);
|
|
@@ -572,25 +575,25 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
projectVO.setNeedHandle(true);
|
|
|
// 应用类型值的转换
|
|
|
projectVO = changeApplicationType(projectVO);
|
|
|
+ // 判断项目是否截止
|
|
|
+ if (projectVO.getDatetime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
|
|
|
+ project.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
|
|
|
+ }
|
|
|
return projectVO;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdProjectVO::getCreateTime).thenComparing(CrowdProjectVO::getStatus).reversed()).collect(Collectors.toList());
|
|
|
myCrowdDTO.setMyProjects(myProejcts);
|
|
|
-// List<CrowdProjectVO> myProject=new ArrayList<>();
|
|
|
-// List<CrowdProjectVO> finishedProjects=new ArrayList<>();
|
|
|
-// for(int i=0;i<myProejcts.size();i++){
|
|
|
-// if(myProejcts.get(i).getStatus()<CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
-// myProject.add(myProejcts.get(i));
|
|
|
-// myCrowdDTO.setMyProjects(myProject);
|
|
|
-// }else if(myProejcts.get(i).getStatus()>=CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
-// finishedProjects.add(myProejcts.get(i));
|
|
|
-// myCrowdDTO.setFinishedProjects(finishedProjects);
|
|
|
-// }
|
|
|
-// }
|
|
|
|
|
|
//对于区域管理员crowdTestProjectPO -> crowdTestProjectPO.getStatus() > CrowdTestProjectStatus.HAS_RELEASED
|
|
|
if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("RegionalManager"))) {
|
|
|
List<CrowdTestProjectPO> crowdTestProjectPOList = projectDao.findByRegionalManagerIdAndIsDeleted(userId, DeletedStatus.isNotDeleted)
|
|
|
- .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getCreateTime).thenComparing(CrowdTestProjectPO::getStatus).reversed()).collect(Collectors.toList());
|
|
|
+ .stream().map(crowdTestProjectPO -> {
|
|
|
+ // 判断项目是否截止
|
|
|
+ if (crowdTestProjectPO.getDeadTime().getTime() <= System.currentTimeMillis() && crowdTestProjectPO.getStatus() < CrowdTestProjectStatus.HAS_FINISHED) {
|
|
|
+ crowdTestProjectPO.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
|
|
|
+ }
|
|
|
+ return crowdTestProjectPO;
|
|
|
+ }).collect(Collectors.toList())
|
|
|
+ .stream().sorted(Comparator.comparing(CrowdTestProjectPO::getStatus).reversed().thenComparing(CrowdTestProjectPO::getCreateTime).reversed()).collect(Collectors.toList());
|
|
|
//获取区域管理员正在处理中的项目列表
|
|
|
myCrowdDTO.setHandlingProjects(crowdTestProjectPOList.stream().filter(crowdTestProjectPO -> crowdTestProjectPO.getStatus() > CrowdTestProjectStatus.HAS_RELEASED).map(crowdTestProjectPO -> {
|
|
|
CrowdTestProject project = new CrowdTestProject();
|
|
@@ -646,6 +649,10 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
// 测试类型的转换
|
|
|
String typeName = commonRepo.getTypeNameByCode(task.getType());
|
|
|
task.setType(typeName);
|
|
|
+ // 判断任务是否截止
|
|
|
+ if (task.getDeadTime().getTime() <= System.currentTimeMillis() && task.getStatus() < CrowdTestTaskStatus.HAS_FINISHED) {
|
|
|
+ task.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
|
|
|
+ }
|
|
|
return task;
|
|
|
}
|
|
|
return null;
|
|
@@ -894,8 +901,8 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
|
|
|
CrowdTaskVO taskVO = new CrowdTaskVO(task.get());
|
|
|
// 测试类型的转换
|
|
|
- String typeName = commonRepo.getTypeNameByCode(taskVO.getServiceType());
|
|
|
- taskVO.setServiceType(typeName);
|
|
|
+// String typeName = commonRepo.getTypeNameByCode(taskVO.getServiceType());
|
|
|
+// taskVO.setServiceType(typeName);
|
|
|
|
|
|
System.out.println("renderTaskDetails userId:" + userId);
|
|
|
if (userId == null) {
|
|
@@ -906,6 +913,12 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
// 区域管理员视图
|
|
|
List<TaskToUserVO> taskToUserVOS = new ArrayList<>();
|
|
|
if (userId.equals(project.getRegionalManagerId())) {
|
|
|
+ // 判断否存在配置项
|
|
|
+ Optional<EndPointPO> endPointPO = endPointDao.findByTaskCode(taskVO.getCode());
|
|
|
+ if(endPointPO.isPresent()){
|
|
|
+ taskVO.setEndPointVO(new EndPointVO(Converter.convert(EndPoint.class, endPointPO.get())));
|
|
|
+ }
|
|
|
+
|
|
|
taskToUserVOS = task.get().getAcceptedUserList().stream().map(taskToUser -> {
|
|
|
TaskToUserVO taskToUserVO = new TaskToUserVO(taskToUser);
|
|
|
taskToUserVO.setUserVO(Converter.convert(UserVO.class, taskToUser.getUser()));
|
|
@@ -944,11 +957,20 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}).collect(Collectors.toList());
|
|
|
}
|
|
|
taskDetailsDTO.setAcceptedUserList(taskToUserVOS);
|
|
|
+
|
|
|
+ Optional<EndPointPO> endPointPOOptional = endPointDao.findByTaskCode(task.get().getCode());
|
|
|
+ // 判断是否具有配置项,提供跳转url
|
|
|
+ if(endPointPOOptional.isPresent()){
|
|
|
+ // 获取测试类型对应的跳转url
|
|
|
+ String reportUrl = endPointPOOptional.get().getUrl().replace("userId", String.valueOf(userId));
|
|
|
+ taskVO.setWriteReportUrl(reportUrl);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
if (saveFlag) {
|
|
|
projectRepo.saveCrowdTestProject(project);
|
|
|
}
|
|
|
+
|
|
|
taskDetailsDTO.setCrowdTaskVO(taskVO);
|
|
|
// EvaluationAgencyPO agencyPO = agencyDao.findByUserId(task.get().getEvaluationAgencyId());
|
|
|
// taskVO.setInstitution(agencyPO==null?"该机构已注销":agencyPO.getEvaluationAgencyName());
|
|
@@ -1056,8 +1078,12 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
authingList.addAll(projectDao.findByNameLikeAndIsDeleted("%" + name + "%", DeletedStatus.isNotDeleted).stream().map(crowdTestProjectPO -> {
|
|
|
CrowdTestProject crowdTestProject = new CrowdTestProject();
|
|
|
BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
|
|
|
- return new CrowdTestProjectVO(crowdTestProject);
|
|
|
- }).collect(Collectors.toList()));
|
|
|
+ // 项目测试类型转换
|
|
|
+ String applicationName = commonRepo.getApplicationNameByCode(crowdTestProjectPO.getApplicationType());
|
|
|
+ CrowdTestProjectVO crowdTestProjectVO = new CrowdTestProjectVO(crowdTestProject);
|
|
|
+ crowdTestProjectVO.setApplicationType(applicationName);
|
|
|
+ return crowdTestProjectVO;
|
|
|
+ }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdTestProjectVO::getCreateTime).reversed()).collect(Collectors.toList()));
|
|
|
return authingList;
|
|
|
}
|
|
|
|
|
@@ -1071,7 +1097,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
BeanUtils.copyProperties(crowdTestTaskPO, crowdTestTask);
|
|
|
crowdTestTask.setType(serviceType.get().getName());
|
|
|
return new CrowdTaskVO(crowdTestTask);
|
|
|
- }).collect(Collectors.toList()));
|
|
|
+ }).collect(Collectors.toList()).stream().sorted(Comparator.comparing(CrowdTaskVO::getCreateTime).reversed()).collect(Collectors.toList()));
|
|
|
return authingList;
|
|
|
}
|
|
|
|
|
@@ -1080,12 +1106,13 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
List<CrowdTestProjectVO> authingList = new ArrayList<>();
|
|
|
authingList.addAll(projectDao.findAll().stream().map(crowdTestProjectPO ->{
|
|
|
CrowdTestProject crowdTestProject = new CrowdTestProject();
|
|
|
-// if(crowdTestProject.getDeadTime().getTime() < System.currentTimeMillis()){
|
|
|
-//
|
|
|
-// }
|
|
|
BeanUtils.copyProperties(crowdTestProjectPO, crowdTestProject);
|
|
|
themeStatusService.updateStatus(crowdTestProject);
|
|
|
- return new CrowdTestProjectVO(crowdTestProject);
|
|
|
+ // 项目测试类型转换
|
|
|
+ String applicationName = commonRepo.getApplicationNameByCode(crowdTestProjectPO.getApplicationType());
|
|
|
+ CrowdTestProjectVO crowdTestProjectVO = new CrowdTestProjectVO(crowdTestProject);
|
|
|
+ crowdTestProjectVO.setApplicationType(applicationName);
|
|
|
+ return crowdTestProjectVO;
|
|
|
}).collect(Collectors.toList()));
|
|
|
return authingList;
|
|
|
}
|
|
@@ -1587,6 +1614,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}
|
|
|
|
|
|
private TaskOperationControl initTaskPermission(CrowdTestProject project, CrowdTestTask task, User user) {
|
|
|
+ Optional<EndPointPO> endPointPOOptional = endPointDao.findByTaskCode(task.getCode());
|
|
|
TaskOperationControl taskOperationControl = new TaskOperationControl();
|
|
|
|
|
|
if (user == null || task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
|
|
@@ -1596,16 +1624,30 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
//区域管理员或系统管理员视角
|
|
|
if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("SystemAdministrator"))
|
|
|
|| (user.getRegionalManager() != null && user.getId().equals(project.getRegionalManagerId()))) {
|
|
|
- if ((task.getParticipantHasCommittedCount() == task.getAcceptedCount() && task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED) || (task.getParticipantHasCommittedCount() == task.getParticipantCount() && task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED)) {
|
|
|
- taskOperationControl.setConfirmFinish(true);
|
|
|
- }
|
|
|
if (task.getStatus() < CrowdTestTaskStatus.HAS_RECEIVED) {
|
|
|
taskOperationControl.setUpdate(true);
|
|
|
+ // 具有配置项,需要在第三方进行填写报告
|
|
|
+ if(endPointPOOptional.isPresent()){
|
|
|
+ taskOperationControl.setWriteReport(true);
|
|
|
+ }
|
|
|
}
|
|
|
- taskOperationControl.setFinish(false);
|
|
|
- if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
|
|
|
- taskOperationControl.setConfirmFinish(false);
|
|
|
+ else{
|
|
|
+ if ((task.getParticipantHasCommittedCount() == task.getAcceptedCount() && task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED) || (task.getParticipantHasCommittedCount() == task.getParticipantCount() && task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED)) {
|
|
|
+ taskOperationControl.setConfirmFinish(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ taskOperationControl.setFinish(false);
|
|
|
+ if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
|
|
|
+ taskOperationControl.setConfirmFinish(false);
|
|
|
+ }
|
|
|
+ // 具有配置项,需要在第三方进行填写报告
|
|
|
+ if(endPointPOOptional.isPresent()){
|
|
|
+ taskOperationControl.setWriteReport(true);
|
|
|
+ taskOperationControl.setUploadReport(true);
|
|
|
+ taskOperationControl.setConfirmFinish(true);
|
|
|
+ }
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
// TODO 已拒绝视图
|
|
|
//评测机构和测评人员视角
|
|
@@ -1629,6 +1671,12 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
taskOperationControl.setFinish(false);
|
|
|
taskOperationControl.setUploadReport(false);
|
|
|
}
|
|
|
+
|
|
|
+ // 具有配置项,需要在第三方进行填写报告
|
|
|
+ if(endPointPOOptional.isPresent()){
|
|
|
+ taskOperationControl.noAll();
|
|
|
+ taskOperationControl.setWriteReport(true);
|
|
|
+ }
|
|
|
} else if (task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED) {
|
|
|
taskOperationControl.setUploadReport(false);
|
|
|
}
|
|
@@ -1647,14 +1695,13 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}
|
|
|
|
|
|
}
|
|
|
-
|
|
|
} else if (task.getDistributionType() == 2) {
|
|
|
if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
taskOperationControl.setReceive(true);
|
|
|
- // 项目发起者
|
|
|
- if (project.getUserId().equals(user.getId())) {
|
|
|
- taskOperationControl.setReceive(false);
|
|
|
- }
|
|
|
+// // 项目发起者
|
|
|
+// if (project.getUserId().equals(user.getId())) {
|
|
|
+// taskOperationControl.setReceive(false);
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
}
|