|
|
@@ -255,35 +255,55 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
|
|
|
@Override
|
|
|
public ProjectDetailsDTO renderProjectDetails(CrowdTestProject project, User user) {
|
|
|
+ boolean saveFlag = false;
|
|
|
+ // 判断项目是否截止
|
|
|
+ if (project.getDeadTime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
+ project.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
|
|
|
+ saveFlag = true;
|
|
|
+ }
|
|
|
+
|
|
|
ProjectDetailsDTO projectDetailsDTO = new ProjectDetailsDTO();
|
|
|
- List<CrowdTaskVO> taskVOList = project.getCrowdTestTaskList().stream().map(crowdTestTask -> {
|
|
|
+ List<CrowdTestTask> crowdTestTaskList = project.getCrowdTestTaskList();
|
|
|
+ List<CrowdTaskVO> taskVOList = new ArrayList<>();
|
|
|
+ for(CrowdTestTask crowdTestTask : crowdTestTaskList){
|
|
|
+ // 判断任务是否截止
|
|
|
+ if(crowdTestTask.getDeadTime().getTime() <= System.currentTimeMillis() && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED){
|
|
|
+ crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
|
|
|
+ saveFlag = true;
|
|
|
+ }
|
|
|
+
|
|
|
CrowdTaskVO crowdTaskVO = new CrowdTaskVO(crowdTestTask);
|
|
|
if (crowdTestTask.getDistributionType()==0){
|
|
|
EvaluationAgencyPO agencyPO = agencyDao.findByUserId(crowdTestTask.getEvaluationAgencyId());
|
|
|
crowdTaskVO.setInstitution(agencyPO==null?"该机构已注销":agencyPO.getEvaluationAgencyName());
|
|
|
}
|
|
|
- return crowdTaskVO;
|
|
|
- }).collect(Collectors.toList());
|
|
|
+ taskVOList.add(crowdTaskVO);
|
|
|
+ }
|
|
|
+
|
|
|
List<CrowdReportVO> reportVOList = null;
|
|
|
if (project.getCrowdTestReportForProject() != null) {
|
|
|
reportVOList = new ArrayList<>();
|
|
|
reportVOList.add(new CrowdReportVO(project.getCrowdTestReportForProject()));
|
|
|
}
|
|
|
CrowdProjectVO projectVO = new CrowdProjectVO(project);
|
|
|
- if (project.getStatus() > CrowdTestProjectStatus.HAS_RELEASED){
|
|
|
+ if (project.getStatus() > CrowdTestProjectStatus.HAS_RELEASED && project.getRegionalManagerId() != null){
|
|
|
Optional<UserPO> regionManager = userDao.findById(project.getRegionalManagerId());
|
|
|
projectVO.setInstitution(regionManager.isPresent()?regionManager.get().getName():"区域管理员已注销");
|
|
|
}
|
|
|
List<PieChartDataVO> progress = new ArrayList<>();
|
|
|
- progress.add(new PieChartDataVO("已完成", project.getCrowdTestTaskList()
|
|
|
+ progress.add(new PieChartDataVO("已完成", crowdTestTaskList
|
|
|
.stream().filter(task -> task.getStatus()==CrowdTestTaskStatus.HAS_FINISHED).count()));
|
|
|
- progress.add(new PieChartDataVO("进行中", project.getCrowdTestTaskList()
|
|
|
+ progress.add(new PieChartDataVO("进行中", crowdTestTaskList
|
|
|
.stream().filter(task -> task.getStatus()>CrowdTestTaskStatus.HAS_CREATED&&task.getStatus()<CrowdTestTaskStatus.HAS_FINISHED).count()));
|
|
|
projectDetailsDTO.setProjectDetails(projectVO);
|
|
|
projectDetailsDTO.setTaskList(taskVOList);
|
|
|
projectDetailsDTO.setReportList(reportVOList);
|
|
|
projectDetailsDTO.setProjectOperationControl(initProjectPermission(project, user));
|
|
|
projectDetailsDTO.setProgress(progress);
|
|
|
+
|
|
|
+ if(saveFlag){
|
|
|
+ projectRepo.saveCrowdTestProject(project);
|
|
|
+ }
|
|
|
return projectDetailsDTO;
|
|
|
}
|
|
|
|
|
|
@@ -336,9 +356,24 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
public TaskDetailsDTO renderTaskDetails(String projectCode, String taskCode, Long userId) {
|
|
|
TaskDetailsDTO taskDetailsDTO = new TaskDetailsDTO();
|
|
|
CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
|
+
|
|
|
+ boolean saveFlag = false;
|
|
|
+ // 判断项目是否截止
|
|
|
+ if (project.getDeadTime().getTime() <= System.currentTimeMillis() && project.getStatus() < CrowdTestProjectStatus.HAS_FINISHED){
|
|
|
+ project.setStatus(CrowdTestProjectStatus.HAS_TIME_OUT);
|
|
|
+ saveFlag = true;
|
|
|
+ }
|
|
|
+
|
|
|
Optional<CrowdTestTask> task = project.getCrowdTestTaskList().stream().filter(crowdTestTask -> crowdTestTask.getCode().equals(taskCode)).findFirst();
|
|
|
if (!task.isPresent())
|
|
|
throw new CrowdTestTaskNotExistException();
|
|
|
+
|
|
|
+ // 判断任务是否截止
|
|
|
+ if(task.get().getDeadTime().getTime() <= System.currentTimeMillis() && task.get().getStatus() < CrowdTestTaskStatus.HAS_FINISHED){
|
|
|
+ task.get().setStatus(CrowdTestTaskStatus.HAS_TIME_OUT);
|
|
|
+ saveFlag = true;
|
|
|
+ }
|
|
|
+
|
|
|
CrowdTaskVO taskVO = new CrowdTaskVO(task.get());
|
|
|
System.out.println("renderTaskDetails userId:" + userId);
|
|
|
if (userId == null) {
|
|
|
@@ -388,7 +423,9 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
taskDetailsDTO.setAcceptedUserList(taskToUserVOS);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+ if(saveFlag){
|
|
|
+ projectRepo.saveCrowdTestProject(project);
|
|
|
+ }
|
|
|
taskDetailsDTO.setCrowdTaskVO(taskVO);
|
|
|
// EvaluationAgencyPO agencyPO = agencyDao.findByUserId(task.get().getEvaluationAgencyId());
|
|
|
// taskVO.setInstitution(agencyPO==null?"该机构已注销":agencyPO.getEvaluationAgencyName());
|
|
|
@@ -557,7 +594,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
taskOperationControl.setUpdate(true);
|
|
|
}
|
|
|
taskOperationControl.setFinish(false);
|
|
|
- if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED){
|
|
|
+ if (task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT){
|
|
|
taskOperationControl.setConfirmFinish(false);
|
|
|
}
|
|
|
}
|
|
|
@@ -602,7 +639,7 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- if(task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED){
|
|
|
+ if(task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT){
|
|
|
taskOperationControl.noAll();
|
|
|
}
|
|
|
System.out.println(taskOperationControl);
|