Browse Source

修改Excel批量导入的模版,修复一些小问题

xuexiaobo 6 years ago
parent
commit
569c9506a8

+ 20 - 5
site/src/main/java/com/mooctest/crowd/site/controller/CrowdProjectController.java

@@ -65,16 +65,21 @@ public class CrowdProjectController {
         projectService.deleteProject(projectId, (Long)session.getAttribute("userId"));
     }
 
+    /**
+     * 通过表单填写,生成项目
+     * @param command
+     * @return
+     */
     @RequestMapping(value = "/api/greenChannel/project", method = RequestMethod.POST)
     public ProjectDetailsDTO generateProjectWithData(@RequestBody GenerateProjectCommand command){
         return projectService.generateProjectWithData(command);
     }
 
-    @RequestMapping(value = "/api/greenChannel/projects", method = RequestMethod.POST)
-    public List<ProjectDetailsDTO> multiProjectsImport(@RequestBody List<CrowdTestProject> projects){
-        return projectService.importMultiProjectsByExcel(projects);
-    }
-
+    /**
+     * 将Excel解析为多个项目
+     * @param file
+     * @return
+     */
     @RequestMapping(value = "/api/greenChannel/excel/projects", method = RequestMethod.POST)
     public List<CrowdTestProject> parseExcel2Projects(MultipartFile file){
         try {
@@ -85,4 +90,14 @@ public class CrowdProjectController {
         }
         return projectService.generateProjectByExcel(file);
     }
+
+    /**
+     * 导入由Excel解析而来的多个项目
+     * @param projects
+     * @return
+     */
+    @RequestMapping(value = "/api/greenChannel/projects", method = RequestMethod.POST)
+    public List<ProjectDetailsDTO> multiProjectsImport(@RequestBody List<CrowdTestProject> projects){
+        return projectService.importMultiProjectsByExcel(projects);
+    }
 }

+ 1 - 1
site/src/main/java/com/mooctest/crowd/site/data/enums/ProjectType.java

@@ -45,7 +45,7 @@ public enum ProjectType {
 
     public static String getCode(String typeName) {
         for (ProjectType pt : ProjectType.values()) {
-            if (pt.getTypeName() == typeName) {
+            if (pt.getTypeName().equals(typeName)) {
                 return pt.getTypeCode();
             }
         }

+ 17 - 2
site/src/main/java/com/mooctest/crowd/site/service/impl/CrowdProjectServiceImpl.java

@@ -147,8 +147,15 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
             task.setName(project.getName()+"-"+task.getType());
             task.setQuotedPrice(project.getQuotedPrice());
             task.setFixedPrice(project.getFixedPrice());
+            task.setDescription(project.getDescription());
             tasks.add(task);
             project.setCrowdTestTaskList(tasks);
+            project.getCrowdTestReportForProject().setCode(GenerateFlowCodeUtil.generateReportCode());
+            project.getCrowdTestReportForProject().setDependencyCode(project.getCode());
+            project.getCrowdTestReportForProject().setDescription(project.getDescription());
+            project.getCrowdTestReportForProject().setName(project.getName()+"测试报告");
+            project.getCrowdTestReportForProject().setType(project.getType());
+            project.getCrowdTestReportForProject().setTestObject(project.getName());
         });
         return projects;
     }
@@ -179,6 +186,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
         log.info("Rows: " + sheet.getPhysicalNumberOfRows());
         for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++ ){
             CrowdTestProject project = CrowdTestProjectFactory.defaulstCrowdTestProject();
+            CrowdTestReport report = CrowdTestProjectFactory.defaultProjectReport();
             Row row = sheet.getRow(i);
             if (row == null){
                 logList.add("表中存在错误的单元格,请把与内容无关的单元格置空");
@@ -202,7 +210,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                         project.setName(cell.getStringCellValue().trim());
                         break;
                     case 1:
-                        if(!isPlatform(cell.getStringCellValue())){
+                        if(!(cell.getStringCellValue().trim().equals("IOS")||cell.getStringCellValue().trim().equals("WEB")||cell.getStringCellValue().trim().equals("ANDROID"))){
                             logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "测试平台数据不合法:"+cell.getStringCellValue());
                             break;
                         }
@@ -221,7 +229,7 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                         project.setLinkManMobile(cell.getStringCellValue().trim());
                         break;
                     case 4:
-                        if (!isType(cell.getStringCellValue().trim())){
+                        if (ProjectType.getCode(cell.getStringCellValue().trim())==null){
                             logList.add("错误 - 行: " + (i + 1) + "; 列: " + (j + 1) + "; 原因: " + "错误的测试服务类型:"+cell.getStringCellValue());
                             break;
                         }
@@ -235,8 +243,15 @@ public class CrowdProjectServiceImpl implements CrowdProjectService {
                     case 6:
                         project.setFixedPrice(Double.parseDouble(cell.getStringCellValue().trim()));
                         break;
+                    case 7:
+                        report.setContent(cell.getStringCellValue().trim());
+                        break;
+                    case 8:
+                        report.setConclusion(cell.getStringCellValue().trim());
+                        break;
                 }
             }
+            project.setCrowdTestReportForProject(report);
             project.setQuotedPrice(project.getFixedPrice());
             projects.add(project);
         }