调整
This commit is contained in:
parent
bd214436d8
commit
06466a4e45
@ -56,6 +56,8 @@ public class BusDeviceServiceImpl extends ServiceImpl<BusDeviceMapper, BusDevice
|
||||
private final BusUserCommandMapper busUserCommandMapper;
|
||||
private final BusCommandLogMapper busCommandLogMapper;
|
||||
private final WeChatService weChatService;
|
||||
private final WebSocketSdcpServiceImpl webSocketSdcpService;
|
||||
private final WebSocketVueServiceImpl webSocketVueService;
|
||||
private final RedisUtils redisUtils;
|
||||
|
||||
@Override
|
||||
@ -134,6 +136,10 @@ public class BusDeviceServiceImpl extends ServiceImpl<BusDeviceMapper, BusDevice
|
||||
}
|
||||
resources.setDeviceCode((new Random().nextInt(900000) + 100000) + "");
|
||||
busDeviceMapper.insert(resources);
|
||||
// 刷新设备
|
||||
webSocketVueService.refreshDeviceList();
|
||||
// 设备初始化
|
||||
webSocketSdcpService.openDeviceStatus(resources.getDeviceSn());
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -142,12 +148,18 @@ public class BusDeviceServiceImpl extends ServiceImpl<BusDeviceMapper, BusDevice
|
||||
BusDevice busDevice = getById(resources.getId());
|
||||
busDevice.copy(resources);
|
||||
busDeviceMapper.updateById(busDevice);
|
||||
// 刷新设备
|
||||
webSocketVueService.refreshDeviceList();
|
||||
// 设备初始化
|
||||
webSocketSdcpService.openDeviceStatus(resources.getDeviceSn());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteAll(List<Long> ids) {
|
||||
busDeviceMapper.deleteBatchIds(ids);
|
||||
// 刷新设备
|
||||
webSocketVueService.refreshDeviceList();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -39,7 +39,7 @@ public class WebSocketSdcpServiceImpl extends WebSocketService {
|
||||
this.channel = WebSocketConfig.TOPIC_PREFIX;
|
||||
log.info("SDCP服务端 连接成功:channel={}", channel);
|
||||
clients.put(channel, this);
|
||||
openDeviceStatus();
|
||||
openDeviceStatus(null);
|
||||
}
|
||||
/**
|
||||
* 连接关闭调用的方法
|
||||
@ -94,33 +94,43 @@ public class WebSocketSdcpServiceImpl extends WebSocketService {
|
||||
sendVueMessage(JSON.toJSONString(new SocketMsg(new HashMap<>() , remark, MsgEnum.CLOSE)), null, null);
|
||||
}
|
||||
|
||||
// 初始状态刷新消息(Cmd:0) 指令
|
||||
private void openDeviceStatus() {
|
||||
public void openDeviceStatus(String thisDeviceSn) {
|
||||
log.info(">>> 初始化设备状态");
|
||||
WebSocketService socket = getSocket(WebSocketConfig.TOPIC_PREFIX);
|
||||
for (String deviceSn : deviceList) {
|
||||
long currentTimeLong = System.currentTimeMillis();
|
||||
Map<String, Object> dataParam = new HashMap<>();
|
||||
dataParam.put("UserId", socket.session.getId());
|
||||
WebSocketReqData data = new WebSocketReqData();
|
||||
data.setCmd(0);
|
||||
data.setData(dataParam);
|
||||
data.setRequestID(currentTimeLong + "");
|
||||
data.setMainboardID(deviceSn);
|
||||
data.setTimeStamp(currentTimeLong);
|
||||
data.setFrom(0);
|
||||
WebSocketReqDTO reqDTO = new WebSocketReqDTO();
|
||||
reqDTO.setTopic(WebSocketConfig.TOPIC_PREFIX + "/" + MethodEnum.request.name() + "/" + deviceSn);
|
||||
reqDTO.setData(data);
|
||||
String message = JSON.toJSONString(reqDTO);
|
||||
try {
|
||||
log.info("发送【初始化】指令:channel={},message={}", channel, message);
|
||||
socket.session.getBasicRemote().sendText(message);
|
||||
} catch (IOException e) { throw new RuntimeException(e); }
|
||||
if (StringUtils.isEmpty(thisDeviceSn)) {
|
||||
for (String deviceSn : deviceList) {
|
||||
pushDeviceStatus(deviceSn);
|
||||
}
|
||||
} else {
|
||||
pushDeviceStatus(thisDeviceSn);
|
||||
}
|
||||
log.info("<<< 初始化设备");
|
||||
}
|
||||
|
||||
// 初始状态刷新消息(Cmd:0) 指令
|
||||
private void pushDeviceStatus(String deviceSn) {
|
||||
WebSocketService socket = getSocket(WebSocketConfig.TOPIC_PREFIX);
|
||||
long currentTimeLong = System.currentTimeMillis();
|
||||
Map<String, Object> dataParam = new HashMap<>();
|
||||
dataParam.put("UserId", socket.session.getId());
|
||||
WebSocketReqData data = new WebSocketReqData();
|
||||
data.setCmd(0);
|
||||
data.setData(dataParam);
|
||||
data.setRequestID(currentTimeLong + "");
|
||||
data.setMainboardID(deviceSn);
|
||||
data.setTimeStamp(currentTimeLong);
|
||||
data.setFrom(0);
|
||||
WebSocketReqDTO reqDTO = new WebSocketReqDTO();
|
||||
reqDTO.setTopic(WebSocketConfig.TOPIC_PREFIX + "/" + MethodEnum.request.name() + "/" + deviceSn);
|
||||
reqDTO.setData(data);
|
||||
String message = JSON.toJSONString(reqDTO);
|
||||
try {
|
||||
log.info("发送【初始化】指令:channel={},message={}", channel, message);
|
||||
socket.session.getBasicRemote().sendText(message);
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
// 处理二进制图片
|
||||
private void byteImgDataHandle(String message) {
|
||||
Map<String, String> dataMap = Arrays.stream(message.split("&"))
|
||||
|
@ -35,7 +35,8 @@ public class WebSocketVueServiceImpl extends WebSocketService {
|
||||
log.info("<<< 设备初始化");
|
||||
}
|
||||
|
||||
@Scheduled(fixedRate = 60000)
|
||||
// 每30秒刷新设备
|
||||
@Scheduled(fixedRate = 30000)
|
||||
public void refreshDeviceList() {
|
||||
deviceList = new ArrayList<>();
|
||||
List<BusDevice> devices = myDeviceService.queryAll(new BusDeviceQueryCriteria());
|
||||
|
Loading…
Reference in New Issue
Block a user