trade-importer http://jira.mfd.msk:8088/browse/CLS-731
This commit is contained in:
parent
1a2b284bd9
commit
a0f99a2dc6
1 changed files with 17 additions and 0 deletions
|
|
@ -10,6 +10,7 @@ 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.clearing.classes.statics.data.scheduler.ClearingCalendar;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.STradesImportedRequest;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
|
|
@ -25,8 +26,10 @@ import java.sql.Date;
|
|||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Timestamp;
|
||||
import java.time.DayOfWeek;
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicLong;
|
||||
|
|
@ -34,6 +37,7 @@ import java.util.function.Consumer;
|
|||
import java.util.function.Supplier;
|
||||
|
||||
import static ru.spcex.clearing.platform.messaging.domain.Consts.S_TRADES_IMPORTED;
|
||||
import static ru.spcex.clearing.scheduler.ISchedulerChecker.isWorkDayByTradingCalendar;
|
||||
import static ru.spcex.clearing.trade.importer.error.TradeImporterError.sTradesNotValid;
|
||||
|
||||
@Service
|
||||
|
|
@ -42,6 +46,7 @@ public class TradeImporterService {
|
|||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
private final Imdg<STrades> sTradesImdg;
|
||||
private final Imdg<Market> marketImdg;
|
||||
private final Imdg<ClearingCalendar> clearingCalendarImdg;
|
||||
private final JdbcTemplate jdbcTemplate;
|
||||
private final Supplier<KafkaSender> kafka;
|
||||
private final IMessageResolver messageResolver;
|
||||
|
|
@ -54,6 +59,7 @@ public class TradeImporterService {
|
|||
imdgProvider.waitAvailable();
|
||||
this.sTradesImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_STrades, STrades.class);
|
||||
this.marketImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Market, Market.class);
|
||||
this.clearingCalendarImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingCalendar, ClearingCalendar.class);
|
||||
this.jdbcTemplate = jdbcTemplate;
|
||||
this.kafka = kafka;
|
||||
this.messageResolver = messageResolver;
|
||||
|
|
@ -65,6 +71,17 @@ public class TradeImporterService {
|
|||
}
|
||||
|
||||
public synchronized void process(boolean byCommand) {
|
||||
if (!byCommand) {
|
||||
LocalDate today = LocalDate.now();
|
||||
log.debug("Verify trading day {} by calendar", today);
|
||||
ClearingCalendar calendar = clearingCalendarImdg.getFirstObjectByFieldValues(Map.of("clearingDate", today));
|
||||
boolean isWeekend = Arrays.asList(DayOfWeek.SATURDAY, DayOfWeek.SUNDAY).contains(today.getDayOfWeek());
|
||||
boolean isTradingDay = calendar == null ? !isWeekend : isWorkDayByTradingCalendar(calendar, isWeekend);
|
||||
if (!isTradingDay) {
|
||||
log.trace("Ignore by scheduler no trading day {}", today);
|
||||
return;
|
||||
}
|
||||
}
|
||||
log.info("Start process import STrades from DB. byCommand={}", byCommand);
|
||||
if (log.isDebugEnabled()) {
|
||||
String countQuery = String.format("SELECT count(*) FROM %s.Trades", schema);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue