CompanySymbolNotExistRule added
This commit is contained in:
parent
cd2c49b9d9
commit
ade79ed6c6
4 changed files with 49 additions and 6 deletions
|
|
@ -5,14 +5,17 @@ import org.springframework.context.annotation.Configuration;
|
|||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.platform.dictionary.*;
|
||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||
import ru.spcex.clearing.company.validation.CompanySymbolNotExistRule;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.common.CommonDeleteRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyInfoUpdateRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest;
|
||||
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.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;
|
||||
|
|
@ -32,28 +35,32 @@ public class CompanyValidationConfig {
|
|||
ImdgValidationContext<CompanyNewRequest> context = new ImdgValidationContext<>();
|
||||
context.setValidatedObject(companyNewRequest);
|
||||
Consumer<String> addImdg = (s) -> context.addImdg(s, imdgForValidation.get(s));
|
||||
addImdg.accept(IMDGDistributedNames.Map_CompanySymbols);
|
||||
addImdg.accept(IMDGDistributedNames.Map_CompanySymbolDictionary);
|
||||
addImdg.accept(IMDGDistributedNames.Map_WorkflowStatusDictionary);
|
||||
addImdg.accept(IMDGDistributedNames.Map_Company);
|
||||
return new ValidatorImpl<>(context
|
||||
,
|
||||
return new ValidatorImpl<>(context,
|
||||
FieldRequiredRule.instance("shortName", CompanyNewRequest::getShortName, CompanyErrors.RequiredFieldEmpty),
|
||||
FieldRequiredRule.instance("companySymbol", CompanyNewRequest::getCompanySymbol, CompanyErrors.RequiredFieldEmpty),
|
||||
FieldRequiredRule.instance("companySymbolValue", CompanyNewRequest::getCompanySymbolValue, CompanyErrors.RequiredFieldEmpty),
|
||||
// FieldRequiredRule.instance("workflowStatus", CompanyNewRequest::getWorkflowStatus, CompanyErrors.RequiredFieldEmpty),
|
||||
|
||||
DictionaryPresentRule.instance("workflowStatus",
|
||||
CompanyNewRequest::getWorkflowStatus,
|
||||
IMDGDistributedNames.Map_WorkflowStatusDictionary,
|
||||
WorkflowStatusDictionary.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.WrongFieldValue),
|
||||
EnumPresentRule.instance("companySymbol",
|
||||
CompanyNewRequest::getCompanySymbol,
|
||||
CompanySymbol.values(),
|
||||
CompanyErrors.WrongFieldValue,
|
||||
CompanyErrors.RequiredFieldEmpty),
|
||||
DictionaryPresentRule.instance("companySymbol",
|
||||
CompanyNewRequest::getCompanySymbol,
|
||||
IMDGDistributedNames.Map_CompanySymbolDictionary,
|
||||
CompanySymbolDictionary.class,
|
||||
CompanyErrors.RequiredFieldEmpty,
|
||||
CompanyErrors.WrongFieldValue)
|
||||
CompanyErrors.WrongFieldValue),
|
||||
new CompanySymbolNotExistRule()
|
||||
);
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ public enum CompanyErrors implements IErrorEnumId {
|
|||
CategoryNotFound(3016L), // Категория компании %s не найдена.
|
||||
CategoryAlreadySet(3017L), // Компании %s уже присвоена категория %s.
|
||||
CompanyAlreadyHasLiabilities(3018L), // У компании %s присутствуют обязательства.
|
||||
CompanyWithCompanySymbolAlreadyExist(3019L), // Компания с %s = %s уже создана" (где первый %s - companySymbol, второй %s - companySymbolValue)
|
||||
EditCompanySymbols(3020L), // Тип реквизита компании %s не может быть изменен.
|
||||
EditContactType(3021L) // Тип контакта компании %s не может быть изменен.
|
||||
;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
package ru.spcex.clearing.company.validation;
|
||||
|
||||
import ru.clearing.classes.statics.data.company.CompanySymbols;
|
||||
import ru.spcex.clearing.company.error.CompanyErrors;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.company.CompanyNewRequest;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicate;
|
||||
import ru.spcex.platform.imdg.api.predicate.ImdgPredicateBuilder;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidationRule;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.Optional;
|
||||
|
||||
/**
|
||||
* Проверка наличия компании с переданными в запросе companySymbol и companySymbolCode (реквизиты)
|
||||
*/
|
||||
public class CompanySymbolNotExistRule implements IValidationRule<ImdgValidationContext<CompanyNewRequest>> {
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<CompanyNewRequest> context) {
|
||||
CompanyNewRequest request = context.getValidatedObject();
|
||||
String companySymbolCode = request.getCompanySymbol();
|
||||
String companySymbolValue = request.getCompanySymbolValue();
|
||||
Imdg<CompanySymbols> companySymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class);
|
||||
ImdgPredicateBuilder pb = companySymbolsImdg.predicateBuilder();
|
||||
ImdgPredicate companySymbolPredicate = pb.equals("companySymbol", companySymbolCode);
|
||||
ImdgPredicate companySymbolValuePredicate = pb.equals("companySymbolValue", companySymbolValue);
|
||||
ImdgPredicate andPredicate = pb.and(companySymbolPredicate, companySymbolValuePredicate);
|
||||
Collection<CompanySymbols> companySymbols = companySymbolsImdg.getCollectionObjectsByPredicate(andPredicate);
|
||||
if (companySymbols.isEmpty()) return Optional.empty();
|
||||
return of(CompanyErrors.CompanyWithCompanySymbolAlreadyExist, companySymbolCode, companySymbolValue);
|
||||
}
|
||||
}
|
||||
|
|
@ -3,7 +3,7 @@ package ru.spcex.platform.enumeration;
|
|||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
|
||||
public enum CompanySymbol implements IEnumKey {
|
||||
INN("INN"), BIC("BIC"),
|
||||
INN("INN"), BIC("BIC"), CIO("CIO"), UUID("UUID"),
|
||||
TRDC("TRDC"), CLRC("CLRC"), RGRC("RGRC");
|
||||
|
||||
private final String key;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue