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