etreschenkov 2026-04-14 11:33:35 +03:00
parent db2079821c
commit d72e0b79c5
3 changed files with 26 additions and 4 deletions

View file

@ -0,0 +1,22 @@
package ru.spcex.clearing.gatewayapi.config.deserializers;
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.LocalDateTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeV2Deserializer extends JsonDeserializer<LocalDateTime> {
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss.SSS");
@Override
public LocalDateTime deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
String date = p.getText();
if (date == null || date.trim().length() == 0) {
return null;
}
return LocalDateTime.parse(date, formatter);
}
}

View file

@ -6,7 +6,7 @@ import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateDeserializer;
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateTimeDeserializer;
import ru.spcex.clearing.gatewayapi.config.deserializers.LocalDateTimeV2Deserializer;
public class CurrencyRate {
@ -32,11 +32,11 @@ public class CurrencyRate {
private BigDecimal price;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonDeserialize(using = LocalDateTimeV2Deserializer.class)
@JsonProperty("update_date_time")
private LocalDateTime updateDateTime;
@JsonDeserialize(using = LocalDateTimeDeserializer.class)
@JsonDeserialize(using = LocalDateTimeV2Deserializer.class)
@JsonProperty("source_date_time")
private LocalDateTime sourceDateTime;

View file

@ -121,7 +121,7 @@ public class RatesMessageListener extends QueueConsumer implements InitializingB
ImdgPredicateBuilder predicateBuilder = ratesImdg.predicateBuilder();
Collection<Long> rateIds = ratesImdg.getCollectionIdsByPredicate(
predicateBuilder.and(
predicateBuilder.equals("date", elem.getDate()),
predicateBuilder.equals("valueDate", elem.getDate()),
predicateBuilder.equals("currency", elem.getBaseCurrencyLetterCode())
));
if (rateIds.isEmpty()) {