jiazx0107@163.com
2024-01-01 d454e51e06dbf7beb50551588fc58a5810295d7c
src/main/java/com/fzzy/gateway/controller/GatewayDeviceController.java
@@ -1,5 +1,6 @@
package com.fzzy.gateway.controller;
import com.fzzy.api.data.GatewayDeviceProtocol;
import com.fzzy.api.data.GatewayDeviceType;
import com.fzzy.gateway.GatewayUtils;
import com.fzzy.gateway.api.GatewayRemoteManager;
@@ -70,6 +71,143 @@
        return "SUCCESS";
    }
    /**
     * 下行分机测试入口
     *
     * @param param
     * @return
     */
    @PostMapping("/test/IDE")
    public @ResponseBody
    String testIDE(@RequestBody GateWayParam param) throws Exception {
        if (StringUtils.isEmpty(param.getBizType())) {
            return "ERROR:没有获取到业务类型,执行失败";
        }
        //获取分机配置
        if ("syncConf".equals(param.getBizType())) {
            return syncConf(param);
        }
        if ("writeConf".equals(param.getBizType())) {
            return writeConf(param);
        }
        if ("initParam".equals(param.getBizType())) {
            return initCable(param);
        }
        if ("disconnect".equals(param.getBizType())) {
            return disconnect(param);
        }
        if ("transparent".equals(param.getBizType())) {
            return transparent(param);
        }
        return "SUCCESS";
    }
    private String transparent(GateWayParam param) {
        String deviceId = param.getDeviceId();
        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
        BaseReqData reqData = new BaseReqData();
        reqData.setDeviceId(device.getDeviceId());
        reqData.setProductId(device.getProductId());
        reqData.setDeviceName(device.getDeviceName());
        reqData.setDevice(device);
        reqData.setAutoReplay(false);
        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).transparent(reqData);
        if (BaseResp.CODE_200 != resp.getCode()) {
            return "ERROR:" + resp.getMsg();
        }
        return "SUCCESS";
    }
    private String disconnect(GateWayParam param) {
        String deviceId = param.getDeviceId();
        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
        BaseReqData reqData = new BaseReqData();
        reqData.setDeviceId(device.getDeviceId());
        reqData.setProductId(device.getProductId());
        reqData.setDeviceName(device.getDeviceName());
        reqData.setDevice(device);
        reqData.setAutoReplay(false);
        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).disconnect(reqData);
        if (BaseResp.CODE_200 != resp.getCode()) {
            return "ERROR:" + resp.getMsg();
        }
        return "SUCCESS";
    }
    private String initCable(GateWayParam param) {
        String deviceId = param.getDeviceId();
        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
        BaseReqData reqData = new BaseReqData();
        reqData.setDeviceId(device.getDeviceId());
        reqData.setProductId(device.getProductId());
        reqData.setDeviceName(device.getDeviceName());
        reqData.setDevice(device);
        reqData.setAutoReplay(false);
        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).initCable(reqData);
        if (BaseResp.CODE_200 != resp.getCode()) {
            return "ERROR:" + resp.getMsg();
        }
        return "SUCCESS";
    }
    private String syncConf(GateWayParam param) {
        String deviceId = param.getDeviceId();
        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
        BaseReqData reqData = new BaseReqData();
        reqData.setDeviceId(device.getDeviceId());
        reqData.setProductId(device.getProductId());
        reqData.setDeviceName(device.getDeviceName());
        reqData.setDevice(device);
        reqData.setAutoReplay(false);
        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).syncConf(reqData);
        if (BaseResp.CODE_200 != resp.getCode()) {
            return "ERROR:" + resp.getMsg();
        }
        return "SUCCESS";
    }
    private String writeConf(GateWayParam param) {
        String deviceId = param.getDeviceId();
        GatewayDevice device = GatewayUtils.getCacheByDeviceId(deviceId);
        BaseReqData reqData = new BaseReqData();
        reqData.setDeviceId(device.getDeviceId());
        reqData.setProductId(device.getProductId());
        reqData.setDeviceName(device.getDeviceName());
        reqData.setDevice(device);
        reqData.setAutoReplay(false);
        BaseResp resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).writeConf(reqData);
        if (BaseResp.CODE_200 != resp.getCode()) {
            return "ERROR:" + resp.getMsg();
        }
        return "SUCCESS";
    }
    /**
     * 初始化车牌识别
     *
@@ -87,7 +225,7 @@
        }
        BaseReqData reqData;
        int i = 1;
        int i = 0;
        GatewaySyncLprService syncLprService;
        for (GatewayDevice device : list) {
@@ -97,7 +235,7 @@
            reqData = new BaseReqData(device);
            reqData.setIndex(i);
            syncLprService = gatewayRemoteManager.getSyncLprService(device.getSyncProtocol());
            if(null == syncLprService) continue;
            if (null == syncLprService) continue;
            syncLprService.initLpr(reqData);
            i++;
        }
@@ -125,7 +263,14 @@
            return "ERROR:当前设备没有配置布线规则,无法执行";
        }
        BaseResp resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testGrain(reqData);
        BaseResp resp;
        if (GatewayDeviceProtocol.DEVICE_TEST.getCode().equals(device.getSyncProtocol())) {
            resp = gatewayRemoteManager.getGatewayTestService(device.getPushProtocol()).testGrain(reqData);
        } else {
            reqData.setAutoReplay(false);
            resp = gatewayRemoteManager.getSyncGrainService(device.getSyncProtocol()).syncGrain(reqData);
        }
        //自动推送
        if (BaseResp.CODE_200 == resp.getCode() && reqData.isAutoReplay()) {
            reqData.setData(resp.getData());
@@ -151,6 +296,11 @@
        BaseReqData reqData;
        BaseResp resp;
        for (GatewayDevice device : list) {
            //如果不是粮情分机跳过
            if (!GatewayDeviceType.TYPE_07.getCode().equals(device.getType())) {
                continue;
            }
            reqData = new BaseReqData();
            reqData.setDeviceId(param.getDeviceId());
            reqData.setDayTime(param.getDayTime());