This commit is contained in:
parent
c624c29adf
commit
33f9789268
1 changed files with 44 additions and 25 deletions
|
|
@ -51,6 +51,7 @@ import ru.spcex.platform.imdg.api.ImdgProvider;
|
|||
import ru.spcex.platform.utils.collection.Pair;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
import ru.spcex.platform.utils.number.BigDecimalUtil;
|
||||
import static ru.spcex.platform.utils.number.BigDecimalUtil.safeBD;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
|
|
@ -429,6 +430,7 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
private void updateByImporter(BaseRequest<OrderCurrencyStatusUpdateRequest> req) {
|
||||
OrderCurrencyStatusUpdateRequest payload = req.getRequestPayload();
|
||||
for (Long orderId : payload.getIds()) {
|
||||
try {
|
||||
SOrders sOrder = sOrdersImdg.getSingleObjectByID(orderId);
|
||||
OrderCurrency orderCurrency = orderCurrencyImdg.getSingleObjectByID(orderId);
|
||||
if (orderCurrency == null) {
|
||||
|
|
@ -440,14 +442,18 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
continue;
|
||||
}
|
||||
orderCurrency.setStatus(status.getKey());
|
||||
orderCurrency.setExchangeOrderId(Long.valueOf(sOrder.getExchangeOrderNum()));
|
||||
orderCurrency.setExchangeOrderId(normalize(sOrder.getExchangeOrderNum()));
|
||||
orderCurrency.setUpdated(Instant.now());
|
||||
orderCurrencyImdg.update(orderCurrency);
|
||||
} catch (Exception e) {
|
||||
log.error("Error updating status by orderNum {} with error:{}", orderId, ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
private void updateByFix(BaseRequest<OrderCurrencyStatusUpdateRequest> req) {
|
||||
OrderCurrencyStatusUpdateRequest payload = req.getRequestPayload();
|
||||
for (Long orderId : payload.getIds()) {
|
||||
try {
|
||||
log.debug("Process updating status by orderNum {}", orderId);
|
||||
SOrders sOrder = sOrdersImdg.getSingleObjectByPredicate(
|
||||
sOrdersImdg.predicateBuilder().equals("orderNum", orderId)
|
||||
|
|
@ -458,9 +464,12 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
continue;
|
||||
}
|
||||
orderCurrency.setStatus(status.getKey());
|
||||
orderCurrency.setExchangeOrderId(Long.valueOf(sOrder.getExchangeOrderNum()));
|
||||
orderCurrency.setExchangeOrderId(normalize(sOrder.getExchangeOrderNum()));
|
||||
orderCurrency.setUpdated(Instant.now());
|
||||
orderCurrencyImdg.update(orderCurrency);
|
||||
} catch (Exception e) {
|
||||
log.error("Error updating status by orderNum {} with error:{}", orderId, ExceptionUtils.getStackTrace(e));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -486,4 +495,14 @@ public class OrderCurrencyListener extends QueueConsumer implements Initializing
|
|||
default -> null;
|
||||
};
|
||||
}
|
||||
|
||||
private Long normalize(String value) {
|
||||
String[] parts = value.split("-", 3);
|
||||
|
||||
if (parts.length != 3) {
|
||||
throw new IllegalArgumentException("Ожидается формат: digits-text-digits");
|
||||
}
|
||||
String digits = parts[1] + parts[2];
|
||||
return Long.valueOf(digits);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue