diff --git a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRule.java b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRule.java index b56e58f17..ce0616a82 100644 --- a/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRule.java +++ b/clearing-parent/balance-service/src/main/java/ru/spcex/clearing/balance/validation/Sdf16ValidationRule.java @@ -21,19 +21,23 @@ public enum Sdf16ValidationRule implements IValidationRule companySymbolsImdg = context.obtainMap(IMDGDistributedNames.Map_CompanySymbols, CompanySymbols.class); Imdg companyImdg = context.obtainMap(IMDGDistributedNames.Map_Company, Company.class); - if (sdf16.getInn() == null) { - return of(BalanceError.CompanyNotFound, "empty inn"); + String sql = ""; + if (sdf16.getInn() != null) { + String innStr = sdf16.getInn().setScale(0, RoundingMode.DOWN).toString(); + sql = String.format("(companySymbolValue = '%s' and companySymbol = '%s') ", + innStr, CompanySymbol.INN.getKey()); } - if (sdf16.getBic() == null) { - return of(BalanceError.CompanyNotFound, "empty bic"); + if (sdf16.getBic() != null) { + if (!sql.isEmpty()) sql += " or "; + String bicStr = sdf16.getBic().setScale(0, RoundingMode.DOWN).toString(); + sql += String.format("(companySymbolValue = '%s' and companySymbol = '%s') ", + bicStr, CompanySymbol.BIC.getKey()); + } + if (sql.isEmpty()) { + return of(BalanceError.CompanyNotFound, "inn and bic is empty"); } - String innStr = sdf16.getInn().setScale(0, RoundingMode.DOWN).toString(); - String bicStr = sdf16.getBic().setScale(0, RoundingMode.DOWN).toString(); - CompanySymbols companySymbols = companySymbolsImdg.getSingleObjectBySQL( - String.format("(companySymbolValue = '%s' and companySymbol = '%s') " + - "or (companySymbolValue = '%s' and companySymbol = '%s')", - innStr, CompanySymbol.INN.getKey(), bicStr, CompanySymbol.BIC.getKey())); Company company = null; + CompanySymbols companySymbols = companySymbolsImdg.getSingleObjectBySQL(sql); if (companySymbols != null) { company = companyImdg.getSingleObjectByID(companySymbols.getCompanyId()); }