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/model/service/impl/IndexStorageServiceImpl.java |  178 ++++++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 108 insertions(+), 70 deletions(-)

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

--
Gitblit v1.9.3