设备维修申请表单逻辑优化

This commit is contained in:
xuhaihui 2025-08-25 17:00:47 +08:00
parent f95d22004c
commit e458d083f6
1 changed files with 51 additions and 8 deletions

View File

@ -2,30 +2,73 @@ 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.IDataEntityProperty;
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.list.ListShowParameter;
import kd.bos.orm.query.QCP;
import kd.bos.orm.query.QFilter;
import kd.bos.servicehelper.BusinessDataServiceHelper;
import kd.sdk.plugin.Plugin;
public class MaintenanceBillPlugin extends AbstractBillPlugIn implements Plugin {
import java.util.EventObject;
/**
* 设备维修申请表单插件
*/
public class MaintenanceBillPlugin extends AbstractBillPlugIn implements Plugin, BeforeF7SelectListener {
@Override
public void registerListener(EventObject e) {
super.registerListener(e);
BasedataEdit zcgj_equipment = this.getView().getControl("zcgj_equipment");//设备名称
zcgj_equipment.addBeforeF7SelectListener(this);
}
@Override
public void propertyChanged(PropertyChangedArgs e) {
super.propertyChanged(e);
String name = e.getProperty().getName();
if (name.equals("zcgj_project")){
if (name.equals("zcgj_project")) {
Object zcgj_project = this.getModel().getValue("zcgj_project");
if(zcgj_project!=null){
if (zcgj_project != null) {
DynamicObject project = (DynamicObject) zcgj_project;
DynamicObject projectinfo = BusinessDataServiceHelper.loadSingle("ec_project_f7", new QFilter[]{new QFilter("id", QCP.equals, project.getLong("id"))});
DynamicObject fiaccountorg = projectinfo.getDynamicObject("fiaccountorg");
this.getModel().setValue("zcgj_accountorg",fiaccountorg);
this.getView().setEnable(false,"zcgj_accountorg");
}else {
this.getModel().setValue("zcgj_accountorg",null);
this.getView().setEnable(true,"zcgj_accountorg");
this.getModel().setValue("zcgj_accountorg", fiaccountorg);
this.getView().setEnable(false, "zcgj_accountorg");
} else {
this.getModel().setValue("zcgj_accountorg", null);
this.getView().setEnable(true, "zcgj_accountorg");
}
} else if (name.equals("zcgj_accountorg")) {
//财务记账组织
ChangeData[] changeSet = e.getChangeSet();
ChangeData changeData = changeSet[0];
Object newValue = changeData.getNewValue();//新值
Object oldValue = changeData.getOldValue();//旧值
if (newValue == null || !newValue.equals(oldValue)) {
DynamicObjectCollection entryCollection = this.getModel().getDataEntity(true).getDynamicObjectCollection("entryentity");//设备维修信息分录
entryCollection.clear();
this.getView().updateView("entryentity");//刷新分录
}
}
}
@Override
public void beforeF7Select(BeforeF7SelectEvent beforeF7SelectEvent) {
ListShowParameter formShowParameter = (ListShowParameter) beforeF7SelectEvent.getFormShowParameter();
Object zcgj_accountOrg = this.getModel().getValue("zcgj_accountorg");//财务记账组织
if (zcgj_accountOrg != null) {
DynamicObject zcgj_accountOrg1 = (DynamicObject) zcgj_accountOrg;
QFilter qFilter = new QFilter("useorg", QCP.equals, zcgj_accountOrg1.getPkValue());
formShowParameter.getListFilterParameter().getQFilters().add(qFilter);
} else {
this.getView().showErrorNotification("请先填写财务记账组织!!");
beforeF7SelectEvent.setCancel(true);
}
}
}