diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsAlarmServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsAlarmServiceImpl.java index 04045d8..93ce47d 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsAlarmServiceImpl.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsAlarmServiceImpl.java @@ -2,14 +2,20 @@ 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.extension.service.impl.ServiceImpl; +import com.njcn.access.utils.ChannelObjectUtil; import com.njcn.csdevice.api.EquipmentFeignClient; import com.njcn.csdevice.pojo.po.CsEquipmentDeliveryPO; import com.njcn.csharmonic.pojo.po.CsEventPO; import com.njcn.mq.message.AppEventMessage; +import com.njcn.redis.pojo.enums.AppRedisKey; +import com.njcn.redis.utils.RedisUtil; import com.njcn.system.api.EpdFeignClient; +import com.njcn.system.enums.DicDataEnum; import com.njcn.system.pojo.param.EleEpdPqdParam; import com.njcn.system.pojo.po.EleEpdPqd; +import com.njcn.system.pojo.po.SysDicTreePO; import com.njcn.zlevent.mapper.CsEventMapper; import com.njcn.zlevent.pojo.po.CsEventLogs; import com.njcn.zlevent.service.ICsAlarmService; @@ -24,6 +30,7 @@ import org.springframework.transaction.annotation.Transactional; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Objects; /** @@ -43,6 +50,8 @@ public class CsAlarmServiceImpl extends ServiceImpl im private final SendEventUtils sendEventUtils; private final ICsEventLogsService csEventLogsService; private final EpdFeignClient epdFeignClient; + private final RedisUtil redisUtil; + private final ChannelObjectUtil channelObjectUtil; @Override @Transactional(rollbackFor = Exception.class) @@ -53,8 +62,23 @@ public class CsAlarmServiceImpl extends ServiceImpl im String id = IdUtil.fastSimpleUUID(); //获取装置id CsEquipmentDeliveryPO po = equipmentFeignClient.findDevByNDid(appEventMessage.getId()).getData(); + List 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(); + try { - lineId = appEventMessage.getId() + appEventMessage.getMsg().getClDid(); + //便携式设备 + if (Objects.equals(DicDataEnum.PORTABLE.getCode(),code)) { + lineId = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId())), Map.class).get(appEventMessage.getMsg().getClDid().toString()).toString(); + } + //直连设备 + else if (Objects.equals(DicDataEnum.CONNECT_DEV.getCode(),code)) { + if (Objects.equals(appEventMessage.getDid(),1)){ + lineId = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId())), Map.class).get("0").toString(); + } else if (Objects.equals(appEventMessage.getDid(),2)){ + lineId = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId())), Map.class).get(appEventMessage.getMsg().getClDid().toString()).toString(); + } + } + List dataArray = appEventMessage.getMsg().getDataArray(); for (AppEventMessage.DataArray item : dataArray) { eventTime = eventService.timeFormat(item.getDataTimeSec(),item.getDataTimeUSec()); diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java index ed0706f..30adf51 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/EventServiceImpl.java @@ -92,7 +92,19 @@ public class EventServiceImpl implements IEventService { //获取设备类型 true:治理设备 false:其他类型的设备 boolean devModel = equipmentFeignClient.judgeDevModel(appEventMessage.getId()).getData(); try { - lineId = appEventMessage.getId() + appEventMessage.getMsg().getClDid(); +// lineId = appEventMessage.getId() + appEventMessage.getMsg().getClDid(); + if (devModel) { + if (Objects.equals(appEventMessage.getDid(),1)){ + lineId = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId())), Map.class).get("0").toString(); + } else if (Objects.equals(appEventMessage.getDid(),2)){ + lineId = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId())), Map.class).get(appEventMessage.getMsg().getClDid().toString()).toString(); + } + } else { + lineId = new Gson().fromJson(String.valueOf(redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId())), Map.class).get(appEventMessage.getMsg().getClDid().toString()).toString(); + } + + + //处理事件数据 List dataArray = appEventMessage.getMsg().getDataArray(); for (AppEventMessage.DataArray item : dataArray) {