ソースを参照

无人机事件

Memory_LG 2 ヶ月 前
コミット
1994e486ef

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

@@ -249,6 +249,29 @@ public class AlarmEventController extends BaseController {
      *  "longitude":107.487296322                                                           //隐患经度
      *  }]
      * }
+     *
+     * {
+    "data": [
+        {
+            "alarmType": "FireAndSmoke",                                                    //隐患类型
+            "altitude": 0,                                                                     //海拔高度
+            "copterId": "1581F8HGX253E00A04BU",
+            "creationTime": "2025-06-26 10:45:19",                                                         //隐患时间
+            "disposeStatus": "0",
+            "houseNumber": "--",
+            "isHidden": "0",
+            "latitude": 32.9013743440057,                                                               //隐患纬度
+            "longitude": 108.53956092445715,                                                          //隐患经度
+            "photoId": 74,                                                                     //隐患图片id
+            "photoName": "1750905919374.JPG",
+            "photoPath": "http://192.168.122.19:9000/dji-photos/wayline/1750905919374.JPG",   //隐患图片地址
+            "photoType": "IMG",
+            "sourceType": "AI",
+            "timeStamp": 0
+        }
+    ]
+}
+     *
      */
     @PostMapping("/droneReport")
     public AjaxResult droneReport(@RequestBody String jsonStr) {
@@ -266,11 +289,9 @@ public class AlarmEventController extends BaseController {
                 logger.error("数据格式异常: 缺少data数组");
                 return AjaxResult.error("数据格式异常");
             }
-
             List<DroneVO> droneArray = dataArray.stream()
                     .map(data -> JSON.parseObject(data.toString(), DroneVO.class))
                     .collect(Collectors.toList());
-
             return toAjax(alarmEventService.insertDroneEvent(droneArray));
         } catch (Exception e) {
             logger.error("数据处理失败: {}", e.getMessage());

+ 10 - 0
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/domain/vo/DroneVO.java

@@ -64,4 +64,14 @@ public class DroneVO {
      */
     private String localPath;
 
+    private String disposeStatus;
+
+    private String houseNumber;
+
+    private String isHidden;
+
+    private String photoType;
+
+    private String sourceType;
+
 }

+ 18 - 23
src/main/java/com/sooka/sponest/event/centereventteventcatalogue/service/impl/AlarmEventServiceImpl.java

@@ -86,8 +86,8 @@ public class AlarmEventServiceImpl implements AlarmEventService {
     @Value("${sooka.dahuaservice.detail}")
     private String detailUrl;
 
-    @Value("${sooka.supermap.datasetUrl}")
-    private String datasetUrl;
+    /*@Value("${sooka.supermap.datasetUrl}")
+    private String datasetUrl;*/
 
     static final String ERROR_MSG_CHANNEL = "无法匹配相关设备!通道编号为:{}";
 
@@ -220,7 +220,7 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         return centereventTEventcatalogue;
     }
 
-    private void test(CentereventTEventcatalogue centereventTEventcatalogue) {
+    /*private void test(CentereventTEventcatalogue centereventTEventcatalogue) {
         try {
             HttpHeaders headers = new HttpHeaders();
             headers.setContentType(MediaType.APPLICATION_JSON);
@@ -256,7 +256,7 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         } catch (Exception e) {
             logger.error(e.getMessage());
         }
-    }
+    }*/
 
     // 事件部门
     private void insertEventDept(CentereventTEventcatalogue centereventTEventcatalogue, List<CenterdataTAidevicedept> listDept) {
@@ -704,14 +704,6 @@ public class AlarmEventServiceImpl implements AlarmEventService {
 
     @Override
     public int insertDroneEvent(List<DroneVO> alarmData) {
-//        Map<Object, Object> eventType = new HashMap<>();
-//        eventType.put("Sheep","222");
-//        eventType.put("Car","218");
-
-//        Map<Object, Object> eventLabel = new HashMap<>();
-//        eventLabel.put("Sheep","区域入侵");
-//        eventLabel.put("Car","工程车检测");
-
         // 将告警图片转换为本地图片
         alarmData.parallelStream().forEach(item -> {
             item.setId(IdUtils.simpleUUID());
@@ -725,36 +717,37 @@ public class AlarmEventServiceImpl implements AlarmEventService {
         });
         // 通过无人机id, 获取无人机信息和绑定的指挥中心
         alarmData.forEach(alarm->{
-            CentermonitorTUav data = SpringUtils.getBean(RemoteMonitorService.class).selectUavByUavId(alarm.getCopterId()).getData();
-
-            String eventName = data.getUavName()+"上报火情事件事件";
-            String eventDescription = "基站:"+data.getBaseStationName()+",无人机:"+data.getUavName()+",经度:"+alarm.getLongitude()+",纬度:"+alarm.getLatitude()+",海拔:"+alarm.getAltitude();
+            Map<String, Object> data = (Map<String, Object>) SpringUtils.getBean(RemoteMonitorService.class).selectUavByUavId(alarm.getCopterId()).get("data");
+            String eventName = MapUtils.getString(data, "uavName")+"上报火情事件事件";
+            String eventDescription = "基站:"+MapUtils.getString(data, "baseStationName")+",无人机:"+MapUtils.getString(data, "uavName")+",经度:"+alarm.getLongitude()+",纬度:"+alarm.getLatitude()+",海拔:"+alarm.getAltitude();
 
             //创建事件主体, 写入事件表.
-            CentereventTEventcatalogue centereventTEventcatalogue = new CentereventTEventcatalogue("1",null, eventName, eventDescription, alarm.getLongitude(), alarm.getLatitude(), data.getUavName(), alarm.getCreationTime(), "");
+            CentereventTEventcatalogue centereventTEventcatalogue = new CentereventTEventcatalogue("1",null, eventName, eventDescription, alarm.getLongitude(), alarm.getLatitude(), MapUtils.getString(data, "uavName"), alarm.getCreationTime(), "");
             centereventTEventcatalogue.setLongitude(alarm.getLongitude());
             centereventTEventcatalogue.setLatitude(alarm.getLatitude());
             centereventTEventcatalogue.setReportSource(REPORTING_SOURCE_6);
             CenterdataTCamera centerdataTCamera = new CenterdataTCamera();
             centerdataTCamera.setId(alarm.getCopterId());
-            centerdataTCamera.setCameraName(data.getUavName());
+            centerdataTCamera.setCameraName(MapUtils.getString(data, "uavName"));
             centereventTEventcatalogue = this.insertEventCatalogue(centereventTEventcatalogue, centerdataTCamera, alarm.getCreationTime());
 
             String eventCode = centereventTEventcatalogue.getEventCode();
             String createName = centereventTEventcatalogue.getCreateName();
             Date createTime = centereventTEventcatalogue.getCreateTime();
+
+            List<Map<String, Object>> deptList = (List<Map<String, Object>>) data.get("deptList");
             // 事件部门
-            data.getDeptList().forEach(item -> {
+            deptList.forEach(item -> {
                 CentereventDeptEvent centereventTDeptEvent = new CentereventDeptEvent();
                 centereventTDeptEvent.setId(IdUtils.fastSimpleUUID());
                 centereventTDeptEvent.setEventCode(eventCode);
-                centereventTDeptEvent.setDeptId(item.getDeptId());
-                centereventTDeptEvent.setDeptName(item.getDeptName());
+                centereventTDeptEvent.setDeptId(MapUtils.getLong(item, "deptId"));
+                centereventTDeptEvent.setDeptName(MapUtils.getString(item,"deptName"));
                 centereventTDeptEvent.setIsUrged(SYS_ISURGE_2);
                 centereventTDeptEvent.setEventStatus("上报");
                 centereventTDeptEvent.setEventStatusValue(FOREST_EVENT_STATUS_1);
                 centereventTDeptEvent.setDeptHandleType(DEPT_HANDLE_TYPE_2);
-                centereventTDeptEvent.setCreateBy(alarm.getCopterId());
+                centereventTDeptEvent.setCreateBy(MapUtils.getString(data, "uavId"));
                 centereventTDeptEvent.setCreateName(createName);
                 centereventTDeptEvent.setCreateTime(createTime);
                 centereventTDeptEventService.insertCentereventTDeptEvent(centereventTDeptEvent);
@@ -768,7 +761,7 @@ public class AlarmEventServiceImpl implements AlarmEventService {
             centereventTFireLog.setLogContent(centereventTEventcatalogue.getEventName() + System.getProperty("line.separator") + centereventTEventcatalogue.getEventDescription());
             centereventTFireLog.setOperation(BUS_OPER_TYPE_2);
             centereventTFireLog.setOperationType(LOG_OPER_TYPE_4);
-            centereventTFireLog.setCreateBy(alarm.getCopterId());
+            centereventTFireLog.setCreateBy(MapUtils.getString(data, "uavId"));
             centereventTFireLog.setCreateName(centereventTEventcatalogue.getCreateName());
             centereventTFireLog.setCreateTime(centereventTEventcatalogue.getCreateTime());
             if(StringUtils.isNotEmpty(centereventTEventcatalogue.getLongitude())){
@@ -779,6 +772,7 @@ public class AlarmEventServiceImpl implements AlarmEventService {
             }
             centereventTFireLogService.insertCentereventTFireLog(centereventTFireLog);
 
+
             //事件附件
             if (StringUtils.isNotBlank(alarm.getLocalPath())) {
                 CenterdataTAttach tAttach = new CenterdataTAttach();
@@ -791,6 +785,7 @@ public class AlarmEventServiceImpl implements AlarmEventService {
             }
         });
 
+        logger.info("写入无人机数据表");
         return alarmEventMapper.insertDrone(alarmData);
     }
 

+ 1 - 5
src/main/java/com/sooka/sponest/event/centereventteventcollect/service/impl/CentereventTEventCollectServiceImpl.java

@@ -47,11 +47,7 @@ public class CentereventTEventCollectServiceImpl implements ICentereventTEventCo
         if(StringUtils.isBlank(centereventTEventCollect.getUserId())){
             centereventTEventCollect.setUserId(SecurityUtils.getUserId().toString());
         }
-        List<CentereventTEventCollect> centereventTEventCollects = centereventTEventCollectMapper.selectCentereventTEventCollectList(centereventTEventCollect);
-        for (CentereventTEventCollect collect : centereventTEventCollects) {
-            collect.setReportor(DictUtils.getDictDataByValue("reporting_source",collect.getReportSource()));
-        }
-        return centereventTEventCollects;
+        return centereventTEventCollectMapper.selectCentereventTEventCollectList(centereventTEventCollect);
     }
 
     /**

+ 2 - 15
src/main/resources/mapper/centereventteventcatalogue/AlarmEventMapper.xml

@@ -3,26 +3,13 @@
         PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.sooka.sponest.event.centereventteventcatalogue.mapper.AlarmEventMapper">
-    <resultMap id="resultDroneMapper" type="droneVo">
-        <id column="id" jdbcType="VARCHAR" property="id"/>
-        <result column="time_stamp" jdbcType="VARCHAR" property="timeStamp"/>
-        <result column="altitude" jdbcType="VARCHAR" property="altitude"/>
-        <result column="alarm_type" jdbcType="VARCHAR" property="alarmType"/>
-        <result column="create_time" jdbcType="VARCHAR" property="creationTime"/>
-        <result column="photo_path" jdbcType="VARCHAR" property="photoPath"/>
-        <result column="latitude" jdbcType="VARCHAR" property="latitude"/>
-        <result column="longitude" jdbcType="VARCHAR" property="longitude"/>
-        <result column="photo_id" jdbcType="VARCHAR" property="photoId"/>
-        <result column="photo_name" jdbcType="VARCHAR" property="photoName"/>
-        <result column="local_path" jdbcType="VARCHAR" property="localPath"/>
-    </resultMap>
 
     <insert id="insertDrone" parameterType="list">
         insert into centerevent_t_drone
-        (id, time_stamp, altitude, alarm_type, create_time, photo_path, latitude, longitude, photo_id, photo_name, local_path)
+        (id, copter_id, time_stamp, altitude, alarm_type, create_time, photo_path, latitude, longitude, photo_id, photo_name, local_path, dispose_status, house_number, is_hidden, photo_type, source_type)
         values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.id}, #{item.timeStamp}, #{item.altitude}, #{item.alarmType}, #{item.creationTime}, #{item.photoPath}, #{item.latitude}, #{item.longitude}, #{item.photoId}, #{item.photoName}, #{item.localPath})
+            (#{item.id}, #{item.copterId}, #{item.timeStamp}, #{item.altitude}, #{item.alarmType}, #{item.creationTime}, #{item.photoPath}, #{item.latitude}, #{item.longitude}, #{item.photoId}, #{item.photoName}, #{item.localPath})
         </foreach>
     </insert>
 </mapper>

+ 1 - 1
src/main/resources/mapper/centereventteventcollect/CentereventTEventCollectMapper.xml

@@ -48,7 +48,7 @@
         select b.id, a.event_code, y1.event_type_name eventTypeLabel, y2.event_type_name eventTypeXlLabel, event_name,
         event_description, report_source, longitude, latitude, reportor, a.is_urged, a.event_status,
         a.event_status_value, a.create_by, a.create_name, a.create_time, a.update_by, a.update_name, a.update_time,
-        data_status, a.dept_id, a.dept_name, address, urge_count
+        data_status, a.dept_id, a.dept_name, address, urge_count, a.report_time
         from centerevent_t_event_collect b left join centerevent_t_eventcatalogue a on a.event_code = b.event_code
         left join centerevent_t_eventtype y1 on y1.id = a.event_type
         left join centerevent_t_eventtype y2 on y2.id = a.event_type_xl