This commit is contained in:
xuhaihui 2025-08-12 11:16:55 +08:00
parent 1b4014a8f5
commit f1b0676256
1 changed files with 40 additions and 38 deletions

View File

@ -105,41 +105,38 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
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")) {
//设备编码调出项目
List<QFilter> qFilters = new ArrayList<>();
if (StringUtil.equals(propertyName, "zcgj_realcard")) {
//设备编码
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 Filter = new QFilter("org.id", "=", outOrgDy.get("id"));
DynamicObject[] equipment_infos = BusinessDataServiceHelper.load("eceq_equipment_info", "id", new QFilter[]{Filter});//设备台账F7
List<Long> equipment_infoIds = new ArrayList<>();
if (equipment_infos != null && equipment_infos.length > 0) {
for (DynamicObject equipment_info : equipment_infos) {
Long equipment_infoId = (Long) equipment_info.get("id");
equipment_infoIds.add(equipment_infoId);
}
}
qFilter.add(new QFilter("id", QCP.in, equipment_infoIds));
} else {
//调出项目
QFilter Filter = new QFilter("fiaccountorg.id", "=", outOrgDy.get("id"));
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{Filter});//工程项目
List<Long> projectF7Ids = new ArrayList<>();
if (projectF7s != null && projectF7s.length > 0) {
for (DynamicObject projectF7 : projectF7s) {
Long projectF7Id = (Long) projectF7.get("id");
projectF7Ids.add(projectF7Id);
}
}
qFilter.add(new QFilter("id", QCP.in, projectF7Ids));
QFilter filter = new QFilter("org.id", "=", outOrgDy.get("id"));
DynamicObject[] equipmentInfos = BusinessDataServiceHelper.load("eceq_equipment_info", "id", new QFilter[]{filter});//设备台账F7
List<Long> equipmentInfoIds = getIdsFromDynamicObjects(equipmentInfos);
qFilters.add(new QFilter("id", QCP.in, equipmentInfoIds));
} else if (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;//调出组织
QFilter filter = new QFilter("fiaccountorg.id", "=", outOrgDy.get("id"));
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});//工程项目
List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s);
qFilters.add(new QFilter("id", QCP.in, projectF7Ids));
} else if (StringUtil.equals(propertyName, "zcgj_inproject")) {
//调入项目
Object inOrg = this.getModel().getValue("zcgj_inorg");//调入组织
@ -149,17 +146,22 @@ public class EquipmentCommandBillPlugin extends AbstractBillPlugIn implements Be
return;
}
DynamicObject inOrgDy = (DynamicObject) inOrg;
QFilter Filter = new QFilter("fiaccountorg.id", "=", inOrgDy.get("id"));
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{Filter});//工程项目
List<Long> projectF7Ids = new ArrayList<>();
if (projectF7s != null && projectF7s.length > 0) {
for (DynamicObject projectF7 : projectF7s) {
Long projectF7Id = (Long) projectF7.get("id");
projectF7Ids.add(projectF7Id);
}
}
qFilter.add(new QFilter("id", QCP.in, projectF7Ids));
QFilter filter = new QFilter("fiaccountorg.id", "=", inOrgDy.get("id"));
DynamicObject[] projectF7s = BusinessDataServiceHelper.load("ec_ecbd_projectf7", "id", new QFilter[]{filter});
List<Long> projectF7Ids = getIdsFromDynamicObjects(projectF7s);
qFilters.add(new QFilter("id", QCP.in, projectF7Ids));
}
formShowParameter.getListFilterParameter().setQFilters(qFilter);
formShowParameter.getListFilterParameter().setQFilters(qFilters);
}
private List<Long> getIdsFromDynamicObjects(DynamicObject[] dynamicObjects) {
List<Long> ids = new ArrayList<>();
if (dynamicObjects != null && dynamicObjects.length > 0) {
for (DynamicObject obj : dynamicObjects) {
ids.add((Long) obj.get("id"));
}
}
return ids;
}
}