diff --git a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java index 3004774..6ceaaef 100644 --- a/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java +++ b/code/zcdev/zcgj-zcdev-zcdev-pr/src/main/java/zcgj/zcdev/zcdev/pr/plugin/form/EquipmentCommandBillPlugin.java @@ -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 = new ArrayList<>(); - if (StringUtil.equals(propertyName, "zcgj_realcard") || StringUtil.equals(propertyName, "zcgj_outproject")) { - //设备编码、调出项目 + List 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 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 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 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 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 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 projectF7Ids = getIdsFromDynamicObjects(projectF7s); + qFilters.add(new QFilter("id", QCP.in, projectF7Ids)); } - formShowParameter.getListFilterParameter().setQFilters(qFilter); + + formShowParameter.getListFilterParameter().setQFilters(qFilters); + } + + private List getIdsFromDynamicObjects(DynamicObject[] dynamicObjects) { + List ids = new ArrayList<>(); + if (dynamicObjects != null && dynamicObjects.length > 0) { + for (DynamicObject obj : dynamicObjects) { + ids.add((Long) obj.get("id")); + } + } + return ids; } }