From f3035b011fac7f414530ea989a93509f87e95e3f Mon Sep 17 00:00:00 2001 From: xuhaihui <2098865055@qq.com> Date: Tue, 9 Sep 2025 17:03:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=80=9F=E6=AC=BE=E5=8D=95=E5=A4=87=E7=94=A8?= =?UTF-8?q?=E9=87=91=E9=A2=9D=E9=80=BB=E8=BE=91=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../operate/DailyLoanBillSubValidatorOp.java | 20 +++++++++++++------ .../LoanSlipReserveFundReverserOp.java | 10 ++++++---- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyLoanBillSubValidatorOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyLoanBillSubValidatorOp.java index ae71bcd..511ed7d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyLoanBillSubValidatorOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/DailyLoanBillSubValidatorOp.java @@ -73,10 +73,13 @@ public class DailyLoanBillSubValidatorOp extends AbstractOperationServicePlugIn DynamicObjectCollection entryEntityCollection = quotaImprestLedger.getDynamicObjectCollection("zcgj_entryentity");//分录 for (DynamicObject entryEntity : entryEntityCollection) { DynamicObject person = entryEntity.getDynamicObject("zcgj_person");//人员 + if (person == null) { + continue; + } if (person.getPkValue().equals(applier.getPkValue())) { BigDecimal zcgj_remainingquota = entryEntity.getBigDecimal("zcgj_remainingquota");//剩余额度 if (zcgj_remainingquota.compareTo(loanAmount) < 0) { - this.addFatalErrorMessage(dataEnt, "借款金额超过剩余额度!!"); + this.addFatalErrorMessage(dataEnt, "借款金额超过剩余额度!剩余额度为:" + zcgj_remainingquota); return; } } @@ -103,26 +106,31 @@ public class DailyLoanBillSubValidatorOp extends AbstractOperationServicePlugIn //项目筹备备用金 BigDecimal loanAmount = er_dailyLoanBill.getBigDecimal("loanamount");//借款金额合计 - QFilter filter = new QFilter("zcgj_entryentity.zcgj_person", QCP.equals, applier.getPkValue());// 人员 + QFilter filter = new QFilter("zcgj_persons.fbasedataid", QCP.in, applier.getPkValue());//项目筹备备用金借款人 filter.and(new QFilter("zcgj_currentyear", QCP.equals, bizDateYear));//年度 - filter.and(new QFilter("zcgj_persons.fbasedataid", QCP.in, applier.getPkValue()));//项目筹备备用金借款人 DynamicObject quotaImprestLedger = BusinessDataServiceHelper.loadSingle("zcgj_quotaimprestledger", new QFilter[]{filter});//定额备用金初始台账 if (quotaImprestLedger == null) { this.addFatalErrorMessage(dataEnt, "您未在定额备用金初始台账里!!"); return; } DynamicObjectCollection entryEntityCollection = quotaImprestLedger.getDynamicObjectCollection("zcgj_entryentity");//分录 + boolean hasProjectPreparation = false; // 标记是否存在项目筹备人员 for (DynamicObject entryEntity : entryEntityCollection) { - DynamicObject person = entryEntity.getDynamicObject("zcgj_person");//人员 DynamicObject zcgj_personType = entryEntity.getDynamicObject("zcgj_persontype");//人员类型 - if (person.getPkValue().equals(applier.getPkValue()) && zcgj_personType != null && zcgj_personType.getString("number").equals("项目筹备")) { + if (zcgj_personType != null && "项目筹备".equals(zcgj_personType.getString("number"))) { + hasProjectPreparation = true; BigDecimal zcgj_remainingquota = entryEntity.getBigDecimal("zcgj_remainingquota");//剩余额度 if (zcgj_remainingquota.compareTo(loanAmount) < 0) { - this.addFatalErrorMessage(dataEnt, "借款金额超过剩余额度!!"); + this.addFatalErrorMessage(dataEnt, "借款金额超过剩余额度!剩余额度为:" + zcgj_remainingquota); return; } + break; } } + if (!hasProjectPreparation) { + this.addFatalErrorMessage(dataEnt, "对应的定额备用金初始台账中不存在人员类型为项目筹备的额度!"); + return; + } } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java index 131535b..e3d0df3 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/LoanSlipReserveFundReverserOp.java @@ -58,6 +58,9 @@ public class LoanSlipReserveFundReverserOp extends AbstractOperationServicePlugI DynamicObjectCollection entryEntityCollection = quotaImprestLedger.getDynamicObjectCollection("zcgj_entryentity");//分录 for (DynamicObject entryEntity : entryEntityCollection) { DynamicObject person = entryEntity.getDynamicObject("zcgj_person");//人员 + if (person == null) { + continue; + } if (person.getPkValue().equals(applier.getPkValue())) { if (operationKey.equals("submit")) { //提交 @@ -86,18 +89,17 @@ public class LoanSlipReserveFundReverserOp extends AbstractOperationServicePlugI BigDecimal loanAmount = er_dailyLoanBill.getBigDecimal("loanamount");//借款金额合计 LocalDate localDate = bizDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); String bizDateYear = String.valueOf(localDate.getYear());//申请日期年份 - QFilter filter = new QFilter("zcgj_entryentity.zcgj_person", QCP.equals, applier.getPkValue());// 人员 + QFilter filter = new QFilter("zcgj_persons.fbasedataid", QCP.in, applier.getPkValue());//项目筹备备用金借款人 filter.and(new QFilter("zcgj_currentyear", QCP.equals, bizDateYear));//年度 - filter.and(new QFilter("zcgj_persons.fbasedataid", QCP.in, applier.getPkValue()));//项目筹备备用金借款人 DynamicObject quotaImprestLedger = BusinessDataServiceHelper.loadSingle("zcgj_quotaimprestledger", new QFilter[]{filter});//定额备用金初始台账 if (quotaImprestLedger == null) { return; } DynamicObjectCollection entryEntityCollection = quotaImprestLedger.getDynamicObjectCollection("zcgj_entryentity");//分录 for (DynamicObject entryEntity : entryEntityCollection) { - DynamicObject person = entryEntity.getDynamicObject("zcgj_person");//人员 +// DynamicObject person = entryEntity.getDynamicObject("zcgj_person");//人员 DynamicObject zcgj_personType = entryEntity.getDynamicObject("zcgj_persontype");//人员类型 - if (person.getPkValue().equals(applier.getPkValue()) && zcgj_personType != null && zcgj_personType.getString("number").equals("项目筹备")) { + if (zcgj_personType != null && zcgj_personType.getString("number").equals("项目筹备")) { if (operationKey.equals("submit")) { //提交 BigDecimal zcgj_usedquota = entryEntity.getBigDecimal("zcgj_usedquota").add(loanAmount);//已使用+借款金额