From 06d3d15a5a08637041cc601101c063b11b07a346 Mon Sep 17 00:00:00 2001
From: net <net@netdeMBP.lan>
Date: 星期五, 14 二月 2025 17:25:21 +0800
Subject: [PATCH]  合并理去杀杀人

---
 zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java |  564 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 305 insertions(+), 259 deletions(-)

diff --git a/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java
index 2bb7ff0..c519c97 100644
--- a/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java
@@ -1,6 +1,7 @@
 package com.zhitan.model.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zhitan.basicdata.domain.MeterImplement;
 import com.zhitan.basicdata.services.IMeterImplementService;
@@ -17,6 +18,7 @@
 import com.zhitan.model.service.IEnergyIndexService;
 import com.zhitan.model.service.IModelNodeService;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -33,286 +35,330 @@
 @Service
 public class EnergyIndexServiceImpl implements IEnergyIndexService {
 
-  @Autowired
-  private EnergyIndexMapper energyIndexMapper;
-  @Autowired
-  private IDaqTemplateService daqTemplateService;
-  @Autowired
-  private IMeterImplementService meterImplementService;
-  @Autowired
-  private IModelNodeService modelNodeService;
+    @Autowired
+    private EnergyIndexMapper energyIndexMapper;
+    @Autowired
+    private IDaqTemplateService daqTemplateService;
+    @Autowired
+    private IMeterImplementService meterImplementService;
+    @Autowired
+    private IModelNodeService modelNodeService;
 
-  @Autowired
-  private ModelNodeMapper modelNodeMapper;
+    @Autowired
+    private ModelNodeMapper modelNodeMapper;
 
-  @Override
-  public EnergyIndex getiEnergyIndexByCode(String code) {
-    return energyIndexMapper.getiEnergyIndexByCode(code);
-  }
-
-  @Override
-  public List<EnergyIndex> listIndexByMeterIds(String nodeId, List<String> meterId) {
-    return energyIndexMapper.listIndexByMeterIds(nodeId,meterId);
-  }
-
-  /**
-   * 鏌ヨ鎸囨爣淇℃伅
-   *
-   * @param indexId 鎸囨爣淇℃伅ID
-   * @return 鎸囨爣淇℃伅
-   */
-  @Override
-  public EnergyIndex selectEnergyIndexById(String indexId) {
-    return energyIndexMapper.selectEnergyIndexById(indexId);
-  }
-
-  @Override
-  public List<EnergyIndex> selectEnergyIndexByIds(List<String> indexId) {
-    if (CollectionUtils.isEmpty(indexId)) {
-      return Collections.emptyList();
-    }
-    return energyIndexMapper.selectEnergyIndexByIds(indexId);
-  }
-
-  @Override
-  public List<EnergyIndex> selectEnergyIndexList(EnergyIndex energyIndex) {
-    return energyIndexMapper.selectEnergyIndexList(energyIndex);
-  }
-
-  /**
-   * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
-   *
-   * @param energyIndex 鎸囨爣淇℃伅
-   * @return 鎸囨爣淇℃伅
-   */
-  @Override
-  public List<EnergyIndex> selectEnergyIndexList(EnergyIndexQuery query) {
-    return energyIndexMapper.selectEnergyIndex(query);
-  }
-
-  /**
-   * 鏂板鎸囨爣淇℃伅
-   *
-   * @param nodeId
-   * @param energyIndex 鎸囨爣淇℃伅
-   * @return 缁撴灉
-   */
-  @Override
-  public int insertEnergyIndex(String nodeId, EnergyIndex energyIndex) {
-    energyIndex.setNodeId(nodeId);
-    energyIndexMapper.insertEnergyIndex( energyIndex);
-    return energyIndexMapper.insertNodeIndex(nodeId,energyIndex.getIndexId());
-  }
-
-  /**
-   * 淇敼鎸囨爣淇℃伅
-   *
-   * @param energyIndex 鎸囨爣淇℃伅
-   * @return 缁撴灉
-   */
-  @Override
-  public int updateEnergyIndex(EnergyIndex energyIndex) {
-    return energyIndexMapper.updateEnergyIndex(energyIndex);
-  }
-
-  /**
-   * 鎵归噺鍒犻櫎鎸囨爣淇℃伅
-   *
-   * @param nodeId
-   * @param indexIds 闇�瑕佸垹闄ょ殑鎸囨爣淇℃伅ID
-   * @return 缁撴灉
-   */
-  @Override
-  public int deleteEnergyIndexByIds(String nodeId, String[] indexIds) {
-    return energyIndexMapper.deleteEnergyIndexByIds(nodeId, indexIds);
-  }
-
-  @Override
-  public boolean energyIndexHasExist(String code) {
-    int count = energyIndexMapper.energyIndexHasExist(code);
-    return count > 0;
-  }
-
-  @Override
-  public boolean energyIndexHasExist(String indexId, String code) {
-    int count = energyIndexMapper.energyIndexHasExistWhenUpdate(indexId, code);
-    return count > 0;
-  }
-
-  @Override
-  public AjaxResult addMeterIndex(String meterId) {
-    MeterImplement meterImplement = meterImplementService.selectMeterImplementById(meterId);
-    if (meterImplement == null) {
-      return AjaxResult.error("鎵句笉鍒板搴旂殑璁¢噺鍣ㄥ叿锛�");
+    @Override
+    public EnergyIndex getiEnergyIndexByCode(String code) {
+        return energyIndexMapper.getiEnergyIndexByCode(code);
     }
 
-    DaqTemplate query = new DaqTemplate();
-    query.setDeviceType(meterImplement.getMeterType());
-    List<DaqTemplate> daqTemplates = daqTemplateService.selectDaqTemplateList(query);
-    if (daqTemplates.isEmpty()) {
-      return AjaxResult.error("璁¢噺鍣ㄥ叿鎵�灞炵殑绫诲瀷娌℃湁鎵惧埌瀵瑰簲鐨勬ā鏉匡紒");
+    @Override
+    public List<EnergyIndex> listIndexByMeterIds(String nodeId, List<String> meterId) {
+        return energyIndexMapper.listIndexByMeterIds(nodeId, meterId);
     }
 
-    List<EnergyIndex> energyIndices = new ArrayList<>();
-    daqTemplates.forEach(daqTemplate -> {
-      EnergyIndex energyIndex = new EnergyIndex();
-      energyIndex.setIndexId(UUID.randomUUID().toString());
-      energyIndex.setCode(meterImplement.getCode() + "_" + daqTemplate.getCode());
-      energyIndex.setName(daqTemplate.getName());
-      energyIndex.setUnitId(daqTemplate.getUnit());
-      energyIndex.setIndexType(IndexType.COLLECT);
-      energyIndex.setMeterId(meterId);
-      energyIndices.add(energyIndex);
-    });
-
-    energyIndexMapper.deleteIndexByMeterId(meterId);
-    energyIndexMapper.insertEnergyIndices(energyIndices);
-    return AjaxResult.success();
-  }
-
-  @Override
-  public List<EnergyIndex> getMeterIndex(String meterId) {
-    return energyIndexMapper.getMeterIndex(meterId);
-  }
-
-  @Override
-  public boolean modelHasConfig(String modelCode) {
-    int count = energyIndexMapper.modelHasConfig(modelCode);
-    return count > 0;
-  }
-
-  @Override
-  public List<EnergyIndex> selectCollectIndex(String deviceId) {
-    return energyIndexMapper.selectCollectIndex(deviceId);
-  }
-
-  @Override
-  public List<EnergyIndex> getEnergyIndexByIds(List<String> indexIds) {
-    return energyIndexMapper.getEnergyIndexByIds(indexIds);
-  }
-
-  @Override
-  public List<EnergyIndex> getEnergyIndexByCodes(List<String> indexCodes) {
-    if (indexCodes.isEmpty()) {
-      return new ArrayList<>();
+    /**
+     * 鏌ヨ鎸囨爣淇℃伅
+     *
+     * @param indexId 鎸囨爣淇℃伅ID
+     * @return 鎸囨爣淇℃伅
+     */
+    @Override
+    public EnergyIndex selectEnergyIndexById(String indexId) {
+        return energyIndexMapper.selectEnergyIndexById(indexId);
     }
 
-    return energyIndexMapper.getEnergyIndexByCodes(indexCodes);
-  }
-
-  @Override
-  public List<EnergyIndex> getIndexByNodeAndChildrenNode(String nodeId) {
-    return energyIndexMapper.getIndexByNodeAndChildrenNode(nodeId);
-  }
-
-  @Override
-  public List<EnergyIndex> searchIndexByNodeAndChildrenNode(String nodeId, String filter) {
-    return energyIndexMapper.searchIndexByNodeAndChildrenNode(nodeId, filter);
-  }
-
-  @Override
-  public void removeNodeIndex(String nodeId, List<String> removeLink) {
-    energyIndexMapper.removeNodeIndex(nodeId, removeLink);
-  }
-
-  @Override
-  public AjaxResult importEnergyIndex(List<EnergyIndex> energyIndexList, boolean updateSupport) {
-    List<String> codes = energyIndexList.stream().map(EnergyIndex::getCode)
-        .collect(Collectors.toList());
-    List<String> nodeCodes = energyIndexList.stream().map(EnergyIndex::getNodeId)
-        .collect(Collectors.toList());
-    List<EnergyIndex> indexList = energyIndexMapper.getEnergyIndexByCodes(codes);
-    List<ModelNode> modelNodes = modelNodeService.getModelNodeByNodeCodes(nodeCodes);
-    Map<String, String> nodeCodeToId = modelNodes.stream()
-        .collect(Collectors.toMap(ModelNode::getCode, ModelNode::getNodeId));
-    Set<String> cacheIndexCodes = indexList.stream().map(EnergyIndex::getCode)
-        .collect(Collectors.toSet());
-
-    List<EnergyIndex> insertData = new ArrayList<>();
-    List<EnergyIndex> updateData = new ArrayList<>();
-    List<String> errorNodeCode = new ArrayList<>();
-    List<String> insertIndexCode = new ArrayList<>();
-    AtomicBoolean existDuplicateCode = new AtomicBoolean(false);
-    energyIndexList.forEach(energyIndex -> {
-      if (cacheIndexCodes.contains(energyIndex.getCode())) {
-        updateData.add(energyIndex);
-      } else {
-        String nodeCode = energyIndex.getNodeId();
-        if (nodeCodeToId.containsKey(nodeCode)) {
-          if (!insertIndexCode.contains(energyIndex.getCode())) {
-            insertIndexCode.add(energyIndex.getCode());
-            energyIndex.setIndexId(UUID.randomUUID().toString());
-            energyIndex.setNodeId(nodeCodeToId.get(nodeCode));
-            insertData.add(energyIndex);
-          } else {
-            existDuplicateCode.set(true);
-          }
-        } else if (!errorNodeCode.contains(nodeCode)) {
-          errorNodeCode.add(nodeCode);
+    @Override
+    public List<EnergyIndex> selectEnergyIndexByIds(List<String> indexId) {
+        if (CollectionUtils.isEmpty(indexId)) {
+            return Collections.emptyList();
         }
-      }
-    });
-
-    if (updateSupport && !updateData.isEmpty()) {
-      updateData.forEach(energyIndexMapper::updateEnergyIndex);
+        return energyIndexMapper.selectEnergyIndexByIds(indexId);
     }
 
-    if (!insertData.isEmpty()) {
-      energyIndexMapper.saveEnergyIndex(insertData);
+    @Override
+    public List<EnergyIndex> selectEnergyIndexList(EnergyIndex energyIndex) {
+        return energyIndexMapper.selectEnergyIndexList(energyIndex);
     }
 
-    String errMsg = "";
-    if (existDuplicateCode.get()) {
-      errMsg += "瀛樺湪閲嶅鐨勬寚鏍囩紪鐮侊紝宸茶嚜鍔ㄨ繃婊わ紒";
+    /**
+     * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
+     *
+     * @return 鎸囨爣淇℃伅
+     */
+    @Override
+    public List<EnergyIndex> selectEnergyIndexList(EnergyIndexQuery query) {
+        return energyIndexMapper.selectEnergyIndex(query);
     }
 
-    if (!errorNodeCode.isEmpty()) {
-      errMsg += String.join(",", errorNodeCode) + "娌℃湁鎵惧埌瀵瑰簲鐨勮妭鐐规暟鎹紝鍥犳鍏朵笅鐨勬墍鏈夋寚鏍囧鍏ュけ璐ワ紒";
+    /**
+     * 鏂板鎸囨爣淇℃伅
+     *
+     * @param nodeId
+     * @param energyIndex 鎸囨爣淇℃伅
+     * @return 缁撴灉
+     */
+    @Override
+    public int insertEnergyIndex(String nodeId, EnergyIndex energyIndex) {
+        energyIndex.setNodeId(nodeId);
+        energyIndexMapper.insertEnergyIndex(energyIndex);
+        return energyIndexMapper.insertNodeIndex(nodeId, energyIndex.getIndexId());
     }
 
-    if (StringUtils.isNotBlank(errMsg)) {
-      return AjaxResult.error(errMsg);
-    }
-    return AjaxResult.success("瀵煎叆鎴愬姛锛�");
-  }
-
-  @Override
-  public List<EnergyIndex> getEnergyIndexMeterByCodes(List<String> indexCodes) {
-    if (indexCodes.isEmpty()) {
-      return new ArrayList<>();
+    /**
+     * 淇敼鎸囨爣淇℃伅
+     *
+     * @param energyIndex 鎸囨爣淇℃伅
+     * @return 缁撴灉
+     */
+    @Override
+    public int updateEnergyIndex(EnergyIndex energyIndex) {
+        return energyIndexMapper.updateEnergyIndex(energyIndex);
     }
 
-    return energyIndexMapper.getEnergyIndexMeterByCodes(indexCodes);
-  }
+    /**
+     * 鎵归噺鍒犻櫎鎸囨爣淇℃伅
+     *
+     * @param nodeId
+     * @param indexIds 闇�瑕佸垹闄ょ殑鎸囨爣淇℃伅ID
+     * @return 缁撴灉
+     */
+    @Override
+    public int deleteEnergyIndexByIds(String nodeId, String[] indexIds) {
+        return energyIndexMapper.deleteEnergyIndexByIds(nodeId, indexIds);
+    }
 
-  /**
-   * @description: hmj 鍒嗛〉鏌ヨ
-   * @param query
-   * @param pageNum
-   * @param pageSize
-   * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.zhitan.model.domain.EnergyIndex>
-   * @author: hmj
-   * @date: 2024/10/11 23:56
-   */
-  @Override
-  public Page<EnergyIndex> selectEnergyIndexPage(EnergyIndexQuery query, Long pageNum, Long pageSize) {
-    return  energyIndexMapper.selectEnergyIndexPage(new Page<>(pageNum,pageSize),query);
-  }
+    @Override
+    public boolean energyIndexHasExist(String code) {
+        int count = energyIndexMapper.energyIndexHasExist(code);
+        return count > 0;
+    }
 
-  @Override
-  public Page<EnergyIndex> getMeterIndexList(List<String> meterIndexIds,String code,
-                                             String name,Long pageNum, Long pageSize) {
-    LambdaQueryWrapper<EnergyIndex> queryWrapper = new LambdaQueryWrapper<>();
-    queryWrapper.in(EnergyIndex::getMeterId,meterIndexIds);
-    queryWrapper.like(StringUtils.isNotEmpty(code),EnergyIndex::getCode,code);
-    queryWrapper.like(StringUtils.isNotEmpty(name),EnergyIndex::getName,name);
-    return energyIndexMapper.selectPage(new Page<>(pageNum,pageSize),queryWrapper);
-  }
+    @Override
+    public boolean energyIndexHasExist(String indexId, String code) {
+        int count = energyIndexMapper.energyIndexHasExistWhenUpdate(indexId, code);
+        return count > 0;
+    }
 
-  @Override
-  public List<EnergyIndex> getIndexByCode(String code, String nodeId) {
-    List<EnergyIndex> energyIndexList =  energyIndexMapper.getIndexByCode(code,nodeId);
+    @Override
+    public AjaxResult addMeterIndex(String meterId) {
+        MeterImplement meterImplement = meterImplementService.selectMeterImplementById(meterId);
+        if (meterImplement == null) {
+            return AjaxResult.error("鎵句笉鍒板搴旂殑璁¢噺鍣ㄥ叿锛�");
+        }
 
-    return energyIndexList;
-  }
+        DaqTemplate query = new DaqTemplate();
+        query.setDeviceType(meterImplement.getMeterType());
+        List<DaqTemplate> daqTemplates = daqTemplateService.selectDaqTemplateList(query);
+        if (daqTemplates.isEmpty()) {
+            return AjaxResult.error("璁¢噺鍣ㄥ叿鎵�灞炵殑绫诲瀷娌℃湁鎵惧埌瀵瑰簲鐨勬ā鏉匡紒");
+        }
+
+        List<EnergyIndex> energyIndices = new ArrayList<>();
+        daqTemplates.forEach(daqTemplate -> {
+            EnergyIndex energyIndex = new EnergyIndex();
+            energyIndex.setIndexId(UUID.randomUUID().toString());
+            energyIndex.setCode(meterImplement.getCode() + "_" + daqTemplate.getCode());
+            energyIndex.setName(daqTemplate.getName());
+            energyIndex.setUnitId(daqTemplate.getUnit());
+            energyIndex.setIndexType(IndexType.COLLECT);
+            energyIndex.setMeterId(meterId);
+            energyIndices.add(energyIndex);
+        });
+
+        energyIndexMapper.deleteIndexByMeterId(meterId);
+        energyIndexMapper.insertEnergyIndices(energyIndices);
+        return AjaxResult.success();
+    }
+
+    @Override
+    public List<EnergyIndex> getMeterIndex(String meterId) {
+        return energyIndexMapper.getMeterIndex(meterId);
+    }
+
+    @Override
+    public boolean modelHasConfig(String modelCode) {
+        int count = energyIndexMapper.modelHasConfig(modelCode);
+        return count > 0;
+    }
+
+    @Override
+    public List<EnergyIndex> selectCollectIndex(String deviceId) {
+        return energyIndexMapper.selectCollectIndex(deviceId);
+    }
+
+    @Override
+    public List<EnergyIndex> getEnergyIndexByIds(List<String> indexIds) {
+        return energyIndexMapper.getEnergyIndexByIds(indexIds);
+    }
+
+    @Override
+    public List<EnergyIndex> getEnergyIndexByCodes(List<String> indexCodes) {
+        if (indexCodes.isEmpty()) {
+            return new ArrayList<>();
+        }
+
+        return energyIndexMapper.getEnergyIndexByCodes(indexCodes);
+    }
+
+    @Override
+    public List<EnergyIndex> getIndexByNodeAndChildrenNode(String nodeId) {
+        return energyIndexMapper.getIndexByNodeAndChildrenNode(nodeId);
+    }
+
+    @Override
+    public List<EnergyIndex> searchIndexByNodeAndChildrenNode(String nodeId, String filter) {
+        return energyIndexMapper.searchIndexByNodeAndChildrenNode(nodeId, filter);
+    }
+
+    @Override
+    public void removeNodeIndex(String nodeId, List<String> removeLink) {
+        energyIndexMapper.removeNodeIndex(nodeId, removeLink);
+    }
+
+    @Override
+    public AjaxResult importEnergyIndex(List<EnergyIndex> energyIndexList, boolean updateSupport) {
+        List<String> codes = energyIndexList.stream().map(EnergyIndex::getCode)
+                .collect(Collectors.toList());
+        List<String> nodeCodes = energyIndexList.stream().map(EnergyIndex::getNodeId)
+                .collect(Collectors.toList());
+        List<EnergyIndex> indexList = energyIndexMapper.getEnergyIndexByCodes(codes);
+        List<ModelNode> modelNodes = modelNodeService.getModelNodeByNodeCodes(nodeCodes);
+        Map<String, String> nodeCodeToId = modelNodes.stream()
+                .collect(Collectors.toMap(ModelNode::getCode, ModelNode::getNodeId));
+        Set<String> cacheIndexCodes = indexList.stream().map(EnergyIndex::getCode)
+                .collect(Collectors.toSet());
+
+        List<EnergyIndex> insertData = new ArrayList<>();
+        List<EnergyIndex> updateData = new ArrayList<>();
+        List<String> errorNodeCode = new ArrayList<>();
+        List<String> insertIndexCode = new ArrayList<>();
+        AtomicBoolean existDuplicateCode = new AtomicBoolean(false);
+        energyIndexList.forEach(energyIndex -> {
+            if (cacheIndexCodes.contains(energyIndex.getCode())) {
+                updateData.add(energyIndex);
+            } else {
+                String nodeCode = energyIndex.getNodeId();
+                if (nodeCodeToId.containsKey(nodeCode)) {
+                    if (!insertIndexCode.contains(energyIndex.getCode())) {
+                        insertIndexCode.add(energyIndex.getCode());
+                        energyIndex.setIndexId(UUID.randomUUID().toString());
+                        energyIndex.setNodeId(nodeCodeToId.get(nodeCode));
+                        insertData.add(energyIndex);
+                    } else {
+                        existDuplicateCode.set(true);
+                    }
+                } else if (!errorNodeCode.contains(nodeCode)) {
+                    errorNodeCode.add(nodeCode);
+                }
+            }
+        });
+
+        if (updateSupport && !updateData.isEmpty()) {
+            updateData.forEach(energyIndexMapper::updateEnergyIndex);
+        }
+
+        if (!insertData.isEmpty()) {
+            energyIndexMapper.saveEnergyIndex(insertData);
+        }
+
+        String errMsg = "";
+        if (existDuplicateCode.get()) {
+            errMsg += "瀛樺湪閲嶅鐨勬寚鏍囩紪鐮侊紝宸茶嚜鍔ㄨ繃婊わ紒";
+        }
+
+        if (!errorNodeCode.isEmpty()) {
+            errMsg += String.join(",", errorNodeCode) + "娌℃湁鎵惧埌瀵瑰簲鐨勮妭鐐规暟鎹紝鍥犳鍏朵笅鐨勬墍鏈夋寚鏍囧鍏ュけ璐ワ紒";
+        }
+
+        if (StringUtils.isNotBlank(errMsg)) {
+            return AjaxResult.error(errMsg);
+        }
+        return AjaxResult.success("瀵煎叆鎴愬姛锛�");
+    }
+
+    @Override
+    public List<EnergyIndex> getEnergyIndexMeterByCodes(List<String> indexCodes) {
+        if (indexCodes.isEmpty()) {
+            return new ArrayList<>();
+        }
+
+        return energyIndexMapper.getEnergyIndexMeterByCodes(indexCodes);
+    }
+
+    /**
+     * @param query
+     * @param pageNum
+     * @param pageSize
+     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.zhitan.model.domain.EnergyIndex>
+     * @description: hmj 鍒嗛〉鏌ヨ
+     * @author: hmj
+     * @date: 2024/10/11 23:56
+     */
+    @Override
+    public Page<EnergyIndex> selectEnergyIndexPage(EnergyIndexQuery query, Long pageNum, Long pageSize) {
+        return energyIndexMapper.selectEnergyIndexPage(new Page<>(pageNum, pageSize), query);
+    }
+
+    @Override
+    public Page<EnergyIndex> getMeterIndexList(List<String> meterIndexIds, String code,
+                                               String name, Long pageNum, Long pageSize) {
+        LambdaQueryWrapper<EnergyIndex> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.in(EnergyIndex::getMeterId, meterIndexIds);
+        queryWrapper.like(StringUtils.isNotEmpty(code), EnergyIndex::getCode, code);
+        queryWrapper.like(StringUtils.isNotEmpty(name), EnergyIndex::getName, name);
+        return energyIndexMapper.selectPage(new Page<>(pageNum, pageSize), queryWrapper);
+    }
+
+    @Override
+    public List<EnergyIndex> getIndexByCode(String code, String nodeId) {
+        List<EnergyIndex> energyIndexList = energyIndexMapper.getIndexByCode(code, nodeId);
+
+        return energyIndexList;
+    }
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id鍜岃澶噄d锛屼互鍙婄偣浣嶇紪鐮佽幏鍙栫偣浣�
+     *
+     * @param nodeId    鑺傜偣id
+     * @param meterId   璁惧id
+     * @param indexCode 鐐逛綅缂栫爜鎴栬�呯偣浣嶇紪鐮佺殑涓�閮ㄥ垎
+     * @return
+     */
+    @Override
+    public EnergyIndex getDeviceIndexByCode(String nodeId, String meterId, String indexCode) {
+
+        List<EnergyIndex> energyIndexList = listDeviceIndexByCode(nodeId, meterId, indexCode);
+        EnergyIndex energyIndex = energyIndexList.stream().findFirst().orElse(null);
+        if (ObjectUtils.isEmpty(energyIndex)) {
+            energyIndex = new EnergyIndex();
+        }
+        return energyIndex;
+    }
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id鍜岃澶噄d锛屼互鍙婄偣浣嶇紪鐮佽幏鍙栫偣浣�
+     *
+     * @param nodeId    鑺傜偣id
+     * @param meterId   璁惧id
+     * @param indexCode 鐐逛綅缂栫爜鎴栬�呯偣浣嶇紪鐮佺殑涓�閮ㄥ垎
+     * @return
+     */
+    public List<EnergyIndex> listDeviceIndexByCode(String nodeId, String meterId, String indexCode) {
+        List<EnergyIndex> energyIndexList = energyIndexMapper.getIndexByMeterIdIndexCode(meterId,indexCode,nodeId);
+        return energyIndexList;
+    }
+
+    /**
+     * 鏍规嵁鐢ㄨ兘鍗曞厓id鍜岃澶噄d锛屼互鍙婄偣浣嶇紪鐮佽幏鍙栫偣浣�
+     *
+     * @param nodeId  鑺傜偣id
+     * @param meterId 璁惧id
+     * @return
+     */
+    @Override
+    public List<EnergyIndex> listDeviceIndex(String nodeId, String meterId) {
+        List<EnergyIndex> energyIndexList = energyIndexMapper.getIndexByMeterIdIndexCode(meterId,null,nodeId);
+        return energyIndexList;
+    }
 }

--
Gitblit v1.9.3