This commit is contained in:
parent
8b7e0faf95
commit
59ab5145a8
2 changed files with 39 additions and 30 deletions
|
|
@ -1,26 +1,5 @@
|
|||
package ru.spcex.clearing.lim.exporter.services;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.lim.exporter.config.SFTPConfig;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.LimExportedRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.NotificationNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.platform.enumeration.ObjectType;
|
||||
import ru.spcex.platform.enumeration.Priority;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.enumeration.ServiceStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.math.BigDecimal;
|
||||
|
|
@ -30,14 +9,37 @@ import java.time.LocalDateTime;
|
|||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.util.StringUtils;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.clearing.classes.statics.data.registry.TradingClearingRegistry;
|
||||
import ru.clearing.classes.statics.data.security.Security;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.lim.exporter.config.SFTPConfig;
|
||||
import ru.spcex.clearing.platform.messaging.domain.Consts;
|
||||
import static ru.spcex.clearing.platform.messaging.domain.Consts.LIM_EXPORTED;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.LimExportedRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.utilities.NotificationNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.serialization.LogFormatter;
|
||||
import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import ru.spcex.platform.enumeration.ObjectType;
|
||||
import ru.spcex.platform.enumeration.Priority;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.enumeration.ServiceStatus;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.specific.SecuritySelector;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
|
||||
public abstract class AbstractExporterService {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
protected final Imdg<Registry> registryImdg;
|
||||
private final List<String> validStatus = List.of(ServiceStatus.Active.getKey(), ServiceStatus.Reopened.getKey());
|
||||
private final Imdg<TradingClearingRegistry> tradingClearingRegistryImdg;
|
||||
private final SecuritySelector<Security> securitySelector;
|
||||
private final DateTimeFormatter dtFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
||||
private final SFTPConfig.LimGateway gateway;
|
||||
private final KafkaSender kafkaSender;
|
||||
|
|
@ -48,6 +50,7 @@ public abstract class AbstractExporterService {
|
|||
this.kafkaSender = kafkaSender;
|
||||
this.registryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
|
||||
this.tradingClearingRegistryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TradingClearingRegistry, TradingClearingRegistry.class);
|
||||
this.securitySelector = new SecuritySelector<>(imdgProvider, Security.class);
|
||||
}
|
||||
|
||||
public abstract Collection<String> getLimFileRows();
|
||||
|
|
@ -125,6 +128,14 @@ public abstract class AbstractExporterService {
|
|||
return false;
|
||||
}
|
||||
|
||||
protected boolean checkNotBlockedAndBalanceNonZero(Registry registry) {
|
||||
if (!checkNotBlocked(registry)) return false;
|
||||
Security security = securitySelector.selectSecurityById(registry.getSecurityId());
|
||||
return security == null
|
||||
|| !WorkflowStatus.Active.equalsByKey(security.getWorkflowStatus())
|
||||
|| !registry.getBalance().equals(BigDecimal.ZERO);
|
||||
}
|
||||
|
||||
protected BigDecimal sumNegativeABS(Collection<Registry> registries) {
|
||||
if (registries == null || registries.isEmpty()) return BigDecimal.ZERO;
|
||||
BigDecimal result = BigDecimal.ZERO;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
package ru.spcex.clearing.lim.exporter.services;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -7,18 +11,12 @@ import ru.clearing.classes.statics.data.registry.Registry;
|
|||
import ru.spcex.clearing.lim.exporter.config.LimFormat;
|
||||
import ru.spcex.clearing.lim.exporter.config.SFTPConfig;
|
||||
import ru.spcex.clearing.platform.messaging.service.sender.KafkaSender;
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.AS_F;
|
||||
import ru.spcex.platform.enumeration.Section;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import static ru.spcex.platform.enumeration.RegistryTradingParams.AS_F;
|
||||
|
||||
@Service
|
||||
public class SecurityExporterService extends AbstractExporterService {
|
||||
private final Logger log = LoggerFactory.getLogger(getClass());
|
||||
|
|
@ -51,7 +49,7 @@ public class SecurityExporterService extends AbstractExporterService {
|
|||
log.debug("Selected {} registriesA.", registriesA.size());
|
||||
|
||||
for (Registry registry : registriesA) {
|
||||
if (checkNotBlocked(registry)) {
|
||||
if (checkNotBlockedAndBalanceNonZero(registry)) {
|
||||
limFileRows.add(getRow(registry));
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue