8 Commity 899dff88cc ... d2c720187f

Autor SHA1 Wiadomość Data
  lyq d2c720187f 218工程车、222区域入侵、237违章建筑自动研判 1 miesiąc temu
  lyq 11681dd4b0 218工程车取消自动研判 1 miesiąc temu
  lyq 9612716b48 218工程车、222区域入侵自动研判 1 miesiąc temu
  lyq 6d998e99c7 218工程车、222区域入侵自动研判 1 miesiąc temu
  lyq 7ca7f35291 218工程车、222区域入侵自动研判 1 miesiąc temu
  lyq 21563caf25 自动研判火情 2 miesięcy temu
  lyq ec4feb6fe8 自动研判火情 2 miesięcy temu
  lyq b002fa46d3 自动研判火情 2 miesięcy temu

+ 2 - 1
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/controller/AlarmEventController.java

@@ -101,7 +101,8 @@ public class AlarmEventController {
         try {
             CentereventTReportmessage tReportMessage = new CentereventTReportmessage();
             tReportMessage.setId(eventCode);
-            tReportMessage.setSource("大华摄像头-" + MapUtils.getString(daHuaFireEventVO.getInfo(), "alarmType"));
+            String alarmName = StringUtils.isBlank(MapUtils.getString(daHuaFireEventVO.getInfo(), "alarmTypeName")) ? MapUtils.getString(daHuaFireEventVO.getInfo(), "alarmType") : MapUtils.getString(daHuaFireEventVO.getInfo(), "alarmTypeName");
+            tReportMessage.setSource("大华摄像头-" + alarmName);
             tReportMessage.setContext(jsonStr);
             centereventTReportmessageService.insertCentereventTReportmessage(tReportMessage);
         } catch (Exception e) {

+ 47 - 1
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/AlarmEventServiceImpl.java

@@ -35,8 +35,12 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.client.RestTemplate;
 
 import java.util.ArrayList;
 import java.util.Date;
@@ -68,6 +72,9 @@ public class AlarmEventServiceImpl implements AlarmEventService {
     @Value("${sooka.dahuaservice.detail}")
     private String detailUrl;
 
+    @Value("${sooka.supermap.datasetUrl}")
+    private String datasetUrl;
+
     static final String ERROR_MSG_CHANNEL = "无法匹配相关设备!通道编号为:{}";
 
     static final String ERROR_MSG_DEPT = "无法匹配相关部门!摄像头编号为:{}";
@@ -185,6 +192,10 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         centereventTEventcatalogue.setIsUrged(SYS_ISURGE_2);//sys_isurge_2
         centereventTEventcatalogue.setEventStatus("上报");
         centereventTEventcatalogue.setEventStatusValue(FOREST_EVENT_STATUS_1);//forest_event_status_1
+        // 自动研判误报,218工程车、222区域入侵、237违章建筑
+        if ("218".equals(centereventTEventcatalogue.getEventTypeXl()) || "222".equals(centereventTEventcatalogue.getEventTypeXl()) || "237".equals(centereventTEventcatalogue.getEventTypeXl())) {
+            test(centereventTEventcatalogue);
+        }
         centereventTEventcatalogue.setCreateBy(centerdataTCamera.getId());
         centereventTEventcatalogue.setCreateName(centerdataTCamera.getCameraName());
         centereventTEventcatalogue.setCreateTime(null == createTime ? DateUtils.getNowDate() : createTime);
@@ -192,6 +203,41 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         return centereventTEventcatalogue;
     }
 
+    private void test(CentereventTEventcatalogue centereventTEventcatalogue) {
+        try {
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            for (String url : datasetUrl.split(";")) {
+                JSONObject requestBody = JSONObject.parseObject("{" +
+                        "\"getFeatureMode\": \"SPATIAL\"," +
+                        "\"datasetNames\": " + url.split("&datasetNames=")[1] + "," +
+                        "\"geometry\": {" +
+                        "\"id\": 0," +
+                        "\"style\": null," +
+                        "\"parts\": [1]," +
+                        "\"points\": [{" +
+                        "\"y\": " + Double.parseDouble(centereventTEventcatalogue.getLatitude()) + "," +
+                        "\"x\": " + Double.parseDouble(centereventTEventcatalogue.getLongitude()) +
+                        "}]," +
+                        "\"type\": \"POINT\"}," +
+                        "\"spatialQueryMode\": \"INTERSECT\"" +
+                        "}");
+                HttpEntity<JSONObject> entity = new HttpEntity<>(requestBody, headers);
+                RestTemplate restTemplate = new RestTemplate();
+                JSONObject result = restTemplate.postForEntity(url.split("&datasetNames=")[0], entity, JSONObject.class).getBody();
+                logger.info(result.toJSONString());
+                // {"features":[],"featureUriList":[],"datasetInfos":[],"totalCount":0,"featureCount":0}
+                if (result.getLong("totalCount") != 0 && result.getLong("featureCount") != 0) {
+                    centereventTEventcatalogue.setEventStatus("误报");
+                    centereventTEventcatalogue.setEventStatusValue("forest_event_status_3");
+                    break;
+                }
+            }
+        } catch (Exception e) {
+            logger.error(e.getMessage());
+        }
+    }
+
     // 事件部门
     private void insertEventDept(CentereventTEventcatalogue centereventTEventcatalogue, List<CenterdataTAidevicedept> listDept) {
         listDept.forEach(item -> {
@@ -398,7 +444,7 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         // 事件目录
         String eventType = centereventTEventtype.getParentId();
         String eventTypeXl = centereventTEventtype.getId();
-        String eventName = centerdataTCamera.getCameraName() + DateUtils.parseDateToStr(YYYY_MM_DD_HH_MM_SS, DateUtils.timestampToTime(daHuaOtherEventVO.getOccurrenceTime())) + daHuaOtherEventVO.getAlarmName();
+        String eventName = centerdataTCamera.getCameraName() + DateUtils.parseDateToStr(YYYY_MM_DD_HH_MM_SS, DateUtils.timestampToTime(daHuaOtherEventVO.getOccurrenceTime())) + centereventTEventtype.getEventTypeName();
         String eventDescription = daHuaOtherEventVO.toString();
         String longitude = daHuaOtherEventVO.getLongitude();
         String latitude = daHuaOtherEventVO.getLatitude();