группировка registry с учетом market и groupId для шага 7 активной сессии
This commit is contained in:
parent
1bb489e3cb
commit
1110278d6a
1 changed files with 11 additions and 8 deletions
|
|
@ -14,6 +14,7 @@ import org.springframework.stereotype.Component;
|
|||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.company.CompanyRoleSet;
|
||||
import ru.clearing.classes.statics.data.registry.Registry;
|
||||
import ru.spcex.clearing.component.GroupRgsKey;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.service.AssetTrio;
|
||||
import ru.spcex.clearing.session.stage.util.RegistryUtil;
|
||||
|
|
@ -56,15 +57,16 @@ public class PaymentStateMarkService {
|
|||
pb.equals("registryStatus", RegistryStatus.OK.getKey())
|
||||
);
|
||||
Collection<Registry> claimsAndLiabilities = rgsImdg.getCollectionObjectsByPredicate(prdct);
|
||||
Map<Long, List<Registry>> groups = claimsAndLiabilities
|
||||
Map<GroupRgsKey, List<Registry>> groups = claimsAndLiabilities
|
||||
.stream()
|
||||
.filter(rgs -> rgs.getValueDate() != null)
|
||||
.filter(rgs -> rgs.getSettlementDate() != null)
|
||||
.filter(rgs -> rgs.getSettlementDate().equals(rgs.getValueDate()))
|
||||
.collect(Collectors.groupingBy(Registry::getGroupId));
|
||||
.collect(Collectors.groupingBy(registry -> new GroupRgsKey(registry.getGroupId(), registry.getMarket())));
|
||||
log.debug("found {} ({} groups) CM*T/LM*T by {}", claimsAndLiabilities.size(), groups.size(), prdct.toString());
|
||||
for (Map.Entry<Long, List<Registry>> group : groups.entrySet()) {
|
||||
Long groupId = group.getKey();
|
||||
for (Map.Entry<GroupRgsKey, List<Registry>> group : groups.entrySet()) {
|
||||
Long groupId = group.getKey().groupId();
|
||||
String market = group.getKey().market();
|
||||
Function<RegistryDesignation, Registry> findRgs = (rd) -> group.getValue()
|
||||
.stream()
|
||||
.filter(rgs -> rd.equalsByKey(rgs.getRegistryDesignation()))
|
||||
|
|
@ -73,7 +75,7 @@ public class PaymentStateMarkService {
|
|||
Registry cm_t = findRgs.apply(RegistryDesignation.T);
|
||||
Registry lm_t = findRgs.apply(RegistryDesignation.O);
|
||||
if (cm_t == null || lm_t == null) {
|
||||
log.warn("groupId {}, coudn't find CM*T or LM*T", groupId);
|
||||
log.warn("groupId/market {}/{}, coudn't find CM*T or LM*T", groupId, market);
|
||||
continue;
|
||||
}
|
||||
CompanyRoleSet initRole = cmpRoleImdg.getFirstObjectBySQL(
|
||||
|
|
@ -84,7 +86,8 @@ public class PaymentStateMarkService {
|
|||
)
|
||||
);
|
||||
if (initRole == null) {
|
||||
log.debug("groupId {}, initiator (lm*t.id={}) does not have ODEP role", groupId, lm_t.getId());
|
||||
log.debug("groupId/market {}/{}, initiator (lm*t.id={}) does not have ODEP role", groupId,
|
||||
market, lm_t.getId());
|
||||
continue;
|
||||
}
|
||||
Registry dm_v = cm_t.clone();
|
||||
|
|
@ -95,8 +98,8 @@ public class PaymentStateMarkService {
|
|||
dm_v.setBalance(cm_t.getBalance());
|
||||
dm_v.setRegistryStatus(RegistryStatus.PROC.getKey());
|
||||
rgsImdg.insert(dm_v);
|
||||
log.debug("groupId {}, lm*t.id={}, cm*t.id={} created dm*v.id={}",
|
||||
groupId, lm_t.getId(), cm_t.getId(), dm_v.getId());
|
||||
log.debug("groupId/market {}/{}, lm*t.id={}, cm*t.id={} created dm*v.id={}",
|
||||
groupId, market, lm_t.getId(), cm_t.getId(), dm_v.getId());
|
||||
Optional<AssetTrio> assetsFound = assets.searchMoneyByAccAndCompany(cm_t.getCompanyId(), cm_t.getAccountId());
|
||||
assetsFound.ifPresent(assetTrio
|
||||
-> assets.process(assetTrio.a__b(), assetTrio.a__t(), assetTrio.a__f(), BigDecimal.ZERO));
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue