From f187e89588c150d10f9415f2f265be7cf419b6b5 Mon Sep 17 00:00:00 2001 From: xy <748613696@qq.com> Date: Wed, 3 Jun 2026 10:12:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(influx):=20=E6=B7=BB=E5=8A=A0=E7=94=B5?= =?UTF-8?q?=E5=BA=A6=E5=A2=9E=E9=87=8F=E6=95=B0=E6=8D=AE=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 CommonService 中新增 getDianDuData 方法接口 - 实现电度增量数据查询的具体逻辑 - 添加对多个查询参数的循环处理支持 - 集成 InfluxDB 差值计算功能 - 处理查询结果的数据转换和格式化 - 添加对空集合的安全检查和处理 --- .../njcn/influx/service/CommonService.java | 7 +++++ .../service/impl/CommonServiceImpl.java | 30 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/src/main/java/com/njcn/influx/service/CommonService.java b/src/main/java/com/njcn/influx/service/CommonService.java index b5948a3..5dd1197 100644 --- a/src/main/java/com/njcn/influx/service/CommonService.java +++ b/src/main/java/com/njcn/influx/service/CommonService.java @@ -89,4 +89,11 @@ public interface CommonService { StatisticalDataDTO getDataCounts(String lineId, String tableName, String columnName,String resultName, String phasic, String dataType, String clDid, String process,String startTime, String endTime); List getModuleData(CommonQueryParam param); + + /** + * 电度增量数据查询 + * @param commonQueryParams + * @return + */ + List getDianDuData(List commonQueryParams); } diff --git a/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java b/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java index dc00039..99a81b2 100644 --- a/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java +++ b/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.influx.service.impl; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import com.njcn.influx.imapper.CommonMapper; import com.njcn.influx.pojo.bo.CommonQueryParam; @@ -213,4 +214,33 @@ public class CommonServiceImpl implements CommonService { .eq(InfluxDBTableConstant.CL_DID,param.getClDid()); return commonMapper.getDeviceRtDataByTime(influxQueryWrapper); } + + @Override + public List getDianDuData(List commonQueryParams) { + List resultList = new ArrayList<>(); + for (CommonQueryParam commonQueryParam: commonQueryParams) { + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(commonQueryParam.getTableName(), StatisticalDataDTO.class); + influxQueryWrapper.difference(commonQueryParam.getColumnName()) + .eq(InfluxDBTableConstant.LINE_ID, commonQueryParam.getLineId()) + .eq(InfluxDBTableConstant.PHASIC_TYPE, commonQueryParam.getPhasic()) + .between(InfluxDBTableConstant.TIME, commonQueryParam.getStartTime(), commonQueryParam.getEndTime()) + .eq(InfluxDBTableConstant.CL_DID, commonQueryParam.getClDid()); + if (commonQueryParam.getDataType() != null) { + influxQueryWrapper.eq(InfluxDBTableConstant.VALUE_TYPE, commonQueryParam.getDataType()); + } + if (commonQueryParam.getProcess() != null) { + influxQueryWrapper.eq(InfluxDBTableConstant.PROCESS, commonQueryParam.getProcess()); + } + List deviceRtData = commonMapper.getDeviceRtDataByTime(influxQueryWrapper); + if (CollUtil.isNotEmpty(deviceRtData)) { + deviceRtData.forEach(item -> { + item.setLineId(commonQueryParam.getLineId()); + item.setPhaseType(commonQueryParam.getPhasic()); + item.setValueType("AVG"); + }); + } + resultList.addAll(deviceRtData); + } + return resultList; + } }