From e301d5c4e6de0aca423c54481d100e6ca2886b01 Mon Sep 17 00:00:00 2001
From: jinlin <jinlin>
Date: 星期六, 08 十一月 2025 22:57:12 +0800
Subject: [PATCH] 清洗数据库日期错误,并且导入日期通用化处理
---
src/main/java/com/example/server/utils/NumToDate.java | 133 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 133 insertions(+), 0 deletions(-)
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..a2cf117
--- /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.getAll();
+ List<DjJdgzTrackRecord> list1 = recordService.getAll();
+ List<DjJdgzDismantTrack> list2 = dismantTrackService.getAll();
+ 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);
+ }
+
+}
--
Gitblit v1.9.1