企业成本核算表单插件添加逻辑:点击自动取数按钮获取核算余额表
This commit is contained in:
parent
03e947fb72
commit
829b738ea0
|
|
@ -0,0 +1,75 @@
|
||||||
|
package zcgj.zcdev.zcdev.pr.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObjectCollection;
|
||||||
|
import kd.bos.dataentity.metadata.dynamicobject.DynamicObjectType;
|
||||||
|
import kd.bos.form.events.BeforeDoOperationEventArgs;
|
||||||
|
import kd.bos.form.operate.FormOperate;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.bos.servicehelper.QueryServiceHelper;
|
||||||
|
|
||||||
|
import java.util.EventObject;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 企业成本核算表单插件
|
||||||
|
* 说明:1:点击自动取数按钮获取核算余额表
|
||||||
|
*/
|
||||||
|
public class EntCostSplitBillPlugin extends AbstractBillPlugIn {
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
super.registerListener(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void beforeDoOperation(BeforeDoOperationEventArgs args) {
|
||||||
|
super.beforeDoOperation(args);
|
||||||
|
FormOperate formOperate = (FormOperate) args.getSource();
|
||||||
|
if ("autogetdata".equals(formOperate.getOperateKey())) {
|
||||||
|
//自动取数
|
||||||
|
Object org = this.getModel().getValue("org");//所属组织
|
||||||
|
if (org == null) {
|
||||||
|
this.getView().showTipNotification("请选择组织");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Object period = this.getModel().getValue("period");//期间
|
||||||
|
if (period == null) {
|
||||||
|
this.getView().showTipNotification("请选择期间");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DynamicObject org1 = (DynamicObject) org;//所属组织
|
||||||
|
DynamicObject period1 = (DynamicObject) period;//期间
|
||||||
|
DynamicObjectCollection entryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//企业费用成本分摊明细分录
|
||||||
|
DynamicObjectType entryType = entryCollection.getDynamicObjectType();
|
||||||
|
if (entryCollection.size() > 0) {
|
||||||
|
entryCollection.clear();
|
||||||
|
}
|
||||||
|
QFilter filter = new QFilter("zcgj_org", QCP.equals, org1.getPkValue());//核算组织
|
||||||
|
filter.and(new QFilter("zcgj_period", QCP.equals, period1.getPkValue()));//期间
|
||||||
|
filter.and(new QFilter("zcgj_isnew", QCP.equals, true));//是否最新
|
||||||
|
DynamicObjectCollection rptAssistBalanceGxCollection = QueryServiceHelper.query("zcgj_rpt_assistbalancegx",
|
||||||
|
"id,zcgj_account,zcgj_processname",
|
||||||
|
new QFilter[]{filter});//核算维度余额取数表(矿山工序维度)
|
||||||
|
|
||||||
|
for (DynamicObject rptAssistBalanceGx : rptAssistBalanceGxCollection) {
|
||||||
|
QFilter filter1 = new QFilter("zcgj_entryentity.zcgj_accountview", QCP.equals, rptAssistBalanceGx.get("zcgj_account"));//科目
|
||||||
|
filter1.and(new QFilter("zcgj_org", QCP.equals, org1.getPkValue()));//组织
|
||||||
|
DynamicObject zcgj_accountcost = QueryServiceHelper.queryOne("zcgj_accountcost",
|
||||||
|
"id,zcgj_entryentity.zcgj_costtype,zcgj_entryentity.zcgj_sectype",
|
||||||
|
new QFilter[]{filter1});//会计科目与成本项目
|
||||||
|
|
||||||
|
DynamicObject newEntry = new DynamicObject(entryType);
|
||||||
|
QFilter[] qFilters = new QFilter[]{new QFilter("name", QCP.equals, rptAssistBalanceGx.get("zcgj_processname"))};
|
||||||
|
DynamicObject ec_ecbd_pro_cbs = BusinessDataServiceHelper.loadSingle("ec_ecbd_pro_cbs", "id", qFilters);//项目工序
|
||||||
|
if (ec_ecbd_pro_cbs != null) {
|
||||||
|
newEntry.set("cbs", ec_ecbd_pro_cbs.getPkValue());
|
||||||
|
}
|
||||||
|
newEntry.set("costtype", zcgj_accountcost.get("zcgj_entryentity.zcgj_costtype"));
|
||||||
|
newEntry.set("zcgj_sectype", zcgj_accountcost.get("zcgj_entryentity.zcgj_sectype"));
|
||||||
|
entryCollection.add(newEntry);
|
||||||
|
}
|
||||||
|
this.getView().updateView("entryentity");//刷新分录
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue