feat(access): 优化设备接入流程并增加监测点管理功能

- 新增DEV_DATA_ERROR响应枚举处理装置端监测点信息获取失败情况
- 集成CsLineFeignClient服务实现线路信息精确获取,替代原有字符解析方式
- 删除无用的LogMessageTemplate依赖和objectToMap工具方法
- 添加CsDeviceRegistryFeignClient支持设备注册表管理
- 重构CsDeviceServiceImpl中的设备接入逻辑,优化监测点ID分配机制
- 新增accessByUpdateMac接口支持设备MAC地址变更后的重新接入
- 完善设备监测点信息获取流程,增加数据去重和异常处理机制
- 添加稳态事件指标配置功能,集成谐波方案管理
- 优化MQTT消息处理器中的设备信息更新逻辑
- 增强设备软件信息解析的日期格式兼容性
- 优化设备容量和台账信息更新的数据持久化流程
This commit is contained in:
xy
2026-06-22 13:49:11 +08:00
parent 7ad8f5f80c
commit ad1e051a94
12 changed files with 438 additions and 142 deletions

View File

@@ -8,14 +8,8 @@ import com.njcn.access.utils.ChannelObjectUtil;
import com.njcn.access.utils.RedisSetUtil;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.utils.PubUtils;
import com.njcn.csdevice.api.CsLineFeignClient;
import com.njcn.csdevice.api.DataArrayFeignClient;
import com.njcn.csdevice.api.DataSetFeignClient;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.pojo.po.CsDataArray;
import com.njcn.csdevice.pojo.po.CsDataSet;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csdevice.pojo.po.CsLinePO;
import com.njcn.csdevice.api.*;
import com.njcn.csdevice.pojo.po.*;
import com.njcn.mq.message.AppAutoDataMessage;
import com.njcn.redis.utils.RedisUtil;
import com.njcn.rt.enums.RtResponseEnum;
@@ -53,12 +47,19 @@ public class RtServiceImpl implements IRtService {
private final MqttPublisher publisher;
private final RedisSetUtil redisSetUtil;
private final EquipmentFeignClient equipmentFeignClient;
private final CsDeviceRegistryFeignClient csDeviceRegistryFeignClient;
@Override
public void analysis(AppAutoDataMessage appAutoDataMessage) {
List<CsDataArray> dataArrayList;
//监测点id
String lineId = appAutoDataMessage.getId() + appAutoDataMessage.getMsg().getClDid();
String lineId;
CsDeviceRegistry csDeviceRegistry = csDeviceRegistryFeignClient.queryByCurrentNdidAndClDid(appAutoDataMessage.getId(),appAutoDataMessage.getMsg().getClDid()).getData();
if (Objects.isNull(csDeviceRegistry)) {
lineId = appAutoDataMessage.getId() + appAutoDataMessage.getMsg().getClDid();
} else {
lineId = csDeviceRegistry.getId();
}
redisUtil.delete("cldRtDataOverTime:"+lineId);
//获取监测点基础信息
CsLinePO po = csLineFeignClient.getById(lineId).getData();