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