From 738b3b6a8e6a1add4a7377c1c0bedad1d051a93f Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: Thu, 2 May 2024 07:35:44 +0800 Subject: [PATCH] =?UTF-8?q?1078-=E8=BD=A6=E8=BE=86=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=E5=BA=94=E7=AD=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/jt1078/proc/request/J0500.java | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java diff --git a/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java new file mode 100644 index 000000000..8fea16c22 --- /dev/null +++ b/src/main/java/com/genersoft/iot/vmp/jt1078/proc/request/J0500.java @@ -0,0 +1,58 @@ +package com.genersoft.iot.vmp.jt1078.proc.request; + +import com.genersoft.iot.vmp.jt1078.annotation.MsgId; +import com.genersoft.iot.vmp.jt1078.bean.*; +import com.genersoft.iot.vmp.jt1078.proc.Header; +import com.genersoft.iot.vmp.jt1078.proc.response.J8001; +import com.genersoft.iot.vmp.jt1078.proc.response.Rs; +import com.genersoft.iot.vmp.jt1078.service.Ijt1078Service; +import com.genersoft.iot.vmp.jt1078.session.Session; +import com.genersoft.iot.vmp.jt1078.session.SessionManager; +import com.genersoft.iot.vmp.jt1078.util.BCDUtil; +import io.netty.buffer.ByteBuf; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.context.ApplicationEvent; + +/** + * 车辆控制应答 + * + */ +@MsgId(id = "0500") +public class J0500 extends Re { + + private final static Logger log = LoggerFactory.getLogger(J0100.class); + private JTPositionBaseInfo positionInfo; + + @Override + protected Rs decode0(ByteBuf buf, Header header, Session session) { + int respNo = buf.readUnsignedShort(); + positionInfo = J0200.getPositionInfo(buf); + log.info("[JT-车辆控制应答]: {}", positionInfo.toString()); + SessionManager.INSTANCE.response(header.getTerminalId(), "0500", (long) respNo, positionInfo); + return null; + } + + @Override + protected Rs handler(Header header, Session session, Ijt1078Service service) { + JTDevice deviceInDb = service.getDevice(header.getTerminalId()); + J8001 j8001 = new J8001(); + j8001.setRespNo(header.getSn()); + j8001.setRespId(header.getMsgId()); + if (deviceInDb == null) { + j8001.setResult(J8001.FAIL); + }else { + // TODO 优化为发送异步事件,定时读取队列写入数据库 + deviceInDb.setLongitude(positionInfo.getLongitude()); + deviceInDb.setLatitude(positionInfo.getLatitude()); + service.updateDevice(deviceInDb); + j8001.setResult(J8001.SUCCESS); + } + return j8001; + } + + @Override + public ApplicationEvent getEvent() { + return null; + } +}