|
@@ -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();
|