设备命令单表单插件:新加逻辑:1:设备编码带出资产编码;2:过滤设备编码字段;3:调出调入项目带出调出调入负责人

This commit is contained in:
xuhaihui 2025-08-11 16:14:03 +08:00
parent da15158c2f
commit 84c54e187c
1 changed files with 133 additions and 0 deletions

View File

@ -0,0 +1,133 @@
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.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.field.BasedataEdit;
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;
/*
* 设备命令单表单插件
* 说明1设备编码带出资产编码2:过滤设备编码字段3调出调入项目带出调出调入负责人
*/
public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements BeforeF7SelectListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
BasedataEdit realCard = this.getControl("zcgj_realcard"); //设备编码
realCard.addBeforeF7SelectListener(this);
BasedataEdit outProject = this.getControl("zcgj_outproject"); //调出项目
outProject.addBeforeF7SelectListener(this);
BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目
inProject.addBeforeF7SelectListener(this);
// BasedataEdit outUser = this.getControl("zcgj_outuser"); //调出负责人
// outUser.addBeforeF7SelectListener(this);
// BasedataEdit inUser = this.getControl("zcgj_inuser"); //调入负责人
// inUser.addBeforeF7SelectListener(this);
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
String key = e.getProperty().getName();
if (StringUtil.equals(key, "zcgj_realcard")) {
//设备编码
ChangeData[] changeSet = e.getChangeSet();
ChangeData changeData = changeSet[0];
int rowIndex = changeData.getRowIndex();
DynamicObject realCard = (DynamicObject) changeData.getNewValue();//新值
if (realCard != null) {
String realCardNumber = realCard.getString("number");//设备编码-设备编码
DynamicObject org = (DynamicObject) realCard.get("org");//管理组织
QFilter[] qFilters = new QFilter[]{new QFilter("number", QCP.equals, realCardNumber).and("org.id", QCP.equals, org.get("id"))};
DynamicObject fa_card_real_base = BusinessDataServiceHelper.loadSingle("fa_card_real_base", "id", qFilters);//实物卡片基础资料
this.getModel().setValue("zcgj_realcardsw", fa_card_real_base, rowIndex);//资产编码
} else {
this.getModel().setValue("zcgj_realcardsw", null, rowIndex);//资产编码
}
} else if (StringUtil.equals(key, "zcgj_outorg") || StringUtil.equals(key, "zcgj_inorg")) {
//调出组织调入组织
ChangeData[] changeSet = e.getChangeSet();
ChangeData changeData = changeSet[0];
Object newValue = changeData.getNewValue();//新值
Object oldValue = changeData.getOldValue();//旧值
if (newValue == null || !newValue.equals(oldValue)) {
if (StringUtil.equals(key, "zcgj_outorg")) {
//调出组织
DynamicObjectCollection dispatchEntryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("zcgj_dispatchentry");//调出资产详情分录
dispatchEntryCollection.clear();
this.getView().updateView("zcgj_dispatchentry");//刷新分录
this.getModel().setValue("zcgj_outproject", null);//清空调出项目
} else {
//调入组织
this.getModel().setValue("zcgj_inproject", null);//清空调入项目
}
}
} else if (StringUtil.equals(key, "zcgj_outproject") || StringUtil.equals(key, "zcgj_inproject")) {
//调出项目调入项目
ChangeData[] changeSet = e.getChangeSet();
ChangeData changeData = changeSet[0];
Object newValue = changeData.getNewValue();//新值
if (newValue != null) {
DynamicObject newValueDy = (DynamicObject) newValue;
QFilter[] qFilters = new QFilter[]{new QFilter("billno", QCP.equals, newValueDy.getString("number"))};
DynamicObject ec_project = BusinessDataServiceHelper.loadSingle("ec_project", "id,zcgj_pm", qFilters);//项目
if (ec_project != null) {
if (StringUtil.equals(key, "zcgj_outproject")) {
//调出项目
this.getModel().setValue("zcgj_outuser", ec_project.get("zcgj_pm"));//调出负责人
} else {
this.getModel().setValue("zcgj_inuser", ec_project.get("zcgj_pm"));//调出负责人
}
}
}
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
String propertyName = beforeF7SelectEvent.getProperty().getName();
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
List<QFilter> qFilter = new ArrayList<>();
if (StringUtil.equals(propertyName, "zcgj_realcard") || StringUtil.equals(propertyName, "zcgj_outproject")) {
//设备编码调出项目
Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织
if (outOrg == null) {
this.getView().showErrorNotification("请先填写调出组织!");
beforeF7SelectEvent.setCancel(true);
return;
}
DynamicObject outOrgDy = (DynamicObject) outOrg;
if (StringUtil.equals(propertyName, "zcgj_realcard")) {
//设备编码
qFilter.add(new QFilter("org.id", "=", outOrgDy.get("id")));
} else {
//调出项目
qFilter.add(new QFilter("fiaccountorg.id", "=", outOrgDy.get("id")));
}
} else if (StringUtil.equals(propertyName, "zcgj_inproject")) {
//调入项目
Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织
if (inOrg == null) {
this.getView().showErrorNotification("请先填写调入组织!");
beforeF7SelectEvent.setCancel(true);
return;
}
DynamicObject inOrgDy = (DynamicObject) inOrg;
qFilter.add(new QFilter("fiaccountorg.id", "=", inOrgDy.get("id")));
}
formShowParameter.getListFilterParameter().setQFilters(qFilter);
}
}