将influx查询的所需两个参数tableName、cldid对应的两个方法getTableNameByClassId、getClDidByLineId整合工具类(InfluxDbParamUtil)统一调用

This commit is contained in:
guofeihu
2024-08-09 14:06:34 +08:00
parent c2e076a952
commit 14bc4e9dd8
8 changed files with 175 additions and 191 deletions

View File

@@ -12,6 +12,7 @@ import com.njcn.csdevice.pojo.po.CsLedger;
import com.njcn.csharmonic.param.DevicDataTrendQueryParam;
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
import com.njcn.csharmonic.service.DeviceDataTrendService;
import com.njcn.csharmonic.util.InfluxDbParamUtil;
import com.njcn.influx.pojo.bo.CommonQueryParam;
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
import com.njcn.influx.service.CommonService;
@@ -47,6 +48,7 @@ public class DeviceDataTrendServiceImpl implements DeviceDataTrendService {
private final CsLineFeignClient csLineFeignClient;
private final DicDataFeignClient dicDataFeignClient;
private final EquipmentFeignClient equipmentFeignClient;
private final InfluxDbParamUtil influxDbParamUtil;
@Override
public List<List<ThdDataVO>> queryDataTrend(DevicDataTrendQueryParam devicDataTrendQueryParam) {
List<List<ThdDataVO>> result = new ArrayList<>();
@@ -61,14 +63,14 @@ public class DeviceDataTrendServiceImpl implements DeviceDataTrendService {
devicDataTrendQueryParam.getStatisticalParams().forEach(temp->{
CommonQueryParam commonQueryParam = new CommonQueryParam();
commonQueryParam.setLineId(devicDataTrendQueryParam.getLineId());
commonQueryParam.setTableName(getTableNameByClassId(temp.getClassId()));
commonQueryParam.setTableName(influxDbParamUtil.getTableNameByClassId(temp.getClassId()));
commonQueryParam.setColumnName(temp.getName());
commonQueryParam.setPhasic(temp.getPhase());
commonQueryParam.setStartTime( devicDataTrendQueryParam.getStartTime());
commonQueryParam.setEndTime(devicDataTrendQueryParam.getEndTime());
commonQueryParam.setDataType( temp.getStatMethod());
commonQueryParam.setProcess(data1.get(0).getProcess()+"");
commonQueryParam.setClDid(getClDidByLineId(devicDataTrendQueryParam.getLineId()));
commonQueryParam.setClDid(influxDbParamUtil.getClDidByLineId(devicDataTrendQueryParam.getLineId()));
@@ -94,30 +96,4 @@ public class DeviceDataTrendServiceImpl implements DeviceDataTrendService {
return result;
}
/*表名换成了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;
}
}

View File

@@ -14,6 +14,7 @@ import com.njcn.csharmonic.pojo.dto.ZuTaiDTO;
import com.njcn.csharmonic.pojo.vo.CsRtDataVO;
import com.njcn.csharmonic.service.CsPagePOService;
import com.njcn.csharmonic.service.ILineTargetService;
import com.njcn.csharmonic.util.InfluxDbParamUtil;
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
import com.njcn.influx.service.CommonService;
import com.njcn.oss.utils.FileStorageUtil;
@@ -68,6 +69,8 @@ public class LineTargetServiceImpl implements ILineTargetService {
private final DicDataFeignClient dicDataFeignClient;
private final InfluxDbParamUtil influxDbParamUtil;
@Override
public List<DataArrayTreeVO> getLineTarget(String lineId) {
List<String> setList = new ArrayList<>();
@@ -118,7 +121,7 @@ public class LineTargetServiceImpl implements ILineTargetService {
String targetName = dataArray.getAnotherName();
String dataId = dataArray.getDataId();
String classId = epdFeignClient.selectById(dataId).getData().getClassId();
String clDid = getClDid(item.getLineId().get(3));
String clDid = influxDbParamUtil.getClDidByLineId(item.getLineId().get(3));
result.add(getLineRtData(item.getId(),item.getLineId().get(3),classId,targetTag,phasic,dataType,targetName,clDid));
}
});
@@ -137,26 +140,6 @@ public class LineTargetServiceImpl implements ILineTargetService {
return gson.fromJson(text, new TypeToken<ZuTaiDTO>(){}.getType());
}
/**
* 获取cldid
*/
public String getClDid(String line) {
String position = csLineFeignClient.getPositionById(line).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;
}
/**
* 通过orm框架获取数据
* @param id 图元Id

View File

@@ -16,6 +16,7 @@ import com.njcn.csharmonic.param.FrequencyStatisticalQueryParam;
import com.njcn.csharmonic.param.ThdDataQueryParm;
import com.njcn.csharmonic.pojo.vo.ThdDataVO;
import com.njcn.csharmonic.service.StableDataService;
import com.njcn.csharmonic.util.InfluxDbParamUtil;
import com.njcn.influx.constant.InfluxDbSqlConstant;
import com.njcn.influx.pojo.bo.CommonQueryParam;
import com.njcn.influx.pojo.dto.StatisticalDataDTO;
@@ -66,7 +67,7 @@ public class StableDataServiceImpl implements StableDataService {
private final DicDataFeignClient dicDataFeignClient;
private final InfluxDbUtils influxDbUtils;
private final CsStatisticalSetFeignClient csStatisticalSetFeignClient;
private final InfluxDbParamUtil influxDbParamUtil;
private final EquipmentFeignClient equipmentFeignClient;
@@ -208,14 +209,14 @@ public class StableDataServiceImpl implements StableDataService {
List<CommonQueryParam> commonQueryParams = csLinePOList1.stream().map(temp -> {
CommonQueryParam commonQueryParam = new CommonQueryParam();
commonQueryParam.setLineId(temp.getLineId());
commonQueryParam.setTableName(getTableNameByClassId(data.getClassId()));
commonQueryParam.setTableName(influxDbParamUtil.getTableNameByClassId(data.getClassId()));
commonQueryParam.setColumnName(data.getName()+ finalFrequency1);
commonQueryParam.setPhasic(data.getPhase());
// commonQueryParam.setStartTime();
// commonQueryParam.setEndTime();
commonQueryParam.setDataType(commonStatisticalQueryParam.getValueType());
commonQueryParam.setProcess(data1.get(0).getProcess()+"");
commonQueryParam.setClDid(getClDidByLineId(temp.getLineId()));
commonQueryParam.setClDid(influxDbParamUtil.getClDidByLineId(temp.getLineId()));
return commonQueryParam;
}).collect(Collectors.toList());
@@ -277,14 +278,14 @@ public class StableDataServiceImpl implements StableDataService {
List<CommonQueryParam> commonQueryParams = csLinePOList1.stream().map(temp -> {
CommonQueryParam commonQueryParam = new CommonQueryParam();
commonQueryParam.setLineId(temp.getLineId());
commonQueryParam.setTableName(getTableNameByClassId(epdPqd.getClassId()));
commonQueryParam.setTableName(influxDbParamUtil.getTableNameByClassId(epdPqd.getClassId()));
commonQueryParam.setColumnName(epdPqd.getName()+ finalFrequency1);
commonQueryParam.setPhasic(epdPqd.getPhase());
commonQueryParam.setStartTime(commonStatisticalQueryParam.getStartTime());
commonQueryParam.setEndTime(commonStatisticalQueryParam.getEndTime());
commonQueryParam.setDataType(commonStatisticalQueryParam.getValueType());
commonQueryParam.setProcess(data1.get(0).getProcess()+"");
commonQueryParam.setClDid(getClDidByLineId(temp.getLineId()));
commonQueryParam.setClDid(influxDbParamUtil.getClDidByLineId(temp.getLineId()));
return commonQueryParam;
}).collect(Collectors.toList());
@@ -476,30 +477,4 @@ public class StableDataServiceImpl implements StableDataService {
}
return thdDataVOList;
}
/*表名换成了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;
}
}

View File

@@ -0,0 +1,69 @@
package com.njcn.csharmonic.util;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.constant.DataParam;
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
import com.njcn.csdevice.pojo.dto.CsEquipmentDeliveryDTO;
import com.njcn.csdevice.pojo.po.CsLinePO;
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.Component;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Component
@RequiredArgsConstructor
public class InfluxDbParamUtil {
private final CsLineFeignClient csLineFeignClient;
private final DicDataFeignClient dicDataFeignClient;
private final EquipmentFeignClient equipmentFeignClient;
/*表名换成了id本方法做转换*/
public String getTableNameByClassId(String classId){
DictData data = dicDataFeignClient.getDicDataById(classId).getData();
if(Objects.isNull(data)){
throw new BusinessException(AlgorithmResponseEnum.DATA_MISSING.getMessage());
}
return data.getCode();
}
public String getClDidByLineId(String lineId){
List<CsLinePO> finalCsLinePOList = csLineFeignClient.queryLineById(Arrays.asList(lineId)).getData();
if(finalCsLinePOList == null || finalCsLinePOList.isEmpty()){
throw new BusinessException(AlgorithmResponseEnum.DATA_MISSING.getMessage());
}
List<CsEquipmentDeliveryDTO> csEquipmentDeliveryDTOList = equipmentFeignClient.queryDeviceById(Stream.of(finalCsLinePOList.get(0).getDeviceId()).collect(Collectors.toList())).getData();
if(csEquipmentDeliveryDTOList == null || csEquipmentDeliveryDTOList.isEmpty()){
throw new BusinessException(AlgorithmResponseEnum.DATA_MISSING.getMessage());
}
//新增逻辑:如果是便携式设备的话 直接返回便携式测点的cldid
if(DataParam.portableDevType.equals(csEquipmentDeliveryDTOList.get(0).getDevType())){
return finalCsLinePOList.get(0).getClDid()+"";
}
//之后的逻辑还是按照原来的不变
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;
}
}