etreschenkov 2026-03-13 11:33:58 +03:00
parent 5f9b82df73
commit ca9f1086db
2 changed files with 24 additions and 19 deletions

View file

@ -139,28 +139,32 @@ public enum ProviderMemberCategoryValidationRule implements IValidationRule<Imdg
ClearingMemberCategory category = categoryImdg.getSingleObjectByID(categoryReq.getId());
ImdgPredicateBuilder predicateBuilder = registryImdg.predicateBuilder();
ImdgPredicate registryPredicate = predicateBuilder.and(
predicateBuilder.equals("companyId", category.getCompanyId()),
predicateBuilder.regex("registryCode", "^O.{2}T"),
predicateBuilder.or(
predicateBuilder.and(
predicateBuilder.not(predicateBuilder.equals("registryStatus", RegistryStatus.CLRD.getKey())),
predicateBuilder.equals("clearingDate", LocalDate.now())
),
predicateBuilder.greater("settlementDate", LocalDate.now())
)
);
Collection<Long> registryIds = registryImdg.getCollectionIdsByPredicate(registryPredicate);
Company company = companyImdg.getSingleObjectByID(category.getCompanyId());
if (!registryIds.isEmpty()) {
return Optional.of(new EnumMessage(
CompanyErrors.FoundUnfulfilledLiabilities,
company.getShortName())
ClearingCategory clearingCategory = IEnumKey.getEnumByKey(ClearingCategory.class, category.getClearingMemberCategory());
if (clearingCategory == ClearingCategory.P) {
ImdgPredicateBuilder predicateBuilder = registryImdg.predicateBuilder();
ImdgPredicate registryPredicate = predicateBuilder.and(
predicateBuilder.equals("companyId", category.getCompanyId()),
predicateBuilder.regex("registryCode", "^O.{2}T"),
predicateBuilder.or(
predicateBuilder.and(
predicateBuilder.not(predicateBuilder.equals("registryStatus", RegistryStatus.CLRD.getKey())),
predicateBuilder.equals("clearingDate", LocalDate.now())
),
predicateBuilder.greater("settlementDate", LocalDate.now())
)
);
Collection<Long> registryIds = registryImdg.getCollectionIdsByPredicate(registryPredicate);
Company company = companyImdg.getSingleObjectByID(category.getCompanyId());
if (!registryIds.isEmpty()) {
return Optional.of(new EnumMessage(
CompanyErrors.FoundUnfulfilledLiabilities,
company.getShortName())
);
}
}
return Optional.empty();
}
}
}

View file

@ -234,6 +234,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
if (ClearingCategory.B.equalsByKey(clearingMemberCategory)
|| ClearingCategory.I.equalsByKey(clearingMemberCategory)
|| ClearingCategory.V.equalsByKey(clearingMemberCategory)
|| ClearingCategory.P.equalsByKey(clearingMemberCategory)
) {
svc = MKR.getKey();
} else if (ClearingCategory.C.equalsByKey(clearingMemberCategory)
@ -246,7 +247,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
ru.spcex.platform.enumeration.Service serviceForCMC(ClearingCategory clearingCategory) {
switch (Objects.requireNonNull(clearingCategory)) {
case B, I, V:
case B, I, V, P:
return MKR;
case C, F:
return FOND;