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()); ClearingMemberCategory category = categoryImdg.getSingleObjectByID(categoryReq.getId());
ImdgPredicateBuilder predicateBuilder = registryImdg.predicateBuilder(); ClearingCategory clearingCategory = IEnumKey.getEnumByKey(ClearingCategory.class, category.getClearingMemberCategory());
ImdgPredicate registryPredicate = predicateBuilder.and( if (clearingCategory == ClearingCategory.P) {
predicateBuilder.equals("companyId", category.getCompanyId()), ImdgPredicateBuilder predicateBuilder = registryImdg.predicateBuilder();
predicateBuilder.regex("registryCode", "^O.{2}T"), ImdgPredicate registryPredicate = predicateBuilder.and(
predicateBuilder.or( predicateBuilder.equals("companyId", category.getCompanyId()),
predicateBuilder.and( predicateBuilder.regex("registryCode", "^O.{2}T"),
predicateBuilder.not(predicateBuilder.equals("registryStatus", RegistryStatus.CLRD.getKey())), predicateBuilder.or(
predicateBuilder.equals("clearingDate", LocalDate.now()) predicateBuilder.and(
), predicateBuilder.not(predicateBuilder.equals("registryStatus", RegistryStatus.CLRD.getKey())),
predicateBuilder.greater("settlementDate", LocalDate.now()) 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())
); );
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(); return Optional.empty();
} }
} }
} }

View file

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