#
Junjie
5 天以前 96cfc17f191fee0a05070ec8e7bb6fb099f0231c
src/main/java/com/zy/asrs/ws/ConsoleWebSocket.java
@@ -1,12 +1,14 @@
package com.zy.asrs.ws;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.core.common.R;
import com.core.common.SpringUtils;
import com.zy.asrs.controller.CrnController;
import com.zy.asrs.controller.RgvController;
import com.zy.asrs.controller.BasMapController;
import com.zy.asrs.controller.ConsoleController;
import com.zy.asrs.controller.ForkLiftController;
import com.zy.asrs.controller.ShuttleController;
import com.zy.common.model.WebSocketMessage;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -70,24 +72,56 @@
     */
    @OnMessage
    public void onMessage(String message, Session session) throws IOException {
        ShuttleController shuttleController = SpringUtils.getBean(ShuttleController.class);
        ForkLiftController liftController = SpringUtils.getBean(ForkLiftController.class);
        ConsoleController consoleController = SpringUtils.getBean(ConsoleController.class);
        WebSocketMessage socketMessage = JSON.parseObject(message, WebSocketMessage.class);
        if (socketMessage.getUrl().equals("/shuttle/table/shuttle/state")) {
            R result = shuttleController.shuttleStateTable();
            socketMessage.setData(JSON.toJSONString(result));
            this.sendMessage(JSON.toJSONString(socketMessage));
        } else if (socketMessage.getUrl().equals("/lift/table/lift/state")) {
            R result = liftController.liftStateTable();
            socketMessage.setData(JSON.toJSONString(result));
            this.sendMessage(JSON.toJSONString(socketMessage));
        } else if (socketMessage.getUrl().equals("/console/map/auth")) {
            R result = consoleController.getMapFromRedis(Integer.parseInt(socketMessage.getData()));
            socketMessage.setData(JSON.toJSONString(result));
            this.sendMessage(JSON.toJSONString(socketMessage));
        Object resObj = null;
        String url = null;
        try {
            JSONObject req = JSON.parseObject(message);
            url = req.getString("url");
            if (url == null) {
                return;
            }
            if (url.startsWith("/basMap/lev/") && url.endsWith("/auth")) {
                String[] segs = url.split("/");
                Integer lev = null;
                for (int i = 0; i < segs.length; i++) {
                    if ("lev".equals(segs[i]) && i + 1 < segs.length) {
                        try {
                            lev = Integer.parseInt(segs[i + 1]);
                        } catch (Exception ignore) {}
                        break;
                    }
                }
                BasMapController basMapController = SpringUtils.getBean(BasMapController.class);
                R r = basMapController.getByLev(lev);
                resObj = r;
            } else if ("/console/latest/data/station".equals(url)) {
                ConsoleController consoleController = SpringUtils.getBean(ConsoleController.class);
                resObj = consoleController.stationLatestData();
            } else if ("/console/latest/data/crn".equals(url)) {
                ConsoleController consoleController = SpringUtils.getBean(ConsoleController.class);
                resObj = consoleController.crnLatestData();
            } else if ("/console/latest/data/rgv".equals(url)) {
                ConsoleController consoleController = SpringUtils.getBean(ConsoleController.class);
                resObj = consoleController.rgvLatestData();
            } else if ("/crn/table/crn/state".equals(url)) {
                resObj = SpringUtils.getBean(CrnController.class).crnStateTable();
            } else if ("/rgv/table/rgv/state".equals(url)) {
                resObj = SpringUtils.getBean(RgvController.class).rgvStateTable();
            }
        } catch (Exception e) {
            R err = R.error(e.getMessage());
            JSONObject out = new JSONObject();
            out.put("url", "error");
            out.put("data", JSON.toJSONString(err));
            this.sendMessage(out.toJSONString());
            return;
        }
//        log.info("收到来自连接:" + sessionId + "的信息:" + message);
        if (resObj != null && url != null) {
            JSONObject out = new JSONObject();
            out.put("url", url);
            out.put("data", JSON.toJSONString(resObj));
            this.sendMessage(out.toJSONString());
        }
    }
    /**