将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

@@ -0,0 +1,69 @@
package com.njcn.csdevice.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;
}
}