Browse Source

出运明细导入添加验证

huxy 1 year ago
parent
commit
55f20c1f58

+ 31 - 19
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/controller/SyPreAssembledPackingListController.java

@@ -2071,6 +2071,8 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
     public Result<?> importExcel2(HttpServletRequest request, HttpServletResponse response) throws IOException {
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
         Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+        Map<String,Object> error=new HashMap<>();
+        error.put("num",1);
         try{
             for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
                 MultipartFile file = entity.getValue();// 获取上传文件对象
@@ -2082,9 +2084,8 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                 ImportParams params = new ImportParams();
                 //System.out.println("inputSream:\t"+inputStream);
                 Workbook workbook=new XSSFWorkbook(inputStream);
-
                 long startTime = System.currentTimeMillis();
-                refreshSheet(workbook);
+                refreshSheet(workbook,error);
                 long endTime = System.currentTimeMillis();
                 System.out.println("模板运行时间:" + (endTime - startTime) + "ms");
                 params.setTitleRows(2);
@@ -2100,7 +2101,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
     }
 
 
-    private void refreshSheet(Workbook workbook1) {
+    private void refreshSheet(Workbook workbook1,Map<String,Object> error) {
         //String load="C:\\Users\\admin\\Downloads\\装箱单测试.xls";
         //头表目前固定七个字段数据
         List <SyPreAssembledPackingList> mains=new ArrayList<>();
@@ -2108,6 +2109,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
         int num=0;
         while (sheets.hasNext()){
             num++;
+            error.put("num",num);
             SyPreAssembledPackingList main=new SyPreAssembledPackingList();
             List<SyPreAssembledPackingListItem> items=new ArrayList<SyPreAssembledPackingListItem>();
             Sheet sheet=(Sheet) sheets.next();
@@ -2203,7 +2205,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                     SyPreAssembledPackingListItem item=
                             new SyPreAssembledPackingListItem(strs.toArray(new String[strs.size()]),
                                     strs2.toArray(new String[strs2.size()]),
-                                    strs3.toArray(new String[strs3.size()]));
+                                    strs3.toArray(new String[strs3.size()]),error);
                     items.add(item);
                     main=new SyPreAssembledPackingList(strs.toArray(new String[strs.size()]));
                 }
@@ -2231,29 +2233,39 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
         MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
         Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
         String str="";
-        for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
-            MultipartFile file = entity.getValue();// 获取上传文件对象
-            InputStream inputStream=file.getInputStream();
-            ImportParams params = new ImportParams();
-            Workbook workbook=new XSSFWorkbook(inputStream);
-            long startTime = System.currentTimeMillis();
-            str+=refreshSheet1(workbook);
-            long endTime = System.currentTimeMillis();
-            System.out.println("读取模板运行时间:" + (endTime - startTime) + "ms");
-            params.setTitleRows(2);
-            params.setHeadRows(1);
-            params.setNeedSave(true);
+        Map<String,Object> error=new HashMap<>();
+        error.put("num",1);
+        try {
+            for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
+                MultipartFile file = entity.getValue();// 获取上传文件对象
+                InputStream inputStream=file.getInputStream();
+                ImportParams params = new ImportParams();
+                Workbook workbook=new XSSFWorkbook(inputStream);
+                long startTime = System.currentTimeMillis();
+                str+=refreshSheet1(workbook,error);
+                long endTime = System.currentTimeMillis();
+                System.out.println("读取模板运行时间:" + (endTime - startTime) + "ms");
+                params.setTitleRows(2);
+                params.setHeadRows(1);
+                params.setNeedSave(true);
+            }
+            return Result.ok(str);
+        }catch (Exception e){
+            e.printStackTrace();
+            return Result.error("文件导入失败"+e.getMessage());
+            //return Result.error("第"+error.get("num")+"页数据有问题,需要调整");
         }
-        return Result.ok(str);
     }
 
 
-    private String refreshSheet1(Workbook workbook1) {
+    private String refreshSheet1(Workbook workbook1,Map<String,Object> error) {
         List <SyPreAssembledPackingList> mains=new ArrayList<>();
         Iterator sheets=workbook1.sheetIterator();
         int num=0;
         while (sheets.hasNext()){
             num++;
+            //stringBuffer=new StringBuffer(""+num);
+            error.put("num",num);
             SyPreAssembledPackingList main=new SyPreAssembledPackingList();
             List<SyPreAssembledPackingListItem> items=new ArrayList<SyPreAssembledPackingListItem>();
             Sheet sheet=(Sheet) sheets.next();
@@ -2353,7 +2365,7 @@ public class SyPreAssembledPackingListController extends JeecgController<SyPreAs
                     SyPreAssembledPackingListItem item=
                             new SyPreAssembledPackingListItem(strs.toArray(new String[strs.size()]),
                                     strs2.toArray(new String[strs2.size()]),
-                                    strs3.toArray(new String[strs3.size()]));
+                                    strs3.toArray(new String[strs3.size()]),error);
                     items.add(item);
                     main=new SyPreAssembledPackingList(strs.toArray(new String[strs.size()]));
                 }

+ 6 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/spapl/entity/SyPreAssembledPackingListItem.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import org.hibernate.engine.jdbc.Size;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecgframework.poi.excel.annotation.ExcelCollection;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
@@ -328,10 +329,10 @@ public class SyPreAssembledPackingListItem implements Serializable {
 
 	}
 
-	public SyPreAssembledPackingListItem(String[] parsms,String[] parsms2,String[] parsms3){
+	public SyPreAssembledPackingListItem(String[] parsms,String[] parsms2,String[] parsms3,Map<String,Object> error){
 		//成衣工厂	款号	小po	分销点	起始箱号	结束箱号	item NO./SKU NO./UPC NO./PACKS CODE	PREACKSKU
 		//颜色	计划装箱数量	净重/箱	毛重/箱	外箱长度	外箱宽度	外箱高度	净净重	客户简称	发运明细分组ID	发运明细主表ID	申报要素ID
-		//try{
+		try{
 			garmentFactory=parsms[0];
 			styleNo=parsms[1];
 			smallPo=parsms[2];
@@ -418,9 +419,9 @@ public class SyPreAssembledPackingListItem implements Serializable {
 			this.totalNetWeight=this.boxNumber.multiply(this.netWeight);
 			this.totalGrossWeight=this.boxNumber.multiply(this.grossWeight);
 			this.totalVolume=this.boxNumber.multiply(this.outerBoxLength).multiply(this.outerBoxWidth).multiply(this.outerBoxHeight).divide(new BigDecimal(1000000));
-		/*}catch (Exception e){
-			e.printStackTrace();
-		}*/
+		}catch (Exception e){
+			throw new JeecgBootException("第"+error.get("num")+"页数据有问题,需要调整");
+		}
 	}
 
 	public static boolean isNumeric(String str) {