|
@@ -664,12 +664,12 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
if(allTaskOfAgency != null && allTaskOfAgency.size() > 0){
|
|
|
unfinishedTasks = allTaskOfAgency.stream()
|
|
|
.filter(crowdTestTask -> crowdTestTask.getStatus() >= CrowdTestTaskStatus.HAS_RELEASED && crowdTestTask.getStatus() < CrowdTestTaskStatus.HAS_FINISHED)
|
|
|
- .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
|
|
|
+ .sorted(Comparator.comparing(CrowdTestTask::getCreateTime).reversed())
|
|
|
.map(CrowdTaskVO::new).collect(Collectors.toList());
|
|
|
|
|
|
finishedTasks = allTaskOfAgency.stream()
|
|
|
.filter(crowdTestTask -> crowdTestTask.getStatus() == CrowdTestTaskStatus.HAS_FINISHED)
|
|
|
- .sorted(Comparator.comparing(CrowdTestTask::getCreateTime))
|
|
|
+ .sorted(Comparator.comparing(CrowdTestTask::getCreateTime).reversed())
|
|
|
.map(CrowdTaskVO::new).collect(Collectors.toList());
|
|
|
}
|
|
|
}
|
|
@@ -990,6 +990,21 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ public CrowdTaskVO renderTaskDetailsByTourist(String projectCode, String taskCode) {
|
|
|
+ CrowdTestProject project = projectRepo.getByProjectCode(projectCode);
|
|
|
+ Optional<CrowdTestTask> task = project.getCrowdTestTaskList().stream().filter(crowdTestTask -> crowdTestTask.getCode().equals(taskCode)).findFirst();
|
|
|
+ if (!task.isPresent())
|
|
|
+ throw new CrowdTestTaskNotExistException();
|
|
|
+
|
|
|
+ CrowdTestTask crowdTestTask = task.get();
|
|
|
+ CrowdTaskVO crowdTaskVO = new CrowdTaskVO(crowdTestTask);
|
|
|
+ if(crowdTestTask.getEndPoint() != null){
|
|
|
+ crowdTaskVO.setEndPointVO(new EndPointVO(Converter.convert(EndPoint.class, crowdTestTask.getEndPoint())));
|
|
|
+ }
|
|
|
+ return crowdTaskVO;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
public UserDTO renderUser(User user) {
|
|
|
UserDTO userDTO = new UserDTO();
|
|
|
userDTO.setRoleList(user.getRoleList().stream().map(Role::getName).collect(Collectors.toList()));
|
|
@@ -1632,98 +1647,113 @@ public class WebMediatorImpl implements ViewMediator {
|
|
|
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) {
|
|
|
+ if (user == null || task.getStatus() == CrowdTestTaskStatus.HAS_TIME_OUT) {
|
|
|
return taskOperationControl;
|
|
|
}
|
|
|
|
|
|
- //区域管理员或系统管理员视角
|
|
|
- if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("SystemAdministrator"))
|
|
|
- || (user.getRegionalManager() != null && user.getId().equals(project.getRegionalManagerId()))) {
|
|
|
- if (task.getStatus() < CrowdTestTaskStatus.HAS_RECEIVED) {
|
|
|
- taskOperationControl.setUpdate(true);
|
|
|
- // 具有配置项,需要在第三方进行填写报告
|
|
|
- if(endPointPOOptional.isPresent()){
|
|
|
- taskOperationControl.setWriteReport(true);
|
|
|
+ // 任务已结束,如果存在配置项的任务展示token则显示 任务面板按钮
|
|
|
+ if(task.getStatus() == CrowdTestTaskStatus.HAS_FINISHED){
|
|
|
+ if(endPointPOOptional.isPresent()){
|
|
|
+ if(endPointPOOptional.get().getToken() != null && !endPointPOOptional.get().getToken().equals("")){
|
|
|
+ taskOperationControl.setTaskDemonstrate(true);
|
|
|
}
|
|
|
}
|
|
|
- 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);
|
|
|
+ }else{
|
|
|
+ //区域管理员或系统管理员视角
|
|
|
+ if (user.getRoleList().stream().anyMatch(role -> role.getName().equals("SystemAdministrator"))
|
|
|
+ || (user.getRegionalManager() != null && user.getId().equals(project.getRegionalManagerId()))) {
|
|
|
+ if (task.getStatus() < CrowdTestTaskStatus.HAS_RECEIVED) {
|
|
|
+ taskOperationControl.setUpdate(true);
|
|
|
+ // 具有配置项,需要在第三方进行填写报告
|
|
|
+ if(endPointPOOptional.isPresent()){
|
|
|
+ taskOperationControl.setWriteReport(true);
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
+ else{
|
|
|
+ if ((task.getParticipantHasCommittedCount() == task.getAcceptedCount() && task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED) || (task.getParticipantHasCommittedCount() == task.getParticipantCount() && task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED)) {
|
|
|
+ taskOperationControl.setConfirmFinish(true);
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
- // TODO 已拒绝视图
|
|
|
- //评测机构和测评人员视角
|
|
|
- else if (AuthCheckServiceImpl.isAgency(user) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
|
|
|
- if ((task.getDistributionType() == 0 && task.getEvaluationAgencyId().equals(user.getId()))
|
|
|
- || (task.getDistributionType() == 2 && task.getStatus() >= CrowdTestTaskStatus.HAS_RECEIVED)) {
|
|
|
- List<TaskToUser> acceptedUserList = task.getAcceptedUserList();
|
|
|
- Optional<TaskToUser> taskToUserOptional = acceptedUserList.stream().filter(taskToUser -> taskToUser.getUserId().equals(user.getId())).findFirst();
|
|
|
-
|
|
|
- if (taskToUserOptional.isPresent()) {
|
|
|
- // 已接收用户
|
|
|
- if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
- taskOperationControl.setReceive(true);
|
|
|
- if (task.getDistributionType() == 0)
|
|
|
- taskOperationControl.setReject(true);
|
|
|
- } else if (task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED) {
|
|
|
+ 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);
|
|
|
- if (taskToUserOptional.get().getHasReport() == 1 && taskToUserOptional.get().getIsCommitted() == 0) {
|
|
|
- taskOperationControl.setFinish(true);
|
|
|
- } else if (taskToUserOptional.get().getHasReport() == 1 && taskToUserOptional.get().getIsCommitted() == 1) {
|
|
|
- taskOperationControl.setFinish(false);
|
|
|
- taskOperationControl.setUploadReport(false);
|
|
|
- }
|
|
|
-
|
|
|
- // 具有配置项,需要在第三方进行填写报告
|
|
|
- if(endPointPOOptional.isPresent()){
|
|
|
- taskOperationControl.noAll();
|
|
|
- taskOperationControl.setWriteReport(true);
|
|
|
+ taskOperationControl.setConfirmFinish(true);
|
|
|
+ if(endPointPOOptional.get().getToken() != null && !endPointPOOptional.get().getToken().equals("")){
|
|
|
+ taskOperationControl.setTaskDemonstrate(true);
|
|
|
}
|
|
|
- } else if (task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED) {
|
|
|
- taskOperationControl.setUploadReport(false);
|
|
|
}
|
|
|
- } else {
|
|
|
- // 未接收用户
|
|
|
- if(task.getFullStatus() == 1){
|
|
|
- taskOperationControl.noAll();
|
|
|
- }else{
|
|
|
- taskOperationControl.setReceive(true);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ // TODO 已拒绝视图
|
|
|
+ //评测机构和测评人员视角
|
|
|
+ else if (AuthCheckServiceImpl.isAgency(user) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
|
|
|
+ if ((task.getDistributionType() == 0 && task.getEvaluationAgencyId().equals(user.getId()))
|
|
|
+ || (task.getDistributionType() == 2 && task.getStatus() >= CrowdTestTaskStatus.HAS_RECEIVED)) {
|
|
|
+ List<TaskToUser> acceptedUserList = task.getAcceptedUserList();
|
|
|
+ Optional<TaskToUser> taskToUserOptional = acceptedUserList.stream().filter(taskToUser -> taskToUser.getUserId().equals(user.getId())).findFirst();
|
|
|
+
|
|
|
+ if (taskToUserOptional.isPresent()) {
|
|
|
+ // 已接收用户
|
|
|
if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
- // 定向的
|
|
|
+ taskOperationControl.setReceive(true);
|
|
|
if (task.getDistributionType() == 0) {
|
|
|
taskOperationControl.setReject(true);
|
|
|
}
|
|
|
+ } else if (task.getStatus() == CrowdTestTaskStatus.HAS_RECEIVED) {
|
|
|
+ taskOperationControl.setUploadReport(true);
|
|
|
+ if (taskToUserOptional.get().getHasReport() == 1 && taskToUserOptional.get().getIsCommitted() == 0) {
|
|
|
+ taskOperationControl.setFinish(true);
|
|
|
+ } else if (taskToUserOptional.get().getHasReport() == 1 && taskToUserOptional.get().getIsCommitted() == 1) {
|
|
|
+ taskOperationControl.setFinish(false);
|
|
|
+ taskOperationControl.setUploadReport(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 具有配置项,需要在第三方进行填写报告
|
|
|
+ if(endPointPOOptional.isPresent()){
|
|
|
+ taskOperationControl.noAll();
|
|
|
+ taskOperationControl.setWriteReport(true);
|
|
|
+ }
|
|
|
+ } else if (task.getStatus() == CrowdTestTaskStatus.HAS_COMMITED) {
|
|
|
+ taskOperationControl.setUploadReport(false);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // 未接收用户
|
|
|
+ if(task.getFullStatus() == 1){
|
|
|
+ taskOperationControl.noAll();
|
|
|
+ }else{
|
|
|
+ taskOperationControl.setReceive(true);
|
|
|
+ if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
+ // 定向的
|
|
|
+ if (task.getDistributionType() == 0) {
|
|
|
+ taskOperationControl.setReject(true);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- }
|
|
|
- } else if (task.getDistributionType() == 2) {
|
|
|
- if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
- taskOperationControl.setReceive(true);
|
|
|
+ }
|
|
|
+ } else if (task.getDistributionType() == 2) {
|
|
|
+ if (task.getStatus() == CrowdTestTaskStatus.HAS_RELEASED) {
|
|
|
+ taskOperationControl.setReceive(true);
|
|
|
// // 项目发起者
|
|
|
// if (project.getUserId().equals(user.getId())) {
|
|
|
// taskOperationControl.setReceive(false);
|
|
|
// }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ //发包机构和发包人员视角
|
|
|
+ else if (AuthCheckServiceImpl.isPart(user) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
|
|
|
+ return taskOperationControl;
|
|
|
+ }
|
|
|
}
|
|
|
- //发包机构和发包人员视角
|
|
|
- else if (AuthCheckServiceImpl.isPart(user) && task.getStatus() != CrowdTestTaskStatus.HAS_REJECTED) {
|
|
|
- return taskOperationControl;
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
System.out.println(taskOperationControl);
|
|
|
return taskOperationControl;
|