From acb9b5a67412f7ee6693fa0cc245cca447496262 Mon Sep 17 00:00:00 2001 From: psemenkov Date: Wed, 9 Aug 2023 11:12:03 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-469=20?= =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=BE=D1=88?= =?UTF-8?q?=D0=B8=D0=B1=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../swt/importer/readers/template/SDf21Template.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/template/SDf21Template.java b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/template/SDf21Template.java index 7a0aa0c23..3a7b1c60c 100644 --- a/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/template/SDf21Template.java +++ b/clearing-parent/swt-importer/src/main/java/ru/spcex/clearing/swt/importer/readers/template/SDf21Template.java @@ -63,16 +63,20 @@ public class SDf21Template extends AbstractTemplate { currentPattern = hederPatterns.get(i); if (currentPattern.canRead(line)) { currentPattern.reed(line, currentRecord); - result = prepareNextLine(this::setLine); - if (!SUCSESS.equals(result)) return result; currentRecord.setNotEmpty(true); if (Tag18A.equals(currentPattern)) { String str18 = currentRecord.getValFor18ATag().trim(); if (StringUtils.hasText(str18)) { int count = Integer.parseInt(str18); oneDimensionalCount = oneDimensionalPatterns.size() * count; + if(count == 0){ + setReadEnded(true); + return SUCSESS; + } } } + result = prepareNextLine(this::setLine); + if (!SUCSESS.equals(result)) return result; } else { result = checkNotValue(line, "required teg: " + currentPattern.name() + ", but was: "); if (!SUCSESS.equals(result)) return result; @@ -85,8 +89,6 @@ public class SDf21Template extends AbstractTemplate { currentPattern = oneDimensionalPatterns.get(j % oneDimensionalPatterns.size()); if (currentPattern.canRead(line)) { currentPattern.reed(line, currentRecord); - result = prepareNextLine(this::setLine); - if (!SUCSESS.equals(result)) return result; currentRecord.setNotEmpty(true); if (Tag18A.equals(currentPattern)) { String str18 = currentRecord.getValFor18ATag().trim(); @@ -100,6 +102,8 @@ public class SDf21Template extends AbstractTemplate { groupRecords.addAll(currentRecords); currentRecords = new ArrayList<>(); } + result = prepareNextLine(this::setLine); + if (!SUCSESS.equals(result)) return result; } else { result = checkNotValue(line, "required teg: " + currentPattern.name() + ", but was: "); if (!SUCSESS.equals(result)) return result;