etreschenkov 2026-05-28 13:48:54 +03:00
parent 89cad0d718
commit d5b5272bb3

View file

@ -10,6 +10,7 @@ import ru.clearing.classes.statics.data.misc.OrderCurrency;
import ru.spcex.clearing.dflt.management.config.ValidationConfig; import ru.spcex.clearing.dflt.management.config.ValidationConfig;
import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors; import ru.spcex.clearing.dflt.management.error.DefaultManagementErrors;
import ru.spcex.clearing.imdg.IMDGDistributedNames; import ru.spcex.clearing.imdg.IMDGDistributedNames;
import ru.spcex.clearing.platform.messaging.domain.cud.order.OrderCompanyNewRequest;
import ru.spcex.platform.enumeration.CompanyRole; import ru.spcex.platform.enumeration.CompanyRole;
import ru.spcex.platform.imdg.api.Imdg; import ru.spcex.platform.imdg.api.Imdg;
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder; import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
@ -18,7 +19,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
import ru.spcex.platform.utils.validation.IValidationRule; import ru.spcex.platform.utils.validation.IValidationRule;
public class OrderCurrencyOnlyLccCompany public class OrderCurrencyOnlyLccCompany
implements IValidationRule<ImdgValidationContext<?>> { implements IValidationRule<ImdgValidationContext<OrderCompanyNewRequest>> {
private static final Logger log = LoggerFactory.getLogger(ValidationConfig.class); private static final Logger log = LoggerFactory.getLogger(ValidationConfig.class);
public static public static
OrderCurrencyOnlyLccCompany getInstance() { OrderCurrencyOnlyLccCompany getInstance() {
@ -26,7 +27,7 @@ public class OrderCurrencyOnlyLccCompany
} }
@Override @Override
public Optional<EnumMessage> validate(ImdgValidationContext<?> ctx) { public Optional<EnumMessage> validate(ImdgValidationContext<OrderCompanyNewRequest> ctx) {
Imdg<CompanyRoleSet> cmpRoleImdg = ctx.obtainMap(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class); Imdg<CompanyRoleSet> cmpRoleImdg = ctx.obtainMap(IMDGDistributedNames.Map_CompanyRoleSet, CompanyRoleSet.class);
Imdg<Company> companyImdg = ctx.obtainMap(IMDGDistributedNames.Map_Company, Company.class); Imdg<Company> companyImdg = ctx.obtainMap(IMDGDistributedNames.Map_Company, Company.class);
ImdgPredicateBuilder cmpRolePb = cmpRoleImdg.predicateBuilder(); ImdgPredicateBuilder cmpRolePb = cmpRoleImdg.predicateBuilder();
@ -42,6 +43,11 @@ public class OrderCurrencyOnlyLccCompany
log.error("couldn't find company CLCC"); log.error("couldn't find company CLCC");
return of(DefaultManagementErrors.RecordNotFound, "company[CLCC]"); return of(DefaultManagementErrors.RecordNotFound, "company[CLCC]");
} }
OrderCompanyNewRequest companyNewRequest = ctx.getValidatedObject();
if (Objects.equals(companyNewRequest.getCompanyId(), clccCmp.getId())) {
return of(DefaultManagementErrors.OperationNotAllowed);
}
OrderCurrency order = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency); OrderCurrency order = ctx.getStoredObject(OrderCurrencyValidationStored.OrderCurrency);
if (!Objects.equals(order.getCounterPartyId(), clccCmp.getId())) { if (!Objects.equals(order.getCounterPartyId(), clccCmp.getId())) {
return of(DefaultManagementErrors.OperationNotAllowed); return of(DefaultManagementErrors.OperationNotAllowed);