Browse Source

查询区域-绑定计量设备接口开发

learshaw 6 months ago
parent
commit
9c102b3707

+ 103 - 0
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/MeterBoundaryController.java

@@ -0,0 +1,103 @@
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.domain.MeterBoundaryRel;
+import com.ruoyi.ems.model.BoundaryObj;
+import com.ruoyi.ems.service.IBoundaryObjService;
+import com.ruoyi.ems.service.IMeterBoundaryRelService;
+import io.swagger.annotations.Api;
+import org.apache.commons.collections4.CollectionUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * 计量设备绑定边界对象关系Controller
+ *
+ * @author ruoyi
+ * @date 2024-12-09
+ */
+@RestController
+@RequestMapping("/meterBoundary")
+@Api(value = "MeterBoundaryController", description = "计量设备绑定边界对象管理")
+public class MeterBoundaryController extends BaseController {
+    @Autowired
+    private IMeterBoundaryRelService relService;
+
+    @Autowired
+    private IBoundaryObjService boundaryObjService;
+
+    /**
+     * 查询计量设备绑定边界对象关系列表
+     */
+    @RequiresPermissions("ems:meterBoundary:list")
+    @GetMapping("/getBoundaryTreeByArea")
+    public AjaxResult getBoundaryTreeByArea(@RequestParam(value = "areaCode") String areaCode) {
+        BoundaryObj list = boundaryObjService.getBoundaryByArea(areaCode);
+        return success(list);
+    }
+
+    /**
+     * 查询计量设备绑定边界对象关系列表
+     */
+    @RequiresPermissions("ems:meterBoundary:list")
+    @GetMapping("/listByObj")
+    public AjaxResult list(@RequestParam(value = "objType") Integer objType,
+        @RequestParam(value = "boundaryObj") String boundaryObj, @RequestParam(value = "meterCls") Integer meterCls) {
+        List<MeterBoundaryRel> list = relService.selectRelByObj(objType, boundaryObj, meterCls);
+        return success(list);
+    }
+
+    /**
+     * 新增计量设备绑定边界对象关系
+     */
+    @RequiresPermissions("ems:meterBoundary:add")
+    @Log(title = "计量设备绑定边界对象关系", businessType = BusinessType.INSERT)
+    @PostMapping("/addBatch")
+    public AjaxResult addBatch(@RequestBody List<MeterBoundaryRel> list) {
+        return toAjax(relService.insertRelBatch(list));
+    }
+
+    /**
+     * 新增计量设备绑定边界对象关系
+     */
+    @RequiresPermissions("ems:meterBoundary:add")
+    @Log(title = "计量设备绑定边界对象关系", businessType = BusinessType.UPDATE)
+    @PutMapping("/merge")
+    public AjaxResult merge(@RequestParam(value = "objType") Integer objType,
+        @RequestParam(value = "boundaryObj") String boundaryObj, @RequestParam(value = "meterCls") Integer meterCls,
+        @RequestBody List<MeterBoundaryRel> list) {
+
+        relService.deleteRelByObj(objType, boundaryObj, meterCls);
+        int cnt = 0;
+
+        if (CollectionUtils.isNotEmpty(list)) {
+            cnt = relService.insertRelBatch(list);
+        }
+
+        return toAjax(cnt);
+    }
+
+    /**
+     * 删除计量设备绑定边界对象关系
+     */
+    @RequiresPermissions("ems:meterBoundary:remove")
+    @Log(title = "计量设备绑定边界对象关系", businessType = BusinessType.DELETE)
+    @DeleteMapping("/delByObj")
+    public AjaxResult delByObj(@RequestParam(value = "objType") Integer objType,
+        @RequestParam(value = "boundaryObj") String boundaryObj, @RequestParam(value = "meterCls") Integer meterCls) {
+        return toAjax(relService.deleteRelByObj(objType, boundaryObj, meterCls));
+    }
+}

+ 7 - 0
ems/ems-core/pom.xml

@@ -20,6 +20,7 @@
         <commons.io.version>2.13.0</commons.io.version>
         <apache.commons.version>3.12.0</apache.commons.version>
         <fastjson.version>2.0.43</fastjson.version>
+        <lombook.version>1.18.28</lombook.version>
     </properties>
 
     <dependencies>
@@ -45,6 +46,12 @@
         </dependency>
 
         <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <version>${lombook.version}</version>
+        </dependency>
+
+        <dependency>
             <groupId>com.huashe.cloud</groupId>
             <artifactId>ruoyi-common-core</artifactId>
             <version>${ruoyi.version}</version>

+ 3 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/enums/BusObjType.java

@@ -20,8 +20,11 @@ package com.ruoyi.ems.enums;
  * @since [产品/模块版本]
  */
 public enum BusObjType {
+    // 区域
     AREA(1),
+    // 设施
     FACS(2),
+    // 设备
     DEV(3);
 
     private int value;

+ 3 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/enums/DevObjType.java

@@ -20,8 +20,11 @@ package com.ruoyi.ems.enums;
  * @since [产品/模块版本]
  */
 public enum DevObjType {
+    // 设施
     FACS(1),
+    // 设备
     DEVC(2),
+    // 部件
     COMPONENT(3);
 
     DevObjType(int code) {

+ 6 - 1
ems/ems-core/src/main/java/com/ruoyi/ems/enums/MeterObjType.java

@@ -33,7 +33,12 @@ public enum MeterObjType {
     /**
      * 设备
      */
-    METER_DEVC(3);
+    METER_DEVC(3),
+
+    /**
+     * 组织
+     */
+    METER_ORG(4);
 
     private int type;
 

+ 3 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/MeterBoundaryRelMapper.java

@@ -12,6 +12,9 @@ import java.util.List;
  * @date 2024-12-09
  */
 public interface MeterBoundaryRelMapper {
+    List<MeterBoundaryRel> selectRel(@Param("areaCode") String areaCode, @Param("objType") Integer objType,
+        @Param("meterCls") Integer meterCls);
+
     /**
      * 查询计量设备绑定边界对象关系列表
      *

+ 110 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/model/BoundaryObj.java

@@ -0,0 +1,110 @@
+/*
+ * 文 件 名:  BoundaryObj
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/1/13
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.model;
+
+import com.ruoyi.common.core.web.domain.TreeEntity;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 计量边界对象
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/1/13]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class BoundaryObj {
+    /**
+     * 对象类型
+     */
+    private int objType;
+
+    /**
+     * 对象编码
+     */
+    private String objCode;
+
+    /**
+     * 对象名称
+     */
+    private String objName;
+
+    /**
+     * 直接绑定的电表
+     */
+    private Set<String> bindElecMeterDevs;
+
+    /**
+     * 分项关联计量电表
+     */
+    private Set<String> subElecMeterDevs;
+
+    private List<?> children = new ArrayList();
+
+    public int getObjType() {
+        return objType;
+    }
+
+    public void setObjType(int objType) {
+        this.objType = objType;
+    }
+
+    public String getObjCode() {
+        return objCode;
+    }
+
+    public void setObjCode(String objCode) {
+        this.objCode = objCode;
+    }
+
+    public String getObjName() {
+        return objName;
+    }
+
+    public void setObjName(String objName) {
+        this.objName = objName;
+    }
+
+    public Set<String> getBindElecMeterDevs() {
+        return bindElecMeterDevs;
+    }
+
+    public void setBindElecMeterDevs(Set<String> bindElecMeterDevs) {
+        this.bindElecMeterDevs = bindElecMeterDevs;
+    }
+
+    public Set<String> getSubElecMeterDevs() {
+        return subElecMeterDevs;
+    }
+
+    public void setSubElecMeterDevs(Set<String> subElecMeterDevs) {
+        this.subElecMeterDevs = subElecMeterDevs;
+    }
+
+    public List<?> getChildren() {
+        return children;
+    }
+
+    public void setChildren(List<?> children) {
+        this.children = children;
+    }
+
+    @Override
+    public String toString() {
+        return "BoundaryObj{" + "objType=" + objType + ", objCode='" + objCode + '\'' + ", objName='" + objName + '\''
+            + ", bindElecMeterDevs=" + bindElecMeterDevs + ", subElecMeterDevs=" + subElecMeterDevs + ", children="
+            + children + '}';
+    }
+}

+ 33 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IBoundaryObjService.java

@@ -0,0 +1,33 @@
+/*
+ * 文 件 名:  BoundaryObjService
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/1/10
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.service;
+
+import com.ruoyi.ems.model.BoundaryObj;
+
+import java.util.List;
+
+/**
+ * 边界对象服务接口
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/1/10]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public interface IBoundaryObjService {
+    /**
+     * 根据区域编码、对象类型和对象代码获取边界对象
+     * @param areaCode 区域编码
+     * @return 边界对象
+     */
+    BoundaryObj getBoundaryByArea(String areaCode);
+}

+ 16 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IElecMeterHService.java

@@ -21,6 +21,22 @@ public interface IElecMeterHService {
     List<ElecMeterH> selectElecMeterHList(QueryMeter queryMeter);
 
     /**
+     * 查询用电计量-根据边界对象
+     *
+     * @param queryMeter
+     * @return
+     */
+    List<ElecMeterH> listByBoundaryObj(QueryMeter queryMeter);
+
+    /**
+     * 统计用电计量-根据边界对象
+     *
+     * @param queryMeter
+     * @return
+     */
+    ElecMeterH staByBoundaryObj(QueryMeter queryMeter);
+
+    /**
      * 新增用电计量-小时
      *
      * @param elecMeterH 用电计量-小时

+ 11 - 1
ems/ems-core/src/main/java/com/ruoyi/ems/service/IMeterBoundaryRelService.java

@@ -14,10 +14,20 @@ public interface IMeterBoundaryRelService {
     /**
      * 查询计量设备绑定边界对象关系列表
      *
-     * @param boundaryObj 计量对象编号
+     * @param areaCode 计量对象编号
      * @param objType     计量对象类型
      * @return 计量设备绑定边界对象关系集合
      */
+    List<MeterBoundaryRel> selectRel(String areaCode, Integer objType, Integer meterCls);
+
+    /**
+     * 查询计量设备绑定边界对象关系列表
+     *
+     * @param objType     计量对象类型
+     * @param boundaryObj 计量对象编号
+     * @param meterCls    计量介质
+     * @return 计量设备绑定边界对象关系集合
+     */
     List<MeterBoundaryRel> selectRelByObj(Integer objType, String boundaryObj, Integer meterCls);
 
     /**

+ 163 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/BoundaryObjServiceImpl.java

@@ -0,0 +1,163 @@
+/*
+ * 文 件 名:  BoundaryObjServiceImpl
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/1/13
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.service.impl;
+
+import com.ruoyi.common.core.exception.Assert;
+import com.ruoyi.common.core.exception.BusinessException;
+import com.ruoyi.ems.domain.Area;
+import com.ruoyi.ems.domain.MeterBoundaryRel;
+import com.ruoyi.ems.enums.MeterObjType;
+import com.ruoyi.ems.model.BoundaryObj;
+import com.ruoyi.ems.service.IAreaService;
+import com.ruoyi.ems.service.IBoundaryObjService;
+import com.ruoyi.ems.service.IMeterBoundaryRelService;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+/**
+ * <一句话功能简述>
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/1/13]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@Service
+public class BoundaryObjServiceImpl implements IBoundaryObjService {
+    private static final Logger log = LoggerFactory.getLogger(BoundaryObjServiceImpl.class);
+
+    // 注入区域服务
+    @Autowired
+    private IAreaService areaService;
+
+    // 注入边界对象关系服务
+    @Autowired
+    private IMeterBoundaryRelService boundaryRelService;
+
+    /**
+     * 根据区域编码、对象类型和对象代码获取边界对象
+     *
+     * @param areaCode 区域编码
+     * @return 边界对象
+     */
+    @Override
+    public BoundaryObj getBoundaryByArea(String areaCode) {
+        BoundaryObj boundaryObj = null;
+
+        try {
+            // 查询电表绑定关系
+            List<MeterBoundaryRel> relList = boundaryRelService.selectRel(areaCode, MeterObjType.METER_AREA.getType(),
+                45);
+            Map<String, Set<MeterBoundaryRel>> relMap = relList.stream()
+                .collect(Collectors.groupingBy(MeterBoundaryRel::getBoundaryObj, Collectors.toSet()));
+
+            // 根据区域编码获取根节点
+            Area rootArea = areaService.selectAreaByCode(areaCode);
+            Assert.notNull(rootArea, -1, "区域不存在");
+            // 下级区域递归
+            List<Area> subList = areaService.selectAreaTree(areaCode, true);
+
+            // 递归转换
+            boundaryObj = recursionConvert(rootArea, subList, relMap);
+        }
+        catch (BusinessException e) {
+            log.debug(e.getMessage());
+        }
+
+        return boundaryObj;
+    }
+
+    /**
+     * 递归构造边界-绑定电表 的树结构
+     *
+     * @param parentArea 根区域
+     * @param subList    子区列表
+     * @param relMap     关联电表集合
+     * @return 边界树结构对象
+     */
+    private BoundaryObj recursionConvert(Area parentArea, List<?> subList, Map<String, Set<MeterBoundaryRel>> relMap) {
+        BoundaryObj boundaryObj = new BoundaryObj();
+        boundaryObj.setObjType(MeterObjType.METER_AREA.getType());
+        boundaryObj.setObjCode(parentArea.getAreaCode());
+        boundaryObj.setObjName(parentArea.getAreaName());
+
+        // 设置直接绑定的电表
+        Set<MeterBoundaryRel> relSet = relMap.get(parentArea.getAreaCode());
+
+        if (CollectionUtils.isNotEmpty(relSet)) {
+            Set<String> bindDevs = relSet.stream().map(MeterBoundaryRel::getMeterDevice).collect(Collectors.toSet());
+            boundaryObj.setBindElecMeterDevs(bindDevs);
+        }
+
+        List<BoundaryObj> subObjs = new ArrayList<>();
+        boundaryObj.setChildren(subObjs);
+
+        if (CollectionUtils.isNotEmpty(subList)) {
+            // 递归封装子区边界对象
+            for (Object obj : subList) {
+                Area area = (Area) obj;
+                BoundaryObj sonObj = recursionConvert(area, area.getChildren(), relMap);
+                subObjs.add(sonObj);
+            }
+
+            // 设置子区绑定电表
+            boundaryObj.setSubElecMeterDevs(getSubElecMeterDev(subList, relMap));
+        }
+
+        return boundaryObj;
+    }
+
+    /**
+     * 获取子区绑定的电表
+     *
+     * @param subList 子区对象
+     * @param relMap  关联电表集合
+     * @return 子区绑定电表集合
+     */
+    private Set<String> getSubElecMeterDev(List<?> subList, Map<String, Set<MeterBoundaryRel>> relMap) {
+        Set<String> subRelSet = new HashSet<>();
+
+        for (Object obj : subList) {
+            Area area = (Area) obj;
+
+            Set<MeterBoundaryRel> tempSubrelSet = relMap.get(area.getAreaCode());
+
+            // 场景1:直接绑定在子区对象的电表
+            if (CollectionUtils.isNotEmpty(tempSubrelSet)) {
+                Set<String> bindDevs = tempSubrelSet.stream().map(MeterBoundaryRel::getMeterDevice)
+                    .collect(Collectors.toSet());
+                subRelSet.addAll(bindDevs);
+            }
+            // 场景2:绑定在子区下属区域的电表
+            else {
+                List<?> subSubList = area.getChildren();
+
+                if (CollectionUtils.isNotEmpty(subSubList)) {
+                    subRelSet.addAll(getSubElecMeterDev(subSubList, relMap));
+                }
+            }
+        }
+
+        return subRelSet;
+    }
+}

+ 23 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/ElecMeterHServiceImpl.java

@@ -7,6 +7,7 @@ import com.ruoyi.ems.service.IElecMeterHService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -32,6 +33,28 @@ public class ElecMeterHServiceImpl implements IElecMeterHService {
     }
 
     /**
+     * 根据边界对象查询电表信息列表
+     *
+     * @param queryMeter 查询条件对象,用于指定查询条件
+     * @return 返回电表信息列表,如果未找到符合条件的数据,则返回空列表
+     */
+    @Override
+    public List<ElecMeterH> listByBoundaryObj(QueryMeter queryMeter) {
+        return Collections.emptyList();
+    }
+
+    /**
+     * 统计用电计量-根据边界对象
+     *
+     * @param queryMeter 查询条件
+     * @return 统计电量信息
+     */
+    @Override
+    public ElecMeterH staByBoundaryObj(QueryMeter queryMeter) {
+        return null;
+    }
+
+    /**
      * 新增用电计量-小时
      *
      * @param elecMeterH 用电计量-小时

+ 5 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/MeterBoundaryRelServiceImpl.java

@@ -20,6 +20,11 @@ public class MeterBoundaryRelServiceImpl implements IMeterBoundaryRelService {
     private MeterBoundaryRelMapper relMapper;
 
     @Override
+    public List<MeterBoundaryRel> selectRel(String areaCode, Integer objType, Integer meterCls) {
+        return relMapper.selectRel(areaCode, objType, meterCls);
+    }
+
+    @Override
     public List<MeterBoundaryRel> selectRelByObj(Integer objType, String boundaryObj, Integer meterCls) {
         return relMapper.selectByObj(objType, boundaryObj, meterCls);
     }

+ 0 - 49
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/MeterDeviceServiceImpl.java

@@ -1,12 +1,8 @@
 package com.ruoyi.ems.service.impl;
 
-
 import com.ruoyi.ems.domain.MeterDevice;
 import com.ruoyi.ems.enums.MeterObjType;
 import com.ruoyi.ems.mapper.MeterDeviceMapper;
-import com.ruoyi.ems.service.IAreaService;
-import com.ruoyi.ems.service.IEmsDeviceService;
-import com.ruoyi.ems.service.IEmsFacsService;
 import com.ruoyi.ems.service.IMeterDeviceService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -24,15 +20,6 @@ public class MeterDeviceServiceImpl implements IMeterDeviceService {
     @Autowired
     private MeterDeviceMapper meterDeviceMapper;
 
-    @Autowired
-    private IAreaService areaService;
-
-    @Autowired
-    private IEmsDeviceService deviceService;
-
-    @Autowired
-    private IEmsFacsService facsService;
-
     /**
      * 查询计量设备
      *
@@ -109,40 +96,4 @@ public class MeterDeviceServiceImpl implements IMeterDeviceService {
     public int deleteMeterDeviceById(Long id) {
         return meterDeviceMapper.deleteMeterDeviceById(id);
     }
-
-    //    private void fillObjName(MeterDevice meterDevice) {
-    //        // 计量区块
-    //        if (MeterObjType.METER_AREA.getType() == meterDevice.getObjType()) {
-    //            List<Area> areas = areaService.selectArea(new Area());
-    //            Map<String, Area> areaMap = areas.stream()
-    //                .collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
-    //            String areaPath = AreaUtils.getAreaNamePath(meterDevice.getObjCode(), areaMap);
-    //            meterDevice.setObjName(areaPath);
-    //        }
-    //        // 计量设备设施
-    //        else if (MeterObjType.METER_FACS.getType() == meterDevice.getObjType()) {
-    //            EmsFacs facs = facsService.selectEmsFacsByCode(meterDevice.getObjCode());
-    //
-    //            if (facs != null) {
-    //                List<Area> areas = areaService.selectArea(new Area());
-    //                Map<String, Area> areaMap = areas.stream()
-    //                    .collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
-    //                String areaPath = AreaUtils.getAreaNamePath(facs.getRefArea(), areaMap);
-    //
-    //                meterDevice.setObjName(areaPath != null ? areaPath + "/" + facs.getFacsName() : facs.getFacsName());
-    //            }
-    //            else {
-    //                meterDevice.setObjName("未知");
-    //            }
-    //        }
-    //        else if (MeterObjType.METER_DEVC.getType() == meterDevice.getObjType()) {
-    //            EmsDevice device = deviceService.selectDetailByCode(meterDevice.getObjCode());
-    //            if (device != null) {
-    //                meterDevice.setObjName(device.getAreaPath() + "/" + device.getDeviceName());
-    //            }
-    //            else {
-    //                meterDevice.setObjName("未知");
-    //            }
-    //        }
-    //    }
 }

+ 1 - 1
ems/ems-core/src/main/resources/mapper/ems/ElecMeterHMapper.xml

@@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="meterType != null">meter_type,</if>
             <if test="meterUnitPrice != null">meter_unit_price,</if>
             <if test="useElecCost != null">use_elec_cost,</if>
-         </trim>
+        </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="areaCode != null and areaCode != ''">#{areaCode},</if>
             <if test="deviceCode != null and deviceCode != ''">#{deviceCode},</if>

+ 11 - 1
ems/ems-core/src/main/resources/mapper/ems/MeterBoundaryRelMapper.xml

@@ -17,11 +17,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select
             r.id, r.obj_type, r.boundary_obj, r.meter_cls, r.meter_device, m.device_name as meter_device_name
         from adm_meter_boundary_rel r
-          left join adm_meter_device m on r.meter_device = m.device_code
     </sql>
 
+    <select id="selectRel"  resultMap="relResult">
+        <include refid="selectMeterBoundaryRelVo"/>
+        left join adm_meter_device m on r.meter_device = m.device_code
+        <where>
+            <if test="areaCode != null  and areaCode != ''"> and m.area_code = #{areaCode}</if>
+            <if test="objType != null "> and r.obj_type = #{objType}</if>
+            <if test="meterCls != null "> and r.meter_cls = #{meterCls}</if>
+        </where>
+    </select>
+
     <select id="selectByObj"  resultMap="relResult">
         <include refid="selectMeterBoundaryRelVo"/>
+        left join adm_meter_device m on r.meter_device = m.device_code
         <where>
             <if test="objType != null "> and r.obj_type = #{objType}</if>
             <if test="boundaryObj != null  and boundaryObj != ''"> and r.boundary_obj = #{boundaryObj}</if>

+ 1 - 1
ems/sql/ems_sys_data.sql

@@ -129,7 +129,7 @@ insert into sys_menu values ('1622',  '能流关系',   '162', '3',  'basecfg-fl
 insert into sys_menu values ('1623',  '能源设施',   '162', '4',  'basecfg-facscfg',        'basecfg/emsfacs/index',      '', 1, 0, 'C', '0', '0',   'basecfg:emsfacs:list',          'cfgwrite',   'admin', sysdate(), '', null, '设施配置');
 insert into sys_menu values ('1624',  '能源设备',   '162', '5',  'basecfg-devccfg',        'basecfg/device/index',       '', 1, 0, 'C', '0', '0',   'basecfg:device:list',           'cfgwrite',   'admin', sysdate(), '', null, '设备配置');
 insert into sys_menu values ('1630',  '计量设备',   '163', '1',  'basecfg-meterdevc',      'basecfg/meterdevc/index',    '', 1, 0, 'C', '0', '0',   'ems:meterdevc:list',            'cfgwrite',   'admin', sysdate(), '', null, '计量设备');
-insert into sys_menu values ('1631',  '边界划分',   '163', '2',  'basecfg-boundaryRel',    'basecfg/boundaryRel/index',  '', 1, 0, 'C', '0', '0',   'ems:meterBoundaryRel:list',     'cfgwrite',   'admin', sysdate(), '', null, '边界划分');
+insert into sys_menu values ('1631',  '边界划分',   '163', '2',  'basecfg-boundaryRel',    'basecfg/boundaryRel/index',  '', 1, 0, 'C', '0', '0',   'ems:meterBoundary:list',     'cfgwrite',   'admin', sysdate(), '', null, '边界划分');
 insert into sys_menu values ('1632',  '价格策略',   '163', '3',  'basecfg-electricity',    'basecfg/price/index',        '', 1, 0, 'C', '0', '0',   'basecfg:price:list',            'cfgwrite',   'admin', sysdate(), '', null, '价格策略');
 insert into sys_menu values ('1633',  '碳排因子',   '163', '4',  'basecfg-cacfg',          'basecfg/cacfg/index',        '', 1, 0, 'C', '0', '0',   'basecfg:cacfg:list',            'cfgwrite',   'admin', sysdate(), '', null, '碳排因子');
 insert into sys_menu values ('1634',  '折煤系数',   '163', '5',  'basecfg-dsccfg',         'basecfg/dsccfg/index',       '', 1, 0, 'C', '0', '0',   'basecfg:dsccfg:list',           'cfgwrite',   'admin', sysdate(), '', null, '折煤系数');