设备调令单表单插件逻辑优化

This commit is contained in:
xuhaihui 2025-08-13 17:16:18 +08:00
parent fe609728ce
commit 9acaea9c02
1 changed files with 62 additions and 9 deletions

View File

@ -3,8 +3,12 @@ package zcgj.zcdev.zcdev.pr.plugin.form;
import kd.bos.bill.AbstractBillPlugIn; import kd.bos.bill.AbstractBillPlugIn;
import kd.bos.dataentity.entity.DynamicObject; import kd.bos.dataentity.entity.DynamicObject;
import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.dataentity.entity.DynamicObjectCollection;
import kd.bos.entity.datamodel.ListSelectedRowCollection;
import kd.bos.entity.datamodel.events.ChangeData; import kd.bos.entity.datamodel.events.ChangeData;
import kd.bos.entity.datamodel.events.PropertyChangedArgs; import kd.bos.entity.datamodel.events.PropertyChangedArgs;
import kd.bos.form.CloseCallBack;
import kd.bos.form.ShowFormHelper;
import kd.bos.form.events.ClosedCallBackEvent;
import kd.bos.form.field.BasedataEdit; import kd.bos.form.field.BasedataEdit;
import kd.bos.form.field.events.BeforeF7SelectEvent; import kd.bos.form.field.events.BeforeF7SelectEvent;
import kd.bos.form.field.events.BeforeF7SelectListener; import kd.bos.form.field.events.BeforeF7SelectListener;
@ -33,6 +37,10 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
outProject.addBeforeF7SelectListener(this); outProject.addBeforeF7SelectListener(this);
BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目 BasedataEdit inProject = this.getControl("zcgj_inproject"); //调入项目
inProject.addBeforeF7SelectListener(this); inProject.addBeforeF7SelectListener(this);
BasedataEdit zcgj_department = this.getView().getControl("zcgj_department");//部门
zcgj_department.addBeforeF7SelectListener(this);
BasedataEdit zcgj_org = this.getView().getControl("zcgj_org");//所属组织
zcgj_org.addBeforeF7SelectListener(this);
} }
@Override @Override
@ -102,7 +110,7 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
} }
} }
} }
} else if (StringUtil.equals(key, "zcgj_department")){ } else if (StringUtil.equals(key, "zcgj_department")) {
//部门 //部门
DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门 DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
if (costDept != null) { if (costDept != null) {
@ -125,13 +133,12 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
beforeF7SelectEvent.setCancel(true); beforeF7SelectEvent.setCancel(true);
return; return;
} }
DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织 DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织
QFilter filter = new QFilter("org.id", "=", outOrgDy.get("id")); QFilter filter = new QFilter("org.id", "=", outOrgDy.get("id"));
DynamicObject[] equipmentInfos = BusinessDataServiceHelper.load("eceq_equipment_info", "id", new QFilter[]{filter});//设备台账F7 DynamicObject[] equipmentInfos = BusinessDataServiceHelper.load("eceq_equipment_info", "id", new QFilter[]{filter});//设备台账F7
List<Long> equipmentInfoIds = getIdsFromDynamicObjects(equipmentInfos); List<Long> equipmentInfoIds = getIdsFromDynamicObjects(equipmentInfos);
qFilters.add(new QFilter("id", QCP.in, equipmentInfoIds)); qFilters.add(new QFilter("id", QCP.in, equipmentInfoIds));
formShowParameter.getListFilterParameter().setQFilters(qFilters);
} else if (StringUtil.equals(propertyName, "zcgj_outproject")) { } else if (StringUtil.equals(propertyName, "zcgj_outproject")) {
// 调出项目 // 调出项目
Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织 Object outOrg = this.getModel().getValue("zcgj_outorg");//调出组织
@ -140,13 +147,18 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
beforeF7SelectEvent.setCancel(true); beforeF7SelectEvent.setCancel(true);
return; return;
} }
DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织 DynamicObject outOrgDy = (DynamicObject) outOrg;//调出组织
QFilter filter = new QFilter("fiaccountorg.id", "=", outOrgDy.get("id")); QFilter filter = new QFilter("fiaccountorg.id", "=", outOrgDy.get("id"));
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});//工程项目 DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});//工程项目
List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s); List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s);
qFilters.add(new QFilter("id", QCP.in, projectF7Ids)); qFilters.add(new QFilter("id", QCP.in, projectF7Ids));
beforeF7SelectEvent.setCancel(true);
ListShowParameter ec_ecbd_projectf7 = ShowFormHelper.createShowListForm("ec_ecbd_projectf7", true);
ec_ecbd_projectf7.setCloseCallBack(new CloseCallBack(this, "zcgj_outproject"));
ec_ecbd_projectf7.setMultiSelect(false);
ec_ecbd_projectf7.setIsolationOrg(true);
ec_ecbd_projectf7.getListFilterParameter().setQFilters(qFilters);
this.getView().showForm(ec_ecbd_projectf7);
} else if (StringUtil.equals(propertyName, "zcgj_inproject")) { } else if (StringUtil.equals(propertyName, "zcgj_inproject")) {
//调入项目 //调入项目
Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织 Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织
@ -160,12 +172,53 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter}); DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});
List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s); List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s);
qFilters.add(new QFilter("id", QCP.in, projectF7Ids)); qFilters.add(new QFilter("id", QCP.in, projectF7Ids));
beforeF7SelectEvent.setCancel(true);
ListShowParameter ec_ecbd_projectf7 = ShowFormHelper.createShowListForm("ec_ecbd_projectf7", true);
ec_ecbd_projectf7.setCloseCallBack(new CloseCallBack(this, "zcgj_inproject"));
ec_ecbd_projectf7.setMultiSelect(false);
ec_ecbd_projectf7.setIsolationOrg(true);
ec_ecbd_projectf7.getListFilterParameter().setQFilters(qFilters);
this.getView().showForm(ec_ecbd_projectf7);
} else if (propertyName.equals("zcgj_department")) {
// 部门
DynamicObject creator = this.getModel().getDataEntity().getDynamicObject("creator");//创建人
if (creator == null) {
return;
}
List<Long> id = UserServiceHelper.getOrgsUserJoin(creator.getLong("id"));
qFilters.add(new QFilter("id", QCP.in, id));
formShowParameter.setCustomParam("isIncludeAllSub", "true");
formShowParameter.getListFilterParameter().setQFilters(qFilters);
} else if (propertyName.equals("zcgj_org")) {
// 所属组织
DynamicObject costDept = (DynamicObject) this.getModel().getValue("zcgj_department");//部门
DynamicObject zcgj_org = (DynamicObject) this.getModel().getValue("zcgj_org");//所属组织
if (costDept != null && zcgj_org != null) {
DynamicObject orgPattern = costDept.getDynamicObject("orgpattern");
if (orgPattern == null) {
return;
}
String orgPatternNumber = orgPattern.getString("number");
if (orgPatternNumber.equals("Orgform06")) {
Long id = (Long) zcgj_org.get("id");
qFilters.add(new QFilter("id", QCP.in, id));
formShowParameter.setCustomParam("isIncludeAllSub", "true");
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}
}
} }
}
// formShowParameter.setHasRight(true); public void closedCallBack(ClosedCallBackEvent closedCallBackEvent) {
// formShowParameter.getCustomParams().put("isIgnoreLicense", true); super.closedCallBack(closedCallBackEvent);
// formShowParameter.setIsolationOrg(false); String actionId = closedCallBackEvent.getActionId();
formShowParameter.getListFilterParameter().setQFilters(qFilters); ListSelectedRowCollection returnData = (ListSelectedRowCollection) closedCallBackEvent.getReturnData();
if (returnData == null) {
return;
}
Object[] primaryKeyValues = returnData.getPrimaryKeyValues();
Long primaryKeyValue = (Long) primaryKeyValues[0];
this.getModel().setValue(actionId, primaryKeyValue);
} }
private List<Long> getIdsFromDynamicObjects(DynamicObject[] dynamicObjects) { private List<Long> getIdsFromDynamicObjects(DynamicObject[] dynamicObjects) {