From b9ff99401118b185d89697e7ab48b4f1a88280f1 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 9 Feb 2023 16:24:14 +0300 Subject: [PATCH] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-189=20?= =?UTF-8?q?=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B0=20=D0=BF=D0=BE=D0=BB=D0=B5?= =?UTF-8?q?=D0=B9=20=D0=B2=20Sdf03Builder=20Sdf11Builder?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/builder/Sdf03Builder.java | 6 ++--- .../service/builder/Sdf11Builder.java | 25 ++++++++++++++++--- .../ru/spcex/platform/enumeration/Sender.java | 3 ++- 3 files changed, 27 insertions(+), 7 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 aff6d9281..f5fc3b642 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 @@ -25,8 +25,8 @@ public class Sdf03Builder { sDf03.setDoc_type("002"); sDf03.setDocnm_ref(paymentInstruction.getId().toString()); sDf03.setPriority("9"); - sDf03.setSbankcode(Sender.Prc.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); - sDf03.setC_acc_deb(paymentInstruction.getDebitLegAccount()); + sDf03.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); + sDf03.setC_acc_deb(paymentInstruction.getCreditLegAccount()); if (paymentInstruction.getSenderId().equals(Sender.One.getId())) { sDf03.setSbanknam1(paymentInstruction.getPayeeBankName()); } else { @@ -59,7 +59,7 @@ public class Sdf03Builder { // =@00100, если ?; // =@00000, если ?. sDf03.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); - sDf03.setC_acc_cred(paymentInstruction.getCreditLegAccount()); + sDf03.setC_acc_cred(paymentInstruction.getDebitLegAccount()); if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { sDf03.setRbanknam1(paymentInstruction.getAddresseeBankName()); } else { diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java index 5d871ccac..0f6ad19b1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/Sdf11Builder.java @@ -24,10 +24,29 @@ public class Sdf11Builder { sDf11.setDoc_type("002"); sDf11.setDocnm_ref(paymentInstruction.getId().toString()); sDf11.setPriority("9"); - sDf11.setSbankcode(Sender.Prc.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); - sDf11.setC_acc_deb(paymentInstruction.getDebitLegAccount()); + sDf11.setSbankcode(Sender.One.equalsById(paymentInstruction.getSenderId()) ? "@09999" : "@0"); + sDf11.setC_acc_deb(paymentInstruction.getCreditLegAccount()); if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { sDf11.setSbanknam1(paymentInstruction.getAddresseeBankName()); + //(если всё значение не помещается в sbanknam1, то остаток записать в sbanknam2 и т.д. до sbanknam5). + sDf11.setSbanknam2(sDf11.getSbanknam1().substring(35)); + sDf11.setSbanknam1(sDf11.getSbanknam1().substring(0, 35)); + if (sDf11.getSbanknam2().length() > 35) { + sDf11.setSbanknam3(sDf11.getSbanknam2().substring(35)); + sDf11.setSbanknam2(sDf11.getSbanknam2().substring(0, 35)); + if (sDf11.getSbanknam3().length() > 35) { + sDf11.setSbanknam4(sDf11.getSbanknam3().substring(35)); + sDf11.setSbanknam3(sDf11.getSbanknam3().substring(0, 35)); + if (sDf11.getSbanknam4().length() > 35) { + sDf11.setSbanknam5(sDf11.getSbanknam4().substring(35)); + sDf11.setSbanknam4(sDf11.getSbanknam4().substring(0, 35)); + if (sDf11.getSbanknam5().length() > 35) { + //warn: too large for all field + //sDf03.setSbanknam5(sDf03.getSbanknam2().substring(0, 35)); + } + } + } + } } else { Company company = companyImdg.getSingleObjectByID(paymentInstruction.getAddresseeId()); if (company != null) { @@ -37,7 +56,7 @@ public class Sdf11Builder { // =@00100, если ?; // =@00000, если ?. sDf11.setRbankcode(Sender.One.equalsById(paymentInstruction.getAddresseeId()) ? "@09999" : "@0"); - sDf11.setC_acc_cred(paymentInstruction.getCreditLegAccount()); + sDf11.setC_acc_cred(paymentInstruction.getDebitLegAccount()); if (paymentInstruction.getAddresseeId().equals(Sender.One.getId())) { sDf11.setRbanknam1(paymentInstruction.getAddresseeBankName()); } else { diff --git a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java index 2c2fa94f3..60d8132be 100644 --- a/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java +++ b/platform-parent/platform-enum/src/main/java/ru/spcex/platform/enumeration/Sender.java @@ -3,7 +3,8 @@ package ru.spcex.platform.enumeration; import ru.spcex.platform.utils.enumeration.IEnumId; public enum Sender implements IEnumId { - One(1L), Prc(2L); + One(1L), /* СПВБ */ + Prc(2L); /* ПРЦ */ private final Long key;