diff --git a/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java b/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java index 0db4edd..516ae86 100644 --- a/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java +++ b/iot-analysis/analysis-stat/stat-boot/src/main/java/com/njcn/stat/service/impl/StatServiceImpl.java @@ -219,7 +219,7 @@ public class StatServiceImpl implements IStatService { } //云前置设备 else if (Objects.equals(DicDataEnum.DEV_CLD.getCode(),code)) { - lineId = appAutoDataMessage.getId() + appAutoDataMessage.getMsg().getClDid(); + lineId = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appAutoDataMessage.getId())), Map.class).get(appAutoDataMessage.getMsg().getClDid().toString()).toString(); } //获取当前设备信息 diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java index 0a3c2fb..1ca025c 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsWaveAnalysisServiceImpl.java @@ -5,10 +5,14 @@ import com.njcn.access.utils.ChannelObjectUtil; import com.njcn.access.utils.FileCommonUtils; import com.njcn.access.utils.MqttUtil; import com.njcn.common.pojo.exception.BusinessException; +import com.njcn.csdevice.api.CsDeviceRegistryFeignClient; +import com.njcn.csdevice.api.CsLineFeignClient; import com.njcn.csdevice.api.DeviceMessageFeignClient; import com.njcn.csdevice.api.EquipmentFeignClient; import com.njcn.csdevice.enums.AlgorithmResponseEnum; import com.njcn.csdevice.param.LineInfoParam; +import com.njcn.csdevice.pojo.po.CsDeviceRegistry; +import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.mq.message.AppEventMessage; import com.njcn.redis.pojo.enums.AppRedisKey; import com.njcn.redis.utils.RedisUtil; @@ -45,6 +49,8 @@ public class CsWaveAnalysisServiceImpl implements ICsWaveAnalysisService { private final FileCommonUtils fileCommonUtils; private final DeviceMessageFeignClient deviceMessageFeignClient; private static Integer mid = 1; + private final CsDeviceRegistryFeignClient csDeviceRegistryFeignClient; + private final CsLineFeignClient csLineFeignClient; @Override public void analysis(AppEventMessage appEventMessage) { @@ -58,6 +64,24 @@ public class CsWaveAnalysisServiceImpl implements ICsWaveAnalysisService { } //获取装置id String deviceId = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData().getId(); + //获取监测点id + String nDid = appEventMessage.getId(); + Integer clDid = appEventMessage.getMsg().getClDid(); + CsDeviceRegistry csDeviceRegistry = csDeviceRegistryFeignClient.queryByCurrentNdidAndClDid(nDid, clDid).getData(); + String lineId; + if (Objects.isNull(csDeviceRegistry)) { + List lines = csLineFeignClient.findByNdid(nDid).getData(); + if (CollectionUtil.isEmpty(lines)) { + throw new BusinessException("通过装置NDID获取监测点信息失败"); + } + CsLinePO line = lines.stream().filter(item->Objects.equals(item.getClDid(),clDid)).findFirst().orElse(null); + if (Objects.isNull(line)) { + throw new BusinessException("通过逻辑子设备ID获取监测点信息失败"); + } + lineId = line.getLineId(); + } else { + lineId = csDeviceRegistry.getId(); + } //获取波形文件名称 List dataArrayList = appEventMessage.getMsg().getDataArray(); if (CollectionUtil.isNotEmpty(dataArrayList)){ @@ -66,7 +90,6 @@ public class CsWaveAnalysisServiceImpl implements ICsWaveAnalysisService { Object object = paramList.stream().filter(item2 -> ZlConstant.WAVE_NAME.equals(item2.getName())).findFirst().map(AppEventMessage.Param::getData).orElse(null); Object object2 = paramList.stream().filter(item2 -> ZlConstant.WAVE_PARAM_RCDKEEPTIME.equals(item2.getName())).findFirst().map(AppEventMessage.Param::getData).orElse(null); Object object3 = paramList.stream().filter(item2->ZlConstant.WAVE_POSITION.equals(item2.getName())).findFirst().map(AppEventMessage.Param::getData).orElse(null); - String lineId = appEventMessage.getId() + appEventMessage.getMsg().getClDid(); String fileName = object.toString().replaceAll("\\[","").replaceAll("]",""); List fileList = Arrays.stream(fileName.split(",")).collect(Collectors.toList()); //获取到录波文件,将文件信息存储起来