Browse Source

接口优化

lv.wenbin 10 months ago
parent
commit
bc0f9c693a

+ 5 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/DeviceController.java

@@ -5,6 +5,7 @@ import java.util.stream.Collectors;
 
 import javax.servlet.http.HttpServletResponse;
 
+import com.ruoyi.ems.service.IEmsFacsService;
 import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +51,9 @@ public class DeviceController extends BaseController {
     private IEmsDeviceService deviceService;
 
     @Autowired
+    private IEmsFacsService facsService;
+
+    @Autowired
     private IAreaBuildingService buildingService;
 
     @Autowired
@@ -144,7 +148,7 @@ public class DeviceController extends BaseController {
         QueryDevice queryDevice = new QueryDevice();
         queryDevice.setRefArea(areaCode);
         queryDevice.setDeviceCategory(deviceCategory);
-        return success(deviceService.getTreeByFacs(queryDevice));
+        return success(facsService.getFacsDevTree(queryDevice));
     }
 
     /**

+ 0 - 7
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IEmsDeviceService.java

@@ -69,13 +69,6 @@ public interface IEmsDeviceService {
     List<EmsDevice> selectByFlowRel(QueryDevice emsDevice);
 
     /**
-     * 根据设施获取设备树结构
-     * @param queryDevice 查询参数
-     * @return 设备树结构
-     */
-    List<TreeEntity> getTreeByFacs(QueryDevice queryDevice);
-
-    /**
      * 新增能源设备
      *
      * @param emsDevice 能源设备

+ 9 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IEmsFacsService.java

@@ -4,6 +4,8 @@ import java.util.List;
 import java.util.Map;
 
 import com.ruoyi.ems.domain.EmsFacs;
+import com.ruoyi.ems.domain.vo.QueryDevice;
+import com.ruoyi.ems.domain.vo.TreeEntity;
 
 /**
  * 能源设施/系统Service接口
@@ -44,6 +46,13 @@ public interface IEmsFacsService {
     List<EmsFacs> selectEmsFacsList(EmsFacs emsFacs);
 
     /**
+     * 根据设施获取设备树结构
+     * @param queryDevice 查询参数
+     * @return 设备树结构
+     */
+    List<TreeEntity> getFacsDevTree(QueryDevice queryDevice);
+
+    /**
      * 新增能源设施/系统
      *
      * @param emsFacs 能源设施/系统

+ 0 - 112
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/EmsDeviceServiceImpl.java

@@ -47,9 +47,6 @@ public class EmsDeviceServiceImpl implements IEmsDeviceService {
     @Autowired
     private IAreaBuildingZoningService zoningService;
 
-    @Autowired
-    private IEmsFacsService facsService;
-
     /**
      * 查询能源设备
      *
@@ -78,7 +75,6 @@ public class EmsDeviceServiceImpl implements IEmsDeviceService {
 
         if (null != device) {
             fillAreaName(device);
-            fillAttribute(device);
         }
 
         return device;
@@ -115,110 +111,6 @@ public class EmsDeviceServiceImpl implements IEmsDeviceService {
     }
 
     /**
-     * 根据设施获取设备树结构
-     *
-     * @param queryDevice 查询条件
-     * @return 设备树结构
-     */
-    @Override
-    public List<TreeEntity> getTreeByFacs(QueryDevice queryDevice) {
-        List<TreeEntity> retList = new ArrayList<>();
-
-        List<Area> areas = areaService.selectAreaList(new Area());
-        List<AreaBuilding> buildings = buildingService.selectAreaBuildingList(new AreaBuilding());
-        List<AreaBuildingZoning> zonings = zoningService.selectAreaBuildingZoningList(new AreaBuildingZoning());
-
-        if (StringUtils.isEmpty(queryDevice.getRefArea())) {
-            if (CollectionUtils.isNotEmpty(areas)) {
-                for (Area area : areas) {
-                    List<EmsFacs> facsList = facsService.selectFacsByArea(area.getAreaCode());
-
-                    TreeEntity entity = new TreeEntity();
-                    entity.setId(area.getAreaCode());
-                    entity.setLabel(area.getAreaName());
-                    entity.setChildren(buildFacsDevSub(queryDevice, facsList, areas, buildings, zonings));
-                    entity.setTier("Area");
-                    retList.add(entity);
-                }
-            }
-        }
-        else {
-            Area area = areaService.selectAreaByCode(queryDevice.getRefArea());
-
-            if (null != area) {
-                List<EmsFacs> facsList = facsService.selectFacsByArea(area.getAreaCode());
-
-                TreeEntity entity = new TreeEntity();
-                entity.setId(area.getAreaCode());
-                entity.setLabel(area.getAreaName());
-                entity.setChildren(buildFacsDevSub(queryDevice, facsList, areas, buildings, zonings));
-                entity.setTier("Area");
-                retList.add(entity);
-            }
-        }
-
-        return retList;
-    }
-
-    private List<TreeEntity> buildFacsDevSub(QueryDevice queryParam, List<EmsFacs> facsList, List<Area> areas,
-        List<AreaBuilding> buildings, List<AreaBuildingZoning> zonings) {
-        List<TreeEntity> retList = new ArrayList<>();
-        Map<String, Area> areaMap = areas.stream().collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
-        Map<String, AreaBuilding> buildingMap = buildings.stream()
-            .collect(Collectors.toMap(AreaBuilding::getBldgCode, Function.identity()));
-        Map<String, AreaBuildingZoning> zoningMap = zonings.stream()
-            .collect(Collectors.toMap(AreaBuildingZoning::getZoningCode, Function.identity()));
-
-        for (EmsFacs facs : facsList) {
-            boolean hasSub = false;
-            List<TreeEntity> subList = new ArrayList<>();
-
-            queryParam.setRefFacs(facs.getFacsCode());
-            List<EmsDevice> devices = emsDeviceMapper.selectDeviceList(queryParam);
-
-            for (EmsDevice device : devices) {
-                hasSub = true;
-                String namePrefix = "";
-                if (StringUtils.equals(AreaTier.Area.name(), device.getAreaType())) {
-                    namePrefix = areaMap.get(device.getRefArea()).getShortName();
-                }
-                else if (StringUtils.equals(AreaTier.Building.name(), device.getAreaType())) {
-                    namePrefix = buildingMap.get(device.getRefArea()).getBldgName();
-                }
-                else if (StringUtils.equals(AreaTier.Zoning.name(), device.getAreaType())) {
-                    AreaBuildingZoning zoning = zoningMap.get(device.getRefArea());
-                    AreaBuilding building = zoning != null ? buildingMap.get(zoning.getBldgCode()) : null;
-                    namePrefix = (building != null ? building.getBldgName() : "") + "/" + (zoning != null ?
-                        zoning.getZoningName() :
-                        "");
-                }
-
-                String label = StringUtils.isNotBlank(namePrefix) ?
-                    namePrefix + " - " + device.getDeviceName() :
-                    device.getDeviceName();
-
-                TreeEntity entity = new TreeEntity();
-                entity.setId(device.getDeviceCode());
-                entity.setLabel(label);
-                entity.setTier("Device");
-                subList.add(entity);
-            }
-
-            TreeEntity entity = new TreeEntity();
-            entity.setId(facs.getFacsCode());
-            entity.setLabel(facs.getFacsName());
-            entity.setTier("Facs");
-            entity.setChildren(subList);
-
-            if (hasSub) {
-                retList.add(entity);
-            }
-        }
-
-        return retList;
-    }
-
-    /**
      * 新增能源设备
      *
      * @param emsDevice 能源设备
@@ -395,8 +287,4 @@ public class EmsDeviceServiceImpl implements IEmsDeviceService {
             }
         }
     }
-
-    private void fillAttribute(EmsDevice device) {
-
-    }
 }

+ 127 - 5
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/EmsFacsServiceImpl.java

@@ -8,15 +8,27 @@ import com.ruoyi.common.core.utils.DateTimeUtil;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.ExpressUtil;
 import com.ruoyi.common.core.utils.StreamUtils;
+import com.ruoyi.ems.domain.Area;
+import com.ruoyi.ems.domain.AreaBuilding;
+import com.ruoyi.ems.domain.AreaBuildingZoning;
+import com.ruoyi.ems.domain.EmsDevice;
 import com.ruoyi.ems.domain.EmsFacs;
+import com.ruoyi.ems.domain.common.AreaTier;
+import com.ruoyi.ems.domain.vo.QueryDevice;
+import com.ruoyi.ems.domain.vo.TreeEntity;
 import com.ruoyi.ems.mapper.AdmEmsElecPgIndexMapper;
 import com.ruoyi.ems.mapper.AdmEmsIndexRangeMapper;
 import com.ruoyi.ems.mapper.EmsFacsMapper;
+import com.ruoyi.ems.service.IAreaBuildingService;
+import com.ruoyi.ems.service.IAreaBuildingZoningService;
+import com.ruoyi.ems.service.IAreaService;
+import com.ruoyi.ems.service.IEmsDeviceService;
 import com.ruoyi.ems.service.IEmsFacsService;
 import com.ruoyi.ems.service.IEmsObjAbilityService;
 import com.ruoyi.ems.service.IEmsObjAttrService;
 import com.ruoyi.ems.service.IEmsObjEventService;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -28,6 +40,8 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.function.BiFunction;
+import java.util.function.Function;
+import java.util.stream.Collectors;
 
 /**
  * 能源设施/系统Service业务层处理
@@ -41,19 +55,22 @@ public class EmsFacsServiceImpl implements IEmsFacsService {
     private EmsFacsMapper emsFacsMapper;
 
     @Autowired
-    private AdmEmsIndexRangeMapper admEmsIndexRangeMapper;
+    private IEmsDeviceService deviceService;
 
     @Autowired
-    private AdmEmsElecPgIndexMapper admEmsElecPgIndexMapper;
+    private IAreaService areaService;
 
     @Autowired
-    private IEmsObjAttrService objAttrService;
+    private IAreaBuildingService buildingService;
 
     @Autowired
-    private IEmsObjAbilityService objAbilityService;
+    private IAreaBuildingZoningService zoningService;
+
+    @Autowired
+    private AdmEmsIndexRangeMapper admEmsIndexRangeMapper;
 
     @Autowired
-    private IEmsObjEventService objEventService;
+    private AdmEmsElecPgIndexMapper admEmsElecPgIndexMapper;
 
     /**
      * 查询能源设施
@@ -91,6 +108,111 @@ public class EmsFacsServiceImpl implements IEmsFacsService {
     }
 
     /**
+     * 根据设施获取设备树结构
+     *
+     * @param queryDevice 查询条件
+     * @return 设备树结构
+     */
+    @Override
+    public List<TreeEntity> getFacsDevTree(QueryDevice queryDevice) {
+        List<TreeEntity> retList = new ArrayList<>();
+
+        List<Area> areas = areaService.selectAreaList(new Area());
+        List<AreaBuilding> buildings = buildingService.selectAreaBuildingList(new AreaBuilding());
+        List<AreaBuildingZoning> zonings = zoningService.selectAreaBuildingZoningList(new AreaBuildingZoning());
+
+        if (StringUtils.isEmpty(queryDevice.getRefArea())) {
+            if (CollectionUtils.isNotEmpty(areas)) {
+                for (Area area : areas) {
+                    List<EmsFacs> facsList = selectFacsByArea(area.getAreaCode());
+
+                    TreeEntity entity = new TreeEntity();
+                    entity.setId(area.getAreaCode());
+                    entity.setLabel(area.getAreaName());
+                    entity.setChildren(buildFacsDevSub(queryDevice, facsList, areas, buildings, zonings));
+                    entity.setTier("Area");
+                    retList.add(entity);
+                }
+            }
+        }
+        else {
+            Area area = areaService.selectAreaByCode(queryDevice.getRefArea());
+
+            if (null != area) {
+                List<EmsFacs> facsList = selectFacsByArea(area.getAreaCode());
+
+                TreeEntity entity = new TreeEntity();
+                entity.setId(area.getAreaCode());
+                entity.setLabel(area.getAreaName());
+                entity.setChildren(buildFacsDevSub(queryDevice, facsList, areas, buildings, zonings));
+                entity.setTier("Area");
+                retList.add(entity);
+            }
+        }
+
+        return retList;
+    }
+
+
+    private List<TreeEntity> buildFacsDevSub(QueryDevice queryParam, List<EmsFacs> facsList, List<Area> areas,
+        List<AreaBuilding> buildings, List<AreaBuildingZoning> zonings) {
+        List<TreeEntity> retList = new ArrayList<>();
+        Map<String, Area> areaMap = areas.stream().collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
+        Map<String, AreaBuilding> buildingMap = buildings.stream()
+            .collect(Collectors.toMap(AreaBuilding::getBldgCode, Function.identity()));
+        Map<String, AreaBuildingZoning> zoningMap = zonings.stream()
+            .collect(Collectors.toMap(AreaBuildingZoning::getZoningCode, Function.identity()));
+
+        for (EmsFacs facs : facsList) {
+            boolean hasSub = false;
+            List<TreeEntity> subList = new ArrayList<>();
+
+            queryParam.setRefFacs(facs.getFacsCode());
+            List<EmsDevice> devices = deviceService.selectList(queryParam);
+
+            for (EmsDevice device : devices) {
+                hasSub = true;
+                String namePrefix = "";
+                if (StringUtils.equals(AreaTier.Area.name(), device.getAreaType())) {
+                    namePrefix = areaMap.get(device.getRefArea()).getShortName();
+                }
+                else if (StringUtils.equals(AreaTier.Building.name(), device.getAreaType())) {
+                    namePrefix = buildingMap.get(device.getRefArea()).getBldgName();
+                }
+                else if (StringUtils.equals(AreaTier.Zoning.name(), device.getAreaType())) {
+                    AreaBuildingZoning zoning = zoningMap.get(device.getRefArea());
+                    AreaBuilding building = zoning != null ? buildingMap.get(zoning.getBldgCode()) : null;
+                    namePrefix = (building != null ? building.getBldgName() : "") + "/" + (zoning != null ?
+                        zoning.getZoningName() :
+                        "");
+                }
+
+                String label = StringUtils.isNotBlank(namePrefix) ?
+                    namePrefix + " - " + device.getDeviceName() :
+                    device.getDeviceName();
+
+                TreeEntity entity = new TreeEntity();
+                entity.setId(device.getDeviceCode());
+                entity.setLabel(label);
+                entity.setTier("Device");
+                subList.add(entity);
+            }
+
+            TreeEntity entity = new TreeEntity();
+            entity.setId(facs.getFacsCode());
+            entity.setLabel(facs.getFacsName());
+            entity.setTier("Facs");
+            entity.setChildren(subList);
+
+            if (hasSub) {
+                retList.add(entity);
+            }
+        }
+
+        return retList;
+    }
+
+    /**
      * 新增能源设施/系统
      *
      * @param emsFacs 能源设施/系统

+ 1 - 1
ems-cloud/sql/ems_init_data.sql

@@ -123,6 +123,7 @@ INSERT INTO `adm_ems_facs` (`facs_code`, `facs_name`, `facs_category`, `facs_sub
 -- 对象模型表
 INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`) VALUES ('M_Z010', '照明设备模型', 2);
 
+
 -- 对象属性DEMO数据
 INSERT INTO `adm_ems_obj_attr` (`model_code`, `attr_type`, `attr_key`, `attr_name`, `attr_unit`) VALUES ('M_Z010', 0, 'power',   '功率', 'kW-h');
 
@@ -142,7 +143,6 @@ INSERT INTO `adm_ems_obj_attr_value` (`obj_code`, `obj_type`, `attr_key`, `attr_
 
 -- 对象能力DEMO数据
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `ability_param`)VALUES ('M_W2_QR', '漏电保护器模型', 2);
-INSERT INTO `adm_ems_obj_model` (`model_code`, `model_name`, `obj_type`) VALUES ('M_W2_QF', '断路器模型', 2);
 INSERT INTO `adm_ems_obj_ability` (`model_code`, `ability_key`, `ability_name`, `ability_desc`, `ability_param`) VALUES ('M_W2', 'checkLine', '线路检测', '执行xx方法进行测试', '{\"enable\":\"1\"}');