Selaa lähdekoodia

修改项目DO下的方法

guochao 6 vuotta sitten
vanhempi
commit
4a30a82bdb

+ 52 - 127
core/src/main/java/com/mooctest/crowd/domain/controller/CrowdTestProjectController.java

@@ -25,7 +25,7 @@ import java.util.regex.PatternSyntaxException;
  */
 
 @RestController
-@RequestMapping("/api/project/")
+@RequestMapping("/project/")
 public class CrowdTestProjectController {
 
     @Autowired
@@ -205,13 +205,20 @@ public class CrowdTestProjectController {
         crowdTestProject.setName(projectName);
         crowdTestProject.setProjectDistributionTypeId(1L);
         crowdTestProject.setLinkMan("郭超");
+        crowdTestProject.setPlatform("IOS");
+        crowdTestProject.setType("安卓测试");
+        crowdTestProject.setDescription("测试内容");
         crowdTestProject.setLinkManMobile("13657094936");
         crowdTestProject.setQuotedPrice(200.00);
         crowdTestProject.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis()),1).getTime()));
         crowdTestProject.setCreateTime(new Timestamp(System.currentTimeMillis()));
 
         User user = userRepo.getByID(userId);
-        CrowdTestProject crowdTestProjectResult = user.createCrowdTestProject(crowdTestProject);
+        crowdTestProject.setUserId(user.getId());
+        crowdTestProject.setDistributionProvince(user.getProvince());
+        crowdTestProject.setDistributionCity(user.getCity());
+
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.createCrowdTestProject();
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -239,24 +246,6 @@ public class CrowdTestProjectController {
      * 对区域管理员的操作
      */
 
-//    /**
-//     * 接收项目(区域管理员)
-//     * @param regionalManagerId
-//     * @param crowdTestProjectCode
-//     * @return
-//     */
-//    @RequestMapping(value = "receiveProject/{regionalManagerId}/{crowdTestProjectCode}", method = RequestMethod.GET)
-//    public String receiveTaskByProjectCode(@PathVariable("regionalManagerId") Long regionalManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode) {
-//        User userForRegionalManager = userRepo.getByID(regionalManagerId);
-//        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
-//
-//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-//
-//        CrowdTestProject crowdTestProjectResult = regionalManager.receiveProject(crowdTestProject);
-//        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
-//        return crowdTestProjectResult.toString();
-//
-//    }
 
     /**
      * 接收项目(区域管理员)
@@ -267,39 +256,17 @@ public class CrowdTestProjectController {
     @RequestMapping(value = "receiveProject/{userForRegionalManagerId}/{crowdTestProjectCode}", method = RequestMethod.GET)
     public String receiveTaskByProjectCode(@PathVariable("userForRegionalManagerId") Long userForRegionalManagerId, @PathVariable("crowdTestProjectCode") String crowdTestProjectCode) {
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+
+//        User userForRegionalManager = userRepo.getByID(regionalManagerId);
+//        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
+//        CrowdTestProject crowdTestProjectResult = regionalManager.receiveProject(crowdTestProject);
+
         CrowdTestProject crowdTestProjectResult = crowdTestProject.receiveProject();
         crowdTestProjectResult.setRegionalManagerId(userForRegionalManagerId);
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProject);
         return crowdTestProjectResult.toString();
     }
 
-//    /**
-//     * 项目中新建任务(区域管理员拆分项目)
-//     * @param crowdTestProjectCode
-//     * @param taskName
-//     * @return
-//     */
-//    @RequestMapping(value = "createTask/{regionalManagerId}/{crowdTestProjectCode}/{taskName}", method = RequestMethod.GET)
-//    public String createCrowdTestTask(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("taskName") String taskName){
-//        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-//
-//        //数据准备
-//        CrowdTestTask crowdTestTask = new CrowdTestTask();
-//        crowdTestTask.setCode(crowdTestProjectCode+"_TASK"+System.currentTimeMillis());
-//        crowdTestTask.setName(taskName);
-//        crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
-//        crowdTestTask.setQuotedPrice(200.00);
-//        crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis()),1).getTime()));
-//        crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
-//
-//        //具体操作
-//        User userForRegionalManager = userRepo.getByID(regionalManagerId);
-//        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
-//
-//        CrowdTestProject crowdTestProjectResult = regionalManager.createCrowdTestTask(crowdTestProject, crowdTestTask);
-//        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
-//        return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
-//    }
 
     /**
      * 项目中新建任务(区域管理员拆分项目)
@@ -314,16 +281,22 @@ public class CrowdTestProjectController {
         crowdTestTask.setCode(crowdTestProjectCode+"_TASK"+System.currentTimeMillis());
         crowdTestTask.setName(taskName);
         crowdTestTask.setCrowdTestProjectCode(crowdTestProjectCode);
+        crowdTestTask.setType("接口测试");
+        crowdTestTask.setDescription("测试任务");
+        crowdTestTask.setDistributionType(0L);
         crowdTestTask.setQuotedPrice(200.00);
         crowdTestTask.setDeadTime(new Timestamp(getNextDay(new Date(System.currentTimeMillis()),1).getTime()));
         crowdTestTask.setCreateTime(new Timestamp(System.currentTimeMillis()));
 
         //具体操作
-        User userForRegionalManager = userRepo.getByID(regionalManagerId);
-        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
-
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-        CrowdTestProject crowdTestProjectResult = regionalManager.createCrowdTestTask(crowdTestProject, crowdTestTask);
+
+//        User userForRegionalManager = userRepo.getByID(regionalManagerId);
+//        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
+//        CrowdTestProject crowdTestProjectResult = regionalManager.createCrowdTestTask(crowdTestProject, crowdTestTask);
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.createCrowdTestTask(crowdTestTask);
+        crowdTestTask.setDistributionProvince(crowdTestProject.getDistributionProvince());
+        crowdTestTask.setDistributionCity(crowdTestProject.getDistributionCity());
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -337,10 +310,8 @@ public class CrowdTestProjectController {
     public String releaseCrowdTestTask(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,
                                        @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-        User userForRegionalManager = userRepo.getByID(regionalManagerId);
-        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
 
-        CrowdTestProject crowdTestProjectResult = regionalManager.releaseCrowdTestTask(crowdTestProject, crowdTestTaskCode);
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.releaseCrowdTestTask(crowdTestTaskCode);
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -361,9 +332,11 @@ public class CrowdTestProjectController {
                                                     @PathVariable("crowdTestTaskCode") String crowdTestTaskCode) {
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
 
-        User userForEvaluationAgency = userRepo.getByID(userForEvaluationAgencyId);
-        CrowdTestProject crowdTestProjectResult = userForEvaluationAgency.receiveTask(crowdTestProject, crowdTestTaskCode);
-        System.out.println(crowdTestProjectResult);
+//        User userForEvaluationAgency = userRepo.getByID(userForEvaluationAgencyId);
+//        CrowdTestProject crowdTestProjectResult = userForEvaluationAgency.receiveTask(crowdTestProject, crowdTestTaskCode);
+
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.receiveTask(userForEvaluationAgencyId, crowdTestTaskCode);
+
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -378,17 +351,18 @@ public class CrowdTestProjectController {
     public String createCrowdTestReport(@PathVariable("crowdTestProjectCode") String crowdTestProjectCode,@PathVariable("userForEvaluationAgencyId") Long userForEvaluationAgencyId,
                                         @PathVariable("reportName") String reportName, @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
 
-        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
 
         //report数据准备
         CrowdTestReport crowdTestReport = new CrowdTestReport();
         crowdTestReport.setCode(crowdTestTaskCode+"_REP"+System.currentTimeMillis());
         crowdTestReport.setName(reportName);
-        crowdTestReport.setDependencyCode(crowdTestTaskCode);
         crowdTestReport.setCreateTime(new Timestamp(System.currentTimeMillis()));
 
-        User userForEvaluationAgency = userRepo.getByID(userForEvaluationAgencyId);
-        CrowdTestProject crowdTestProjectResult = userForEvaluationAgency.createCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReport);
+        CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
+//        User userForEvaluationAgency = userRepo.getByID(userForEvaluationAgencyId);
+//        CrowdTestProject crowdTestProjectResult = userForEvaluationAgency.createCrowdTestReport(crowdTestProject, crowdTestTaskCode, crowdTestReport);
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.createCrowdTestReport(crowdTestTaskCode, crowdTestReport);
+
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -405,8 +379,11 @@ public class CrowdTestProjectController {
                                         @PathVariable("crowdTestTaskCode") String crowdTestTaskCode){
 
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-        User userForEvaluationAgency = userRepo.getByID(userForEvaluationAgencyId);
-        CrowdTestProject crowdTestProjectResult = userForEvaluationAgency.commitCrowdTestTask(crowdTestProject, crowdTestTaskCode);
+//        User userForEvaluationAgency = userRepo.getByID(userForEvaluationAgencyId);
+//        CrowdTestProject crowdTestProjectResult = userForEvaluationAgency.commitCrowdTestTask(crowdTestProject, crowdTestTaskCode);
+
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.commitCrowdTestTask(crowdTestTaskCode);
+
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -424,10 +401,7 @@ public class CrowdTestProjectController {
     @RequestMapping(value = "finishTask/{regionalManagerId}/{crowdTestProjectCode}", method = RequestMethod.GET)
     public String commitCrowdTestTask(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode){
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-        User userForRegionalManager = userRepo.getByID(regionalManagerId);
-        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
-
-        CrowdTestProject crowdTestProjectResult = regionalManager.finishCrowdTestTask(crowdTestProject);
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.finishCrowdTestTask();
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -451,11 +425,11 @@ public class CrowdTestProjectController {
         crowdTestReport.setDependencyCode(crowdTestProjectCode);
         crowdTestReport.setCreateTime(new Timestamp(System.currentTimeMillis()));
 
-        User userForRegionalManager = userRepo.getByID(regionalManagerId);
-        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
-
-        CrowdTestProject crowdTestProjectResult = regionalManager.createCrowdTestProjectReport(crowdTestProject, crowdTestReport);
+//        User userForRegionalManager = userRepo.getByID(regionalManagerId);
+//        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
+//        CrowdTestProject crowdTestProjectResult = regionalManager.createCrowdTestProjectReport(crowdTestProject, crowdTestReport);
 
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.createCrowdTestProjectReport(crowdTestReport);
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -468,10 +442,10 @@ public class CrowdTestProjectController {
     @RequestMapping(value = "commitProject/{regionalManagerId}/{crowdTestProjectCode}", method = RequestMethod.GET)
     public String commitProject(@PathVariable("regionalManagerId") Long regionalManagerId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode){
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-        User userForRegionalManager = userRepo.getByID(regionalManagerId);
-        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
-
-        CrowdTestProject crowdTestProjectResult = regionalManager.commitCrowdTestProject(crowdTestProject);
+//        User userForRegionalManager = userRepo.getByID(regionalManagerId);
+//        RegionalManager regionalManager = userForRegionalManager.getRegionalManager();
+//        CrowdTestProject crowdTestProjectResult = regionalManager.commitCrowdTestProject(crowdTestProject);
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.commitCrowdTestProject();
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -488,9 +462,9 @@ public class CrowdTestProjectController {
     @RequestMapping(value = "finishProject/{userId}/{crowdTestProjectCode}", method = RequestMethod.GET)
     public String finishProject(@PathVariable("userId") Long userId,@PathVariable("crowdTestProjectCode") String crowdTestProjectCode){
         CrowdTestProject crowdTestProject = crowdTestProjectRepo.getByProjectCode(crowdTestProjectCode);
-        User user = userRepo.getByID(userId);
-
-        CrowdTestProject crowdTestProjectResult = user.finishCrowdTestProjet(crowdTestProject);
+//        User user = userRepo.getByID(userId);
+//        CrowdTestProject crowdTestProjectResult = user.finishCrowdTestProject(crowdTestProject);
+        CrowdTestProject crowdTestProjectResult = crowdTestProject.finishCrowdTestProject();
         crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
         return crowdTestProjectRepo.getByProjectCode(crowdTestProjectResult.getCode()).toString();
     }
@@ -501,29 +475,6 @@ public class CrowdTestProjectController {
      * @param file
      * @return
      */
-//    @RequestMapping(value = "projectListImportByExcel", method = RequestMethod.POST)
-//    public String projectListImportByExcel(MultipartFile file){
-//        //解析excel
-//        List<CrowdTestProjectPO> crowdTestProjectPOList = FileUtil.importExcel(file,0,1,CrowdTestProjectPO.class);
-//
-//        for(int i = 0; i < crowdTestProjectPOList.size(); i++){
-//            CrowdTestProject crowdTestProject = Converter.convert(CrowdTestProject.class, crowdTestProjectPOList.get(i));
-//            CrowdTestProject crowdTestProjectResult = crowdTestProject.generateDefaultTaskAndReportData();
-//            //TODO 保存数据库
-//            crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
-//
-//        }
-//        System.out.println("共导入数据【"+crowdTestProjectPOList.size()+"】行");
-//
-//        return "success";
-//    }
-
-
-    /**
-     * 通过EXCEL向数据库中导入众包项目文件,并补全项目中任务和报告的数据
-     * @param file
-     * @return
-     */
 //    @RequestMapping(value = "projectImportByExcel", method = RequestMethod.POST)
 //    public String projectImportByExcel(MultipartFile file) {
 //        List<String> logList = new ArrayList<>();
@@ -665,32 +616,6 @@ public class CrowdTestProjectController {
 //        }
 //    }
 
-
-    /**
-     * 通过表单向数据库中导入众包项目文件,并补全项目中任务和报告的数据
-     * @return
-     */
-//    @RequestMapping(value = "projectListImportByForm", method = RequestMethod.GET)
-//    public String projectListImportByForm(){
-//
-//        //数据准备
-//        CrowdTestProject crowdTestProject = new CrowdTestProject();
-//        crowdTestProject.setName("百度APP");
-//        crowdTestProject.setPlatform("[1,2]");
-//        crowdTestProject.setLinkMan("薛晓波");
-//        crowdTestProject.setLinkManMobile("13567908766");
-//        crowdTestProject.setType("[1]");
-//        crowdTestProject.setDescription("测试项目中存在的bug");
-//
-//        //具体操作
-//        CrowdTestProject crowdTestProjectResult = crowdTestProject.generateDefaultTaskAndReportData();
-//        //TODO 保存数据库
-//        crowdTestProjectRepo.saveCrowdTestProject(crowdTestProjectResult);
-//        return "success";
-//    }
-
-
-
     /**
      * 计算指定时间的后几天
      */

+ 251 - 33
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProject.java

@@ -1,10 +1,7 @@
 package com.mooctest.crowd.domain.domainobject;
 
 import com.google.gson.Gson;
-import com.mooctest.crowd.domain.exception.BaseException;
-import com.mooctest.crowd.domain.exception.CrowdTestProjectException;
-import com.mooctest.crowd.domain.exception.CrowdTestReportNotExistException;
-import com.mooctest.crowd.domain.exception.CrowdTestTaskNotExistException;
+import com.mooctest.crowd.domain.exception.*;
 import lombok.Data;
 
 import java.sql.Timestamp;
@@ -75,34 +72,6 @@ public class CrowdTestProject {
                 '}';
     }
 
-    /**
-     * 发布项目(普通用户)
-     * @return
-     */
-    public CrowdTestProject releaseCrowdTestProject() {
-        if(this.status != (CrowdTestProjectStatus.HAS_RELEASED-1)){
-            throw new CrowdTestProjectException("当前项目状态不能被发布");
-        }else{
-            this.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
-        }
-        return this;
-    }
-
-    /**
-     * 区域管理员接收项目
-     * @return
-     */
-    public CrowdTestProject receiveProject() {
-        if(this.getRegionalManagerId() != null){
-            throw new CrowdTestProjectException("项目已被接收");
-        }else if(this.getStatus() != (CrowdTestProjectStatus.HAS_RECEIVED-1)){
-            throw new CrowdTestProjectException("项目不能被接收,项目状态为: " + this.getStatus());
-        }else{
-            this.setStatus(CrowdTestProjectStatus.HAS_RECEIVED);
-        }
-        return this;
-    }
-
 
     /**
      * 更新项目信息
@@ -181,6 +150,10 @@ public class CrowdTestProject {
                     crowdTestReport.removeCrowdTestReport();
                 }
             }
+            CrowdTestReport crowdTestReportForProject = this.getCrowdTestReportForProject();
+            if(crowdTestReportForProject != null){
+                crowdTestReportForProject.removeCrowdTestReport();
+            }
             this.setIsDeleted(DeletedStatus.isDeleted);
         }
         return this;
@@ -270,7 +243,7 @@ public class CrowdTestProject {
         if(CrowdTestProjectStatus.HAS_REPORTED == this.getStatus()){
             this.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
         }else{
-            throw new CrowdTestProjectException("项目当前状态不可进行报告删除,当前状态为:"+this.getStatus());
+            throw new CrowdTestProjectException("项目当前状态不可进行报告删除,当前项目状态为:"+this.getStatus());
         }
         return this;
     }
@@ -297,4 +270,249 @@ public class CrowdTestProject {
         return report.get();
     }
 
+    /**
+     * 创建测试项目(普通用户)
+     * @return
+     */
+    public CrowdTestProject createCrowdTestProject() {
+        //增加设置项目code
+//        String projectCode = GenerateFlowCodeUtil.generateFlowCode("PROJ");
+//        this.setCode(projectCode);
+
+        this.setStatus(CrowdTestProjectStatus.HAS_CREATED);
+        return this;
+    }
+
+    /**
+     * 发布项目(普通用户)
+     * @return
+     */
+    public CrowdTestProject releaseCrowdTestProject() {
+        if(this.status != (CrowdTestProjectStatus.HAS_RELEASED-1)){
+            throw new CrowdTestProjectException("当前项目状态不能被发布");
+        }else{
+            this.setStatus(CrowdTestProjectStatus.HAS_RELEASED);
+        }
+        return this;
+    }
+
+    /**
+     * 创建测试任务
+     * @param crowdTestTask
+     * @return
+     */
+    public CrowdTestProject createCrowdTestTask(CrowdTestTask crowdTestTask) {
+        List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
+
+        //增加设置任务code
+//        String taskCode = GenerateFlowCodeUtil.generateFlowCode("TASK-"+ command.getType());
+//        crowdTestTask.setCode(taskCode);
+
+        crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_CREATED);
+
+        //添加测试任务
+        crowdTestTaskList.add(crowdTestTask);
+
+        //修改项目状态
+        if(CrowdTestProjectStatus.HAS_SPLITED != this.getStatus()){
+            this.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
+        }
+        this.setCrowdTestTaskList(crowdTestTaskList);
+        return this;
+    }
+
+    /**
+     * 接收项目(区域管理员)
+     * @return
+     */
+    public CrowdTestProject receiveProject() {
+        if(this.getRegionalManagerId() != null){
+            throw new CrowdTestProjectException("项目已被接收");
+        }else if(this.getStatus() != (CrowdTestProjectStatus.HAS_RECEIVED-1)){
+            throw new CrowdTestProjectException("项目不能被接收,项目状态为: " + this.getStatus());
+        }else{
+            this.setStatus(CrowdTestProjectStatus.HAS_RECEIVED);
+        }
+        return this;
+    }
+
+    /**
+     * 发布任务(区域管理员)
+     * @param crowdTestTaskCode
+     * @return
+     */
+    public CrowdTestProject releaseCrowdTestTask(String crowdTestTaskCode) {
+        List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        //发布任务时修改任务状态
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+                if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RELEASED-1)){
+                    throw new CrowdTestTaskException("当前任务不能被发布,当前任务状态为:"+crowdTestTask.getStatus());
+                }else{
+                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
+                }
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+
+        this.setCrowdTestTaskList(crowdTestTaskListResult);
+        return this;
+    }
+
+
+    /**
+     * 接收任务(测评机构)
+     * @return
+     */
+    public CrowdTestProject receiveTask(Long userForEvaluationAgencyId, String crowdTestTaskCode) {
+
+        List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+                if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RECEIVED - 1)){
+                    throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:"+crowdTestTask.getStatus());
+                }else{
+                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
+                    crowdTestTask.setEvaluationAgencyId(userForEvaluationAgencyId);
+                }
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+        this.setCrowdTestTaskList(crowdTestTaskList);
+        return this;
+
+    }
+
+    /**
+     * 创建测试报告(测评机构)
+     * @param crowdTestTaskCode
+     * @param crowdTestReport
+     * @return
+     */
+    public CrowdTestProject createCrowdTestReport(String crowdTestTaskCode, CrowdTestReport crowdTestReport) {
+        List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+//                //设置报告code
+//                String reportCode = GenerateFlowCodeUtil.generateFlowCode("REPORT");
+//                crowdTestReport.setCode(reportCode);
+
+                crowdTestReport.setScope(1);
+                crowdTestReport.setDependencyCode(crowdTestTaskCode);
+                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+                crowdTestReportList.add(crowdTestReport);
+                crowdTestTask.setCrowdTestReportList(crowdTestReportList);
+            }
+            crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_REPORTED);
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+        this.setCrowdTestTaskList(crowdTestTaskListResult);
+        return this;
+    }
+
+    /**
+     * 提交测试任务
+     * @param crowdTestTaskCode
+     * @return
+     */
+    public CrowdTestProject commitCrowdTestTask(String crowdTestTaskCode) {
+        List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+                System.out.println("list:"+crowdTestTask.getCrowdTestReportList());
+                if(crowdTestTask.getCrowdTestReportList().size() == 0){
+                    throw new CrowdTestTaskException("当前任务中没有报告,不能提交此任务");
+                }else if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_COMMITED-1)){
+                    throw new CrowdTestTaskException("任务状态有误,无法提交,任务状态为:"+crowdTestTask.getStatus());
+                }else if((CrowdTestTaskStatus.HAS_COMMITED - 1) == crowdTestTask.getStatus()){
+                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_COMMITED);
+                    crowdTestTask.setEndTime(new Timestamp(System.currentTimeMillis()));
+                }
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+        this.setCrowdTestTaskList(crowdTestTaskListResult);
+        return this;
+    }
+
+    /**
+     * 结束任务(区域管理员)
+     * @return
+     */
+    public CrowdTestProject finishCrowdTestTask() {
+        List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
+        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+        //结束任务时修改任务状态为"已结束"
+        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+            if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_FINISHED-1)){
+                throw new CrowdTestTaskException("存在任务不能被结束,任务状态为:"+crowdTestTask.getStatus());
+            }else{
+                crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_FINISHED);
+            }
+            crowdTestTaskListResult.add(crowdTestTask);
+        }
+
+        this.setCrowdTestTaskList(crowdTestTaskListResult);
+        return this;
+    }
+
+    /**
+     * 创建项目报告
+     * @param crowdTestReport
+     * @return
+     */
+    public CrowdTestProject createCrowdTestProjectReport(CrowdTestReport crowdTestReport) {
+        crowdTestReport.setScope(0);
+        crowdTestReport.setDependencyCode(this.getCode());
+
+        this.setCrowdTestReportForProject(crowdTestReport);
+        if(this.getStatus() != (CrowdTestProjectStatus.HAS_REPORTED - 1)){
+            throw new CrowdTestProjectException("项目报告不能被提交,当前状态为:"+this.getStatus());
+        }else {
+            this.setStatus(CrowdTestProjectStatus.HAS_REPORTED);
+        }
+        return this;
+    }
+
+    /**
+     * 提交项目
+     * @return
+     */
+    public CrowdTestProject commitCrowdTestProject() {
+        List<CrowdTestTask> crowdTestTaskList = this.getCrowdTestTaskList();
+        if(this.getCrowdTestReportForProject() == null){
+            throw new CrowdTestProjectException("还未创建项目报告,项目不能被提交");
+        }
+
+        //结束项目时查看是否已结束任务
+        if(this.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED - 1)){
+            throw new CrowdTestProjectException("项目不能被结束,状态为:"+this.getStatus());
+        }else{
+            for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+                if(crowdTestTask.getStatus() != CrowdTestTaskStatus.HAS_FINISHED){
+                    throw new CrowdTestTaskException("存在未结束的任务,项目不能被提交");
+                }
+            }
+        }
+        this.setStatus(CrowdTestProjectStatus.HAS_COMMITED);
+        this.setEndTime(new Timestamp(System.currentTimeMillis()));
+        return this;
+    }
+
+    /**
+     * 结束项目
+     * @return
+     */
+    public CrowdTestProject finishCrowdTestProject() {
+        if(this.getStatus() != (CrowdTestProjectStatus.HAS_FINISHED - 1)){
+            throw new CrowdTestProjectException("项目不能被提交,当前状态为:"+this.getStatus());
+        }else{
+            this.setStatus(CrowdTestProjectStatus.HAS_FINISHED);
+        }
+        return this;
+    }
 }

+ 1 - 1
core/src/main/java/com/mooctest/crowd/domain/domainobject/CrowdTestProjectStatus.java

@@ -9,7 +9,7 @@ public class CrowdTestProjectStatus {
     public static final int HAS_RELEASED = 1; //发布项目
     public static final int HAS_RECEIVED = 2; //接收项目
     public static final int HAS_SPLITED = 3;  //拆分项目
-    public static final int HAS_REPORTED = 4; //生成报告
+    public static final int HAS_REPORTED = 4; //生成项目报告
     public static final int HAS_COMMITED = 5; //提交项目
     public static final int HAS_FINISHED = 6; //结束项目
 }

+ 106 - 109
core/src/main/java/com/mooctest/crowd/domain/domainobject/RegionalManager.java

@@ -1,10 +1,7 @@
 package com.mooctest.crowd.domain.domainobject;
 
-import com.mooctest.crowd.domain.exception.CrowdTestProjectException;
-import com.mooctest.crowd.domain.exception.CrowdTestTaskException;
 import lombok.Data;
 
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -58,117 +55,117 @@ public class RegionalManager {
 //        return crowdTestProject;
 //    }
 
-    /**
-     * 创建测试任务
-     * @param crowdTestTask
-     * @return
-     */
-    public CrowdTestProject createCrowdTestTask(CrowdTestProject crowdTestProject, CrowdTestTask crowdTestTask) {
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-
-        crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_CREATED);
-        crowdTestTask.setDistributionProvince(crowdTestProject.getDistributionProvince());
-        crowdTestTask.setDistributionCity(crowdTestProject.getDistributionCity());
-
-        //添加测试任务
-        crowdTestTaskList.add(crowdTestTask);
-
-        //修改项目状态
-        if(CrowdTestProjectStatus.HAS_SPLITED != crowdTestProject.getStatus()){
-            crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
-        }
-        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
-        return crowdTestProject;
-    }
-
-
-    /**
-     * 发布任务
-     * @param crowdTestProject
-     * @param crowdTestTaskCode
-     * @return
-     */
-    public CrowdTestProject releaseCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
-        //发布任务时修改任务状态
-        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
-                if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RELEASED-1)){
-                    throw new CrowdTestTaskException("当前任务不能被发布,当前状态为:"+crowdTestTask.getStatus());
-                }else{
-                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
-                }
-            }
-            crowdTestTaskListResult.add(crowdTestTask);
-        }
-
-        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
-        return crowdTestProject;
-    }
+//    /**
+//     * 创建测试任务
+//     * @param crowdTestTask
+//     * @return
+//     */
+//    public CrowdTestProject createCrowdTestTask(CrowdTestProject crowdTestProject, CrowdTestTask crowdTestTask) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//
+//        crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_CREATED);
+//        crowdTestTask.setDistributionProvince(crowdTestProject.getDistributionProvince());
+//        crowdTestTask.setDistributionCity(crowdTestProject.getDistributionCity());
+//
+//        //添加测试任务
+//        crowdTestTaskList.add(crowdTestTask);
+//
+//        //修改项目状态
+//        if(CrowdTestProjectStatus.HAS_SPLITED != crowdTestProject.getStatus()){
+//            crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_SPLITED);
+//        }
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
+//        return crowdTestProject;
+//    }
 
-    /**
-     * 结束任务
-     * @param crowdTestProject
-     * @return
-     */
-    public CrowdTestProject finishCrowdTestTask(CrowdTestProject crowdTestProject) {
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
-        //结束任务时修改任务状态为"已结束"
-        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-            if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_FINISHED-1)){
-                throw new CrowdTestTaskException("存在任务不能被结束,状态为:"+crowdTestTask.getStatus());
-            }else{
-                crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_FINISHED);
-            }
-            crowdTestTaskListResult.add(crowdTestTask);
-        }
 
-        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
-        return crowdTestProject;
-    }
+//    /**
+//     * 发布任务
+//     * @param crowdTestProject
+//     * @param crowdTestTaskCode
+//     * @return
+//     */
+//    public CrowdTestProject releaseCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+//        //发布任务时修改任务状态
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+//                if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RELEASED-1)){
+//                    throw new CrowdTestTaskException("当前任务不能被发布,当前状态为:"+crowdTestTask.getStatus());
+//                }else{
+//                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RELEASED);
+//                }
+//            }
+//            crowdTestTaskListResult.add(crowdTestTask);
+//        }
+//
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+//        return crowdTestProject;
+//    }
 
+//    /**
+//     * 结束任务
+//     * @param crowdTestProject
+//     * @return
+//     */
+//    public CrowdTestProject finishCrowdTestTask(CrowdTestProject crowdTestProject) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+//        //结束任务时修改任务状态为"已结束"
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_FINISHED-1)){
+//                throw new CrowdTestTaskException("存在任务不能被结束,状态为:"+crowdTestTask.getStatus());
+//            }else{
+//                crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_FINISHED);
+//            }
+//            crowdTestTaskListResult.add(crowdTestTask);
+//        }
+//
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+//        return crowdTestProject;
+//    }
 
-    /**
-     * 创建项目报告
-     * @param crowdTestProject
-     * @param crowdTestReport
-     * @return
-     */
-    public CrowdTestProject createCrowdTestProjectReport(CrowdTestProject crowdTestProject, CrowdTestReport crowdTestReport) {
-        crowdTestProject.setCrowdTestReportForProject(crowdTestReport);
-        if(crowdTestProject.getStatus() != (CrowdTestProjectStatus.HAS_REPORTED - 1)){
-            throw new CrowdTestProjectException("项目报告不能被提交,当前状态为:"+crowdTestProject.getStatus());
-        }else {
-            crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_REPORTED);
-        }
-        return crowdTestProject;
-    }
 
+//    /**
+//     * 创建项目报告
+//     * @param crowdTestProject
+//     * @param crowdTestReport
+//     * @return
+//     */
+//    public CrowdTestProject createCrowdTestProjectReport(CrowdTestProject crowdTestProject, CrowdTestReport crowdTestReport) {
+//        crowdTestProject.setCrowdTestReportForProject(crowdTestReport);
+//        if(crowdTestProject.getStatus() != (CrowdTestProjectStatus.HAS_REPORTED - 1)){
+//            throw new CrowdTestProjectException("项目报告不能被提交,当前状态为:"+crowdTestProject.getStatus());
+//        }else {
+//            crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_REPORTED);
+//        }
+//        return crowdTestProject;
+//    }
 
-    /**
-     * 提交项目
-     * @param crowdTestProject
-     * @return
-     */
-    public CrowdTestProject commitCrowdTestProject(CrowdTestProject crowdTestProject) {
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        if(crowdTestProject.getCrowdTestReportForProject() == null){
-            throw new CrowdTestProjectException("还未创建项目报告,项目不能被提交");
-        }
 
-        //结束项目时查看是否已结束任务
-        if(crowdTestProject.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED - 1)){
-            throw new CrowdTestProjectException("项目不能被结束,状态为:"+crowdTestProject.getStatus());
-        }else{
-            for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-                if(crowdTestTask.getStatus() != CrowdTestTaskStatus.HAS_FINISHED){
-                    throw new CrowdTestTaskException("存在未结束的任务,项目不能被提交");
-                }
-            }
-        }
-        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_COMMITED);
-        return crowdTestProject;
-    }
+//    /**
+//     * 提交项目
+//     * @param crowdTestProject
+//     * @return
+//     */
+//    public CrowdTestProject commitCrowdTestProject(CrowdTestProject crowdTestProject) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        if(crowdTestProject.getCrowdTestReportForProject() == null){
+//            throw new CrowdTestProjectException("还未创建项目报告,项目不能被提交");
+//        }
+//
+//        //结束项目时查看是否已结束任务
+//        if(crowdTestProject.getStatus() != (CrowdTestProjectStatus.HAS_COMMITED - 1)){
+//            throw new CrowdTestProjectException("项目不能被结束,状态为:"+crowdTestProject.getStatus());
+//        }else{
+//            for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//                if(crowdTestTask.getStatus() != CrowdTestTaskStatus.HAS_FINISHED){
+//                    throw new CrowdTestTaskException("存在未结束的任务,项目不能被提交");
+//                }
+//            }
+//        }
+//        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_COMMITED);
+//        return crowdTestProject;
+//    }
 }

+ 104 - 107
core/src/main/java/com/mooctest/crowd/domain/domainobject/User.java

@@ -1,12 +1,9 @@
 package com.mooctest.crowd.domain.domainobject;
 
 import com.mooctest.crowd.domain.exception.BaseException;
-import com.mooctest.crowd.domain.exception.CrowdTestProjectException;
-import com.mooctest.crowd.domain.exception.CrowdTestTaskException;
 import lombok.Data;
 
 import java.sql.Timestamp;
-import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -55,110 +52,110 @@ public class User {
                 '}';
     }
 
-    /**
-     * 创建测试项目(普通用户)
-     * @param crowdTestProject
-     * @return
-     */
-    public CrowdTestProject createCrowdTestProject(CrowdTestProject crowdTestProject) {
-        crowdTestProject.setUserId(this.getId());
-        crowdTestProject.setDistributionProvince(this.getProvince());
-        crowdTestProject.setDistributionCity(this.getCity());
-        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_CREATED);
-        return crowdTestProject;
-    }
-
-
-
-    /**
-     * 接收任务(测评机构)
-     * @param crowdTestProject
-     * @param crowdTestTaskCode
-     * @return
-     */
-    public CrowdTestProject receiveTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
-
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
-        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
-                if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RECEIVED - 1)){
-                    throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:"+crowdTestTask.getStatus());
-                }else if(!(this.getProvince().equals(crowdTestTask.getDistributionProvince())&&this.getCity().equals(crowdTestTask.getDistributionCity()))){
-                    throw new CrowdTestTaskException("测评机构区域不符合任务区域的要求");
-                }else{
-                    crowdTestTask.setEvaluationAgencyId(this.getId());
-                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
-                }
-            }
-            crowdTestTaskListResult.add(crowdTestTask);
-        }
-        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
-        return crowdTestProject;
-
-    }
-
-    /**
-     * 创建测试报告(测评机构)
-     * @param crowdTestTaskCode
-     * @param crowdTestReport
-     * @return
-     */
-    public CrowdTestProject createCrowdTestReport(CrowdTestProject crowdTestProject,String crowdTestTaskCode, CrowdTestReport crowdTestReport) {
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
-        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
-                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
-                crowdTestReportList.add(crowdTestReport);
-                crowdTestTask.setCrowdTestReportList(crowdTestReportList);
-            }
-            crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_REPORTED);
-            crowdTestTaskListResult.add(crowdTestTask);
-        }
-        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
-        return crowdTestProject;
-    }
-
-    /**
-     * 提交测试任务
-     * @param crowdTestProject
-     * @param crowdTestTaskCode
-     * @return
-     */
-    public CrowdTestProject commitCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
-        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
-        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
-        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
-            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
-                System.out.println("list:"+crowdTestTask.getCrowdTestReportList());
-                if(crowdTestTask.getCrowdTestReportList().size() == 0){
-                    throw new CrowdTestTaskException("当前任务中没有报告,不能提交此任务");
-                }else if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_COMMITED-1)){
-                    throw new CrowdTestTaskException("任务状态有误,无法提交,任务状态为:"+crowdTestTask.getStatus());
-                }else if((CrowdTestTaskStatus.HAS_COMMITED - 1) == crowdTestTask.getStatus()){
-                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_COMMITED);
-                }
-            }
-            crowdTestTaskListResult.add(crowdTestTask);
-        }
-        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
-        return crowdTestProject;
-    }
-
-    /**
-     * 结束项目
-     * @param crowdTestProject
-     * @return
-     */
-    public CrowdTestProject finishCrowdTestProjet(CrowdTestProject crowdTestProject) {
-        if(crowdTestProject.getStatus() != (CrowdTestProjectStatus.HAS_FINISHED - 1)){
-            throw new CrowdTestProjectException("项目不能被提交,当前状态为:"+crowdTestProject.getStatus());
-        }else{
-            crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_FINISHED);
-        }
-        return crowdTestProject;
-    }
+//    /**
+//     * 创建测试项目(普通用户)
+//     * @param crowdTestProject
+//     * @return
+//     */
+//    public CrowdTestProject createCrowdTestProject(CrowdTestProject crowdTestProject) {
+//        crowdTestProject.setUserId(this.getId());
+//        crowdTestProject.setDistributionProvince(this.getProvince());
+//        crowdTestProject.setDistributionCity(this.getCity());
+//        crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_CREATED);
+//        return crowdTestProject;
+//    }
+
+
+
+//    /**
+//     * 接收任务(测评机构)
+//     * @param crowdTestProject
+//     * @param crowdTestTaskCode
+//     * @return
+//     */
+//    public CrowdTestProject receiveTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
+//
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTaskCode.equals(crowdTestTask.getCode())){
+//                if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_RECEIVED - 1)){
+//                    throw new CrowdTestTaskException("任务当前状态不能被接收,当前状态为:"+crowdTestTask.getStatus());
+//                }else if(!(this.getProvince().equals(crowdTestTask.getDistributionProvince())&&this.getCity().equals(crowdTestTask.getDistributionCity()))){
+//                    throw new CrowdTestTaskException("测评机构区域不符合任务区域的要求");
+//                }else{
+//                    crowdTestTask.setEvaluationAgencyId(this.getId());
+//                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_RECEIVED);
+//                }
+//            }
+//            crowdTestTaskListResult.add(crowdTestTask);
+//        }
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskList);
+//        return crowdTestProject;
+//
+//    }
+
+//    /**
+//     * 创建测试报告(测评机构)
+//     * @param crowdTestTaskCode
+//     * @param crowdTestReport
+//     * @return
+//     */
+//    public CrowdTestProject createCrowdTestReport(CrowdTestProject crowdTestProject,String crowdTestTaskCode, CrowdTestReport crowdTestReport) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+//                List<CrowdTestReport> crowdTestReportList = crowdTestTask.getCrowdTestReportList();
+//                crowdTestReportList.add(crowdTestReport);
+//                crowdTestTask.setCrowdTestReportList(crowdTestReportList);
+//            }
+//            crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_REPORTED);
+//            crowdTestTaskListResult.add(crowdTestTask);
+//        }
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+//        return crowdTestProject;
+//    }
+
+//    /**
+//     * 提交测试任务
+//     * @param crowdTestProject
+//     * @param crowdTestTaskCode
+//     * @return
+//     */
+//    public CrowdTestProject commitCrowdTestTask(CrowdTestProject crowdTestProject, String crowdTestTaskCode) {
+//        List<CrowdTestTask> crowdTestTaskList = crowdTestProject.getCrowdTestTaskList();
+//        List<CrowdTestTask> crowdTestTaskListResult = new ArrayList<>();
+//        for(CrowdTestTask crowdTestTask : crowdTestTaskList){
+//            if(crowdTestTask.getCode().equals(crowdTestTaskCode)){
+//                System.out.println("list:"+crowdTestTask.getCrowdTestReportList());
+//                if(crowdTestTask.getCrowdTestReportList().size() == 0){
+//                    throw new CrowdTestTaskException("当前任务中没有报告,不能提交此任务");
+//                }else if(crowdTestTask.getStatus() != (CrowdTestTaskStatus.HAS_COMMITED-1)){
+//                    throw new CrowdTestTaskException("任务状态有误,无法提交,任务状态为:"+crowdTestTask.getStatus());
+//                }else if((CrowdTestTaskStatus.HAS_COMMITED - 1) == crowdTestTask.getStatus()){
+//                    crowdTestTask.setStatus(CrowdTestTaskStatus.HAS_COMMITED);
+//                }
+//            }
+//            crowdTestTaskListResult.add(crowdTestTask);
+//        }
+//        crowdTestProject.setCrowdTestTaskList(crowdTestTaskListResult);
+//        return crowdTestProject;
+//    }
+
+//    /**
+//     * 结束项目
+//     * @param crowdTestProject
+//     * @return
+//     */
+//    public CrowdTestProject finishCrowdTestProjet(CrowdTestProject crowdTestProject) {
+//        if(crowdTestProject.getStatus() != (CrowdTestProjectStatus.HAS_FINISHED - 1)){
+//            throw new CrowdTestProjectException("项目不能被提交,当前状态为:"+crowdTestProject.getStatus());
+//        }else{
+//            crowdTestProject.setStatus(CrowdTestProjectStatus.HAS_FINISHED);
+//        }
+//        return crowdTestProject;
+//    }
 
 
     public User applyAgencyAuthentication(EvaluationAgency evaluationAgency) {