From b8b7a9e05ec5f2e8547a83a2ae566782fd06c906 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Thu, 7 Aug 2025 16:37:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E8=B5=84=E9=87=91?= =?UTF-8?q?=E8=AE=A1=E5=88=92=E7=94=B3=E8=AF=B7=E7=95=8C=E9=9D=A2=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/FundingplanapplyPlugin.java | 81 ++++++++++++++++++- 1 file changed, 77 insertions(+), 4 deletions(-) diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java index 382b739..7fc045e 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/FundingplanapplyPlugin.java @@ -6,6 +6,7 @@ import kd.bos.bill.OperationStatus; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.dataentity.entity.MulBasedataDynamicObjectCollection; import kd.bos.entity.datamodel.events.BizDataEventArgs; import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.PropertyChangedArgs; @@ -48,14 +49,72 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin if(orgByCurperiod!=null && orgByCurperiod.length>0){ this.getModel().setValue("zcgj_period",orgByCurperiod[0].getDynamicObject("curperiod")); } - + //初始化值 + initData(org); } - - - } } + /** + * 自动带入 今年最新的 “年初应收余额”和“年初应付余额 + */ + public void initData(DynamicObject org){ + int year = LocalDate.now().getYear(); + + List searchFilterList = new ArrayList<>(); + //查询申请人下的今年的探亲差旅单据 + searchFilterList.add(new QFilter("zcgj_org", QCP.equals, org.getLong("id"))); + searchFilterList.add( new QFilter("zcgj_period.number", QCP.like, year+"%")); + DynamicObject[] load = BusinessDataServiceHelper.load("zcgj_ec_fundingplanapply", + "zcgj_period," + + "zcgj_infundproject_entry.zcgj_in_fundproject,zcgj_infundproject_entry.zcgj_in_custom,zcgj_infundproject_entry.zcgj_iinitialreceivable " + + ",zcgj_outfundproject_entry.zcgj_out_fundproject,zcgj_outfundproject_entry.zcgj_out_supplier,zcgj_outfundproject_entry.zcgj_openingpayable" + + ",createtime", + searchFilterList.toArray(new QFilter[]{}), "createtime desc"); + if(load!=null && load.length>0){ + DynamicObject data = load[0]; + DynamicObjectCollection indataentry = data.getDynamicObjectCollection("zcgj_infundproject_entry"); + DynamicObjectCollection inentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_infundproject_entry"); + inentry.clear(); + for (DynamicObject dynamicObject : indataentry) { + DynamicObject newData = inentry.addNew(); + newData.set("zcgj_in_fundproject",dynamicObject.get("zcgj_in_fundproject")); + DynamicObjectCollection collection = new DynamicObjectCollection(); + for (DynamicObject zcgjInCustom :dynamicObject.getDynamicObjectCollection("zcgj_in_custom")) { + DynamicObject basedataObj = zcgjInCustom.getDynamicObject("fbasedataid"); + DynamicObject newObj = new DynamicObject(newData.getDynamicObjectCollection("zcgj_in_custom").getDynamicObjectType()); + newObj.set("fbasedataid", basedataObj); + newObj.set("fbasedataid_id", basedataObj.getPkValue()); + collection.add(newObj); + } + newData.set("zcgj_in_custom",collection); + newData.set("zcgj_iinitialreceivable",dynamicObject.get("zcgj_iinitialreceivable")); + } + this.getView().updateView("zcgj_infundproject_entry"); + + + DynamicObjectCollection outdataentry = data.getDynamicObjectCollection("zcgj_outfundproject_entry"); + DynamicObjectCollection outentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_outfundproject_entry"); + outentry.clear(); + for (DynamicObject dynamicObject : outdataentry) { + DynamicObject newData = outentry.addNew(); + newData.set("zcgj_out_fundproject",dynamicObject.get("zcgj_out_fundproject")); + DynamicObjectCollection collection = new DynamicObjectCollection(); + for (DynamicObject zcgjInCustom : (MulBasedataDynamicObjectCollection) dynamicObject.get("zcgj_out_supplier")) { + DynamicObject basedataObj = zcgjInCustom.getDynamicObject("fbasedataid"); + DynamicObject newObj = new DynamicObject(newData.getDynamicObjectCollection("zcgj_out_supplier").getDynamicObjectType()); + newObj.set("fbasedataid", basedataObj); + newObj.set("fbasedataid_id", basedataObj.getPkValue()); + collection.add(newObj); + } + newData.set("zcgj_out_supplier",collection); + newData.set("zcgj_openingpayable",dynamicObject.get("zcgj_openingpayable")); + } + this.getView().updateView("zcgj_outfundproject_entry"); + } + + } + @Override public void propertyChanged(PropertyChangedArgs e) { super.propertyChanged(e); @@ -81,6 +140,20 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin this.getView().updateView("zcgj_setttype",rowIndex); } } + }else if(name.equals("zcgj_org")){ + DynamicObject org = (DynamicObject) changeData.getNewValue(); + initData(org); } } + + // 获取某年份的第一天 + public static LocalDate getFirstDayOfYear(int year) { + return LocalDate.of(year, 1, 1); + } + + // 获取某年份的最后一天 + public static LocalDate getLastDayOfYear(int year) { + return LocalDate.of(year, 12, 31); + } + }