فهرست منبع

获取记录仪位置数据迁移

bihuisong 1 ماه پیش
والد
کامیت
9ce2d83af7

+ 29 - 6
src/main/java/com/sooka/sponest/monitor/dahua/controller/EquipmentStatusTaskController.java

@@ -4,9 +4,13 @@ package com.sooka.sponest.monitor.dahua.controller;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.nacos.shaded.com.google.gson.Gson;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.sooka.sponest.monitor.camera.mapper.CentermonitorTCameraMapper;
+import com.sooka.sponest.monitor.dahua.domain.CentermonitorTMonitoringEquipmentPositionDO;
+import com.sooka.sponest.monitor.dahua.mapper.CentermonitorTMonitoringEquipmentPositionMapper;
+import com.sooka.sponest.monitor.dahua.service.DahuaService;
 import com.sooka.sponest.monitor.dahua.utils.HttpEnum;
 import com.sooka.sponest.monitor.dahua.utils.HttpTestUtils;
 import com.sooka.sponest.monitor.remoteapi.service.lawenforcement.RemoteLawenforcementBaseService;
@@ -16,8 +20,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.util.Arrays;
@@ -40,7 +43,6 @@ import static org.springframework.web.bind.annotation.RequestMethod.GET;
 @RequestMapping("/equipmentStatus/quartz")
 public class EquipmentStatusTaskController {
 
-
     @Resource
     private CentermonitorTCameraMapper centermonitorTCameraMapper;
     @Resource
@@ -53,16 +55,19 @@ public class EquipmentStatusTaskController {
     private String userName;
     @Value("${sooka.dahua_interface_server.userPwd}")
     private String userPwd;
-//    private String loginIp = "10.53.0.35";
+    //    private String loginIp = "10.53.0.35";
 //    private String loginPort = "7901";
 //    private String userName = "system";
 //    private String userPwd = "Admin123";
     //按组织获取设备详细信息
     public static final String ACTION = "/videoService/devicesManager/devicesInfo";
     private List<String> orgCodes = Arrays.asList("11033445593778368", "11248668755298496");
+    @Resource
+    DahuaService dahuaService;
+    @Resource
+    CentermonitorTMonitoringEquipmentPositionMapper centermonitorTMonitoringEquipmentPositionMapper;
 
-
-//    @Scheduled(cron = "0/5 * * * * ?")
+    //    @Scheduled(cron = "0/5 * * * * ?")
     @Log(title = "对接大华根据组织获取执法记录仪、单兵设备在线状态定时任务", businessType = BusinessType.OTHER)
     @ApiOperation(value = "对接大华根据组织获取执法记录仪、单兵设备在线状态定时任务", notes = "对接大华根据组织获取执法记录仪、单兵设备在线状态定时任务")
     @RequestMapping(value = "/getLongPollingPositionMsg", method = GET)
@@ -151,4 +156,22 @@ public class EquipmentStatusTaskController {
         }
     }
 
+    /**
+     *获取记录仪位置数据
+     */
+    @PostMapping("putDahuaRecorderLocation")
+    @ResponseBody
+    public AjaxResult insertLocationListToday(@RequestBody CentermonitorTMonitoringEquipmentPositionDO centermonitorTMonitoringEquipmentPositionDO) {
+        try {
+            dahuaService.insertEquipmentPosition(centermonitorTMonitoringEquipmentPositionDO);
+            //更新执法记录仪经纬度
+            log.info("获取记录仪位置数据:{}",centermonitorTMonitoringEquipmentPositionDO);
+            centermonitorTMonitoringEquipmentPositionMapper.updateLongitudeAndLatitudeByCameraCode(centermonitorTMonitoringEquipmentPositionDO.getGpsX(),centermonitorTMonitoringEquipmentPositionDO.getGpsY(),centermonitorTMonitoringEquipmentPositionDO.getChannelCode());
+            return AjaxResult.success();
+        } catch (Exception e) {
+            e.printStackTrace();
+            return AjaxResult.error(500, "内部服务器错误");
+        }
+    }
+
 }

+ 47 - 0
src/main/java/com/sooka/sponest/monitor/dahua/domain/CentermonitorTMonitoringEquipmentPositionDO.java

@@ -0,0 +1,47 @@
+package com.sooka.sponest.monitor.dahua.domain;
+
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+public class CentermonitorTMonitoringEquipmentPositionDO {
+
+    private String event;
+
+    private String deviceCode;
+
+    private String isOnline;
+
+    private String dataSource;
+
+    private String gpsX;
+
+    private String gpsY;
+
+    private String height;
+
+    private String angle;
+
+    private String speed;
+
+    private String starCount;
+
+    private String antennaStatus;
+
+    private String orientationStatus;
+
+    private String extendInfo;
+
+    private String capTime;
+
+    private String channelCode;
+
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+
+}

+ 25 - 0
src/main/java/com/sooka/sponest/monitor/dahua/mapper/CentermonitorTMonitoringEquipmentPositionMapper.java

@@ -0,0 +1,25 @@
+package com.sooka.sponest.monitor.dahua.mapper;
+
+import com.sooka.sponest.monitor.dahua.domain.CentermonitorTMonitoringEquipmentPositionDO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 长轮询获取设备位置消息
+ *
+ * @author ruoyi
+ * @date 2024-07-31
+ */
+public interface CentermonitorTMonitoringEquipmentPositionMapper {
+
+    /**
+     * 长轮询获取设备位置消息
+     */
+    public int insertEquipmentPosition(CentermonitorTMonitoringEquipmentPositionDO centermonitorTMonitoringEquipmentPositionDO);
+
+
+    List<CentermonitorTMonitoringEquipmentPositionDO> selectRecorderGPSList();
+
+    void updateLongitudeAndLatitudeByCameraCode(@Param("longitude")String longitude, @Param("latitude")String latitude, @Param("code")String code);
+}

+ 14 - 0
src/main/java/com/sooka/sponest/monitor/dahua/service/DahuaService.java

@@ -0,0 +1,14 @@
+package com.sooka.sponest.monitor.dahua.service;
+
+import com.sooka.sponest.monitor.dahua.domain.CentermonitorTMonitoringEquipmentPositionDO;
+
+import java.util.List;
+
+public interface DahuaService {
+
+    /**
+     * 获取记录仪位置数据
+     * */
+    void insertEquipmentPosition(CentermonitorTMonitoringEquipmentPositionDO centermonitorTMonitoringEquipmentPositionDO);
+
+}

+ 28 - 0
src/main/java/com/sooka/sponest/monitor/dahua/service/impl/DahuaServiceImpl.java

@@ -0,0 +1,28 @@
+package com.sooka.sponest.monitor.dahua.service.impl;
+
+
+import com.sooka.sponest.monitor.base.service.impl.BaseService;
+import com.sooka.sponest.monitor.dahua.domain.CentermonitorTMonitoringEquipmentPositionDO;
+import com.sooka.sponest.monitor.dahua.mapper.CentermonitorTMonitoringEquipmentPositionMapper;
+import com.sooka.sponest.monitor.dahua.service.DahuaService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+
+@Service
+public class DahuaServiceImpl extends BaseService implements DahuaService {
+
+    @Resource
+    private CentermonitorTMonitoringEquipmentPositionMapper centermonitorTMonitoringEquipmentPositionMapper;
+
+    /**
+     * 获取记录仪位置数据
+     */
+    @Override
+    public void insertEquipmentPosition(CentermonitorTMonitoringEquipmentPositionDO centermonitorTMonitoringEquipmentPositionDO) {
+        centermonitorTMonitoringEquipmentPositionMapper.insertEquipmentPosition(centermonitorTMonitoringEquipmentPositionDO);
+    }
+
+
+}

+ 57 - 0
src/main/resources/mapper/monitor/device/CentermonitorTMonitoringEquipmentPositionMapper.xml

@@ -0,0 +1,57 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.sooka.sponest.monitor.dahua.mapper.CentermonitorTMonitoringEquipmentPositionMapper">
+
+    <resultMap type="CentermonitorTMonitoringEquipmentPositionDO" id="CentermonitorTMonitoringEquipmentPositionResult">
+        <result property="id" column="id"/>
+        <result property="angle" column="angle"/>
+        <result property="event" column="event"/>
+        <result property="deviceCode" column="device_code"/>
+        <result property="dataSource" column="data_source"/>
+        <result property="gpsX" column="gps_x"/>
+        <result property="gpsY" column="gps_y"/>
+        <result property="height" column="height"/>
+        <result property="speed" column="speed"/>
+        <result property="starCount" column="star_count"/>
+        <result property="antennaStatus" column="antenna_status"/>
+        <result property="orientationStatus" column="orientation_status"/>
+        <result property="extendInfo" column="extend_info"/>
+        <result property="capTime" column="cap_time"/>
+        <result property="createTime" column="create_time"/>
+        <result property="channelCode" column="channel_code"/>
+    </resultMap>
+
+    <insert id="insertEquipmentPosition">
+        insert into centermonitor_t_monitoring_equpment_position (angle,is_online,
+        `event`,device_code,data_source,gps_x,gps_y,height,speed,star_count,antenna_status,orientation_status,extend_info,cap_time,create_time,channel_code)
+        values
+            (#{angle},#{isOnline}, #{event}, #{deviceCode}, #{dataSource}, #{gpsX}, #{gpsY},
+            #{height}, #{speed}, #{starCount}, #{antennaStatus}, #{orientationStatus},
+            #{extendInfo}, #{capTime},now(), #{channelCode})
+    </insert>
+
+    <select id="selectRecorderGPSList" resultMap="CentermonitorTMonitoringEquipmentPositionResult" parameterType="CentermonitorTMonitoringEquipmentPositionDO">
+        SELECT
+            *
+        FROM
+            `centermonitor_t_monitoring_equpment_position` t1
+        WHERE
+            create_time = (
+                SELECT
+                    MAX(create_time)
+                FROM
+                    `centermonitor_t_monitoring_equpment_position` AS t2
+                WHERE
+                    t1.device_code = t2.device_code
+            )
+        GROUP BY
+            device_code;
+    </select>
+
+    <update id="updateLongitudeAndLatitudeByCameraCode">
+        UPDATE centermonitor_t_camera
+        SET longitude = #{longitude},latitude = #{latitude} where camera_code = #{code}
+    </update>
+</mapper>