clearing-service http://jira.mfd.msk:8088/browse/CLS-307 SPLT улучшил валидацию
This commit is contained in:
parent
a448a78415
commit
38916cdeb1
2 changed files with 15 additions and 1 deletions
|
|
@ -359,6 +359,7 @@ public class ValidationConfig {
|
|||
DictionaryPresentRule.instance("direction", RegistrySplitDepositActionRequest::getDirection,
|
||||
IMDGDistributedNames.Map_InOutDirectionDictionary, InOutDirectionDictionary.class,
|
||||
ClearingError.RequiredFieldEmpty, ClearingError.DictionaryNotFound, false),
|
||||
SplitDepositRequestValidationRule.PositiveAmount,
|
||||
SplitDepositRequestValidationRule.CrossvalidateByRegistry
|
||||
);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -22,6 +22,19 @@ import java.util.Optional;
|
|||
import java.util.stream.Collectors;
|
||||
|
||||
public enum SplitDepositRequestValidationRule implements IValidationRule<ImdgValidationContext<RegistrySplitDepositActionRequest>> {
|
||||
PositiveAmount() {
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<RegistrySplitDepositActionRequest> context) {
|
||||
RegistrySplitDepositActionRequest request = context.getValidatedObject();
|
||||
if (request.getOutboundAmount() == null) {
|
||||
return of(ClearingError.RequiredFieldEmpty, "outboundAmount");
|
||||
}
|
||||
if (request.getOutboundAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
||||
return of(ClearingError.WrongFieldValue, "outboundAmount");
|
||||
}
|
||||
return empty();
|
||||
}
|
||||
},
|
||||
CrossvalidateByRegistry() {
|
||||
@Override
|
||||
public Optional<EnumMessage> validate(ImdgValidationContext<RegistrySplitDepositActionRequest> context) {
|
||||
|
|
@ -39,7 +52,7 @@ public enum SplitDepositRequestValidationRule implements IValidationRule<ImdgVal
|
|||
);
|
||||
Collection<Registry> registrys = registryImdg.getCollectionObjectsByPredicate(query);
|
||||
registrys = registrys.stream()
|
||||
.filter(r->r.getValueDate()!=null && r.getSettlementDate()!=null && r.getValueDate().isBefore(r.getSettlementDate()))
|
||||
.filter(r -> r.getValueDate() != null && r.getSettlementDate() != null && r.getValueDate().isBefore(r.getSettlementDate()))
|
||||
.collect(Collectors.toList());
|
||||
Registry registryO = registrys.stream()
|
||||
.filter(r -> RegistryDesignation.O.equalsByKey(r.getRegistryDesignation()))
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue