From b8bf2507bc7b23c90bc6dc71ea2460e277d3800a Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期五, 30 一月 2026 19:23:44 +0800
Subject: [PATCH] 导入测试

---
 java110-bean/src/main/java/com/java110/dto/importData/Vtil.java |   86 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 deletions(-)

diff --git a/java110-bean/src/main/java/com/java110/dto/importData/Vtil.java b/java110-bean/src/main/java/com/java110/dto/importData/Vtil.java
index e54a7d1..3d46854 100644
--- a/java110-bean/src/main/java/com/java110/dto/importData/Vtil.java
+++ b/java110-bean/src/main/java/com/java110/dto/importData/Vtil.java
@@ -1,10 +1,36 @@
 package com.java110.dto.importData;
 
+import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
+import java.time.format.ResolverStyle;
+import java.time.temporal.TemporalAdjusters;
+import java.util.Calendar;
+import java.util.Locale;
+
 public class Vtil {
     public static String defaultValue(Object o) {
         return o == null ? "" : o.toString();
     }
 
+    public static String defaultValueToNumber(Object obj) {
+        // 1. 澶勭悊null鍊�
+        if (obj == null) {
+            return "";
+        }
+
+        // 2. 灏嗗璞¤浆涓哄瓧绗︿覆锛堝吋瀹瑰悇绉嶇被鍨嬶級
+        String originalStr = String.valueOf(obj);
+
+        // 3. 浣跨敤姝e垯琛ㄨ揪寮忔浛鎹㈡墍鏈夐潪鏁板瓧瀛楃
+        // \\D 鍖归厤鎵�鏈夐潪鏁板瓧瀛楃锛堢瓑浠蜂簬 [^0-9]锛�
+        String numericStr = originalStr.replaceAll("\\D", "");
+
+        // 4. 杩斿洖澶勭悊鍚庣殑绾暟瀛楀瓧绗︿覆
+        return numericStr;
+    }
 
     public static Double defaultDouble(Object o) {
         return o == null || o.equals("") ? null : Double.parseDouble(defaultValue(o));
@@ -31,5 +57,65 @@
         return str + "-";
     }
 
+    public static String defaultValueToDate(Object o) {
+        // 绌哄�肩洿鎺ヨ繑鍥瀗ull锛堝師鏈夐�昏緫锛�
+        if (o == null || o.toString().isEmpty()) {
+            return null;
+        }
 
+        try {
+            // 灏濊瘯灏嗗璞¤浆鎹负鏁板瓧锛堝吋瀹笶xcel鏃ユ湡搴忓垪鍙凤紝濡�44747锛�
+            double excelDateNum = Double.parseDouble(o.toString());
+
+            // Excel 1900鏃ユ湡绯荤粺鍩哄噯锛堜慨姝i棸鏃ug锛屽疄闄呭熀鍑嗘槸1899-12-30锛�
+            Calendar calendar = Calendar.getInstance();
+            calendar.set(1899, 11, 30, 0, 0, 0); // 鏈堜唤浠�0寮�濮嬶紝11浠h〃12鏈�
+            calendar.set(Calendar.MILLISECOND, 0);
+
+            // 璁$畻瀵瑰簲鐨勫疄闄呮棩鏈�
+            calendar.add(Calendar.DAY_OF_MONTH, (int) excelDateNum);
+
+            // 鏍煎紡鍖栦负yyyy-MM-dd鐨勬棩鏈熷瓧绗︿覆
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+            return sdf.format(calendar.getTime());
+        } catch (NumberFormatException e) {
+            // 闈炴暟瀛楃被鍨嬶紝鎵ц鍘熸湁閫昏緫杩斿洖toString()
+            return o.toString();
+        }
+    }
+
+
+    public static String defaultValueToDate(Object o, String state) {
+        // 绌哄�肩洿鎺ヨ繑鍥瀗ull锛堝師鏈夐�昏緫锛�
+        if (o == null || o.toString().isEmpty() || o.toString().equals("0")) {
+            return null;
+        }
+
+        String input = o.toString().trim();
+        // 瀹氫箟骞存湀鏍煎紡鐨勮В鏋愬櫒
+        DateTimeFormatter ymFormatter = DateTimeFormatter.ofPattern("yyyy/M")
+                .withLocale(Locale.CHINA)
+                .withResolverStyle(ResolverStyle.LENIENT); // 瀹芥澗瑙f瀽锛屽吋瀹瑰悇绉嶅悎娉曟牸寮�
+
+        try {
+            // 鍏堣В鏋愪负YearMonth锛堜笓闂ㄥ鐞嗗勾鏈堢殑绫伙紝涓嶄細缂哄皯鏃ユ湡缁村害锛�
+            YearMonth yearMonth = YearMonth.parse(input, ymFormatter);
+
+            // 鏍规嵁state鍙傛暟澶勭悊鏃ユ湡
+            if ("start".equals(state)) {
+                // state涓簊tart鏃惰繑鍥炲綋鏈堢涓�澶�
+                LocalDate firstDay = yearMonth.atDay(1);
+                return firstDay.toString();
+            } else if ("end".equals(state)) {
+                // state涓篹nd鏃惰繑鍥炲綋鏈堟渶鍚庝竴澶�
+                LocalDate lastDay = yearMonth.atEndOfMonth();
+                return lastDay.toString();
+            }
+        } catch (DateTimeParseException e) {
+            // 涓嶆槸20xx/01鏍煎紡锛屽拷鐣ヨВ鏋愬紓甯革紝鎵ц鍘熸湁閫昏緫
+        }
+
+        // 闈炵洰鏍囨牸寮忔垨state涓嶅尮閰嶆椂锛岃繑鍥炲師濮嬪瓧绗︿覆锛堝師鏈夐�昏緫锛�
+        return input;
+    }
 }

--
Gitblit v1.8.0