Browse Source

添加测试案例的测试类型获取、修改我的众测中已完成任务的时间排序

guo00guo 4 years ago
parent
commit
324511c9b7

+ 85 - 73
site/src/main/java/com/mooctest/crowd/site/mediator/impl/WebMediatorImpl.java

@@ -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());
                 }
             }
@@ -1647,101 +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);
-                    if(endPointPOOptional.get().getToken() != null &&  !endPointPOOptional.get().getToken().equals("")){
-                        taskOperationControl.setTaskDemonstrate(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;

+ 16 - 8
site/src/main/java/com/mooctest/crowd/site/service/impl/TechnicalArticlesServiceImpl.java

@@ -2,10 +2,7 @@ package com.mooctest.crowd.site.service.impl;
 
 
 import com.mooctest.crowd.domain.domainobject.EndPoint;
-import com.mooctest.crowd.domain.repository.CrowdTestTaskRepo;
-import com.mooctest.crowd.domain.repository.PublicationsRepo;
-import com.mooctest.crowd.domain.repository.TechnicalArticlesRepo;
-import com.mooctest.crowd.domain.repository.ToolRepo;
+import com.mooctest.crowd.domain.repository.*;
 import com.mooctest.crowd.site.data.dto.TechnicalArticlesDTO;
 import com.mooctest.crowd.site.data.vo.CrowdTaskVO;
 import com.mooctest.crowd.site.data.vo.PublicationsVO;
@@ -41,6 +38,9 @@ public class TechnicalArticlesServiceImpl implements TechnicalArticlesService{
     @Autowired
     private ToolRepo toolRepo;
 
+    @Autowired
+    private CommonRepo commonRepo;
+
     @Override
     public TechnicalArticlesDTO getArticles(Pageable pageable,String keyword,Map<String, String> extraCondition) {
         TechnicalArticlesDTO  technicalArticlesDTO= new  TechnicalArticlesDTO();
@@ -57,12 +57,20 @@ public class TechnicalArticlesServiceImpl implements TechnicalArticlesService{
                 List<CrowdTaskVO> crowdTaskVOS = new ArrayList<>();
                 if(keyword != null && keyword != ""){
                     crowdTaskVOS = endPointShowList.stream()
-                            .map(endPoint -> viewMediator.renderTaskDetailsByTourist(endPoint.getProjectCode(), endPoint.getTaskCode()))
-                            .filter(crowdTaskVO -> crowdTaskVO.getTitle().contains(keyword)).sorted(Comparator.comparing(CrowdTaskVO::getCode).reversed()).collect(Collectors.toList());
+                            .map(endPoint -> {
+                                CrowdTaskVO crowdTaskVO = viewMediator.renderTaskDetailsByTourist(endPoint.getProjectCode(), endPoint.getTaskCode());
+                                String typeName = commonRepo.getTypeNameByCode(crowdTaskVO.getServiceType());
+                                crowdTaskVO.setServiceType(typeName);
+                                return crowdTaskVO;
+                            }).filter(crowdTaskVO -> crowdTaskVO.getTitle().contains(keyword)).sorted(Comparator.comparing(CrowdTaskVO::getCode).reversed()).collect(Collectors.toList());
                 }else{
                     crowdTaskVOS = endPointShowList.stream()
-                            .map(endPoint -> viewMediator.renderTaskDetailsByTourist(endPoint.getProjectCode(), endPoint.getTaskCode()))
-                            .sorted(Comparator.comparing(CrowdTaskVO::getCode).reversed()).collect(Collectors.toList());
+                            .map(endPoint -> {
+                                CrowdTaskVO crowdTaskVO = viewMediator.renderTaskDetailsByTourist(endPoint.getProjectCode(), endPoint.getTaskCode());
+                                String typeName = commonRepo.getTypeNameByCode(crowdTaskVO.getServiceType());
+                                crowdTaskVO.setServiceType(typeName);
+                                return crowdTaskVO;
+                            }).sorted(Comparator.comparing(CrowdTaskVO::getCode).reversed()).collect(Collectors.toList());
                 }
                 technicalArticlesDTO.setTaskVOS(DataUtils.listToPage(crowdTaskVOS, pageable));
             }