diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java index 3c1b4c3d0..af91940df 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/executors/Sdf57Executor.java @@ -177,8 +177,6 @@ public class Sdf57Executor extends AbstractExecutor { Statement stmt = stmtCmpAcc.statement(); Company company = stmtCmpAcc.company(); Account account = stmtCmpAcc.account(); - if (account == null) - return; Optional err = validateActiveness(company, account); if (err.isEmpty()) { Optional amtFound = RegistrySearch.builder(registryImdg) @@ -593,7 +591,7 @@ public class Sdf57Executor extends AbstractExecutor { return comment.replaceAll("\\s+", ""); } - private String getContractFromSpecif(String specif) { + private static String getContractFromSpecif(String specif) { if (specif == null) { return null; } @@ -601,7 +599,23 @@ public class Sdf57Executor extends AbstractExecutor { if (index == -1) { return null; } - return specif.substring(index + 1).replaceAll("\\s+", ""); + StringBuilder buffer = new StringBuilder(); + String afterN = specif.substring(index + 1); + int countSlashes = 0; + for(int i = 0; i < afterN.length(); i++) { + char c = afterN.charAt(i); + if (!Character.isWhitespace(c)) { + buffer.append(c); + if (c == '/') { + countSlashes++; + } + } else { + if (countSlashes == 3) { + break; + } + } + } + return buffer.toString(); } @FunctionalInterface