소스 검색

解析Excel文件内容格式转换

lyhzzz 2 년 전
부모
커밋
6b773cce00

+ 1 - 1
src/main/java/com/fdkankan/manage/config/SaTokenConfigure.java

@@ -45,7 +45,7 @@ public class SaTokenConfigure {
     public SaServletFilter getSaServletFilter() {
         return new SaServletFilter()
                 // 指定 拦截路由 与 放行路由
-                .addInclude("/**").addExclude("/**/reMyselfPassword","/test/**")
+                .addInclude("/**").addExclude("/**/reMyselfPassword","/**/test/**")
                 // 认证函数: 每次请求执行
                 .setAuth(obj -> {
                     log.info("---------- 进入Sa-Token全局认证 -----------");

+ 4 - 4
src/main/java/com/fdkankan/manage/service/impl/CameraServiceImpl.java

@@ -281,7 +281,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
                     continue;
                 }
                 if(!dbOrderSn.contains(sn)){
-                    log.error("excel-export-error-->:订单号不存在不存在:index:{},orderSn:{}",index,sn);
+                    log.error("excel-export-error-->:订单号不存在不存在:index:{},orderSn:{}",index+3,sn);
                     errorList.add(index);
                 }
             }
@@ -317,14 +317,14 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         for (String snCode : snCodeList) {
             index ++;
             if(StringUtils.isBlank(snCode)){
-                log.error("excel-export-error-->:index:{},snCode不存在:snCode:{}",index,snCode);
+                log.error("excel-export-error-->:index:{},snCode不存在:snCode:{}",index+3,snCode);
                 errorList.add(index);
             }
             if(map.get(snCode) == null){
                 map.put(snCode,1);
             }else {
                 map.put(snCode,2);
-                log.error("excel-export-error-->:index:{},snCode已存在:snCode:{}",index,snCode);
+                log.error("excel-export-error-->:index:{},snCode已存在:snCode:{}",index+3,snCode);
                 errorList.add(index);
             }
         }
@@ -334,7 +334,7 @@ public class CameraServiceImpl extends ServiceImpl<ICameraMapper, Camera> implem
         for (String snCode : snCodeList) {
             index2 ++;
             if(!dbSnCode.contains(snCode)){
-                log.error("excel-export-error-->:index:{},snCode未入库:snCode:{}",index2,snCode);
+                log.error("excel-export-error-->:index:{},snCode未入库:snCode:{}",index2+3,snCode);
                 errorList.add(index2);
             }
         }

+ 30 - 2
src/main/java/com/fdkankan/manage/test/TestController.java

@@ -1,18 +1,28 @@
 package com.fdkankan.manage.test;
 
 import cn.hutool.core.io.FileUtil;
+import com.fdkankan.manage.common.ResultCode;
 import com.fdkankan.manage.common.ResultData;
 import com.fdkankan.common.util.SecurityUtil;
 import com.fdkankan.manage.common.FilePath;
+import com.fdkankan.manage.exception.BusinessException;
 import com.fdkankan.manage.httpClient.service.LaserService;
 import com.fdkankan.manage.util.Dateutils;
+import com.fdkankan.manage.util.ExcelUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
+import java.io.IOException;
 import java.util.*;
 
+@Slf4j
 @RestController
+@RequestMapping("/test")
 public class TestController {
 
     @RequestMapping("/test")
@@ -20,8 +30,26 @@ public class TestController {
         return ResultData.ok();
     }
 
-    public static void main(String[] args) {
-        System.out.println( SecurityUtil.MD5("E\u0005\u0015\u000EG107"));
+    /**
+     * 导入excel
+     * type 0 入库模板, 1出库模板 ,2 客户关联模板
+     */
+    @PostMapping("/uploadExcel")
+    public ResultData uploadExcel(@RequestParam(required = false) MultipartFile file) throws IOException {
+        String originalFilename = file.getOriginalFilename();
+        assert originalFilename != null;
+        String fileType=originalFilename.substring(originalFilename.lastIndexOf(".")+1);
+        if (!fileType.equalsIgnoreCase("xlsx")) {
+            throw new BusinessException(ResultCode.FILE_TYPE_ERROR);
+        }
+        List<HashMap<Integer, String>> excelRowList = new ArrayList<>();
+        try {
+            excelRowList = ExcelUtil.getExcelRowList(file);
+        }catch (Exception e){
+            throw new BusinessException(ResultCode.TEMPLATE_TYPE_ERROR);
+        }
+        System.out.println(excelRowList);
+        return ResultData.ok();
     }
 
 }

+ 8 - 1
src/main/java/com/fdkankan/manage/util/ExcelUtil.java

@@ -42,12 +42,19 @@ public class ExcelUtil {
 
   private static  String fommartNum(String value){
         try {
-            return Double.valueOf(value).intValue() +"";
+            if(isNumeric2(value) && value.contains(".")){
+                return Double.valueOf(value).intValue() +"";
+            }
         }catch (Exception e){
             return value;
         }
+        return value;
   }
 
+    public static boolean isNumeric2(String str) {
+        return str != null && str.matches("-?\\d+(\\.\\d+)?");
+    }
+
 
     //获取WorkBook对象
     private static Workbook getExcelWorkBook(MultipartFile multipartFile) throws IOException {