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