From d10b79f05e3418fca35c141cb4daec44fdabb164 Mon Sep 17 00:00:00 2001 From: aalehin Date: Thu, 25 May 2023 16:16:45 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-284=20---?= =?UTF-8?q?=20=D0=9E=D1=82=D1=80=D0=B5=D1=84=D0=B0=D0=BA=D1=82=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D0=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../validation/RelationValidationConfig.java | 4 +- .../service/ProfileDocumentService.java | 37 +++++++++---------- .../company/service/RelationService.java | 33 +++++++++-------- 3 files changed, 36 insertions(+), 38 deletions(-) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java index 959f62491..1bc83df1e 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/config/validation/RelationValidationConfig.java @@ -52,7 +52,7 @@ public class RelationValidationConfig { CompanyErrors.WrongFieldValue), DictionaryPresentRule.instance("serviceStatus", RelationNewRequest::getServiceStatus, - IMDGDistributedNames.Map_WorkflowStatusDictionary, + IMDGDistributedNames.Map_ServiceStatusDictionary, WorkflowStatusDictionary.class, CompanyErrors.RequiredFieldEmpty, CompanyErrors.WrongFieldValue) @@ -103,7 +103,7 @@ public class RelationValidationConfig { // CompanyErrors.WrongFieldValue), DictionaryPresentRule.instance("serviceStatus", RelationUpdateRequest::getServiceStatus, - IMDGDistributedNames.Map_WorkflowStatusDictionary, + IMDGDistributedNames.Map_ServiceStatusDictionary, WorkflowStatusDictionary.class, CompanyErrors.RequiredFieldEmpty, CompanyErrors.WrongFieldValue) diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java index b9fd8f5ad..69e18e241 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ProfileDocumentService.java @@ -9,11 +9,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; -import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.profile.ProfileDocument; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; @@ -23,6 +21,7 @@ import ru.spcex.clearing.platform.messaging.domain.cud.company.ProfileDocumentUp import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; 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.DocumentTypes; import ru.spcex.platform.enumeration.WorkflowStatus; @@ -38,11 +37,6 @@ import java.util.function.Function; @Service public class ProfileDocumentService extends QueueConsumer implements InitializingBean { private final Logger log = LoggerFactory.getLogger(getClass()); - private Imdg profileDocumentMap; - private Imdg companyMap; - private ImdgProvider imdgProvider; - private AccountNotificationHelper accountNotificationHelper; - private final CompanyService companyService; private final Function profileDocumentNewRequestValidator; private final Function profileDocumentUpdateRequestValidator; @@ -51,6 +45,10 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin private final UserRoleVerification userRoleVerification; protected IMessageResolver messageResolver; protected RequestHelper requestHelper; + private Imdg profileDocumentMap; + private Imdg companyMap; + private final ImdgProvider imdgProvider; + private final AccountNotificationHelper accountNotificationHelper; @Autowired public ProfileDocumentService(Consumer kafkaQueue, @@ -140,26 +138,25 @@ public class ProfileDocumentService extends QueueConsumer implements Initializin deleteRequest, profileDocumentDeleteRequestValidator ); if (requestInfoUpdate != null) return requestInfoUpdate; - CommonDeleteRequest profileDocumentDeleteRequest = deleteRequest.getRequestPayload(); ProfileDocument profileDocument = profileDocumentMap.getSingleObjectByID(profileDocumentDeleteRequest.getId()); - - Company existCompany = profileDocument.getCompanyId() == null ? null : companyMap.getSingleObjectByID(profileDocument.getCompanyId()); - if (existCompany == null) { - log.warn("Company {} not found by profileDocument {}", profileDocument.getCompanyId(), profileDocument.getId()); - return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId()); - } - if (!WorkflowStatus.Active.equalsByKey(existCompany.getWorkflowStatus())) { - log.debug("Company {} not active", profileDocument.getCompanyId()); - return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId()); - } synchronized (companyService) { + Company existCompany = profileDocument.getCompanyId() == null ? null : companyMap.getSingleObjectByID(profileDocument.getCompanyId()); + if (existCompany == null) { + log.warn("Company {} not found by profileDocument {}", profileDocument.getCompanyId(), profileDocument.getId()); + return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId()); + } + if (!WorkflowStatus.Active.equalsByKey(existCompany.getWorkflowStatus())) { + log.debug("Company {} not active", profileDocument.getCompanyId()); + return requestHelper.makeErrorResponse(deleteRequest, CompanyErrors.CompanyNotFound, profileDocument.getCompanyId()); + } + ImdgTransaction transaction = imdgProvider.newTransaction(); transaction.beginTransaction(); boolean txOk = false; try { - companyService.relationService.cancelingOfAgreementUpdateRelation(transaction, profileDocument.getCompanyId()); - Imdg txProfileDocumentMap= transaction.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); + companyService.relationService.cancelingOfAgreementUpdateRelation(transaction, profileDocument.getCompanyId()); + Imdg txProfileDocumentMap = transaction.getImdg(IMDGDistributedNames.Map_ProfileDocument, ProfileDocument.class); txProfileDocumentMap.delete(profileDocument); txOk = true; } finally { diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java index 0fbd00f46..1e206c19f 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/RelationService.java @@ -12,15 +12,16 @@ import ru.clearing.classes.statics.data.company.ClearingMemberCategory; import ru.clearing.classes.statics.data.company.Company; import ru.clearing.classes.statics.data.company.relation.Relation; import ru.spcex.clearing.company.error.CompanyErrors; -import ru.spcex.clearing.util.services.RequestHelper; import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest; -import ru.spcex.clearing.platform.messaging.domain.cud.company.*; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationNewRequest; +import ru.spcex.clearing.platform.messaging.domain.cud.company.RelationUpdateRequest; import ru.spcex.clearing.platform.messaging.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; 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 ru.spcex.platform.enumeration.ServiceProduct; @@ -30,7 +31,6 @@ 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 ru.spcex.platform.utils.error.ValidationException; import ru.spcex.platform.utils.validation.IValidator; @@ -42,7 +42,7 @@ import java.util.function.Function; import static ru.spcex.platform.enumeration.Service.FOND; import static ru.spcex.platform.enumeration.Service.MKR; -import static ru.spcex.platform.enumeration.SessionStatus.CLOS; +import static ru.spcex.platform.enumeration.ServiceStatus.Closed; import static ru.spcex.platform.utils.enumeration.IEnumKey.getEnumByKey; @Service @@ -59,9 +59,9 @@ public class RelationService extends QueueConsumer implements InitializingBean { protected RequestHelper requestHelper; protected ValidationHelper validationHelper; - private Function relationNewRequestValidator; - private Function relationUpdateRequestValidator; - private Function relationDeleteRequestValidator; + private final Function relationNewRequestValidator; + private final Function relationUpdateRequestValidator; + private final Function relationDeleteRequestValidator; @Autowired public RelationService(Consumer kafkaQueue, @@ -117,7 +117,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { { //проверка заполнен ли serviceStatus String serviceStatus = req.getServiceStatus(); if (serviceStatus == null || serviceStatus.isEmpty()) { - Company company = companyMap.getSingleObjectByFieldValues(Map.of("id", req.getCompanyId())); + Company company = companyMap.getSingleObjectByID(req.getCompanyId()); req.setServiceStatus(company.getWorkflowStatus()); } } @@ -168,7 +168,7 @@ public class RelationService extends QueueConsumer implements InitializingBean { log.debug("Request has no status. Set status by resume: {}", relation.getServiceStatus()); } else { String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() : - WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() : + WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? Closed.getKey() : null; log.debug("Request has no status. Set status by company[{}].status={}. Relation[{}].serviceSStatus={}", company.getId(), company.getWorkflowStatus(), toStatus); @@ -231,9 +231,9 @@ public class RelationService extends QueueConsumer implements InitializingBean { } Company company = companyMap.getSingleObjectByID(relation.getConsumerId()); String toStatus = WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Active.getKey() : - WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? ServiceStatus.Closed.getKey() : + WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus()) ? Closed.getKey() : null; - if (ServiceStatus.Active.equalsByKey(toStatus) && ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) { + if (ServiceStatus.Active.equalsByKey(toStatus) && Closed.equalsByKey(relation.getServiceStatus())) { relation.setServiceStatus(ServiceStatus.Reopened.getKey()); log.debug("Set status by resume: {}", relation.getServiceStatus()); } else { @@ -287,9 +287,9 @@ public class RelationService extends QueueConsumer implements InitializingBean { ClearingMemberCategory clearingMemberCategory = transaction.getImdg(IMDGDistributedNames.Map_ClearingMemberCategory, ClearingMemberCategory.class).getSingleObjectByFieldValues(Map.of("companyId", companyId)); WorkflowStatus workflowStatus = getEnumByKey(WorkflowStatus.class, company.getWorkflowStatus()); - ClearingCategory clearingCategory = getEnumByKey(ClearingCategory.class, clearingMemberCategory.getClearingMemberCategory()); + ClearingCategory clearingCategory = getEnumByKey(ClearingCategory.class, clearingMemberCategory.getClearingMemberCategory()); String serviceStatus; - switch (Objects.requireNonNull(clearingCategory)){ + switch (Objects.requireNonNull(clearingCategory)) { case B: case I: case V: @@ -313,10 +313,11 @@ public class RelationService extends QueueConsumer implements InitializingBean { log.debug("New Relation[{}] created.", relation.getId()); relationMap.insert(relation); } + protected void cancelingOfAgreementUpdateRelation(ImdgTransaction transaction, Long companyId) { Imdg relationMap = transaction.getImdg(IMDGDistributedNames.Map_Relation, Relation.class); Relation relation = relationMap.getSingleObjectByFieldValues(Map.of("consumerId", companyId)); - relation.setServiceStatus(CLOS.getKey()); + relation.setServiceStatus(Closed.getKey()); relationMap.update(relation); log.debug("New Relation[{}] updated.", relation.getId()); } @@ -356,8 +357,8 @@ public class RelationService extends QueueConsumer implements InitializingBean { modified = true; } } else if (WorkflowStatus.Blocked.equalsByKey(company.getWorkflowStatus())) { - if (!ServiceStatus.Closed.equalsByKey(relation.getServiceStatus())) { - relation.setServiceStatus(ServiceStatus.Closed.getKey()); + if (!Closed.equalsByKey(relation.getServiceStatus())) { + relation.setServiceStatus(Closed.getKey()); modified = true; } }