From b58d6c65f0e1976bcf2992809f35c7071917d45c Mon Sep 17 00:00:00 2001 From: zzs Date: Tue, 3 Dec 2024 15:54:31 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E8=AE=A2=E8=88=B1=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=8F=90=E7=A4=BA=E5=89=A9=E4=BD=99=E9=A2=9D?= =?UTF-8?q?=E5=BA=A6=E4=B8=8D=E8=B6=B3=E6=A0=A1=E9=AA=8C=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storagetrans/op/StorageTransAuditOp.java | 74 +++++++++++++++++ .../validator/StorageAuditValid.java | 83 +++---------------- 2 files changed, 87 insertions(+), 70 deletions(-) diff --git a/src/main/java/com/yem/wm/es/storagetrans/op/StorageTransAuditOp.java b/src/main/java/com/yem/wm/es/storagetrans/op/StorageTransAuditOp.java index a6e89ece..8ab789b8 100644 --- a/src/main/java/com/yem/wm/es/storagetrans/op/StorageTransAuditOp.java +++ b/src/main/java/com/yem/wm/es/storagetrans/op/StorageTransAuditOp.java @@ -429,5 +429,79 @@ public class StorageTransAuditOp extends AbstractOperationServicePlugIn { } } + @Override + public void afterExecuteOperationTransaction(AfterOperationArgs e) { + super.afterExecuteOperationTransaction(e); + DynamicObject[] entities = e.getDataEntities(); + for (DynamicObject dataEntitie : entities) { + dataEntitie = BusinessDataServiceHelper.loadSingle(dataEntitie.getPkValue(), dataEntitie.getDynamicObjectType().getName()); + DynamicObject customer = dataEntitie.getDynamicObject("yem_customer"); + DynamicObjectCollection creditDetails = dataEntitie.getDynamicObjectCollection("yem_creditdetail"); + if (YEM.isNotEmpty(customer) && creditDetails.size() > 0) { + DynamicObject method = TotalUtil.getSettlementMethod(dataEntitie); + DynamicObject company = dataEntitie.getDynamicObject("yem_company.yem_erporg"); + String swiftCode = TotalUtil.getSwiftCode(dataEntitie); + DynamicObject csrCreditLine = TotalUtil.getCsrCreditLine(customer, method, company, swiftCode); + for (DynamicObject creditDetail : creditDetails) { + DynamicObject salecontractno = creditDetail.getDynamicObject("yem_salecontractno"); + if (salecontractno == null) continue; + salecontractno = BusinessDataServiceHelper.loadSingle(salecontractno.getPkValue(), salecontractno.getDynamicObjectType().getName()); + boolean issinosurecon = salecontractno.getBoolean("yem_issinosurecon"); + if (!issinosurecon) { + continue; + } + if (YEM.isNotEmpty(csrCreditLine)) { + DynamicObjectCollection infos = csrCreditLine.getDynamicObjectCollection("yem_im_info"); + DynamicObject addNew = infos.addNew(); + addNew.set("yem_storagetransno", dataEntitie);//储运托单号 + addNew.set("yem_salecontractno", creditDetail.get("yem_salecontractno"));//外销合同号 + addNew.set("yem_contractcurr", dataEntitie.get("yem_currency"));//结算币别 + addNew.set("yem_rapstyle", creditDetail.get("yem_quotation_cd"));//结算方式 + addNew.set("yem_reccondition", creditDetail.get("yem_reccondition_cd"));//收款条件 + addNew.set("yem_creditamt", creditDetail.get("yem_creditamt_cd"));//信保金额(合同) + addNew.set("yem_creditamtuse", creditDetail.get("yem_usacreditamt_cd"));//信保金额(使用) + addNew.set("yem_creditdeadline", creditDetail.get("yem_term_cd"));//信用期限 + addNew.set("yem_creditrate", creditDetail.get("yem_sinosurerate_cd"));//信保费率 + addNew.set("yem_premium", creditDetail.get("yem_insuranceamt_cd"));//保险费 + addNew.set("yem_creditamtbase", creditDetail.get("yem_creditamtbase"));//信保金额本位币 + addNew.set("yem_premiumbase", creditDetail.get("yem_insuranceamtbas_cd"));//保险费金额本位币 + addNew.set("yem_ladingdate", creditDetail.get("yem_ladingdate"));//提单日期 + addNew.set("yem_creditdate1_cd", creditDetail.get("yem_creditdate1_cd"));//信保天数1 + addNew.set("yem_paydate1", creditDetail.get("yem_paydate1"));//应收款日期1 + // zzs add 2024/1/25 + addNew.set("yem_countpayback", creditDetail.get("yem_countpayback"));//应回款倒计时 + addNew.set("yem_paymentamt1_cd", creditDetail.get("yem_paymentamt1_cd"));//收款金额1 + addNew.set("yem_paymentamt1_cdbase", creditDetail.get("yem_paymentamt1_cdbase"));//收款金额1 + addNew.set("yem_creditdate2_cd", creditDetail.get("yem_creditdate2_cd"));//信保天数2 + addNew.set("yem_paydate2", creditDetail.get("yem_paydate2"));//应收款日期2 + addNew.set("yem_paymentamt2_cd", creditDetail.get("yem_paymentamt2_cd"));//收款金额2 + addNew.set("yem_paymentamt2_cdbase", creditDetail.get("yem_paymentamt2_cdbase"));//收款金额2 + addNew.set("yem_actualsinkamt", creditDetail.get("yem_actualsinkamt_cd"));//实际收汇金额 + addNew.set("yem_actualsinkamtbase", creditDetail.get("yem_actualsinkamtba_cd"));//实际收汇金额本位币 + // zzs add 2024/1/25 + addNew.set("yem_amountowed", creditDetail.get("yem_amountowed"));//欠款金额 + addNew.set("yem_creditremark", creditDetail.getString("yem_creditremark"));//信保备注 + addNew.set("yem_storagetransid", dataEntitie.getPkValue());//储运托单Id + addNew.set("yem_storagetranentryid", creditDetail.getPkValue());//储运托单分录行Id + addNew.set("yem_storagetransamt", creditDetail.get("yem_storagetransamt"));//订舱合同金额 + + addNew.set("yem_year_e", creditDetail.get("yem_year_e"));//年份 + addNew.set("yem_creditstatus_e", creditDetail.get("yem_creditstatus_e"));//投保状态 + } else { + throw new KDBizException(String.format("找不到客户:%s的客户信保额度申请单", customer.getString("name"))); + } + + } + BigDecimal decimal = CreditBackFillUtils.calcRemainingAmount(csrCreditLine); + csrCreditLine.set("yem_balance", decimal); +// SaveServiceHelper.update(new DynamicObject[]{csrCreditLine}); + OperationResult Operate = OperationServiceHelper.executeOperate("save", csrCreditLine.getDynamicObjectType().getName(), new DynamicObject[]{csrCreditLine}, OperateOption.create()); + if (Operate.isSuccess()) { + + } + } + dataEntitie.set("yem_whether", true); + } + } } diff --git a/src/main/java/com/yem/wm/es/storagetrans/validator/StorageAuditValid.java b/src/main/java/com/yem/wm/es/storagetrans/validator/StorageAuditValid.java index 9391e118..3360b0bb 100644 --- a/src/main/java/com/yem/wm/es/storagetrans/validator/StorageAuditValid.java +++ b/src/main/java/com/yem/wm/es/storagetrans/validator/StorageAuditValid.java @@ -32,83 +32,26 @@ public class StorageAuditValid extends AbstractValidator { DynamicObject dataEntitie = dataes.getDataEntity(); dataEntitie = BusinessDataServiceHelper.loadSingle(dataEntitie.getPkValue(), dataEntitie.getDynamicObjectType().getName()); DynamicObject customer = dataEntitie.getDynamicObject("yem_customer"); - DynamicObjectCollection creditDetails = dataEntitie.getDynamicObjectCollection("yem_creditdetail"); DynamicObject method = TotalUtil.getSettlementMethod(dataEntitie); DynamicObject company = dataEntitie.getDynamicObject("yem_company.yem_erporg"); String swiftCode = TotalUtil.getSwiftCode(dataEntitie); DynamicObject csrCreditLine = TotalUtil.getCsrCreditLine(customer, method, company, swiftCode); - if (creditDetails.size() > 0) { - for (DynamicObject creditDetail : creditDetails) { - DynamicObject salecontractno = creditDetail.getDynamicObject("yem_salecontractno"); - if (salecontractno == null) continue; - salecontractno = BusinessDataServiceHelper.loadSingle(salecontractno.getPkValue(), salecontractno.getDynamicObjectType().getName()); - boolean issinosurecon = salecontractno.getBoolean("yem_issinosurecon"); - if (!issinosurecon) { - continue; - } - if (YEM.isNotEmpty(customer) && YEM.isNotEmpty(csrCreditLine)) { - log.info("客户信保限额申请:[{}]", csrCreditLine.getString("billno")); - BigDecimal decimal = CreditBackFillUtils.calcRemainingAmount(csrCreditLine); - BigDecimal usacreditamt = dataEntitie.getBigDecimal("yem_usacreditamt"); - log.info("{} >= {}", decimal, usacreditamt); - if (decimal.compareTo(usacreditamt) >= 0) { - csrCreditLine.set("yem_balance", decimal); - log.info("{} >= {} 不执行提示!", decimal, usacreditamt); - } else { - this.addMessage(dataes, String.format("当前客户对应的信保额度申请剩余额度小于0,请确认!剩余额度[%s] : 投保金额[%s]", decimal, usacreditamt)); - return; - } - } else { - this.addMessage(dataes, "找不到客户:"+customer.getString("name")+"的客户信保额度申请单"); - } - if (YEM.isNotEmpty(csrCreditLine)) { - DynamicObjectCollection infos = csrCreditLine.getDynamicObjectCollection("yem_im_info"); - DynamicObject addNew = infos.addNew(); - addNew.set("yem_storagetransno", dataEntitie);//储运托单号 - addNew.set("yem_salecontractno", creditDetail.get("yem_salecontractno"));//外销合同号 - addNew.set("yem_contractcurr", dataEntitie.get("yem_currency"));//结算币别 - addNew.set("yem_rapstyle", creditDetail.get("yem_quotation_cd"));//结算方式 - addNew.set("yem_reccondition", creditDetail.get("yem_reccondition_cd"));//收款条件 - addNew.set("yem_creditamt", creditDetail.get("yem_creditamt_cd"));//信保金额(合同) - addNew.set("yem_creditamtuse", creditDetail.get("yem_usacreditamt_cd"));//信保金额(使用) - addNew.set("yem_creditdeadline", creditDetail.get("yem_term_cd"));//信用期限 - addNew.set("yem_creditrate", creditDetail.get("yem_sinosurerate_cd"));//信保费率 - addNew.set("yem_premium", creditDetail.get("yem_insuranceamt_cd"));//保险费 - addNew.set("yem_creditamtbase", creditDetail.get("yem_creditamtbase"));//信保金额本位币 - addNew.set("yem_premiumbase", creditDetail.get("yem_insuranceamtbas_cd"));//保险费金额本位币 - addNew.set("yem_ladingdate", creditDetail.get("yem_ladingdate"));//提单日期 - addNew.set("yem_creditdate1_cd", creditDetail.get("yem_creditdate1_cd"));//信保天数1 - addNew.set("yem_paydate1", creditDetail.get("yem_paydate1"));//应收款日期1 - // zzs add 2024/1/25 - addNew.set("yem_countpayback", creditDetail.get("yem_countpayback"));//应回款倒计时 - addNew.set("yem_paymentamt1_cd", creditDetail.get("yem_paymentamt1_cd"));//收款金额1 - addNew.set("yem_paymentamt1_cdbase", creditDetail.get("yem_paymentamt1_cdbase"));//收款金额1 - addNew.set("yem_creditdate2_cd", creditDetail.get("yem_creditdate2_cd"));//信保天数2 - addNew.set("yem_paydate2", creditDetail.get("yem_paydate2"));//应收款日期2 - addNew.set("yem_paymentamt2_cd", creditDetail.get("yem_paymentamt2_cd"));//收款金额2 - addNew.set("yem_paymentamt2_cdbase", creditDetail.get("yem_paymentamt2_cdbase"));//收款金额2 - addNew.set("yem_actualsinkamt", creditDetail.get("yem_actualsinkamt_cd"));//实际收汇金额 - addNew.set("yem_actualsinkamtbase", creditDetail.get("yem_actualsinkamtba_cd"));//实际收汇金额本位币 - // zzs add 2024/1/25 - addNew.set("yem_amountowed", creditDetail.get("yem_amountowed"));//欠款金额 - addNew.set("yem_creditremark", creditDetail.getString("yem_creditremark"));//信保备注 - addNew.set("yem_storagetransid", dataEntitie.getPkValue());//储运托单Id - addNew.set("yem_storagetranentryid", creditDetail.getPkValue());//储运托单分录行Id - - addNew.set("yem_storagetransamt", creditDetail.get("yem_storagetransamt"));//订舱合同金额 - - addNew.set("yem_year_e", creditDetail.get("yem_year_e"));//年份 - addNew.set("yem_creditstatus_e", creditDetail.get("yem_creditstatus_e"));//投保状态 - } - - } - OperationResult Operate = OperationServiceHelper.executeOperate("save", csrCreditLine.getDynamicObjectType().getName(), new DynamicObject[]{csrCreditLine}, OperateOption.create()); - if (Operate.isSuccess()) { + if (YEM.isNotEmpty(customer) && YEM.isNotEmpty(csrCreditLine)) { + log.info("客户信保限额申请:[{}]", csrCreditLine.getString("billno")); + BigDecimal decimal = CreditBackFillUtils.calcRemainingAmount(csrCreditLine); + BigDecimal usacreditamt = dataEntitie.getBigDecimal("yem_usacreditamt"); + log.info("{} >= {}", decimal, usacreditamt); + if (decimal.compareTo(usacreditamt) >= 0) { + csrCreditLine.set("yem_balance", decimal); + log.info("{} >= {} 不执行提示!", decimal, usacreditamt); + } else { + this.addMessage(dataes, String.format("当前客户对应的信保额度申请剩余额度小于0,请确认!剩余额度[%s] : 投保金额[%s]", decimal, usacreditamt)); + return; } + } else { + this.addMessage(dataes, "找不到客户:"+customer.getString("name")+"的客户信保额度申请单"); } - - dataEntitie.set("yem_whether", true); } } }