This commit is contained in:
parent
85a4cc95fe
commit
7f8e2dd027
2 changed files with 29 additions and 5 deletions
|
|
@ -29,11 +29,12 @@ import ru.spcex.platform.imdg.api.Imdg;
|
|||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
import ru.spcex.platform.utils.error.ValidationException;
|
||||
import ru.spcex.platform.utils.log.ExceptionUtils;
|
||||
import ru.spcex.platform.utils.text.TextUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.function.BiFunction;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
/**
|
||||
* Обрабатывает MultiCompanyRequest и распределяет сложный объект по...
|
||||
|
|
@ -119,6 +120,10 @@ public class MultiCompanyService
|
|||
boolean txOk = false; // todo IMDG transaction
|
||||
synchronized (companyService) {
|
||||
try {
|
||||
//часть в companyService
|
||||
req.setCompanySymbols(
|
||||
Stream.concat(req.getCompanySymbols().stream(), additionalSymbols(req.getCompany())).collect(Collectors.toList())
|
||||
);
|
||||
companyId = getCompanyIdForCompanySymbols(req.getUuid(), req.getCompany());
|
||||
log.debug("For request {} (uuid {}) company {}.", baseRequest.getId(), req.getUuid(), companyId == null ? "not found" : ("found, id=" + companyId));
|
||||
|
||||
|
|
@ -154,7 +159,7 @@ public class MultiCompanyService
|
|||
for (CompanySymbolNewRequest partRequest : req.getCompanySymbols()) {
|
||||
CompanySymbols existSymbol = findCompanySymbols(partRequest);
|
||||
if (existSymbol == null) {
|
||||
log.trace("For company[{}] do new companySymbol", companyId);
|
||||
log.trace("For company[{}] do new companySymbol", companyId);
|
||||
Long id = companySymbolService.create(partRequest);
|
||||
} else {
|
||||
log.trace("For company[{}] do update companySymbol[{}]", companyId, existSymbol.getId());
|
||||
|
|
@ -205,6 +210,24 @@ public class MultiCompanyService
|
|||
return null;
|
||||
}
|
||||
|
||||
private Stream<CompanySymbolNewRequest> additionalSymbols(CompanyNewRequest companyNewReq) {
|
||||
BiFunction<String, String, Optional<CompanySymbolNewRequest>> symbolCreation = (companySymbol, companySymbolValue) -> {
|
||||
if (companySymbolValue == null || TextUtil.isEmpty(companySymbolValue)) {
|
||||
return Optional.empty();
|
||||
}
|
||||
CompanySymbolNewRequest companySymbolNewRequest = new CompanySymbolNewRequest();
|
||||
companySymbolNewRequest.setCompanySymbol(companySymbol);
|
||||
companySymbolNewRequest.setCompanySymbolValue(companySymbolValue);
|
||||
return Optional.of(companySymbolNewRequest);
|
||||
};
|
||||
return Stream.of(symbolCreation.apply(CompanySymbol.TRDC.getKey(), companyNewReq.getTradingCode()),
|
||||
symbolCreation.apply(CompanySymbol.CLRC.getKey(), companyNewReq.getClearingCode()),
|
||||
symbolCreation.apply(CompanySymbol.INTC.getKey(), companyNewReq.getInitiatorCode()),
|
||||
symbolCreation.apply(CompanySymbol.RGRC.getKey(), companyNewReq.getRegistrationCode()))
|
||||
.filter(Optional::isPresent)
|
||||
.map(Optional::get);
|
||||
}
|
||||
|
||||
void validateReply(Long companyId, String process, RequestInfoUpdate replyI) {
|
||||
if (replyI != null && replyI.getMessage() != null) {
|
||||
log.warn("Error process {} for companyId={}: {}", process, companyId, replyI.getMessage());
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ public enum CompanySymbol implements IEnumKey {
|
|||
UUID("UUID"),
|
||||
TRDC("TRDC"),
|
||||
CLRC("CLRC"),
|
||||
INTC("INTC"),
|
||||
RGRC("RGRC"),
|
||||
LICB("LICB"),
|
||||
LICR("LICR"),
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue