feat(wave): 更新波形分析服务以支持新的线路ID获取逻辑
- 添加 CsDeviceRegistryFeignClient 和 CsLineFeignClient 依赖注入 - 实现通过 nDid 和 clDid 查询设备注册信息的逻辑 - 添加当设备注册信息为空时通过线路查询的备选方案 - 移除旧的线路ID拼接方式并替换为从设备注册表或线路表获取 - 在统计服务中更新云前置设备线路ID获取方式为从Redis缓存获取
This commit is contained in:
@@ -219,7 +219,7 @@ public class StatServiceImpl implements IStatService {
|
|||||||
}
|
}
|
||||||
//云前置设备
|
//云前置设备
|
||||||
else if (Objects.equals(DicDataEnum.DEV_CLD.getCode(),code)) {
|
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();
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取当前设备信息
|
//获取当前设备信息
|
||||||
|
|||||||
@@ -5,10 +5,14 @@ import com.njcn.access.utils.ChannelObjectUtil;
|
|||||||
import com.njcn.access.utils.FileCommonUtils;
|
import com.njcn.access.utils.FileCommonUtils;
|
||||||
import com.njcn.access.utils.MqttUtil;
|
import com.njcn.access.utils.MqttUtil;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
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.DeviceMessageFeignClient;
|
||||||
import com.njcn.csdevice.api.EquipmentFeignClient;
|
import com.njcn.csdevice.api.EquipmentFeignClient;
|
||||||
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
|
import com.njcn.csdevice.enums.AlgorithmResponseEnum;
|
||||||
import com.njcn.csdevice.param.LineInfoParam;
|
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.mq.message.AppEventMessage;
|
||||||
import com.njcn.redis.pojo.enums.AppRedisKey;
|
import com.njcn.redis.pojo.enums.AppRedisKey;
|
||||||
import com.njcn.redis.utils.RedisUtil;
|
import com.njcn.redis.utils.RedisUtil;
|
||||||
@@ -45,6 +49,8 @@ public class CsWaveAnalysisServiceImpl implements ICsWaveAnalysisService {
|
|||||||
private final FileCommonUtils fileCommonUtils;
|
private final FileCommonUtils fileCommonUtils;
|
||||||
private final DeviceMessageFeignClient deviceMessageFeignClient;
|
private final DeviceMessageFeignClient deviceMessageFeignClient;
|
||||||
private static Integer mid = 1;
|
private static Integer mid = 1;
|
||||||
|
private final CsDeviceRegistryFeignClient csDeviceRegistryFeignClient;
|
||||||
|
private final CsLineFeignClient csLineFeignClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void analysis(AppEventMessage appEventMessage) {
|
public void analysis(AppEventMessage appEventMessage) {
|
||||||
@@ -58,6 +64,24 @@ public class CsWaveAnalysisServiceImpl implements ICsWaveAnalysisService {
|
|||||||
}
|
}
|
||||||
//获取装置id
|
//获取装置id
|
||||||
String deviceId = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData().getId();
|
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<CsLinePO> 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<AppEventMessage.DataArray> dataArrayList = appEventMessage.getMsg().getDataArray();
|
List<AppEventMessage.DataArray> dataArrayList = appEventMessage.getMsg().getDataArray();
|
||||||
if (CollectionUtil.isNotEmpty(dataArrayList)){
|
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 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 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);
|
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("]","");
|
String fileName = object.toString().replaceAll("\\[","").replaceAll("]","");
|
||||||
List<String> fileList = Arrays.stream(fileName.split(",")).collect(Collectors.toList());
|
List<String> fileList = Arrays.stream(fileName.split(",")).collect(Collectors.toList());
|
||||||
//获取到录波文件,将文件信息存储起来
|
//获取到录波文件,将文件信息存储起来
|
||||||
|
|||||||
Reference in New Issue
Block a user