Browse Source

Merge branch 'master' of https://git.steerinfo.com/XTEMS/xt-ems-api

lirl 3 năm trước cách đây
mục cha
commit
eca077eeb5

+ 5 - 4
src/main/java/com/steerinfo/ems/Utils/ExcelToolUtils.java

@@ -146,7 +146,7 @@ public class ExcelToolUtils {
             workbook = new XSSFWorkbook(inputStream);
         } else {
             // 未知内容
-            //throw new MarketSlmException(500, "请选择xls或者xlsx文件!");
+            throw new MarketSlmException(500, "请选择xls或者xlsx文件!");
         }
 
         // 获取工作表  excel分为若干个表. sheet
@@ -161,7 +161,7 @@ public class ExcelToolUtils {
 
         // 最后一行的行号小于startRow
         if (lastRowNum < startRow) {
-            //throw new MarketSlmException(500, "请输入数据");
+            throw new MarketSlmException(500, "请输入数据");
         }
 
 
@@ -178,6 +178,9 @@ public class ExcelToolUtils {
             short lastCellNum = row.getLastCellNum();//最后一列
             if (lastCellNum != 0) {
                 String[] rowArray = new String[lastCellNum];
+                if(rowArray[0] == null || rowArray[0].equals("")){
+                    continue;
+                }
                 for (int cellNum = firstCellNum; cellNum < lastCellNum; cellNum++) {
                     cell = row.getCell(cellNum);
                     // 判断单元格是否有数据
@@ -187,9 +190,7 @@ public class ExcelToolUtils {
                         rowArray[cellNum] = parseCell(cell);
                     }
                 }
-                if(rowArray[0] != null){
                     result.add(rowArray);
-                }
             }
         }
 

+ 29 - 0
src/main/java/com/steerinfo/ems/Utils/MarketSlmException.java

@@ -0,0 +1,29 @@
+package com.steerinfo.ems.Utils;
+
+/**
+ * @ClassName MarketSlmException
+ * @Description: 自定义异常
+ * @Author yaoxin
+ * @Date 2020/5/19
+ * @Version V1.0
+ */
+public class MarketSlmException extends RuntimeException{
+
+    private Integer code;
+    public MarketSlmException(ResultEnum resultEnum) {
+        super(resultEnum.getMessage());
+        this.code = resultEnum.getCode();
+    }
+
+    public MarketSlmException(Integer code, String message) {
+        super(message);
+        this.code = code;
+    }
+
+    /**
+     * @return the code
+     */
+    public Integer getCode() {
+        return code;
+    }
+}

+ 23 - 0
src/main/java/com/steerinfo/ems/Utils/ResultEnum.java

@@ -0,0 +1,23 @@
+package com.steerinfo.ems.Utils;
+
+public class ResultEnum {
+
+    private Integer code;
+
+    private String message;
+
+    ResultEnum(Integer code, String message) {
+        this.code = code;
+        this.message = message;
+    }
+
+    public Integer getCode() {
+        return code;
+    }
+    public String getMessage() {
+        return message;
+    }
+    public void setMessage(String message) {
+        this.message = message;
+    }
+}

+ 27 - 13
src/main/java/com/steerinfo/ems/emsgmpcjh/service/impl/EmsGmPcJhServiceImpl.java

@@ -1,6 +1,7 @@
 package com.steerinfo.ems.emsgmpcjh.service.impl;
 
 import com.steerinfo.ems.Utils.ExcelToolUtils;
+import com.steerinfo.ems.Utils.MarketSlmException;
 import com.steerinfo.ems.emsgmpcjh.mapper.EmsGmPcJhMapper;
 import com.steerinfo.ems.emsgmpcjh.model.EmsGmPcJh;
 import com.steerinfo.ems.emsgmpcjh.service.IEmsGmPcJhService;
@@ -19,6 +20,7 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.regex.Pattern;
 
 /**
  * EmsGmPcJh服务实现:
@@ -93,7 +95,6 @@ public class EmsGmPcJhServiceImpl extends BaseServiceImpl<EmsGmPcJh, String> imp
                     rs.setMessage("导入失败");
                     rs.setCode("500");
                 }
-
             }
             else
             {
@@ -124,8 +125,8 @@ public class EmsGmPcJhServiceImpl extends BaseServiceImpl<EmsGmPcJh, String> imp
         List<String[]> list = ExcelToolUtils.parseExcel(is, fileName, 0);
 
         // SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        try {
         String name = fileName.substring(2, 4);
-
         for (int i = 1; i < list.size(); i++) {
             String[] arr = list.get(i);
             String[] arr1 = list.get(0);
@@ -144,8 +145,12 @@ public class EmsGmPcJhServiceImpl extends BaseServiceImpl<EmsGmPcJh, String> imp
             //AT2006 = "G-G2-";
             //AT2004 = "G-L1-";
             //AT2007 = "G-X1-";
-            if(arr[0].length()>8){
-                throw new Exception("排产日期(编号)有误");
+            //Pattern pattern = Pattern.compile("^-?[0-9]+"); //这个也行
+            //Pattern pattern = Pattern.compile("^-?\\d+(\\.\\d+)?$");//这个也行
+            //正整数
+            Pattern pattern = Pattern.compile("[0-9]*");
+            if(arr[0].length()>8 || !pattern.matcher(arr[0]).matches()){
+                throw new MarketSlmException(500,"排产日期(编号)有误!");
             }
             StringBuffer s=new StringBuffer(arr[0]).insert(4,"-").insert(7,"-");
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
@@ -186,31 +191,37 @@ public class EmsGmPcJhServiceImpl extends BaseServiceImpl<EmsGmPcJh, String> imp
             spp.setUnitid("008");
             for(int j =1;j<arr1.length;j++) {
                 switch (arr1[j].trim()) {
-                    case "规格":
+                    case "规格" :
                         spp.setSpecifications(arr[j].replace("*", "x"));
                         break;
-                    case "钢种":
+                    case "钢种" :
                         spp.setGrades(arr[j]);
                         break;
-                    case "长度":
+                    case "长度" :
                         spp.setLengths(new BigDecimal(arr[j]));
                         break;
-                    case "运输方式":
+                    case "运输方式" :
                         spp.setTransportType(arr[j]);
                         break;
-                    case "用途":
+                    case "用途" :
                         spp.setPurpose(arr[j]);
-                    case "订单量":
+                        break;
+                    case "订单量" :
+                        if(!pattern.matcher(arr[j]).matches()){
+                            throw new MarketSlmException(500,"订单量有误,请仔细检查");
+                        }
                         spp.setKxfWeight(new BigDecimal(arr[j]));
                         spp.setPlanWeight(new BigDecimal(arr[j]));
                         break;
-                    case "交货日期":
+                    case "交货日期" :
+                        spp.setDeliveryDate(simpleDateFormat.parse(arr[j]));
                         break;
-                    case "备注":
+                    case "备注" :
                         spp.setMemo(arr[j]);
                         break;
+                    case "分厂" : continue;
                     default:
-                        throw new Exception("请选择模板文件");
+                        throw new MarketSlmException(500,"模板文件存在模板外的列,请仔细检查!!");
                 }
             }
             //spp.setSteelCode(steel);
@@ -357,6 +368,9 @@ public class EmsGmPcJhServiceImpl extends BaseServiceImpl<EmsGmPcJh, String> imp
             //}
             lists.add(spp);
         }
+        } catch (Exception e){
+            throw new MarketSlmException (500,"导入失败,请检查文档中是否有错误数据。");
+        }
         return lists;
     }
 }

+ 30 - 30
src/main/java/com/steerinfo/task/SpringCronTask.java

@@ -254,36 +254,36 @@ public class SpringCronTask implements SchedulingConfigurer{
 					 tCm0318Service.getDataAsWscj(DateUtils.getDate());
 					 logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
 				}
-//				 else if(taskId.equalsIgnoreCase("120")){
-//					 // 获取大用户水系统数据 5分钟一次
-//					 long start = new Date().getTime();
-//					 emsWaterRealtimeService.getWaterListByArmMeter();
-//					 emsWaterRealtimeService.dataGeneration();
-//					 logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
-//				 } else if(taskId.equalsIgnoreCase("121")){
-//					 // 根据计量点配置生成水数据 10分钟一次
-//					 long start = new Date().getTime();
-//					 emsWaterRealtimeService.getWaterTenMinutes();
-//					 try {
-//						 emsWaterRealtimeService.getWaterListToMosaic();
-//					 } catch (AxisFault e) {
-//						 e.printStackTrace();
-//					 } finally {
-//						 logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
-//					 }
-//				 }
-//				 else if(taskId.equalsIgnoreCase("116")){
-//					// 动力、水(计量点)小时表定时统计(自动补全24小时内的小时用量值)
-//					long start = new Date().getTime();
-//					tRmCalpointService.statHourData();
-//					logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
-//				}
-//				 else if (taskId.equalsIgnoreCase("102")) {
-//					 // 计量点定时任务(天)
-//					 long start = new Date().getTime();
-//					 tRmCalpointValueService.statData(new Date());
-//					 logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
-//				 }
+				 else if(taskId.equalsIgnoreCase("120")){
+					 // 获取大用户水系统数据 5分钟一次
+					 long start = new Date().getTime();
+					 emsWaterRealtimeService.getWaterListByArmMeter();
+					 emsWaterRealtimeService.dataGeneration();
+					 logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
+				 } else if(taskId.equalsIgnoreCase("121")){
+					 // 根据计量点配置生成水数据 10分钟一次
+					 long start = new Date().getTime();
+					 emsWaterRealtimeService.getWaterTenMinutes();
+					 try {
+						 emsWaterRealtimeService.getWaterListToMosaic();
+					 } catch (AxisFault e) {
+						 e.printStackTrace();
+					 } finally {
+						 logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
+					 }
+				 }
+				 else if(taskId.equalsIgnoreCase("116")){
+					// 动力、水(计量点)小时表定时统计(自动补全24小时内的小时用量值)
+					long start = new Date().getTime();
+					tRmCalpointService.statHourData();
+					logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
+				}
+				 else if (taskId.equalsIgnoreCase("102")) {
+					 // 计量点定时任务(天)
+					 long start = new Date().getTime();
+					 tRmCalpointValueService.statData(new Date());
+					 logger.info("定时任务"+taskId+"执行时长:" + (new Date().getTime() - start)/1000 + "秒");
+				 }
 //				 else if (taskId.equalsIgnoreCase("106")) {
 //					// 获取MES水质监测数据
 //					long start = new Date().getTime();