From 75f043dfa6660716364e66ee0b3cf99f44255686 Mon Sep 17 00:00:00 2001
From: DYL0109 <dn18191638832@163.com>
Date: 星期三, 16 四月 2025 19:20:36 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/develop1.0' into dyl_dev

---
 zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java |  344 ++++++++++++++++++++++++++++++--------------------------
 1 files changed, 185 insertions(+), 159 deletions(-)

diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java
index 2ec479d..7a2cc00 100644
--- a/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java
@@ -9,17 +9,21 @@
 import com.zhitan.common.utils.poi.ExcelUtil;
 import com.zhitan.model.domain.EnergyIndex;
 import com.zhitan.model.domain.EnergyIndexQuery;
+import com.zhitan.model.domain.vo.ModelNodeIndexInfo;
 import com.zhitan.model.service.IEnergyIndexService;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
 import java.util.UUID;
 import java.util.stream.Collectors;
+import java.util.stream.Stream;
 
 /**
  * 鎸囨爣淇℃伅Controller
@@ -31,177 +35,199 @@
 @RequestMapping("/basicsetting/energyindex")
 public class EnergyIndexController extends BaseController {
 
-  @Autowired
-  private IEnergyIndexService energyIndexService;
+    @Autowired
+    private IEnergyIndexService energyIndexService;
 
-  /**
-   * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
-   */
-  @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
-  @GetMapping("/list")
-  public TableDataInfo list(EnergyIndex energyIndex, @RequestParam Long pageNum, @RequestParam Long pageSize) {
-    EnergyIndexQuery query = new EnergyIndexQuery(energyIndex.getNodeId(), energyIndex.getName(),
-        energyIndex.getIndexCategory(), energyIndex.getIndexType());
-    Page<EnergyIndex> list = energyIndexService.selectEnergyIndexPage(query,pageNum,pageSize);
-    return getDataTable(list);
-  }
-
-  /**
-   * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
-   */
-  @GetMapping("/filter")
-  public AjaxResult filter(EnergyIndexQuery query) {
-    List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(query);
-    return AjaxResult.success(list);
-  }
-
-  /**
-   * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
-   */
-  @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
-  @GetMapping("/collectIndex")
-  public TableDataInfo listCollectIndex(String deviceId) {
-    startPage();
-    List<EnergyIndex> list = energyIndexService.selectCollectIndex(deviceId);
-    return getDataTable(list);
-  }
-
-  /**
-   * 瀵煎嚭鎸囨爣淇℃伅鍒楄〃
-   */
-  @PreAuthorize("@ss.hasPermi('energyindex:energyindex:export')")
-  @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.EXPORT)
-  @GetMapping("/export")
-  public AjaxResult export(EnergyIndex energyIndex) {
-    List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(energyIndex);
-    ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class);
-    return util.exportExcel(list, "energyindex");
-  }
-
-  /**
-   * 鑾峰彇鎸囨爣淇℃伅璇︾粏淇℃伅
-   */
-  @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
-  @GetMapping(value = "/{indexId}")
-  public AjaxResult getInfo(@PathVariable("indexId") String indexId) {
-    return AjaxResult.success(energyIndexService.selectEnergyIndexById(indexId));
-  }
-
-  /**
-   * 鏂板鎸囨爣淇℃伅
-   */
-  @PreAuthorize("@ss.hasPermi('energyindex:energyindex:add')")
-  @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.INSERT)
-  @PostMapping(value = "/{nodeId}")
-  public AjaxResult add(@PathVariable("nodeId") String nodeId,
-      @RequestBody EnergyIndex energyIndex) {
-    boolean isExist = energyIndexService.energyIndexHasExist(energyIndex.getCode());
-    if (isExist) {
-      return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�");
-    } else {
-      energyIndex.setIndexId(UUID.randomUUID().toString());
-      energyIndexService.insertEnergyIndex(nodeId, energyIndex);
-      return AjaxResult.success();
-    }
-  }
-
-  /**
-   * 淇敼鎸囨爣淇℃伅
-   */
-  @PreAuthorize("@ss.hasPermi('energyindex:energyindex:edit')")
-  @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.UPDATE)
-  @PutMapping
-  public AjaxResult edit(@RequestBody EnergyIndex energyIndex) {
-    boolean isExist = energyIndexService
-        .energyIndexHasExist(energyIndex.getIndexId(), energyIndex.getCode());
-    if (isExist) {
-      return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�");
-    } else {
-      return toAjax(energyIndexService.updateEnergyIndex(energyIndex));
-    }
-  }
-
-  /**
-   * 鍒犻櫎鎸囨爣淇℃伅
-   */
-  @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')")
-  @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE)
-  @DeleteMapping("/{nodeId}/{indexIds}")
-  public AjaxResult remove(@PathVariable String nodeId, @PathVariable String[] indexIds) {
-    List<EnergyIndex> energyIndexList = energyIndexService.getEnergyIndexByIds(
-        Arrays.asList(indexIds));
-    List<String> deleteIds = energyIndexList.stream()
-        .filter(f -> StringUtils.isBlank(f.getMeterId()))
-        .map(EnergyIndex::getIndexId)
-        .collect(Collectors.toList());
-    List<String> removeLink = energyIndexList.stream()
-        .filter(f -> StringUtils.isNotBlank(f.getMeterId()))
-        .map(EnergyIndex::getIndexId)
-        .collect(Collectors.toList());
-    if (!removeLink.isEmpty()) {
-      energyIndexService.removeNodeIndex(nodeId, removeLink);
+    /**
+     * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
+    @GetMapping("/list")
+    public TableDataInfo list(EnergyIndex energyIndex, @RequestParam Long pageNum, @RequestParam Long pageSize) {
+        EnergyIndexQuery query = new EnergyIndexQuery(energyIndex.getNodeId(), energyIndex.getName(),
+                energyIndex.getIndexCategory(), energyIndex.getIndexType());
+        Page<EnergyIndex> list = energyIndexService.selectEnergyIndexPage(query, pageNum, pageSize);
+        return getDataTable(list);
     }
 
-    if (!deleteIds.isEmpty()) {
-      energyIndexService.deleteEnergyIndexByIds(nodeId, deleteIds.toArray(new String[0]));
+    /**
+     * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
+     */
+    @GetMapping("/filter")
+    public AjaxResult filter(EnergyIndexQuery query) {
+        List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(query);
+        return AjaxResult.success(list);
     }
-    return AjaxResult.success();
-  }
 
-  @Log(title = "澧炲姞璁¢噺鍣ㄥ叿閲囬泦鐐�", businessType = BusinessType.INSERT)
-  @PostMapping("/meterIndex/{meterId}")
-  public AjaxResult addCollectIndex(@PathVariable("meterId") String meterId) {
-    try {
-      return energyIndexService.addMeterIndex(meterId);
-    } catch (Exception ex) {
-      logger.error("鍒涘缓璁¢噺鍣ㄥ叿閲囬泦鐐瑰け璐ワ紒", ex);
-      return AjaxResult.error();
+    /**
+     * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
+    @GetMapping("/collectIndex")
+    public TableDataInfo listCollectIndex(String deviceId) {
+        startPage();
+        List<EnergyIndex> list = energyIndexService.selectCollectIndex(deviceId);
+        return getDataTable(list);
     }
-  }
 
-  @GetMapping("/meterIndex/{meterId}")
-  public AjaxResult getDeviceCollectIndex(@PathVariable("meterId") String meterId) {
-    return AjaxResult.success(energyIndexService.getMeterIndex(meterId));
-  }
-
-  @GetMapping("/includeChildrenNode/{nodeId}")
-  public AjaxResult getIndexByNodeAndChildrenNode(@PathVariable("nodeId") String nodeId) {
-    try {
-      return AjaxResult.success(energyIndexService.getIndexByNodeAndChildrenNode(nodeId));
-    } catch (Exception ex) {
-      logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex);
-      return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!");
+    /**
+     * 瀵煎嚭鎸囨爣淇℃伅鍒楄〃
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:export')")
+    @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.EXPORT)
+    @GetMapping("/export")
+    public AjaxResult export(EnergyIndex energyIndex) {
+        List<EnergyIndex> list = energyIndexService.selectEnergyIndexList(energyIndex);
+        ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class);
+        return util.exportExcel(list, "energyindex");
     }
-  }
 
-  @GetMapping("/includeChildrenNode/search")
-  public AjaxResult searchIndexByNodeAndChildrenNode(String nodeId, String filter) {
-    try {
-      return AjaxResult
-          .success(energyIndexService.searchIndexByNodeAndChildrenNode(nodeId, filter));
-    } catch (Exception ex) {
-      logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex);
-      return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!");
+    /**
+     * 鑾峰彇鎸囨爣淇℃伅璇︾粏淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
+    @GetMapping(value = "/{indexId}")
+    public AjaxResult getInfo(@PathVariable("indexId") String indexId) {
+        return AjaxResult.success(energyIndexService.selectEnergyIndexById(indexId));
     }
-  }
 
-  @GetMapping("/importTemplate")
-  public AjaxResult importTemplate() {
-    ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class);
-    return util.importTemplateExcel("鎸囨爣鏁版嵁");
-  }
+    /**
+     * 鏂板鎸囨爣淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:add')")
+    @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.INSERT)
+    @PostMapping(value = "/{nodeId}")
+    public AjaxResult add(@PathVariable("nodeId") String nodeId,
+                          @RequestBody EnergyIndex energyIndex) {
+        boolean isExist = energyIndexService.energyIndexHasExist(energyIndex.getCode());
+        if (isExist) {
+            return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�");
+        } else {
+            energyIndex.setIndexId(UUID.randomUUID().toString());
+            energyIndexService.insertEnergyIndex(nodeId, energyIndex);
+            return AjaxResult.success();
+        }
+    }
 
-  @PostMapping("/importData")
-  public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
-    ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class);
-    List<EnergyIndex> energyIndexList = util.importExcel(file.getInputStream());
-    return energyIndexService.importEnergyIndex(energyIndexList, updateSupport);
-  }
+    /**
+     * 淇敼鎸囨爣淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:edit')")
+    @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody EnergyIndex energyIndex) {
+        boolean isExist = energyIndexService
+                .energyIndexHasExist(energyIndex.getIndexId(), energyIndex.getCode());
+        if (isExist) {
+            return AjaxResult.error("鎸囨爣缂栫爜涓嶈兘閲嶅锛�");
+        } else {
+            return toAjax(energyIndexService.updateEnergyIndex(energyIndex));
+        }
+    }
+
+    /**
+     * 鍒犻櫎閲囬泦鎸囨爣淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')")
+    @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{indexIds}")
+    public AjaxResult remove(@PathVariable String[] indexIds) {
+
+        List<String> indexIdList = Arrays.asList(indexIds);
+        if (ObjectUtils.isEmpty(indexIdList)) {
+            return AjaxResult.success();
+        }
+        // 鏌ヨ妯″瀷鑺傜偣鐐逛綅淇℃伅
+        List<ModelNodeIndexInfo> modelNodeIndexInfoList = energyIndexService.getModelNodeIndexInfoListByIndexIds(indexIds);
+        if (ObjectUtils.isNotEmpty(modelNodeIndexInfoList)) {
+            ModelNodeIndexInfo modelNodeIndexInfo = modelNodeIndexInfoList.stream().findFirst().get();
+            return AjaxResult.error("閲囬泦鎸囨爣 " + modelNodeIndexInfo.getIndexName() + " 宸茶妯″瀷 " + modelNodeIndexInfo.getModelName() + " 鍏宠仈锛屼笉鑳藉垹闄わ紒");
+        }
+
+        energyIndexService.removeEnergyIndex(indexIdList);
+
+        return AjaxResult.success();
+    }
+
+    /**
+     * 鍒犻櫎缁熻鎸囨爣淇℃伅
+     */
+    @PreAuthorize("@ss.hasPermi('energyindex:energyindex:remove')")
+    @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE)
+    @DeleteMapping("{nodeId}/{indexIds}")
+    public AjaxResult remove(@PathVariable String nodeId, @PathVariable String[] indexIds) {
+
+        List<String> indexIdList = Arrays.asList(indexIds);
+        if (ObjectUtils.isEmpty(indexIdList)) {
+            return AjaxResult.success();
+        }
+        // 鏌ヨ妯″瀷鑺傜偣鐐逛綅淇℃伅
+        List<ModelNodeIndexInfo> modelNodeIndexInfoList = energyIndexService.getModelNodeIndexInfoListByIndexIds(indexIds);
+        if (ObjectUtils.isNotEmpty(modelNodeIndexInfoList)) {
+            if(modelNodeIndexInfoList.size() > 1){
+                return AjaxResult.error("璇ョ粺璁℃寚鏍囧凡琚叾浠栨ā鍨嬪叧鑱旓紝涓嶈兘鍒犻櫎锛�");
+            }
+        }
+
+        energyIndexService.removeEnergyIndex(indexIdList);
+
+        return AjaxResult.success();
+    }
+
+    @Log(title = "澧炲姞璁¢噺鍣ㄥ叿閲囬泦鐐�", businessType = BusinessType.INSERT)
+    @PostMapping("/meterIndex/{meterId}")
+    public AjaxResult addCollectIndex(@PathVariable("meterId") String meterId) {
+        try {
+            return energyIndexService.addMeterIndex(meterId);
+        } catch (Exception ex) {
+            logger.error("鍒涘缓璁¢噺鍣ㄥ叿閲囬泦鐐瑰け璐ワ紒", ex);
+            return AjaxResult.error();
+        }
+    }
+
+    @GetMapping("/meterIndex/{meterId}")
+    public AjaxResult getDeviceCollectIndex(@PathVariable("meterId") String meterId) {
+        return AjaxResult.success(energyIndexService.getMeterIndex(meterId));
+    }
+
+    @GetMapping("/includeChildrenNode/{nodeId}")
+    public AjaxResult getIndexByNodeAndChildrenNode(@PathVariable("nodeId") String nodeId) {
+        try {
+            return AjaxResult.success(energyIndexService.getIndexByNodeAndChildrenNode(nodeId));
+        } catch (Exception ex) {
+            logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex);
+            return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!");
+        }
+    }
+
+    @GetMapping("/includeChildrenNode/search")
+    public AjaxResult searchIndexByNodeAndChildrenNode(String nodeId, String filter) {
+        try {
+            return AjaxResult
+                    .success(energyIndexService.searchIndexByNodeAndChildrenNode(nodeId, filter));
+        } catch (Exception ex) {
+            logger.error("鑾峰彇鍏宠仈閲囬泦鎸囨爣鍑洪敊锛�", ex);
+            return AjaxResult.error("鑾峰彇鍏宠仈鎸囨爣鍑洪敊!");
+        }
+    }
+
+    @GetMapping("/importTemplate")
+    public AjaxResult importTemplate() {
+        ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class);
+        return util.importTemplateExcel("鎸囨爣鏁版嵁");
+    }
+
+    @PostMapping("/importData")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
+        ExcelUtil<EnergyIndex> util = new ExcelUtil<>(EnergyIndex.class);
+        List<EnergyIndex> energyIndexList = util.importExcel(file.getInputStream());
+        return energyIndexService.importEnergyIndex(energyIndexList, updateSupport);
+    }
 
 
-  @GetMapping("/getIndexByCode")
-  public AjaxResult getIndexByCode(String code,String nodeId) {
-    List<EnergyIndex> energyIndexList = energyIndexService.getIndexByCode(code,nodeId);
-    return AjaxResult.success(energyIndexList);
-  }
+    @GetMapping("/getIndexByCode")
+    public AjaxResult getIndexByCode(String code, String nodeId) {
+        List<EnergyIndex> energyIndexList = energyIndexService.getIndexByCode(code, nodeId);
+        return AjaxResult.success(energyIndexList);
+    }
 }

--
Gitblit v1.9.3