http://jira.mfd.msk:8088/browse/CLS-883 [ClearingMemberCategory delete + cancel relation] bugfix

This commit is contained in:
ialbert 2025-07-21 16:09:40 +03:00
parent 8b2640ecd5
commit 33e0bb5047

View file

@ -1,5 +1,12 @@
package ru.spcex.clearing.company.service;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.apache.kafka.clients.consumer.Consumer;
import org.apache.kafka.clients.producer.Producer;
@ -25,30 +32,21 @@ import ru.spcex.clearing.util.security.UserRoleVerification;
import ru.spcex.clearing.util.services.RequestHelper;
import ru.spcex.clearing.validation.common.ValidationHelper;
import ru.spcex.platform.enumeration.ClearingCategory;
import static ru.spcex.platform.enumeration.Service.FOND;
import static ru.spcex.platform.enumeration.Service.MKR;
import ru.spcex.platform.enumeration.ServiceProduct;
import ru.spcex.platform.enumeration.ServiceStatus;
import static ru.spcex.platform.enumeration.ServiceStatus.Closed;
import ru.spcex.platform.enumeration.WorkflowStatus;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.ImdgId;
import ru.spcex.platform.imdg.api.ImdgProvider;
import ru.spcex.platform.imdg.api.ImdgTransaction;
import ru.spcex.platform.utils.enumeration.IEnumKey;
import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey;
import ru.spcex.platform.utils.error.ValidationException;
import ru.spcex.platform.utils.validation.IValidator;
import java.time.Instant;
import java.util.Collection;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.function.Function;
import java.util.stream.Collectors;
import static ru.spcex.platform.enumeration.Service.FOND;
import static ru.spcex.platform.enumeration.Service.MKR;
import static ru.spcex.platform.enumeration.ServiceStatus.Closed;
import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey;
@Service
public class RelationService extends QueueConsumer implements InitializingBean {
protected static final Long SPVB_ID = 1L; // СПВБ
@ -287,6 +285,19 @@ public class RelationService extends QueueConsumer implements InitializingBean {
.collect(Collectors.toList());
}
Collection<String> selectCompanyClearingMemberCategory(ImdgTransaction tx, Long companyId, Long deletedCmcId) {
Imdg<ClearingMemberCategory> cmcMap = tx == null ? clearingMemberCategoryImdg : tx.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class);
Collection<ClearingMemberCategory> companyCategory = cmcMap.getCollectionObjectsByFieldValues(
Map.of("companyId", companyId)
);
return companyCategory.stream()
.filter(cmc -> !cmc.getId().equals(deletedCmcId))
.map(ClearingMemberCategory::getClearingMemberCategory)
.filter(StringUtils::isNotEmpty)
.distinct()
.collect(Collectors.toList());
}
/**
* @param companyId
* @param service
@ -611,7 +622,7 @@ public class RelationService extends QueueConsumer implements InitializingBean {
// serviceStatus = serviceForCMC(clearingCategory).getKey();
// }
Collection<String> companyCMC = selectCompanyClearingMemberCategory(null, companyId);
Collection<String> companyCMC = selectCompanyClearingMemberCategory(null, companyId, clearingMemberCategory.getId());
if (companyCMC.contains(clearingMemberCategory.getClearingMemberCategory())) {
// never
log.warn("ClearingMemberCategory \"{}\" already exist in set for company {}.", clearingMemberCategory.getClearingMemberCategory(), companyId);