company-service securities-service http://jira.mfd.msk:8088/browse/CLS-454 поправил выдачу ошибок

This commit is contained in:
AKurakin 2023-09-13 15:27:05 +03:00
parent 2d08c7d589
commit 41d66b9e96
7 changed files with 18 additions and 11 deletions

View file

@ -343,7 +343,7 @@
<errorCode id="1008" code="SECR" name="Пользователь %s неактивен."/>
<errorCode id="1010" code="SECR" name="Инструмент %s уже существует."/>
<errorCode id="1011" code="SECR" name="Инструмент %s не найден."/>
<errorCode id="1012" code="SECR" name="Инструмент %s неактивен."/>
<errorCode id="1012" code="SECR" name="Инструмент %s неактивен."/> <!-- параметр security.securitySymbol -->
<errorCode id="1013" code="SECR" name="Запись по инструменту %s уже существует."/>
<errorCode id="1014" code="SECR" name="Запись по инструменту %s не найдена."/>
<errorCode id="1015" code="SECR" name="Валюта %s уже существует."/>
@ -377,7 +377,7 @@
<errorCode id="3006" code="CMPN" name="Запись с идентификатором %s не найдена."/>
<errorCode id="3010" code="CMPN" name="Компания %s уже существует"/>
<errorCode id="3011" code="CMPN" name="Компания %s не найдена."/>
<errorCode id="3012" code="CMPN" name="Компания %s неактивна."/>
<errorCode id="3012" code="CMPN" name="Компания %s неактивна."/> <!-- параметр company.shortName -->
<errorCode id="3013" code="CMPN" name="Профиль компании %s не найден."/>
<errorCode id="3014" code="CMPN" name="Реквизит компании %s не найден."/>
<errorCode id="3015" code="CMPN" name="Контакт компании %s не найден."/>

View file

@ -14,11 +14,12 @@ import ru.spcex.clearing.validation.common.rules.DictionaryPresentRule;
import ru.spcex.clearing.validation.common.rules.EnumPresentRule;
import ru.spcex.clearing.validation.common.rules.FieldRequiredRule;
import ru.spcex.clearing.validation.common.rules.IdPresentRule;
import ru.spcex.clearing.validation.common.rules.specific.IdPresentSpecificRule;
import ru.spcex.platform.classes.base.SpcexObjectBase;
import ru.spcex.platform.enumeration.CompanySymbol;
import ru.spcex.platform.enumeration.WorkflowStatus;
import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.validation.IValidator;
import ru.spcex.platform.utils.validation.ValidatorImpl;
@ -103,13 +104,14 @@ public class CompanyValidationConfig {
addImdg.accept(IMDGDistributedNames.Map_Company);
return new ValidatorImpl<>(context,
// FieldRequiredRule.instance("id", CommonDeleteRequest::getId, CompanyErrors.RequiredFieldEmpty),
IdPresentRule.instance("id",
IdPresentSpecificRule.instance("id",
CommonDeleteRequest::getId,
IMDGDistributedNames.Map_Company,
Company.class,
CompanyErrors.RequiredFieldEmpty,
CompanyErrors.CompanyNotFound,
company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null : CompanyErrors.CompanyDisabled)
company -> WorkflowStatus.Active.getKey().equals(company.getWorkflowStatus()) ? null :
new EnumMessage(CompanyErrors.CompanyDisabled, company.getShortName()))
);
};
}

View file

@ -13,7 +13,7 @@ public enum CompanyErrors implements IErrorEnumId {
RecordNotFound(3006L), // Запись с идентификатором %s не найдена.
CompanyALreadyExist(3010L), // Компания %s уже существует
CompanyNotFound(3011L), // Компания %s не найдена.
CompanyDisabled(3012L), // Компания %s неактивна.
CompanyDisabled(3012L), // Компания %s неактивна. (параметр company.shortName)
ProfileNotFound(3013L), // Профиль компании %s не найден.
CompanyInfoNotFound(3014L), // Реквизит компании %s не найден.
ContactNotFound(3015L), // Контакт компании %s не найден.

View file

@ -353,7 +353,7 @@ public class CompanyService extends QueueConsumer implements InitializingBean {
}
if (!WorkflowStatus.Active.equalsByKey(company.getWorkflowStatus())) {
log.info("Company {} already blocked", request.getId());
return requestHelper.makeErrorResponse(companyBlockRequestBaseRequest, CompanyErrors.CompanyDisabled);
return requestHelper.makeErrorResponse(companyBlockRequestBaseRequest, CompanyErrors.CompanyDisabled, company.getShortName());
}

View file

@ -18,7 +18,7 @@ public enum MmsDeleteValidationRule implements IValidationRule<ImdgValidationCon
MoneyMarketSecurity mms = context.getStoredObject(Stored.PresentById);
//проверка только если PresentById найдет объект и сохранит его
if (mms != null && !Status.Active.getKey().equals(mms.getWorkflowStatus())) {
return of(SecuritiesError.InstrumentNotActive);
return of(SecuritiesError.InstrumentNotActive, mms.getSecuritySymbol());
} else {
return empty();
}

View file

@ -18,7 +18,7 @@ public enum MmsUpdateValidationRule implements IValidationRule<ImdgValidationCon
MoneyMarketSecurity mms = context.getStoredObject(Stored.PresentById);
//проверка только если PresentById найдет объект и сохранит его
if (mms != null && !Status.Active.getKey().equals(mms.getWorkflowStatus())) {
return of(SecuritiesError.InstrumentNotActive, mms.getClass().getSimpleName());
return of(SecuritiesError.InstrumentNotActive, mms.getSecuritySymbol());
} else {
return empty();
}

View file

@ -1,5 +1,6 @@
package ru.spcex.clearing.securities.validation.rule;
import ru.clearing.classes.statics.data.security.Security;
import ru.spcex.clearing.securities.errors.SecuritiesError;
import ru.spcex.platform.classes.base.interfaces.WithWorkflowStatus;
import ru.spcex.platform.enumeration.Status;
@ -18,8 +19,12 @@ public class WorkflowStatusActv implements IValidationRule<ImdgValidationContext
//проверка только если PresentById найдет объект и сохранит его
if (object != null && object.getWorkflowStatus() == null) {
return of(SecuritiesError.RequiredFieldIsEmpty, "workflowStatus");
}else if (object != null && !Status.Active.getKey().equals(object.getWorkflowStatus())) {
return of(SecuritiesError.InstrumentNotActive, object.getClass().getSimpleName());
} else if (object != null && !Status.Active.getKey().equals(object.getWorkflowStatus())) {
String securitySymbol = object.getClass().getSimpleName();
if (object instanceof Security) {
securitySymbol = ((Security) object).getSecuritySymbol();
}
return of(SecuritiesError.InstrumentNotActive, securitySymbol);
} else {
return empty();
}