From 66bfff005b02e7b20f896c053287e236544557b4 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Mon, 3 Nov 2025 17:31:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=B5=84=E9=87=91=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/FundingplanapplyPlugin.java | 230 ++++++++++-------- 1 file changed, 130 insertions(+), 100 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 edc43c8..c65449c 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 @@ -71,7 +71,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin //获取登录人的主职部门,用户的非兼职部门就是主职部门 long currentUserId = UserServiceHelper.getCurrentUserId(); long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); - this.getModel().setValue("zcgj_applidepart",mainOrgId); + // this.getModel().setValue("zcgj_applidepart",mainOrgId); } //项目排序 @@ -104,111 +104,141 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin * 自动带入 今年最新的 “年初应收余额”和“年初应付余额 */ public void initData(DynamicObject org,DynamicObject periodParam){ - 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_infundproject_entry.zcgj_expectedmonetarycap,zcgj_infundproject_entry.zcgj_expectedmonetaryfund,zcgj_infundproject_entry.zcgj_otheramount,zcgj_infundproject_entry.zcgj_expectedreceivableba,zcgj_infundproject_entry.zcgj_plannedoutputvalue,zcgj_infundproject_entry.zcgj_expectedtotalcollect "+ - ",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(); - //本月计划产值 - - BigDecimal lastplancashamtall = BigDecimal.ZERO; - BigDecimal lastplanbankamtall = BigDecimal.ZERO; - BigDecimal lastotheramtall = BigDecimal.ZERO; - BigDecimal lastplanarbalanceall = BigDecimal.ZERO; - BigDecimal lastplanvalall = BigDecimal.ZERO; - BigDecimal lastplanrec = BigDecimal.ZERO; - for (DynamicObject dynamicObject : indataentry) { - DynamicObject newData = inentry.addNew(); - DynamicObject zcgjInFundproject = dynamicObject.getDynamicObject("zcgj_in_fundproject"); - if(zcgjInFundproject!=null){ - newData.set("zcgj_in_fundproject",zcgjInFundproject); - QFilter id = new QFilter("id", QCP.equals, zcgjInFundproject.getLong("id")); - DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); - if(project!=null){ - BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); - newData.set("zcgj_in_seq",zcgjSeq); - } - } - - 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")); - - lastplancashamtall = lastplancashamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetarycap")); - lastplanbankamtall= lastplanbankamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetaryfund")); - lastotheramtall = lastotheramtall.add(dynamicObject.getBigDecimal("zcgj_otheramount")); - lastplanarbalanceall = lastplanarbalanceall.add(dynamicObject.getBigDecimal("zcgj_expectedreceivableba")); - lastplanvalall = lastplanvalall.add(dynamicObject.getBigDecimal("zcgj_plannedoutputvalue")); - lastplanrec = lastplanrec.add(dynamicObject.getBigDecimal("zcgj_expectedtotalcollect")); + //当前期间 + Object periodObj = this.getModel().getValue("zcgj_period"); + if(periodObj!=null || periodParam !=null) { + DynamicObject period = null; + if (periodParam != null) { + period = periodParam; + } else { + period = (DynamicObject) periodObj; } - 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(); - DynamicObject zcgjOutFundproject = dynamicObject.getDynamicObject("zcgj_out_fundproject"); - if(zcgjOutFundproject!=null){ - newData.set("zcgj_out_fundproject",zcgjOutFundproject); - QFilter id = new QFilter("id", QCP.equals, zcgjOutFundproject.getLong("id")); - DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); - if(project!=null){ - BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); - newData.set("zcgj_out_seq",zcgjSeq); - } - } - - 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")); + int year = Integer.parseInt(period.getString("number").substring(0, 4)); + int month = Integer.parseInt(period.getString("number").substring(4, 6)); + if (month == 1) { + year -= 1; + month = 12; + } else { + month -= 1; } - this.getView().updateView("zcgj_outfundproject_entry"); + String prevPeriod = String.format("%04d%02d", year, month);//获取上月会计期间 + List searchFilterList = new ArrayList<>(); + searchFilterList.add(new QFilter("zcgj_org", QCP.equals, org.getLong("id"))); + searchFilterList.add( new QFilter("zcgj_period.number", QCP.equals, prevPeriod)); + searchFilterList.add( new QFilter("billstatus", QCP.equals, "C")); - //本月预计收款(货币) zcgj_expectedmonetarycap 其中:上月预计收货币资金 zcgj_lastplancashamt - //本月预计收款(承兑)zcgj_expectedmonetaryfund 其中:上月预计收承兑 zcgj_lastplanbankamt - //本月预计收款(其他) zcgj_otheramount 其中:上月预计收其他 zcgj_lastotheramt - //本月预计应收余额 zcgj_expectedreceivableba 上月预计应收余额 zcgj_lastplanarbalance - //本月计划产值 zcgj_plannedoutputvalue 上月计划产值 zcgj_lastplanval - //本月预计收款(合计) zcgj_expectedtotalcollect 上月预计收款 zcgj_lastplanrec + 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_infundproject_entry.zcgj_expectedmonetarycap,zcgj_infundproject_entry.zcgj_expectedmonetaryfund,zcgj_infundproject_entry.zcgj_otheramount,zcgj_infundproject_entry.zcgj_expectedreceivableba,zcgj_infundproject_entry.zcgj_plannedoutputvalue,zcgj_infundproject_entry.zcgj_expectedtotalcollect "+ + ",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(); + //本月计划产值 + + BigDecimal lastplancashamtall = BigDecimal.ZERO; + BigDecimal lastplanbankamtall = BigDecimal.ZERO; + BigDecimal lastotheramtall = BigDecimal.ZERO; + BigDecimal lastplanarbalanceall = BigDecimal.ZERO; + BigDecimal lastplanvalall = BigDecimal.ZERO; + BigDecimal lastplanrec = BigDecimal.ZERO; + for (DynamicObject dynamicObject : indataentry) { + DynamicObject newData = inentry.addNew(); + DynamicObject zcgjInFundproject = dynamicObject.getDynamicObject("zcgj_in_fundproject"); + if(zcgjInFundproject!=null){ + newData.set("zcgj_in_fundproject",zcgjInFundproject); + QFilter id = new QFilter("id", QCP.equals, zcgjInFundproject.getLong("id")); + DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); + if(project!=null){ + BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); + newData.set("zcgj_in_seq",zcgjSeq); + } + } + + 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")); + + lastplancashamtall = lastplancashamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetarycap")); + lastplanbankamtall= lastplanbankamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetaryfund")); + lastotheramtall = lastotheramtall.add(dynamicObject.getBigDecimal("zcgj_otheramount")); + lastplanarbalanceall = lastplanarbalanceall.add(dynamicObject.getBigDecimal("zcgj_expectedreceivableba")); + lastplanvalall = lastplanvalall.add(dynamicObject.getBigDecimal("zcgj_plannedoutputvalue")); + lastplanrec = lastplanrec.add(dynamicObject.getBigDecimal("zcgj_expectedtotalcollect")); + } + 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(); + DynamicObject zcgjOutFundproject = dynamicObject.getDynamicObject("zcgj_out_fundproject"); + if(zcgjOutFundproject!=null){ + newData.set("zcgj_out_fundproject",zcgjOutFundproject); + QFilter id = new QFilter("id", QCP.equals, zcgjOutFundproject.getLong("id")); + DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); + if(project!=null){ + BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); + newData.set("zcgj_out_seq",zcgjSeq); + } + } + + 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"); + + //本月预计收款(货币) zcgj_expectedmonetarycap 其中:上月预计收货币资金 zcgj_lastplancashamt + //本月预计收款(承兑)zcgj_expectedmonetaryfund 其中:上月预计收承兑 zcgj_lastplanbankamt + //本月预计收款(其他) zcgj_otheramount 其中:上月预计收其他 zcgj_lastotheramt + //本月预计应收余额 zcgj_expectedreceivableba 上月预计应收余额 zcgj_lastplanarbalance + //本月计划产值 zcgj_plannedoutputvalue 上月计划产值 zcgj_lastplanval + //本月预计收款(合计) zcgj_expectedtotalcollect 上月预计收款 zcgj_lastplanrec - DynamicObjectCollection infundlastentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_infundlastentry"); - DynamicObject infundlastentryObject = infundlastentry.addNew(); - infundlastentryObject.set("zcgj_lastplancashamt",lastplancashamtall); - infundlastentryObject.set("zcgj_lastplanbankamt",lastplanbankamtall); - infundlastentryObject.set("zcgj_lastotheramt",lastotheramtall); - infundlastentryObject.set("zcgj_lastplanarbalance",lastplanarbalanceall); - infundlastentryObject.set("zcgj_lastplanval",lastplanvalall); - infundlastentryObject.set("zcgj_lastplanrec",lastplanrec); - this.getView().updateView("zcgj_infundlastentry"); - } + DynamicObjectCollection infundlastentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_infundlastentry"); + infundlastentry.clear(); + if(lastplancashamtall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanbankamtall.compareTo(BigDecimal.ZERO)!=0 + ||lastotheramtall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanarbalanceall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanvalall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanrec.compareTo(BigDecimal.ZERO)!=0){ + DynamicObject infundlastentryObject = infundlastentry.addNew(); + infundlastentryObject.set("zcgj_lastplancashamt",lastplancashamtall); + infundlastentryObject.set("zcgj_lastplanbankamt",lastplanbankamtall); + infundlastentryObject.set("zcgj_lastotheramt",lastotheramtall); + infundlastentryObject.set("zcgj_lastplanarbalance",lastplanarbalanceall); + infundlastentryObject.set("zcgj_lastplanval",lastplanvalall); + infundlastentryObject.set("zcgj_lastplanrec",lastplanrec); + this.getView().updateView("zcgj_infundlastentry"); + } + } + } + BigDecimal cashamtAll = BigDecimal.ZERO; BigDecimal bankamtAll = BigDecimal.ZERO; @@ -216,7 +246,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin BigDecimal supplyamtAll = BigDecimal.ZERO; BigDecimal otheramtAll = BigDecimal.ZERO; BigDecimal totalamtAll = BigDecimal.ZERO; - Object periodObj = this.getModel().getValue("zcgj_period"); + if(periodObj!=null || periodParam !=null){ DynamicObject period = null; if(periodParam!=null){ From 4c9abbe0c69a741b55d96a25ff5e40c96dfc18b8 Mon Sep 17 00:00:00 2001 From: zhangzhiguo <421587375@qq.com> Date: Tue, 4 Nov 2025 16:17:18 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=B5=84=E9=87=91=E8=AE=A1=E5=88=92?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plugin/form/FundingplanapplyPlugin.java | 219 ++++++++++++------ 1 file changed, 146 insertions(+), 73 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 c65449c..0fbf3d4 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 @@ -10,6 +10,9 @@ 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; +import kd.bos.form.ShowType; +import kd.bos.form.control.Toolbar; +import kd.bos.form.control.events.ItemClickEvent; import kd.bos.orm.query.QCP; import kd.bos.orm.query.QFilter; import kd.bos.servicehelper.BusinessDataServiceHelper; @@ -25,6 +28,26 @@ import java.util.*; */ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin { + //注册监听按钮 + @Override + public void registerListener(EventObject e) { + //注册整个工具栏监听器 + Toolbar toolbar = this.getView().getControl("tbmain"); + toolbar.addClickListener(this); + super.registerListener(e); + } + + //操作栏点击事件 + @Override + public void itemClick(ItemClickEvent evt) { + if(evt.getItemKey().equals("zcgj_initdata")){ //跳转到冲销单据 + DynamicObject org = (DynamicObject) this.getModel().getValue("zcgj_org"); + DynamicObject periodParam = (DynamicObject) this.getModel().getValue("zcgj_period"); + initData(org,periodParam); + this.getView().showMessage("操作完成!"); + } + super.itemClick(evt); + } @Override public void afterBindData(EventObject e) { @@ -107,6 +130,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin //当前期间 Object periodObj = this.getModel().getValue("zcgj_period"); + //流入流出项目 start if(periodObj!=null || periodParam !=null) { DynamicObject period = null; if (periodParam != null) { @@ -114,87 +138,74 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin } else { period = (DynamicObject) periodObj; } - - int year = Integer.parseInt(period.getString("number").substring(0, 4)); - int month = Integer.parseInt(period.getString("number").substring(4, 6)); - if (month == 1) { - year -= 1; - month = 12; - } else { - month -= 1; - } - String prevPeriod = String.format("%04d%02d", year, month);//获取上月会计期间 + int nowyear = 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.equals, prevPeriod)); - searchFilterList.add( new QFilter("billstatus", QCP.equals, "C")); + searchFilterList.add(new QFilter("zcgj_period.number", QCP.like, nowyear + "%")); + searchFilterList.add(new QFilter("billstatus", QCP.equals, "C")); 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_infundproject_entry.zcgj_expectedmonetarycap,zcgj_infundproject_entry.zcgj_expectedmonetaryfund,zcgj_infundproject_entry.zcgj_otheramount,zcgj_infundproject_entry.zcgj_expectedreceivableba,zcgj_infundproject_entry.zcgj_plannedoutputvalue,zcgj_infundproject_entry.zcgj_expectedtotalcollect "+ + ",zcgj_infundproject_entry.zcgj_expectedmonetarycap,zcgj_infundproject_entry.zcgj_expectedmonetaryfund,zcgj_infundproject_entry.zcgj_otheramount,zcgj_infundproject_entry.zcgj_expectedreceivableba,zcgj_infundproject_entry.zcgj_plannedoutputvalue,zcgj_infundproject_entry.zcgj_expectedtotalcollect " + ",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(); - //本月计划产值 - BigDecimal lastplancashamtall = BigDecimal.ZERO; - BigDecimal lastplanbankamtall = BigDecimal.ZERO; - BigDecimal lastotheramtall = BigDecimal.ZERO; - BigDecimal lastplanarbalanceall = BigDecimal.ZERO; - BigDecimal lastplanvalall = BigDecimal.ZERO; - BigDecimal lastplanrec = BigDecimal.ZERO; + DynamicObjectCollection inentry = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_infundproject_entry"); + inentry.clear(); + this.getView().updateView("zcgj_infundproject_entry"); + + DynamicObjectCollection outentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_outfundproject_entry"); + outentry.clear(); + this.getView().updateView("zcgj_outfundproject_entry"); + + //资金流入项目和流出项目 + if (load != null && load.length > 0) { + DynamicObject data = load[0]; + //资金流入项目 + DynamicObjectCollection indataentry = data.getDynamicObjectCollection("zcgj_infundproject_entry"); + for (DynamicObject dynamicObject : indataentry) { DynamicObject newData = inentry.addNew(); DynamicObject zcgjInFundproject = dynamicObject.getDynamicObject("zcgj_in_fundproject"); - if(zcgjInFundproject!=null){ - newData.set("zcgj_in_fundproject",zcgjInFundproject); + if (zcgjInFundproject != null) { + newData.set("zcgj_in_fundproject", zcgjInFundproject); QFilter id = new QFilter("id", QCP.equals, zcgjInFundproject.getLong("id")); DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); - if(project!=null){ + if (project != null) { BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); - newData.set("zcgj_in_seq",zcgjSeq); + newData.set("zcgj_in_seq", zcgjSeq); } } DynamicObjectCollection collection = new DynamicObjectCollection(); - for (DynamicObject zcgjInCustom :dynamicObject.getDynamicObjectCollection("zcgj_in_custom")) { + 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")); - - lastplancashamtall = lastplancashamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetarycap")); - lastplanbankamtall= lastplanbankamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetaryfund")); - lastotheramtall = lastotheramtall.add(dynamicObject.getBigDecimal("zcgj_otheramount")); - lastplanarbalanceall = lastplanarbalanceall.add(dynamicObject.getBigDecimal("zcgj_expectedreceivableba")); - lastplanvalall = lastplanvalall.add(dynamicObject.getBigDecimal("zcgj_plannedoutputvalue")); - lastplanrec = lastplanrec.add(dynamicObject.getBigDecimal("zcgj_expectedtotalcollect")); + 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(); + + this.getView().updateView("zcgj_outfundproject_entry"); for (DynamicObject dynamicObject : outdataentry) { DynamicObject newData = outentry.addNew(); DynamicObject zcgjOutFundproject = dynamicObject.getDynamicObject("zcgj_out_fundproject"); - if(zcgjOutFundproject!=null){ - newData.set("zcgj_out_fundproject",zcgjOutFundproject); + if (zcgjOutFundproject != null) { + newData.set("zcgj_out_fundproject", zcgjOutFundproject); QFilter id = new QFilter("id", QCP.equals, zcgjOutFundproject.getLong("id")); DynamicObject project = BusinessDataServiceHelper.loadSingle("zcgj_ec_fundproject", "zcgj_seq", new QFilter[]{id}); - if(project!=null){ + if (project != null) { BigDecimal zcgjSeq = project.getBigDecimal("zcgj_seq"); - newData.set("zcgj_out_seq",zcgjSeq); + newData.set("zcgj_out_seq", zcgjSeq); } } @@ -206,40 +217,100 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin newObj.set("fbasedataid_id", basedataObj.getPkValue()); collection.add(newObj); } - newData.set("zcgj_out_supplier",collection); - newData.set("zcgj_openingpayable",dynamicObject.get("zcgj_openingpayable")); + newData.set("zcgj_out_supplier", collection); + newData.set("zcgj_openingpayable", dynamicObject.get("zcgj_openingpayable")); } this.getView().updateView("zcgj_outfundproject_entry"); - - //本月预计收款(货币) zcgj_expectedmonetarycap 其中:上月预计收货币资金 zcgj_lastplancashamt - //本月预计收款(承兑)zcgj_expectedmonetaryfund 其中:上月预计收承兑 zcgj_lastplanbankamt - //本月预计收款(其他) zcgj_otheramount 其中:上月预计收其他 zcgj_lastotheramt - //本月预计应收余额 zcgj_expectedreceivableba 上月预计应收余额 zcgj_lastplanarbalance - //本月计划产值 zcgj_plannedoutputvalue 上月计划产值 zcgj_lastplanval - //本月预计收款(合计) zcgj_expectedtotalcollect 上月预计收款 zcgj_lastplanrec - - - DynamicObjectCollection infundlastentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_infundlastentry"); - infundlastentry.clear(); - if(lastplancashamtall.compareTo(BigDecimal.ZERO)!=0 - ||lastplanbankamtall.compareTo(BigDecimal.ZERO)!=0 - ||lastotheramtall.compareTo(BigDecimal.ZERO)!=0 - ||lastplanarbalanceall.compareTo(BigDecimal.ZERO)!=0 - ||lastplanvalall.compareTo(BigDecimal.ZERO)!=0 - ||lastplanrec.compareTo(BigDecimal.ZERO)!=0){ - DynamicObject infundlastentryObject = infundlastentry.addNew(); - infundlastentryObject.set("zcgj_lastplancashamt",lastplancashamtall); - infundlastentryObject.set("zcgj_lastplanbankamt",lastplanbankamtall); - infundlastentryObject.set("zcgj_lastotheramt",lastotheramtall); - infundlastentryObject.set("zcgj_lastplanarbalance",lastplanarbalanceall); - infundlastentryObject.set("zcgj_lastplanval",lastplanvalall); - infundlastentryObject.set("zcgj_lastplanrec",lastplanrec); - this.getView().updateView("zcgj_infundlastentry"); - } } } + //流入流出项目 end + //上月实际流入 start + if(periodObj!=null || periodParam !=null){ + DynamicObject period = null; + if(periodParam!=null){ + period = periodParam; + }else{ + period = (DynamicObject) periodObj; + } + //上月实际流入 + DynamicObjectCollection infundlastentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_infundlastentry"); + infundlastentry.clear(); + this.getView().updateView("zcgj_infundlastentry"); + + int year = Integer.parseInt(period.getString("number").substring(0, 4)); + int month = Integer.parseInt(period.getString("number").substring(4, 6)); + if (month == 1) { + year -= 1; + month = 12; + } else { + month -= 1; + } + String prevPeriod = String.format("%04d%02d", year, month);//获取上月会计期间 + + List searchFilterListPrev = new ArrayList<>(); + searchFilterListPrev.add(new QFilter("zcgj_org", QCP.equals, org.getLong("id"))); + searchFilterListPrev.add( new QFilter("zcgj_period.number", QCP.equals, prevPeriod)); + searchFilterListPrev.add( new QFilter("billstatus", QCP.equals, "C")); + + DynamicObject[] loadprev = 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_infundproject_entry.zcgj_expectedmonetarycap,zcgj_infundproject_entry.zcgj_expectedmonetaryfund,zcgj_infundproject_entry.zcgj_otheramount,zcgj_infundproject_entry.zcgj_expectedreceivableba,zcgj_infundproject_entry.zcgj_plannedoutputvalue,zcgj_infundproject_entry.zcgj_expectedtotalcollect "+ + ",zcgj_outfundproject_entry.zcgj_out_fundproject,zcgj_outfundproject_entry.zcgj_out_supplier,zcgj_outfundproject_entry.zcgj_openingpayable" + + ",createtime", + searchFilterListPrev.toArray(new QFilter[]{}), "createtime desc"); + + //本月计划产值 + BigDecimal lastplancashamtall = BigDecimal.ZERO; + BigDecimal lastplanbankamtall = BigDecimal.ZERO; + BigDecimal lastotheramtall = BigDecimal.ZERO; + BigDecimal lastplanarbalanceall = BigDecimal.ZERO; + BigDecimal lastplanvalall = BigDecimal.ZERO; + BigDecimal lastplanrec = BigDecimal.ZERO; + + if (loadprev != null && loadprev.length > 0) { + DynamicObject data = loadprev[0]; + DynamicObjectCollection indataentry = data.getDynamicObjectCollection("zcgj_infundproject_entry"); + + for (DynamicObject dynamicObject : indataentry) { + lastplancashamtall = lastplancashamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetarycap")); + lastplanbankamtall= lastplanbankamtall.add(dynamicObject.getBigDecimal("zcgj_expectedmonetaryfund")); + lastotheramtall = lastotheramtall.add(dynamicObject.getBigDecimal("zcgj_otheramount")); + lastplanarbalanceall = lastplanarbalanceall.add(dynamicObject.getBigDecimal("zcgj_expectedreceivableba")); + lastplanvalall = lastplanvalall.add(dynamicObject.getBigDecimal("zcgj_plannedoutputvalue")); + lastplanrec = lastplanrec.add(dynamicObject.getBigDecimal("zcgj_expectedtotalcollect")); + } + + } + + //本月预计收款(货币) zcgj_expectedmonetarycap 其中:上月预计收货币资金 zcgj_lastplancashamt + //本月预计收款(承兑)zcgj_expectedmonetaryfund 其中:上月预计收承兑 zcgj_lastplanbankamt + //本月预计收款(其他) zcgj_otheramount 其中:上月预计收其他 zcgj_lastotheramt + //本月预计应收余额 zcgj_expectedreceivableba 上月预计应收余额 zcgj_lastplanarbalance + //本月计划产值 zcgj_plannedoutputvalue 上月计划产值 zcgj_lastplanval + //本月预计收款(合计) zcgj_expectedtotalcollect 上月预计收款 zcgj_lastplanrec + if(lastplancashamtall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanbankamtall.compareTo(BigDecimal.ZERO)!=0 + ||lastotheramtall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanarbalanceall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanvalall.compareTo(BigDecimal.ZERO)!=0 + ||lastplanrec.compareTo(BigDecimal.ZERO)!=0){ + DynamicObject infundlastentryObject = infundlastentry.addNew(); + infundlastentryObject.set("zcgj_lastplancashamt",lastplancashamtall); + infundlastentryObject.set("zcgj_lastplanbankamt",lastplanbankamtall); + infundlastentryObject.set("zcgj_lastotheramt",lastotheramtall); + infundlastentryObject.set("zcgj_lastplanarbalance",lastplanarbalanceall); + infundlastentryObject.set("zcgj_lastplanval",lastplanvalall); + infundlastentryObject.set("zcgj_lastplanrec",lastplanrec); + this.getView().updateView("zcgj_infundlastentry"); + } + } + //上月实际流入 end + + + //公司资金往来 start BigDecimal cashamtAll = BigDecimal.ZERO; BigDecimal bankamtAll = BigDecimal.ZERO; BigDecimal businessamtAll = BigDecimal.ZERO; @@ -257,6 +328,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin List searchFilterListzj = new ArrayList<>(); searchFilterListzj.add(new QFilter("zcgj_org", QCP.equals, org.getLong("id"))); searchFilterListzj.add( new QFilter("zcgj_period.number", QCP.equals, period.getString("number"))); + searchFilterListzj.add( new QFilter("billstatus", QCP.equals, "C")); DynamicObject[] loadzj = BusinessDataServiceHelper.load("zcgj_ec_fundingplanapply", "zcgj_period,zcgj_fundplyentry.zcgj_funditem," + "zcgj_fundplyentry.zcgj_cashamt,zcgj_fundplyentry.zcgj_bankamt " + @@ -317,6 +389,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin this.getView().setEnable(false, 3, "zcgj_cashamt","zcgj_bankamt","zcgj_businessamt","zcgj_supplyamt","zcgj_otheramt","zcgj_totalamt"); this.getView().setEnable(false, 7, "zcgj_cashamt","zcgj_bankamt","zcgj_businessamt","zcgj_supplyamt","zcgj_otheramt","zcgj_totalamt"); + //公司资金往来 end } @Override