diff --git a/iot-analysis/analysis-zl-event/zl-event-api/src/main/java/com/njcn/zlevent/pojo/po/CsEventLogs.java b/iot-analysis/analysis-zl-event/zl-event-api/src/main/java/com/njcn/zlevent/pojo/po/CsEventFileLogs.java similarity index 93% rename from iot-analysis/analysis-zl-event/zl-event-api/src/main/java/com/njcn/zlevent/pojo/po/CsEventLogs.java rename to iot-analysis/analysis-zl-event/zl-event-api/src/main/java/com/njcn/zlevent/pojo/po/CsEventFileLogs.java index 224ca40..fb2faf7 100644 --- a/iot-analysis/analysis-zl-event/zl-event-api/src/main/java/com/njcn/zlevent/pojo/po/CsEventLogs.java +++ b/iot-analysis/analysis-zl-event/zl-event-api/src/main/java/com/njcn/zlevent/pojo/po/CsEventFileLogs.java @@ -18,8 +18,8 @@ import lombok.Setter; * @since 2023-09-08 */ @Data -@TableName("cs_event_logs") -public class CsEventLogs { +@TableName("cs_event_file_logs") +public class CsEventFileLogs { private static final long serialVersionUID = 1L; diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/mapper/CsEventLogsMapper.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/mapper/CsEventFileLogsMapper.java similarity index 62% rename from iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/mapper/CsEventLogsMapper.java rename to iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/mapper/CsEventFileLogsMapper.java index 8bcf399..ee999de 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/mapper/CsEventLogsMapper.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/mapper/CsEventFileLogsMapper.java @@ -1,7 +1,7 @@ package com.njcn.zlevent.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; -import com.njcn.zlevent.pojo.po.CsEventLogs; +import com.njcn.zlevent.pojo.po.CsEventFileLogs; /** *

@@ -11,7 +11,6 @@ import com.njcn.zlevent.pojo.po.CsEventLogs; * @author xuyang * @since 2023-09-08 */ -public interface CsEventLogsMapper extends BaseMapper { +public interface CsEventFileLogsMapper extends BaseMapper { } diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/ICsEventLogsService.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/ICsEventFileLogsService.java similarity index 62% rename from iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/ICsEventLogsService.java rename to iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/ICsEventFileLogsService.java index cf057f9..19c6c9e 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/ICsEventLogsService.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/ICsEventFileLogsService.java @@ -1,7 +1,7 @@ package com.njcn.zlevent.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.njcn.zlevent.pojo.po.CsEventLogs; +import com.njcn.zlevent.pojo.po.CsEventFileLogs; /** *

@@ -11,6 +11,6 @@ import com.njcn.zlevent.pojo.po.CsEventLogs; * @author xuyang * @since 2023-09-08 */ -public interface ICsEventLogsService extends IService { +public interface ICsEventFileLogsService extends IService { } diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsEventFileLogsServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsEventFileLogsServiceImpl.java new file mode 100644 index 0000000..7d2cc6e --- /dev/null +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsEventFileLogsServiceImpl.java @@ -0,0 +1,20 @@ +package com.njcn.zlevent.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.njcn.zlevent.mapper.CsEventFileLogsMapper; +import com.njcn.zlevent.pojo.po.CsEventFileLogs; +import com.njcn.zlevent.service.ICsEventFileLogsService; +import org.springframework.stereotype.Service; + +/** + *

+ * 治理暂态文件解析日志 服务实现类 + *

+ * + * @author xuyang + * @since 2023-09-08 + */ +@Service +public class CsEventFileLogsServiceImpl extends ServiceImpl implements ICsEventFileLogsService { + +} diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsEventLogsServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsEventLogsServiceImpl.java deleted file mode 100644 index 22cecf8..0000000 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/CsEventLogsServiceImpl.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.njcn.zlevent.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.njcn.zlevent.mapper.CsEventLogsMapper; -import com.njcn.zlevent.pojo.po.CsEventLogs; -import com.njcn.zlevent.service.ICsEventLogsService; -import org.springframework.stereotype.Service; - -/** - *

- * 治理暂态文件解析日志 服务实现类 - *

- * - * @author xuyang - * @since 2023-09-08 - */ -@Service -public class CsEventLogsServiceImpl extends ServiceImpl implements ICsEventLogsService { - -} 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 8542152..a7d93bb 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 @@ -7,6 +7,8 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.api.CsDeviceUserFeignClient; import com.njcn.csdevice.api.CsLineFeignClient; import com.njcn.csdevice.api.EquipmentFeignClient; +import com.njcn.csdevice.api.EventLogsFeignClient; +import com.njcn.csdevice.pojo.po.CsEventSendMsg; import com.njcn.csdevice.pojo.po.CsLinePO; import com.njcn.csharmonic.pojo.po.CsEventPO; import com.njcn.csharmonic.pojo.po.CsEventUserPO; @@ -86,6 +88,8 @@ public class EventServiceImpl implements IEventService { private final UserFeignClient userFeignClient; + private final EventLogsFeignClient eventLogsFeignClient; + @Override @Transactional(rollbackFor = Exception.class) public void analysis(AppEventMessage appEventMessage) { @@ -96,6 +100,7 @@ public class EventServiceImpl implements IEventService { //获取监测点id String lineId = null; LocalDateTime eventTime = null; + String id = null; Object object1 = redisUtil.getObjectByKey(AppRedisKey.LINE_POSITION+appEventMessage.getId()); //判断字典数据是否存在 if (Objects.isNull(redisUtil.getObjectByKey(AppRedisKey.ELE_EPD_PQD))){ @@ -114,7 +119,7 @@ public class EventServiceImpl implements IEventService { //处理事件数据 List dataArray = appEventMessage.getMsg().getDataArray(); for (AppEventMessage.DataArray item : dataArray) { - String id = IdUtil.fastSimpleUUID(); + id = IdUtil.fastSimpleUUID(); //事件入库 CsEventPO csEvent = new CsEventPO(); csEvent.setId(id); @@ -133,7 +138,7 @@ public class EventServiceImpl implements IEventService { if (!Objects.isNull(item.getParam())){ String tableName = map.get(item.getName()); List params = item.getParam(); - params.forEach(param->{ + for (AppEventMessage.Param param : params) { Map tags = new HashMap<>(); tags.put(InfluxDBTableConstant.UUID,id); Map fields = new HashMap<>(); @@ -143,7 +148,7 @@ public class EventServiceImpl implements IEventService { BatchPoints batchPoints = BatchPoints.database(influxDbUtils.getDbName()).retentionPolicy("").consistency(InfluxDB.ConsistencyLevel.ALL).build(); batchPoints.point(point); records.add(batchPoints.lineProtocol()); - }); + } } //事件用户关系入库 list2 = deviceUserList(deviceId,id); @@ -161,8 +166,29 @@ public class EventServiceImpl implements IEventService { influxDbUtils.batchInsert(influxDbUtils.getDbName(), "", InfluxDB.ConsistencyLevel.ALL, TimeUnit.MILLISECONDS, records); } //todo 根据不同事件需要做处理,目前先测试消息通知 - String content = appEventMessage.getId() + "于" +eventTime+ "发生暂态事件"; - sendEventToUser(getEventUser(deviceId),"暂态事件",content,1); + List userList = getEventUser(deviceId); + if (CollectionUtil.isNotEmpty(userList)){ + List csEventSendMsgList = new ArrayList<>(); + List devCodeList = userList.stream().map(User::getDevCode).collect(Collectors.toList()); + String content = appEventMessage.getId() + "于" +eventTime+ "发生暂态事件"; + sendEventToUser(devCodeList,"暂态事件",content,1); + //记录推送日志 + for (User item : userList) { + CsEventSendMsg csEventSendMsg = new CsEventSendMsg(); + csEventSendMsg.setUserId(item.getId()); + csEventSendMsg.setEventId(id); + csEventSendMsg.setSendTime(LocalDateTime.now()); + if (Objects.isNull(item.getDevCode())){ + csEventSendMsg.setStatus(0); + csEventSendMsg.setRemark("用户设备识别码为空"); + } else { + csEventSendMsg.setDevCode(item.getDevCode()); + csEventSendMsg.setStatus(1); + } + csEventSendMsgList.add(csEventSendMsg); + } + eventLogsFeignClient.addLogs(csEventSendMsgList); + } } /** @@ -242,7 +268,8 @@ public class EventServiceImpl implements IEventService { /** * 获取需要通知暂态事件的用户 */ - public List getEventUser(String devId) { + public List getEventUser(String devId) { + List users = new ArrayList<>(); List result = new ArrayList<>(); List devCode = new ArrayList<>(); //获取设备下主用户和子用户集合 @@ -254,12 +281,10 @@ public class EventServiceImpl implements IEventService { .filter(person -> person.getEventInfo() == 1) .map(AppInfoSet::getUserId).collect(Collectors.toList()); } - //获取用户的devCode if (CollectionUtil.isNotEmpty(list)){ - List users = userFeignClient.getUserByIdList(result).getData(); - devCode = users.stream().map(User::getDevCode).collect(Collectors.toList()); + users = userFeignClient.getUserByIdList(result).getData(); } - return devCode; + return users; } /** diff --git a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/FileServiceImpl.java b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/FileServiceImpl.java index 29d8e47..4a1865f 100644 --- a/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/FileServiceImpl.java +++ b/iot-analysis/analysis-zl-event/zl-event-boot/src/main/java/com/njcn/zlevent/service/impl/FileServiceImpl.java @@ -21,26 +21,24 @@ import com.njcn.zlevent.param.CsEventParam; import com.njcn.zlevent.pojo.dto.FileInfoDto; import com.njcn.zlevent.pojo.dto.FileStreamDto; import com.njcn.zlevent.pojo.dto.WaveTimeDto; -import com.njcn.zlevent.pojo.po.CsEventLogs; -import com.njcn.zlevent.service.ICsEventLogsService; +import com.njcn.zlevent.pojo.po.CsEventFileLogs; +import com.njcn.zlevent.service.ICsEventFileLogsService; import com.njcn.zlevent.service.ICsEventService; import com.njcn.zlevent.service.IFileService; -import com.njcn.zlevent.utils.FileCheckUtils; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import net.sf.json.JSONObject; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.nio.charset.StandardCharsets; -import java.nio.file.NoSuchFileException; -import java.security.NoSuchAlgorithmException; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; -import java.util.*; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; +import java.util.Objects; /** * 类的介绍: @@ -64,7 +62,7 @@ public class FileServiceImpl implements IFileService { private final ICsEventService csEventService; - private final ICsEventLogsService csEventLogsService; + private final ICsEventFileLogsService csEventLogsService; @Override public void analysisFileInfo(AppFileMessage appFileMessage) { @@ -112,7 +110,7 @@ public class FileServiceImpl implements IFileService { @Override public void analysisFileStream(AppFileMessage appFileMessage) { //日志记录 - CsEventLogs csEventLogs = new CsEventLogs(); + CsEventFileLogs csEventLogs = new CsEventFileLogs(); csEventLogs.setNdid(appFileMessage.getId()); csEventLogs.setFileName(appFileMessage.getMsg().getName()); try {