From bfbd0a8da4246052cbc69b5ed60666e6e822de96 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 8 Feb 2023 17:20:31 +0300 Subject: [PATCH 01/10] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-130?= =?UTF-8?q?=20=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"); From bb18e4909b25b3f69c34dfda95be1eedd0155c07 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 8 Feb 2023 17:46:41 +0300 Subject: [PATCH 02/10] http://jira.mfd.msk:8088/browse/CLS-189 PaymentInstructionCreator --- .../builder/PaymentInstructionCreator.java | 434 +++++++++++------- 1 file changed, 277 insertions(+), 157 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java index 9d74251a8..dd60f47e7 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java @@ -101,32 +101,16 @@ public class PaymentInstructionCreator { // I if (clearingCategory.contains(ClearingCategory.I)) { - log.debug("By liabilitiesClaimsAssets[{}] create for category I 2 PaymentInstruction record", liabilitiesClaimsAssets.getId()); + log.debug("By liabilitiesClaimsAssets[{}] create for category I 1 PaymentInstruction record", liabilitiesClaimsAssets.getId()); PaymentInstruction payment1 = new PaymentInstruction(); - PaymentInstruction payment2 = new PaymentInstruction(); payment1.setId(idGenerator.nextId()); payment1.setCreated(now); payment1.setClearingDate(TimeUtil.toLocalDate(now)); - payment2.setId(idGenerator.nextId()); - payment2.setCreated(now); - payment2.setClearingDate(TimeUtil.toLocalDate(now)); payment1.setSenderId(liabilitiesClaimsAssets.getCompanyId()); - payment2.setSenderId(SPVB_ID); // СПВБ payment1.setAddresseeId(SPVB_ID); // СПВБ - { - String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'", - executionDeposit.getExchangeExecutionId(), executionDeposit.getSide()); - ExecutionDeposit counterExecutionDeposit = executionDepositImdg.getSingleObjectBySQL(sqlLCA); - if (counterExecutionDeposit == null) { - log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA); - } else { - payment2.setAddresseeId(counterExecutionDeposit.getCompanyId()); - log.trace("payment2.AddresseeId={} found by: {}", payment2.getAddresseeId(), sqlLCA); - } - } String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); if (symbol1 == null) { @@ -134,12 +118,6 @@ public class PaymentInstructionCreator { } else { payment1.setAdresseeBic(symbol1); } - String symbol2 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC); - if (symbol2 == null) { - log.warn("CompanySymbols BIC not found for companyId={}", payment2.getAddresseeId()); - } else { - payment2.setAdresseeBic(symbol2); - } Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" String companyPRCName = null; @@ -149,53 +127,31 @@ public class PaymentInstructionCreator { companyPRCName = companyPRC.getShortName(); } payment1.setPayeeBankName(companyPRCName); - payment2.setPayeeBankName(companyPRCName); String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" payment1.setPayeeBic(symbolPRC); - payment2.setPayeeBic(symbolPRC); payment1.setAddresseeBankName(companyPRCName); - payment2.setAddresseeBankName(companyPRCName); payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); - payment2.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); - payment2.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); payment1.setCreditLegAmount(amount); - payment2.setCreditLegAmount(amount); payment1.setDebitLegAmount(amount); - payment2.setDebitLegAmount(amount); payment1.setCreditLegAccountId(liabilitiesClaimsAssets.getAccountId()); - { - Account anotherAcc = selectAccount(payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); - if (anotherAcc == null) { - log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", - payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); - } else { - payment2.setCreditLegAccountId(anotherAcc.getId()); - } - } payment1.setCreditCsAccount(null); - payment2.setCreditCsAccount(null); { Account acc1 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); if (acc1 != null) { payment1.setCreditLegAccount(acc1.getAccount()); } - Account acc2 = accountImdg.getSingleObjectByID(payment2.getCreditLegAccountId()); - if (acc2 != null) { - payment2.setCreditLegAccount(acc2.getAccount()); - } } { @@ -204,45 +160,31 @@ public class PaymentInstructionCreator { payment1.setDebitLegAccountId(acc1.getId()); payment1.setDebitLegAccount(acc1.getAccount()); } - Account acc2 = selectAccount(payment2.getAddresseeId(), AccountType.Clrn, Status.Active, Allowed.ALLOWED); - if (acc2 != null) { - payment2.setDebitLegAccountId(acc2.getId()); - payment2.setDebitLegAccount(acc2.getAccount()); - } } payment1.setDebitCsAccount(null); - payment2.setDebitCsAccount(null); // payment1.setCreditLegDirection(InOutDirection.out.getKey()); -// payment2.setCreditLegDirection(InOutDirection.out.getKey()); // payment1.setDebitLegDirection(InOutDirection.in.getKey()); -// payment2.setDebitLegDirection(InOutDirection.in.getKey()); payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); payment1.setTransactionStatus(TransactionStatus.stld.getKey()); - payment2.setTransactionStatus(TransactionStatus.stld.getKey()); payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); - payment2.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment2)); newPaymentInstructions.add(payment1); - newPaymentInstructions.add(payment2); - } else { - // V / B - if (clearingCategory.contains(ClearingCategory.V)) { - log.debug("By liabilitiesClaimsAssets[{}] create for category V 1 PaymentInstruction record", liabilitiesClaimsAssets.getId()); - PaymentInstruction payment1 = new PaymentInstruction(); - payment1.setId(idGenerator.nextId()); - payment1.setCreated(now); - payment1.setClearingDate(TimeUtil.toLocalDate(now)); - payment1.setSenderId(SPVB_ID); // СПВБ + /*{ + PaymentInstruction payment2 = new PaymentInstruction(); + + payment2.setId(idGenerator.nextId()); + payment2.setCreated(now); + payment2.setClearingDate(TimeUtil.toLocalDate(now)); + + payment2.setSenderId(SPVB_ID); // СПВБ { String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'", @@ -251,16 +193,16 @@ public class PaymentInstructionCreator { if (counterExecutionDeposit == null) { log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA); } else { - payment1.setAddresseeId(counterExecutionDeposit.getCompanyId()); - log.trace("payment1.AddresseeId={} found by: {}", payment1.getAddresseeId(), sqlLCA); + payment2.setAddresseeId(counterExecutionDeposit.getCompanyId()); + log.trace("payment2.AddresseeId={} found by: {}", payment2.getAddresseeId(), sqlLCA); } } - String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); - if (symbol1 == null) { - log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId()); + String symbol2 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC); + if (symbol2 == null) { + log.warn("CompanySymbols BIC not found for companyId={}", payment2.getAddresseeId()); } else { - payment1.setAdresseeBic(symbol1); + payment2.setAdresseeBic(symbol2); } Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" @@ -270,136 +212,314 @@ public class PaymentInstructionCreator { } else { companyPRCName = companyPRC.getShortName(); } - payment1.setPayeeBankName(companyPRCName); + payment2.setPayeeBankName(companyPRCName); String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" - payment1.setPayeeBic(symbolPRC); + payment2.setPayeeBic(symbolPRC); - payment1.setAddresseeBankName(companyPRCName); + payment2.setAddresseeBankName(companyPRCName); - payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); + payment2.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); - payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); + payment2.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); - payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); + payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); - payment1.setCreditLegAmount(amount); - payment1.setDebitLegAmount(amount); + payment2.setCreditLegAmount(amount); + payment2.setDebitLegAmount(amount); { - Account acc1 = selectAccount(payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED); - if (acc1 == null) { + Account anotherAcc = selectAccount(payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); + if (anotherAcc == null) { log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", - payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED); + payment2.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); } else { - payment1.setCreditLegAccountId(acc1.getId()); - payment1.setCreditLegAccount(acc1.getAccount()); + payment2.setCreditLegAccountId(anotherAcc.getId()); } } - payment1.setCreditCsAccount(null); + payment2.setCreditCsAccount(null); { - Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); - if (acc1 != null) { - payment1.setDebitLegAccountId(acc1.getId()); - payment1.setDebitLegAccount(acc1.getAccount()); + Account acc2 = accountImdg.getSingleObjectByID(payment2.getCreditLegAccountId()); + if (acc2 != null) { + payment2.setCreditLegAccount(acc2.getAccount()); } } - payment1.setDebitCsAccount(null); + { + Account acc2 = selectAccount(payment2.getAddresseeId(), AccountType.Clrn, Status.Active, Allowed.ALLOWED); + if (acc2 != null) { + payment2.setDebitLegAccountId(acc2.getId()); + payment2.setDebitLegAccount(acc2.getAccount()); + } + } -// payment1.setCreditLegDirection(InOutDirection.out.getKey()); -// payment1.setDebitLegDirection(InOutDirection.in.getKey()); + payment2.setDebitCsAccount(null); - payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); +// payment2.setCreditLegDirection(InOutDirection.out.getKey()); +// payment2.setDebitLegDirection(InOutDirection.in.getKey()); - payment1.setTransactionStatus(TransactionStatus.stld.getKey()); + payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + + payment2.setTransactionStatus(TransactionStatus.stld.getKey()); - payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); + payment2.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment2)); - newPaymentInstructions.add(payment1); - } else // Для V,B только 1 PaymentInstruction + newPaymentInstructions.add(payment2); + }*/ + } else { + // V / B + if (clearingCategory.contains(ClearingCategory.V)) { + log.debug("By liabilitiesClaimsAssets[{}] create for category V 0 PaymentInstruction record - ignore", liabilitiesClaimsAssets.getId()); +// PaymentInstruction payment1 = new PaymentInstruction(); +// payment1.setId(idGenerator.nextId()); +// payment1.setCreated(now); +// payment1.setClearingDate(TimeUtil.toLocalDate(now)); +// +// payment1.setSenderId(SPVB_ID); // СПВБ +// +// { +// String sqlLCA = String.format("exchangeExecutionId = %s and side != '%s'", +// executionDeposit.getExchangeExecutionId(), executionDeposit.getSide()); +// ExecutionDeposit counterExecutionDeposit = executionDepositImdg.getSingleObjectBySQL(sqlLCA); +// if (counterExecutionDeposit == null) { +// log.warn("Counter ExecutionDeposit not found for : {}", sqlLCA); +// } else { +// payment1.setAddresseeId(counterExecutionDeposit.getCompanyId()); +// log.trace("payment1.AddresseeId={} found by: {}", payment1.getAddresseeId(), sqlLCA); +// } +// } +// +// String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); +// if (symbol1 == null) { +// log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId()); +// } else { +// payment1.setAdresseeBic(symbol1); +// } +// +// Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" +// String companyPRCName = null; +// if (companyPRC == null) { +// log.warn("Company.id={} not found", PRC_ID); +// } else { +// companyPRCName = companyPRC.getShortName(); +// } +// payment1.setPayeeBankName(companyPRCName); +// +// String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" +// payment1.setPayeeBic(symbolPRC); +// +// payment1.setAddresseeBankName(companyPRCName); +// +// payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); +// +// payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); +// +// payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); +// +// Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getLiabilitiesQuantity().abs().longValue(); +// payment1.setCreditLegAmount(amount); +// payment1.setDebitLegAmount(amount); +// +// { +// Account acc1 = selectAccount(payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED); +// if (acc1 == null) { +// log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", +// payment1.getSenderId(), AccountType.Anlt, Status.Active, Allowed.ALLOWED); +// } else { +// payment1.setCreditLegAccountId(acc1.getId()); +// payment1.setCreditLegAccount(acc1.getAccount()); +// } +// } +// +// payment1.setCreditCsAccount(null); +// +// { +// Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); +// if (acc1 != null) { +// payment1.setDebitLegAccountId(acc1.getId()); +// payment1.setDebitLegAccount(acc1.getAccount()); +// } +// } +// +// payment1.setDebitCsAccount(null); +// +//// payment1.setCreditLegDirection(InOutDirection.out.getKey()); +//// payment1.setDebitLegDirection(InOutDirection.in.getKey()); +// +// payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); +// payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); +// +// payment1.setTransactionStatus(TransactionStatus.stld.getKey()); +// +// +// payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); +// +// newPaymentInstructions.add(payment1); + } if (clearingCategory.contains(ClearingCategory.B)) { - log.debug("By liabilitiesClaimsAssets[{}] create for category B 1 PaymentInstruction record", liabilitiesClaimsAssets.getId()); - PaymentInstruction payment1 = new PaymentInstruction(); - payment1.setId(idGenerator.nextId()); - payment1.setCreated(now); - payment1.setClearingDate(TimeUtil.toLocalDate(now)); + log.debug("By liabilitiesClaimsAssets[{}] create for category B 2 PaymentInstruction record", liabilitiesClaimsAssets.getId()); + { // record 1 + { + PaymentInstruction payment1 = new PaymentInstruction(); + payment1.setId(idGenerator.nextId()); + payment1.setCreated(now); + payment1.setClearingDate(TimeUtil.toLocalDate(now)); - payment1.setSenderId(liabilitiesClaimsAssets.getCompanyId()); + payment1.setSenderId(SPVB_ID); // СПВБ + payment1.setAddresseeId(liabilitiesClaimsAssets.getCompanyId()); - payment1.setAddresseeId(liabilitiesClaimsAssets.getCompanyId()); + String symbol2 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); + if (symbol2 == null) { + log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId()); + } else { + payment1.setAdresseeBic(symbol2); + } + + Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" + String companyPRCName = null; + if (companyPRC == null) { + log.warn("Company.id={} not found", PRC_ID); + } else { + companyPRCName = companyPRC.getShortName(); + } + payment1.setPayeeBankName(companyPRCName); + + String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" + payment1.setPayeeBic(symbolPRC); + + payment1.setAddresseeBankName(companyPRCName); + payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); + payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); + payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); + + Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); + payment1.setCreditLegAmount(amount); + payment1.setDebitLegAmount(amount); + + { + Account anotherAcc = selectAccount(payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); + if (anotherAcc == null) { + log.warn("Account not found: companyId = {} AND accountType={} AND accountStatus={} AND processingSign={}", + payment1.getSenderId(), AccountType.Tran, Status.Active, Allowed.ALLOWED); + } else { + payment1.setCreditLegAccountId(anotherAcc.getId()); + } + } + + payment1.setCreditCsAccount(null); + + { + Account acc2 = accountImdg.getSingleObjectByID(payment1.getCreditLegAccountId()); + if (acc2 != null) { + payment1.setCreditLegAccount(acc2.getAccount()); + } + } + + { + Account acc2 = accountImdg.getSingleObjectByID(liabilitiesClaimsAssets.getAccountId()); + if (acc2 != null) { + payment1.setDebitLegAccountId(acc2.getId()); + payment1.setDebitLegAccount(acc2.getAccount()); + } + } + + payment1.setDebitCsAccount(null); + +// payment2.setCreditLegDirection(InOutDirection.out.getKey()); +// payment2.setDebitLegDirection(InOutDirection.in.getKey()); + + payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + + payment1.setTransactionStatus(TransactionStatus.stld.getKey()); + + payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); + + newPaymentInstructions.add(payment1); + } - String symbol1 = selectSymbolValue(payment1.getAddresseeId(), CompanySymbol.BIC); - if (symbol1 == null) { - log.warn("CompanySymbols BIC not found for companyId={}", payment1.getAddresseeId()); - } else { - payment1.setAdresseeBic(symbol1); } + { // record 2 + PaymentInstruction payment2 = new PaymentInstruction(); + payment2.setId(idGenerator.nextId()); + payment2.setCreated(now); + payment2.setClearingDate(TimeUtil.toLocalDate(now)); - Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" - String companyPRCName = null; - if (companyPRC == null) { - log.warn("Company.id={} not found", PRC_ID); - } else { - companyPRCName = companyPRC.getShortName(); - } - payment1.setPayeeBankName(companyPRCName); + payment2.setSenderId(liabilitiesClaimsAssets.getCompanyId()); - String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" - payment1.setPayeeBic(symbolPRC); + payment2.setAddresseeId(liabilitiesClaimsAssets.getCompanyId()); - payment1.setAddresseeBankName(companyPRCName); - - payment1.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); - - payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); - - payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - - Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); - payment1.setCreditLegAmount(amount); - payment1.setDebitLegAmount(amount); - - { - Long accountId = liabilitiesClaimsAssets.getAccountId(); - Account acc1 = accountImdg.getSingleObjectByID(accountId); - if (acc1 == null) { - log.warn("Account not found: {}", accountId); + String symbol1 = selectSymbolValue(payment2.getAddresseeId(), CompanySymbol.BIC); + if (symbol1 == null) { + log.warn("CompanySymbols BIC not found for companyId={}", payment2.getAddresseeId()); } else { - payment1.setCreditLegAccountId(acc1.getId()); - payment1.setCreditLegAccount(acc1.getAccount()); + payment2.setAdresseeBic(symbol1); } - } - payment1.setCreditCsAccount(null); - - { - Account acc1 = selectAccount(payment1.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); - if (acc1 != null) { - payment1.setDebitLegAccountId(acc1.getId()); - payment1.setDebitLegAccount(acc1.getAccount()); + Company companyPRC = companyImdg.getSingleObjectByID(PRC_ID); // 2 "НКО АО ПРЦ" + String companyPRCName = null; + if (companyPRC == null) { + log.warn("Company.id={} not found", PRC_ID); + } else { + companyPRCName = companyPRC.getShortName(); } - } + payment2.setPayeeBankName(companyPRCName); - payment1.setDebitCsAccount(null); + String symbolPRC = selectSymbolValue(PRC_ID, CompanySymbol.BIC); // 2 "НКО АО ПРЦ" + payment2.setPayeeBic(symbolPRC); + + payment2.setAddresseeBankName(companyPRCName); + + payment2.setPaymentDate(TimeUtil.localDateToInstant(liabilitiesClaimsAssets.getSettlementDate())); + + payment2.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); + + payment2.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); + + Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); + payment2.setCreditLegAmount(amount); + payment2.setDebitLegAmount(amount); + + { + Long accountId = liabilitiesClaimsAssets.getAccountId(); + Account acc1 = accountImdg.getSingleObjectByID(accountId); + if (acc1 == null) { + log.warn("Account not found: {}", accountId); + } else { + payment2.setCreditLegAccountId(acc1.getId()); + payment2.setCreditLegAccount(acc1.getAccount()); + } + } + + payment2.setCreditCsAccount(null); + + { + Account acc1 = selectAccount(payment2.getAddresseeId(), AccountType.Corr, Status.Active, Allowed.ALLOWED); + if (acc1 != null) { + payment2.setDebitLegAccountId(acc1.getId()); + payment2.setDebitLegAccount(acc1.getAccount()); + } + } + + payment2.setDebitCsAccount(null); // payment1.setCreditLegDirection(InOutDirection.out.getKey()); // payment1.setDebitLegDirection(InOutDirection.in.getKey()); - payment1.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment1.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment2.setCreditLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); + payment2.setDebitLegCurrencyCode(liabilitiesClaimsAssets.getCurrency()); - payment1.setTransactionStatus(TransactionStatus.stld.getKey()); + payment2.setTransactionStatus(TransactionStatus.stld.getKey()); + payment2.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment2)); - payment1.setDocumentNumber(nextDocumentNumber(liabilitiesClaimsAssets, payment1)); - - newPaymentInstructions.add(payment1); + newPaymentInstructions.add(payment2); + } } } return newPaymentInstructions; From 4d804f96441da2ca7ae31346c1fca80bb33760e9 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 8 Feb 2023 18:24:33 +0300 Subject: [PATCH 03/10] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-189?= =?UTF-8?q?=20PaymentInstructionCreator=20B=20*leg=5F=3Damount=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=20=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../clearing/service/builder/PaymentInstructionCreator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java index dd60f47e7..c3f72cfa1 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java @@ -397,7 +397,7 @@ public class PaymentInstructionCreator { payment1.setPaymentPurpose("Размещение депозита " + liabilitiesClaimsAssets.getContract()); payment1.setSettlementDate(liabilitiesClaimsAssets.getSettlementDate()); - Long amount = liabilitiesClaimsAssets.getLiabilitiesQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); + Long amount = liabilitiesClaimsAssets.getClaimsQuantity() == null ? null : liabilitiesClaimsAssets.getClaimsQuantity().abs().longValue(); payment1.setCreditLegAmount(amount); payment1.setDebitLegAmount(amount); From 535908f16999105378d2f0b8f457d56eab4e3554 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 8 Feb 2023 19:35:19 +0300 Subject: [PATCH 04/10] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-189?= =?UTF-8?q?=20PaymentInstructionCreator=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83?= =?UTF-8?q?=20=D0=BD=D0=B0=20liabilitiesClaimsAssets.settlementDate=20=3D?= =?UTF-8?q?=20=D1=81=D0=B5=D0=B3=D0=BE=D0=B4=D0=BD=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/ru/spcex/clearing/service/Clearing.java | 8 ++++++-- .../service/builder/PaymentInstructionCreator.java | 10 +++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java index b7f28edd0..86f921037 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java @@ -253,8 +253,12 @@ public class Clearing { log.trace("creating paymentInstructions"); List paymentInstructions = paymentInstructionCreator.createAndSavePaymentInstructions(execDeposit, lcaFirstLeg, Collections.singleton(category)); - paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lcaFirstLeg, lcmFirstLeg, paymentInstructions, Collections.singleton(category)); - liabilitiesClaimsAssetsImdg.update(lcaFirstLeg); + if (paymentInstructions.isEmpty()) { + log.trace("For lcaFirstLeg[{}] did not creaded paymentInstruction's", lcaFirstLeg.getId()); + } else { + paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lcaFirstLeg, lcmFirstLeg, paymentInstructions, Collections.singleton(category)); + liabilitiesClaimsAssetsImdg.update(lcaFirstLeg); + } log.trace("lcaFirstLeg {}, lcaSecondLeg {}", lcaFirstLeg, lcaSecondLeg); // log.trace("updating LiabilitiesClaimsMoney by payment"); diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java index c3f72cfa1..110f6d025 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/builder/PaymentInstructionCreator.java @@ -77,8 +77,8 @@ public class PaymentInstructionCreator { public List createAndSavePaymentInstructions(ExecutionDeposit executionDeposit, LiabilitiesClaimsAssets liabilitiesClaimsAssets, Collection clearingCategory) { List newPaymentInstructions = createPaymentInstructions(executionDeposit, liabilitiesClaimsAssets, clearingCategory); - log.trace("Created {} PaymentInstruction by LiabilitiesClaimsAssets[{}]. Do save ti IMDG.", - newPaymentInstructions.size(), liabilitiesClaimsAssets.getId()); + log.trace("Created {} PaymentInstruction by LiabilitiesClaimsAssets[{}], category {}. Do save in IMDG.", + newPaymentInstructions.size(), liabilitiesClaimsAssets.getId(), clearingCategory); for (PaymentInstruction instruction : newPaymentInstructions) { paymentInstructionImdg.insert(instruction); } @@ -98,7 +98,11 @@ public class PaymentInstructionCreator { Collection clearingCategory) { List newPaymentInstructions = new ArrayList<>(); Instant now = Instant.now(); - + LocalDate today = LocalDate.now(); + if (!today.equals(liabilitiesClaimsAssets.getSettlementDate())) { + log.debug("For liabilitiesClaimsAssets.SettlementDate={} is not today.", liabilitiesClaimsAssets.getSettlementDate()); + return newPaymentInstructions; + } // I if (clearingCategory.contains(ClearingCategory.I)) { log.debug("By liabilitiesClaimsAssets[{}] create for category I 1 PaymentInstruction record", liabilitiesClaimsAssets.getId()); From 5b0184d60feb88b0ac5e261d19e8102815d09001 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 8 Feb 2023 19:56:29 +0300 Subject: [PATCH 05/10] update meta --- .../src/main/resources/meta/meta.xml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 72ccf83f2..831d80124 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + @@ -1150,22 +1150,23 @@ - - - - - - + + + + + + - - + + + - + - + @@ -1174,9 +1175,8 @@ - - + From 34d01f1a221f7e6aba84f6be6a7c1bf6965772b6 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 8 Feb 2023 19:58:59 +0300 Subject: [PATCH 06/10] update meta --- clearing-parent/backend-api/src/main/resources/meta/meta.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index 831d80124..d034169b2 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1159,7 +1159,7 @@ - + From 650583bd7e52f5f61a79bdc3d6713f1e6dd0f62f Mon Sep 17 00:00:00 2001 From: AKurakin Date: Wed, 8 Feb 2023 20:07:49 +0300 Subject: [PATCH 07/10] =?UTF-8?q?http://jira.mfd.msk:8088/browse/CLS-189?= =?UTF-8?q?=20PaymentInstructionCreator=20=D1=85=D0=B0=D0=BA,=20=D1=87?= =?UTF-8?q?=D1=82=D0=BE=D0=B1=D1=8B=20=D0=BD=D0=B5=20=D1=81=D0=BE=D0=B7?= =?UTF-8?q?=D0=B4=D0=B0=D0=B2=D0=B0=D1=82=D1=8C=20PaymentInstruction=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B2=D0=BE=D0=B9=20=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=B5=20I=20=D0=B4=D0=BB=D1=8F=20=D0=BF=D0=B5?= =?UTF-8?q?=D1=80=D0=B2=D0=BE=D0=B3=D0=BE=20executionDeposit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/ru/spcex/clearing/service/Clearing.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java index 86f921037..f7ae90cdb 100644 --- a/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java +++ b/clearing-parent/clearing-service/src/main/java/ru/spcex/clearing/service/Clearing.java @@ -252,12 +252,18 @@ public class Clearing { liabilitiesClaimsAssetsImdg.update(lcaSecondLeg); log.trace("creating paymentInstructions"); - List paymentInstructions = paymentInstructionCreator.createAndSavePaymentInstructions(execDeposit, lcaFirstLeg, Collections.singleton(category)); - if (paymentInstructions.isEmpty()) { - log.trace("For lcaFirstLeg[{}] did not creaded paymentInstruction's", lcaFirstLeg.getId()); + boolean isCreatedFirstLegI = ClearingCategory.I.equals(category) && !lcaFirstLegFound.isPresent(); + if (isCreatedFirstLegI) { + log.debug("ignore create paymentInstruction for I firstLeg new: execDeposit {}, lcaFirstLeg {}", + execDeposit.getId(), lcaFirstLeg.getId()); } else { - paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lcaFirstLeg, lcmFirstLeg, paymentInstructions, Collections.singleton(category)); - liabilitiesClaimsAssetsImdg.update(lcaFirstLeg); + List paymentInstructions = paymentInstructionCreator.createAndSavePaymentInstructions(execDeposit, lcaFirstLeg, Collections.singleton(category)); + if (paymentInstructions.isEmpty()) { + log.trace("For lcaFirstLeg[{}] did not creaded paymentInstruction's", lcaFirstLeg.getId()); + } else { + paymentInstructionCreator.updateFieldLiabilitiesClaimsAssetsByPayment(lcaFirstLeg, lcmFirstLeg, paymentInstructions, Collections.singleton(category)); + liabilitiesClaimsAssetsImdg.update(lcaFirstLeg); + } } log.trace("lcaFirstLeg {}, lcaSecondLeg {}", lcaFirstLeg, lcaSecondLeg); From 29a9261ee8081822f885f5c2b2365b96b02e0222 Mon Sep 17 00:00:00 2001 From: etreschenkov Date: Wed, 8 Feb 2023 20:20:36 +0300 Subject: [PATCH 08/10] update meta --- clearing-parent/backend-api/src/main/resources/meta/meta.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index d034169b2..a9aa517af 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + From 1fe0168446153a3be653b8610825125712ffac00 Mon Sep 17 00:00:00 2001 From: AKurakin Date: Thu, 9 Feb 2023 10:57:55 +0300 Subject: [PATCH 09/10] =?UTF-8?q?account-service=20http://jira.mfd.msk:808?= =?UTF-8?q?8/browse/CLS-231=20=D0=B2=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B8=20=D1=81=D0=BF=D1=80=D0=B8=D0=BD=D0=B3=20?= =?UTF-8?q?(spring=3D=D0=B2=D0=B5=D1=81=D0=BD=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ru/spcex/clearing/account/config/ValidationConfig.java | 5 +++++ .../spcex/clearing/account/service/BankAccountService.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/ValidationConfig.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/ValidationConfig.java index d227d36a6..f6e0e1deb 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/ValidationConfig.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/config/ValidationConfig.java @@ -1,5 +1,7 @@ package ru.spcex.clearing.account.config; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import ru.clearing.classes.statics.data.account.Account; @@ -24,9 +26,11 @@ import java.util.function.Function; @Configuration public class ValidationConfig { + Logger log = LoggerFactory.getLogger(getClass()); private final Map> imdgs; public ValidationConfig(ImdgProvider imdgProvider) { + log.debug("Init validator config"); this.imdgs = new HashMap<>(); BiConsumer> addImdg = (s, aClass) -> imdgs.put(s, imdgProvider.getImdg(s, aClass)); addImdg.accept(IMDGDistributedNames.Map_Account, Account.class); @@ -44,6 +48,7 @@ public class ValidationConfig { @Bean("bankAccountNewRequestValidator") public Function bankAccountNewRequestValidator() { + log.debug("Create validator bankAccountNewRequestValidator"); return bankAccountNewRequest -> { ImdgValidationContext context = new ImdgValidationContext<>(); context.setValidatedObject(bankAccountNewRequest); diff --git a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java index 44982dd03..0a7c76a63 100644 --- a/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java +++ b/clearing-parent/account-service/src/main/java/ru/spcex/clearing/account/service/BankAccountService.java @@ -6,6 +6,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import ru.clearing.classes.statics.data.account.Account; import ru.clearing.classes.statics.data.account.BankAccount; @@ -51,6 +52,7 @@ public class BankAccountService extends QueueConsumer implements InitializingBea ImdgProvider imdgProvider, IMessageResolver messageResolver, + @Qualifier("bankAccountNewRequestValidator") Function bankAccountNewRequestValidator) { super(kafkaQueue, kafkaProducer); this.bankAccountMap = imdgProvider.getImdg(IMDGDistributedNames.Map_BankAccount, BankAccount.class); From 3520ac0392289cbe6821557ff894a28bed0be0fb Mon Sep 17 00:00:00 2001 From: etreshenkov Date: Thu, 9 Feb 2023 11:59:54 +0300 Subject: [PATCH 10/10] update meta --- .../src/main/resources/meta/meta.xml | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/clearing-parent/backend-api/src/main/resources/meta/meta.xml b/clearing-parent/backend-api/src/main/resources/meta/meta.xml index a9aa517af..4990ab29d 100644 --- a/clearing-parent/backend-api/src/main/resources/meta/meta.xml +++ b/clearing-parent/backend-api/src/main/resources/meta/meta.xml @@ -1,6 +1,6 @@ - + @@ -1152,14 +1152,13 @@ - - - - + + + + - - - + + @@ -1170,12 +1169,13 @@ - - + + +