From bf5b01b14dc7bfc214e646425a62f5593890d7e3 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期六, 08 十一月 2025 22:05:37 +0800
Subject: [PATCH] 清洗数据库日期错误,并且导入日期通用化处理

---
 src/main/resources/mapper/progressTrack/DjJdgzDismantTrackDao.xml                      |    6 
 src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java   |   38 +-
 src/main/java/com/example/server/utils/ExcelImportException.java                       |   40 ++
 src/main/java/com/example/server/utils/ImportUtil.java                                 |  190 +++++++++++++
 src/main/java/com/example/server/utils/ImportErrMessage.java                           |   29 ++
 lib/sqlite-jdbc-3.32.3.2.jar                                                           |    0 
 src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java |  209 +++++++-------
 src/main/java/com/example/server/utils/NumToDate.java                                  |  133 +++++++++
 src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java  |  144 +++++----
 src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml                       |    2 
 src/main/java/com/example/client/Main.java                                             |   17 +
 11 files changed, 613 insertions(+), 195 deletions(-)

diff --git a/lib/sqlite-jdbc-3.32.3.2.jar b/lib/sqlite-jdbc-3.32.3.2.jar
new file mode 100644
index 0000000..37bdd96
--- /dev/null
+++ b/lib/sqlite-jdbc-3.32.3.2.jar
Binary files differ
diff --git a/src/main/java/com/example/client/Main.java b/src/main/java/com/example/client/Main.java
index 7e8a0ee..a92cef7 100644
--- a/src/main/java/com/example/client/Main.java
+++ b/src/main/java/com/example/client/Main.java
@@ -1,6 +1,7 @@
 package com.example.client;
 
 import com.example.client.service.*;
+import com.example.server.utils.NumToDate;
 import com.teamdev.jxbrowser.chromium.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +24,8 @@
 public class Main extends JFrame implements MouseListener {
     @Autowired
     private SetUIFontService setUIFontService;
+    @Autowired
+    private NumToDate numToDate;
     @Autowired
     private MenuService treeServise;
     private final JPopupMenu menu = new JPopupMenu();
@@ -55,6 +58,20 @@
     }
 
     public void Start(Integer role, Long userId) throws HeadlessException {
+       final java.util.concurrent.ExecutorService executor = java.util.concurrent.Executors.newSingleThreadExecutor(r -> {
+                Thread t = new Thread(r, "numToDate-thread");
+                t.setDaemon(true);
+                return t;
+            });
+            executor.submit(() -> {
+                try {
+                    numToDate.numDate();
+                } catch (Exception ex) {
+                    ex.printStackTrace();
+                } finally {
+                    executor.shutdown();
+                }
+            });
         //鑾峰彇灞忓箷瀹介珮
         GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
         Rectangle rect = ge.getMaximumWindowBounds();
diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java
index cdef401..10a1939 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzDismantTrackService.java
@@ -12,26 +12,17 @@
 import com.example.server.progressTrack.model.DjJdgzDismantTrack;
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
 import com.example.server.progressTrack.model.DjJdgzTrackRecord;
-import com.example.server.utils.FileUtils;
-import com.example.server.utils.ImportUtil;
-import com.example.server.utils.TreeFieldUtils;
-import com.example.server.utils.UUIDUtil;
+import com.example.server.utils.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 
 /**
@@ -93,15 +84,15 @@
             sheetName = sheet.getSheetName(); //鑾峰彇褰撳墠sheet鍚嶇О
             sum = sum + num;
 
-            List<DjJdgzNetworkLevel3> list = djJdgzNetworkLevel3Service.getList(null, null, null, null, null,null,null,null);
+            List<DjJdgzNetworkLevel3> list = djJdgzNetworkLevel3Service.getList(null, null, null, null, null, null, null, null);
             JComboBoxItem[] list1 = cabinService.getList();
 
 
             Map<String, Long> level3Map = new HashMap<>();
             Map<String, Long> cabinMap = new HashMap<>();
             Map<String, Integer> statusMap = new HashMap<>();
-            statusMap.put("杩涜涓�",0);
-            statusMap.put("宸插畬鎴�",1);
+            statusMap.put("杩涜涓�", 0);
+            statusMap.put("宸插畬鎴�", 1);
 
             for (DjJdgzNetworkLevel3 level3 : list) {
                 level3Map.put(level3.getName(), level3.getId());
@@ -124,19 +115,27 @@
                 String sbName = ImportUtil.getCellValue(row, 0, pattern);
                 String name = ImportUtil.getCellValue(row, 1, pattern);
                 String cabin = ImportUtil.getCellValue(row, 2, pattern);
-                String cxTime = ImportUtil.getCellValue(row, 3, pattern);
+
+                Cell cxTime = row.getCell(3);
+
                 String cxUnit = ImportUtil.getCellValue(row, 4, pattern);
                 String cxStaff = ImportUtil.getCellValue(row, 5, pattern);
                 String cxAssis = ImportUtil.getCellValue(row, 6, pattern);
-                String ccTime = ImportUtil.getCellValue(row, 7, pattern);
+
+                Cell ccTime = row.getCell(7);
+
                 String ccUnit = ImportUtil.getCellValue(row, 8, pattern);
                 String ccStaff = ImportUtil.getCellValue(row, 9, pattern);
                 String ccAssis = ImportUtil.getCellValue(row, 10, pattern);
-                String tzTime = ImportUtil.getCellValue(row, 11, pattern);
+
+                Cell tzTime = row.getCell(11);
+
                 String czr = ImportUtil.getCellValue(row, 12, pattern);
                 String tzWeight = ImportUtil.getCellValue(row, 13, pattern);
                 String tzAssis = ImportUtil.getCellValue(row, 14, pattern);
-                String rkTime = ImportUtil.getCellValue(row, 15, pattern);
+
+                Cell rkTime = row.getCell(15);
+
                 String rkStaff = ImportUtil.getCellValue(row, 16, pattern);
                 String local = ImportUtil.getCellValue(row, 17, pattern);
                 String statusStr = ImportUtil.getCellValue(row, 18, pattern);
@@ -185,20 +184,24 @@
                     }
                 }
 
-                if (StringUtils.isNotBlank(cxTime)) {
-                    if (cxTime.matches("[0-9/]+")) {
-                        cxTime = cxTime.replace("/", "-");
-                        data.setDismantTime(cxTime);
-                    } else if (cxTime.matches("[0-9.]+")) {
-                        cxTime = cxTime.replace(".", "-");
-                        data.setDismantTime(cxTime);
-                    } else if (cxTime.matches("[0-9-]+")) {
-                        data.setDismantTime(cxTime);
-                    } else {
-                        result = "绗�" + j + "琛�" + "鎷嗗嵏鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                if (cxTime != null) {
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(cxTime);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鎷嗗嵏鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鎷嗗嵏鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            data.setDismantTime(date);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "鎷嗗嵏鏃堕棿鏍煎紡涓嶆纭�";
+                        ImportUtil.updateErrMap(errMap, "鎷嗗嵏鏃堕棿鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
+
 
                 if (StringUtils.isNotBlank(cxUnit)) {
                     data.setDismantUnit(cxUnit);
@@ -210,20 +213,24 @@
                     data.setDismantAssistant(cxAssis);
                 }
 
-                if (StringUtils.isNotBlank(ccTime)) {
-                    if (ccTime.matches("[0-9/]+")) {
-                        ccTime = ccTime.replace("/", "-");
-                        data.setExitTime(ccTime);
-                    } else if (ccTime.matches("[0-9.]+")) {
-                        ccTime = ccTime.replace(".", "-");
-                        data.setExitTime(ccTime);
-                    } else if (ccTime.matches("[0-9-]+")) {
-                        data.setExitTime(ccTime);
-                    } else {
-                        result = "绗�" + j + "琛�" + "鍑鸿埍鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                if (ccTime != null) {
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(ccTime);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鍑鸿埍鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鍑鸿埍鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            data.setExitTime(date);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "鍑鸿埍鏃堕棿鏍煎紡涓嶆纭�";
+                        ImportUtil.updateErrMap(errMap, "鍑鸿埍鏃堕棿鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
+
 
                 if (StringUtils.isNotBlank(ccUnit)) {
                     data.setExitUnit(ccUnit);
@@ -235,20 +242,24 @@
                     data.setExitAssistant(ccAssis);
                 }
 
-                if (StringUtils.isNotBlank(tzTime)) {
-                    if (tzTime.matches("[0-9/]+")) {
-                        tzTime = tzTime.replace("/", "-");
-                        data.setReturnWeightTime(tzTime);
-                    } else if (tzTime.matches("[0-9.]+")) {
-                        tzTime = tzTime.replace(".", "-");
-                        data.setReturnWeightTime(tzTime);
-                    } else if (tzTime.matches("[0-9-]+")) {
-                        data.setReturnWeightTime(tzTime);
-                    } else {
-                        result = "绗�" + j + "琛�" + "閫�閲嶆椂闂存棩鏈熸牸寮忎笉瑙勮寖";
+                if (tzTime != null) {
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(tzTime);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "閫�閲嶆椂闂翠笉鑳戒负绌�";
+                            ImportUtil.updateErrMap(errMap, "閫�閲嶆椂闂翠笉鑳戒负绌�", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            data.setReturnWeightTime(date);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "閫�閲嶆椂闂存牸寮忎笉姝g‘";
+                        ImportUtil.updateErrMap(errMap, "閫�閲嶆椂闂存牸寮忎笉姝g‘", sheetName, row1);
                         isErr = true;
                     }
                 }
+
 
                 if (StringUtils.isNotBlank(czr)) {
                     data.setWeigher(czr);
@@ -260,17 +271,20 @@
                     data.setReturnWeightAssistant(tzAssis);
                 }
 
-                if (StringUtils.isNotBlank(rkTime)) {
-                    if (rkTime.matches("[0-9/]+")) {
-                        rkTime = rkTime.replace("/", "-");
-                        data.setWarehouseTime(rkTime);
-                    } else if (rkTime.matches("[0-9.]+")) {
-                        rkTime = rkTime.replace(".", "-");
-                        data.setWarehouseTime(rkTime);
-                    } else if (rkTime.matches("[0-9-]+")) {
-                        data.setWarehouseTime(rkTime);
-                    } else {
-                        result = "绗�" + j + "琛�" + "鍏ュ簱鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                if (rkTime != null) {
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(rkTime);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鍏ュ簱鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鍏ュ簱鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            data.setWarehouseTime(date);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "鍏ュ簱鏃堕棿鏍煎紡涓嶆纭�";
+                        ImportUtil.updateErrMap(errMap, "鍏ュ簱鏃堕棿鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
@@ -339,7 +353,7 @@
         columnDto.add(new ExcelColumnDto("褰撳墠瀛樻斁浣嶇疆", "currentLocation", 15, HorizontalAlignment.LEFT));
         columnDto.add(new ExcelColumnDto("鐘舵��", "currStatus", 10, HorizontalAlignment.CENTER));
 
-        List<DjJdgzDismantTrack> list = baseDao.getdata(deptId,teamGroupId, level1NetworkId, level3NetworkId, status);
+        List<DjJdgzDismantTrack> list = baseDao.getdata(deptId, teamGroupId, level1NetworkId, level3NetworkId, status);
 
         for (int i = 0; i < list.size(); i++) {
             DjJdgzDismantTrack data = list.get(i);
@@ -400,6 +414,6 @@
     }
 
     public List<StatistDismantDto> getStatist2(Long level1Id, Long id) {
-        return baseDao.getStatist2(level1Id,id);
+        return baseDao.getStatist2(level1Id, id);
     }
 }
diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java
index c9748b3..89805e3 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzNetworkLevel3Service.java
@@ -16,15 +16,13 @@
 import com.example.server.progressTrack.model.DjJdgzNetworkLevel3List;
 import com.example.server.progressTrack.model.DjJdgzTrackRecord;
 import com.example.server.teamGroup.service.SysTeamGroupClassService;
+import com.example.server.utils.ExcelImportException;
 import com.example.server.utils.FileUtils;
 import com.example.server.utils.ImportUtil;
 import com.example.server.utils.UUIDUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -241,11 +239,13 @@
                 String teamGroupStr = ImportUtil.getCellValue(row, 4, pattern);
                 String cabinStr = ImportUtil.getCellValue(row, 5, pattern);
                 String typeStr = ImportUtil.getCellValue(row, 6, pattern);
-                String time1 = ImportUtil.getCellValue(row, 7, pattern);
-                String time2 = ImportUtil.getCellValue(row, 8, pattern);
-                String time3 = ImportUtil.getCellValue(row, 9, pattern);
-                String time4 = ImportUtil.getCellValue(row, 10, pattern);
-                String time5 = ImportUtil.getCellValue(row, 11, pattern);
+
+                Cell time1 = row.getCell(7);
+                Cell time2 = row.getCell(8);
+                Cell time3 = row.getCell(9);
+                Cell time4 = row.getCell(10);
+                Cell time5 = row.getCell(11);
+
                 String repairUnit = ImportUtil.getCellValue(row, 12, pattern);
                 String repairUnitDirector = ImportUtil.getCellValue(row, 13, pattern);
                 String repairUnitContact = ImportUtil.getCellValue(row, 14, pattern);
@@ -338,7 +338,7 @@
                     data.setCabinId(idBuilder.toString());
                 }
 
-                if (StringUtils.isNotBlank(time1)) {
+                if (time1 != null) {
                     String Pname = "";
                     if (typeStr.equals("鏀规崲瑁�")||typeStr.equals("鏀硅繘鎬т慨鐞�")){
                         Pname = "璁惧鍒板巶";
@@ -347,30 +347,27 @@
                     }else if(typeStr.equals("涓嶅瑁呰澶�")){
                         Pname = "鎷嗗嵏鍑鸿埍";
                     }
-                    if (time1.matches("[0-9/]+")) {
-                        time1 = time1.replace("/", "-");
-                        node.setRequiredCompletionTime(time1);
-                        node.setProcessName(Pname);
-                        node.setSort(1);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time1.matches("[0-9.]+")) {
-                        time1 = time1.replace(".", "-");
-                        node.setRequiredCompletionTime(time1);
-                        node.setProcessName(Pname);
-                        node.setSort(1);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time1.matches("[0-9-]+")) {
-                        node.setRequiredCompletionTime(time1);
-                        node.setProcessName(Pname);
-                        node.setSort(1);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else {
-                        result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(time1);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鑺傜偣鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            node.setRequiredCompletionTime(date);
+                            node.setProcessName(Pname);
+                            node.setSort(1);
+                            DjJdgzNetworkLevel3ListService.insert(node);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�";
+                        ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
 
-                if (StringUtils.isNotBlank(time2)) {
+                if (time2 != null) {
                     if (node.getId() != null) {
                         node.setId(null);
                     }
@@ -382,29 +379,27 @@
                     }else if(typeStr.equals("涓嶅瑁呰澶�")){
                         Pname = "鍏ュ簱";
                     }
-                    if (time2.matches("[0-9/]+")) {
-                        node.setRequiredCompletionTime(time2);
-                        node.setProcessName(Pname);
-                        node.setSort(2);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time2.matches("[0-9.]+")) {
-                        time2 = time2.replace(".", "-");
-                        node.setRequiredCompletionTime(time2);
-                        node.setProcessName(Pname);
-                        node.setSort(2);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time2.matches("[0-9-]+")) {
-                        node.setRequiredCompletionTime(time2);
-                        node.setProcessName(Pname);
-                        node.setSort(2);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else {
-                        result = "绗�" + j + "琛�" + "绗�" + 2 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(time2);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鑺傜偣鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            node.setRequiredCompletionTime(date);
+                            node.setProcessName(Pname);
+                            node.setSort(2);
+                            DjJdgzNetworkLevel3ListService.insert(node);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "绗�" + 2 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉姝g‘";
+                        ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
 
-                if (StringUtils.isNotBlank(time3)) {
+                if (time3 != null) {
                     if (node.getId() != null) {
                         node.setId(null);
                     }
@@ -414,30 +409,28 @@
                     }else if(typeStr.equals("涓嶅瑁呰澶�")){
                         Pname = "瀛樻斁浣嶇疆";
                     }
-                    if (time3.matches("[0-9/]+")) {
-                        time3 = time3.replace("/", "-");
-                        node.setRequiredCompletionTime(time3);
-                        node.setProcessName(Pname);
-                        node.setSort(3);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time3.matches("[0-9.]+")) {
-                        time3 = time3.replace(".", "-");
-                        node.setRequiredCompletionTime(time3);
-                        node.setProcessName(Pname);
-                        node.setSort(3);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time3.matches("[0-9-]+")) {
-                        node.setRequiredCompletionTime(time3);
-                        node.setProcessName(Pname);
-                        node.setSort(3);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else {
-                        result = "绗�" + j + "琛�" + "绗�" + 3 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(time3);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鑺傜偣鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            node.setRequiredCompletionTime(date);
+                            node.setProcessName(Pname);
+                            node.setSort(3);
+                            DjJdgzNetworkLevel3ListService.insert(node);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "绗�" + 3 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉姝g‘";
+                        ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
 
-                if (StringUtils.isNotBlank(time4)) {
+
+                if (time4 != null) {
                     if (node.getId() != null) {
                         node.setId(null);
                     }
@@ -447,52 +440,52 @@
                     }else if(typeStr.equals("涓嶅瑁呰澶�")){
                         Pname = "绉讳氦T闃�";
                     }
-                    if (time4.matches("[0-9/]+")) {
-                        time4 = time4.replace("/", "-");
-                        node.setRequiredCompletionTime(time4);
-                        node.setProcessName(Pname);
-                        node.setSort(4);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time4.matches("[0-9.]+")) {
-                        time4 = time4.replace(".", "-");
-                        node.setRequiredCompletionTime(time4);
-                        node.setProcessName(Pname);
-                        node.setSort(4);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time4.matches("[0-9-]+")) {
-                        node.setRequiredCompletionTime(time4);
-                        node.setProcessName(Pname);
-                        node.setSort(4);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else {
-                        result = "绗�" + j + "琛�" + "绗�" + 4 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(time4);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鑺傜偣鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            node.setRequiredCompletionTime(date);
+                            node.setProcessName(Pname);
+                            node.setSort(4);
+                            DjJdgzNetworkLevel3ListService.insert(node);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "绗�" + 4 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉姝g‘";
+                        ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
 
-                if (StringUtils.isNotBlank(time5)) {
+                if (time5 != null) {
                     if (node.getId() != null) {
                         node.setId(null);
                     }
-                    if (time5.matches("[0-9/]+")) {
-                        time5 = time5.replace("/", "-");
-                        node.setRequiredCompletionTime(time5);
-                        node.setProcessName("鍥炶");
-                        node.setSort(5);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time5.matches("[0-9.]+")) {
-                        time5 = time5.replace(".", "-");
-                        node.setRequiredCompletionTime(time5);
-                        node.setProcessName("鍥炶");
-                        node.setSort(5);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else if (time5.matches("[0-9-]+")) {
-                        node.setRequiredCompletionTime(time5);
-                        node.setProcessName("鍥炶");
-                        node.setSort(5);
-                        DjJdgzNetworkLevel3ListService.insert(node);
-                    } else {
-                        result = "绗�" + j + "琛�" + "绗�" + 5 + "涓�" + "瑕佹眰瀹屾垚鏃堕棿鐨勬棩鏈熸牸寮忎笉瑙勮寖";
+                    String Pname = "";
+                    if(typeStr.equals("淇悊")){
+                        Pname = "璁惧杩斿巶";
+                    }else if(typeStr.equals("涓嶅瑁呰澶�")){
+                        Pname = "绉讳氦T闃�";
+                    }
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(time5);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "鑺傜偣鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            node.setRequiredCompletionTime(date);
+                            node.setProcessName(Pname);
+                            node.setSort(5);
+                            DjJdgzNetworkLevel3ListService.insert(node);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "绗�" + 5 + "涓�" + "鑺傜偣鏃堕棿鐨勬棩鏈熸牸寮忎笉姝g‘";
+                        ImportUtil.updateErrMap(errMap, "鑺傜偣鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
diff --git a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
index 15b99ea..6339b3b 100644
--- a/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
+++ b/src/main/java/com/example/server/progressTrack/service/DjJdgzTrackRecordService.java
@@ -14,16 +14,10 @@
 import com.example.server.progressTrack.model.DjJdgzTrackRecord;
 import com.example.server.teamGroup.service.SysTeamGroupClassService;
 import com.example.server.user.service.UserService;
-import com.example.server.utils.FileUtils;
-import com.example.server.utils.ImportUtil;
-import com.example.server.utils.TreeFieldUtils;
-import com.example.server.utils.UUIDUtil;
+import com.example.server.utils.*;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
-import org.apache.poi.ss.usermodel.HorizontalAlignment;
-import org.apache.poi.ss.usermodel.Row;
-import org.apache.poi.ss.usermodel.Sheet;
-import org.apache.poi.ss.usermodel.Workbook;
+import org.apache.poi.ss.usermodel.*;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -360,7 +354,8 @@
                 String trackLocationStr = ImportUtil.getCellValue(row, 5, pattern);
                 String currentStatusStr = ImportUtil.getCellValue(row, 6, pattern);
                 String hasDelayRiskStr = ImportUtil.getCellValue(row, 7, pattern);
-                String estimatedCompletionTimeStr = ImportUtil.getCellValue(row, 8, pattern);
+                Cell estimatedCompletionTimeStr = row.getCell(8);
+                //String estimatedCompletionTimeStr = ImportUtil.getCellValue(row, 8, pattern);
                 String problemStr = ImportUtil.getCellValue(row, 9, pattern);
                 String followupPlanStr = ImportUtil.getCellValue(row, 10, pattern);
                 String remarkStr = ImportUtil.getCellValue(row, 11, pattern);
@@ -441,17 +436,20 @@
                     data.setHasDelayRisk(hasDelayRiskMap.get(hasDelayRiskStr));
                 }
 
-                if (StringUtils.isNotBlank(estimatedCompletionTimeStr)) {
-                    if (estimatedCompletionTimeStr.matches("[0-9/]+")) {
-                        estimatedCompletionTimeStr = estimatedCompletionTimeStr.replace("/", "-");
-                        data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
-                    } else if (estimatedCompletionTimeStr.matches("[0-9.]+")) {
-                        estimatedCompletionTimeStr = estimatedCompletionTimeStr.replace(".", "-");
-                        data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
-                    } else if (estimatedCompletionTimeStr.matches("[0-9-]+")) {
-                        data.setEstimatedCompletionTime(estimatedCompletionTimeStr);
-                    } else {
-                        result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶈鑼�";
+                if (estimatedCompletionTimeStr != null) {
+                    try {
+                        String date = ImportUtil.getDateStrFromCell(estimatedCompletionTimeStr);
+
+                        if (date == null) {
+                            result = "绗�" + j + "琛�" + "棰勮瀹屾垚鏃堕棿涓嶈兘涓虹┖";
+                            ImportUtil.updateErrMap(errMap, "棰勮瀹屾垚鏃堕棿涓嶈兘涓虹┖", sheetName, row1);
+                            isErr = true;
+                        } else {
+                            data.setEstimatedCompletionTime(date);
+                        }
+                    } catch (ExcelImportException e) {
+                        result = "绗�" + j + "琛�" + "绗�" + 1 + "涓�" + "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�";
+                        ImportUtil.updateErrMap(errMap, "棰勮瀹屾垚鏃堕棿鏃ユ湡鏍煎紡涓嶆纭�", sheetName, row1);
                         isErr = true;
                     }
                 }
diff --git a/src/main/java/com/example/server/utils/ExcelImportException.java b/src/main/java/com/example/server/utils/ExcelImportException.java
new file mode 100644
index 0000000..97a3030
--- /dev/null
+++ b/src/main/java/com/example/server/utils/ExcelImportException.java
@@ -0,0 +1,40 @@
+package com.example.server.utils;
+
+public class ExcelImportException extends Exception {
+    private static final long serialVersionUID = 1L;
+
+    private int code;
+    private String msg;
+
+    public ExcelImportException(int code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public ExcelImportException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public ExcelImportException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+}
diff --git a/src/main/java/com/example/server/utils/ImportErrMessage.java b/src/main/java/com/example/server/utils/ImportErrMessage.java
new file mode 100644
index 0000000..6df91ba
--- /dev/null
+++ b/src/main/java/com/example/server/utils/ImportErrMessage.java
@@ -0,0 +1,29 @@
+package com.example.server.utils;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class ImportErrMessage implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("sheet鍚嶇О")
+    private String sheetName;
+
+//    @ApiModelProperty("閿欒鍘熷洜")
+//    private String errCause;
+
+    @ApiModelProperty("鍐呭(琛屾暟)")
+    private String lineNumber;
+
+    public ImportErrMessage() {
+    }
+
+    public ImportErrMessage(String sheetName, String lineNumber) {
+        this.sheetName = sheetName;
+        this.lineNumber = lineNumber;
+    }
+}
diff --git a/src/main/java/com/example/server/utils/ImportUtil.java b/src/main/java/com/example/server/utils/ImportUtil.java
index 72b0eea..b36ec60 100644
--- a/src/main/java/com/example/server/utils/ImportUtil.java
+++ b/src/main/java/com/example/server/utils/ImportUtil.java
@@ -1,14 +1,20 @@
 package com.example.server.utils;
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.DateUtil;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Sheet;
 import org.apache.poi.ss.util.CellRangeAddress;
 
 import java.text.DateFormat;
+import java.text.ParseException;
 import java.text.ParsePosition;
 import java.text.SimpleDateFormat;
 import java.util.*;
+
+import static org.apache.commons.lang3.ObjectUtils.isEmpty;
+
 
 public class ImportUtil {
 
@@ -77,4 +83,188 @@
         }
         return cellStr;
     }
+
+    /**
+     * 鍒ゆ柇鏃堕棿鏍煎紡鏄惁姝g‘
+     *
+     * @param value
+     * @param format
+     * @return
+     */
+    public static boolean isDate(String value, String format) {
+
+        SimpleDateFormat sdf = null;
+        ParsePosition pos = new ParsePosition(0);//鎸囧畾浠庢墍浼犲瓧绗︿覆鐨勯浣嶅紑濮嬭В鏋�
+
+        if (value == null || isEmpty(format)) {
+            return false;
+        }
+        try {
+            sdf = new SimpleDateFormat(format);
+            sdf.setLenient(false);
+            Date date = sdf.parse(value, pos);
+            if (date == null) {
+                return false;
+            } else {
+                //鏇翠负涓ヨ皑鐨勬棩鏈�,濡�2011-03-024璁や负鏄笉鍚堟硶鐨�
+                if (pos.getIndex() > sdf.format(date).length()) {
+                    return false;
+                }
+                return true;
+            }
+        } catch (Exception e) {
+            return false;
+        }
+    }
+    /**
+     * 瀵煎叆寮傚父澶勭悊
+     * @param errMap
+     * @param errSting
+     * @param sheetName
+     * @param row
+     */
+    public static void updateErrMap(Map<String, Object> errMap, String errSting, String sheetName, int row) {
+        if (!errMap.containsKey(errSting)) {
+            errMap.put(errSting, new ImportErrMessage(sheetName, row + "銆�"));
+        } else {
+            ImportErrMessage importErrMessage1 = (ImportErrMessage) errMap.get(errSting);
+            importErrMessage1.setLineNumber(importErrMessage1.getLineNumber() + row + "銆�");
+        }
+    }
+    /**
+     * 浠嶦xcel鐨勬棩鏈熷瓧娈靛鍏ユ暟鎹�
+     *  1. 濡傛灉Excel鍗曞厓鏍间负绌猴紝鍒欒繑鍥瀗ull
+     *  2. 鏃犺Excel鍗曞厓鏍兼牸寮忔槸浠�涔堬紝鍙鏄棩鏈熷唴瀹癸紝閮借兘瀵煎叆锛岃繑鍥濪ate瀵硅薄锛堝崟鍏冩牸涓烘枃鏈牸寮忔椂鏀寔yyyy-mm-dd銆亂yyy/mm/dd銆亂yyy.mm.dd鍙妝yyy骞碝M鏈坉d鏃ユ牸寮忥級
+     *  3. 濡傛灉Excel鍗曞厓鏍煎唴瀹逛笉鏄棩鏈燂紝鍒欐姏鍑篍xcelImportException
+     */
+    public static Date getDateFromCell(Cell cell) throws ExcelImportException {
+        if (cell == null) return null;
+
+        //瀹氫箟鏃堕棿鏍煎紡
+        List<String> DateFormatList = new ArrayList<>();
+        DateFormatList.add("yyyy骞碝M鏈坉d鏃�");
+        DateFormatList.add("yyyy/MM/dd");
+        DateFormatList.add("yyyy-MM-dd");
+        DateFormatList.add("yyyy.MM.dd");
+        List<SimpleDateFormat> formatList = new ArrayList<>();
+        formatList.add(new SimpleDateFormat("yyyy骞碝M鏈坉d鏃�"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+        formatList.add(new SimpleDateFormat("yyyy/MM/dd"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+        formatList.add(new SimpleDateFormat("yyyy-MM-dd"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+        formatList.add(new SimpleDateFormat("yyyy.MM.dd"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+
+        switch (cell.getCellType()) {
+            case STRING:
+                String strValue = cell.getStringCellValue();
+                if (StringUtils.isBlank(strValue)) return null;
+
+                strValue = strValue.trim();
+                try {
+                    for (int i = 0; i < DateFormatList.size(); i++) {
+                        if (ImportUtil.isDate(strValue, DateFormatList.get(i))) {
+                            Date date = formatList.get(i).parse(strValue);
+                            if (date != null) {
+                                return date;
+                            }
+                        }
+                    }
+                } catch (ParseException pe) {
+                    throw new ExcelImportException("璇ュ崟鍏冩牸鏃ユ湡鏍煎紡涓嶆纭�");
+                }
+                throw new ExcelImportException("璇ュ崟鍏冩牸鏃ユ湡鏍煎紡涓嶆纭�");
+
+            case NUMERIC:
+                if (DateUtil.isCellDateFormatted(cell)) {
+                    // 姝e父鏃ユ湡鏍煎紡
+                    Date date = cell.getDateCellValue();
+                    return date;
+                } else {
+                    // 妫�鏌ユ槸鍚︽槸鏁板瓧褰㈠紡鐨勬棩鏈�
+                    double numericValue = cell.getNumericCellValue();
+                    if (isLikelyExcelDate(numericValue)) {
+                        // 灏咵xcel鏁板瓧鏃ユ湡杞崲涓篔ava鏃ユ湡
+                        Date date = DateUtil.getJavaDate(numericValue);
+                        return date;
+                    } else {
+                        // 纭疄鏄櫘閫氭暟瀛�
+                        throw new ExcelImportException("璇ュ崟鍏冩牸鍐呭涓嶆槸鏃ユ湡");
+                    }
+                }
+
+            default:
+                throw new ExcelImportException("璇ュ崟鍏冩牸鍐呭涓嶆槸鏃ユ湡");
+        }
+    }
+
+    public static String getDateStrFromCell(Cell cell) throws ExcelImportException {
+        if (cell == null) return null;
+
+        //瀹氫箟鏃堕棿鏍煎紡
+        List<String> DateFormatList = new ArrayList<>();
+        DateFormatList.add("yyyy骞碝M鏈坉d鏃�");
+        DateFormatList.add("yyyy/MM/dd");
+        DateFormatList.add("yyyy-MM-dd");
+        DateFormatList.add("yyyy.MM.dd");
+        List<SimpleDateFormat> formatList = new ArrayList<>();
+        formatList.add(new SimpleDateFormat("yyyy骞碝M鏈坉d鏃�"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+        formatList.add(new SimpleDateFormat("yyyy/MM/dd"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+        formatList.add(new SimpleDateFormat("yyyy-MM-dd"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+        formatList.add(new SimpleDateFormat("yyyy.MM.dd"));//灏忓啓鐨刴m琛ㄧず鐨勬槸鍒嗛挓
+
+        switch (cell.getCellType()) {
+            case STRING:
+                String strValue = cell.getStringCellValue();
+                if (StringUtils.isBlank(strValue)) return null;
+
+                strValue = strValue.trim();
+                try {
+                    for (int i = 0; i < DateFormatList.size(); i++) {
+                        if (ImportUtil.isDate(strValue, DateFormatList.get(i))) {
+                            Date date = formatList.get(i).parse(strValue);
+                            if (date != null) {
+                                return dateToString(date);
+                            }
+                        }
+                    }
+                } catch (ParseException pe) {
+                    throw new ExcelImportException("璇ュ崟鍏冩牸鏃ユ湡鏍煎紡涓嶆纭�");
+                }
+                throw new ExcelImportException("璇ュ崟鍏冩牸鏃ユ湡鏍煎紡涓嶆纭�");
+
+            case NUMERIC:
+                if (DateUtil.isCellDateFormatted(cell)) {
+                    // 姝e父鏃ユ湡鏍煎紡
+                    Date date = cell.getDateCellValue();
+                    return dateToString(date);
+                } else {
+                    // 妫�鏌ユ槸鍚︽槸鏁板瓧褰㈠紡鐨勬棩鏈�
+                    double numericValue = cell.getNumericCellValue();
+                    if (isLikelyExcelDate(numericValue)) {
+                        // 灏咵xcel鏁板瓧鏃ユ湡杞崲涓篔ava鏃ユ湡
+                        Date date = DateUtil.getJavaDate(numericValue);
+                        return dateToString(date);
+                    } else {
+                        // 纭疄鏄櫘閫氭暟瀛�
+                        throw new ExcelImportException("璇ュ崟鍏冩牸鍐呭涓嶆槸鏃ユ湡");
+                    }
+                }
+
+            default:
+                throw new ExcelImportException("璇ュ崟鍏冩牸鍐呭涓嶆槸鏃ユ湡");
+        }
+    }
+    /**
+     * 鍒ゆ柇鏁板�兼槸鍚﹀彲鑳芥槸Excel鏃ユ湡
+     * Excel鏃ユ湡閫氬父鍦ㄤ竴瀹氳寖鍥村唴锛堝36526-73051瀵瑰簲2000-21000骞达級
+     */
+    private static boolean isLikelyExcelDate(double value) {
+        // Excel鏃ユ湡浠�1900-01-01寮�濮嬶紝搴忓垪鍙�1
+        // 鐜颁唬鏃ユ湡閫氬父鍦�36526-73051鑼冨洿鍐�
+        return value >= 36526 && value < 73051;
+    }
+
+    private static String dateToString (Date date) {
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        return sdf.format(date);
+    }
+
 }
diff --git a/src/main/java/com/example/server/utils/NumToDate.java b/src/main/java/com/example/server/utils/NumToDate.java
new file mode 100644
index 0000000..807b554
--- /dev/null
+++ b/src/main/java/com/example/server/utils/NumToDate.java
@@ -0,0 +1,133 @@
+package com.example.server.utils;
+
+import com.example.server.progressTrack.model.DjJdgzDismantTrack;
+import com.example.server.progressTrack.model.DjJdgzNetworkLevel3;
+import com.example.server.progressTrack.model.DjJdgzNetworkLevel3List;
+import com.example.server.progressTrack.model.DjJdgzTrackRecord;
+import com.example.server.progressTrack.service.DjJdgzDismantTrackService;
+import com.example.server.progressTrack.service.DjJdgzNetworkLevel3ListService;
+import com.example.server.progressTrack.service.DjJdgzNetworkLevel3Service;
+import com.example.server.progressTrack.service.DjJdgzTrackRecordService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.poi.ss.usermodel.DateUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.sql.Connection;
+import java.sql.DriverManager;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+import java.util.regex.Pattern;
+
+@Component
+public class NumToDate {
+    @Autowired
+    private DjJdgzNetworkLevel3ListService level3ListService;
+    @Autowired
+    private DjJdgzTrackRecordService recordService;
+    @Autowired
+    private DjJdgzDismantTrackService dismantTrackService;
+
+    public void numDate() {
+        Pattern numPattern = Pattern.compile("^\\d+$");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+        List<DjJdgzNetworkLevel3List> list = level3ListService.getList(null);
+        List<DjJdgzTrackRecord> list1 = recordService.getList(null, null, null, null, null, null, null, null);
+        List<DjJdgzDismantTrack> list2 = dismantTrackService.getList(null, null);
+        for (DjJdgzNetworkLevel3List item : list) {
+            String requiredCompletionTime = item.getRequiredCompletionTime();
+            String actualCompletion = item.getActualCompletion();
+            //鍒ゆ柇鏄惁涓烘暟瀛�
+            boolean matches = false;
+            boolean matches2 = false;
+            if (StringUtils.isNotBlank(requiredCompletionTime)) {
+                matches = numPattern.matcher(requiredCompletionTime).matches();
+            }
+            if (StringUtils.isNotBlank(actualCompletion)) {
+                matches2 = numPattern.matcher(actualCompletion).matches();
+            }
+
+            if (matches) {
+                //瀵规暟瀛楄繘琛岃浆鎹㈡棩鏈焬yyy-mm-dd
+                Date date = excelToDateUsingPOI(Double.parseDouble(requiredCompletionTime));
+                String formatDate = sdf.format(date);
+                item.setRequiredCompletionTime(formatDate);
+                level3ListService.update(item);
+            }
+            if (matches2) {
+                Date date2 = excelToDateUsingPOI(Double.parseDouble(actualCompletion));
+                String formatDate2 = sdf.format(date2);
+                item.setActualCompletion(formatDate2);
+                level3ListService.update(item);
+            }
+        }
+        for (DjJdgzTrackRecord item : list1) {
+            String estimatedCompletionTime = item.getEstimatedCompletionTime();
+            boolean matches = false;
+            if (StringUtils.isNotBlank(estimatedCompletionTime)) {
+                matches = numPattern.matcher(estimatedCompletionTime).matches();
+            }
+            if (matches) {
+                //瀵规暟瀛楄繘琛岃浆鎹㈡棩鏈焬yyy-mm-dd
+                Date date = excelToDateUsingPOI(Double.parseDouble(estimatedCompletionTime));
+                String formatDate = sdf.format(date);
+                item.setEstimatedCompletionTime(formatDate);
+                recordService.update(item);
+            }
+        }
+        for (DjJdgzDismantTrack item : list2) {
+            String dismantTime = item.getDismantTime();
+            String exitTime = item.getExitTime();
+            String warehouseTime = item.getWarehouseTime();
+            String returnWeightTime = item.getReturnWeightTime();
+            //鍒ゆ柇鏄惁涓烘暟瀛�
+            boolean matches = false;
+            boolean matches2 = false;
+            boolean matches3 = false;
+            boolean matches4 = false;
+            if (StringUtils.isNotBlank(dismantTime)) {
+                matches = numPattern.matcher(dismantTime).matches();
+            }
+            if (StringUtils.isNotBlank(exitTime)) {
+                matches2 = numPattern.matcher(exitTime).matches();
+            }
+            if (StringUtils.isNotBlank(warehouseTime)) {
+                matches3 = numPattern.matcher(warehouseTime).matches();
+            }
+            if (StringUtils.isNotBlank(returnWeightTime)) {
+                matches4 = numPattern.matcher(returnWeightTime).matches();
+            }
+            if (matches) {
+                //瀵规暟瀛楄繘琛岃浆鎹㈡棩鏈焬yyy-mm-dd
+                Date date = excelToDateUsingPOI(Double.parseDouble(dismantTime));
+                String formatDate = sdf.format(date);
+                item.setDismantTime(formatDate);
+                dismantTrackService.update(item);
+            }
+            if (matches2) {
+                Date date2 = excelToDateUsingPOI(Double.parseDouble(exitTime));
+                String formatDate2 = sdf.format(date2);
+                item.setExitTime(formatDate2);
+                dismantTrackService.update(item);
+            }
+            if (matches3) {
+                Date date3 = excelToDateUsingPOI(Double.parseDouble(warehouseTime));
+                String formatDate3 = sdf.format(date3);
+                item.setWarehouseTime(formatDate3);
+                dismantTrackService.update(item);
+            }
+            if (matches4) {
+                Date date4 = excelToDateUsingPOI(Double.parseDouble(returnWeightTime));
+                String formatDate4 = sdf.format(date4);
+                item.setReturnWeightTime(formatDate4);
+                dismantTrackService.update(item);
+            }
+        }
+    }
+
+    public static Date excelToDateUsingPOI(double excelDate) {
+        return DateUtil.getJavaDate(excelDate);
+    }
+
+}
diff --git a/src/main/resources/mapper/progressTrack/DjJdgzDismantTrackDao.xml b/src/main/resources/mapper/progressTrack/DjJdgzDismantTrackDao.xml
index 1401c75..f03847a 100644
--- a/src/main/resources/mapper/progressTrack/DjJdgzDismantTrackDao.xml
+++ b/src/main/resources/mapper/progressTrack/DjJdgzDismantTrackDao.xml
@@ -9,8 +9,10 @@
     <select id="getList" resultType="com.example.server.progressTrack.model.DjJdgzDismantTrack">
         select *
         from dj_jdgz_dismant_track
-        where LEVEL3_NETWORK_ID = ${level3Id}
-        and is_delete = 0
+        where is_delete = 0
+        <if test="level3Id!=null">
+            and LEVEL3_NETWORK_ID = ${level3Id}
+        </if>
         <if test="cabinId!=null">
             and cabin_id = ${cabinId}
         </if>
diff --git a/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml b/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml
index 102d3af..5f49518 100644
--- a/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml
+++ b/src/main/resources/mapper/progressTrack/DjJdgzTrackRecordDao.xml
@@ -86,7 +86,9 @@
         AND e.IS_DELETE = 0
         AND f.IS_DELETE = 0
         AND g.IS_DELETE = 0
+        <if test="level1NetworkId!=null">
         AND g.id = ${level1NetworkId}
+        </if>
         <if test="deptId!=null">
             and c.dept_id = ${deptId}
         </if>

--
Gitblit v1.9.1