From 8a788a51e44d59c6e9b4f88d603b3b87745dcfd7 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Sat, 18 Jan 2025 10:34:51 +0800
Subject: [PATCH] 增加执法记录仪数据读取

---
 /dev/null                                                                                                   |   64 ------
 src/main/java/org/springblade/modules/netty/business/service/DeviceChannelPoliceCameraService.java          |   19 +
 src/main/java/org/springblade/modules/netty/handle/UdpServerHandler.java                                    |   67 +++---
 src/main/java/org/springblade/modules/netty/business/entity/DeviceChannelPoliceCamera.java                  |  186 ++++++++++++++++++
 src/main/java/org/springblade/modules/system/mapper/DeviceChannelPoliceCameraMapper.xml                     |    0 
 src/main/java/org/springblade/modules/netty/business/entity/DeviceMobilePositionPoliceCamera.java           |   74 +++++++
 src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.java            |   41 ++++
 src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.xml             |   47 ++++
 pom.xml                                                                                                     |    2 
 src/main/java/org/springblade/modules/netty/business/service/impl/DeviceChannelPoliceCameraServiceImpl.java |   61 ++++++
 10 files changed, 459 insertions(+), 102 deletions(-)

diff --git a/pom.xml b/pom.xml
index 3c7c05d..c0cd521 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
     <version>3.0.1.RELEASE</version>
 
     <properties>
-        <bladex.project.id>srjw-talk</bladex.project.id>
+        <bladex.project.id>srjw-law</bladex.project.id>
         <bladex.project.version>3.0.1.RELEASE</bladex.project.version>
 
         <java.version>1.8</java.version>
diff --git a/src/main/java/org/springblade/modules/netty/business/entity/DeviceChannelPoliceCamera.java b/src/main/java/org/springblade/modules/netty/business/entity/DeviceChannelPoliceCamera.java
new file mode 100644
index 0000000..01be767
--- /dev/null
+++ b/src/main/java/org/springblade/modules/netty/business/entity/DeviceChannelPoliceCamera.java
@@ -0,0 +1,186 @@
+package org.springblade.modules.netty.business.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 执法记录仪 实体类
+ * @author zhongrj
+ * @date 2023-03-04
+ */
+@Data
+public class DeviceChannelPoliceCamera implements Serializable {
+
+	/**
+	 * 数据库自赠ID
+	 */
+	private Integer id;
+
+	/**
+	 * 通道id
+	 */
+	private String channelId;
+
+	/**
+	 * 设备id
+	 */
+	private String deviceId;
+
+	/**
+	 * 通道名
+	 */
+	private String name;
+
+	/**
+	 * 生产厂商
+	 */
+	private String manufacture;
+
+	/**
+	 * 型号
+	 */
+	private String model;
+
+	/**
+	 * 设备归属
+	 */
+	private String owner;
+
+	/**
+	 * 行政区域
+	 */
+	private String civilCode;
+
+	/**
+	 * 警区
+	 */
+	private String block;
+
+	/**
+	 * 安装地址
+	 */
+	private String address;
+
+	/**
+	 * 是否有子设备 1有, 0没有
+	 */
+	private int parental;
+
+	/**
+	 * 父级id
+	 */
+	private String parentId;
+
+	/**
+	 * 信令安全模式  缺省为0; 0:不采用; 2: S/MIME签名方式; 3: S/ MIME加密签名同时采用方式; 4:数字摘要方式
+	 */
+	private int safetyWay;
+
+	/**
+	 * 注册方式 缺省为1;1:符合IETFRFC3261标准的认证注册模 式; 2:基于口令的双向认证注册模式; 3:基于数字证书的双向认证注册模式
+	 */
+	private int registerWay;
+
+	/**
+	 * 证书序列号
+	 */
+	private String certNum;
+
+	/**
+	 * 证书有效标识 缺省为0;证书有效标识:0:无效1: 有效
+	 */
+	private int certifiable;
+
+	/**
+	 * 证书无效原因码
+	 */
+	private int errCode;
+
+	/**
+	 * 证书终止有效期
+	 */
+	private String endTime;
+
+	/**
+	 * 保密属性 缺省为0; 0:不涉密, 1:涉密
+	 */
+	private String secrecy;
+
+	/**
+	 * IP地址
+	 */
+	private String ipAddress;
+
+	/**
+	 * 端口号
+	 */
+	private int port;
+
+	/**
+	 * 密码
+	 */
+	private String password;
+
+	/**
+	 * 云台类型
+	 */
+	private int PTZType;
+
+	/**
+	 * 云台类型描述字符串
+	 */
+	private String PTZTypeText;
+
+	/**
+	 * 创建时间
+	 */
+	private String createTime;
+
+	/**
+	 * 更新时间
+	 */
+	private String updateTime;
+
+	/**
+	 * 在线/离线
+	 * 1在线,0离线
+	 * 默认在线
+	 * 信令:
+	 * <Status>ON</Status>
+	 * <Status>OFF</Status>
+	 * 遇到过NVR下的IPC下发信令可以推流, 但是 Status 响应 OFF
+	 */
+	private int status;
+
+	/**
+	 * 经度
+	 */
+	private double longitude;
+
+	/**
+	 * 纬度
+	 */
+	private double latitude;
+
+	/**
+	 * 子设备数
+	 */
+	private int subCount;
+
+	/**
+	 * 流唯一编号,存在表示正在直播
+	 */
+	private String streamId;
+
+	/**
+	 *  是否含有音频
+	 */
+	private boolean hasAudio;
+
+	/**
+	 * 传入时间
+	 */
+	private String gpsTime;
+
+}
diff --git a/src/main/java/org/springblade/modules/netty/business/entity/DeviceMobilePositionPoliceCamera.java b/src/main/java/org/springblade/modules/netty/business/entity/DeviceMobilePositionPoliceCamera.java
new file mode 100644
index 0000000..ef68774
--- /dev/null
+++ b/src/main/java/org/springblade/modules/netty/business/entity/DeviceMobilePositionPoliceCamera.java
@@ -0,0 +1,74 @@
+package org.springblade.modules.netty.business.entity;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 执法记录仪历史记录表
+ * @author: zhongrj
+ * @date: 2023-03-04
+ */
+@Data
+public class DeviceMobilePositionPoliceCamera implements Serializable {
+    /**
+     * id 自增
+     */
+    private Integer id;
+
+    /**
+     * 设备Id
+     */
+    private String deviceId;
+
+    /**
+     * 通道Id
+     */
+    private String channelId;
+
+    /**
+     * 设备名称
+     */
+    private String deviceName;
+
+    /**
+     * 通知时间
+     */
+    private String time;
+
+    /**
+     * 经度
+     */
+    private double longitude;
+
+    /**
+     * 纬度
+     */
+    private double latitude;
+
+    /**
+     * 海拔高度
+     */
+    private double altitude;
+
+    /**
+     * 速度
+     */
+    private double speed;
+
+    /**
+     * 方向
+     */
+    private double direction;
+
+    /**
+     * 位置信息上报来源(Mobile Position、GPS Alarm)
+     */
+    private String reportSource;
+
+	/**
+	 * 更新时间
+	 */
+	private String createTime;
+}
diff --git a/src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipment.java b/src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipment.java
deleted file mode 100644
index b97b408..0000000
--- a/src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipment.java
+++ /dev/null
@@ -1,102 +0,0 @@
-package org.springblade.modules.netty.business.entity;
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 对接设备信息表 实体类
- *
- * @author zhongrj
- * @since 2023-02-23
- */
-@Data
-public class TalkBackEquipment implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * 主键id
-	 */
-	private Long id;
-
-	/**
-	 * 设备名称
-	 */
-	private String name;
-
-	/**
-	 * 设备编号
-	 */
-	private String code;
-
-	/**
-	 * 设备状态 0:离线  1:在线
-	 */
-	private Integer status;
-
-	/**
-	 * 终端编号
-	 */
-	private String terminalNumber;
-
-	/**
-	 * 经度
-	 */
-	private String longitude;
-
-	/**
-	 * 纬度
-	 */
-	private String latitude;
-
-	/**
-	 * 速度,单位 米/秒
-	 */
-	private String speed;
-
-	/**
-	 * 方向,以正北方向为 0 角度,顺时针方向偏转
-	 */
-	private String direction;
-
-	/**
-	 * 高程,单位:米
-	 */
-	private String elevation;
-
-	/**
-	 * 精度
-	 */
-	private String precisions;
-
-	/**
-	 * 日期
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date receiveTime;
-
-	/**
-	 * 创建时间
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date createTime;
-
-	/**
-	 * 更新时间
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date updateTime;
-
-	/**
-	 * 说明
-	 */
-//	@ApiModelProperty(value = "说明")
-//	private String remark;
-}
diff --git a/src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipmentRecord.java b/src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipmentRecord.java
deleted file mode 100644
index caae77c..0000000
--- a/src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipmentRecord.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.springblade.modules.netty.business.entity;
-
-
-import com.fasterxml.jackson.annotation.JsonFormat;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.io.Serializable;
-import java.util.Date;
-
-/**
- * 对接设备信息记录表 实体类
- *
- * @author zhongrj
- * @since 2023-02-23
- */
-@Data
-public class TalkBackEquipmentRecord implements Serializable {
-
-	private static final long serialVersionUID = 1L;
-
-	/**
-	 * 主键id
-	 */
-	private Long id;
-
-	/**
-	 * 设备id
-	 */
-	private Long talkBackEquipmentId;
-
-	/**
-	 * 设备状态 0:离线  1:在线
-	 */
-	private Integer status;
-
-	/**
-	 * 终端编号
-	 */
-	private String terminalNumber;
-
-	/**
-	 * 经度
-	 */
-	private String longitude;
-
-	/**
-	 * 纬度
-	 */
-	private String latitude;
-
-	/**
-	 * 速度,单位 米/秒
-	 */
-	private String speed;
-
-	/**
-	 * 方向,以正北方向为 0 角度,顺时针方向偏转
-	 */
-	private String direction;
-
-	/**
-	 * 高程,单位:米
-	 */
-	private String elevation;
-
-	/**
-	 * 精度
-	 */
-	private String precisions;
-
-	/**
-	 * 日期
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date receiveTime;
-
-	/**
-	 * 创建时间
-	 */
-	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-	private Date createTime;
-
-//	/**
-//	 * 说明
-//	 */
-//	@ApiModelProperty(value = "说明")
-//	private String remark;
-}
diff --git a/src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.java b/src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.java
new file mode 100644
index 0000000..b009298
--- /dev/null
+++ b/src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.java
@@ -0,0 +1,41 @@
+package org.springblade.modules.netty.business.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Select;
+import org.springblade.modules.netty.business.entity.DeviceChannelPoliceCamera;
+import org.springblade.modules.netty.business.entity.DeviceMobilePositionPoliceCamera;
+
+/**
+ * 执法记录仪mapper映射层
+ * @author zhongrj
+ * @date 2023-03-02
+ */
+@Mapper
+public interface DeviceChannelPoliceCameraMapper {
+
+    /**
+     * 新增执法记录仪数据
+     * @param talkBackEquipment
+     */
+    void saveDeviceChannelPoliceCamera(DeviceChannelPoliceCamera talkBackEquipment);
+
+    /**
+     * 新增执法记录仪历史数据
+     * @param talkBackEquipmentRecord
+     */
+    void saveDeviceMobilePositionPoliceCamera(DeviceMobilePositionPoliceCamera talkBackEquipmentRecord);
+
+    /**
+     * 查询设备信息
+     * @param code
+     * @return
+     */
+    @Select("select * from device_channel_police_camera where channelId = #{code}")
+	DeviceChannelPoliceCamera getTalkBackEquipment(String code);
+
+    /**
+     * 修改执法记录仪信息
+     * @param talkBackEquipment
+     */
+    void updateDeviceChannelPoliceCamera(DeviceChannelPoliceCamera talkBackEquipment);
+}
diff --git a/src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.xml b/src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.xml
new file mode 100644
index 0000000..78a380c
--- /dev/null
+++ b/src/main/java/org/springblade/modules/netty/business/mapper/DeviceChannelPoliceCameraMapper.xml
@@ -0,0 +1,47 @@
+<?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="org.springblade.modules.netty.business.mapper.DeviceChannelPoliceCameraMapper">
+
+    <!--新增对讲设备信息-->
+    <insert id="saveDeviceChannelPoliceCamera" useGeneratedKeys="true" keyProperty="id">
+        insert into device_channel_police_camera
+        (
+        deviceId,name,channelId,status,longitude,latitude,
+        parental,hasAudio,createTime,updateTime
+        )
+        values
+        (
+        #{deviceId},#{name},#{channelId},#{status},#{longitude},#{latitude},
+        #{parental},#{hasAudio},#{createTime},#{updateTime}
+        )
+    </insert>
+
+    <!--新增对接设备历史记录信息-->
+    <insert id="saveDeviceMobilePositionPoliceCamera">
+        insert into device_mobile_position_police_camera
+        (
+        deviceId,channelId,time,longitude,latitude,speed,direction,altitude,createTime,reportSource
+        )
+        values
+        (
+        #{deviceId},#{channelId},#{time},#{longitude},#{latitude},#{speed},#{direction},#{altitude},#{createTime},#{reportSource}
+        )
+    </insert>
+
+    <!--修改对讲设备信息-->
+    <update id="updateDeviceChannelPoliceCamera">
+        update device_channel_police_camera
+        set
+        name = #{name},
+        status = #{status},
+        <if test="null!=longitude and longitude!=''">
+            longitude = #{longitude},
+        </if>
+        <if test="null!=latitude and latitude!=''">
+            latitude = #{latitude},
+        </if>
+        updateTime = #{updateTime}
+        where id = #{id}
+    </update>
+
+</mapper>
diff --git a/src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.java b/src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.java
deleted file mode 100644
index c52fa78..0000000
--- a/src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.springblade.modules.netty.business.mapper;
-
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Select;
-import org.springblade.modules.netty.business.entity.TalkBackEquipment;
-import org.springblade.modules.netty.business.entity.TalkBackEquipmentRecord;
-
-/**
- * 对讲设备mapper映射层
- * @author zhongrj
- * @date 2023-03-02
- */
-@Mapper
-public interface TalkBackEquipmentMapper {
-
-    /**
-     * 新增对讲设备数据
-     * @param talkBackEquipment
-     */
-    void saveTalkBackEquipment(TalkBackEquipment talkBackEquipment);
-
-    /**
-     * 新增对讲设备历史数据
-     * @param talkBackEquipmentRecord
-     */
-    void saveTalkBackEquipmentRecord(TalkBackEquipmentRecord talkBackEquipmentRecord);
-
-    /**
-     * 查询设备信息
-     * @param code
-     * @return
-     */
-    @Select("select * from sys_talk_back_equipment where terminal_number = #{code}")
-    TalkBackEquipment getTalkBackEquipment(String code);
-
-    /**
-     * 修改对讲设备信息
-     * @param talkBackEquipment
-     */
-    void updateTalkBackEquipment(TalkBackEquipment talkBackEquipment);
-}
diff --git a/src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.xml b/src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.xml
deleted file mode 100644
index 199827b..0000000
--- a/src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-<?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="org.springblade.modules.netty.business.mapper.TalkBackEquipmentMapper">
-
-    <!--新增对讲设备信息-->
-    <insert id="saveTalkBackEquipment" useGeneratedKeys="true" keyProperty="id">
-        insert into sys_talk_back_equipment
-        (
-        name,code,status,terminal_number,longitude,latitude,
-        speed,direction,elevation,precisions,receive_time,create_time,update_time
-        )
-        values
-        (
-        #{name},#{code},#{status},#{terminalNumber},#{longitude},#{latitude},
-        #{speed},#{direction},#{elevation},#{precisions},#{receiveTime},#{createTime},#{updateTime}
-        )
-    </insert>
-
-    <!--新增对接设备历史记录信息-->
-    <insert id="saveTalkBackEquipmentRecord">
-        insert into sys_talk_back_equipment_record
-        (
-        talk_back_equipment_id,status,terminal_number,
-        longitude,latitude,speed,direction,elevation,precisions,receive_time,create_time
-        )
-        values
-        (
-        #{talkBackEquipmentId},#{status},#{terminalNumber},
-        #{longitude},#{latitude},#{speed},#{direction},#{elevation},#{precisions},#{receiveTime},#{createTime}
-        )
-    </insert>
-
-    <!--修改对讲设备信息-->
-    <update id="updateTalkBackEquipment">
-        update sys_talk_back_equipment
-        set
-        code = #{code},
-        name = #{name},
-        status = #{status},
-        <if test="null!=terminalNumber and terminalNumber!=''">
-            terminal_number = #{terminalNumber},
-        </if>
-        <if test="null!=longitude and longitude!=''">
-            longitude = #{longitude},
-        </if>
-        <if test="null!=latitude and latitude!=''">
-            latitude = #{latitude},
-        </if>
-        <if test="null!=speed and speed!=''">
-            speed = #{speed},
-        </if>
-        <if test="null!=direction and direction!=''">
-            direction = #{direction},
-        </if>
-        <if test="null!=elevation and elevation!=''">
-            elevation = #{elevation},
-        </if>
-        <if test="null!=precisions and precisions!=''">
-            precisions = #{precisions},
-        </if>
-        <if test="null!=receiveTime">
-            receive_time = #{receiveTime},
-        </if>
-        update_time = #{updateTime}
-        where id = #{id}
-    </update>
-
-</mapper>
diff --git a/src/main/java/org/springblade/modules/netty/business/service/DeviceChannelPoliceCameraService.java b/src/main/java/org/springblade/modules/netty/business/service/DeviceChannelPoliceCameraService.java
new file mode 100644
index 0000000..9e3c020
--- /dev/null
+++ b/src/main/java/org/springblade/modules/netty/business/service/DeviceChannelPoliceCameraService.java
@@ -0,0 +1,19 @@
+package org.springblade.modules.netty.business.service;
+
+
+import org.springblade.modules.netty.business.entity.DeviceMobilePositionPoliceCamera;
+
+/**
+ * 执法记录仪信息表 服务类
+ *
+ * @author zhongrj
+ * @date 2023-03-02
+ */
+public interface DeviceChannelPoliceCameraService {
+
+    /**
+     * 保存执法记录仪设备数据
+     * @param deviceMobilePositionPoliceCamera
+     */
+    void save(DeviceMobilePositionPoliceCamera deviceMobilePositionPoliceCamera);
+}
diff --git a/src/main/java/org/springblade/modules/netty/business/service/TalkBackEquipmentService.java b/src/main/java/org/springblade/modules/netty/business/service/TalkBackEquipmentService.java
deleted file mode 100644
index 58309d6..0000000
--- a/src/main/java/org/springblade/modules/netty/business/service/TalkBackEquipmentService.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.springblade.modules.netty.business.service;
-
-
-import org.springblade.modules.netty.business.entity.TalkBackEquipment;
-
-/**
- * 对讲设备信息表 服务类
- *
- * @author zhongrj
- * @date 2023-03-02
- */
-public interface TalkBackEquipmentService{
-
-    /**
-     * 保存对讲设备数据
-     * @param talkBackEquipment
-     */
-    void save(TalkBackEquipment talkBackEquipment);
-}
diff --git a/src/main/java/org/springblade/modules/netty/business/service/impl/DeviceChannelPoliceCameraServiceImpl.java b/src/main/java/org/springblade/modules/netty/business/service/impl/DeviceChannelPoliceCameraServiceImpl.java
new file mode 100644
index 0000000..cd871b1
--- /dev/null
+++ b/src/main/java/org/springblade/modules/netty/business/service/impl/DeviceChannelPoliceCameraServiceImpl.java
@@ -0,0 +1,61 @@
+package org.springblade.modules.netty.business.service.impl;
+
+import org.springblade.modules.netty.business.entity.DeviceChannelPoliceCamera;
+import org.springblade.modules.netty.business.entity.DeviceMobilePositionPoliceCamera;
+import org.springblade.modules.netty.business.mapper.DeviceChannelPoliceCameraMapper;
+import org.springblade.modules.netty.business.service.DeviceChannelPoliceCameraService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 执法记录仪服务实现层
+ * @author zhongrj
+ * @date 2023-03-02
+ */
+@Service
+public class DeviceChannelPoliceCameraServiceImpl implements DeviceChannelPoliceCameraService {
+
+    @Autowired
+    private DeviceChannelPoliceCameraMapper deviceChannelPoliceCameraMapper;
+
+    /**
+     * 保存执法记录仪数据
+     * @param deviceMobilePositionPoliceCamera
+     */
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void save(DeviceMobilePositionPoliceCamera deviceMobilePositionPoliceCamera) {
+		// 设置信息
+		DeviceChannelPoliceCamera deviceChannelPoliceCameraInfo = new DeviceChannelPoliceCamera();
+		// 设置默认在线
+		deviceChannelPoliceCameraInfo.setStatus(1);
+		deviceChannelPoliceCameraInfo.setDeviceId(deviceMobilePositionPoliceCamera.getDeviceId());
+		deviceChannelPoliceCameraInfo.setChannelId(deviceMobilePositionPoliceCamera.getChannelId());
+		deviceChannelPoliceCameraInfo.setLongitude(deviceMobilePositionPoliceCamera.getLongitude());
+		deviceChannelPoliceCameraInfo.setLatitude(deviceMobilePositionPoliceCamera.getLatitude());
+		deviceChannelPoliceCameraInfo.setParental(0);
+		deviceChannelPoliceCameraInfo.setHasAudio(false);
+		deviceChannelPoliceCameraInfo.setUpdateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+        //判断设备是否已存在,如果存在则更新,不存在则新增
+		DeviceChannelPoliceCamera deviceChannelPoliceCamera = deviceChannelPoliceCameraMapper.getTalkBackEquipment(deviceMobilePositionPoliceCamera.getChannelId());
+        if (null == deviceChannelPoliceCamera) {
+			deviceChannelPoliceCameraInfo.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+			//新增记录信息
+			deviceChannelPoliceCameraMapper.saveDeviceChannelPoliceCamera(deviceChannelPoliceCameraInfo);
+		}else {
+			deviceChannelPoliceCameraInfo.setId(deviceChannelPoliceCamera.getId());
+			//修改
+			deviceChannelPoliceCameraMapper.updateDeviceChannelPoliceCamera(deviceChannelPoliceCameraInfo);
+		}
+
+        //判断是否存在设备id
+        if (null != deviceChannelPoliceCameraInfo.getId()) {
+			deviceMobilePositionPoliceCamera.setCreateTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+			deviceChannelPoliceCameraMapper.saveDeviceMobilePositionPoliceCamera(deviceMobilePositionPoliceCamera);
+        }
+    }
+}
diff --git a/src/main/java/org/springblade/modules/netty/business/service/impl/TalkBackEquipmentServiceImpl.java b/src/main/java/org/springblade/modules/netty/business/service/impl/TalkBackEquipmentServiceImpl.java
deleted file mode 100644
index bda2ab4..0000000
--- a/src/main/java/org/springblade/modules/netty/business/service/impl/TalkBackEquipmentServiceImpl.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.springblade.modules.netty.business.service.impl;
-
-import org.springblade.modules.netty.business.entity.TalkBackEquipment;
-import org.springblade.modules.netty.business.entity.TalkBackEquipmentRecord;
-import org.springblade.modules.netty.business.mapper.TalkBackEquipmentMapper;
-import org.springblade.modules.netty.business.service.TalkBackEquipmentService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.Date;
-
-/**
- * 对讲设备服务实现层
- * @author zhongrj
- * @date 2023-03-02
- */
-@Service
-public class TalkBackEquipmentServiceImpl implements TalkBackEquipmentService {
-
-    @Autowired
-    private TalkBackEquipmentMapper talkBackEquipmentMapper;
-
-    /**
-     * 保存对讲设备数据
-     * @param talkBackEquipment
-     */
-    @Override
-    @Transactional(rollbackFor = Exception.class)
-    public void save(TalkBackEquipment talkBackEquipment) {
-        //判断设备是否已存在,如果存在则更新,不存在则新增
-        TalkBackEquipment backEquipment = talkBackEquipmentMapper.getTalkBackEquipment(talkBackEquipment.getTerminalNumber());
-        if (null==backEquipment) {
-            talkBackEquipment.setCreateTime(new Date());
-            //新增对接设备数据
-            talkBackEquipmentMapper.saveTalkBackEquipment(talkBackEquipment);
-        }else {
-            talkBackEquipment.setId(backEquipment.getId());
-            //修改
-            talkBackEquipmentMapper.updateTalkBackEquipment(talkBackEquipment);
-        }
-        //判断是否存在设备id
-        if (null != talkBackEquipment.getId()) {
-            TalkBackEquipmentRecord equipmentRecord = new TalkBackEquipmentRecord();
-            equipmentRecord.setTalkBackEquipmentId(talkBackEquipment.getId());
-            equipmentRecord.setStatus(talkBackEquipment.getStatus());
-//            equipmentRecord.setUnitName(talkBackEquipment.getUnitName());
-//            equipmentRecord.setUnitCode(talkBackEquipment.getUnitCode());
-//            equipmentRecord.setPoliceName(talkBackEquipment.getPoliceName());
-//            equipmentRecord.setPoliceCode(talkBackEquipment.getPoliceCode());
-            equipmentRecord.setTerminalNumber(talkBackEquipment.getTerminalNumber());
-            equipmentRecord.setLongitude(talkBackEquipment.getLongitude());
-            equipmentRecord.setLatitude(talkBackEquipment.getLatitude());
-            equipmentRecord.setSpeed(talkBackEquipment.getSpeed());
-            equipmentRecord.setDirection(talkBackEquipment.getDirection());
-            equipmentRecord.setElevation(talkBackEquipment.getElevation());
-            equipmentRecord.setPrecisions(talkBackEquipment.getPrecisions());
-            equipmentRecord.setReceiveTime(talkBackEquipment.getReceiveTime());
-            equipmentRecord.setCreateTime(new Date());
-            //新增记录信息
-            talkBackEquipmentMapper.saveTalkBackEquipmentRecord(equipmentRecord);
-        }
-    }
-}
diff --git a/src/main/java/org/springblade/modules/netty/handle/UdpServerHandler.java b/src/main/java/org/springblade/modules/netty/handle/UdpServerHandler.java
index fc96f8d..37617dc 100644
--- a/src/main/java/org/springblade/modules/netty/handle/UdpServerHandler.java
+++ b/src/main/java/org/springblade/modules/netty/handle/UdpServerHandler.java
@@ -7,14 +7,11 @@
 import io.netty.util.CharsetUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springblade.modules.netty.business.entity.TalkBackEquipment;
-import org.springblade.modules.netty.business.service.TalkBackEquipmentService;
+import org.springblade.modules.netty.business.entity.DeviceMobilePositionPoliceCamera;
+import org.springblade.modules.netty.business.service.DeviceChannelPoliceCameraService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 import javax.annotation.PostConstruct;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
 import static org.springblade.modules.netty.config.MyDecoder.hexToByte;
 import static org.springblade.modules.netty.config.MyDecoder.hexTohort;
 import static org.springblade.modules.netty.util.Hex.getDouble;
@@ -32,12 +29,12 @@
 	private static UdpServerHandler udpServerHandler;
 
 	@Autowired
-	private TalkBackEquipmentService talkBackEquipmentService;
+	private DeviceChannelPoliceCameraService deviceChannelPoliceCameraService;
 
 	@PostConstruct
 	public void init() {
 		udpServerHandler = this;
-		udpServerHandler.talkBackEquipmentService = this.talkBackEquipmentService;
+		udpServerHandler.deviceChannelPoliceCameraService = this.deviceChannelPoliceCameraService;
 	}
 
 	@Override
@@ -61,30 +58,30 @@
 	 * @param s 16位字符串
 	 */
 	private void dataHandler(String s) {
-//		s = "AAAACCCC220000000033373933343732393100000000000000000000000052D50451F77D5D406C04E275FD723C400000015F0000000507E70306103B0A";
+		System.out.println("s = " + s);
+		s = "AAAACCCC220000000033373933343732393100000000000000000000000052D50451F77D5D406C04E275FD723C400000015F0000000507E70306103B0A";
+		System.out.println("s = " + s);
 		//创建设备对象
-		TalkBackEquipment backEquipment = new TalkBackEquipment();
-		if (s.substring(4,8).equals("CCCC")) {
-			backEquipment.setStatus(1);
-		}
-		//断开连接
-		if (s.substring(4,8).equals("FFFF")) {
-			backEquipment.setStatus(0);
-		}
-		//截取字符串
-		backEquipment.setTerminalNumber(hexStr2Str(s.substring(20, 60)));
-
-		backEquipment.setLongitude(Double.toString(getDouble(s.substring(60, 76))));
-
-		backEquipment.setLatitude(Double.toString(getDouble(s.substring(76, 92))));
-
-		backEquipment.setSpeed(Short.toString(hexTohort(s.substring(92, 96))));
-		backEquipment.setDirection(Short.toString(hexTohort(s.substring(96, 100))));
-		backEquipment.setElevation(Short.toString(hexTohort(s.substring(100, 104))));
-		backEquipment.setPrecisions(Short.toString(hexTohort(s.substring(104, 108))));
-
+		DeviceMobilePositionPoliceCamera backEquipment = new DeviceMobilePositionPoliceCamera();
+//		if (s.substring(4,8).equals("CCCC")) {
+//			backEquipment.setStatus(1);
+//		}
+//		//断开连接
+//		if (s.substring(4,8).equals("FFFF")) {
+//			backEquipment.setStatus(0);
+//		}
+		//截取字符串,并去除后面多余的空格(如果有)
+		backEquipment.setChannelId(hexStr2Str(s.substring(20, 60)).trim());
+		//设置经纬度
+		backEquipment.setLongitude(getDouble(s.substring(60, 76)));
+		backEquipment.setLatitude(getDouble(s.substring(76, 92)));
+		// 设置速度、方向等
+		backEquipment.setSpeed(hexTohort(s.substring(92, 96)));
+		backEquipment.setDirection(hexTohort(s.substring(96, 100)));
+		backEquipment.setAltitude(hexTohort(s.substring(100, 104)));
+		backEquipment.setReportSource(Short.toString(hexTohort(s.substring(104, 108))));
+		//时间拼接
 		String year = Short.toString(hexTohort(s.substring(108, 112)));
-
 		String month = Short.toString(hexToByte(s.substring(112, 114)));
 		if (Integer.parseInt(month)<10){
 			month = "0" + month;
@@ -106,15 +103,11 @@
 			second = "0" + second;
 		}
 		String time = year + "-" + month + "-" + day +" " + hour + ":" + minute + ":" + second;
-		//时间拼接
-		try {
-			backEquipment.setReceiveTime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(time));
-		} catch (ParseException e) {
-			e.printStackTrace();
-		}
-		backEquipment.setUpdateTime(new Date());
+		backEquipment.setTime(time);
+		// 该处设置成和通道一样
+		backEquipment.setDeviceId(backEquipment.getChannelId());
 		// 新增
-		udpServerHandler.talkBackEquipmentService.save(backEquipment);
+		udpServerHandler.deviceChannelPoliceCameraService.save(backEquipment);
 	}
 
 	/**
diff --git a/src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeviceChannelPoliceCameraMapper.xml
similarity index 100%
rename from src/main/java/org/springblade/modules/system/mapper/TopMenuSettingMapper.xml
rename to src/main/java/org/springblade/modules/system/mapper/DeviceChannelPoliceCameraMapper.xml

--
Gitblit v1.9.3