diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/FixedIncomeCashFlowValidationConfig.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/FixedIncomeCashFlowValidationConfig.java index fb306dd93..71a2cef1d 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/FixedIncomeCashFlowValidationConfig.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/config/validation/FixedIncomeCashFlowValidationConfig.java @@ -47,9 +47,14 @@ public class FixedIncomeCashFlowValidationConfig { IMDGDistributedNames.Map_FixedIncomeCashFlow, FixedIncomeCashFlow.class ); Long securityId = Long.valueOf(securitySymbol); - HashMap query = new HashMap<>(); + HashMap> query = new HashMap<>(); query.put("securityId", securityId); - query.put("number", fixedIncomeCashFlowNewRequest.getNumber()); + if (fixedIncomeCashFlowNewRequest.getNumber() != null) { + query.put("number", fixedIncomeCashFlowNewRequest.getNumber()); + } + if (fixedIncomeCashFlowNewRequest.getValueDate() != null) { + query.put("valueDate", fixedIncomeCashFlowNewRequest.getValueDate()); + } Collection fixedIncomeCashFlows = fixedIncomeCashFlowImdg.getCollectionObjectsByFieldValues(query); if (!fixedIncomeCashFlows.isEmpty()) return SecuritiesError.CouponPeriodAlreadyExists; return null; diff --git a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java index 5e624228e..91199a8ad 100644 --- a/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java +++ b/clearing-parent/securities-service/src/main/java/ru/spcex/clearing/securities/service/cud/GatewaySecurityService.java @@ -358,9 +358,14 @@ public class GatewaySecurityService extends QueueConsumer implements Initializin log.error("Not a number \"{}\": {}", byRequest.getSecuritySymbol(), nan.toString()); return null; } - Map query = new HashMap<>(); + Map> query = new HashMap<>(); query.put("securityId", securityId); - query.put("number", byRequest.getNumber()); + if (byRequest.getNumber() != null) { + query.put("number", byRequest.getNumber()); + } + if (byRequest.getValueDate() != null) { + query.put("valueDate", byRequest.getValueDate()); + } FixedIncomeCashFlow existFixedIncomeCashFlow = fixedIncomeCashFlowImdg.getFirstObjectByFieldValues(query); if (existFixedIncomeCashFlow == null) log.trace("FixedIncomeCashFlow not found by securityId={}", securityId);