From bfbd0a8da4246052cbc69b5ed60666e6e822de96 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 8 Feb 2023 17:20:31 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-130=20?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=20CLS-188:=20Sdf03Builder=20sbanknam1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/builder/Sdf03Builder.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java index 1ee4c32e3..aff6d9281 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf03Builder.java @@ -27,14 +27,35 @@ public class Sdf03Builder { sDf03.setPriority("9"); sDf03.setSbankcode(Sender.Prc.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); sDf03.setC_acc_deb(paymentInstruction.getDebitLegAccount()); - if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { - sDf03.setSbanknam1(paymentInstruction.getAddresseeBankName()); + if (paymentInstruction.getSenderId().equals(Sender.One.getId())) { + sDf03.setSbanknam1(paymentInstruction.getPayeeBankName()); } else { - Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); + Company company = companyImdg.getSingleObjectByID(paymentInstruction.getSenderId()); if (company != null) { sDf03.setSbanknam1(company.getShortName()); } } + if (sDf03.getSbanknam1() != null && sDf03.getSbanknam1().length() > 35) { + //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). + sDf03.setSbanknam2(sDf03.getSbanknam1().substring(35)); + sDf03.setSbanknam1(sDf03.getSbanknam1().substring(0, 35)); + if (sDf03.getSbanknam2().length() > 35) { + sDf03.setSbanknam3(sDf03.getSbanknam2().substring(35)); + sDf03.setSbanknam2(sDf03.getSbanknam2().substring(0, 35)); + if (sDf03.getSbanknam3().length() > 35) { + sDf03.setSbanknam4(sDf03.getSbanknam3().substring(35)); + sDf03.setSbanknam3(sDf03.getSbanknam3().substring(0, 35)); + if (sDf03.getSbanknam4().length() > 35) { + sDf03.setSbanknam5(sDf03.getSbanknam4().substring(35)); + sDf03.setSbanknam4(sDf03.getSbanknam4().substring(0, 35)); + if (sDf03.getSbanknam5().length() > 35) { + //warn: too large for all field + //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); + } + } + } + } + } // =@00100, если ?; // =@00000, если ?. sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0");