企业成本核算表单插件添加逻辑:点击自动取数按钮获取核算余额表
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