This commit is contained in:
parent
76ba3463cf
commit
3ec26e9d91
2 changed files with 73 additions and 27 deletions
|
|
@ -17,7 +17,10 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
|
|
@ -83,8 +86,8 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
PairRegistryId pairRegistryId = entry.getKey();
|
||||
List<Registry> groupedRegistry = entry.getValue();
|
||||
try {
|
||||
if (groupedRegistry.size() > 2 || groupedRegistry.isEmpty()) {
|
||||
log.warn("Invalid OM_T and TM_T registries for account = {} and session_id = {}. Registries with id = [{}] was skipped",
|
||||
if (groupedRegistry.isEmpty()) {
|
||||
log.warn("Empty OM_T and TM_T registries for account = {} and session_id = {}. Registries with id = [{}] was skipped",
|
||||
pairRegistryId.getAccount(),
|
||||
pairRegistryId.getSessionId(),
|
||||
groupedRegistry.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(", "))
|
||||
|
|
@ -92,18 +95,33 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
continue;
|
||||
}
|
||||
|
||||
Registry tmtRegistry = null;
|
||||
Registry omtRegistry = null;
|
||||
List<Registry> tmtRegistries = new ArrayList<>();
|
||||
List<Registry> omtRegistries = new ArrayList<>();
|
||||
Registry registry = null;
|
||||
for (Registry currRegistry : groupedRegistry) {
|
||||
registry = currRegistry;
|
||||
if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation())) omtRegistry = currRegistry;
|
||||
if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation())) tmtRegistry = currRegistry;
|
||||
if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation()))
|
||||
omtRegistries.add(currRegistry);
|
||||
if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation()))
|
||||
tmtRegistries.add(currRegistry);
|
||||
}
|
||||
|
||||
if (tmtRegistry != null && omtRegistry != null && !Objects.equals(tmtRegistry.getTradingCode(), omtRegistry.getTradingCode())) {
|
||||
log.warn("Invalid TM_T and OM_T registry pair, tradingCode not equals. Registry pair was skipped");
|
||||
continue;
|
||||
boolean invalid = false;
|
||||
if (!tmtRegistries.isEmpty() || !omtRegistries.isEmpty()) {
|
||||
String sourceTradingCode = tmtRegistries.iterator().next().getTradingCode();
|
||||
for (Registry currRegistry : tmtRegistries) {
|
||||
if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue;
|
||||
invalid = true;
|
||||
log.warn("Invalid TM_T registries set, tradingCode not equals. Registries was skipped");
|
||||
break;
|
||||
}
|
||||
for (Registry currRegistry : omtRegistries) {
|
||||
if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue;
|
||||
invalid = true;
|
||||
log.warn("Invalid OM_T registries set, tradingCode not equals. Registries was skipped");
|
||||
break;
|
||||
}
|
||||
if (invalid) continue;
|
||||
}
|
||||
|
||||
Session session = sessionImdg.getSingleObjectByID(registry.getSessionId());
|
||||
|
|
@ -115,8 +133,14 @@ public class KSRepCashNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
ksRepCashNettoReport.setAccount(registry.getAccount());
|
||||
ksRepCashNettoReport.setDate(nowDate);
|
||||
|
||||
BigDecimal tmtBalance = tmtRegistry != null && tmtRegistry.getBalance() != null ? tmtRegistry.getBalance() : BigDecimal.ZERO;
|
||||
BigDecimal omtBalance = omtRegistry != null && omtRegistry.getBalance() != null ? omtRegistry.getBalance() : BigDecimal.ZERO;
|
||||
BigDecimal tmtBalance = BigDecimal.ZERO;
|
||||
BigDecimal omtBalance = BigDecimal.ZERO;
|
||||
for (Registry tmtRegistry : tmtRegistries) {
|
||||
if (tmtRegistry.getBalance() != null) tmtBalance = tmtBalance.add(tmtRegistry.getBalance());
|
||||
}
|
||||
for (Registry omtRegistry : omtRegistries) {
|
||||
if (omtRegistry.getBalance() != null) omtBalance = omtBalance.add(omtRegistry.getBalance());
|
||||
}
|
||||
ksRepCashNettoReport.setValue(tmtBalance.subtract(omtBalance));
|
||||
|
||||
rows.add(ksRepCashNettoReport);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,10 @@ import ru.spcex.platform.imdg.api.predicate.specific.RegistryCodeSqlBuilder;
|
|||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Component
|
||||
|
|
@ -80,8 +83,8 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
PairRegistryId pairRegistryId = entry.getKey();
|
||||
List<Registry> groupedRegistry = entry.getValue();
|
||||
try {
|
||||
if (groupedRegistry.size() > 2 || groupedRegistry.isEmpty()) {
|
||||
log.warn("Invalid OS_T and TS_T registries for account = {} and sessionId = {}. Registries with id = [{}] was skipped",
|
||||
if (groupedRegistry.isEmpty()) {
|
||||
log.warn("Empty OS_T and TS_T registries for account = {} and sessionId = {}. Registries with id = [{}] was skipped",
|
||||
pairRegistryId.getAccount(),
|
||||
pairRegistryId.getSessionId(),
|
||||
groupedRegistry.stream().map(r -> String.valueOf(r.getId())).collect(Collectors.joining(", "))
|
||||
|
|
@ -89,20 +92,33 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
continue;
|
||||
}
|
||||
|
||||
Registry tstRegistry = null;
|
||||
Registry ostRegistry = null;
|
||||
List<Registry> tstRegistries = new ArrayList<>();
|
||||
List<Registry> ostRegistries = new ArrayList<>();
|
||||
Registry registry = null;
|
||||
for (Registry currRegistry : groupedRegistry) {
|
||||
registry = currRegistry;
|
||||
if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation())) ostRegistry = currRegistry;
|
||||
if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation())) tstRegistry = currRegistry;
|
||||
if (RegistryDesignation.O.equalsByKey(currRegistry.getRegistryDesignation()))
|
||||
ostRegistries.add(currRegistry);
|
||||
if (RegistryDesignation.T.equalsByKey(currRegistry.getRegistryDesignation()))
|
||||
tstRegistries.add(currRegistry);
|
||||
}
|
||||
|
||||
if ((tstRegistry != null && ostRegistry != null) &&
|
||||
(!Objects.equals(tstRegistry.getTradingCode(), ostRegistry.getTradingCode()) ||
|
||||
!Objects.equals(tstRegistry.getSecuritySymbol(), ostRegistry.getSecuritySymbol()))) {
|
||||
log.warn("Invalid TS_T and OS_T registry pair, account/tradingCode/securityId not equals. Registry pair was skipped");
|
||||
continue;
|
||||
boolean invalid = false;
|
||||
if (!tstRegistries.isEmpty() || !ostRegistries.isEmpty()) {
|
||||
String sourceTradingCode = tstRegistries.iterator().next().getTradingCode();
|
||||
for (Registry currRegistry : tstRegistries) {
|
||||
if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue;
|
||||
invalid = true;
|
||||
log.warn("Invalid TS_T registries set, tradingCode not equals. Registries was skipped");
|
||||
break;
|
||||
}
|
||||
for (Registry currRegistry : ostRegistries) {
|
||||
if (sourceTradingCode.equals(currRegistry.getTradingCode())) continue;
|
||||
invalid = true;
|
||||
log.warn("Invalid OS_T registries set, tradingCode not equals. Registries was skipped");
|
||||
break;
|
||||
}
|
||||
if (invalid) continue;
|
||||
}
|
||||
|
||||
KSRepDepoNettoReport ksRepDepoNettoReport = new KSRepDepoNettoReport();
|
||||
|
|
@ -115,9 +131,15 @@ public class KSRepDepoNettoReportBuilder extends CSVReportBuilder<SessionIdParam
|
|||
Session session = sessionImdg.getSingleObjectByID(registry.getSessionId());
|
||||
if (session != null) ksRepDepoNettoReport.setSessionDate(session.getCreated());
|
||||
|
||||
BigDecimal tmtBalance = tstRegistry != null && tstRegistry.getBalance() != null ? tstRegistry.getBalance() : BigDecimal.ZERO;
|
||||
BigDecimal omtBalance = ostRegistry != null && ostRegistry.getBalance() != null ? ostRegistry.getBalance() : BigDecimal.ZERO;
|
||||
ksRepDepoNettoReport.setValue(tmtBalance.subtract(omtBalance));
|
||||
BigDecimal tstBalance = BigDecimal.ZERO;
|
||||
BigDecimal ostBalance = BigDecimal.ZERO;
|
||||
for (Registry tstRegistry : tstRegistries) {
|
||||
if (tstRegistry.getBalance() != null) tstBalance = tstBalance.add(tstRegistry.getBalance());
|
||||
}
|
||||
for (Registry ostRegistry : ostRegistries) {
|
||||
if (ostRegistry.getBalance() != null) ostBalance = ostBalance.add(ostRegistry.getBalance());
|
||||
}
|
||||
ksRepDepoNettoReport.setValue(tstBalance.subtract(ostBalance));
|
||||
|
||||
rows.add(ksRepDepoNettoReport);
|
||||
} catch (Throwable e) {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue