From 4d15fa8051884869c5b612d0641508874cc71811 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 29 七月 2026 11:04:15 +0800
Subject: [PATCH] feat(erp): 集成SRM供应商服务并优化ERP模块功能

---
 yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java |   19 +++++++++++++++++--
 1 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java
index 6dfecb7..3442060 100644
--- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java
+++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/json/databind/TimestampLocalDateTimeDeserializer.java
@@ -2,12 +2,14 @@
 
 import tools.jackson.core.JacksonException;
 import tools.jackson.core.JsonParser;
+import tools.jackson.core.JsonToken;
 import tools.jackson.databind.DeserializationContext;
 import tools.jackson.databind.ValueDeserializer;
 
 import java.time.Instant;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
+import java.time.format.DateTimeFormatter;
 
 /**
  * 鍩轰簬鏃堕棿鎴崇殑 LocalDateTime 鍙嶅簭鍒楀寲鍣�
@@ -18,10 +20,23 @@
 
     public static final TimestampLocalDateTimeDeserializer INSTANCE = new TimestampLocalDateTimeDeserializer();
 
+    private static final DateTimeFormatter DEFAULT_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+
     @Override
     public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws JacksonException {
-        // 灏� Long 鏃堕棿鎴筹紝杞崲涓� LocalDateTime 瀵硅薄
-        return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault());
+        // 鏁板瓧绫诲瀷锛氫綔涓烘椂闂存埑澶勭悊
+        if (p.currentToken() == JsonToken.VALUE_NUMBER_INT) {
+            return LocalDateTime.ofInstant(Instant.ofEpochMilli(p.getValueAsLong()), ZoneId.systemDefault());
+        }
+        // 瀛楃涓茬被鍨嬶細鍏堝皾璇曚綔涓烘椂闂存埑瑙f瀽锛屽啀鎸夋棩鏈熸牸寮忚В鏋�
+        String text = p.getValueAsString();
+        try {
+            long millis = Long.parseLong(text);
+            return LocalDateTime.ofInstant(Instant.ofEpochMilli(millis), ZoneId.systemDefault());
+        } catch (NumberFormatException e) {
+            // 涓嶆槸绾暟瀛楋紝鎸夐粯璁ゆ棩鏈熸牸寮忚В鏋�
+        }
+        return LocalDateTime.parse(text, DEFAULT_FORMATTER);
     }
 
 }

--
Gitblit v1.9.3