From 0da2db8313b27dbd5b19b3497df605ab8762cc7b Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Fri, 29 Aug 2025 15:17:33 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=B7=A5=E4=BC=9A=E7=BB=8F=E8=B4=B9?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E5=8D=95=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fs/plugin/form/DailyapplybillPlugin.java | 40 +++++++++++++ .../fs/plugin/form/TradefundsPlugin.java | 56 +++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyapplybillPlugin.java create mode 100644 code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TradefundsPlugin.java diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyapplybillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyapplybillPlugin.java new file mode 100644 index 0000000..0e35211 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/DailyapplybillPlugin.java @@ -0,0 +1,40 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.form.field.ComboEdit; +import kd.bos.form.field.ComboItem; +import kd.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +/** + * 费用申请单插件 + */ +public class DailyapplybillPlugin extends AbstractBillPlugIn implements Plugin { + + @Override + public void afterBindData(EventObject e) { + super.afterBindData(e); + DynamicObject costcompany = (DynamicObject) this.getModel().getValue("costcompany"); + if(costcompany != null) { + if("10007186".equals(costcompany.getString("number"))){ + List comboList = new ArrayList<>(); + comboList.add(new ComboItem(new LocaleString("采购申请"), "purchase_apply")); + comboList.add(new ComboItem(new LocaleString("固定资产采购申请"), "gdzc_apply")); + comboList.add(new ComboItem(new LocaleString("车辆维修保养申请"), "vehicle_maintain")); + comboList.add(new ComboItem(new LocaleString("维修保养申请-非车辆"), "maintain_apply")); + comboList.add(new ComboItem(new LocaleString("租车申请"), "car_rental")); + comboList.add(new ComboItem(new LocaleString("派车单"), "dispatch_car")); + comboList.add(new ComboItem(new LocaleString("费用申请单(兖州机关)"), "zc_morren")); + comboList.add(new ComboItem(new LocaleString("工会经费申请"), "union_funding")); + ComboEdit comboEdit = getView().getControl("zcgj_apply_type"); + comboEdit.setComboItems(comboList); + } + } + + } +} diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TradefundsPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TradefundsPlugin.java new file mode 100644 index 0000000..10912a8 --- /dev/null +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/form/TradefundsPlugin.java @@ -0,0 +1,56 @@ +package zcgj.zcdev.zcdev.fs.plugin.form; + +import kd.bos.bill.AbstractBillPlugIn; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.LocaleString; +import kd.bos.dataentity.metadata.IDataEntityProperty; +import kd.bos.form.field.BasedataEdit; +import kd.bos.form.field.ComboEdit; +import kd.bos.form.field.ComboItem; +import kd.bos.form.field.RefBillEdit; +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.sdk.plugin.Plugin; + +import java.util.ArrayList; +import java.util.EventObject; +import java.util.List; + +/** + * 工会经费申请单插件 + */ +public class TradefundsPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener { + + @Override + public void registerListener(EventObject e) { + super.registerListener(e); + BasedataEdit project = this.getView().getControl("zcgj_funding_apply");//设备维修确认单 + project.addBeforeF7SelectListener(this); + + } + + @Override + public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) { + ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter(); + IDataEntityProperty property = beforeF7SelectEvent.getProperty();//过滤字段信息 + String propertyName = property.getName();//过滤字段标识 + + if("zcgj_funding_apply".equals(propertyName)){ //经费申请过滤 + DynamicObject costcompany = (DynamicObject)this.getModel().getValue("createorg");//创建组织过滤 + List qFilter = new ArrayList<>(); + + /*if(costcompany!=null){ + Long companyId = costcompany.getLong("id"); + qFilter.add(new QFilter("zcgj_costcompany", QCP.equals, companyId)); + }*/ + + + qFilter.add(new QFilter("zcgj_billstatus", QCP.equals, "E")); + qFilter.add(new QFilter("zcgj_apply_type", QCP.equals, "union_funding")); + formShowParameter.getListFilterParameter().setQFilters(qFilter); + } + } +} From 847f4164559c4073f630da594c2f576e4450643e Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Fri, 29 Aug 2025 15:18:03 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=94=AF=E5=87=BA=E5=90=88=E5=90=8C?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E5=8D=95=E5=8F=91=E7=A5=A8=E5=B8=A6=E5=85=A5?= =?UTF-8?q?=E8=B4=A2=E5=8A=A1=E7=A1=AE=E8=AE=A4=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ContractSettleFiConfirmWorkFlowPlugin.java | 19 ++++++++++++++++++ ...utContractSettleInvalidWorkFlowPlugin.java | 19 ++++++++++++++++++ ...tContractSettleReversalWorkFlowPlugin.java | 20 +++++++++++++++++++ 3 files changed, 58 insertions(+) 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 01df3ab..477769a 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 @@ -92,6 +92,25 @@ public class OutContractSettleFiConfirmWorkFlowPlugin implements IWorkflowPlugin } } + //发票信息 + DynamicObjectCollection entryentity = outContractSettle.getDynamicObjectCollection("zcgj_entryentity");//支出合同结算单发票分录 + DynamicObjectCollection fientryentity = outFinaceconfirm.getDynamicObjectCollection("zcgj_entryentity");//支出财务确认单-发票分录 + fientryentity.clear(); + for (DynamicObject dynamicObject : entryentity) { + DynamicObject dynamicObject1 = fientryentity.addNew(); + dynamicObject1.set("zcgj_invoice",dynamicObject.getDynamicObject("zcgj_invoice")); + dynamicObject1.set("zcgj_invoiceamount",dynamicObject.getBigDecimal("zcgj_invoiceamount")); + dynamicObject1.set("zcgj_invoicetax",dynamicObject.getBigDecimal("zcgj_invoicetax")); + dynamicObject1.set("zcgj_oftaxinvoiceamount",dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount")); + dynamicObject1.set("zcgj_unapplyinvoftaxamt",dynamicObject.getBigDecimal("zcgj_unapplyinvoftaxamt")); + dynamicObject1.set("zcgj_unapplyinvtax",dynamicObject.getBigDecimal("zcgj_unapplyinvtax")); + dynamicObject1.set("zcgj_applyinvoftaxamt",dynamicObject.getBigDecimal("zcgj_applyinvoftaxamt")); + dynamicObject1.set("zcgj_applyinvamt",dynamicObject.getBigDecimal("zcgj_applyinvamt")); + dynamicObject1.set("zcgj_applyinvtax",dynamicObject.getBigDecimal("zcgj_applyinvtax")); + dynamicObject1.set("zcgj_invoicedescription",dynamicObject.getString("zcgj_invoicedescription")); + dynamicObject1.set("zcgj_invoicecurrency",dynamicObject.getDynamicObject("zcgj_invoicecurrency")); + } + SaveServiceHelper.saveOperate("zcgj_ec_out_finaceconfirm", new DynamicObject[]{outFinaceconfirm}, null);//支出合同实体 //生成支出财务确认单 end } 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 faed844..65c48af 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 @@ -93,6 +93,25 @@ public class OutContractSettleInvalidWorkFlowPlugin implements IWorkflowPlugin { } } + //发票信息 + DynamicObjectCollection entryentity = outContractSettle.getDynamicObjectCollection("zcgj_entryentity");//支出合同结算单发票分录 + DynamicObjectCollection fientryentity = outFinaceconfirm.getDynamicObjectCollection("zcgj_entryentity");//支出财务确认单-发票分录 + fientryentity.clear(); + for (DynamicObject dynamicObject : entryentity) { + DynamicObject dynamicObject1 = fientryentity.addNew(); + dynamicObject1.set("zcgj_invoice",dynamicObject.getDynamicObject("zcgj_invoice")); + dynamicObject1.set("zcgj_invoiceamount",dynamicObject.getBigDecimal("zcgj_invoiceamount")); + dynamicObject1.set("zcgj_invoicetax",dynamicObject.getBigDecimal("zcgj_invoicetax")); + dynamicObject1.set("zcgj_oftaxinvoiceamount",dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount")); + dynamicObject1.set("zcgj_unapplyinvoftaxamt",dynamicObject.getBigDecimal("zcgj_unapplyinvoftaxamt")); + dynamicObject1.set("zcgj_unapplyinvtax",dynamicObject.getBigDecimal("zcgj_unapplyinvtax")); + dynamicObject1.set("zcgj_applyinvoftaxamt",dynamicObject.getBigDecimal("zcgj_applyinvoftaxamt")); + dynamicObject1.set("zcgj_applyinvamt",dynamicObject.getBigDecimal("zcgj_applyinvamt")); + dynamicObject1.set("zcgj_applyinvtax",dynamicObject.getBigDecimal("zcgj_applyinvtax")); + dynamicObject1.set("zcgj_invoicedescription",dynamicObject.getString("zcgj_invoicedescription")); + dynamicObject1.set("zcgj_invoicecurrency",dynamicObject.getDynamicObject("zcgj_invoicecurrency")); + } + OperationResult zcgjEcOutFinaceconfirm = SaveServiceHelper.saveOperate("zcgj_ec_out_finaceconfirm", new DynamicObject[]{outFinaceconfirm}, null);//支出合同实体 if(zcgjEcOutFinaceconfirm.isSuccess()){ String sourceBillId = outContractSettle.getString("zcgj_invalidbillid"); 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 53f8464..9c8b8b2 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 @@ -140,6 +140,26 @@ public class OutContractSettleReversalWorkFlowPlugin implements IWorkflowPlugin NewExpenseItemEntry.set("zcgj_expenseitem",processAllocEntity.get("zcgj_expenseitem"));//费用项目 } } + + //发票信息 + DynamicObjectCollection entryentity = outContractSettle.getDynamicObjectCollection("zcgj_entryentity");//支出合同结算单发票分录 + DynamicObjectCollection fientryentity = outFinaceconfirm.getDynamicObjectCollection("zcgj_entryentity");//支出财务确认单-发票分录 + fientryentity.clear(); + for (DynamicObject dynamicObject : entryentity) { + DynamicObject dynamicObject1 = fientryentity.addNew(); + dynamicObject1.set("zcgj_invoice",dynamicObject.getDynamicObject("zcgj_invoice")); + dynamicObject1.set("zcgj_invoiceamount",dynamicObject.getBigDecimal("zcgj_invoiceamount")); + dynamicObject1.set("zcgj_invoicetax",dynamicObject.getBigDecimal("zcgj_invoicetax")); + dynamicObject1.set("zcgj_oftaxinvoiceamount",dynamicObject.getBigDecimal("zcgj_oftaxinvoiceamount")); + dynamicObject1.set("zcgj_unapplyinvoftaxamt",dynamicObject.getBigDecimal("zcgj_unapplyinvoftaxamt")); + dynamicObject1.set("zcgj_unapplyinvtax",dynamicObject.getBigDecimal("zcgj_unapplyinvtax")); + dynamicObject1.set("zcgj_applyinvoftaxamt",dynamicObject.getBigDecimal("zcgj_applyinvoftaxamt")); + dynamicObject1.set("zcgj_applyinvamt",dynamicObject.getBigDecimal("zcgj_applyinvamt")); + dynamicObject1.set("zcgj_applyinvtax",dynamicObject.getBigDecimal("zcgj_applyinvtax")); + dynamicObject1.set("zcgj_invoicedescription",dynamicObject.getString("zcgj_invoicedescription")); + dynamicObject1.set("zcgj_invoicecurrency",dynamicObject.getDynamicObject("zcgj_invoicecurrency")); + } + SaveServiceHelper.saveOperate("zcgj_ec_out_finaceconfirm", new DynamicObject[]{outFinaceconfirm}, null);//支出合同实体 //生成支出财务确认单 end From 81afbd7844b687e4dc20e4dfde4da59f1b2e5b77 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Fri, 29 Aug 2025 15:18:17 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E5=AF=B9=E5=85=AC=E6=8A=A5=E9=94=80?= =?UTF-8?q?=E5=8D=95=E5=86=B2=E9=A2=84=E4=BB=98=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fs/plugin/operate/PublicBillRecAccountCkOp.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java index da56350..73d69e2 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java +++ b/code/zcdev/zcgj-zcdev-zcdev-fs/src/main/java/zcgj/zcdev/zcdev/fs/plugin/operate/PublicBillRecAccountCkOp.java @@ -26,6 +26,10 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn { super.onPreparePropertys(e); e.getFieldKeys().add("costcompany"); e.getFieldKeys().add("accountentry"); + + e.getFieldKeys().add("zcgj_prepay");//冲销预付 + e.getFieldKeys().add("writeoffmoney");//冲销预付 + } @Override @@ -95,6 +99,13 @@ public class PublicBillRecAccountCkOp extends AbstractOperationServicePlugIn { } } + + //冲销预付检查 + String zcgjPrepay = dataEntity.getString("zcgj_prepay"); + DynamicObjectCollection writeoffmoney = dataEntity.getDynamicObjectCollection("writeoffmoney"); + if("YES".equals(zcgjPrepay) && writeoffmoney.isEmpty()){ + this.addFatalErrorMessage(extendedDataEntity, String.format("当前单据为冲销预付时,冲预付/借款分录不能为空!",i)); + } } } }