#
Junjie
2025-07-17 fcbf54ac3b86f5545cf120b37e4cfe956919f338
#
1个文件已修改
22 ■■■■ 已修改文件
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/core/thread/impl/NyShuttleThread.java
@@ -55,6 +55,7 @@
    private RedisUtil redisUtil;
    private ShuttleProtocol shuttleProtocol;
    private Socket socket;
    private long lastConnectTime = System.currentTimeMillis();
    private static final boolean DEBUG = false;//调试模式
@@ -160,6 +161,12 @@
                if (deviceDataLogService == null) {
                    return;
                }
                //离线不做日志存储
                if (shuttleProtocol.getProtocolStatusType().equals(ShuttleProtocolStatusType.OFFLINE)) {
                    return;
                }
                DeviceDataLog deviceDataLog = new DeviceDataLog();
                deviceDataLog.setOriginData(JSON.toJSONString(this.originDeviceData));
                deviceDataLog.setWcsData(JSON.toJSONString(shuttleProtocol));
@@ -203,7 +210,10 @@
                JSONObject body = response.getJSONObject("body");
                if (body.containsKey("workingMode")) {
                    //read
                    socketReadResults.add(body);
                    JSONObject socketReadResult = new JSONObject();
                    socketReadResult.put("body", body);
                    socketReadResult.put("originDeviceData", sb);
                    socketReadResults.add(socketReadResult);
                    return;
                }
            }
@@ -300,8 +310,9 @@
                return;
            }
            JSONObject data = this.socketReadResults.get(0);
            JSONObject socketReadResult = this.socketReadResults.get(0);
            this.socketReadResults.remove(0);
            JSONObject data = socketReadResult.getJSONObject("body");
            if (data == null) {
                if (System.currentTimeMillis() - shuttleProtocol.getLastOnlineTime() > 1000 * 60) {
                    //最后一次上线时间超过60s,认定离线
@@ -371,7 +382,7 @@
                    this.shuttleProtocol.setProtocolStatus(ShuttleProtocolStatusType.IDLE);
                }
                this.originDeviceData = data;
                this.originDeviceData = socketReadResult.get("originDeviceData");
                OutputQueue.SHUTTLE.offer(MessageFormat.format("【{0}】[id:{1}] <<<<< 实时数据更新成功",DateUtils.convert(new Date()), slave.getId()));
            }
@@ -1068,12 +1079,17 @@
    @Override
    public boolean connect() {
        try {
            if (System.currentTimeMillis() - lastConnectTime < 1000 * 10) {
                return false;
            }
            InetAddress address = InetAddress.getByName(slave.getIp());
            if (address.isReachable(10000)) {
                Socket socket = new Socket(slave.getIp(), slave.getPort());
                socket.setSoTimeout(10000);
                socket.setKeepAlive(true);
                this.socket = socket;
                this.lastConnectTime = System.currentTimeMillis();
                log.info(MessageFormat.format("【{0}】四向穿梭车Socket链接成功 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
            }
        } catch (Exception e) {