From 6f379fe01f8b60fac0e638009b6a3fe3276c4a4c Mon Sep 17 00:00:00 2001 From: luotaiqian <1147642922@qq.com> Date: Tue, 7 Jul 2026 16:42:52 +0800 Subject: [PATCH] fix bug orgId not send --- .../QualFilingPersonnelChangeAddCmd.java | 3 ++ .../QualFilingPersonnelChangeUpdateCmd.java | 6 +++ .../DateToLocalDateTimeDeserializer.java | 46 +++++++++++++++++++ 3 files changed, 55 insertions(+) create mode 100644 safety-eval-client/src/main/java/org/qinan/safetyeval/client/common/jackson/DateToLocalDateTimeDeserializer.java diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeAddCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeAddCmd.java index cf0c3ef..52e4c70 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeAddCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeAddCmd.java @@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.qinan.safetyeval.client.common.jackson.DateToLocalDateTimeDeserializer; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -72,12 +73,14 @@ public class QualFilingPersonnelChangeAddCmd implements Serializable { */ @ApiModelProperty(value = "出生日期") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonDeserialize(using = DateToLocalDateTimeDeserializer.class) private LocalDateTime birthDate; /** * 参加工作时间 */ @ApiModelProperty(value = "参加工作时间") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonDeserialize(using = DateToLocalDateTimeDeserializer.class) private LocalDateTime joinWorkDate; /** * 身份证号 diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeUpdateCmd.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeUpdateCmd.java index cd88557..09b002c 100644 --- a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeUpdateCmd.java +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/change/request/QualFilingPersonnelChangeUpdateCmd.java @@ -1,8 +1,10 @@ package org.qinan.safetyeval.client.change.request; import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.qinan.safetyeval.client.common.jackson.DateToLocalDateTimeDeserializer; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; @@ -71,11 +73,15 @@ public class QualFilingPersonnelChangeUpdateCmd implements Serializable { * 出生日期 */ @ApiModelProperty(value = "出生日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonDeserialize(using = DateToLocalDateTimeDeserializer.class) private LocalDateTime birthDate; /** * 参加工作时间 */ @ApiModelProperty(value = "参加工作时间") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @JsonDeserialize(using = DateToLocalDateTimeDeserializer.class) private LocalDateTime joinWorkDate; /** * 身份证号 diff --git a/safety-eval-client/src/main/java/org/qinan/safetyeval/client/common/jackson/DateToLocalDateTimeDeserializer.java b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/common/jackson/DateToLocalDateTimeDeserializer.java new file mode 100644 index 0000000..cae5f13 --- /dev/null +++ b/safety-eval-client/src/main/java/org/qinan/safetyeval/client/common/jackson/DateToLocalDateTimeDeserializer.java @@ -0,0 +1,46 @@ +package org.qinan.safetyeval.client.common.jackson; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * 兼容前端仅传递日期(yyyy-MM-dd)的 LocalDateTime 反序列化器。 + *

+ * 当入参为 "yyyy-MM-dd" 时补全为当天 00:00:00; + * 当入参为标准日期时间(如 "yyyy-MM-dd HH:mm:ss" / "yyyy-MM-dd'T'HH:mm:ss")时按原值解析。 + * + * @Author: ltq + * @date 2026-07-07 + */ +public class DateToLocalDateTimeDeserializer extends JsonDeserializer { + + private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + private static final DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + + @Override + public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException { + String text = p.getText(); + if (text == null || text.trim().isEmpty()) { + return null; + } + String value = text.trim(); + try { + return LocalDateTime.parse(value); + } catch (Exception ignore) { + // 继续尝试其它格式 + } + try { + return LocalDateTime.parse(value, DATE_TIME_FORMATTER); + } catch (Exception ignore) { + // 继续尝试日期格式 + } + // 仅日期格式: 补全为当天 00:00:00 + return LocalDate.parse(value, DATE_FORMATTER).atStartOfDay(); + } +}