From 8dd7af51db4cf768fbf92002b5b62f7fb9d1c929 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期二, 06 五月 2025 15:04:59 +0800
Subject: [PATCH] refactor(zhitan):调整模型代码和优化能源统计功能

---
 zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java                     |   59 +++++++
 zhitan-vue/src/assets/styles/sidebar.scss                                                                     |    2 
 zhitan-vue/src/components/LeftTree/index.vue                                                                  |    2 
 zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexStorageServiceImpl.java                        |  178 +++++++++++++++----------
 zhitan-admin/src/main/java/com/zhitan/web/controller/model/EnergyIndexController.java                         |   43 +++---
 zhitan-vue/src/views/modelconfiguration/calculationformula/calculationFormula.vue                             |    6 
 zhitan-admin/src/main/java/com/zhitan/web/controller/homepage/HomePageController.java                         |    8 
 zhitan-admin/src/main/resources/application-prod.yml                                                          |   16 +
 zhitan-admin/src/main/java/com/zhitan/web/controller/energydatastatistics/EnergyDataStatisticsController.java |   20 +-
 zhitan-vue/src/views/index.vue                                                                                |    1 
 zhitan-vue/src/views/realtimemonitor/realtimemonitor/realtimemonitor.vue                                      |   37 +++++
 zhitan-vue/src/layout/components/Navbar.vue                                                                   |    2 
 zhitan-vue/src/views/modelconfiguration/businessmodel/businessModel.vue                                       |    2 
 zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue     |    2 
 zhitan-vue/src/layout/index.vue                                                                               |    2 
 zhitan-vue/src/views/modelconfiguration/indexwarehouse/indexWarehouse.vue                                     |    4 
 zhitan-admin/src/main/resources/application.yml                                                               |    5 
 17 files changed, 261 insertions(+), 128 deletions(-)

diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/energydatastatistics/EnergyDataStatisticsController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/energydatastatistics/EnergyDataStatisticsController.java
index 109aa81..f3c6986 100644
--- a/zhitan-admin/src/main/java/com/zhitan/web/controller/energydatastatistics/EnergyDataStatisticsController.java
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/energydatastatistics/EnergyDataStatisticsController.java
@@ -44,7 +44,7 @@
     public AjaxResult energyConsumptionSummationDay() {
         try {
             String timeType = "DAY";
-            String modelCode = "COMPREHENSIVE_CODE";
+            String modelCode = "LBJT";
             return AjaxResult.success(homepageService.energyConsumptionSummation(timeType,modelCode));
         } catch (Exception ex) {
             logger.error("鑾峰彇鍑洪敊锛�", ex);
@@ -60,7 +60,7 @@
     @GetMapping("/energyConsumptionSummation")
     public AjaxResult energyConsumptionSummation(String timeType) {
         try {
-            String modelCode = "COMPREHENSIVE_CODE";
+            String modelCode = "LBJT";
             return AjaxResult.success(statisticService.energyConsumptionSummation(timeType,modelCode));
         } catch (Exception ex) {
             logger.error("鑾峰彇鍑洪敊锛�", ex);
@@ -76,7 +76,7 @@
     public AjaxResult factoryEnergyConsumption() {
         try {
             String timeType = "MONTH";
-            String modelCode = "COMPREHENSIVE_CODE";
+            String modelCode = "LBJT";
             FactoryEnergyConsumptionVo vo=statisticService.factoryEnergyConsumption(timeType,modelCode);
             return AjaxResult.success(vo);
         } catch (Exception ex) {
@@ -92,7 +92,7 @@
     @GetMapping("/segmentAnalysis/year")
     public AjaxResult segmentAnalysisMonth() {
         PeakValleyDTO dto =new PeakValleyDTO();
-        dto.setModelCode("COMPREHENSIVE_CODE");
+        dto.setModelCode("LBJT");
         dto.setTimeType("YEAR");
         dto.setQueryTime(new Date());
         return AjaxResult.success(statisticService.segmentAnalysisMonth(dto));
@@ -106,7 +106,7 @@
     @GetMapping("/segmentAnalysis/month")
     public AjaxResult segmentAnalysisDay() {
         PeakValleyDTO dto =new PeakValleyDTO();
-        dto.setModelCode("COMPREHENSIVE_CODE");
+        dto.setModelCode("LBJT");
         dto.setTimeType("MONTH");
         dto.setQueryTime(new Date());
         return AjaxResult.success(statisticService.segmentAnalysisDay(dto));
@@ -119,7 +119,7 @@
     @GetMapping("/segmentAnalysis/day")
     public AjaxResult segmentAnalysisHour() {
         PeakValleyDTO dto =new PeakValleyDTO();
-        dto.setModelCode("COMPREHENSIVE_CODE");
+        dto.setModelCode("LBJT");
         dto.setTimeType("DAY");
         dto.setQueryTime(new Date());
         return AjaxResult.success(statisticService.segmentAnalysisHour(dto));
@@ -132,7 +132,7 @@
     @GetMapping("/purchaseConsumption")
     public AjaxResult purchaseConsumption() {
         String timeType="MONTH";
-        String modelCode = "COMPREHENSIVE_CODE";
+        String modelCode = "LBJT";
         List<PurchaseConsumptionVo> consumptionAnalysisVO = statisticService.purchaseConsumption(modelCode,timeType);
         return AjaxResult.success(consumptionAnalysisVO);
     }
@@ -143,7 +143,7 @@
      */
     @GetMapping("/energyConsumptionRanking")
     public AjaxResult energyConsumptionRanking(String timeType) {
-        String modelCode = "COMPREHENSIVE_CODE";
+        String modelCode = "LBJT";
         List<RankingEnergyData> consumptionAnalysisVO = statisticService.energyConsumptionRanking(modelCode,timeType);
         return AjaxResult.success(consumptionAnalysisVO);
     }
@@ -154,7 +154,7 @@
      */
     @GetMapping("/costProp")
     public AjaxResult costProp(String timeType) {
-        String modelCode = "COMPREHENSIVE_CODE";
+        String modelCode = "LBJT";
         List<PurchaseConsumptionVo> consumptionAnalysisVO = statisticService.costProp(modelCode, timeType);
         return AjaxResult.success(consumptionAnalysisVO);
 
@@ -167,7 +167,7 @@
     @GetMapping("/peakValley")
     public AjaxResult peakValley(String timeType) {
         try {
-            String modelcode = "COMPREHENSIVE_CODE";
+            String modelcode = "LBJT";
             List<HomePeakValleyVO> vo = homepageService.peakValley(timeType,modelcode);
             return AjaxResult.success(vo);
         } catch (Exception ex) {
diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/homepage/HomePageController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/homepage/HomePageController.java
index d101c3e..82ccfa6 100644
--- a/zhitan-admin/src/main/java/com/zhitan/web/controller/homepage/HomePageController.java
+++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/homepage/HomePageController.java
@@ -32,7 +32,7 @@
     @GetMapping("/energyConsumptionSummation")
     public AjaxResult energyConsumptionSummation(String timeType) {
         try {
-            String modelcode = "COMPREHENSIVE_CODE";
+            String modelcode = "LBJT";
             return AjaxResult.success(homepageService.energyConsumptionSummation(timeType, modelcode));
         } catch (Exception ex) {
             logger.error("鑾峰彇鍑洪敊锛�", ex);
@@ -49,7 +49,7 @@
     @GetMapping("/energyConsumptionTrend")
     public AjaxResult energyConsumptionTrend(String timeType) {
         try {
-            String modelcode = "COMPREHENSIVE_CODE";
+            String modelcode = "LBJT";
             HomeEnergyConsumptionTrendVO vo = homepageService.energyConsumptionTrend(timeType, modelcode);
 
             return AjaxResult.success(vo);
@@ -67,7 +67,7 @@
     @GetMapping("/energyConsumptionRanking")
     public AjaxResult energyConsumptionRanking(String timeType) {
         try {
-            String modelcode = "COMPREHENSIVE_CODE";
+            String modelcode = "LBJT";
             List<RankingEnergyData> consumptionAnalysisVO = homepageService.energyConsumptionRanking(modelcode, timeType);
             return AjaxResult.success(consumptionAnalysisVO);
         } catch (Exception ex) {
@@ -84,7 +84,7 @@
     @GetMapping("/peakValley")
     public AjaxResult peakValley(String timeType) {
         try {
-            String modelcode = "COMPREHENSIVE_CODE";
+            String modelcode = "LBJT";
             List<HomePeakValleyVO> vo = homepageService.peakValley(timeType, modelcode);
             return AjaxResult.success(vo);
         } catch (Exception ex) {
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 7a2cc00..f169f8c 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
@@ -18,18 +18,12 @@
 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.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 /**
- * 鎸囨爣淇℃伅Controller
- *
- * @author fanxinfu
- * @date 2020-02-14
+ * 鎸囨爣淇℃伅鎺у埗鍣�
  */
 @RestController
 @RequestMapping("/basicsetting/energyindex")
@@ -39,7 +33,11 @@
     private IEnergyIndexService energyIndexService;
 
     /**
-     * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
+     * 鍒嗛〉鏌ヨ鎸囨爣淇℃伅
+     * @param energyIndex 鏌ヨ鏉′欢
+     * @param pageNum     褰撳墠椤电爜
+     * @param pageSize    椤甸潰澶у皬
+     * @return 鍒嗛〉鏁版嵁
      */
     @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
     @GetMapping("/list")
@@ -51,7 +49,9 @@
     }
 
     /**
-     * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
+     * 鏉′欢鏌ヨ鎸囨爣淇℃伅锛堜笉甯﹀垎椤碉級
+     * @param query 鏌ヨ鏉′欢
+     * @return 鎸囨爣鍒楄〃
      */
     @GetMapping("/filter")
     public AjaxResult filter(EnergyIndexQuery query) {
@@ -60,7 +60,9 @@
     }
 
     /**
-     * 鏌ヨ鎸囨爣淇℃伅鍒楄〃
+     * 鏌ヨ閲囬泦鎸囨爣鍒楄〃锛堢敤浜庤澶囧叧鑱旓級
+     * @param deviceId 璁惧ID
+     * @return 鍒嗛〉鏁版嵁
      */
     @PreAuthorize("@ss.hasPermi('energyindex:energyindex:query')")
     @GetMapping("/collectIndex")
@@ -132,20 +134,19 @@
     @Log(title = "鎸囨爣淇℃伅", businessType = BusinessType.DELETE)
     @DeleteMapping("/{indexIds}")
     public AjaxResult remove(@PathVariable String[] indexIds) {
+        // 姝ラ1: 鍙傛暟鏍¢獙
+        if (ObjectUtils.isEmpty(indexIds)) return AjaxResult.success();
 
-        List<String> indexIdList = Arrays.asList(indexIds);
-        if (ObjectUtils.isEmpty(indexIdList)) {
-            return AjaxResult.success();
-        }
-        // 鏌ヨ妯″瀷鑺傜偣鐐逛綅淇℃伅
+        // 姝ラ2: 妫�鏌ユ槸鍚﹁妯″瀷鍏宠仈
         List<ModelNodeIndexInfo> modelNodeIndexInfoList = energyIndexService.getModelNodeIndexInfoListByIndexIds(indexIds);
-        if (ObjectUtils.isNotEmpty(modelNodeIndexInfoList)) {
-            ModelNodeIndexInfo modelNodeIndexInfo = modelNodeIndexInfoList.stream().findFirst().get();
-            return AjaxResult.error("閲囬泦鎸囨爣 " + modelNodeIndexInfo.getIndexName() + " 宸茶妯″瀷 " + modelNodeIndexInfo.getModelName() + " 鍏宠仈锛屼笉鑳藉垹闄わ紒");
+        if (!modelNodeIndexInfoList.isEmpty()) {
+            // 瀛樺湪鍏宠仈鍏崇郴杩斿洖閿欒
+            ModelNodeIndexInfo firstItem = modelNodeIndexInfoList.get(0);
+            return AjaxResult.error("鎸囨爣 " + firstItem.getIndexName() + " 宸茶妯″瀷 " + firstItem.getModelName() + " 鍏宠仈锛屼笉鑳藉垹闄わ紒");
         }
 
-        energyIndexService.removeEnergyIndex(indexIdList);
-
+        // 姝ラ3: 鎵ц鍒犻櫎
+        energyIndexService.removeEnergyIndex(Arrays.asList(indexIds));
         return AjaxResult.success();
     }
 
diff --git a/zhitan-admin/src/main/resources/application-prod.yml b/zhitan-admin/src/main/resources/application-prod.yml
index 2f5a7cb..f1b69ec 100644
--- a/zhitan-admin/src/main/resources/application-prod.yml
+++ b/zhitan-admin/src/main/resources/application-prod.yml
@@ -6,8 +6,8 @@
     druid:
       # 涓诲簱鏁版嵁婧�
       master:
-        url: jdbc:postgresql://127.0.0.1:5432/energy_ml
-        username: root
+        url: jdbc:postgresql://127.0.0.1:5432/postgres
+        username: postgres
         password: 123456
       # 浠庡簱鏁版嵁婧�
       slave:
@@ -35,7 +35,7 @@
       # 閰嶇疆涓�涓繛鎺ュ湪姹犱腑鏈�澶х敓瀛樼殑鏃堕棿锛屽崟浣嶆槸姣
       maxEvictableIdleTimeMillis: 900000
       # 閰嶇疆妫�娴嬭繛鎺ユ槸鍚︽湁鏁�
-      validationQuery: SELECT 1 FROM DUAL
+      validationQuery: SELECT 1
       testWhileIdle: true
       testOnBorrow: false
       testOnReturn: false
@@ -58,4 +58,12 @@
           merge-sql: true
         wall:
           config:
-            multi-statement-allow: true
\ No newline at end of file
+            multi-statement-allow: true
+keycloak:
+  # keycloak 鏈嶅姟鍣ㄥ湴鍧�
+  server-url: https://lanbaosystem.shlanbao.cn:8443
+  realm: lanbao
+  client-id: DataCapture
+  client-secret: kplisa4lJHEIM6knqefVbxln85QbA5NX
+  redirect-uri: http://192.168.12.236:80/social-callback
+  scopes: [openid, email, phone, profile]
\ No newline at end of file
diff --git a/zhitan-admin/src/main/resources/application.yml b/zhitan-admin/src/main/resources/application.yml
index 91a7f23..a128d14 100644
--- a/zhitan-admin/src/main/resources/application.yml
+++ b/zhitan-admin/src/main/resources/application.yml
@@ -17,7 +17,7 @@
 # 寮�鍙戠幆澧冮厤缃�
 server:
   # 鏈嶅姟鍣ㄧ殑HTTP绔彛锛岄粯璁や负8080
-  port: 8080
+  port: 8088
   servlet:
     # 搴旂敤鐨勮闂矾寰�
     context-path: /
@@ -143,7 +143,8 @@
     kickoutAfter: false
 rtdb:
   host: http://127.0.0.1:8086  # 鐢ㄦ埛鍚峳oot 瀵嗙爜12345678
-  token: AminQagYp5rjb09mFPYvriK0T0vlF-zmwboqtUzdcq3nkXNuhnEpMuG_Ht5vtfWC4xBIVOThvoxy5reTer9XcQ==
+  #token: AminQagYp5rjb09mFPYvriK0T0vlF-zmwboqtUzdcq3nkXNuhnEpMuG_Ht5vtfWC4xBIVOThvoxy5reTer9XcQ==
+  token: i8WwVZz3RvkEVF3qGaY8uIDXTFEe2PzjgrKebDzcxlYGKnR-kOK5Hf1S5G4z3p-lc9UO7MQS4qKGL4lIeHSw1A==
   org: lanbao
   bucket: nygl
   measurement: data
diff --git a/zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexStorageServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexStorageServiceImpl.java
index 07ff1b3..f5bf29b 100644
--- a/zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexStorageServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/model/service/impl/IndexStorageServiceImpl.java
@@ -12,89 +12,127 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.List;
-import java.util.UUID;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static org.apache.commons.lang3.StringUtils.equalsIgnoreCase;
 
+/**
+ * 鎸囨爣瀛樺偍鏈嶅姟瀹炵幇绫�
+ */
 @Service
 public class IndexStorageServiceImpl implements IIndexStorageService {
 
-  @Autowired
-  private IndexStorageMapper indexStorageMapper;
-  @Autowired
-  private IndexFormulaService indexFormulaService;
-  @Autowired
-  private IEnergyIndexService energyIndexService;
+    @Autowired
+    private IndexStorageMapper indexStorageMapper;
+    @Autowired
+    private IndexFormulaService indexFormulaService;
+    @Autowired
+    private IEnergyIndexService energyIndexService;
 
-  @Override
-  public void saveIndexStorage(String indexId, List<IndexStorage> indexStorage) {
-    indexStorage.forEach(storage -> {
-      storage.setIndexId(indexId);
-      if (StringUtils.isEmpty(storage.getId())) {
-        storage.setId(UUID.randomUUID().toString());
-        indexStorageMapper.insertIndexStorage(storage);
-      } else {
-        indexStorageMapper.updateIndexStorage(storage);
-      }
-
-      indexStorageMapper.saveParams(storage.getId(), storage.getParamIndex());
-    });
-  }
-
-  @Override
-  @Transactional(rollbackFor = Exception.class)
-  public void saveFormulaAndStorage(IndexFormula indexFormula, List<IndexStorage> indexStorage,
-                                    String indexId) {
-    indexFormulaService.saveIndexFormula(indexFormula);
-    String calcText = indexFormula.getFormulaText();
-    List<String> paramNames = new ArrayList<>();
-    for (IndexFormulaParam param : indexFormula.getIndexFormulaParams()) {
-        calcText = calcText
-                .replace("(" + param.getParamName() + ")", "(" + String.format("'%s'", param.getParamValue()) + ")");
-        paramNames.add(param.getParamValue());
+    /**
+     * 淇濆瓨鎸囨爣瀛樺偍淇℃伅
+     * @param indexId     鎸囨爣ID
+     * @param indexStorage 鎸囨爣瀛樺偍鍒楄〃
+     */
+    @Override
+    public void saveIndexStorage(String indexId, List<IndexStorage> indexStorage) {
+        // 閬嶅巻姣忎釜瀛樺偍瀵硅薄杩涜瀛樺偍鎿嶄綔
+        indexStorage.forEach(storage -> {
+            storage.setIndexId(indexId); // 璁剧疆鎸囨爣ID
+            if (StringUtils.isEmpty(storage.getId())) { // 鏂板璁板綍
+                storage.setId(UUID.randomUUID().toString());
+                indexStorageMapper.insertIndexStorage(storage);
+            } else { // 鏇存柊璁板綍
+                indexStorageMapper.updateIndexStorage(storage);
+            }
+            // 淇濆瓨鍙傛暟鍏宠仈鍏崇郴
+            indexStorageMapper.saveParams(storage.getId(), storage.getParamIndex());
+        });
     }
 
-    List<EnergyIndex> energyIndexList = energyIndexService.getEnergyIndexByCodes(paramNames);
-    List<String> paramIndex = energyIndexList.stream()
-        .map(EnergyIndex::getIndexId)
-        .collect(Collectors.toList());
-    for (IndexStorage storage : indexStorage) {
-      storage.setCalcText(calcText);
-      storage.setIsPvCalc(indexFormula.getIsPvCalc());
-      storage.getParamIndex().addAll(paramIndex);
+    /**
+     * 淇濆瓨鍏紡鍙婂瓨鍌ㄤ俊鎭紙浜嬪姟鏂规硶锛�
+     * @param indexFormula 鍏紡瀵硅薄
+     * @param indexStorage 瀛樺偍鍒楄〃
+     * @param indexId      鎸囨爣ID
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void saveFormulaAndStorage(IndexFormula indexFormula, List<IndexStorage> indexStorage,
+                                     String indexId) {
+        // 1. 淇濆瓨鍏紡淇℃伅
+        indexFormulaService.saveIndexFormula(indexFormula);
+
+        // 2. 澶勭悊鍏紡鏂囨湰鍙傛暟鏇挎崲
+        String calcText = indexFormula.getFormulaText();
+        List<String> paramNames = new ArrayList<>();
+        for (IndexFormulaParam param : indexFormula.getIndexFormulaParams()) {
+            calcText = calcText
+                    .replace("(" + param.getParamName() + ")", "(" + String.format("'%s'", param.getParamValue()) + ")");
+            paramNames.add(param.getParamValue()); // 璁板綍鍙傛暟鍚嶇О
+        }
+
+        // 3. 鑾峰彇鍙傛暟鎸囨爣
+        List<EnergyIndex> energyIndexList = energyIndexService.getEnergyIndexByCodes(paramNames);
+        List<String> paramIndex = energyIndexList.stream()
+                .map(EnergyIndex::getIndexId)
+                .collect(Collectors.toList());
+
+        // 4. 琛ュ厖瀛樺偍瀵硅薄淇℃伅
+        for (IndexStorage storage : indexStorage) {
+            storage.setCalcText(calcText);          // 瀛樺偍璁$畻鍏紡鏂囨湰
+            storage.setIsPvCalc(indexFormula.getIsPvCalc()); // 瀛樺偍瀹炴椂璁$畻鏍囪瘑
+            storage.getParamIndex().addAll(paramIndex); // 娣诲姞鍙傛暟鎸囨爣ID
+        }
+
+        // 5. 淇濆瓨瀛樺偍淇℃伅
+        saveIndexStorage(indexId, indexStorage);
     }
 
-    saveIndexStorage(indexId, indexStorage);
-  }
+    /**
+     * 鏍规嵁鎸囨爣ID鑾峰彇瀛樺偍淇℃伅
+     * @param indexId 鎸囨爣ID
+     * @return 鎸囨爣瀛樺偍鍒楄〃
+     */
+    @Override
+    public List<IndexStorage> getIndexStorage(String indexId) {
+        return indexStorageMapper.getIndexStorage(indexId);
+    }
 
-  @Override
-  public List<IndexStorage> getIndexStorage(String indexId) {
-    return indexStorageMapper.getIndexStorage(indexId);
-  }
+    /**
+     * 鑾峰彇鎵�鏈夎绠楃被瀛樺偍淇℃伅
+     * @return 鍖呭惈鍙傛暟鐨勫瓨鍌ㄥ垪琛�
+     */
+    @Override
+    public List<IndexStorage> getAllCalcIndexStorage() {
+        // 1. 鏌ヨ璁$畻绫诲瀷瀛樺偍
+        List<IndexStorage> indexStorageList = indexStorageMapper.getAllCalcIndexStorage(CalcType.CALC);
 
-  @Override
-  public List<IndexStorage> getAllCalcIndexStorage() {
-    List<IndexStorage> indexStorageList = indexStorageMapper.getAllCalcIndexStorage(CalcType.CALC);
-    List<IndexStorageParam> params = indexStorageMapper.getAllParameter();
-    indexStorageList.forEach(storage -> {
-      List<String> indexIds = params.stream()
-          .filter(f -> equalsIgnoreCase(f.getStorageId(), storage.getId()))
-          .map(IndexStorageParam::getIndexId)
-          .collect(Collectors.toList());
-      if (!indexIds.isEmpty()) {
-        storage.getParamIndex().addAll(indexIds);
-      }
-    });
+        // 2. 鏌ヨ鎵�鏈夊弬鏁颁俊鎭�
+        List<IndexStorageParam> params = indexStorageMapper.getAllParameter();
 
-    return indexStorageList;
-  }
+        // 3. 灏嗗弬鏁颁俊鎭悎骞跺埌瀛樺偍瀵硅薄
+        indexStorageList.forEach(storage -> {
+            List<String> indexIds = params.stream()
+                    .filter(f -> equalsIgnoreCase(f.getStorageId(), storage.getId()))
+                    .map(IndexStorageParam::getIndexId)
+                    .collect(Collectors.toList());
+            if (!indexIds.isEmpty()) {
+                storage.getParamIndex().addAll(indexIds);
+            }
+        });
+        return indexStorageList;
+    }
 
-  @Override
-  public IndexStorage getIndexStorage(String indexId, TimeType timeType) {
-    return indexStorageMapper.getWithTimetype(indexId, timeType);
-  }
-
-}
+    /**
+     * 鏍规嵁鎸囨爣ID鍜屾椂闂寸被鍨嬭幏鍙栫壒瀹氬瓨鍌�
+     * @param indexId    鎸囨爣ID
+     * @param timeType   鏃堕棿绫诲瀷
+     * @return 鎸囧畾鏃堕棿绫诲瀷鐨勫瓨鍌ㄤ俊鎭�
+     */
+    @Override
+    public IndexStorage getIndexStorage(String indexId, TimeType timeType) {
+        return indexStorageMapper.getWithTimetype(indexId, timeType);
+    }
+}
\ No newline at end of file
diff --git a/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java
index 1ce7f2c..3ffd6c1 100644
--- a/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java
+++ b/zhitan-system/src/main/java/com/zhitan/peakvalley/service/impl/PeakValleyServiceImpl.java
@@ -1,6 +1,5 @@
 package com.zhitan.peakvalley.service.impl;
 
-
 import cn.hutool.core.date.DateUtil;
 import com.zhitan.common.enums.ElectricityTypeEnum;
 import com.zhitan.common.enums.TimeType;
@@ -40,10 +39,16 @@
     CostPriceRelevancyMapper costPriceRelevancyMapper;
 
     /**
-     * 鏌ヨ缁熻鏁版嵁
-     *
-     * @param dto 璇锋眰鍙傛暟
-     * @return 缁撴灉
+     * 鏌ヨ灏栧嘲骞宠胺缁熻鏁版嵁
+     * @param dto 璇锋眰鍙傛暟锛屽寘鍚ā鍨嬩唬鐮併�佽妭鐐笽D銆佹煡璇㈡椂闂淬�佹椂闂寸被鍨嬬瓑
+     * @return 鎸夋椂闂存鍒嗛殧鐨勭粺璁$粨鏋滃垪琛�
+     * 
+     * 涓氬姟姝ラ锛�
+     * 1. 鏍规嵁鏌ヨ鏃堕棿纭畾璧锋鏃堕棿鑼冨洿
+     * 2. 鏌ヨ妯″瀷鑺傜偣鍏宠仈鐨勬寚鏍囦俊鎭�
+     * 3. 鏍规嵁鎸囨爣ID闆嗗悎鏌ヨ鍘熷鏁版嵁
+     * 4. 鎸夋椂闂村垎缁勫鐞嗘暟鎹�
+     * 5. 寰幆閬嶅巻鏃堕棿鍖洪棿锛岀粺璁″悇鏃舵鐨勮垂鐢ㄥ拰鐢ㄧ數閲�
      */
     @Override
     public List<PeakValleyHourDataVO> getDataStatistics(ElectricityDataItemListDTO dto) {
@@ -119,6 +124,19 @@
     }
 
 
+    /**
+     * 鎸夊ぉ缁村害杩涜灏栧嘲骞宠胺鍒嗘椂娈靛垎鏋�
+     * @param dto 璇锋眰鍙傛暟锛屽寘鍚ā鍨嬩唬鐮併�佽妭鐐笽D銆佹煡璇㈡椂闂寸瓑
+     * @return 鍖呭惈鏃ョ粺璁℃�昏鍜屽浘琛ㄦ暟鎹殑VO瀵硅薄
+     * 
+     * 涓氬姟姝ラ锛�
+     * 1. 鍒濆鍖栫粺璁″鍣ㄥ拰鏃堕棿鑼冨洿
+     * 2. 鏌ヨ鍏宠仈鎸囨爣骞惰幏鍙栧師濮嬫暟鎹�
+     * 3. 鎸夊ぉ鑱氬悎鏁版嵁骞惰绠楀悇鏃舵璐圭敤鍜岀敤鐢甸噺
+     * 4. 鐢熸垚璐圭敤/鐢ㄧ數閲忔姌绾垮浘鏁版嵁
+     * 5. 璁$畻鎬绘秷鑰楅噺鍙婂悇鏃舵鍗犳瘮
+     * 6. 姹囨�荤敓鎴愭渶缁堢粨鏋滃璞�
+     */
     @Override
     public PeakValleyDayVO segmentAnalysisDay(PeakValleyDTO dto) {
         PeakValleyDayVO peakValleyVO = new PeakValleyDayVO();
@@ -300,6 +318,19 @@
         return peakValleyVO;
     }
 
+    /**
+     * 鎸夊皬鏃剁淮搴﹁繘琛屽皷宄板钩璋峰垎鏃舵鍒嗘瀽
+     * @param dto 璇锋眰鍙傛暟锛屽寘鍚ā鍨嬩唬鐮併�佽妭鐐笽D銆佹煡璇㈡椂闂寸瓑
+     * @return 鍖呭惈灏忔椂绾ф暟鎹拰鍙鍖栧浘琛ㄧ殑VO瀵硅薄
+     * 
+     * 涓氬姟姝ラ锛�
+     * 1. 鍒濆鍖栫粺璁″鍣ㄥ拰鏃堕棿鑼冨洿
+     * 2. 鏌ヨ鍏宠仈鎸囨爣骞惰幏鍙栧師濮嬫暟鎹�
+     * 3. 鎸夊皬鏃剁粺璁″悇鏃舵璐圭敤鍜岀敤鐢甸噺
+     * 4. 鐢熸垚鐢ㄧ數閲忔姌绾垮浘鏁版嵁
+     * 5. 璁$畻鎬荤敤鐢甸噺鍙婂悇鏃舵鍗犳瘮楗煎浘鏁版嵁
+     * 6. 姹囨�荤敓鎴愭渶缁堢粨鏋滃璞�
+     */
     @Override
     public PeakValleyHourVO segmentAnalysisHour(PeakValleyDTO dto) {
         PeakValleyHourVO peakValleyVO = new PeakValleyHourVO();
@@ -413,6 +444,17 @@
         return peakValleyVO;
     }
 
+    /**
+     * 瀵煎嚭灏忔椂绾у皷宄板钩璋峰垎鏋愭暟鎹�
+     * @param dto 璇锋眰鍙傛暟锛屽寘鍚ā鍨嬩唬鐮併�佽妭鐐笽D銆佹煡璇㈡椂闂寸瓑
+     * @return 灏忔椂绾ц缁嗙粺璁℃暟鎹垪琛�
+     * 
+     * 涓氬姟姝ラ锛�
+     * 1. 鍒濆鍖栨椂闂磋寖鍥�
+     * 2. 鏌ヨ鍏宠仈鎸囨爣骞惰幏鍙栧師濮嬫暟鎹�
+     * 3. 鎸夊皬鏃剁粺璁″悇鏃舵鏁版嵁
+     * 4. 鐢熸垚鍙鍑虹殑璇︾粏鏁版嵁鍒楄〃
+     */
     @Override
     public List<PeakValleyHourDataVO> segmentAnalysisHourExport(PeakValleyDTO dto) {
         List<PeakValleyHourDataVO> reportVOList = new ArrayList<>();
@@ -486,6 +528,13 @@
        return reportVOList;
     }
 
+    /**
+     * 鑷畾涔夋椂娈电殑灏栧嘲骞宠胺鍒嗘瀽锛堥鐣欐帴鍙o級
+     * @param dto 璇锋眰鍙傛暟锛屽寘鍚嚜瀹氫箟鏃堕棿鑼冨洿绛�
+     * @return 鍒嗘瀽缁撴灉瀵硅薄
+     * 
+     * 褰撳墠瀹炵幇锛氭殏鏈紑鍙戯紝杩斿洖绌哄��
+     */
     @Override
     public PeakValleyDayVO segmentAnalysisDayCustomize(PeakValleyDTO dto) {
         return null;
diff --git a/zhitan-vue/src/assets/styles/sidebar.scss b/zhitan-vue/src/assets/styles/sidebar.scss
index 0d8d071..d4393a1 100644
--- a/zhitan-vue/src/assets/styles/sidebar.scss
+++ b/zhitan-vue/src/assets/styles/sidebar.scss
@@ -52,7 +52,7 @@
 
       .scrollbar-wrapper {
         overflow-x: hidden !important;
-        height: calc(100% - 290px) !important;
+        height: calc(100% - 194px) !important;
       }
 
       .el-scrollbar__bar.is-vertical {
diff --git a/zhitan-vue/src/components/LeftTree/index.vue b/zhitan-vue/src/components/LeftTree/index.vue
index 79695c5..fa686de 100644
--- a/zhitan-vue/src/components/LeftTree/index.vue
+++ b/zhitan-vue/src/components/LeftTree/index.vue
@@ -64,7 +64,7 @@
     query.value.modelCode = useRoute().query.modelCode;
   } else {
     // 鏈�鍚庝娇鐢ㄩ粯璁ゅ��
-    query.value.modelCode = 'JCZBK_CODE';
+    query.value.modelCode = 'LBJT';
   }
   
   console.log('LeftTree getTree modelCode:', query.value.modelCode);
diff --git a/zhitan-vue/src/layout/components/Navbar.vue b/zhitan-vue/src/layout/components/Navbar.vue
index 45d5917..1bca372 100644
--- a/zhitan-vue/src/layout/components/Navbar.vue
+++ b/zhitan-vue/src/layout/components/Navbar.vue
@@ -53,7 +53,7 @@
 
 function handleAlarm() {
   // 璺宠浆鍒版姤璀︾鐞嗛〉闈�
-  router.push('/alarmmanage/measuremen?modelCode=BJGL')
+  router.push('/alarmmanage/measuremen?modelCode=LBJT')
 }
 
 function handleRobot() {
diff --git a/zhitan-vue/src/layout/index.vue b/zhitan-vue/src/layout/index.vue
index 90aaa04..9be49fd 100644
--- a/zhitan-vue/src/layout/index.vue
+++ b/zhitan-vue/src/layout/index.vue
@@ -86,7 +86,7 @@
 
 // 璺宠浆鍒版姤璀﹂〉闈�
 function goToAlarm() {
-  router.push('/alarmmanage/measuremen?modelCode=BJGL')
+  router.push('/alarmmanage/measuremen?modelCode=LBJT')
 }
 
 // 鎵撳紑AI澶фā鍨嬪璇濇
diff --git a/zhitan-vue/src/views/index.vue b/zhitan-vue/src/views/index.vue
index cb114db..85e2687 100644
--- a/zhitan-vue/src/views/index.vue
+++ b/zhitan-vue/src/views/index.vue
@@ -336,6 +336,7 @@
 })
 const { queryParams } = toRefs(data)
 function handleTimeType(item, type) {
+  console.log("itemtype",item,type)
   queryParams.value.timeType = item
   queryParams.value.type = type
   queryParams.value.dataTime = proxy.dayjs(new Date()).format("YYYY-MM-DD")
diff --git a/zhitan-vue/src/views/modelconfiguration/businessmodel/businessModel.vue b/zhitan-vue/src/views/modelconfiguration/businessmodel/businessModel.vue
index 9598c1d..4a6cd04 100644
--- a/zhitan-vue/src/views/modelconfiguration/businessmodel/businessModel.vue
+++ b/zhitan-vue/src/views/modelconfiguration/businessmodel/businessModel.vue
@@ -126,7 +126,7 @@
     modelInfoOptions.value = response.data
     if (flag) {
       if (modelInfoOptions.value.length > 0) {
-        modelData.value = modelInfoOptions.value[0].modelCode
+        modelData.value = modelInfoOptions.value[1].modelCode
         getTreeList(modelData.value)
       }
     }
diff --git a/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue b/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue
index 8432493..58ce295 100644
--- a/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue
+++ b/zhitan-vue/src/views/modelconfiguration/businessmodel/components/statisticalIndicators/StatisticModal.vue
@@ -110,7 +110,7 @@
 let isFirstLeafNode = ref(false)
 //鑾峰彇鏍戝垪琛�
 function getTreeList() {
-  treeList({ modelCode: "JCZBK_CODE" }).then((res) => {
+  treeList({ modelCode: "LBJT" }).then((res) => {
     let { data } = res
     treeData.value = data
     let chooseNode = null
diff --git a/zhitan-vue/src/views/modelconfiguration/calculationformula/calculationFormula.vue b/zhitan-vue/src/views/modelconfiguration/calculationformula/calculationFormula.vue
index 5488048..0868145 100644
--- a/zhitan-vue/src/views/modelconfiguration/calculationformula/calculationFormula.vue
+++ b/zhitan-vue/src/views/modelconfiguration/calculationformula/calculationFormula.vue
@@ -9,9 +9,9 @@
           <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
           <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
         </el-form-item>
-        <!-- <el-form-item style="float: right">
-          <el-button type="primary" icon="plus" @click="handleAdd">鏂板</el-button>
-        </el-form-item> -->
+<!--        <el-form-item style="float: right">-->
+<!--          <el-button type="primary" icon="plus" @click="handleAdd">鏂板</el-button>-->
+<!--        </el-form-item>-->
       </el-form>
     </div>
     <div class="table-bg-style">
diff --git a/zhitan-vue/src/views/modelconfiguration/indexwarehouse/indexWarehouse.vue b/zhitan-vue/src/views/modelconfiguration/indexwarehouse/indexWarehouse.vue
index a39fc47..77b1022 100644
--- a/zhitan-vue/src/views/modelconfiguration/indexwarehouse/indexWarehouse.vue
+++ b/zhitan-vue/src/views/modelconfiguration/indexwarehouse/indexWarehouse.vue
@@ -83,7 +83,7 @@
 let treeRef = ref()
 let tab = ref(1)
 let treeData = ref([])
-const modelCode = proxy.$route.query.modelCode || "JCZBK_CODE"
+const modelCode = proxy.$route.query.modelCode || "LBJT"
 
 const defaultProps = ref({
   children: "children",
@@ -114,7 +114,7 @@
 let statisticalIndicatorManagementRef = ref(null)
 //鑾峰彇鏍戝垪琛�
 function getTreeList() {
-  treeList({ modelCode: proxy.$route.query.modelCode || "JCZBK_CODE" }).then((res) => {
+  treeList({ modelCode: proxy.$route.query.modelCode || "LBJT" }).then((res) => {
     let { data } = res
     treeData.value = data
     let chooseNode = null
diff --git a/zhitan-vue/src/views/realtimemonitor/realtimemonitor/realtimemonitor.vue b/zhitan-vue/src/views/realtimemonitor/realtimemonitor/realtimemonitor.vue
index f55bb61..fc83e4f 100644
--- a/zhitan-vue/src/views/realtimemonitor/realtimemonitor/realtimemonitor.vue
+++ b/zhitan-vue/src/views/realtimemonitor/realtimemonitor/realtimemonitor.vue
@@ -2,7 +2,7 @@
   <div class="page">
     <div class="page-container">
       <div class="page-container-left">
-        <LeftTree ref="leftTreeRef" @handleNodeClick="handleNodeClick" ParentModelCode="YSCJMX" />
+        <LeftTree ref="leftTreeRef" @handleNodeClick="handleNodeClick" ParentModelCode="LBJT" />
       </div>
       <div class="page-container-right">
         <div class="form-card">
@@ -128,6 +128,7 @@
 const energyTypeList = ref(undefined)
 let energyRealTimeMonitorList = ref([])
 const loading = ref(false)
+const tabIndex = ref(0)
 const data = reactive({
   queryParams: {
     nodeId: null,
@@ -137,6 +138,39 @@
   query: { ...useRoute().query },
 })
 const { queryParams, query } = toRefs(data)
+
+const refresher = () => {
+  console.log("refresher")
+  listEnergyRealTimeMonitor(
+      proxy.addDateRange({
+        ...queryParams.value,
+        ...query.value,
+      })
+  ).then((res) => {
+    if (!!res.code && res.code == 200) {
+      res.data.map((item) => {
+        item.activeIndex = tabIndex.value
+      })
+      energyRealTimeMonitorList.value = res.data
+    }
+  })
+}
+
+// 娣诲姞瀹氭椂鍣�
+let refreshTimer = null
+
+onMounted(() => {
+  refreshTimer = setInterval(() => {
+    refresher()
+  }, 30000)
+})
+
+onBeforeUnmount(() => {
+  if (refreshTimer) {
+    clearInterval(refreshTimer)
+  }
+})
+
 /** 鑺傜偣鍗曞嚮浜嬩欢 */
 function handleNodeClick(data) {
   queryParams.value.nodeId = data.id
@@ -149,6 +183,7 @@
 }
 function handleClick(item, index) {
   item.activeIndex = index
+  tabIndex.value = index
 }
 // 鑳芥簮瀹炴椂鐩戞帶-鑳芥簮瀹炴椂鐩戞帶-鍒楄〃
 function getList() {

--
Gitblit v1.9.3