ialbert 2026-04-28 10:30:37 +03:00
parent 333603c937
commit 195cc41de2
3 changed files with 13 additions and 8 deletions

View file

@ -120,7 +120,7 @@ public class PrecSessionStateMachineConfig extends EnumStateMachineConfigurerAda
);
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
this.inspectionObligationsV2Action.setClearingMemberCategoryFilter(
category -> category == null || !ClearingCategory.P.equalsByKey(category)
ctgrs -> ctgrs.stream().noneMatch(ClearingCategory.P::equalsByKey)
);
}

View file

@ -120,7 +120,7 @@ public class PrpcSessionStateMachineConfig extends EnumStateMachineConfigurerAda
);
this.obligationAdmissionContinueAction.setDataEnum(DataEnum.obligationAdmissionStashedRgs);
this.inspectionObligationsV2Action.setClearingMemberCategoryFilter(
ctgr -> ctgr != null && ClearingCategory.P.equalsByKey(ctgr)
ctgrs -> ctgrs.stream().anyMatch(ClearingCategory.P::equalsByKey)
);
}

View file

@ -10,6 +10,7 @@ import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Consumer;
import java.util.function.Function;
@ -63,7 +64,7 @@ public class InspectionObligationsPrecAction extends ReviseStage1Action {
private final Imdg<ClearingMemberCategory> cmcImdg;
private final ImdgId idGen;
private final IMessageResolver msgResolver = new SimpleMessageResolver();
private Function<String, Boolean> cmcFilter;
private Function<List<String>, Boolean> cmcFilter;
private SessionType sessionType;
private Long sessionId;
@ -75,7 +76,7 @@ public class InspectionObligationsPrecAction extends ReviseStage1Action {
this.idGen = imdgProvider.getImdgIdGenerator();
}
public void setClearingMemberCategoryFilter(Function<String, Boolean> cmcFilter) {
public void setClearingMemberCategoryFilter(Function<List<String>, Boolean> cmcFilter) {
this.cmcFilter = cmcFilter;
}
@ -174,10 +175,14 @@ public class InspectionObligationsPrecAction extends ReviseStage1Action {
ImdgPredicate cmcPrdct = new CategoryByCompanyIdCashingPredicate(
rgs.getCompanyId()
).cashed(cmcImdg.predicateBuilder(), cmcCash);
ClearingMemberCategory cmc = cmcImdg.getSingleObjectByPredicate(cmcPrdct);
if (!cmcFilter.apply(cmc != null ? cmc.getClearingMemberCategory() : null)) {
log.debug("group.id={}, rgs.id={}, company.id={}: category {}, skipping",
entry.getKey().groupId(), rgs.getId(), rgs.getCompanyId(), cmc != null ? cmc.getClearingMemberCategory() : "null");
Collection<ClearingMemberCategory> cmcList = cmcImdg.getCollectionObjectsByPredicate(cmcPrdct);
List<String> categories = cmcList.stream()
.filter(Objects::nonNull)
.map(ClearingMemberCategory::getClearingMemberCategory)
.toList();
if (!cmcFilter.apply(categories)) {
log.debug("group.id={}, rgs.id={}, company.id={}: category size {}, skipping",
entry.getKey().groupId(), rgs.getId(), rgs.getCompanyId(), cmcList.size());
continue;
}
ImdgPredicate am_bPrdct = AssetByTcrCompanyAccountCashedPredicate