1078-调整业务信息

This commit is contained in:
648540858
2024-06-06 07:26:20 +08:00
parent 5c826ef449
commit f7d811a299
36 changed files with 184 additions and 186 deletions

View File

@@ -22,6 +22,12 @@ public class JTChannel {
@Schema(description = "设备的数据库ID")
private int deviceId;
/**
* 通道ID
*/
@Schema(description = "通道ID")
private Integer channelId;
@Schema(description = "创建时间")
private String createTime;
@@ -69,12 +75,21 @@ public class JTChannel {
this.updateTime = updateTime;
}
public Integer getChannelId() {
return channelId;
}
public void setChannelId(Integer channelId) {
this.channelId = channelId;
}
@Override
public String toString() {
return "JTChannel{" +
"id=" + id +
", name='" + name + '\'' +
", deviceId=" + deviceId +
", channelId=" + channelId +
", createTime='" + createTime + '\'' +
", updateTime='" + updateTime + '\'' +
'}';

View File

@@ -50,13 +50,13 @@ public class JTDevice {
* 终端手机号
*/
@Schema(description = "终端手机号")
private Integer phoneNumber;
private String phoneNumber;
/**
* 设备ID
* 终端ID
*/
@Schema(description = "设备ID")
private String deviceId;
@Schema(description = "终端ID")
private String terminalId;
/**
* 车牌颜色
@@ -154,20 +154,20 @@ public class JTDevice {
this.deviceModel = deviceModel;
}
public Integer getPhoneNumber() {
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(Integer phoneNumber) {
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public String getDeviceId() {
return deviceId;
public String getTerminalId() {
return terminalId;
}
public void setDeviceId(String deviceId) {
this.deviceId = deviceId;
public void setTerminalId(String deviceId) {
this.terminalId = deviceId;
}
public int getPlateColor() {
@@ -244,7 +244,7 @@ public class JTDevice {
", 制造商ID='" + makerId + '\'' +
", 终端型号='" + deviceModel + '\'' +
", 终端手机号='" + phoneNumber + '\'' +
", 设备ID='" + deviceId + '\'' +
", 设备ID='" + terminalId + '\'' +
", 车牌颜色=" + plateColor +
", 车牌='" + plateNo + '\'' +
", 鉴权码='" + authenticationCode + '\'' +

View File

@@ -53,10 +53,10 @@ public class Jt808Decoder extends ByteToMessageDecoder {
header.setVersion(buf.readUnsignedByte());
String devId = ByteBufUtil.hexDump(buf.readSlice(10));
header.setTerminalPhoneNumber(devId.replaceFirst("^0*", ""));
header.setPhoneNumber(devId.replaceFirst("^0*", ""));
} else {
header.setTerminalPhoneNumber(ByteBufUtil.hexDump(buf.readSlice(6)).replaceFirst("^0*", ""));
header.setPhoneNumber(ByteBufUtil.hexDump(buf.readSlice(6)).replaceFirst("^0*", ""));
}
header.setSn(buf.readUnsignedShort());
if (isSubpackage) {

View File

@@ -24,7 +24,7 @@ public enum MultiPacketManager {
* 增加待合并的分包,如果分包接受完毕会返回完整的数据包
*/
public ByteBuf add(MultiPacket packet) {
String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getTerminalPhoneNumber();
String key = packet.getHeader().getMsgId() + "/" + packet.getHeader().getPhoneNumber();
logger.debug("分包消息: \n{}", packet);
List<MultiPacket> multiPackets = packetMap.computeIfAbsent(key, k -> new ArrayList<>(packet.getCount()));
multiPackets.add(packet);

View File

@@ -94,12 +94,12 @@ public class Jt808EncoderCmd extends MessageToByteEncoder<Cmd> {
byteBuf.writeByte(header.getVersion());
// 终端手机号
byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalPhoneNumber(), 20)));
byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getPhoneNumber(), 20)));
} else {
// 消息体属性
byteBuf.writeShort(encode.readableBytes());
byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getTerminalPhoneNumber(), 12)));
byteBuf.writeBytes(ByteBufUtil.decodeHexDump(Bin.strHexPaddingLeft(header.getPhoneNumber(), 12)));
}
// 消息体流水号

View File

@@ -49,7 +49,7 @@ public class Jt808Handler extends ChannelInboundHandlerAdapter {
}
ConnectChangeEvent event = new ConnectChangeEvent(this);
event.setConnected(true);
event.setTerminalId(session.getDevId());
event.setPhoneNumber(session.getDevId());
applicationEventPublisher.publishEvent(event);
}
@@ -63,7 +63,7 @@ public class Jt808Handler extends ChannelInboundHandlerAdapter {
}
ConnectChangeEvent event = new ConnectChangeEvent(this);
event.setConnected(false);
event.setTerminalId(session.getDevId());
event.setPhoneNumber(session.getDevId());
applicationEventPublisher.publishEvent(event);
}

View File

@@ -64,20 +64,43 @@ public class JT1078DeviceController {
@Operation(summary = "删除设备", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "phoneNumber", description = "设备手机号", required = true)
@DeleteMapping("/delete")
public void addDevice(Integer phoneNumber){
public void addDevice(String phoneNumber){
assert phoneNumber != null;
service.deleteDeviceByPhoneNumber(phoneNumber);
}
@Operation(summary = "1078-查询部标通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "phoneNumber", description = "设备手机号", required = true)
@Parameter(name = "deviceId", description = "设备ID", required = true)
@Parameter(name = "query", description = "查询内容")
@GetMapping("/channel/list")
public List<JTChannel> getChannels(@RequestParam(required = true) Integer phoneNumber,
public List<JTChannel> getChannels(@RequestParam(required = true) Integer deviceId,
@RequestParam(required = false) String query) {
assert phoneNumber != null;
return service.getChannelList(phoneNumber, query);
assert deviceId != null;
return service.getChannelList(deviceId, query);
}
@Operation(summary = "1078-更新通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "channel", description = "通道", required = true)
@PostMapping("/update")
public void updateChannel(JTChannel channel){
assert channel.getId() > 0;
assert channel.getChannelId() != null;
service.updateChannel(channel);
}
@Operation(summary = "1078-新增通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "channel", description = "通道", required = true)
@PostMapping("/add")
public void addChannel(JTChannel channel){
assert channel.getChannelId() != null;
service.addChannel(channel);
}
@Operation(summary = "1078-删除通道", security = @SecurityRequirement(name = JwtUtils.HEADER))
@Parameter(name = "id", description = "通道的数据库ID", required = true)
@DeleteMapping("/delete")
public void deleteChannel(Integer id){
service.deleteChannelById(id);
}
}

View File

@@ -23,87 +23,31 @@ public interface JTChannelMapper {
List<JTChannel> getAll(@Param("deviceId") int deviceId, @Param("query") String query);
@Update(value = {" <script>" +
"UPDATE wvp_jt_device " +
"UPDATE wvp_jt_channel " +
"SET update_time=#{updateTime}" +
"<if test=\"deviceId != null\">, device_id=#{deviceId}</if>" +
"<if test=\"provinceId != null\">, province_id=#{provinceId}</if>" +
"<if test=\"provinceText != null\">, province_text=#{provinceText}</if>" +
"<if test=\"cityId != null\">, city_id=#{cityId}</if>" +
"<if test=\"cityText != null\">, city_text=#{cityText}</if>" +
"<if test=\"makerId != null\">, maker_id=#{makerId}</if>" +
"<if test=\"deviceModel != null\">, device_model=#{deviceModel}</if>" +
"<if test=\"plateColor != null\">, plate_color=#{plateColor}</if>" +
"<if test=\"plateNo != null\">, plate_no=#{plateNo}</if>" +
"<if test=\"authenticationCode != null\">, authentication_code=#{authenticationCode}</if>" +
"<if test=\"longitude != null\">, longitude=#{longitude}</if>" +
"<if test=\"latitude != null\">, latitude=#{latitude}</if>" +
"<if test=\"status != null\">, status=#{status}</if>" +
"WHERE terminal_id=#{terminalId}"+
"<if test=\"name != null\">, name=#{name}</if>" +
"<if test=\"channelId != null\">, channelId=#{channelId}</if>" +
"WHERE id=#{id}"+
" </script>"})
void updateDevice(JTDevice device);
@Select(value = {" <script>" +
"SELECT * " +
"from " +
"wvp_jt_device jd " +
"WHERE " +
"1=1" +
" <if test='query != null'> AND (" +
"jd.terminal_id LIKE concat('%',#{query},'%') " +
"jd.province_id LIKE concat('%',#{query},'%') " +
"OR jd.city_id LIKE concat('%',#{query},'%') " +
"OR jd.maker_id LIKE concat('%',#{query},'%') " +
"OR jd.device_model LIKE concat('%',#{query},'%') " +
"OR jd.device_id LIKE concat('%',#{query},'%') " +
"OR jd.plate_no LIKE concat('%',#{query},'%')" +
")</if> " +
" <if test='online == true' > AND jd.status= true</if>" +
" <if test='online == false' > AND jd.status= false</if>" +
"ORDER BY jd.update_time " +
" </script>"})
List<JTDevice> getDeviceList(@Param("query") String query, @Param("online") Boolean online);
void update(JTChannel channel);
@Insert("INSERT INTO wvp_jt_device (" +
"terminal_id,"+
"province_id,"+
"province_text,"+
"city_id,"+
"city_text,"+
"maker_id,"+
@Insert("INSERT INTO wvp_jt_channel (" +
"device_id,"+
"device_model,"+
"plate_color,"+
"plate_no,"+
"authentication_code,"+
"longitude,"+
"latitude,"+
"channel_id,"+
"name,"+
"create_time,"+
"update_time"+
") VALUES (" +
"#{terminalId}," +
"#{provinceId}," +
"#{provinceText}," +
"#{cityId}," +
"#{cityText}," +
"#{makerId}," +
"#{deviceId}," +
"#{deviceModel}," +
"#{plateColor}," +
"#{plateNo}," +
"#{authenticationCode}," +
"#{longitude}," +
"#{latitude}," +
"#{channelId}," +
"#{name}," +
"#{createTime}," +
"#{updateTime}" +
")")
void addDevice(JTDevice device);
void add(JTChannel channel);
@Delete("delete from wvp_jt_device where terminal_id = #{terminalId}")
void deleteDeviceByTerminalId(@Param("terminalId") String terminalId);
@Delete("delete from wvp_jt_channel where id = #{id}")
void delete(@Param("id") int id);
@Update(value = {" <script>" +
"UPDATE wvp_jt_device " +
"SET status=#{connected} " +
"WHERE terminal_id=#{terminalId}"+
" </script>"})
void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") String terminalId);
}

View File

@@ -6,15 +6,15 @@ import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper
public interface JTDeviceMapper {
public interface JTTerminalMapper {
@Select("SELECT * FROM wvp_jt_device where terminal_id=#{terminalId}")
JTDevice getDevice(@Param("terminalId") Integer terminalId);
@Select("SELECT * FROM wvp_jt_terminal where phone_number=#{phoneNumber}")
JTDevice getDevice(@Param("phoneNumber") String phoneNumber);
@Update(value = {" <script>" +
"UPDATE wvp_jt_device " +
"UPDATE wvp_jt_terminal " +
"SET update_time=#{updateTime}" +
"<if test=\"deviceId != null\">, device_id=#{deviceId}</if>" +
"<if test=\"terminalId != null\">, terminal_id=#{terminalId}</if>" +
"<if test=\"provinceId != null\">, province_id=#{provinceId}</if>" +
"<if test=\"provinceText != null\">, province_text=#{provinceText}</if>" +
"<if test=\"cityId != null\">, city_id=#{cityId}</if>" +
@@ -27,22 +27,22 @@ public interface JTDeviceMapper {
"<if test=\"longitude != null\">, longitude=#{longitude}</if>" +
"<if test=\"latitude != null\">, latitude=#{latitude}</if>" +
"<if test=\"status != null\">, status=#{status}</if>" +
"WHERE terminal_id=#{terminalId}"+
"WHERE phone_number=#{phoneNumber}"+
" </script>"})
void updateDevice(JTDevice device);
@Select(value = {" <script>" +
"SELECT * " +
"from " +
"wvp_jt_device jd " +
"wvp_jt_terminal jd " +
"WHERE " +
"1=1" +
" <if test='query != null'> AND (" +
"jd.terminal_id LIKE concat('%',#{query},'%') " +
"jd.phone_number LIKE concat('%',#{query},'%') " +
"jd.province_id LIKE concat('%',#{query},'%') " +
"OR jd.city_id LIKE concat('%',#{query},'%') " +
"OR jd.maker_id LIKE concat('%',#{query},'%') " +
"OR jd.device_model LIKE concat('%',#{query},'%') " +
"OR jd.device_id LIKE concat('%',#{query},'%') " +
"OR jd.terminal_id LIKE concat('%',#{query},'%') " +
"OR jd.plate_no LIKE concat('%',#{query},'%')" +
")</if> " +
" <if test='online == true' > AND jd.status= true</if>" +
@@ -51,14 +51,14 @@ public interface JTDeviceMapper {
" </script>"})
List<JTDevice> getDeviceList(@Param("query") String query, @Param("online") Boolean online);
@Insert("INSERT INTO wvp_jt_device (" +
"terminal_id,"+
@Insert("INSERT INTO wvp_jt_terminal (" +
"phone_number,"+
"province_id,"+
"province_text,"+
"city_id,"+
"city_text,"+
"maker_id,"+
"device_id,"+
"terminal_id,"+
"device_model,"+
"plate_color,"+
"plate_no,"+
@@ -68,13 +68,13 @@ public interface JTDeviceMapper {
"create_time,"+
"update_time"+
") VALUES (" +
"#{terminalId}," +
"#{phoneNumber}," +
"#{provinceId}," +
"#{provinceText}," +
"#{cityId}," +
"#{cityText}," +
"#{makerId}," +
"#{deviceId}," +
"#{terminalId}," +
"#{deviceModel}," +
"#{plateColor}," +
"#{plateNo}," +
@@ -86,13 +86,13 @@ public interface JTDeviceMapper {
")")
void addDevice(JTDevice device);
@Delete("delete from wvp_jt_device where terminal_id = #{terminalId}")
void deleteDeviceByTerminalId(@Param("terminalId") Integer terminalId);
@Delete("delete from wvp_jt_terminal where phone_number = #{phoneNumber}")
void deleteDeviceByPhoneNumber(@Param("phoneNumber") String phoneNumber);
@Update(value = {" <script>" +
"UPDATE wvp_jt_device " +
"UPDATE wvp_jt_terminal " +
"SET status=#{connected} " +
"WHERE terminal_id=#{terminalId}"+
"WHERE phone_number=#{phoneNumber}"+
" </script>"})
void updateDeviceStatus(@Param("connected") boolean connected, @Param("terminalId") Integer terminalId);
void updateDeviceStatus(@Param("connected") boolean connected, @Param("phoneNumber") String phoneNumber);
}

View File

@@ -22,7 +22,7 @@ public class ConnectChangeEvent extends ApplicationEvent {
private boolean connected;
private String terminalId;
private String phoneNumber;
public boolean isConnected() {
return connected;
@@ -32,11 +32,11 @@ public class ConnectChangeEvent extends ApplicationEvent {
this.connected = connected;
}
public String getTerminalId() {
return terminalId;
public String getPhoneNumber() {
return phoneNumber;
}
public void setTerminalId(String terminalId) {
this.terminalId = terminalId;
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}

View File

@@ -22,13 +22,13 @@ public class ConnectChangeEventListener implements ApplicationListener<ConnectCh
@Override
public void onApplicationEvent(ConnectChangeEvent event) {
if (event.isConnected()) {
log.info("[JT-设备已连接] 终端ID {}", event.getTerminalId());
log.info("[JT-设备已连接] 终端ID {}", event.getPhoneNumber());
}else{
log.info("[JT-设备连接已断开] 终端ID {}", event.getTerminalId());
log.info("[JT-设备连接已断开] 终端ID {}", event.getPhoneNumber());
}
JTDevice device = service.getDevice(event.getTerminalId());
JTDevice device = service.getDevice(event.getPhoneNumber());
if (device != null) {
service.updateDeviceStatus(event.isConnected(), event.getTerminalId());
service.updateDeviceStatus(event.isConnected(), event.getPhoneNumber());
}
}
}

View File

@@ -1,6 +1,5 @@
package com.genersoft.iot.vmp.jt1078.event.eventListener;
import com.genersoft.iot.vmp.gb28181.event.alarm.AlarmEvent;
import com.genersoft.iot.vmp.jt1078.event.RegisterEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.stereotype.Component;
@@ -10,6 +9,6 @@ public class RegisterEventListener implements ApplicationListener<RegisterEvent>
@Override
public void onApplicationEvent(RegisterEvent event) {
System.out.println("收到设备注册: "+ event.getDevice().getDeviceId());
System.out.println("收到设备注册: "+ event.getDevice().getTerminalId());
}
}

View File

@@ -15,7 +15,7 @@ public class Header {
Integer msgPro;
// 终端手机号
String terminalPhoneNumber;
String phoneNumber;
// 消息体流水号
Integer sn;
@@ -41,12 +41,12 @@ public class Header {
this.msgPro = msgPro;
}
public String getTerminalPhoneNumber() {
return terminalPhoneNumber;
public String getPhoneNumber() {
return phoneNumber;
}
public void setTerminalPhoneNumber(String terminalPhoneNumber) {
this.terminalPhoneNumber = terminalPhoneNumber;
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
public Integer getSn() {
@@ -79,7 +79,7 @@ public class Header {
return "Header{" +
"消息ID='" + msgId + '\'' +
", 消息体属性=" + msgPro +
", 终端手机号='" + terminalPhoneNumber + '\'' +
", 终端手机号='" + phoneNumber + '\'' +
", 消息体流水号=" + sn +
", 协议版本号=" + version +
'}';

View File

@@ -36,7 +36,7 @@ public class J0001 extends Re {
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
return null;
}

View File

@@ -28,13 +28,13 @@ public class J0003 extends Re {
respNo = buf.readUnsignedShort();
respId = ByteBufUtil.hexDump(buf.readSlice(2));
result = buf.readUnsignedByte();
log.info("[JT-注销] 设备: {}", header.getTerminalPhoneNumber());
log.info("[JT-注销] 设备: {}", header.getPhoneNumber());
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
return null;
}

View File

@@ -46,7 +46,7 @@ public class J0100 extends Re {
device.setDeviceModel(buf.readCharSequence(30, Charset.forName("GBK"))
.toString().trim());
device.setDeviceId(buf.readCharSequence(30, Charset.forName("GBK"))
device.setTerminalId(buf.readCharSequence(30, Charset.forName("GBK"))
.toString().trim());
device.setPlateColor(buf.readByte());
@@ -66,7 +66,7 @@ public class J0100 extends Re {
byte[] bytes7 = new byte[7];
buf.readBytes(bytes7);
device.setDeviceId(new String(bytes7).trim());
device.setTerminalId(new String(bytes7).trim());
device.setPlateColor(buf.readByte());
byte[] plateColorBytes = new byte[buf.readableBytes()];
@@ -85,7 +85,7 @@ public class J0100 extends Re {
J8100 j8100 = new J8100();
j8100.setRespNo(header.getSn());
// 从数据库判断这个设备是否合法
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber());
JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
if (deviceInDb != null) {
j8100.setResult(J8100.SUCCESS);
String authenticationCode = UUID.randomUUID().toString();
@@ -105,14 +105,14 @@ public class J0100 extends Re {
}
deviceInDb.setDeviceModel(device.getDeviceModel());
deviceInDb.setMakerId(device.getMakerId());
deviceInDb.setDeviceId(device.getDeviceId());
deviceInDb.setTerminalId(device.getTerminalId());
// TODO 支持直接展示车牌颜色的描述
deviceInDb.setPlateColor(device.getPlateColor());
deviceInDb.setPlateNo(device.getPlateNo());
service.updateDevice(deviceInDb);
log.info("[JT-注册成功] 设备: {}", deviceInDb);
}else {
log.info("[JT-注册失败] 未授权设备: {}", header.getTerminalPhoneNumber());
log.info("[JT-注册失败] 未授权设备: {}", header.getPhoneNumber());
j8100.setResult(J8100.FAIL);
// 断开连接,清理资源
if (session.isRegistered()) {

View File

@@ -37,7 +37,7 @@ public class J0102 extends Re {
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice device = service.getDevice(header.getTerminalPhoneNumber());
JTDevice device = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());

View File

@@ -164,7 +164,7 @@ public class J0104 extends Re {
throw new RuntimeException(e);
}
}
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0104", (long) respNo, deviceConfig);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0104", (long) respNo, deviceConfig);
return null;
}

View File

@@ -60,7 +60,7 @@ public class J0107 extends Re {
deviceAttribute.setGnssAttribute(JTGnssAttribute.getInstance(buf.readUnsignedByte()));
deviceAttribute.setCommunicationModuleAttribute(JTCommunicationModuleAttribute.getInstance(buf.readUnsignedByte()));
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0107", null, deviceAttribute);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0107", null, deviceAttribute);
return null;
}

View File

@@ -89,7 +89,7 @@ public class J0200 extends Re {
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber());
JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());

View File

@@ -33,13 +33,13 @@ public class J0201 extends Re {
positionInfo = JTPositionBaseInfo.decode(buf);
log.info("[JT-位置信息查询应答]: {}", positionInfo.toString());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0201", (long) respNo, positionInfo);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0201", (long) respNo, positionInfo);
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber());
JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());

View File

@@ -28,13 +28,13 @@ public class J0500 extends Re {
int respNo = buf.readUnsignedShort();
positionInfo = JTPositionBaseInfo.decode(buf);
log.info("[JT-车辆控制应答]: {}", positionInfo.toString());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0500", (long) respNo, positionInfo);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0500", (long) respNo, positionInfo);
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
JTDevice deviceInDb = service.getDevice(header.getTerminalPhoneNumber());
JTDevice deviceInDb = service.getDevice(header.getPhoneNumber());
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());

View File

@@ -33,7 +33,7 @@ public class J0608 extends Re {
log.info("[JT-查询区域或线路数据应答]: 类型: {} 数量: {}", type, dataLength);
List<JTAreaOrRoute> areaOrRoutes = new ArrayList<>();
if (dataLength == 0) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, areaOrRoutes);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, areaOrRoutes);
return null;
}
switch (type) {
@@ -46,7 +46,7 @@ public class J0608 extends Re {
JTCircleArea jtCircleArea = JTCircleArea.decode(buf);
jtCircleAreas.add(jtCircleArea);
}
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtCircleAreas);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtCircleAreas);
break;
case 2:
buf.readUnsignedByte();
@@ -58,7 +58,7 @@ public class J0608 extends Re {
JTRectangleArea jtRectangleArea = JTRectangleArea.decode(buf);
jtRectangleAreas.add(jtRectangleArea);
}
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtRectangleAreas);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtRectangleAreas);
break;
case 3:
// 查询多 边形区域数据
@@ -68,7 +68,7 @@ public class J0608 extends Re {
JTPolygonArea jtRectangleArea = JTPolygonArea.decode(buf);
jtPolygonAreas.add(jtRectangleArea);
}
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtPolygonAreas);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtPolygonAreas);
break;
case 4:
// 查询线路数据
@@ -78,7 +78,7 @@ public class J0608 extends Re {
JTRoute jtRoute = JTRoute.decode(buf);
jtRoutes.add(jtRoute);
}
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0608", null, jtRoutes);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0608", null, jtRoutes);
break;
default:
break;

View File

@@ -27,7 +27,7 @@ public class J0702 extends Re {
protected Rs decode0(ByteBuf buf, Header header, Session session) {
driverInformation = JTDriverInformation.decode(buf);
log.info("[JT-驾驶员身份信息采集上报]: {}", driverInformation.toString());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0702", null, driverInformation);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0702", null, driverInformation);
return null;
}

View File

@@ -70,7 +70,7 @@ public class J0801 extends Re {
log.info("[JT-多媒体数据上传] 写入文件失败", e);
}
log.info("[JT-多媒体数据上传]: {}", mediaEventInfo);
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0801", null, mediaEventInfo);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0801", null, mediaEventInfo);
return null;
}

View File

@@ -34,7 +34,7 @@ public class J0802 extends Re {
int length = buf.readUnsignedShort();
if (length == 0) {
log.info("[JT-存储多媒体数据检索应答]: {}", length);
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, new ArrayList<>());
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0802", (long) respNo, new ArrayList<>());
return null;
}
mediaDataInfoList = new ArrayList<>(length);
@@ -42,7 +42,7 @@ public class J0802 extends Re {
mediaDataInfoList.add(JTMediaDataInfo.decode(buf));
}
log.info("[JT-存储多媒体数据检索应答]: {}", mediaDataInfoList.size());
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0802", (long) respNo, mediaDataInfoList);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0802", (long) respNo, mediaDataInfoList);
return null;
}

View File

@@ -39,13 +39,13 @@ public class J0805 extends Re {
ids.add(buf.readUnsignedInt());
}
}
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0805", null, ids);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0805", null, ids);
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "0001", (long) respNo, result);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
return null;
}

View File

@@ -23,7 +23,7 @@ public class J1003 extends Re {
@Override
protected Rs decode0(ByteBuf buf, Header header, Session session) {
mediaAttribute = JTMediaAttribute.decode(buf);
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "1003", null, mediaAttribute);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "1003", null, mediaAttribute);
return null;
}

View File

@@ -49,7 +49,7 @@ public class J1205 extends Re {
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getTerminalPhoneNumber(), "1205", (long) respNo, recordList);
SessionManager.INSTANCE.response(header.getPhoneNumber(), "1205", (long) respNo, recordList);
J8001 j8001 = new J8001();
j8001.setRespNo(header.getSn());
j8001.setRespId(header.getMsgId());

View File

@@ -24,7 +24,7 @@ public abstract class Re {
public Rs decode(ByteBuf buf, Header header, Session session, Ijt1078Service service) {
if (session != null && !StringUtils.hasLength(session.getDevId())) {
session.register(header.getTerminalPhoneNumber(), (int) header.getVersion(), header);
session.register(header.getPhoneNumber(), (int) header.getVersion(), header);
}
Rs rs = decode0(buf, header, session);
Rs rsHand = handler(header, session, service);

View File

@@ -9,7 +9,7 @@ import com.github.pagehelper.PageInfo;
import java.util.List;
public interface Ijt1078Service {
JTDevice getDevice(Integer terminalId);
JTDevice getDevice(String phoneNumber);
void updateDevice(JTDevice deviceInDb);
@@ -17,9 +17,9 @@ public interface Ijt1078Service {
void addDevice(JTDevice device);
void deleteDeviceByPhoneNumber(Integer phoneNumber);
void deleteDeviceByPhoneNumber(String phoneNumber);
void updateDeviceStatus(boolean connected, Integer terminalId);
void updateDeviceStatus(boolean connected, String phoneNumber);
void play(String phoneNumber, String channelId, int type, GeneralCallback<StreamInfo> callback);
@@ -118,5 +118,11 @@ public interface Ijt1078Service {
void recordDownload(String phoneNumber, String channelId, String startTime, String endTime, Integer type, Integer rate, GeneralCallback<String> fileCallback);
List<JTChannel> getChannelList(int phoneNumber, String query);
List<JTChannel> getChannelList(int deviceId, String query);
void updateChannel(JTChannel channel);
void addChannel(JTChannel channel);
void deleteChannelById(Integer id);
}

View File

@@ -13,7 +13,7 @@ import com.genersoft.iot.vmp.jt1078.bean.*;
import com.genersoft.iot.vmp.jt1078.bean.common.ConfigAttribute;
import com.genersoft.iot.vmp.jt1078.cmd.JT1078Template;
import com.genersoft.iot.vmp.jt1078.dao.JTChannelMapper;
import com.genersoft.iot.vmp.jt1078.dao.JTDeviceMapper;
import com.genersoft.iot.vmp.jt1078.dao.JTTerminalMapper;
import com.genersoft.iot.vmp.jt1078.event.CallbackManager;
import com.genersoft.iot.vmp.jt1078.event.FtpUploadEvent;
import com.genersoft.iot.vmp.jt1078.proc.request.J1205;
@@ -36,7 +36,6 @@ import com.genersoft.iot.vmp.utils.DateUtil;
import com.genersoft.iot.vmp.vmanager.bean.ErrorCode;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.apache.commons.compress.utils.IOUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,10 +44,7 @@ import org.springframework.context.event.EventListener;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import java.io.*;
import java.lang.reflect.Field;
import java.nio.file.Files;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@@ -58,7 +54,7 @@ public class jt1078ServiceImpl implements Ijt1078Service {
private final static Logger logger = LoggerFactory.getLogger(jt1078ServiceImpl.class);
@Autowired
private JTDeviceMapper jtDeviceMapper;
private JTTerminalMapper jtDeviceMapper;
@Autowired
private JTChannelMapper jtChannelMapper;
@@ -98,8 +94,8 @@ public class jt1078ServiceImpl implements Ijt1078Service {
@Override
public JTDevice getDevice(Integer terminalId) {
return jtDeviceMapper.getDevice(terminalId);
public JTDevice getDevice(String phoneNumber) {
return jtDeviceMapper.getDevice(phoneNumber);
}
@Override
@@ -123,13 +119,13 @@ public class jt1078ServiceImpl implements Ijt1078Service {
}
@Override
public void deleteDeviceByPhoneNumber(Integer phoneNumber) {
jtDeviceMapper.deleteDeviceByTerminalId(phoneNumber);
public void deleteDeviceByPhoneNumber(String phoneNumber) {
jtDeviceMapper.deleteDeviceByPhoneNumber(phoneNumber);
}
@Override
public void updateDeviceStatus(boolean connected, Integer terminalId) {
jtDeviceMapper.updateDeviceStatus(connected, terminalId);
public void updateDeviceStatus(boolean connected, String phoneNumber) {
jtDeviceMapper.updateDeviceStatus(connected, phoneNumber);
}
private final Map<String, List<GeneralCallback<StreamInfo>>> inviteErrorCallbackMap = new ConcurrentHashMap<>();
@@ -1013,4 +1009,19 @@ public class jt1078ServiceImpl implements Ijt1078Service {
public List<JTChannel> getChannelList(int deviceId, String query) {
return jtChannelMapper.getAll(deviceId, query);
}
@Override
public void updateChannel(JTChannel channel) {
jtChannelMapper.update(channel);
}
@Override
public void addChannel(JTChannel channel) {
jtChannelMapper.add(channel);
}
@Override
public void deleteChannelById(Integer id) {
jtChannelMapper.delete(id);
}
}

View File

@@ -315,10 +315,10 @@ create table wvp_resources_tree (
path character varying(255)
);
create table wvp_jt_device (
create table wvp_jt_terminal (
id serial primary key,
device_id character varying(50),
phone_number character varying(50) not null,
phone_number character varying(50),
province_id character varying(50),
province_text character varying(100),
city_id character varying(50),
@@ -334,7 +334,7 @@ create table wvp_jt_device (
register_time character varying(50) not null,
update_time character varying(50) not null,
create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id)
constraint uk_jt_device_id_device_id unique (id, phone_number)
);
create table wvp_jt_channel (
id serial primary key,

View File

@@ -315,10 +315,10 @@ create table wvp_resources_tree (
path character varying(255)
);
create table wvp_jt_device (
create table wvp_jt_terminal (
id serial primary key,
device_id character varying(50),
phone_number character varying(50) not null,
phone_number character varying(50),
province_id character varying(50),
province_text character varying(100),
city_id character varying(50),
@@ -334,7 +334,7 @@ create table wvp_jt_device (
register_time character varying(50) not null,
update_time character varying(50) not null,
create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id)
constraint uk_jt_device_id_device_id unique (id, phone_number)
);
create table wvp_jt_channel (
id serial primary key,

View File

@@ -1,7 +1,7 @@
create table wvp_jt_device (
create table wvp_jt_terminal (
id serial primary key,
device_id character varying(50),
phone_number integer,
phone_number character varying(50),
province_id character varying(50),
province_text character varying(100),
city_id character varying(50),
@@ -17,7 +17,7 @@ create table wvp_jt_device (
register_time character varying(50) not null,
update_time character varying(50) not null,
create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id)
constraint uk_jt_device_id_device_id unique (id, phone_number)
);
create table wvp_jt_channel (

View File

@@ -1,7 +1,7 @@
create table wvp_jt_device (
create table wvp_jt_terminal (
id serial primary key,
device_id character varying(50),
phone_number character varying(50) not null,
phone_number character varying(50),
province_id character varying(50),
province_text character varying(100),
city_id character varying(50),
@@ -17,7 +17,7 @@ create table wvp_jt_device (
register_time character varying(50) not null,
update_time character varying(50) not null,
create_time character varying(50) not null,
constraint uk_jt_device_id_device_id unique (id, terminal_id)
constraint uk_jt_device_id_device_id unique (id, phone_number)
);
create table wvp_jt_channel (
id serial primary key,