feat(wave): 更新波形分析服务以支持新的线路ID获取逻辑
- 添加 CsDeviceRegistryFeignClient 和 CsLineFeignClient 依赖注入 - 实现通过 nDid 和 clDid 查询设备注册信息的逻辑 - 添加当设备注册信息为空时通过线路查询的备选方案 - 移除旧的线路ID拼接方式并替换为从设备注册表或线路表获取 - 在统计服务中更新云前置设备线路ID获取方式为从Redis缓存获取
This commit is contained in:
@@ -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<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();
|
||||
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<String> fileList = Arrays.stream(fileName.split(",")).collect(Collectors.toList());
|
||||
//获取到录波文件,将文件信息存储起来
|
||||
|
||||
Reference in New Issue
Block a user