From 8904f9e6005e7e1f3cc06f415fdcde0033c32332 Mon Sep 17 00:00:00 2001
From: zhangherong <571457620@qq.com>
Date: 星期一, 21 七月 2025 20:33:53 +0800
Subject: [PATCH] art: 技术状态鉴定工单-生成逻辑优化

---
 lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java |  121 ++++++++++++++++++++++++++++++++++++++-
 1 files changed, 116 insertions(+), 5 deletions(-)

diff --git a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
index da3f7a3..c702b27 100644
--- a/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
+++ b/lxzn-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java
@@ -5,9 +5,12 @@
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.GregorianCalendar;
+import java.util.TimeZone;
 
 import org.jeecg.common.constant.SymbolConstant;
 import org.springframework.util.StringUtils;
@@ -63,7 +66,25 @@
             return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         }
     };
+    public static ThreadLocal<SimpleDateFormat> hoursAndMinutes = new ThreadLocal<SimpleDateFormat>() {
+        @Override
+        protected SimpleDateFormat initialValue() {
+            return new SimpleDateFormat("HH:mm:ss");
+        }
+    };
+    public static ThreadLocal<SimpleDateFormat> monthFormat = new ThreadLocal<SimpleDateFormat>() {
+        @Override
+        protected SimpleDateFormat initialValue() {
+            return new SimpleDateFormat("yyyy-MM");
+        }
+    };
 
+    public static ThreadLocal<SimpleDateFormat> yearFormat = new ThreadLocal<SimpleDateFormat>() {
+        @Override
+        protected SimpleDateFormat initialValue() {
+            return new SimpleDateFormat("yyyy");
+        }
+    };
     /**
      * 浠ユ绉掕〃绀虹殑鏃堕棿
      */
@@ -182,9 +203,6 @@
     public static String date2Str(SimpleDateFormat dateSdf) {
         synchronized (dateSdf) {
             Date date = getDate();
-            if (null == date) {
-                return null;
-            }
             return dateSdf.format(date);
         }
     }
@@ -671,17 +689,110 @@
         return calendar.get(Calendar.YEAR);
     }
 
+    public static String getDayStr(Date date) {
+        Calendar calendar = getCalendar();
+        calendar.setTime(date);// 鎶婂綋鍓嶆椂闂磋祴缁欐棩鍘�
+        int day = calendar.get(Calendar.DATE);// 鑾峰彇鏃�
+        String dayStr = day < 10 ? "0" + day : day + "";
+        return dayStr;
+    }
+
     /**
      * 灏嗗瓧绗︿覆杞垚鏃堕棿
      * @param str
      * @return
      */
-    public static Date parseDatetime(String str){
+    public static Date parseDatetime(String str) {
         try {
             return datetimeFormat.get().parse(str);
-        }catch (Exception e){
+        } catch (Exception e) {
         }
         return null;
     }
 
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑骞� qsw
+     */
+    public static Date getYearAfter(Date data, int number) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(data);
+        c.add(Calendar.YEAR, number);
+        Date afterTime = c.getTime();
+//        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        String resultDate = f.format(afterTime);
+        return afterTime;
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑澶� qsw
+     */
+    public static Date getDayAfter(Date data, int number) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(data);
+        c.add(Calendar.DAY_OF_MONTH, number);
+        Date afterTime = c.getTime();
+//        SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        String resultDate = f.format(afterTime);
+        return afterTime;
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑鍒嗛挓 qsw
+     */
+    public static Date getMinAfter(Date data, int number) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(data);
+        c.add(Calendar.MINUTE, number);
+        Date afterTime = c.getTime();
+        return afterTime;
+    }
+
+    /**
+     * 鑾峰彇鎸囧畾鏃堕棿涔嬪悗鐨勫嚑灏忔椂 qsw
+     */
+    public static Date getHourAfter(Date data, int number) {
+        Calendar c = Calendar.getInstance();
+        c.setTime(data);
+        c.add(Calendar.HOUR_OF_DAY, number);
+        Date afterTime = c.getTime();
+        return afterTime;
+    }
+
+    public static String getCurrentDateStr() {
+        Date date = new Date();
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        dateFormat.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));// 璁剧疆鍖椾含鏃跺尯
+        return dateFormat.format(date);
+    }
+
+    /**
+     * Date 杞� LocalDate
+     * @param date
+     * @return
+     */
+    public static LocalDate dateToLocalDate(Date date) {
+        return date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+    }
+
+    /**
+     * LocalDate 杞� Date
+     * @param localDate
+     * @return
+     */
+    public static Date localDateToDate(LocalDate localDate) {
+        return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+    }
+
+    /**
+     * 鏃ユ湡鍔犲勾
+     * @param date
+     * @param year
+     * @return
+     */
+    public static Date addYear(Date date, int year) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTime(date);
+        calendar.add(Calendar.YEAR, year);
+        return calendar.getTime();
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3