From 14bc4e9dd85c18432c3b8ad852faf0aea4bb906c Mon Sep 17 00:00:00 2001 From: guofeihu <3347277866@qq.com> Date: Fri, 9 Aug 2024 14:06:34 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86influx=E6=9F=A5=E8=AF=A2=E7=9A=84?= =?UTF-8?q?=E6=89=80=E9=9C=80=E4=B8=A4=E4=B8=AA=E5=8F=82=E6=95=B0tableName?= =?UTF-8?q?=E3=80=81cldid=E5=AF=B9=E5=BA=94=E7=9A=84=E4=B8=A4=E4=B8=AA?= =?UTF-8?q?=E6=96=B9=E6=B3=95getTableNameByClassId=E3=80=81getClDidByLineI?= =?UTF-8?q?d=E6=95=B4=E5=90=88=E5=B7=A5=E5=85=B7=E7=B1=BB(InfluxDbParamUti?= =?UTF-8?q?l)=E7=BB=9F=E4=B8=80=E8=B0=83=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/CsGroupServiceImpl.java | 74 ++++--------------- .../impl/PortableOfflLogServiceImpl.java | 23 ++---- .../service/impl/WlRecordServiceImpl.java | 37 ++-------- .../njcn/csdevice/util/InfluxDbParamUtil.java | 69 +++++++++++++++++ .../impl/DeviceDataTrendServiceImpl.java | 32 +------- .../service/impl/LineTargetServiceImpl.java | 25 +------ .../service/impl/StableDataServiceImpl.java | 37 ++-------- .../csharmonic/util/InfluxDbParamUtil.java | 69 +++++++++++++++++ 8 files changed, 175 insertions(+), 191 deletions(-) create mode 100644 cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/util/InfluxDbParamUtil.java create mode 100644 cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/util/InfluxDbParamUtil.java diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java index d47e02b..d9c82c2 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/CsGroupServiceImpl.java @@ -29,6 +29,7 @@ import com.njcn.csdevice.pojo.vo.DataGroupTemplateVO; import com.njcn.csdevice.pojo.vo.EnergyTemplateVO; import com.njcn.csdevice.service.ICsDataArrayService; import com.njcn.csdevice.service.ICsGroupService; +import com.njcn.csdevice.util.InfluxDbParamUtil; import com.njcn.csharmonic.param.CommonStatisticalQueryParam; import com.njcn.csharmonic.pojo.vo.ThdDataTdVO; import com.njcn.csharmonic.pojo.vo.ThdDataVO; @@ -115,6 +116,8 @@ public class CsGroupServiceImpl extends ServiceImpl impl private final LineFeignClient lineFeignClient; + private final InfluxDbParamUtil influxDbParamUtil; + @Override @Transactional(rollbackFor = Exception.class) public List getGroupData(String dataSet) { @@ -138,19 +141,6 @@ public class CsGroupServiceImpl extends ServiceImpl impl if (pageRes.getTotal() != 0) { List groupList = pageRes.getRecords(); List group = groupList.stream().map(DataGroupTemplateVO::getId).collect(Collectors.toList()); - 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"; - } //获取当前组的所有指标项 List list = csDataArrayMapper.getArrayByGroup(group); for (EnergyTemplateVO item : list) { @@ -159,7 +149,7 @@ public class CsGroupServiceImpl extends ServiceImpl impl EleEpdPqd eleEpdPqd = epdFeignClient.selectById(item.getDataId()).getData(); vo.setClassId(eleEpdPqd.getClassId()); vo.setUnit(eleEpdPqd.getUnit()); - StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,getTableNameByClassId(eleEpdPqd.getClassId()),item.getName(),item.getPhase(),item.getStatMethod(),clDid); + StatisticalDataDTO statisticalDataDTO = commonService.getLineRtData(lineId,influxDbParamUtil.getTableNameByClassId(eleEpdPqd.getClassId()),item.getName(),item.getPhase(),item.getStatMethod(),influxDbParamUtil.getClDidByLineId(lineId)); if (!Objects.isNull(statisticalDataDTO)){ vo.setTime(statisticalDataDTO.getTime()); vo.setDataValue(BigDecimal.valueOf(statisticalDataDTO.getValue()).setScale(4, RoundingMode.UP).doubleValue()); @@ -194,19 +184,6 @@ public class CsGroupServiceImpl extends ServiceImpl impl if (pageRes.getTotal() != 0) { List groupList = pageRes.getRecords(); List group = groupList.stream().map(DataGroupTemplateVO::getId).collect(Collectors.toList()); - String position = csLineFeignClient.getPositionById(energyBaseParam.getLineId()).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"; - } //获取当前组的所有指标项 List list = csDataArrayMapper.getArrayByGroup(group); for (EnergyTemplateVO item : list) { @@ -215,7 +192,7 @@ public class CsGroupServiceImpl extends ServiceImpl impl EleEpdPqd eleEpdPqd = epdFeignClient.selectById(item.getDataId()).getData(); vo.setClassId(eleEpdPqd.getClassId()); vo.setUnit(eleEpdPqd.getUnit()); - StatisticalDataDTO statisticalDataDTO = commonService.getLineHistoryData(energyBaseParam.getLineId(),getTableNameByClassId(eleEpdPqd.getClassId()),item.getName(),energyBaseParam.getStartTime(),energyBaseParam.getEndTime(),clDid); + StatisticalDataDTO statisticalDataDTO = commonService.getLineHistoryData(energyBaseParam.getLineId(),influxDbParamUtil.getTableNameByClassId(eleEpdPqd.getClassId()),item.getName(),energyBaseParam.getStartTime(),energyBaseParam.getEndTime(),influxDbParamUtil.getClDidByLineId(energyBaseParam.getLineId())); if (!Objects.isNull(statisticalDataDTO)){ vo.setMaxValue(BigDecimal.valueOf(statisticalDataDTO.getMaxValue()).setScale(4, RoundingMode.UP).doubleValue()); vo.setMinValue(BigDecimal.valueOf(statisticalDataDTO.getMinValue()).setScale(4, RoundingMode.UP).doubleValue()); @@ -267,14 +244,14 @@ public class CsGroupServiceImpl extends ServiceImpl impl List commonQueryParams = finalCsLinePOList.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()+ (param.getFrequency() == null ? "":"_"+param.getFrequency())); 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()); //List deviceRtData = commonService.getDeviceRtDataByTime(commonQueryParams); @@ -319,12 +296,12 @@ public class CsGroupServiceImpl extends ServiceImpl impl List commonQueryParams = finalCsLinePOList.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()+ finalFrequency); commonQueryParam.setPhasic(epdPqd.getPhase()); commonQueryParam.setDataType(commonStatisticalQueryParam.getValueType() == null ? DataParam.portableDevStatisticalMethods:commonStatisticalQueryParam.getValueType()); commonQueryParam.setProcess(data1.get(0).getProcess()+""); - commonQueryParam.setClDid(getClDidByLineId(temp.getLineId())); + commonQueryParam.setClDid(influxDbParamUtil.getClDidByLineId(temp.getLineId())); return commonQueryParam; }).collect(Collectors.toList()); List deviceRtData = commonService.getDeviceRtData(commonQueryParams); @@ -444,12 +421,12 @@ public class CsGroupServiceImpl extends ServiceImpl impl List commonQueryParams = finalCsLinePOList.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()+"_"+index); commonQueryParam.setPhasic(epdPqd.getPhase()); commonQueryParam.setDataType(DataParam.portableDevStatisticalMethods); commonQueryParam.setProcess(data1.get(0).getProcess()+""); - commonQueryParam.setClDid(getClDidByLineId(temp.getLineId())); + commonQueryParam.setClDid(influxDbParamUtil.getClDidByLineId(temp.getLineId())); return commonQueryParam; }).collect(Collectors.toList()); List deviceRtData = commonService.getDeviceRtData(commonQueryParams); @@ -544,12 +521,12 @@ public class CsGroupServiceImpl extends ServiceImpl impl List commonQueryParams = finalCsLinePOList.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()+"_"+index); commonQueryParam.setPhasic(epdPqd.getPhase()); commonQueryParam.setDataType(DataParam.portableDevStatisticalMethods); commonQueryParam.setProcess(data1.get(0).getProcess()+""); - commonQueryParam.setClDid(getClDidByLineId(temp.getLineId())); + commonQueryParam.setClDid(influxDbParamUtil.getClDidByLineId(temp.getLineId())); return commonQueryParam; }).collect(Collectors.toList()); List deviceRtData = commonService.getDeviceRtData(commonQueryParams); @@ -613,31 +590,6 @@ public class CsGroupServiceImpl extends ServiceImpl impl return data; } - /*表名换成了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; - } - @Override public void deleteGroup(String groupId) { LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java index b4cf1be..3231207 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/PortableOfflLogServiceImpl.java @@ -13,6 +13,7 @@ import com.njcn.csdevice.pojo.po.PortableOfflLog; import com.njcn.csdevice.service.IPortableOfflLogService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.njcn.csdevice.param.UploadDataParam; +import com.njcn.csdevice.util.InfluxDbParamUtil; import com.njcn.csharmonic.api.EventFeignClient; import com.njcn.csharmonic.api.OfflineDataUploadFeignClient; import com.njcn.csharmonic.offline.constant.OfflineConstant; @@ -75,6 +76,8 @@ public class PortableOfflLogServiceImpl extends ServiceImpl paths = Arrays.asList(filePath.split("/")); diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/WlRecordServiceImpl.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/WlRecordServiceImpl.java index f61a914..9ac78ed 100644 --- a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/WlRecordServiceImpl.java +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/service/impl/WlRecordServiceImpl.java @@ -10,7 +10,6 @@ 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.enums.LineBaseEnum; import com.njcn.csdevice.mapper.WlRecordMapper; import com.njcn.csdevice.param.WlRecordPageParam; @@ -22,6 +21,7 @@ import com.njcn.csdevice.pojo.vo.RecordAllDevTreeVo; import com.njcn.csdevice.pojo.vo.RecordTreeVo; import com.njcn.csdevice.pojo.vo.RecordVo; import com.njcn.csdevice.service.IWlRecordService; +import com.njcn.csdevice.util.InfluxDbParamUtil; import com.njcn.csharmonic.param.CommonStatisticalQueryParam; import com.njcn.csharmonic.pojo.vo.ThdDataVO; import com.njcn.influx.pojo.bo.CommonQueryParam; @@ -29,8 +29,6 @@ import com.njcn.influx.pojo.dto.StatisticalDataDTO; import com.njcn.influx.service.CommonService; import com.njcn.system.api.CsStatisticalSetFeignClient; import com.njcn.system.api.DicDataFeignClient; -import com.njcn.system.enums.DicDataEnum; -import com.njcn.system.pojo.po.DictData; import com.njcn.system.pojo.po.EleEpdPqd; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -61,12 +59,12 @@ public class WlRecordServiceImpl extends ServiceImpl i private final CsStatisticalSetFeignClient csStatisticalSetFeignClient; - private final DicDataFeignClient dicDataFeignClient; - private final CsLineFeignClient csLineFeignClient; private final CommonService commonService; + private final InfluxDbParamUtil influxDbParamUtil; + private final DecimalFormat df = new DecimalFormat(DataParam.DecimalFormatStr); @Override @@ -302,14 +300,14 @@ public class WlRecordServiceImpl extends ServiceImpl i List commonQueryParams = finalCsLinePOList.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()+ (param.getFrequency() == null ? "":"_"+param.getFrequency())); commonQueryParam.setPhasic(epdPqd.getPhase()); commonQueryParam.setStartTime(LocalDateTimeUtil.format(wl.getStartTime(), DateTimeFormatter.ofPattern(DataParam.timeFormat))); commonQueryParam.setEndTime(LocalDateTimeUtil.format(wl.getEndTime(), DateTimeFormatter.ofPattern(DataParam.timeFormat))); 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()); List deviceRtData = commonService.getDeviceRtDataByTime(commonQueryParams); @@ -426,31 +424,6 @@ public class WlRecordServiceImpl extends ServiceImpl i } } - /*表名换成了id本方法做转换*/ - private String getTableNameByClassId(String classId){ - DictData data = dicDataFeignClient.getDicDataById(classId).getData(); - if(Objects.isNull(data)){ - throw new BusinessException(AlgorithmResponseEnum.DATA_MISSING.getMessage()); - } - 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; - } - /** * 获取测试项绑定的基础数据最早的设备开始时间 * @param testRecordId diff --git a/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/util/InfluxDbParamUtil.java b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/util/InfluxDbParamUtil.java new file mode 100644 index 0000000..e6b3c9c --- /dev/null +++ b/cs-device/cs-device-boot/src/main/java/com/njcn/csdevice/util/InfluxDbParamUtil.java @@ -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 finalCsLinePOList = csLineFeignClient.queryLineById(Arrays.asList(lineId)).getData(); + if(finalCsLinePOList == null || finalCsLinePOList.isEmpty()){ + throw new BusinessException(AlgorithmResponseEnum.DATA_MISSING.getMessage()); + } + List 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; + } +} diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DeviceDataTrendServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DeviceDataTrendServiceImpl.java index 6ab0e9d..9675c88 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DeviceDataTrendServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/DeviceDataTrendServiceImpl.java @@ -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> queryDataTrend(DevicDataTrendQueryParam devicDataTrendQueryParam) { List> 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; - } } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java index 7935d58..7181597 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/LineTargetServiceImpl.java @@ -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 getLineTarget(String lineId) { List 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(){}.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 diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java index a5ad4e6..4d54c60 100644 --- a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/service/impl/StableDataServiceImpl.java @@ -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 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 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; - } - } diff --git a/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/util/InfluxDbParamUtil.java b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/util/InfluxDbParamUtil.java new file mode 100644 index 0000000..00ae82f --- /dev/null +++ b/cs-harmonic/cs-harmonic-boot/src/main/java/com/njcn/csharmonic/util/InfluxDbParamUtil.java @@ -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 finalCsLinePOList = csLineFeignClient.queryLineById(Arrays.asList(lineId)).getData(); + if(finalCsLinePOList == null || finalCsLinePOList.isEmpty()){ + throw new BusinessException(AlgorithmResponseEnum.DATA_MISSING.getMessage()); + } + List 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; + } +}