ard-work/src/main/java/com/ruoyi/statistical/controller/StatisticalController.java
@@ -243,4 +243,13 @@ return Results.succeed(statisticalService.pump()); } /** * 数据处理 */ @ApiOperation("数据处理") @GetMapping("data") public void data(String msg){ statisticalService.data(msg); } } ard-work/src/main/java/com/ruoyi/statistical/domain/PumpStatus.java
@@ -1,5 +1,6 @@ package com.ruoyi.statistical.domain; import com.baomidou.mybatisplus.annotation.TableId; import lombok.Data; /** @@ -7,7 +8,7 @@ */ @Data public class PumpStatus { private String id; private Integer targetId; private String name; private String alarmType; private String alarmTime; ard-work/src/main/java/com/ruoyi/statistical/service/StatisticalService.java
@@ -61,4 +61,6 @@ List<TenVo> ten(); List<TenVo> pump(); void data(String msg); } ard-work/src/main/java/com/ruoyi/statistical/service/impl/StatisticalServiceImpl.java
@@ -1,6 +1,7 @@ package com.ruoyi.statistical.service.impl; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson2.JSONArray; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.alarm.access.mapper.ArdAlarmAccessMapper; import com.ruoyi.alarm.apponekey.mapper.ArdAlarmApponekeyMapper; @@ -397,6 +398,50 @@ return list; } @Override public void data(String msg) { JSONObject jsonObject = JSONObject.parseObject(msg); String alarmTime = jsonObject.getString("alarmTime"); List<JSONObject> list = (List<JSONObject>) jsonObject.get("ardAlarmRadars"); if(list.size()>0){ for (int i = 0; i < list.size(); i++) { JSONObject j = list.get(i); QueryWrapper<PumpStatus> queryWrapper = new QueryWrapper<>(); queryWrapper.eq("target_id",j.getInteger("targetId")).eq("name",j.getString("name")); PumpStatus pumpStatus1 = pumpStatusMapper.selectOne(queryWrapper); if(pumpStatus1==null){ PumpStatus pumpStatus = new PumpStatus(); pumpStatus.setTargetId(j.getInteger("targetId")); pumpStatus.setName(j.getString("name")); if(j.containsKey("alarmType")){ pumpStatus.setAlarmType(j.getString("alarmType")); }else if(j.containsKey("alarm")){ pumpStatus.setAlarmType(j.getString("alarm")); } pumpStatus.setAlarmTime(alarmTime); pumpStatusMapper.insert(pumpStatus); }else { String alarmType = pumpStatus1.getAlarmType(); Boolean bo = false; if(j.containsKey("alarmType")){ if(alarmType.equals(j.getString("alarmType"))){ bo = true; } }else if(j.containsKey("alarm")){ if(alarmType.equals(j.getString("alarm"))){ bo = true; } } if(!bo){ pumpStatus1.setAlarmType(j.getString("alarmType")); pumpStatus1.setAlarmTime(alarmTime); pumpStatusMapper.updateById(pumpStatus1); } } } } } public List<CountVo> es(List<CountVo> list){ List<CountVo> countVoList = new ArrayList<>(); for (int i = 1; i <= 12 ; i++) { ard-work/src/main/java/com/ruoyi/utils/mqtt/MqttConsumerCallback.java
@@ -2,6 +2,7 @@ import com.ruoyi.alarm.global.service.impl.GlobalAlarmServiceImpl; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.statistical.service.StatisticalService; import com.ruoyi.storage.minio.service.IStorageMinioEventService; import lombok.extern.slf4j.Slf4j; import org.eclipse.paho.client.mqttv3.*; @@ -80,8 +81,9 @@ } if (topic.equals("radarWellData")) { IStorageMinioEventService storageMinioEventService = SpringUtils.getBean(IStorageMinioEventService.class); storageMinioEventService.parseStorageMinioEvent(new String(message.getPayload(), StandardCharsets.UTF_8)); // System.out.println(new String(message.getPayload(), StandardCharsets.UTF_8)); StatisticalService statisticalService = SpringUtils.getBean(StatisticalService.class); statisticalService.data(new String(message.getPayload(), StandardCharsets.UTF_8)); } } catch (Exception e) { log.debug("处理mqtt消息异常:" + e);