From e5b23b9797083fbbbbe530ce76ffa3723bc3422f Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期四, 08 六月 2023 16:12:58 +0800
Subject: [PATCH] 增加管线泄露报警点高层算法

---
 ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/GlobalAlarmServiceImpl.java |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 59 insertions(+), 1 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/GlobalAlarmServiceImpl.java b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/GlobalAlarmServiceImpl.java
index 823bd40..5b9a23f 100644
--- a/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/GlobalAlarmServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/alarm/globalAlarm/service/GlobalAlarmServiceImpl.java
@@ -1,13 +1,29 @@
 package com.ruoyi.alarm.globalAlarm.service;
 
+import com.alibaba.fastjson2.JSONObject;
 import com.ruoyi.alarm.globalAlarm.domain.GlobalAlarmCondition;
 import com.ruoyi.alarm.stealAlarm.domain.ArdAlarmStealelec;
 import com.ruoyi.alarm.stealAlarm.mapper.ArdAlarmStealelecMapper;
+import com.ruoyi.alarm.tubeAlarm.domain.ArdAlarmTube;
+import com.ruoyi.alarm.tubeAlarm.mapper.ArdAlarmTubeMapper;
+import com.ruoyi.alarm.tubeAlarm.service.IArdAlarmTubeService;
+import com.ruoyi.alarmpoints.tube.domain.ArdTubes;
+import com.ruoyi.alarmpoints.tube.domain.ArdTubesDetails;
+import com.ruoyi.alarmpoints.tube.mapper.ArdTubesDetailsMapper;
+import com.ruoyi.alarmpoints.tube.mapper.ArdTubesMapper;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.uuid.UUID;
+import com.ruoyi.utils.tube.GeoPoint;
+import com.ruoyi.utils.tube.TubeTools;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.List;
+
+import static jdk.nashorn.internal.runtime.regexp.joni.Config.log;
 
 /**
  * @ClassName: globalAlarmServiceImpl
@@ -17,10 +33,16 @@
  * @Version: 1.0
  **/
 @Service
+@Slf4j(topic = "mqtt")
 public class GlobalAlarmServiceImpl implements IGlobalAlarmService {
     @Resource
     ArdAlarmStealelecMapper ardAlarmStealelecMapper;
-
+    @Resource
+    IArdAlarmTubeService ardAlarmTubeService;
+    @Resource
+    ArdTubesMapper ardTubesMapper;
+    @Resource
+    ArdTubesDetailsMapper ardTubesDetailsMapper;
     @Override
     public List<Object> selectAlarmLogs(GlobalAlarmCondition condition) {
         switch (condition.getCommand()) {
@@ -32,4 +54,40 @@
         }
     }
 
+    @Override
+    @Async("alarmExecutor")
+    public void receiveAlarm(String topic,String message)
+    {
+        switch (topic)
+        {
+            case "tube":
+                ArdAlarmTube ardAlarmTube = JSONObject.parseObject(message,ArdAlarmTube.class);
+                ardAlarmTube.setId(UUID.randomUUID().toString().replace("-",""));
+                ArdTubesDetails atd=new ArdTubesDetails();
+                atd.setReelNumber(ardAlarmTube.getTubeId());
+                List<ArdTubesDetails> ardTubesDetails = ardTubesDetailsMapper.selectArdTubesDetailsList(atd);
+                if(ardTubesDetails.size()>0)
+                {
+                    String tubeId = ardTubesDetails.get(0).getTubeId();
+                    ArdTubes ardTubes = ardTubesMapper.selectArdTubesById(tubeId);
+                    ardAlarmTube.setTubeName(ardTubes.getName());
+                    ardAlarmTube.setColor(ardTubes.getColor());
+                    ardAlarmTube.setPipeDiameter(ardTubes.getPipeDiameter());
+                    ardAlarmTube.setTubeType(ardTubes.getType());
+                    GeoPoint geoPoint = TubeTools.CalculateCoordinates(ardTubesDetails, ardAlarmTube.getPosition());
+                    if(StringUtils.isNotNull(geoPoint))
+                    {
+                        ardAlarmTube.setLongitude(geoPoint.getLongitude());
+                        ardAlarmTube.setLatitude(geoPoint.getLatitude());
+                        ardAlarmTube.setAltitude(geoPoint.getAltitude());
+                    }
+                }
+                int i = ardAlarmTubeService.insertArdAlarmTube(ardAlarmTube);
+                if(i>0)
+                {
+                    log.info("鍏ュ簱鎴愬姛锛�"+ardAlarmTube.toString());
+                }
+                break;
+        }
+    }
 }

--
Gitblit v1.9.3