瀏覽代碼

李剑-节假日信息维护功能开发-完成导入数据防呆。

lijian 4 年之前
父節點
當前提交
1c565435f1

+ 61 - 16
src/main/java/platform/common/util/holiday/HolidayExcelParser.java

@@ -3,26 +3,33 @@ package platform.common.util.holiday;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 public class HolidayExcelParser {
     private static final Logger logger = LoggerFactory.getLogger(HolidayExcelParser.class);
 
-    public static String parse(List<ArrayList<String>> readExcel) {
+    public static Map<String, String> parse(List<ArrayList<String>> readExcel) {
+        Map<String, String> mapRet = new HashMap<>();
+
         String ret = "{";
         // 逐行变换
         // {"0101":2,"0102":2,"0103":2,
         for (int i = 0; i < readExcel.size(); i++) {
+            Map<String, String> mapRowParseRet = parse1Row(readExcel.get(i));
+            if ("false".equals(mapRowParseRet.get("valid"))){
+                mapRet.put("valid","false");
+                mapRet.put("errMsg", "err: 第" + (i + 1 ) + "行有错误:" + mapRowParseRet.get("errMsg"));
+                return mapRet;
+            }
 
-            String str1Row = parse1Row(readExcel.get(i));
-
-            if ("".equals(str1Row))
+            if ("".equals(mapRowParseRet.get("data")))
             {
                 break;
             }
 
-            ret += str1Row;
+            ret += mapRowParseRet.get("data");
 
             ret += ",";
         }
@@ -30,21 +37,60 @@ public class HolidayExcelParser {
         ret = ret.substring(0,ret.length()-1);
 
         ret += "}";
-        return ret;
+
+        mapRet.put("valid","true");
+        mapRet.put("data",ret);
+        return mapRet;
     }
 
-    private static String parse1Row(ArrayList<String> strings) {
-        String ret = "";
-        if (null == strings.get(1) || "".equals(strings.get(1)))
+    private static Map<String, String> parse1Row(ArrayList<String> strListRow) {
+        Map<String, String> mapRet = new HashMap<>();
+        String retData = "";
+        if (null == strListRow.get(1) || "".equals(strListRow.get(1)))
         {
-            return ret;
+            mapRet.put("valid","true");
+            mapRet.put("data",retData);
+            return mapRet;
         }
 
-        ret += "\"" + parse1RowDayInfo(strings.get(1)) + "\"";
-        ret += ":" + parse1RowHolidayType(strings.get(2));
+        Map<String, String> mapCheck = checkRowData(strListRow);
 
+        if ("false".equals(mapCheck.get("valid")))
+        {
+            mapRet.put("valid","false");
+            mapRet.put("errMsg",mapCheck.get("errMsg"));
+            return mapRet;
+        }
 
-        return ret;
+        retData += "\"" + parse1RowDayInfo(strListRow.get(1)) + "\"";
+        retData += ":" + parse1RowHolidayType(strListRow.get(2));
+
+        mapRet.put("valid","true");
+        mapRet.put("data",retData);
+        return mapRet;
+    }
+
+    private static Map<String, String> checkRowData(ArrayList<String> strListRow) {
+        Map<String, String> mapRet = new HashMap<>();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        try {
+            Date dtTemp = simpleDateFormat.parse(strListRow.get(1));
+        } catch (ParseException e) {
+            e.printStackTrace();
+            mapRet.put("valid","false");
+            mapRet.put("errMsg","日期格式错误!");
+            return mapRet;
+        }
+
+        if (!"1".equals(strListRow.get(2)) && !"2".equals(strListRow.get(2)))
+        {
+            mapRet.put("valid","false");
+            mapRet.put("errMsg","假日类型错误!只能是”1“或”2“");
+            return mapRet;
+        }
+
+        mapRet.put("valid","true");
+        return mapRet;
     }
 
     private static String parse1RowHolidayType(String s) {
@@ -52,7 +98,6 @@ public class HolidayExcelParser {
     }
 
     private static String parse1RowDayInfo(String s) {
-
         return s.substring(5,7) + s.substring(8,10);
     }
 }

+ 0 - 1
src/main/java/platform/common/util/holiday/HolidayExcelTemplateUtil.java

@@ -22,7 +22,6 @@ public class HolidayExcelTemplateUtil {
     @Autowired
     private TemplateService templateService;
 
-    //private final int HOLIDAY_IMPORT_XLS_TEMPLATE_ID = 751;
     private final String HOLIDAY_IMPORT_XLS_TEMPLATE_NAME = "导入节假日数据模板";
 
     public Map<String, String> getTemplateFileInfo() {

+ 12 - 2
src/main/java/platform/modules/government/web/SupermeController.java

@@ -1105,6 +1105,8 @@ public class SupermeController extends BaseController {
 	@OperationLog(value = "导入假日信息")
 	@PostMapping(value = "/holiday/import")
 	public ResponseEntity<String> importHoliday(HttpServletRequest request, @RequestParam("file") MultipartFile file) throws IOException {
+		Map<String, String> mapParseRet;
+
 		String retInfo = "";
 		if (file.isEmpty()) {
 			return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("文件不能为空");
@@ -1115,10 +1117,18 @@ public class SupermeController extends BaseController {
 			//调用util方法拿到解析的数据集合
 			readExcel = new ReadExcelUtil().readExcel(file);
 			// 进一步解析
-			retInfo = HolidayExcelParser.parse(readExcel);
 
-		} catch (IOException e) {
+			mapParseRet = HolidayExcelParser.parse(readExcel);
 
+			if ("true".equals(mapParseRet.get("valid")))
+			{
+				retInfo = mapParseRet.get("data");
+			}else
+			{
+				retInfo = mapParseRet.get("errMsg");
+			}
+
+		} catch (IOException e) {
 			e.printStackTrace();
 		}
 

+ 10 - 3
src/main/resources/templates/admin/super/holiday/holiday_add.html

@@ -78,7 +78,7 @@
 		fileSizeLimit: 100 * 1024 * 1024,
 		fileSingleSizeLimit: 100 * 1024 * 1024,
 		//fileNumLimit: 1,
-		serverUrl:'/myboot/super/holiday/import' // TODO: 这个地方要改的,不然发布到生产环境无法上传
+		serverUrl:pagePath + '/super/holiday/import'//'/myboot/super/holiday/import' // TODO: 这个地方要改的,不然发布到生产环境无法上传
 	};
 
 	var webUploadDoc = new $WebUploadDoc(options);
@@ -87,8 +87,15 @@
 
 	// 文件上传成功,给item添加成功class, 用样式标记上传成功。
 	objUploader.on('uploadSuccess', function (file, response) {
-		succeedMessage("导入成功");
-		$("#configValue").val(response._raw);
+
+		if(response._raw.substring(0, 4) == "err:")
+		{
+			errorMessage("导入失败:" + response._raw);
+		}else{
+			succeedMessage("导入成功!");
+			$("#configValue").val(response._raw);
+		}
+
 	});
 
     /**