From b1dd342385c9f7e39f874d213625d657a86ca304 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Wed, 25 Jun 2025 17:05:41 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E7=A7=BB=E9=99=A4=E6=97=A0=E5=90=88=E5=90=8C=E4=BB=98?= =?UTF-8?q?=E6=AC=BE=E5=8F=8D=E5=86=99=E9=87=91=E9=A2=9D=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/operate/PaymentRegisterFundOpExt.java | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentRegisterFundOpExt.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentRegisterFundOpExt.java index f7ec450..5f86b5f 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentRegisterFundOpExt.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/operate/PaymentRegisterFundOpExt.java @@ -69,7 +69,7 @@ public class PaymentRegisterFundOpExt extends PaymentRegisterFundOp { DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", "entry,entry.e_corebillentryseq", new QFilter[]{paybillFilter}); Set payBillSer = new HashSet<>(); if(paybill!=null){ - for (DynamicObject dynamicObject : paybill.getDynamicObjectCollection("entry")) { + for (DynamicObject dynamicObject : paybill.getDynamicObjectCollection("entry")) {//付款处理单-付款明细分录 int corebillentryseq = dynamicObject.getInt("e_corebillentryseq");//核心单据行号 payBillSer.add(corebillentryseq); log.info("执行PaymentRegisterFundOpExt:付款处理单涉及核心单据行号:"+corebillentryseq); @@ -109,20 +109,6 @@ public class PaymentRegisterFundOpExt extends PaymentRegisterFundOp { } else { paymentEntry.set("completepay", false); } - break; - }else if (StringUtils.equals(payType, applyPayType) && payBillSer.contains(seq)){ - BigDecimal oldRealPayAmt = paymentEntry.getBigDecimal("thisrealpayamt"); - BigDecimal applyOfTaxAmount = paymentEntry.getBigDecimal("applyoftaxamount"); - BigDecimal thisRealPayAmt = oldRealPayAmt.add(thisOfTaxAmt); - BigDecimal thisWaitPayAmt = applyOfTaxAmount.subtract(thisRealPayAmt); - paymentEntry.set("thisrealpayamt", thisRealPayAmt); - paymentEntry.set("thiswaitpayamt", thisWaitPayAmt); - if (thisRealPayAmt.compareTo(applyOfTaxAmount) >= 0) { - paymentEntry.set("completepay", true); - } else { - paymentEntry.set("completepay", false); - } - break; } } From 05914e452a36798789d4a6c5ef7eb30638f7e984 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Wed, 25 Jun 2025 17:06:43 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90?= =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E7=A1=AE=E8=AE=A4=E5=8D=95=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=9B=E5=BB=BA=E4=BA=BA=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../workflow/InContractSettleFiConfirmWorkFlowPlugin.java | 1 + .../plugin/workflow/InContractSettleInvalidWorkFlowPlugin.java | 1 + .../workflow/OutContractSettleFiConfirmWorkFlowPlugin.java | 1 + .../workflow/OutContractSettleInvalidWorkFlowPlugin.java | 1 + .../workflow/OutContractSettleReversalWorkFlowPlugin.java | 3 +++ 5 files changed, 7 insertions(+) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java index 87a0d64..cc67222 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleFiConfirmWorkFlowPlugin.java @@ -46,6 +46,7 @@ public class InContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin inFinaceconfirm.set("zcgj_invoice_org",inContractSettle.getDynamicObject("project").getDynamicObject("projectorg")); // getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer")); inFinaceconfirm.set("billstatus","A"); + inFinaceconfirm.set("creator",inContractSettle.getDynamicObject("creator")); DynamicObjectCollection itementry = inContractSettle.getDynamicObjectCollection("itementry"); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleInvalidWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleInvalidWorkFlowPlugin.java index 351f2be..64f1389 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleInvalidWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/InContractSettleInvalidWorkFlowPlugin.java @@ -47,6 +47,7 @@ public class InContractSettleInvalidWorkFlowPlugin implements IWorkflowPlugin { // getModel().setValue("zcgj_jscustomer",ecincontractsettle.getDynamicObject("zcgj_jscustomer")); inFinaceconfirm.set("billstatus","C"); inFinaceconfirm.set("zcgj_is_invalid",true); + inFinaceconfirm.set("creator",inContractSettle.getDynamicObject("creator")); DynamicObjectCollection itementry = inContractSettle.getDynamicObjectCollection("itementry"); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java index f5e905a..ee4d29e 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleFiConfirmWorkFlowPlugin.java @@ -50,6 +50,7 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer")); outFinaceconfirm.set("billstatus","A"); outFinaceconfirm.set("zcgj_is_reversabillid",true); + outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator")); DynamicObjectCollection itementry = outContractSettle.getDynamicObjectCollection("itementry"); DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry"); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleInvalidWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleInvalidWorkFlowPlugin.java index adb2c96..9a807e6 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleInvalidWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleInvalidWorkFlowPlugin.java @@ -51,6 +51,7 @@ public class OutContractSettleInvalidWorkFlowPlugin implements IWorkflowPlugin { outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer")); outFinaceconfirm.set("billstatus","C"); outFinaceconfirm.set("zcgj_is_invalid",true); + outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator")); DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry"); entryEntity1.clear(); diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java index 6aaf18a..dadff39 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/workflow/OutContractSettleReversalWorkFlowPlugin.java @@ -55,6 +55,7 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin inContractSettle.set("isonlist", outContractSettle.getBoolean("isonlist")); inContractSettle.set("conttotaloftaxamount", outContractSettle.getBoolean("conttotaloftaxamount")); inContractSettle.set("zcgj_is_reversabillid", true); + inContractSettle.set("creator", outContractSettle.getDynamicObject("creator")); DynamicObject payitem = BusinessDataServiceHelper.loadSingle("ec_payitem", new QFilter[]{new QFilter("number", QCP.equals,"HTCX")}); @@ -109,6 +110,8 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin outFinaceconfirm.set("zcgj_jscustomer",outContractSettle.getDynamicObject("zcgj_jscustomer")); outFinaceconfirm.set("billstatus","C"); outFinaceconfirm.set("zcgj_is_reversabillid",true); + outFinaceconfirm.set("creator",outContractSettle.getDynamicObject("creator")); + outFinaceconfirm.set("zcgj_org",outContractSettle.getDynamicObject("org")); DynamicObjectCollection entryEntity1 = outFinaceconfirm.getDynamicObjectCollection("zcgj_itementry"); entryEntity1.clear(); From e8e869efd3c81775329a1043e8b1bba27952cc5c Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Wed, 25 Jun 2025 17:07:19 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E5=8D=95=E5=A2=9E=E5=8A=A0=E6=89=80=E5=B1=9E=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InContractFinaceConfirmeListPlugin.java | 20 ++++++++++++------- .../OutContractFinaceConfirmeListPlugin.java | 19 +++++++++++------- 2 files changed, 25 insertions(+), 14 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java index 04ad573..71c62cb 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/InContractFinaceConfirmeListPlugin.java @@ -61,13 +61,19 @@ public class InContractFinaceConfirmeListPlugin extends AbstractListPlugin imple @Override public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) { super.filterContainerBeforeF7Select(args); - //获取当前人员有权限的组织 - HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId())); - //有权的组织 - List hasPermOrgs = userHasPermOrgs.getHasPermOrgs(); - String fieldName = args.getFieldName(); - if ("zcgj_org.id".equals(fieldName)) { - args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs)); + long userId = Long.parseLong(RequestContext.get().getUserId()); + boolean superUser = PermissionServiceHelper.isSuperUser(userId); //判断是否为全功能用户 + boolean adminUser = PermissionServiceHelper.isAdminUser(userId); //判断是否管理员用户 + if(!superUser && !adminUser){ + //获取当前人员有权限的组织 + //HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(userId); + HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(userId,true); + //有权的组织 + List hasPermOrgs = userHasPermOrgs.getHasPermOrgs(); + String fieldName = args.getFieldName(); + if ("zcgj_org.id".equals(fieldName)) { + args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs)); + } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java index 1574c88..1cfaf83 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmeListPlugin.java @@ -72,13 +72,18 @@ public class OutContractFinaceConfirmeListPlugin extends AbstractListPlugin impl @Override public void filterContainerBeforeF7Select(BeforeFilterF7SelectEvent args) { super.filterContainerBeforeF7Select(args); - //获取当前人员有权限的组织 - HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId())); - //有权的组织 - List hasPermOrgs = userHasPermOrgs.getHasPermOrgs(); - String fieldName = args.getFieldName(); - if ("zcgj_org.id".equals(fieldName)) { - args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs)); + long userId = Long.parseLong(RequestContext.get().getUserId()); + boolean superUser = PermissionServiceHelper.isSuperUser(userId); //判断是否为全功能用户 + boolean adminUser = PermissionServiceHelper.isAdminUser(userId); //判断是否管理员用户 + if(!superUser && !adminUser) { + //获取当前人员有权限的组织 + HasPermOrgResult userHasPermOrgs = PermissionServiceHelper.getUserHasPermOrgs(Long.parseLong(RequestContext.get().getUserId())); + //有权的组织 + List hasPermOrgs = userHasPermOrgs.getHasPermOrgs(); + String fieldName = args.getFieldName(); + if ("zcgj_org.id".equals(fieldName)) { + args.getQfilters().add(new QFilter("id", QCP.in, hasPermOrgs)); + } } } From 2c99401448ada1c3928f8986e95a612759cb903d Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Wed, 25 Jun 2025 17:08:01 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E6=88=91=E7=9A=84=E5=85=B1=E4=BA=AB?= =?UTF-8?q?=EF=BC=8C=E4=BB=BB=E5=8A=A1=E5=AE=A1=E6=89=B9=E6=97=B6=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=BB=98=E6=AC=BE=E5=AE=8C=E6=88=90=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/TaskApproveFormCkPlugin.java | 84 +++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java new file mode 100644 index 0000000..ccbf805 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java @@ -0,0 +1,84 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.utils.StringUtils; +import kd.bos.entity.datamodel.IDataModel; +import kd.bos.form.IFormView; +import kd.bos.form.control.Control; +import kd.bos.form.control.events.BeforeClickEvent; +import kd.bos.form.control.events.BeforeItemClickEvent; +import kd.bos.form.plugin.AbstractFormPlugin; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.ssc.task.formplugin.util.VoucherUtil; + +import java.util.EventObject; +import java.util.Map; + +/** + * 我的共享,任务审批时增加付款完成校验 + */ +public class TaskApproveFormCkPlugin extends AbstractFormPlugin { + + // + public void registerListener(EventObject evt) { + this.addClickListeners(new String[]{"submit", "submitandnext"}); + } + + @Override + public void beforeItemClick(BeforeItemClickEvent evt) { + super.beforeItemClick(evt); + } + + @Override + public void beforeClick(BeforeClickEvent evt) { + super.beforeClick(evt); + Control control = (Control)evt.getSource(); + String fieldKey = control.getKey(); + if (StringUtils.equals(fieldKey, "submit") + || StringUtils.equals(fieldKey, "submitandnext")) { + IFormView view = this.getView(); + Map customParams = view.getFormShowParameter().getCustomParams(); + Long billtypeid = 0L; + Long tasktypeid = 0L; + String billnumber = ""; + String billid = ""; + String billNo = null; + if (customParams != null) { + billtypeid = (Long)customParams.get("billtypeid");//单据类型id + tasktypeid = (Long)customParams.get("tasktypeid");//任务类型id + billnumber = (String)customParams.get("billnumber");//单据编码(单据标识 entityName) + billid = (String)customParams.get("billid");//业务单据id + billNo = VoucherUtil.getTaskBillNo(billid);//业务单据编号 + + IDataModel model = this.getModel(); + String operation = (String)model.getValue("operationgroupfield"); + if ("1".equals(operation)) { //如果审批操作是通过 + if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) { + QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid)); + DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter}); + String billstatus = sourceBillObject.getString("billstatus"); + if(!"G".equals(billstatus)) { + if("er_repaymentbill".equals(billnumber)) { + this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。")); + evt.setCancel(true); + }else{ + this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。")); + evt.setCancel(true); + } + } + } + } + + } + //System.out.println(billtypeid); + //System.out.println(tasktypeid); + //System.out.println(billnumber); + //System.out.println(billid); + //System.out.println(billNo); + } + } + + +} From 57763f863b9e97948745251df8d41e2ee3bf3d3b Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 26 Jun 2025 15:55:31 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E5=B7=A5=E7=A8=8B=E8=B5=84=E9=87=91?= =?UTF-8?q?=E4=BB=98=E6=AC=BE=E7=94=B3=E8=AF=B7=E5=8D=95=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E4=BA=BA=E5=B8=A6=E5=87=BA=E4=B8=BB=E8=81=8C=E9=83=A8=E9=97=A8?= =?UTF-8?q?=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/PaymentapplyGeneralPlugin.java | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java new file mode 100644 index 0000000..d849eab --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/PaymentapplyGeneralPlugin.java @@ -0,0 +1,53 @@ +package zcgj.zcdev.zcdev.pr.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.bill.BillShowParameter; +import kd.bos.bill.OperationStatus; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.entity.datamodel.events.ChangeData; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.servicehelper.user.UserServiceHelper; +import kd.sdk.plugin.Plugin; + +import java.util.EventObject; + +/** + * 1:付款申请单通用插件 + */ +public class PaymentapplyGeneralPlugin extends AbstractBillPlugIn implements Plugin { + + @Override + public void afterBindData(EventObject e) { + super.afterBindData(e); + //如果是新增时 + BillShowParameter bsp=(BillShowParameter)this.getView().getFormShowParameter(); + if(bsp.getStatus()== OperationStatus.ADDNEW ){ + DynamicObject person = this.getModel().getDataEntity().getDynamicObject("person"); + if(person!=null){ + long mainOrgId = UserServiceHelper.getUserMainOrgId(person.getLong("id")); + this.getModel().setValue("zcgj_persondepart", mainOrgId); + this.getView().updateView("zcgj_persondepart"); + } + } + } + + @Override + public void propertyChanged(PropertyChangedArgs e) { + super.propertyChanged(e); + String name = e.getProperty().getName(); + if("person".equals(name)){ + ChangeData changeData = e.getChangeSet()[0];//获取改变的数据 + DynamicObject oldValue = (DynamicObject) changeData.getOldValue(); + DynamicObject newValue = (DynamicObject) changeData.getNewValue(); + if(newValue !=null){ + long userid = newValue.getLong("id"); + long mainOrgId = UserServiceHelper.getUserMainOrgId(userid); + this.getModel().setValue("zcgj_persondepart", mainOrgId); + this.getView().updateView("zcgj_persondepart"); + }else{ + this.getView().showErrorNotification("申请人不能为空"); + } + } + } + +} From 4f2f90577b9116f8718079f05823db753963face Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 26 Jun 2025 15:57:09 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E6=94=AF=E5=87=BA=E5=90=88=E5=90=8C?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=B7=A5=E5=BA=8F?= =?UTF-8?q?=E5=92=8C=E7=A7=91=E7=9B=AE=E5=88=86=E7=B1=BB=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/OutContractFinaceConfirmePlugin.java | 73 ++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java index 4be8394..35d1b87 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java @@ -15,6 +15,10 @@ import kd.bos.form.ShowType; import kd.bos.form.control.EntryGrid; import kd.bos.form.events.HyperLinkClickEvent; import kd.bos.form.events.HyperLinkClickListener; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.events.BeforeF7SelectEvent; +import kd.bos.form.field.events.BeforeF7SelectListener; +import kd.bos.list.ListShowParameter; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; @@ -31,7 +35,7 @@ import java.util.List; /** * 支出合同确认单插件 */ -public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener { +public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn implements Plugin, HyperLinkClickListener, BeforeF7SelectListener { @Override @@ -108,6 +112,9 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme if(newValue!=null){ initData(newValue.getLong("id")); } + }else if(StringUtils.equals(name, "zcgj_expenseitem")){ //费用项目发生改变时,清空科目分类 + int rowIndex = changeData.getRowIndex(); + this.getModel().setValue("zcgj_accounttype",null,rowIndex); } @@ -148,6 +155,16 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme super.registerListener(e); EntryGrid control = this.getControl("zcgj_entryentity"); control.addHyperClickListener(this); + + BasedataEdit contractprocess = this.getControl("zcgj_cbs"); //承包工序 + if(contractprocess != null) { + contractprocess.addBeforeF7SelectListener(this); + } + + BasedataEdit accounttype = this.getControl("zcgj_accounttype"); //科目分类 + if(accounttype != null) { + accounttype.addBeforeF7SelectListener(this); + } } @Override @@ -219,4 +236,58 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme } return BigDecimal.ZERO; } + + + + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + String name = beforeF7SelectEvent.getProperty().getName(); + if(name.equals("zcgj_cbs")) {//工序根据项目过滤 + Object projectObj = this.getModel().getValue("zcgj_project"); + if(projectObj instanceof DynamicObject){ + DynamicObject project = (DynamicObject) projectObj; + QFilter qFilter = new QFilter("project.id", QCP.equals, project.getLong("id")); + QFilter treeFilter = new QFilter("project.number", QCP.equals, project.getString("number")); + ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + showParameter.getListFilterParameter().getQFilters().add(qFilter); + showParameter.getTreeFilterParameter().getQFilters().add(treeFilter); + } + + }else if(name.equals("zcgj_accounttype")){ //科目分类根据科目分类基础资料过滤 + int row = beforeF7SelectEvent.getRow(); + System.out.println(); + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expenseitementry"); + if(dynamicObjectCollection!=null){ + DynamicObject zcgjExpenseitem = dynamicObjectCollection.get(row).getDynamicObject("zcgj_expenseitem"); + if(zcgjExpenseitem!=null){ + QFilter filter = new QFilter("zcgj_entryentity.zcgj_fee",QCP.equals,zcgjExpenseitem.getLong("id")); + //分录过滤 + //使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据 + //使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据 + DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", "zcgj_entryentity.zcgj_accounttype.number", new QFilter[]{filter}); + List numbers = new ArrayList<>(); + if(accountfeeEntries!=null){ + for (DynamicObject dynamicObject : accountfeeEntries) { + String zcgjAccounttypeNumber = dynamicObject.getString("zcgj_entryentity.zcgj_accounttype.number"); + if(zcgjAccounttypeNumber!=null){ + numbers.add(zcgjAccounttypeNumber); + } + } + } + + QFilter qFilter = new QFilter("number", QCP.in, numbers); + QFilter treeFilter = new QFilter("number", QCP.in, numbers); + ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + showParameter.getListFilterParameter().getQFilters().add(qFilter); + }else{ + this.getView().showErrorNotification("请选择费用项目!"); + beforeF7SelectEvent.setCancel(true); + } + + } + + } + + } } From 8c96159598ac1d020bb4d354885bc718069d6281 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 26 Jun 2025 15:58:23 +0800 Subject: [PATCH 07/11] =?UTF-8?q?=E5=90=88=E5=90=8C=E7=AD=BE=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=A2=9E=E5=8A=A0=E5=B7=A5=E5=BA=8F=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pr/plugin/form/ContractProcessRevisionFilterPlugin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractProcessRevisionFilterPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractProcessRevisionFilterPlugin.java index f390357..ef3f364 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractProcessRevisionFilterPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/ContractProcessRevisionFilterPlugin.java @@ -43,7 +43,7 @@ public class ContractProcessRevisionFilterPlugin extends AbstractBillPlugIn impl if(projectObj!=null){ DynamicObject projectInfo = (DynamicObject)projectObj; QFilter qFilter = new QFilter("project.id", QCP.equals, projectInfo.getLong("id")); - QFilter treeFilter = new QFilter("number", QCP.equals, projectInfo.getString("number")); + QFilter treeFilter = new QFilter("project.number", QCP.equals, projectInfo.getString("number")); ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); showParameter.getListFilterParameter().getQFilters().add(qFilter); showParameter.getTreeFilterParameter().getQFilters().add(treeFilter); From 5818d4d2f6522d8fa43b9bff56aac960cf9f019f Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 26 Jun 2025 15:59:02 +0800 Subject: [PATCH 08/11] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=BB=84=E7=BB=87?= =?UTF-8?q?=E6=9C=BA=E6=9E=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../zcdev/zcdev/fs/utils/OrgCheckUtils.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/utils/OrgCheckUtils.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/utils/OrgCheckUtils.java index 83a62ff..ec49d5c 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/utils/OrgCheckUtils.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/utils/OrgCheckUtils.java @@ -47,4 +47,24 @@ public class OrgCheckUtils { } return false; } + + /** + * 判断某个组织是否在某个组织下面 + * parentOrgNumber 上层组织编码 + * currentOrgId 需要判断的组织id + */ + public static boolean isChildrenOrg(String parentOrgNumber,Long currentOrgId){ + QFilter filterOrgId = new QFilter("number", QCP.equals,parentOrgNumber);//中材矿山建设有限公司 + DynamicObject adminOrg = BusinessDataServiceHelper.loadSingle("bos_org", "number,name,fullname", new QFilter[]{filterOrgId}); + long orgId = adminOrg.getLong("id"); + List orgIds = new ArrayList<>(1); + //orgIds.add(1692204547985902592L); + orgIds.add(orgId); + List subOrgIds = OrgUnitServiceHelper.getAllSubordinateOrgs(1L, orgIds, true); + Set orgSer = subOrgIds.stream().collect(Collectors.toSet()); + if(orgSer.contains(currentOrgId)){ + return true; + } + return false; + } } From 2f45abf406d57351d08de45a58b3b3854807dd60 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 26 Jun 2025 15:59:37 +0800 Subject: [PATCH 09/11] =?UTF-8?q?=E7=94=A8=E6=AC=BE=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E5=A2=9E=E5=8A=A0=E9=9A=90=E8=97=8F=E9=99=84=E4=BB=B6?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=8C=89=E9=92=AE=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/ApplicationfundsPlugin.java | 68 +++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java new file mode 100644 index 0000000..0d91020 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/ApplicationfundsPlugin.java @@ -0,0 +1,68 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.entity.datamodel.events.PropertyChangedArgs; +import kd.bos.form.IClientViewProxy; +import kd.bos.form.control.AttachmentPanel; +import kd.bos.form.control.events.AttachmentOperaClickListener; +import kd.bos.form.events.AfterDoOperationEventArgs; +import kd.bos.mvc.form.ClientViewProxy; + +import java.util.EventObject; +import java.util.List; +import java.util.Map; + +public class ApplicationfundsPlugin extends AbstractBillPlugIn implements AttachmentOperaClickListener { + + @Override + public void registerListener(EventObject e) { + AttachmentPanel panel = getControl("zcgj_attachmentpanelap"); + panel.addOperaClickListener(this);; + super.registerListener(e); + } + + @Override + public void afterBindData(EventObject e) { + setAttFileVisble();//隐藏删除按钮 + super.afterBindData(e); + + } + + @Override + public void afterDoOperation(AfterDoOperationEventArgs afterDoOperationEventArgs) { + setAttFileVisble(); + super.afterDoOperation(afterDoOperationEventArgs); + } + @Override + public void propertyChanged(PropertyChangedArgs e) { + if (e.getProperty().getName().equals("zcgj_attachmentcount")) { + setAttFileVisble(); + } + super.propertyChanged(e); + } + + private void setAttFileVisble() { + String billstatus = String.valueOf(this.getModel().getValue("status")); + if (!billstatus.equals("A")) { + AttachmentPanel attachmentPanel = this.getControl("zcgj_attachmentpanelap"); + List> attachmentData = attachmentPanel.getAttachmentData(); + if(attachmentData == null && attachmentData.isEmpty()){ + return; + } + List> attachmentDatas = attachmentPanel.getAttachmentData(); + for(Map attachmentMap : attachmentDatas){ + String visiablePreview = "1";//是否显示预览按钮 + String visiableDownload = "1";//是否显示下载按钮 + String visiableRename = "1";//是否显示重命名按钮 + String visiableDelete = "0";//是否显示删除按钮 + //visible参数规则为01组成,0代表不可见,1代表可见 + attachmentMap.put("visible",visiablePreview + visiableDownload + visiableRename+visiableDelete); + //attachmentMap.put("hiddenBtn",hiddenBtnList); + + } + ClientViewProxy cvp = this.getView().getService(IClientViewProxy.class); + cvp.setFieldProperty("zcgj_attachmentpanelap","v",attachmentDatas); + } + } + +} From 594a86c75519edc986564483056703be6620ae09 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 26 Jun 2025 16:00:34 +0800 Subject: [PATCH 10/11] =?UTF-8?q?=E5=85=B1=E4=BA=AB=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/TaskApproveFormCkPlugin.java | 41 ++++++++++++++----- .../plugin/operate/TaskListPayStatusCkOp.java | 12 +++++- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java index ccbf805..4c01644 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TaskApproveFormCkPlugin.java @@ -15,6 +15,7 @@ import kd.ssc.task.formplugin.util.VoucherUtil; import java.util.EventObject; import java.util.Map; +import java.util.Set; /** * 我的共享,任务审批时增加付款完成校验 @@ -42,12 +43,14 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin { Map customParams = view.getFormShowParameter().getCustomParams(); Long billtypeid = 0L; Long tasktypeid = 0L; + Long sscid = 0L; String billnumber = ""; String billid = ""; String billNo = null; if (customParams != null) { billtypeid = (Long)customParams.get("billtypeid");//单据类型id tasktypeid = (Long)customParams.get("tasktypeid");//任务类型id + sscid = (Long)customParams.get("sscid");//任务类型id billnumber = (String)customParams.get("billnumber");//单据编码(单据标识 entityName) billid = (String)customParams.get("billid");//业务单据id billNo = VoucherUtil.getTaskBillNo(billid);//业务单据编号 @@ -55,17 +58,33 @@ public class TaskApproveFormCkPlugin extends AbstractFormPlugin { IDataModel model = this.getModel(); String operation = (String)model.getValue("operationgroupfield"); if ("1".equals(operation)) { //如果审批操作是通过 - if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) { - QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid)); - DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter}); - String billstatus = sourceBillObject.getString("billstatus"); - if(!"G".equals(billstatus)) { - if("er_repaymentbill".equals(billnumber)) { - this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。")); - evt.setCancel(true); - }else{ - this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。")); - evt.setCancel(true); + QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid); + tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为:结算时 + DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter}); + if(tasktypeArray != null && tasktypeArray.length > 0){ + DynamicObject tasktype = tasktypeArray[0]; + if(tasktypeid.getLong("id") == tasktype.getLong("id")) { + if(StringUtils.isNotBlank(billNo) && StringUtils.isNotBlank(billid) && StringUtils.isNotBlank(billnumber) ) { + QFilter accountTableFilter = new QFilter("id", QCP.equals,Long.valueOf(billid)); + DynamicObject sourceBillObject = BusinessDataServiceHelper.loadSingle(billnumber, new QFilter[]{accountTableFilter}); + String billstatus = sourceBillObject.getString("billstatus"); + if(!"G".equals(billstatus)) { + if("er_repaymentbill".equals(billnumber)) { + this.getView().showErrorNotification(String.format("审批结算任务:当前单据的收款未完成,请完成收款后提交。")); + evt.setCancel(true); + }else if( + "er_dailyreimbursebill".equals(billnumber) || //费用报销单 + "er_publicreimbursebill".equals(billnumber) || //对公报销的呢 + "er_tripreimbursebill".equals(billnumber) || //差旅报销单 + "er_dailyloanbill".equals(billnumber) || //借款单 + "er_prepaybill".equals(billnumber) || //预付单 + "er_applypaybill".equals(billnumber) || //付款申请单 + "cas_paybill".equals(billnumber) //付款处理单 + ){ + this.getView().showErrorNotification(String.format("审批结算任务:当前单据的付款未完成,请完成付款后提交。")); + evt.setCancel(true); + } + } } } } diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java index 09800b3..4e1b335 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/TaskListPayStatusCkOp.java @@ -69,7 +69,7 @@ public class TaskListPayStatusCkOp extends AbstractOperationServicePlugIn { DynamicObject tasktypeid = dataEntity.getDynamicObject("tasktypeid"); DynamicObject sscid = dataEntity.getDynamicObject("sscid"); QFilter tasktypeFilter = new QFilter("orgfield.id", QCP.equals,sscid.getLong("id")); - tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2")); + tasktypeFilter.and(new QFilter("tasklevel", QCP.equals,"2"));//任务类型为:结算时 DynamicObject[] tasktypeArray = BusinessDataServiceHelper.load("task_tasktype", "id", new QFilter[]{tasktypeFilter}); if(tasktypeArray != null && tasktypeArray.length > 0){ DynamicObject tasktype = tasktypeArray[0]; @@ -84,7 +84,15 @@ public class TaskListPayStatusCkOp extends AbstractOperationServicePlugIn { if(!"G".equals(billstatus)) { if("er_repaymentbill".equals(entityName)) { this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的收款未完成,请完成收款后操作。",billnumber,subject)); - }else{ + }else if( + "er_dailyreimbursebill".equals(entityName) || //费用报销单 + "er_publicreimbursebill".equals(entityName) || //对公报销的呢 + "er_tripreimbursebill".equals(entityName) || //差旅报销单 + "er_dailyloanbill".equals(entityName) || //借款单 + "er_prepaybill".equals(entityName) || //预付单 + "er_applypaybill".equals(entityName) || //付款申请单 + "cas_paybill".equals(entityName) //付款处理单 + ) { this.addFatalErrorMessage(extendedDataEntity, String.format("审批结算任务:【%s-%s】的付款未完成,请完成付款后操作。",billnumber,subject)); } } From 5d5fc9ea020b649d62a7ff36f2e48391a4fa2ae2 Mon Sep 17 00:00:00 2001 From: zhangzhiguo Date: Thu, 26 Jun 2025 17:13:37 +0800 Subject: [PATCH 11/11] =?UTF-8?q?=E6=94=AF=E5=87=BA=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E5=8D=95=EF=BC=8C=E5=94=AF=E4=B8=80=E7=A7=91?= =?UTF-8?q?=E7=9B=AE=E5=88=86=E7=B1=BB=E6=97=B6=E8=87=AA=E5=8A=A8=E8=B5=8B?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../form/OutContractFinaceConfirmePlugin.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java index 35d1b87..52bff3d 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/OutContractFinaceConfirmePlugin.java @@ -114,7 +114,21 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme } }else if(StringUtils.equals(name, "zcgj_expenseitem")){ //费用项目发生改变时,清空科目分类 int rowIndex = changeData.getRowIndex(); - this.getModel().setValue("zcgj_accounttype",null,rowIndex); + DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expenseitementry"); + if(dynamicObjectCollection!=null){ + DynamicObject zcgjExpenseitem = dynamicObjectCollection.get(rowIndex).getDynamicObject("zcgj_expenseitem"); + QFilter filter = new QFilter("zcgj_entryentity.zcgj_fee",QCP.equals,zcgjExpenseitem.getLong("id")); + //分录过滤 + //使用BusinessDataServiceHelper.load查出来的数据,返回的是符合条件的整单,即使只有分录中的某一行符合条件,也会返回整张单包括其他分录行的数据 + //使用 QueryServiceHelper.query查出来的数据只会包含符合条件的分录行,不含其他行数据 + DynamicObjectCollection accountfeeEntries = QueryServiceHelper.query("zcgj_accountfee", "zcgj_entryentity.zcgj_accounttype", new QFilter[]{filter}); + if(accountfeeEntries!=null && accountfeeEntries.size()==1){ + long id = accountfeeEntries.get(0).getLong("zcgj_entryentity.zcgj_accounttype"); + this.getModel().setValue("zcgj_accounttype",id,rowIndex); + }else{ + this.getModel().setValue("zcgj_accounttype",null,rowIndex); + } + } } @@ -256,7 +270,6 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme }else if(name.equals("zcgj_accounttype")){ //科目分类根据科目分类基础资料过滤 int row = beforeF7SelectEvent.getRow(); - System.out.println(); DynamicObjectCollection dynamicObjectCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_expenseitementry"); if(dynamicObjectCollection!=null){ DynamicObject zcgjExpenseitem = dynamicObjectCollection.get(row).getDynamicObject("zcgj_expenseitem"); @@ -276,6 +289,7 @@ public class OutContractFinaceConfirmePlugin extends AbstractBillPlugIn impleme } } + QFilter qFilter = new QFilter("number", QCP.in, numbers); QFilter treeFilter = new QFilter("number", QCP.in, numbers); ListShowParameter showParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();