部标-修复0003注销消息处理

This commit is contained in:
lin 2026-05-18 10:39:41 +08:00
parent 75575f939c
commit 459a8cd77a
2 changed files with 16 additions and 16 deletions

View File

@ -12,17 +12,12 @@ import io.netty.buffer.CompositeByteBuf;
import io.netty.buffer.UnpooledByteBufAllocator;
import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.ByteToMessageDecoder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationEvent;
import org.springframework.context.ApplicationEventPublisher;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
/**
* @author QingtaiJiang
@ -93,6 +88,8 @@ public class Jt808Decoder extends ByteToMessageDecoder {
}
/**
* 转义与验证校验码
*

View File

@ -1,13 +1,13 @@
package com.genersoft.iot.vmp.jt1078.proc.request;
import com.genersoft.iot.vmp.jt1078.annotation.MsgId;
import com.genersoft.iot.vmp.jt1078.bean.JTDevice;
import com.genersoft.iot.vmp.jt1078.event.DeviceUpdateEvent;
import com.genersoft.iot.vmp.jt1078.proc.Header;
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 io.netty.buffer.ByteBuf;
import io.netty.buffer.ByteBufUtil;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationEvent;
@ -20,27 +20,30 @@ import org.springframework.context.ApplicationEvent;
@MsgId(id = "0003")
public class J0003 extends Re {
int respNo;
String respId;
int result;
private JTDevice deviceForUpdate;
@Override
protected Rs decode0(ByteBuf buf, Header header, Session session) {
respNo = buf.readUnsignedShort();
respId = ByteBufUtil.hexDump(buf.readSlice(2));
result = buf.readUnsignedByte();
log.info("[JT-注销] 设备: {}", header.getPhoneNumber());
return null;
}
@Override
protected Rs handler(Header header, Session session, Ijt1078Service service) {
SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
// SessionManager.INSTANCE.response(header.getPhoneNumber(), "0001", (long) respNo, result);
JTDevice device = service.getDevice(header.getPhoneNumber());
if (device != null && device.isStatus()) {
deviceForUpdate = device;
deviceForUpdate.setStatus(false);
service.updateDevice(device);
}
return null;
}
@Override
public ApplicationEvent getEvent() {
return null;
DeviceUpdateEvent registerEvent = new DeviceUpdateEvent(this);
registerEvent.setDevice(deviceForUpdate);
return registerEvent;
}
}