---
update
This commit is contained in:
aalehin 2023-05-31 18:51:03 +03:00
parent 750d5c1e76
commit 7b7baf52d3
8 changed files with 92 additions and 29 deletions

View file

@ -15,11 +15,9 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.registry.AdmittedLiabilitiesRegisterNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.platform.enumeration.RegistryCapacity;
import ru.spcex.platform.enumeration.RegistryCode;
import ru.spcex.platform.enumeration.RegistryDesignation;
import ru.spcex.platform.enumeration.RegistryInstrumentType;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgProvider;
@ -27,6 +25,9 @@ import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import static ru.spcex.platform.enumeration.Task.createRegistry_ADLR;
import static ru.spcex.platform.enumeration.Task.createRegistry_GBRR;
@Service
public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -52,14 +53,20 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements
callback(AdmittedLiabilitiesRegisterNewRequest.class)
.setConsumer(this::admittedLiabilitiesRegisterNew)
.forDestination(Consts.REGISTRY_ADMITTED_LIABILITIES_REGISTER_NEW, callbacks::put);
callback(LauncherCommandRequest.class)
.setConsumer(this::admittedLiabilitiesRegisterNew)
.forDestination(createRegistry_ADLR.topic(), callbacks::put);
init();
}
public void admittedLiabilitiesRegisterNew(BaseRequest<AdmittedLiabilitiesRegisterNewRequest> userRequest) {
public void admittedLiabilitiesRegisterNew(BaseRequest<?> userRequest) {
log.debug("AdmittedLiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_ADMITTED_LIABILITIES_REGISTER_NEW);
String sqlConditionForRegistry = getSqlForRegistries();
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry);
if (registries == null) {
log.debug("No registry with such conditions {}", sqlConditionForRegistry);
return;
}
registries.forEach((registry -> {
Collection<AdmittedLiabilitiesRegister> admittedLiabilitiesRegistersBySessionIdAndCompanyId = admittedLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
if (admittedLiabilitiesRegistersBySessionIdAndCompanyId == null || admittedLiabilitiesRegistersBySessionIdAndCompanyId.isEmpty()) {
@ -96,13 +103,18 @@ public class AdmittedLiabilitiesRegisterService extends QueueConsumer implements
private String getSqlForRegistries() {
return String.format("registryDesignation = '%s' and " +
"registryInstrumentType in ('%s','%s') and " +
"registryCapacity = '%s' and " +
"registryCode = '%s'"
"registryUnit = '%s' and " +
"status in ('%s','%s','%s','%s','%s')"
,
RegistryDesignation.O.getKey(),
RegistryInstrumentType.S.getKey(),
RegistryInstrumentType.M.getKey(),
RegistryCapacity.P.getKey(),
RegistryCode.T.getKey());
RegistryCode.T.getKey(),
RegistryStatus.OK.getKey(),
RegistryStatus.NACK.getKey(),
RegistryStatus.UNCV.getKey(),
RegistryStatus.NACC.getKey(),
RegistryStatus.FAIL.getKey()
);
}
}

View file

@ -15,6 +15,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.registry.CoveredLiabilitiesRegisterNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
@ -24,6 +25,9 @@ import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import static ru.spcex.platform.enumeration.Task.createRegistry_ADLR;
import static ru.spcex.platform.enumeration.Task.createRegistry_CDLR;
@Service
public class CoveredLiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -49,15 +53,21 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements
callback(CoveredLiabilitiesRegisterNewRequest.class)
.setConsumer(this::coveredLiabilitiesRegisterNew)
.forDestination(Consts.REGISTRY_COVERED_LIABILITIES_REGISTER_NEW, callbacks::put);
callback(LauncherCommandRequest.class)
.setConsumer(this::coveredLiabilitiesRegisterNew)
.forDestination(createRegistry_CDLR.topic(), callbacks::put);
init();
}
public void coveredLiabilitiesRegisterNew(BaseRequest<CoveredLiabilitiesRegisterNewRequest> userRequest) {
log.debug("CoveredLiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_COVERED_LIABILITIES_REGISTER_NEW);
public void coveredLiabilitiesRegisterNew(BaseRequest<?> userRequest) {
log.debug("CoveredLiabilitiesRegisterNew received");
String sqlConditionForRegistry = getSqlForRegistries();
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry);
//checking for duplicates
if (registries == null) {
log.debug("No registry with such conditions {}", sqlConditionForRegistry);
return;
}
registries.forEach((registry -> {
Collection<CoveredLiabilitiesRegister> coveredLiabilitiesRegisterBySessionIdAndCompanyId = coveredLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
if (coveredLiabilitiesRegisterBySessionIdAndCompanyId == null || coveredLiabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) {
@ -94,15 +104,12 @@ public class CoveredLiabilitiesRegisterService extends QueueConsumer implements
private String getSqlForRegistries() {
return String.format("registryDesignation = '%s' and " +
"registryInstrumentType in ('%s','%s') and " +
"registryCapacity = '%s' and " +
"registryCode = '%s' and" +
"registryStatus in ('%s', '%s')",
"registryUnit = '%s' and" +
"registryStatus = '%s'",
RegistryDesignation.O.getKey(),
RegistryInstrumentType.S.getKey(),
RegistryInstrumentType.M.getKey(),
RegistryCapacity.P.getKey(),
RegistryCode.T.getKey(),
RegistryStatus.OK.getKey(),
RegistryStatus.PROC.getKey());
RegistryStatus.OK.getKey());
}
}

View file

@ -52,6 +52,10 @@ public class DepoBalanceRegisterService extends QueueConsumer implements Initial
String sqlForRegistries = getSqlForRegistries();
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlForRegistries);
log.trace("Started searching depoBalanceRegister in register by companyId, sessionId...");
if (registries == null) {
log.debug("No registry with such conditions {}", sqlForRegistries);
return;
}
registries.forEach((registry -> {
Collection<DepoBalanceRegister> depoBalanceRegisterBySessionIdAndCompanyId = depoBalanceRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
if (depoBalanceRegisterBySessionIdAndCompanyId == null || depoBalanceRegisterBySessionIdAndCompanyId.isEmpty()) {

View file

@ -59,7 +59,10 @@ public class DepoPaymentInstructionRegisterService extends QueueConsumer impleme
public void depoPaymentInstructionRegisterNew(BaseRequest<LauncherCommandRequest> userRequest) {
log.debug("LauncherCommandRequest received from {}", createRegistry_GORR.topic());
Collection<Session> actualSessions = sessionMap.getCollectionObjectsByFieldValues(Map.of("section", "FOND"));
if (actualSessions == null) {
log.debug("No Session with such conditions section = FOND");
return;
}
for (Session session : actualSessions) {
Collection<PaymentInstruction> paymentInstructionBySessionId =
paymentInstructionMap.getCollectionObjectsByFieldValues(Map.of("sessionId", session.getId()));

View file

@ -15,6 +15,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.registry.ExcludeLiabilitiesRegisterNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.platform.enumeration.*;
import ru.spcex.platform.imdg.api.Imdg;
@ -26,6 +27,9 @@ import java.time.LocalDate;
import java.util.Collection;
import java.util.Map;
import static ru.spcex.platform.enumeration.Task.createRegistry_EXLR;
import static ru.spcex.platform.enumeration.Task.createRegistry_GRRT;
@Service
public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -53,15 +57,22 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements
callback(ExcludeLiabilitiesRegisterNewRequest.class)
.setConsumer(this::excludeLiabilitiesRegisterNew)
.forDestination(Consts.REGISTRY_EXCLUDE_LIABILITIES_REGISTER_NEW, callbacks::put);
callback(LauncherCommandRequest.class)
.setConsumer(this::excludeLiabilitiesRegisterNew)
.forDestination(createRegistry_EXLR.topic(), callbacks::put);
init();
}
public void excludeLiabilitiesRegisterNew(BaseRequest<ExcludeLiabilitiesRegisterNewRequest> userRequest) {
log.debug("ExcludeLiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_EXCLUDE_LIABILITIES_REGISTER_NEW);
public void excludeLiabilitiesRegisterNew(BaseRequest<?> userRequest) {
log.debug("ExcludeLiabilitiesRegisterNew received");
String sqlForRegistries = getSqlForRegistries();
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlForRegistries);
registries.forEach((registry -> {
if (registries == null) {
log.debug("No registry with such conditions {}", sqlForRegistries);
return;
}
registries.forEach((registry -> {
Collection<ExcludeLiabilitiesRegister> excludeLiabilitiesRegisterBySessionIdAndCompanyId = excludeLiabilitiesRegisterMap.getCollectionObjectsByFieldValues(Map.of("companyId", registry.getCompanyId(), "sessionId", registry.getSessionId()));
if (excludeLiabilitiesRegisterBySessionIdAndCompanyId == null || excludeLiabilitiesRegisterBySessionIdAndCompanyId.isEmpty()) {
insertExcludeLiabilitiesRegister(registry);
@ -102,7 +113,7 @@ public class ExcludeLiabilitiesRegisterService extends QueueConsumer implements
return String.format("registryDesignation = '%s' and " +
"registryInstrumentType in ('%s','%s') and " +
"registryCapacity = '%s' and " +
"registryCode = '%s' and " +
"registryUnit = '%s' and " +
"registryStatus = '%s'"
,
RegistryDesignation.O.getKey(),

View file

@ -16,6 +16,7 @@ import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.BaseRequest;
import ru.spcex.clearing.platform.messaging.domain.Consts;
import ru.spcex.clearing.platform.messaging.domain.cud.registry.LiabilitiesRegisterNewRequest;
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.LauncherCommandRequest;
import ru.spcex.clearing.platform.messaging.service.QueueConsumer;
import ru.spcex.platform.enumeration.RegistryCapacity;
import ru.spcex.platform.enumeration.RegistryCode;
@ -29,6 +30,9 @@ import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import static ru.spcex.platform.enumeration.Task.createRegistry_EXLR;
import static ru.spcex.platform.enumeration.Task.createRegistry_LBSR;
@Service
public class LiabilitiesRegisterService extends QueueConsumer implements InitializingBean {
private final Logger log = LoggerFactory.getLogger(getClass());
@ -56,11 +60,14 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial
callback(LiabilitiesRegisterNewRequest.class)
.setConsumer(this::liabilitiesRegisterNew)
.forDestination(Consts.REGISTRY_LIABILITIES_REGISTER_NEW, callbacks::put);
callback(LauncherCommandRequest.class)
.setConsumer(this::liabilitiesRegisterNew)
.forDestination(createRegistry_LBSR.topic(), callbacks::put);
init();
}
public void liabilitiesRegisterNew(BaseRequest<LiabilitiesRegisterNewRequest> userRequest) {
public void liabilitiesRegisterNew(BaseRequest<?> userRequest) {
log.debug("LiabilitiesRegisterNewRequest received from {}", Consts.REGISTRY_LIABILITIES_REGISTER_NEW);
String sqlConditionForRegistry = getSqlForRegistries();
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry);
@ -118,7 +125,7 @@ public class LiabilitiesRegisterService extends QueueConsumer implements Initial
return String.format("registryDesignation = '%s' and " +
"registryInstrumentType in ('%s','%s') and " +
"registryCapacity = '%s' and " +
"registryCode = '%s'",
"registryUnit = '%s'",
RegistryDesignation.L.getKey(),
RegistryInstrumentType.S.getKey(),
RegistryInstrumentType.M.getKey(),

View file

@ -7,6 +7,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import ru.clearing.classes.statics.data.account.Account;
import ru.clearing.classes.statics.data.company.Company;
import ru.clearing.classes.statics.data.company.CompanySymbols;
import ru.clearing.classes.statics.data.register.MoneyBalanceRegister;
@ -33,6 +34,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
private final Imdg<Registry> registryMap;
private final Imdg<CompanySymbols> companySymbolsMap;
private final Imdg<Company> companyMap;
private final Imdg<Account> accountMap;
@Autowired
public MoneyBalanceRegisterService(Consumer<String, Object> kafkaQueue,
@ -43,6 +45,7 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
this.registryMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Registry, Registry.class);
this.companySymbolsMap = imdgProvider.getImdg(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
this.companyMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
this.accountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Account, Account.class);
}
@Override
@ -57,7 +60,10 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
log.debug("LauncherCommandRequest received from {}", createRegistry_GBRR.topic());
String sqlConditionForRegistry = getSqlForRegistries();
Collection<Registry> registries = registryMap.getCollectionObjectsBySQL(sqlConditionForRegistry);
//checking for duplicates
if (registries == null) {
log.debug("No registry with such conditions {}", sqlConditionForRegistry);
return;
}
registries.forEach((registry -> {
Collection<MoneyBalanceRegister> moneyBalanceRegisterBySessionIdAndCompanyId = moneyBalanceRegisterMap.getCollectionObjectsByFieldValues(
Map.of(
@ -82,9 +88,21 @@ public class MoneyBalanceRegisterService extends QueueConsumer implements Initia
CompanySymbols companySymbol = companySymbolsMap.getSingleObjectByFieldValues(Map.of("companyId", registry.getCompanyId()));
String setHouseName = company != null ? company.getShortName() : null;
String inn = companySymbol != null ? companySymbol.getCompanySymbolValue() : null;
String accountType = registry.getAccountType();
String account = null;
String infoAccount = null;
if (accountType.equalsIgnoreCase("CLRN")) {
account = registry.getAccount();
Account accountValue = accountMap.getSingleObjectByFieldValues(Map.of("companyId", registry.getCompanyId(), "accountType", "INFO"));
infoAccount = accountValue != null ? accountValue.getAccount() : null;
} else if (accountType.equalsIgnoreCase("INFO")) {
Account accountValue = accountMap.getSingleObjectByFieldValues(Map.of("companyId", registry.getCompanyId(), "accountType", "CLRN"));
account = accountValue != null ? accountValue.getAccount() : null;
infoAccount = registry.getAccount();
}
moneyBalanceRegister.setSetHouseName(setHouseName);
moneyBalanceRegister.setAccount(registry.getAccount());
moneyBalanceRegister.setInfoAccount(registry.getAccountType());
moneyBalanceRegister.setAccount(account);
moneyBalanceRegister.setInfoAccount(infoAccount);
moneyBalanceRegister.setRemainderSum(registry.getCloseBalance());
moneyBalanceRegister.setInn(inn);
moneyBalanceRegister.setSessionId(registry.getSessionId());

View file

@ -6,6 +6,7 @@ public enum RegistryStatus implements IEnumKey {
OK("OK"),
PROC("PROC"),
NACK("NACK"),
NACC("NACC"),
FAIL("FAIL"),
UNCV("UNCV"),
MNG("MNG"),