From 4fbf73af40ee537c9bc0fc85e61435e839cb85cd Mon Sep 17 00:00:00 2001 From: hzj <826100833@qq.com> Date: Wed, 24 Jan 2024 15:06:56 +0800 Subject: [PATCH] =?UTF-8?q?ifnluxdb=E6=A8=A1=E5=9D=97=E4=BB=A3=E7=A0=81?= =?UTF-8?q?=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pqs-influx/pom.xml | 10 --- .../njcn/influx/pojo/bo/CommonQueryParam.java | 24 ++++++ .../njcn/influx/service/CommonService.java | 18 +---- .../service/impl/CommonServiceImpl.java | 77 ++++++------------- .../influx/service/impl/DataVServiceImpl.java | 20 ++++- 5 files changed, 68 insertions(+), 81 deletions(-) create mode 100644 pqs-influx/src/main/java/com/njcn/influx/pojo/bo/CommonQueryParam.java diff --git a/pqs-influx/pom.xml b/pqs-influx/pom.xml index 39c393ebe..d8ca3299a 100644 --- a/pqs-influx/pom.xml +++ b/pqs-influx/pom.xml @@ -22,16 +22,6 @@ influxdb-springboot-starter 1.0.0 - - com.njcn - system-api - 1.0.0 - - - com.njcn - cs-device-api - 1.0.0 - diff --git a/pqs-influx/src/main/java/com/njcn/influx/pojo/bo/CommonQueryParam.java b/pqs-influx/src/main/java/com/njcn/influx/pojo/bo/CommonQueryParam.java new file mode 100644 index 000000000..59d6ede22 --- /dev/null +++ b/pqs-influx/src/main/java/com/njcn/influx/pojo/bo/CommonQueryParam.java @@ -0,0 +1,24 @@ +package com.njcn.influx.pojo.bo; + +import lombok.Data; + +/** + * Description: + * Date: 2024/1/24 9:05【需求编号】 + * + * @author clam + * @version V1.0.0 + */ +@Data +public class CommonQueryParam { + private String lineId; + private String tableName; + private String columnName; + private String phasic; + private String startTime; + private String endTime; + private String dataType; + private String process; + private String clDid; + +} diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java b/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java index dd4d83242..4a170651f 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java +++ b/pqs-influx/src/main/java/com/njcn/influx/service/CommonService.java @@ -1,5 +1,6 @@ package com.njcn.influx.service; +import com.njcn.influx.pojo.bo.CommonQueryParam; import com.njcn.influx.pojo.dto.StatisticalDataDTO; import java.util.List; @@ -28,28 +29,17 @@ public interface CommonService { /** * 根据条件获取监测点数据 * - * @param lineIds 监测点Id - * @param tableName 表名 - * @param columnName 字段名 - * @param phasic 相别 - * @param dataType 数据类型 */ - List getDeviceRtData(List lineIds, String tableName, String columnName, String phasic, String dataType,String process); + List getDeviceRtData(List commonQueryParams); /** - * @param lineIds 监测点Id - * @param tableName 表名 - * @param columnName 字段名 - * @param phasic 相别 - * @param dataType 数据类型 - * @param startTime start time - * @param endTime end time + * @Description: getDeviceRtDataByTime * @return: java.util.List * @Author: clam * @Date: 2023/6/13 */ - List getDeviceRtDataByTime(List lineIds, String tableName, String columnName, String phasic, String dataType, String startTime, String endTime,String process); + List getDeviceRtDataByTime(List commonQueryParams); /** * 根据条件获取监测点时间范围内的最大最小值 diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java index cb548447d..a2bb79458 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/CommonServiceImpl.java @@ -1,22 +1,16 @@ package com.njcn.influx.service.impl; -import com.njcn.common.pojo.exception.BusinessException; -import com.njcn.csdevice.api.CsLineFeignClient; -import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.influx.imapper.CommonMapper; +import com.njcn.influx.pojo.bo.CommonQueryParam; import com.njcn.influx.pojo.constant.InfluxDBTableConstant; import com.njcn.influx.pojo.dto.StatisticalDataDTO; import com.njcn.influx.query.InfluxQueryWrapper; import com.njcn.influx.service.CommonService; -import com.njcn.system.api.DicDataFeignClient; -import com.njcn.system.enums.DicDataEnum; -import com.njcn.system.pojo.po.DictData; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; -import java.util.Objects; /** * Description: @@ -31,12 +25,9 @@ public class CommonServiceImpl implements CommonService { private final CommonMapper commonMapper; - private final DicDataFeignClient dicDataFeignClient; - - private final CsLineFeignClient csLineFeignClient; @Override public StatisticalDataDTO getLineRtData(String lineId, String tableName, String columnName, String phasic, String dataType, String clDid) { - InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class); + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(tableName,StatisticalDataDTO.class); influxQueryWrapper.select(StatisticalDataDTO::getLineId) .select(StatisticalDataDTO::getPhaseType) .select(StatisticalDataDTO::getValueType) @@ -49,19 +40,18 @@ public class CommonServiceImpl implements CommonService { } @Override - public List getDeviceRtData(List lineIds, String tableName, String columnName, String phasic, String dataType,String process) { + public List getDeviceRtData(List commonQueryParams) { List resultList = new ArrayList<>(); - for (String lineId: lineIds) { - String clDidByLineId = getClDidByLineId(lineId); - InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class); + for (CommonQueryParam commonQueryParam: commonQueryParams) { + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(commonQueryParam.getTableName(),StatisticalDataDTO.class); influxQueryWrapper.select(StatisticalDataDTO::getLineId) .select(StatisticalDataDTO::getPhaseType) .select(StatisticalDataDTO::getValueType) - .last(columnName,InfluxDBTableConstant.VALUE) - .eq(InfluxDBTableConstant.LINE_ID,lineId) - .eq(InfluxDBTableConstant.PROCESS,process) - .eq(InfluxDBTableConstant.PHASIC_TYPE,phasic) - .eq(InfluxDBTableConstant.VALUE_TYPE,dataType).eq(InfluxDBTableConstant.CL_DID,clDidByLineId); + .last(commonQueryParam.getColumnName(),InfluxDBTableConstant.VALUE) + .eq(InfluxDBTableConstant.LINE_ID,commonQueryParam.getLineId()) + .eq(InfluxDBTableConstant.PROCESS,commonQueryParam.getProcess()) + .eq(InfluxDBTableConstant.PHASIC_TYPE,commonQueryParam.getPhasic()) + .eq(InfluxDBTableConstant.VALUE_TYPE,commonQueryParam.getDataType()).eq(InfluxDBTableConstant.CL_DID,commonQueryParam.getClDid()); List deviceRtData = commonMapper.getDeviceRtData(influxQueryWrapper); resultList.addAll(deviceRtData); } @@ -70,20 +60,19 @@ public class CommonServiceImpl implements CommonService { } @Override - public List getDeviceRtDataByTime(List lineIds, String tableName, String columnName, String phasic, String dataType, String startTime, String endTime,String process) { + public List getDeviceRtDataByTime(List commonQueryParams) { List resultList = new ArrayList<>(); - for (String lineId: lineIds) { - String clDidByLineId = getClDidByLineId(lineId); - InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class); + for (CommonQueryParam commonQueryParam: commonQueryParams) { + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(commonQueryParam.getTableName(), StatisticalDataDTO.class); influxQueryWrapper.select(StatisticalDataDTO::getLineId) .select(StatisticalDataDTO::getPhaseType) .select(StatisticalDataDTO::getValueType) - .select(columnName,InfluxDBTableConstant.VALUE) - .eq(InfluxDBTableConstant.LINE_ID,lineId) - .eq(InfluxDBTableConstant.PHASIC_TYPE,phasic) - .eq(InfluxDBTableConstant.PROCESS,process) - .between(InfluxDBTableConstant.TIME, startTime, endTime) - .eq(InfluxDBTableConstant.VALUE_TYPE,dataType).eq(InfluxDBTableConstant.CL_DID,clDidByLineId); + .select(commonQueryParam.getColumnName(), InfluxDBTableConstant.VALUE) + .eq(InfluxDBTableConstant.LINE_ID, commonQueryParam.getLineId()) + .eq(InfluxDBTableConstant.PHASIC_TYPE, commonQueryParam.getPhasic()) + .eq(InfluxDBTableConstant.PROCESS, commonQueryParam.getProcess()) + .between(InfluxDBTableConstant.TIME, commonQueryParam.getStartTime(), commonQueryParam.getEndTime()) + .eq(InfluxDBTableConstant.VALUE_TYPE, commonQueryParam.getDataType()).eq(InfluxDBTableConstant.CL_DID, commonQueryParam.getClDid()); List deviceRtData = commonMapper.getDeviceRtDataByTime(influxQueryWrapper); resultList.addAll(deviceRtData); } @@ -93,7 +82,7 @@ public class CommonServiceImpl implements CommonService { @Override public StatisticalDataDTO getLineHistoryData(String lineId, String tableName, String columnName, String startTime, String endTime, String clDid) { - InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(getTableNameByClassId(tableName),StatisticalDataDTO.class); + InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(tableName,StatisticalDataDTO.class); influxQueryWrapper.max(columnName,InfluxDBTableConstant.MAX_VALUE) .min(columnName,InfluxDBTableConstant.MIN_VALUE) .mean(columnName,InfluxDBTableConstant.AVG_VALUE) @@ -120,28 +109,6 @@ public class CommonServiceImpl implements CommonService { return commonMapper.getTopTemperature(influxQueryWrapper); } - /*表名换成了id本方法做转换*/ - private String getTableNameByClassId(String classId){ - DictData data = dicDataFeignClient.getDicDataById(classId).getData(); - if(Objects.isNull(data)){ - throw new BusinessException("数据缺失"); - } - return data.getCode(); - } - private String getClDidByLineId(String lineId){ - String position = csLineFeignClient.getPositionById(lineId).getData(); - if (Objects.isNull(position)){ - throw new BusinessException(AlgorithmResponseEnum.POSITION_ERROR); - } - String clDid = null; - String areaCode = dicDataFeignClient.getDicDataById(position).getData().getCode(); - if (Objects.equals(areaCode, DicDataEnum.OUTPUT_SIDE.getCode())){ - clDid = "0"; - } else if (Objects.equals(areaCode, DicDataEnum.GRID_SIDE.getCode())){ - clDid = "1"; - } else if (Objects.equals(areaCode, DicDataEnum.LOAD_SIDE.getCode())){ - clDid = "2"; - } - return clDid; - } + + } diff --git a/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataVServiceImpl.java b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataVServiceImpl.java index e5bb376f9..2ad2dcec4 100644 --- a/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataVServiceImpl.java +++ b/pqs-influx/src/main/java/com/njcn/influx/service/impl/DataVServiceImpl.java @@ -1,6 +1,5 @@ package com.njcn.influx.service.impl; -import com.njcn.common.utils.HarmonicTimesUtil; import com.njcn.influx.imapper.DataVMapper; import com.njcn.influx.pojo.po.DataV; import com.njcn.influx.query.InfluxQueryWrapper; @@ -8,6 +7,7 @@ import com.njcn.influx.service.IDataVService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; /** @@ -28,7 +28,7 @@ public class DataVServiceImpl implements IDataVService { //最小值 List result1 ; InfluxQueryWrapper influxQueryWrapper = new InfluxQueryWrapper(DataV.class); - influxQueryWrapper.minSamePrefixAndSuffix("v_","", HarmonicTimesUtil.harmonicTimesList(1,50,1)); + influxQueryWrapper.minSamePrefixAndSuffix("v_","", this.harmonicTimesList(1,50,1)); influxQueryWrapper.eq(DataV::getLineId, lineIndex) .eq(DataV::getValueType, "MIN") .min(DataV::getFreq) @@ -60,4 +60,20 @@ public class DataVServiceImpl implements IDataVService { result1 = dataVMapper.getStatisticsByWraper(influxQueryWrapper); return result1; } + + /*** + * 自定义需要查询的谐波次数 + * @author xuyang + * @param start 起始次数@Min(value = 1) @Max(value = 100) + * @param end 结束次数 @Min(value = 1) @Max(value = 100) + * @param interval 间隔 + * @return List + */ + public List harmonicTimesList(Integer start, Integer end, Integer interval) { + List timesList = new ArrayList<>(); + for (int i = start; i <= end;i = i+interval) { + timesList.add(i); + } + return timesList; + } }