From 602c6e68101e88d275fe7313495c2009386c1965 Mon Sep 17 00:00:00 2001 From: VVT789 <sdxt_0802@163.com> Date: 星期三, 12 二月 2025 14:04:07 +0800 Subject: [PATCH] 电能质量分析--负荷分析数据获取获取实时数据修改 --- zhitan-system/src/main/java/com/zhitan/model/service/impl/EnergyIndexServiceImpl.java | 6 - /dev/null | 163 ---------------------------------------- zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java | 19 +++- zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java | 2 zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java | 4 zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java | 2 zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml | 17 ++++ zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java | 2 zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java | 4 9 files changed, 41 insertions(+), 178 deletions(-) diff --git a/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java index 337f918..be5615e 100644 --- a/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java +++ b/zhitan-admin/src/main/java/com/zhitan/web/controller/energyMonitor/ElectricLoadController.java @@ -53,7 +53,7 @@ @RequestParam(name = "timeCode") String timeCode) { EnergyIndex energyIndex = energyIndexService.getDeviceIndexByCode(nodeId, meterId, CommonConst.TAG_CODE_ZYGGL); - ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex); + ListElectricLoadVO vo = electricLoadService.list(timeType, timeCode, energyIndex, meterId); return AjaxResult.success(vo); } diff --git a/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java b/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java index c328731..86f476b 100644 --- a/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java +++ b/zhitan-common/src/main/java/com/zhitan/common/constant/CommonConst.java @@ -867,7 +867,7 @@ /** * 鎬绘湁鍔熷姛鐜囩偣浣嶆ā鏉縞ode */ - public static final String TAG_CODE_ZYGGL = "\\_ActivePower_Total"; + public static final String TAG_CODE_ZYGGL = "ActivePow"; /** * 鎬绘湁鍔熷姛鐜囩偣浣嶆ā鏉縞ode */ diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java index 86fcd2c..cfc6098 100644 --- a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java +++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/IElectricLoadService.java @@ -17,7 +17,7 @@ /** * 鑾峰彇璐熻嵎鍒嗘瀽鏁版嵁 */ - ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex); + ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId); /** * 鑾峰彇鑺傜偣涓嬫墍鏈夌數琛� diff --git a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java index 2d2e3b5..6db0d80 100644 --- a/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/energyMonitor/service/impl/ElectricLoadServiceImpl.java @@ -46,7 +46,7 @@ private MeterImplementMapper meterImplementMapper; @Override - public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex) { + public ListElectricLoadVO list(String timeType, String timeCode, EnergyIndex energyIndex, String meterId) { ListElectricLoadVO vo = new ListElectricLoadVO(); List<ListElectricLoadItem> itemList = new ArrayList<>(); vo.setItemList(itemList); @@ -59,7 +59,7 @@ detail.setRate(CommonConst.DOUBLE_MINUS_SIGN); vo.setDetail(detail); - MeterImplement meterImplement = meterImplementMapper.selectById(energyIndex.getMeterId()); + MeterImplement meterImplement = meterImplementMapper.selectById(meterId); if (ObjectUtil.isEmpty(meterImplement)) { return vo; diff --git a/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java b/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java index 3c4928a..3c02acc 100644 --- a/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java +++ b/zhitan-system/src/main/java/com/zhitan/model/mapper/EnergyIndexMapper.java @@ -99,5 +99,7 @@ Page<EnergyIndex> selectEnergyIndexPage(@Param("page")Page<?> page, @Param("query") EnergyIndexQuery energyIndexQuery); - List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId); + List<EnergyIndex> getIndexByCode(@Param("code")String code, @Param("nodeId")String nodeId); + + List<EnergyIndex> getIndexByMeterIdIndexCode(@Param("meterId") String meterId, @Param("indexCode") String indexCode, @Param("nodeId") String nodeId); } 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 aa5f76f..16d8a62 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 @@ -345,10 +345,8 @@ * @return */ public List<EnergyIndex> listDeviceIndexByCode(String nodeId, String meterId, String indexCode) { - return energyIndexMapper.selectList(Wrappers.<EnergyIndex>lambdaQuery() - .eq(EnergyIndex::getNodeId, nodeId) - .eq(EnergyIndex::getMeterId, meterId) - .like(EnergyIndex::getCode, indexCode)); + List<EnergyIndex> energyIndexList = energyIndexMapper.getIndexByMeterIdIndexCode(meterId,indexCode,nodeId); + return energyIndexList; } /** diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java deleted file mode 100644 index f3914ff..0000000 --- a/zhitan-system/src/main/java/com/zhitan/realtimedata/data/RealtimeDatabaseManager.java +++ /dev/null @@ -1,163 +0,0 @@ -package com.zhitan.realtimedata.data; - -import com.influxdb.client.InfluxDBClient; -import com.influxdb.client.InfluxDBClientFactory; -import com.influxdb.client.domain.HealthCheck; -import com.zhitan.common.enums.CollectionModes; -import com.zhitan.common.enums.RetrievalModes; -import com.zhitan.realtimedata.config.RtdbConfig; -import com.zhitan.realtimedata.domain.TagValue; -import com.zhitan.realtimedata.service.RealtimeDatabase; -import org.apache.commons.lang3.StringUtils; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.springframework.stereotype.Component; - -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Optional; - -/** - * @author 鑼冩柊瀵� 瀹炴椂鏁版嵁搴撹闂鐞�. - */ -@Component -public class RealtimeDatabaseManager { - - private final RealtimeDatabase connection; - - private final Logger logger = LogManager.getLogger(RealtimeDatabaseManager.class); - - public RealtimeDatabaseManager(RtdbConfig config) { - connection = new VirtualRtdb(); - try { - InfluxDBClient influxDBClient = InfluxDBClientFactory.create(config.getHost(), - config.getToken().toCharArray(), config.getOrg(), config.getBucket()); - - logger.error("--------------------瀹炴椂搴撹繛鎺ユ垚鍔�--------------------"); - HealthCheck health = influxDBClient.health(); - if (health.getStatus() == HealthCheck.StatusEnum.FAIL) { - influxDBClient.close(); - } - } catch (Exception e) { - logger.error(e); - } - } - - public TagValue retrieve(String tagCode) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - List<TagValue> tagValues = retrieve(tagCodes); - if (!tagValues.isEmpty()) { - return tagValues.get(0); - } - - return null; - } - - public List<TagValue> retrieve(List<String> tagCodes) { - List<TagValue> tagValues = new ArrayList<>(); - try { - tagValues = connection.retrieve(tagCodes); - } catch (Exception e) { - logger.error(e); - } - - return tagValues; - } - - public TagValue retrieve(String tagCode, Date dataTime, String timeCode) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - List<TagValue> tagValues = retrieve(tagCodes, dataTime, timeCode); - if (!tagValues.isEmpty()) { - return tagValues.get(0); - } - - return null; - } - - public List<TagValue> retrieve(List<String> tagCodes, Date dataTime, String timeCode) { - List<TagValue> tagValues = new ArrayList<>(); - try { - List<TagValue> tmp = connection.retrieve(tagCodes, dataTime, timeCode); - for (String tagCode : tagCodes) { - Optional<TagValue> tagValue = tmp.stream() - .filter(f -> StringUtils.equalsIgnoreCase(f.getTagCode(), tagCode)).findAny(); - TagValue value; - if (!tagValue.isPresent()) { - value = new TagValue(); - value.setTagCode(tagCode); - value.setDataTime(dataTime); - } else { - value = tagValue.get(); - } - - tagValues.add(value); - } - } catch (Exception e1) { - logger.error(e1); - } - - return tagValues; - } - - public List<TagValue> retrieve(String tagCode, Date beginTime, Date endTime, - RetrievalModes retrievalModes, int pointCount) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - return retrieve(tagCodes, beginTime, endTime, retrievalModes, pointCount); - } - - public List<TagValue> retrieve(List<String> tagCodes, Date beginTime, Date endTime, - RetrievalModes retrievalModes, int pointCount) { - List<TagValue> tagValues = new ArrayList<>(); - try { - tagValues = connection.retrieve(tagCodes, beginTime, endTime, retrievalModes, pointCount); - } catch (Exception e1) { - logger.error(e1); - } - - return tagValues; - } - - public TagValue statistics(String tagCode, Date beginTime, Date endTime, - CollectionModes collectionModes) { - List<String> tagCodes = new ArrayList<>(); - tagCodes.add(tagCode); - List<TagValue> tagValues = statistics(tagCodes, beginTime, endTime, collectionModes); - if (!tagValues.isEmpty()) { - return tagValues.get(0); - } - - return null; - } - - public List<TagValue> statistics(List<String> tagCodes, Date beginTime, Date endTime, - CollectionModes collectionModes) { - List<TagValue> tagValues = new ArrayList<>(); - try { - tagValues = connection.statistics(tagCodes, beginTime, endTime, collectionModes); - } catch (Exception e1) { - logger.error(e1); - } - - return tagValues; - } - - public void storeData(List<TagValue> tagValues) { - try { - connection.storeData(tagValues); - } catch (Exception e1) { - logger.error(e1); - } - } - - public void insertData(List<TagValue> tagValues) { - try { - connection.insertData(tagValues); - } catch (Exception e1) { - logger.error(e1); - } - } -} diff --git a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java index 9e16113..eaddd6d 100644 --- a/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java +++ b/zhitan-system/src/main/java/com/zhitan/realtimedata/service/impl/RealtimeDatabaseServiceImpl.java @@ -6,11 +6,12 @@ import com.zhitan.common.enums.CollectionModes; import com.zhitan.common.enums.GroupTimeType; import com.zhitan.common.enums.RetrievalModes; -import com.zhitan.realtimedata.data.RealtimeDatabaseManager; import com.zhitan.realtimedata.data.influxdb.InfluxDBRepository; import com.zhitan.realtimedata.domain.TagValue; import com.zhitan.realtimedata.service.RealtimeDatabaseService; import org.apache.commons.collections4.CollectionUtils; +import org.joda.time.DateTime; +import org.joda.time.Seconds; import org.springframework.stereotype.Service; import java.util.*; @@ -23,11 +24,10 @@ private final InfluxDBRepository repository; - private final RealtimeDatabaseManager realtimeDatabaseManager; - public RealtimeDatabaseServiceImpl(InfluxDBRepository repository, RealtimeDatabaseManager realtimeDatabaseManager) { + public RealtimeDatabaseServiceImpl(InfluxDBRepository repository + ) { this.repository = repository; - this.realtimeDatabaseManager = realtimeDatabaseManager; } /** @@ -169,6 +169,15 @@ @Override public List<TagValue> retrieve(String tagCode, Date beginTime, Date endTime, RetrievalModes retrievalModes, int pointCount) { - return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount); + repository.getHistoryData(Collections.singletonList(tagCode), beginTime, endTime, pointCount); + pointCount = retrievalModes == RetrievalModes.Full ? 200 : pointCount; + int span = + Seconds.secondsBetween(new DateTime(beginTime), new DateTime(endTime)).getSeconds(); + int interval = span / pointCount; + List<String> tagCodes = new ArrayList<>(); + tagCodes.add(tagCode); + List<TagValue> historyData = repository.getHistoryData(tagCodes, beginTime, endTime, interval); + return historyData; +// return realtimeDatabaseManager.retrieve(tagCode, beginTime, endTime, retrievalModes, pointCount); } } diff --git a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml index 3ea43ac..78d0144 100644 --- a/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml +++ b/zhitan-system/src/main/resources/mapper/model/EnergyIndexMapper.xml @@ -391,4 +391,21 @@ </if> </where> </select> + <select id="getIndexByMeterIdIndexCode" resultType="com.zhitan.model.domain.EnergyIndex"> + SELECT ei.code,mi.meter_name||'_'||ei.name as name from energy_index ei + LEFT JOIN node_device nd on ei.meter_id = nd.device_id + LEFT JOIN meter_implement mi on mi."id" = nd.device_id + <where> + <if test="nodeId != null and nodeId != ''">and nd.node_id = #{nodeId}</if> + <if test="indexCode != null and indexCode != ''"> + and (mi.meter_name like concat('%', #{indexCode}, '%') + or ei.code like concat('%', #{indexCode}, '%') + or ei.name like concat('%', #{indexCode}, '%') + ) + </if> + <if test="meterId != null and meterId != ''"> + and ei.meter_id = #{meterId} + </if> + </where> + </select> </mapper> -- Gitblit v1.9.3