pom.xml
@@ -10,7 +10,7 @@ <version>3.0.1.RELEASE</version> <properties> <bladex.project.id>srjw-car</bladex.project.id> <bladex.project.id>srjw-talk</bladex.project.id> <bladex.project.version>3.0.1.RELEASE</bladex.project.version> <java.version>1.8</java.version> src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipment.java
File was renamed from src/main/java/org/springblade/modules/netty/business/entity/PoliceCarEquipment.java @@ -1,6 +1,5 @@ package org.springblade.modules.netty.business.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -15,8 +14,7 @@ * @since 2023-02-23 */ @Data @TableName("sys_police_car_equipment") public class PoliceCarEquipment implements Serializable { public class TalkBackEquipment implements Serializable { private static final long serialVersionUID = 1L; src/main/java/org/springblade/modules/netty/business/entity/TalkBackEquipmentRecord.java
File was renamed from src/main/java/org/springblade/modules/netty/business/entity/PoliceCarEquipmentRecord.java @@ -1,7 +1,6 @@ package org.springblade.modules.netty.business.entity; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; @@ -16,8 +15,7 @@ * @since 2023-02-23 */ @Data @TableName("sys_police_car_equipment_record") public class PoliceCarEquipmentRecord implements Serializable { public class TalkBackEquipmentRecord implements Serializable { private static final long serialVersionUID = 1L; @@ -29,7 +27,7 @@ /** * 设备id */ private Long policeCarEquipmentId; private Long talkBackEquipmentId; /** * 设备状态 0:离线 1:在线 @@ -84,4 +82,10 @@ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date createTime; // /** // * 说明 // */ // @ApiModelProperty(value = "说明") // private String remark; } src/main/java/org/springblade/modules/netty/business/mapper/PoliceCarEquipmentMapper.java
File was deleted src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.java
New file @@ -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.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); } src/main/java/org/springblade/modules/netty/business/mapper/TalkBackEquipmentMapper.xml
File was renamed from src/main/java/org/springblade/modules/netty/business/mapper/PoliceCarEquipmentMapper.xml @@ -1,10 +1,10 @@ <?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.PoliceCarEquipmentMapper"> <mapper namespace="org.springblade.modules.netty.business.mapper.TalkBackEquipmentMapper"> <!--新增对讲设备信息--> <insert id="saveTalkBackEquipment" useGeneratedKeys="true" keyProperty="id"> insert into sys_police_car_equipment insert into sys_talk_back_equipment ( name,code,status,terminal_number,longitude,latitude, speed,direction,elevation,precisions,receive_time,create_time,update_time @@ -18,26 +18,21 @@ <!--新增对接设备历史记录信息--> <insert id="saveTalkBackEquipmentRecord"> insert into sys_police_car_equipment_record insert into sys_talk_back_equipment_record ( police_car_equipment_id,status,terminal_number, talk_back_equipment_id,status,terminal_number, longitude,latitude,speed,direction,elevation,precisions,receive_time,create_time ) values ( #{policeCarEquipmentId},#{status},#{terminalNumber}, #{talkBackEquipmentId},#{status},#{terminalNumber}, #{longitude},#{latitude},#{speed},#{direction},#{elevation},#{precisions},#{receiveTime},#{createTime} ) </insert> <!--查询设备信息--> <select id="getTalkBackEquipment" resultType="org.springblade.modules.netty.business.entity.PoliceCarEquipment"> select * from sys_police_car_equipment where terminal_number = #{code} </select> <!--修改对讲设备信息--> <update id="updateTalkBackEquipment"> update sys_police_car_equipment update sys_talk_back_equipment set code = #{code}, name = #{name}, src/main/java/org/springblade/modules/netty/business/service/PoliceCarEquipmentService.java
File was deleted src/main/java/org/springblade/modules/netty/business/service/TalkBackEquipmentService.java
New file @@ -0,0 +1,19 @@ 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); } src/main/java/org/springblade/modules/netty/business/service/impl/PoliceCarEquipmentServiceImpl.java
File was deleted src/main/java/org/springblade/modules/netty/business/service/impl/TalkBackEquipmentServiceImpl.java
New file @@ -0,0 +1,64 @@ 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); } } } src/main/java/org/springblade/modules/netty/event/StartupEvent.java
@@ -1,6 +1,5 @@ package org.springblade.modules.netty.event; import org.springblade.modules.netty.config.SysConfig; import org.springblade.modules.netty.server.UdpServer; import org.springframework.context.ApplicationContext; src/main/java/org/springblade/modules/netty/handle/UdpServerHandler.java
@@ -7,8 +7,8 @@ import io.netty.util.CharsetUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springblade.modules.netty.business.entity.PoliceCarEquipment; import org.springblade.modules.netty.business.service.PoliceCarEquipmentService; import org.springblade.modules.netty.business.entity.TalkBackEquipment; import org.springblade.modules.netty.business.service.TalkBackEquipmentService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; @@ -32,12 +32,12 @@ private static UdpServerHandler udpServerHandler; @Autowired private PoliceCarEquipmentService policeCarEquipmentService; private TalkBackEquipmentService talkBackEquipmentService; @PostConstruct public void init() { udpServerHandler = this; udpServerHandler.policeCarEquipmentService = this.policeCarEquipmentService; udpServerHandler.talkBackEquipmentService = this.talkBackEquipmentService; } @Override @@ -50,7 +50,7 @@ // 字节转16进制字符串 String s = bytesToHexString(req); //获取字符串的长度 // int length = s.length(); int length = s.length(); // System.out.println("数据长度>>>>>> = " + length); //数据解析 dataHandler(s); @@ -63,7 +63,7 @@ private void dataHandler(String s) { // s = "AAAACCCC220000000033373933343732393100000000000000000000000052D50451F77D5D406C04E275FD723C400000015F0000000507E70306103B0A"; //创建设备对象 PoliceCarEquipment backEquipment = new PoliceCarEquipment(); TalkBackEquipment backEquipment = new TalkBackEquipment(); if (s.substring(4,8).equals("CCCC")) { backEquipment.setStatus(1); } @@ -72,10 +72,7 @@ backEquipment.setStatus(0); } //截取字符串 String terminalNumber = hexStr2Str(s.substring(20, 60)); // char[20] 后面跟了 \0000 空字符串 // String trim = terminalNumber.trim(); backEquipment.setTerminalNumber(terminalNumber); backEquipment.setTerminalNumber(hexStr2Str(s.substring(20, 60))); backEquipment.setLongitude(Double.toString(getDouble(s.substring(60, 76)))); @@ -117,7 +114,7 @@ } backEquipment.setUpdateTime(new Date()); // 新增 udpServerHandler.policeCarEquipmentService.save(backEquipment); udpServerHandler.talkBackEquipmentService.save(backEquipment); } /** @@ -137,6 +134,7 @@ return sb.toString(); } /** * 捕获异常 * @param ctx src/main/java/org/springblade/modules/netty/server/UdpServer.java
@@ -31,6 +31,9 @@ //Channel channel; @Async("taskExecutor") public void run(int port) { // Thread thread = new Thread(new Runnable() { // @Override // public void run() { //启动服务 EventLoopGroup workerGroup = new NioEventLoopGroup(); //优化使用的线程 @@ -70,6 +73,7 @@ // 绑定端口,开始接收进来的连接 ChannelFuture f = b.bind(port).sync(); //获取channel通道 //channel=f.channel(); System.out.println("UDP Server 启动,端口:" + port); // 等待服务器 socket 关闭 。 // 这不会发生,可以优雅地关闭服务器。 @@ -81,6 +85,9 @@ group.shutdownGracefully(); workerGroup.shutdownGracefully(); } // } // }); // thread.start(); } } src/main/java/org/springblade/modules/netty/util/Hex.java
@@ -6,7 +6,6 @@ import static org.springblade.modules.netty.config.MyDecoder.hexToByte; import static org.springblade.modules.netty.config.MyDecoder.hexTohort; public class Hex { /** * 用于建立十六进制字符的输出的小写字符数组 src/main/java/org/springblade/modules/netty/util/Utils.java
New file @@ -0,0 +1,4 @@ package org.springblade.modules.netty.util; public class Utils { } src/main/resources/application-dev.yml
@@ -5,7 +5,7 @@ host: 127.0.0.1 port: 6379 password: database: 6 database: 9 ssl: false ##redis 集群环境配置 #cluster: @@ -54,5 +54,5 @@ # 警车udp接收端口 syscfg: udpReceivePort: 9989 udpReceivePort: 7687 src/main/resources/application-prod.yml
@@ -7,7 +7,7 @@ host: 127.0.0.1 port: 6379 password: database: 0 database: 9 ssl: false ##redis 集群环境配置 #cluster: @@ -41,4 +41,4 @@ # 警车udp接收端口 syscfg: udpReceivePort: 9989 udpReceivePort: 7687 src/main/resources/application-test.yml
@@ -14,9 +14,9 @@ # nodes: 127.0.0.1:7001,127.0.0.1:7002,127.0.0.1:7003 # commandTimeout: 5000 datasource: url: jdbc:mysql://127.0.0.1:3308/wvp?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true url: jdbc:mysql://139.196.74.78:3306/videos?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true username: root password: 123456 password: jxpskj_2018 #第三方登陆 social: @@ -41,4 +41,4 @@ # 警车udp接收端口 syscfg: udpReceivePort: 9989 udpReceivePort: 7687