fixed 'section' field for strades uploading into clearing
This commit is contained in:
parent
ec55bd90cb
commit
fe18b289a3
1 changed files with 25 additions and 1 deletions
|
|
@ -8,6 +8,7 @@ import org.springframework.scheduling.annotation.EnableScheduling;
|
|||
import org.springframework.scheduling.annotation.Scheduled;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.clearing.classes.statics.data.misc.Market;
|
||||
import ru.clearing.classes.statics.data.misc.STrades;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.STradesImportedRequest;
|
||||
|
|
@ -16,6 +17,7 @@ import ru.spcex.platform.imdg.api.Imdg;
|
|||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.enumeration.IMessageResolver;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Date;
|
||||
|
|
@ -26,6 +28,7 @@ import java.time.Instant;
|
|||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.function.Consumer;
|
||||
import java.util.function.Supplier;
|
||||
|
||||
import static ru.spcex.clearing.platform.messaging.domain.Consts.S_TRADES_IMPORTED;
|
||||
|
|
@ -36,6 +39,7 @@ import static ru.spcex.clearing.trade.importer.error.TradeImporterError.sTradesN
|
|||
public class TradeImporterService {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<STrades> sTradesImdg;
|
||||
private final Imdg<Market> marketImdg;
|
||||
private final JdbcTemplate jdbcTemplate;
|
||||
private final Supplier<KafkaSender> kafka;
|
||||
private final IMessageResolver messageResolver;
|
||||
|
|
@ -47,6 +51,7 @@ public class TradeImporterService {
|
|||
public TradeImporterService(ImdgProvider imdgProvider, JdbcTemplate jdbcTemplate, Supplier<KafkaSender> kafka, IMessageResolver messageResolver) {
|
||||
imdgProvider.waitAvailable();
|
||||
this.sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
|
||||
this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class);
|
||||
this.jdbcTemplate = jdbcTemplate;
|
||||
this.kafka = kafka;
|
||||
this.messageResolver = messageResolver;
|
||||
|
|
@ -66,7 +71,7 @@ public class TradeImporterService {
|
|||
int created = 0;
|
||||
int updated = 0;
|
||||
for (STrades tradesDb : tradesFromDB) {
|
||||
if (isValidTrades(tradesDb)) {
|
||||
if (isValidTrades(tradesDb) && fillNessessaryFields(tradesDb)) {
|
||||
STrades sTrades = getSTradesFromImdg(tradesDb, sTradesImdg);
|
||||
if (sTrades != null) {
|
||||
// Обновление всех полей объекта из БД
|
||||
|
|
@ -97,6 +102,25 @@ public class TradeImporterService {
|
|||
kafka.get().sendRequestToQueue(S_TRADES_IMPORTED, sTradesImportedRequest);
|
||||
}
|
||||
|
||||
/**
|
||||
* returns OK - everything is kk
|
||||
*/
|
||||
private boolean fillNessessaryFields(STrades tradesDb) {
|
||||
Consumer<String> logErr = (st) -> log.error("strades {} {} {}", tradesDb.getTradeDate(), tradesDb.getTradeNum(), st);
|
||||
try {
|
||||
Market market = marketImdg.getSingleObjectBySQL("code = '%s'".formatted(tradesDb.getClassCode()));
|
||||
if (market == null) {
|
||||
logErr.accept("couldn't find market.section for classCode " + tradesDb.getClassCode());
|
||||
return false;
|
||||
}
|
||||
tradesDb.setSection(market.getSection());
|
||||
return true;
|
||||
} catch (Exception e) {
|
||||
logErr.accept(ExceptionUtils.getStackTrace(e));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public STrades getSTradesFromImdg(STrades tradesDb, Imdg<STrades> sTradesImdg) {
|
||||
return sTradesImdg.getSingleObjectByFieldValues(Map.of("tradeDate", tradesDb.getTradeDate(),
|
||||
"tradeNum", tradesDb.getTradeNum(),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue