From b63f41b8a0cfce68770e5cb02c8dd3fd994f0c59 Mon Sep 17 00:00:00 2001
From: chengf <2156125618@qq.com>
Date: 星期二, 22 七月 2025 18:37:54 +0800
Subject: [PATCH] 修改费用导入模块2025/07/22
---
service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java b/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java
index e2ba224..7911e65 100644
--- a/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java
+++ b/service-api/src/main/java/com/java110/api/importData/DefaultImportDataAdapt.java
@@ -10,7 +10,9 @@
import com.java110.utils.util.Assert;
import org.springframework.beans.factory.annotation.Autowired;
+import java.text.ParseException;
import java.text.SimpleDateFormat;
+import java.util.Calendar;
import java.util.Date;
import java.util.List;
@@ -19,6 +21,55 @@
@Autowired
private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+ private static final Date EXCEL_EPOCH;
+
+ static {
+ // 鍒濆鍖朎xcel璧峰鏃ユ湡锛�1899-12-30锛屽搴擡xcel鐨�0澶╋級
+ Calendar cal = Calendar.getInstance();
+ cal.set(1899, Calendar.DECEMBER, 30, 0, 0, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ EXCEL_EPOCH = cal.getTime();
+ }
+
+ /**
+ * 灏咵xcel鏃ユ湡鏁板�硷紙濡�45734.0锛夎浆鎹负Date瀵硅薄
+ * @param excelDate Excel鏃ユ湡鏁板��
+ * @return 瀵瑰簲鐨凞ate瀵硅薄
+ */
+ public static Date doubleToDate(double excelDate) {
+ // 澶勭悊Excel 1900骞撮棸骞撮敊璇紙Excel閿欒鍦板皢1900骞磋涓洪棸骞达級
+ long days = (long) Math.floor(excelDate);
+ if (days >= 60) { // 1900-03-01鍙婁箣鍚庣殑鏃ユ湡闇�瑕佸噺1澶�
+ days--;
+ }
+
+ // 璁$畻鎬绘绉掓暟锛堝ぉ鏁伴儴鍒� + 鏃堕棿閮ㄥ垎锛�
+ long totalMillis = (long)(days * 86400000L) // 1澶� = 86400000姣
+ + (long)((excelDate - days) * 86400000L);
+
+ // 浠庡熀鍑嗘棩鏈熷紑濮嬬疮鍔犳绉掓暟
+ return new Date(EXCEL_EPOCH.getTime() + totalMillis);
+ }
+
+ /**
+ * 澶勭悊Excel鏃ユ湡瀛楃涓诧紙濡�"45734.0"锛夛紝杞崲涓�"yyyy-MM-dd"鏍煎紡
+ * @param strDate Excel鏃ユ湡鏁板�煎瓧绗︿覆
+ * @return 鏍煎紡鍖栧悗鐨勬棩鏈熷瓧绗︿覆
+ * @throws ParseException 杞崲澶辫触鏃舵姏鍑�
+ */
+ public String handleExcelDateString(String strDate){
+ // 1. 灏嗗瓧绗︿覆杞崲涓篸ouble锛堝"45734.0" -> 45734.0锛�
+ double excelDateValue = Double.parseDouble(strDate);
+
+ // 2. 灏咵xcel鏁板�艰浆鎹负Date瀵硅薄
+ Date tDate = doubleToDate(excelDateValue);
+
+ // 3. 鏍煎紡鍖栦负"yyyy-MM-dd"
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ return sdf.format(tDate);
+ }
+
+
@Autowired
private IUserInnerServiceSMO userInnerServiceSMOImpl;
protected boolean hasSpecialCharacters(String str) {
--
Gitblit v1.8.0