资金计划申请调整

This commit is contained in:
zhangzhiguo 2025-11-03 17:31:06 +08:00
parent bb78e36319
commit 66bfff005b
1 changed files with 130 additions and 100 deletions

View File

@ -71,7 +71,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
//获取登录人的主职部门用户的非兼职部门就是主职部门 //获取登录人的主职部门用户的非兼职部门就是主职部门
long currentUserId = UserServiceHelper.getCurrentUserId(); long currentUserId = UserServiceHelper.getCurrentUserId();
long mainOrgId = UserServiceHelper.getUserMainOrgId(currentUserId); 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){ public void initData(DynamicObject org,DynamicObject periodParam){
int year = LocalDate.now().getYear();
List<QFilter> searchFilterList = new ArrayList<>(); //当前期间
searchFilterList.add(new QFilter("zcgj_org", QCP.equals, org.getLong("id"))); Object periodObj = this.getModel().getValue("zcgj_period");
searchFilterList.add( new QFilter("zcgj_period.number", QCP.like, year+"%")); if(periodObj!=null || periodParam !=null) {
DynamicObject[] load = BusinessDataServiceHelper.load("zcgj_ec_fundingplanapply", DynamicObject period = null;
"zcgj_period," + if (periodParam != null) {
"zcgj_infundproject_entry.zcgj_in_fundproject,zcgj_infundproject_entry.zcgj_in_custom,zcgj_infundproject_entry.zcgj_iinitialreceivable " + period = periodParam;
",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 "+ } else {
",zcgj_outfundproject_entry.zcgj_out_fundproject,zcgj_outfundproject_entry.zcgj_out_supplier,zcgj_outfundproject_entry.zcgj_openingpayable" + period = (DynamicObject) periodObj;
",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"); int year = Integer.parseInt(period.getString("number").substring(0, 4));
DynamicObjectCollection outentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_outfundproject_entry"); int month = Integer.parseInt(period.getString("number").substring(4, 6));
outentry.clear(); if (month == 1) {
for (DynamicObject dynamicObject : outdataentry) { year -= 1;
DynamicObject newData = outentry.addNew(); month = 12;
DynamicObject zcgjOutFundproject = dynamicObject.getDynamicObject("zcgj_out_fundproject"); } else {
if(zcgjOutFundproject!=null){ month -= 1;
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"); String prevPeriod = String.format("%04d%02d", year, month);//获取上月会计期间
List<QFilter> 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 DynamicObject[] load = BusinessDataServiceHelper.load("zcgj_ec_fundingplanapply",
//本月预计收款承兑zcgj_expectedmonetaryfund 其中上月预计收承兑 zcgj_lastplanbankamt "zcgj_period," +
//本月预计收款其他 zcgj_otheramount 其中上月预计收其他 zcgj_lastotheramt "zcgj_infundproject_entry.zcgj_in_fundproject,zcgj_infundproject_entry.zcgj_in_custom,zcgj_infundproject_entry.zcgj_iinitialreceivable " +
//本月预计应收余额 zcgj_expectedreceivableba 上月预计应收余额 zcgj_lastplanarbalance ",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_plannedoutputvalue 上月计划产值 zcgj_lastplanval ",zcgj_outfundproject_entry.zcgj_out_fundproject,zcgj_outfundproject_entry.zcgj_out_supplier,zcgj_outfundproject_entry.zcgj_openingpayable" +
//本月预计收款合计 zcgj_expectedtotalcollect 上月预计收款 zcgj_lastplanrec ",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"); DynamicObjectCollection infundlastentry = this.getModel().getDataEntity().getDynamicObjectCollection("zcgj_infundlastentry");
DynamicObject infundlastentryObject = infundlastentry.addNew(); infundlastentry.clear();
infundlastentryObject.set("zcgj_lastplancashamt",lastplancashamtall); if(lastplancashamtall.compareTo(BigDecimal.ZERO)!=0
infundlastentryObject.set("zcgj_lastplanbankamt",lastplanbankamtall); ||lastplanbankamtall.compareTo(BigDecimal.ZERO)!=0
infundlastentryObject.set("zcgj_lastotheramt",lastotheramtall); ||lastotheramtall.compareTo(BigDecimal.ZERO)!=0
infundlastentryObject.set("zcgj_lastplanarbalance",lastplanarbalanceall); ||lastplanarbalanceall.compareTo(BigDecimal.ZERO)!=0
infundlastentryObject.set("zcgj_lastplanval",lastplanvalall); ||lastplanvalall.compareTo(BigDecimal.ZERO)!=0
infundlastentryObject.set("zcgj_lastplanrec",lastplanrec); ||lastplanrec.compareTo(BigDecimal.ZERO)!=0){
this.getView().updateView("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");
}
}
}
BigDecimal cashamtAll = BigDecimal.ZERO; BigDecimal cashamtAll = BigDecimal.ZERO;
BigDecimal bankamtAll = BigDecimal.ZERO; BigDecimal bankamtAll = BigDecimal.ZERO;
@ -216,7 +246,7 @@ public class FundingplanapplyPlugin extends AbstractBillPlugIn implements Plugin
BigDecimal supplyamtAll = BigDecimal.ZERO; BigDecimal supplyamtAll = BigDecimal.ZERO;
BigDecimal otheramtAll = BigDecimal.ZERO; BigDecimal otheramtAll = BigDecimal.ZERO;
BigDecimal totalamtAll = BigDecimal.ZERO; BigDecimal totalamtAll = BigDecimal.ZERO;
Object periodObj = this.getModel().getValue("zcgj_period");
if(periodObj!=null || periodParam !=null){ if(periodObj!=null || periodParam !=null){
DynamicObject period = null; DynamicObject period = null;
if(periodParam!=null){ if(periodParam!=null){