目标成本评审表单插件新增工序成本预算逻辑与项目成本预算分录赋值逻辑
This commit is contained in:
parent
91d003516e
commit
951e8999a8
|
@ -0,0 +1,85 @@
|
|||
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.entity.datamodel.events.ChangeData;
|
||||
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
|
||||
import kd.bos.form.field.RefBillEdit;
|
||||
import kd.bos.form.field.events.BeforeF7SelectEvent;
|
||||
import kd.bos.form.field.events.BeforeF7SelectListener;
|
||||
import kd.bos.isc.util.misc.StringUtil;
|
||||
import kd.bos.list.ListShowParameter;
|
||||
import kd.bos.orm.query.QCP;
|
||||
import kd.bos.orm.query.QFilter;
|
||||
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.EventObject;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 目标成本评审表单插件
|
||||
* 说明:以项目和可用版本过滤工序成本预算字段,且将工序成本预算内的字段赋值到项目成本预算分录中
|
||||
*/
|
||||
public class AimCostReViewBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
|
||||
@Override
|
||||
public void registerListener(EventObject e) {
|
||||
super.registerListener(e);
|
||||
RefBillEdit refBillEdit = getView().getControl("zcgj_aimcostbill");//工序成本预算
|
||||
refBillEdit.addBeforeF7SelectListener(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void propertyChanged(PropertyChangedArgs e) {
|
||||
super.propertyChanged(e);
|
||||
String key = e.getProperty().getName();
|
||||
if (StringUtil.equals(key, "zcgj_aimcostbill")) {
|
||||
//工序成本预算
|
||||
ChangeData[] changeSet = e.getChangeSet();
|
||||
ChangeData changeData = changeSet[0];
|
||||
DynamicObject aimCostBill = (DynamicObject) changeData.getNewValue();//新值
|
||||
DynamicObjectCollection costEntryEntityCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("costentryentity");//项目成本预算分录
|
||||
DynamicObjectType costEntryEntityType = costEntryEntityCollection.getDynamicObjectType();
|
||||
costEntryEntityCollection.clear();
|
||||
if (aimCostBill != null) {
|
||||
DynamicObject aimCostBillCbs = BusinessDataServiceHelper.loadSingle(aimCostBill.getPkValue(), "ecco_aimcostbillcbs");//工序成本预算单
|
||||
if (aimCostBillCbs != null) {
|
||||
DynamicObject newCostEntryEntity = new DynamicObject(costEntryEntityType);
|
||||
newCostEntryEntity.set("costbillno", aimCostBillCbs.get("billno"));//单据编号
|
||||
newCostEntryEntity.set("costbillname", aimCostBillCbs.get("name"));//单据名称
|
||||
newCostEntryEntity.set("costunitproject", aimCostBillCbs.get("unitproject"));//单位工程/标段
|
||||
newCostEntryEntity.set("budcost", aimCostBillCbs.get("totalamount"));//预算成本金额
|
||||
newCostEntryEntity.set("costexecutable", aimCostBillCbs.get("isenable"));//执行版本
|
||||
newCostEntryEntity.set("costversion", aimCostBillCbs.get("versionno"));//版本号
|
||||
newCostEntryEntity.set("costfrom", "CBS");//数据来源
|
||||
newCostEntryEntity.set("costfromid", aimCostBillCbs.get("id"));//数据id
|
||||
costEntryEntityCollection.add(newCostEntryEntity);
|
||||
}
|
||||
}
|
||||
this.getView().updateView("costentryentity");//刷新项目成本预算分录
|
||||
} else if (StringUtil.equals(key, "project")) {
|
||||
ChangeData[] changeSet = e.getChangeSet();
|
||||
ChangeData changeData = changeSet[0];
|
||||
Object newValue = changeData.getNewValue();//新值
|
||||
if (newValue == null) {
|
||||
this.getModel().setValue("zcgj_aimcostbill", null);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
|
||||
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
|
||||
List<QFilter> qFilter = new ArrayList<>();
|
||||
DynamicObject project = (DynamicObject) this.getModel().getValue("project");//项目
|
||||
if (project != null) {
|
||||
qFilter.add(new QFilter("project", "=", project.getPkValue()));
|
||||
qFilter.add(new QFilter("isenable", "=", true));
|
||||
} else {
|
||||
qFilter.add(new QFilter("project", "=", 1234567890));
|
||||
}
|
||||
formShowParameter.getListFilterParameter().setQFilters(qFilter);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue