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;