治理设备新增功能

This commit is contained in:
xy
2025-07-03 08:59:57 +08:00
parent 28b23e9c52
commit 0b32c09fdb
17 changed files with 327 additions and 31 deletions

View File

@@ -3,8 +3,11 @@ package com.njcn.zlevent.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.nacos.shaded.com.google.gson.Gson;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.access.pojo.po.CsDeviceOnlineLogs;
import com.njcn.access.utils.ChannelObjectUtil;
import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.csdevice.api.EquipmentFeignClient;
import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO;
import com.njcn.csharmonic.pojo.po.CsEventPO;
@@ -33,6 +36,8 @@ import java.util.List;
import java.util.Map;
import java.util.Objects;
import static com.njcn.csdevice.enums.AlgorithmResponseEnum.DATA_ERROR;
/**
* <p>
* 告警事件表 服务实现类
@@ -63,7 +68,7 @@ public class CsAlarmServiceImpl extends ServiceImpl<CsEventMapper, CsEventPO> im
//获取装置id
CsEquipmentDeliveryPO po = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData();
List<SysDicTreePO> dictTreeList = channelObjectUtil.objectToList(redisUtil.getObjectByKey(AppRedisKey.DICT_TREE),SysDicTreePO.class);
String code = dictTreeList.stream().filter(item->Objects.equals(item.getId(),po.getDevType())).findFirst().orElse(null).getCode();
String code = dictTreeList.stream().filter(item->Objects.equals(item.getId(),po.getDevType())).findFirst().orElse(null).getCode();
try {
//便携式设备
@@ -82,6 +87,17 @@ public class CsAlarmServiceImpl extends ServiceImpl<CsEventMapper, CsEventPO> im
List<AppEventMessage.DataArray> dataArray = appEventMessage.getMsg().getDataArray();
for (AppEventMessage.DataArray item : dataArray) {
eventTime = eventService.timeFormat(item.getDataTimeSec(),item.getDataTimeUSec());
tag = item.getName();
//判断各模块事件,如果上次模块事件和这次一致,则不记录
CsEventPO csEventPO = this.lambdaQuery().eq(CsEventPO::getLineId,lineId)
.eq(CsEventPO::getClDid,appEventMessage.getMsg().getClDid())
.eq(CsEventPO::getProcess,po.getProcess())
.orderByDesc(CsEventPO::getStartTime).last("LIMIT 1").one();
if (csEventPO != null) {
if (Objects.equals(csEventPO.getTag(),tag)) {
throw new BusinessException(DATA_ERROR);
}
}
//事件入库
CsEventPO csEvent = new CsEventPO();
csEvent.setLineId(lineId);
@@ -90,7 +106,6 @@ public class CsAlarmServiceImpl extends ServiceImpl<CsEventMapper, CsEventPO> im
csEvent.setProcess(po.getProcess());
csEvent.setCode(item.getCode());
csEvent.setStartTime(eventTime);
tag = item.getName();
csEvent.setTag(tag);
csEvent.setType(3);
csEvent.setClDid(appEventMessage.getMsg().getClDid());