فهرست منبع

优化错误信息

夏文涛 3 سال پیش
والد
کامیت
fec3361643

+ 2 - 1
src/main/java/com/chuanghai/attendance/common/exception/BizCodeEnume.java

@@ -48,7 +48,8 @@ public enum BizCodeEnume {
     TOO_LONG(10026,"内容超长"),
     ERROR_DE(10027,"AES加密失败"),
     DORM_EXIST(10028,"宿舍已缴费"),
-    ORDER_IS_PAY(10029,"该订单的部分项目已支付,请前往首页重新支付");
+    ORDER_IS_PAY(10029,"该订单的部分项目已支付,请前往首页重新支付"),
+    FILE_SIZE_MAX(10030,"导入文件过大!");
 
     private int code;
     private String msg;

+ 10 - 0
src/main/java/com/chuanghai/attendance/common/exception/MyExceptionHandler.java

@@ -12,6 +12,7 @@ import org.springframework.web.bind.MissingRequestHeaderException;
 import org.springframework.web.bind.MissingServletRequestParameterException;
 import org.springframework.web.bind.annotation.ExceptionHandler;
 import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -26,6 +27,15 @@ import java.util.Map;
 public class MyExceptionHandler {
 
     /**
+     * 文件过大
+     * @return
+     */
+    @ExceptionHandler(MaxUploadSizeExceededException.class)
+    public CommonResult handleMaxUploadSizeExceededException() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.FILE_SIZE_MAX.getCode()), BizCodeEnume.FILE_SIZE_MAX.getMsg());
+    }
+
+    /**
      * 处理参数校验异常
      * @param e
      * @return

+ 21 - 13
src/main/java/com/chuanghai/attendance/controller/MonthlySummaryController.java

@@ -21,6 +21,8 @@ import javax.servlet.http.HttpServletResponse;
 import java.util.ArrayList;
 import java.util.List;
 
+import static com.chuanghai.attendance.utils.excel.FileTools.CheckFileType;
+
 /**
  * 月度汇总
  *
@@ -60,26 +62,33 @@ public class MonthlySummaryController {
      */
     @PostMapping("importExcel")
     public CommonResult importMonthExcel(@RequestParam("file") MultipartFile file) {
-        Boolean aBoolean;
-        Boolean oBoolean;
-        Boolean wBoolean;
-        String msg = "执行失败";
+        CommonResult result = CheckFileType(file);
+        if(!result.isSuccess()){
+            return result;
+        }
+
         try {
-            aBoolean = monthlySummaryService.importMonthDataExcel(file);
-            wBoolean = workerIdentityService.importWorkExcel(file);
-            oBoolean = originalDataService.importOriginalDataExcel(file);
-            if (aBoolean && oBoolean && wBoolean) {
-                msg = "执行成功";
+            CommonResult aBoolean = monthlySummaryService.importMonthDataExcel(file);
+            if(!aBoolean.isSuccess()){
+                return aBoolean;
+            }
+            CommonResult wBoolean = workerIdentityService.importWorkExcel(file);
+            if(!wBoolean.isSuccess()){
+                return wBoolean;
+            }
+            CommonResult oBoolean = originalDataService.importOriginalDataExcel(file);
+            if (!oBoolean.isSuccess()) {
+                return oBoolean;
             }
         } catch (Exception e) {
             e.printStackTrace();
-            throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR+e.getMessage());
+            //throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR+e.getMessage());
+            return CommonResult.fail("-1","执行失败");
         }
 
-        return CommonResult.result("200", msg, aBoolean);
+        return CommonResult.result("200","执行成功", true);
     }
 
-
     /**
      * 分析钉钉原始数据
      *
@@ -122,7 +131,6 @@ public class MonthlySummaryController {
         List<DayDetails> dayDetailsList = dayDetailsService.list();
         List<DownLoadExcel> downLoadExcelList = new ArrayList<>();
 
-
         for (int m = 0; m < MonthlyDtoList.size(); m++) {
             DownLoadExcel downLoadExcel = new DownLoadExcel();
             MonthlyDto monthlyDto = MonthlyDtoList.get(m);

+ 3 - 3
src/main/java/com/chuanghai/attendance/controller/OriginalDataController.java

@@ -34,16 +34,16 @@ public class OriginalDataController {
      */
     @PostMapping("importOriginal")
     public CommonResult importOriginalDataExcel(@RequestParam("file") MultipartFile file) {
-        Boolean aBoolean;
+        CommonResult aBoolean;
         String msg;
         try {
             aBoolean = originalDataService.importOriginalDataExcel(file);
-            msg = aBoolean == Boolean.TRUE ? "执行成功" : "执行失败";
+            msg = aBoolean.isSuccess() == Boolean.TRUE ? "执行成功" : "执行失败";
         } catch (Exception e) {
             e.printStackTrace();
             throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR);
         }
-        return CommonResult.result("200", msg, aBoolean);
+        return CommonResult.result("200", msg, aBoolean.isSuccess());
     }
 
 }

+ 3 - 3
src/main/java/com/chuanghai/attendance/controller/WorkerIdentityController.java

@@ -34,15 +34,15 @@ public class WorkerIdentityController {
      */
     @PostMapping("importWork")
     public CommonResult importWorkExcel(@RequestParam("file") MultipartFile file) {
-        Boolean aBoolean;
+        CommonResult aBoolean;
         String msg;
         try {
             aBoolean = workerIdService.importWorkExcel(file);
-            msg = aBoolean == Boolean.TRUE ? "执行成功" : "执行失败";
+            msg = aBoolean.isSuccess() == Boolean.TRUE ? "执行成功" : "执行失败";
         } catch (Exception e) {
             e.printStackTrace();
             throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR);
         }
-        return CommonResult.result("200", msg, aBoolean);
+        return CommonResult.result("200", msg, aBoolean.isSuccess());
     }
 }

+ 2 - 1
src/main/java/com/chuanghai/attendance/service/MonthlySummaryService.java

@@ -1,6 +1,7 @@
 package com.chuanghai.attendance.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.attendance.common.utils.CommonResult;
 import com.chuanghai.attendance.dto.MonthlyDto;
 import com.chuanghai.attendance.entity.MonthlySummary;
 import org.springframework.web.multipart.MultipartFile;
@@ -15,7 +16,7 @@ import java.util.List;
  */
 public interface MonthlySummaryService extends IService<MonthlySummary> {
 
-    Boolean importMonthDataExcel(MultipartFile file) throws Exception;
+    CommonResult importMonthDataExcel(MultipartFile file) throws Exception;
 
     List<MonthlySummary> queryByWorkName(String workName);
 

+ 2 - 1
src/main/java/com/chuanghai/attendance/service/OriginalDataService.java

@@ -1,6 +1,7 @@
 package com.chuanghai.attendance.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.attendance.common.utils.CommonResult;
 import com.chuanghai.attendance.entity.OriginalData;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -14,7 +15,7 @@ import java.util.List;
  */
 public interface OriginalDataService extends IService<OriginalData> {
 
-    Boolean importOriginalDataExcel(MultipartFile file) throws Exception;
+    CommonResult importOriginalDataExcel(MultipartFile file) throws Exception;
 
     List<OriginalData> queryByUserId(List<String> userIds, List<String> workNums);
 

+ 2 - 1
src/main/java/com/chuanghai/attendance/service/WorkerIdentityService.java

@@ -1,6 +1,7 @@
 package com.chuanghai.attendance.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.attendance.common.utils.CommonResult;
 import com.chuanghai.attendance.entity.WorkerIdentity;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -13,7 +14,7 @@ import java.util.List;
  * @Version: 1.0
  */
 public interface WorkerIdentityService extends IService<WorkerIdentity> {
-    Boolean importWorkExcel(MultipartFile file) throws Exception;
+    CommonResult importWorkExcel(MultipartFile file) throws Exception;
     String queryByuserId(String userId, String workNum, String workName);
     List<WorkerIdentity> queryByuserIds(List<String> userIds, List<String> workNums);
 }

+ 7 - 5
src/main/java/com/chuanghai/attendance/service/impl/MonthlySummaryServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chuanghai.attendance.common.exception.BizCodeEnume;
 import com.chuanghai.attendance.common.exception.RRException;
+import com.chuanghai.attendance.common.utils.CommonResult;
 import com.chuanghai.attendance.dao.MonthlySummaryDao;
 import com.chuanghai.attendance.dto.MonthlyDto;
 import com.chuanghai.attendance.entity.*;
@@ -57,7 +58,7 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
      * @throws Exception
      */
     @Override
-    public Boolean importMonthDataExcel(MultipartFile file) throws Exception {
+    public CommonResult importMonthDataExcel(MultipartFile file) throws Exception {
 
         List<MonthlySummary> monthlySummaryList = new ArrayList<>();
         List<DayDetails> dayDetailsList = new ArrayList<>();
@@ -65,11 +66,13 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
         Boolean aBoolean = dayDetailsService.removeDayDetails();
         //删除导入的月度汇总数据
         Boolean mBoolean = removeMonthlySummary();
-        Boolean statu = Boolean.FALSE;
         if (aBoolean && mBoolean) {
             List<String[]> list = null;
             try {
                  list = ExcelImportXLSXUtil.readerExcel(file.getInputStream(), "月度汇总", 59);
+                 if(list == null){
+                     return CommonResult.fail("-1","缺少月度汇总页数据!");
+                 }
             }catch (Exception e){
                 e.printStackTrace();
                 throw new RRException(BizCodeEnume.FILE_IMPORT_ERROR);
@@ -196,10 +199,9 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
         boolean d = dayDetailsService.saveBatch(dayDetailsList, dayDetailsList.size());
         boolean m = this.saveBatch(monthlySummaryList, monthlySummaryList.size());
         if (m & d) {
-            statu = Boolean.TRUE;
+            return CommonResult.ok();
         }
-        return statu;
-
+        return CommonResult.fail("-1","缺少月度汇总页数据!");
     }
 
 

+ 7 - 4
src/main/java/com/chuanghai/attendance/service/impl/OriginalDataServiceImpl.java

@@ -2,6 +2,7 @@ package com.chuanghai.attendance.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.attendance.common.utils.CommonResult;
 import com.chuanghai.attendance.dao.OriginalDataDao;
 import com.chuanghai.attendance.entity.OriginalData;
 import com.chuanghai.attendance.service.OriginalDataService;
@@ -28,13 +29,14 @@ public class OriginalDataServiceImpl extends ServiceImpl<OriginalDataDao, Origin
      * @param file
      * @throws Exception
      */
-    public Boolean importOriginalDataExcel(MultipartFile file) throws Exception {
+    public CommonResult importOriginalDataExcel(MultipartFile file) throws Exception {
         Boolean aBoolean = removeOriginalDataIds();
         List<OriginalData> originalDataList = new ArrayList<>();
         if (aBoolean) {
             List<String[]> list = ExcelImportXLSXUtil.readerExcel(file.getInputStream(), "原始记录", 20);
-
-
+            if(list == null){
+                return CommonResult.fail("-1","缺少原始记录页数据!");
+            }
             int count = 0;
             for (String[] strings : list) {
                 count++;
@@ -60,7 +62,8 @@ public class OriginalDataServiceImpl extends ServiceImpl<OriginalDataDao, Origin
             }
         }
 
-        return this.saveBatch(originalDataList, originalDataList.size());
+        boolean result = this.saveBatch(originalDataList, originalDataList.size());
+        return result ? CommonResult.ok() : CommonResult.fail("-1","缺少原始记录页数据!");
     }
 
     @Override

+ 8 - 3
src/main/java/com/chuanghai/attendance/service/impl/WorkerIdentityServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.chuanghai.attendance.common.exception.BizCodeEnume;
 import com.chuanghai.attendance.common.exception.RRException;
+import com.chuanghai.attendance.common.utils.CommonResult;
 import com.chuanghai.attendance.dao.WorkerIdentityDao;
 import com.chuanghai.attendance.entity.WorkerIdentity;
 import com.chuanghai.attendance.service.WorkerIdentityService;
@@ -24,12 +25,15 @@ import java.util.List;
 @Service("workerIdentityService")
 public class WorkerIdentityServiceImpl extends ServiceImpl<WorkerIdentityDao, WorkerIdentity> implements WorkerIdentityService {
     @Override
-    public Boolean importWorkExcel(MultipartFile file) throws Exception {
+    public CommonResult importWorkExcel(MultipartFile file) throws Exception {
         //导入数据前先删除原先的数据
         deleteIdCard();
         List<WorkerIdentity> workerIdList = new ArrayList<>();
 
         List<String[]> list = ExcelImportXLSXUtil.readerExcel(file.getInputStream(), "员工身份", 4);
+        if(list == null){
+            return CommonResult.fail("-1","缺少员工身份页数据!");
+        }
         Integer count = 0;
         for (String[] strings : list) {
             count++;
@@ -48,9 +52,10 @@ public class WorkerIdentityServiceImpl extends ServiceImpl<WorkerIdentityDao, Wo
 
         }
         if (workerIdList.size() > 0 ) {
-            return this.saveBatch(workerIdList, workerIdList.size());
+            boolean d = this.saveBatch(workerIdList, workerIdList.size());
+            return d ? CommonResult.ok() : CommonResult.fail("-1","缺少员工身份页数据!");
         }else {
-            return Boolean.TRUE;
+            return CommonResult.ok();
         }
 
     }

+ 16 - 0
src/main/java/com/chuanghai/attendance/utils/excel/FileTools.java

@@ -1,6 +1,7 @@
 package com.chuanghai.attendance.utils.excel;
 
 
+import com.chuanghai.attendance.common.utils.CommonResult;
 import org.apache.commons.io.FileUtils;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
@@ -181,4 +182,19 @@ public class FileTools {
 
 	}
 
+	public static CommonResult CheckFileType(MultipartFile file){
+		//首先判断是不是空的文件
+		if (!file.isEmpty()) {
+			//对文文件的全名进行截取然后在后缀名进行删选。
+			int begin = file.getOriginalFilename().indexOf(".");
+			int last = file.getOriginalFilename().length();
+			//获得文件后缀名
+			String a = file.getOriginalFilename().substring(begin, last);
+			//我这边需要的xlsx文件所以说我这边直接判断就是了
+			if (!a.endsWith(".xlsx")) {
+				return CommonResult.fail("-1","本系统只支持xlsx格式文件");
+			}
+		}
+		return CommonResult.ok();
+	}
 }