Quellcode durchsuchen

读取excel 添加所有列名

wzl vor 11 Monaten
Ursprung
Commit
ab0215912a

+ 7 - 5
src/main/java/com/dskj/znzn/importData/web/controller/ProcessExecutorController.java

@@ -3,8 +3,9 @@ package com.dskj.znzn.importData.web.controller;
 import com.dskj.znzn.importData.common.base.R;
 import com.dskj.znzn.importData.common.exception.BusinessException;
 import com.dskj.znzn.importData.web.entity.ProcessExecutor;
-import com.dskj.znzn.importData.web.outdata.ProcessExecutorOutData;
 import com.dskj.znzn.importData.web.indata.ReadExcepDataInData;
+import com.dskj.znzn.importData.web.outdata.ProcessExecutorOutData;
+import com.dskj.znzn.importData.web.outdata.ReadExcelDataOutData;
 import com.dskj.znzn.importData.web.service.IProcessExecutorService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -17,7 +18,6 @@ import org.springframework.web.multipart.MultipartFile;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Locale;
-import java.util.Map;
 
 
 /**
@@ -48,7 +48,7 @@ public class ProcessExecutorController {
     @ApiOperation(value = "读取excel数据")
     @PostMapping("readExcelData")
     @ApiImplicitParam(name = "file", value = "文件", required = true, dataType = "file", paramType = "query")
-    public R<List<Map<Integer, Object>>> readExcelData(@RequestParam("file") MultipartFile[] files, ReadExcepDataInData inData) throws Exception {
+    public R<ReadExcelDataOutData> readExcelData(@RequestParam("file") MultipartFile[] files, ReadExcepDataInData inData) throws Exception {
 
         if (null == files || files.length == 0) {
             throw new BusinessException("文件不能为空");
@@ -61,12 +61,14 @@ public class ProcessExecutorController {
         String fileName = file.getOriginalFilename();
         assert fileName != null;
         String suffix = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(Locale.ROOT);
+        System.out.println("文件名:" + fileName);
+        System.out.println("文件后缀:" + suffix);
         List<String> suffixList = Arrays.asList("xls", "xlsx", "csv");
         if (!suffixList.contains(suffix)) {
             throw new BusinessException("文件格式不支持,当前支持:" + String.join(",", suffixList));
         }
-
-        return R.ok(processService.readExcelData(fileName, file.getInputStream(), suffix, inData));
+        ReadExcelDataOutData outData = new ReadExcelDataOutData(processService.readExcelData(fileName, file.getInputStream(), suffix, inData));
+        return R.ok(outData);
     }
 
 }

+ 3 - 0
src/main/java/com/dskj/znzn/importData/web/entity/ExecutorHistory.java

@@ -29,6 +29,9 @@ public class ExecutorHistory implements Serializable {
     @TableId(value = "id", type = IdType.AUTO)
     private Integer id;
 
+    @ApiModelProperty("当前执行记录的名称")
+    private String name;
+
     @ApiModelProperty("执行器组ID")
     private Integer processGroupId;
 

+ 7 - 0
src/main/java/com/dskj/znzn/importData/web/indata/ReadExcepDataInData.java

@@ -19,4 +19,11 @@ public class ReadExcepDataInData {
 
     @ApiModelProperty("最大读取行,默认20")
     private Integer maxRowNum = 20;
+
+    public Integer getMaxRowNum() {
+        if (null != this.getReadRowNum()) {
+            return maxRowNum > this.getReadRowNum() ? maxRowNum : this.getReadRowNum();
+        }
+        return maxRowNum;
+    }
 }

+ 4 - 0
src/main/java/com/dskj/znzn/importData/web/indata/SubmitProcessGroupInData.java

@@ -14,6 +14,10 @@ import java.util.List;
 @ApiModel
 public class SubmitProcessGroupInData {
 
+    @ApiModelProperty("当前执行记录的名称")
+    @NotBlank(message = "请填写执行记录的名称")
+    private String name;
+
     @ApiModelProperty("执行器组ID")
     @NotNull
     private Integer processGroupId;

+ 32 - 0
src/main/java/com/dskj/znzn/importData/web/outdata/ReadExcelDataOutData.java

@@ -0,0 +1,32 @@
+package com.dskj.znzn.importData.web.outdata;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+@ApiModel
+@Data
+@NoArgsConstructor
+public class ReadExcelDataOutData {
+
+    @ApiModelProperty("数据")
+    List<Map<Integer, Object>> data;
+
+    @ApiModelProperty("所有列")
+    private List<Object> cols;
+
+    public ReadExcelDataOutData(List<Map<Integer, Object>> data) {
+        this.data = data;
+        if (!data.isEmpty()) {
+            cols = Arrays.asList(Collections.singletonList(data.get(0).keySet().stream()).toArray());
+        } else {
+            cols = Collections.emptyList();
+        }
+    }
+}

+ 1 - 0
src/main/java/com/dskj/znzn/importData/web/service/impl/ExecutorHistoryServiceImpl.java

@@ -33,6 +33,7 @@ public class ExecutorHistoryServiceImpl extends ServiceImpl<ExecutorHistoryMappe
     public void submitProcessGroup(SubmitProcessGroupInData inData) {
 
         ExecutorHistory history = new ExecutorHistory();
+        history.setName(inData.getName());
         history.setProcessGroupId(inData.getProcessGroupId());
         history.setInputDirs(JSON.toJSONString(inData.getExecutorHistoryProcessInDataList()));
         history.setOutPutDir(inData.getOutputDir());

+ 7 - 5
src/main/java/com/dskj/znzn/importData/web/service/impl/ProcessExecutorServiceImpl.java

@@ -64,11 +64,13 @@ public class ProcessExecutorServiceImpl extends ServiceImpl<ProcessExecutorMappe
                 int nowIndex = context.readRowHolder().getRowIndex();
                 System.out.println("当前行数" + context.readRowHolder().getRowIndex());
                 if (nowIndex >= inData.getMinRowNum() - 1) {
-                    if (null != inData.getReadRowNum() && inData.getReadRowNum().equals(context.readRowHolder().getRowIndex() - 1)) {
-                        for (Integer key : obj.keySet()) {
-                            obj.computeIfAbsent(key, k -> "缺失列名" + k);
+                    if (null != inData.getReadRowNum()) {
+                        if (inData.getReadRowNum().equals(context.readRowHolder().getRowIndex() + 1)) {
+                            for (Integer key : obj.keySet()) {
+                                obj.computeIfAbsent(key, k -> "缺失列名" + k);
+                            }
+                            data.add(obj);
                         }
-                        data.add(obj);
                     } else {
                         for (Integer key : obj.keySet()) {
                             obj.computeIfAbsent(key, k -> "缺失列名" + (k + 1));
@@ -85,7 +87,7 @@ public class ProcessExecutorServiceImpl extends ServiceImpl<ProcessExecutorMappe
                     return false;
                 }
 
-                if (null != inData.getReadRowNum() && inData.getReadRowNum() > context.readRowHolder().getRowIndex() - 1) {
+                if (null != inData.getReadRowNum() && context.readRowHolder().getRowIndex() > inData.getReadRowNum() - 1) {
                     return false;
                 }