diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java index 5d0a3825e..85d105096 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/ClearingMemberCategoryService.java @@ -160,7 +160,7 @@ public class ClearingMemberCategoryService extends QueueConsumer implements Init return null; } - private RequestInfoUpdate clearingMemberCategoryDelete(BaseRequest userRequest) { + public RequestInfoUpdate clearingMemberCategoryDelete(BaseRequest userRequest) { CommonDeleteRequest req = userRequest.getRequestPayload(); RequestInfoUpdate requestInfoUpdate = userRoleVerification.validateRoleAndGetResult(userRequest); diff --git a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java index d9c6792c7..95368d2a8 100644 --- a/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java +++ b/clearing-parent/company-service/src/main/java/ru/spcex/clearing/company/service/MultiCompanyService.java @@ -18,6 +18,7 @@ import ru.spcex.clearing.platform.messaging.domain.ActionType; import ru.spcex.clearing.platform.messaging.domain.BaseRequest; import ru.spcex.clearing.platform.messaging.domain.Consts; import ru.spcex.clearing.platform.messaging.domain.cud.account.ClientCodeNewRequest; +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.service.QueueConsumer; import ru.spcex.clearing.platform.messaging.service.RequestInfoUpdate; @@ -198,10 +199,16 @@ public class MultiCompanyService replyI = clearingMemberCategoryService.clearingMemberCategoryNew(wrapRequest(baseRequest, partRequest, ActionType.NEW)); validateReply(companyId, "contactNew", replyI); } else { - log.trace("For company[{}] do update category[{}]", companyId, existCategory.getId()); - ClearingMemberCategoryUpdateRequest partUpdateRequest = createUpdateRequest(existCategory, partRequest); - replyI = clearingMemberCategoryService.clearingMemberCategoryUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE)); - validateReply(companyId, "categoryUpdate", replyI); + if (Arrays.asList("CLOS", "SSPD").contains(partRequest.getWorkflowStatus())) { + log.trace("For company[{}] do delete category[{}]", companyId, existCategory.getId()); + CommonDeleteRequest commonDeleteRequest = createDeleteRequest(existCategory); + clearingMemberCategoryService.clearingMemberCategoryDelete(wrapRequest(baseRequest, commonDeleteRequest, ActionType.DELETE)); + } else { + log.trace("For company[{}] do update category[{}]", companyId, existCategory.getId()); + ClearingMemberCategoryUpdateRequest partUpdateRequest = createUpdateRequest(existCategory, partRequest); + replyI = clearingMemberCategoryService.clearingMemberCategoryUpdate(wrapRequest(baseRequest, partUpdateRequest, ActionType.UPDATE)); + validateReply(companyId, "categoryUpdate", replyI); + } } } txOk = true; @@ -335,6 +342,12 @@ public class MultiCompanyService return r; } + CommonDeleteRequest createDeleteRequest(ClearingMemberCategory existCategory) { + CommonDeleteRequest commonDeleteRequest = new CommonDeleteRequest(); + commonDeleteRequest.setId(existCategory.getId()); + return commonDeleteRequest; + } + Long getCompanyIdForCompanySymbols(String uuid, CompanyNewRequest cnr, Collection companySymbols) { CompanySymbols companySymbol = null; if (StringUtils.isNotEmpty(uuid)) { diff --git a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java index 4b5460042..8db33f23b 100644 --- a/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java +++ b/clearing-parent/gateway-api/src/main/java/ru/spcex/clearing/gatewayapi/service/adapter/CompanyRequestAdapter.java @@ -131,6 +131,7 @@ public class CompanyRequestAdapter { public ClearingMemberCategoryNewRequest toCategoryRequest(CompanyClearingCategory companyClearingCategory) { ClearingMemberCategoryNewRequest categoryNewRequest = new ClearingMemberCategoryNewRequest(); categoryNewRequest.setClearingMemberCategory(companyClearingCategory.getCategory()); + categoryNewRequest.setWorkflowStatus(companyClearingCategory.getWorkflowStatus()); return categoryNewRequest; } } diff --git a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/ClearingMemberCategoryNewRequest.java b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/ClearingMemberCategoryNewRequest.java index b7fd67494..8e52408c9 100644 --- a/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/ClearingMemberCategoryNewRequest.java +++ b/platform-parent/platform-messaging/src/main/java/ru/spcex/clearing/platform/messaging/domain/cud/company/ClearingMemberCategoryNewRequest.java @@ -7,6 +7,8 @@ public class ClearingMemberCategoryNewRequest { private String clearingMemberCategory; @JsonProperty private Long companyId; + @JsonProperty + private String workflowStatus; public Long getCompanyId() { return companyId; @@ -23,4 +25,12 @@ public class ClearingMemberCategoryNewRequest { public void setClearingMemberCategory(String clearingMemberCategory) { this.clearingMemberCategory = clearingMemberCategory; } + + public String getWorkflowStatus() { + return workflowStatus; + } + + public void setWorkflowStatus(String workflowStatus) { + this.workflowStatus = workflowStatus; + } }