jiazx0107@163.com
2023-07-05 a195948e2f1db9d413194f7d33c93cca6a796ca8
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
@@ -400,6 +400,69 @@
        return null;
    }
    /**
     * 被动收到车牌识别结果,事件
     *
     * @param data
     */
    @Async
    public void onReceivePlateNum(ApiInoutData data) {
        InoutConf conf = this.getInoutConfBySn(data.getCompanyId(), data.getDeptId(), data.getSn());
        if (null == conf) return;
        if (0 == conf.getInOrder()) return;
        data = new ApiInoutData(conf);
        ApiInoutService inoutApiService = apiInoutManager.getApiService(conf.getProtocol());
        //获取车牌信息,开闸机
        if (InoutApiConstant.DEVICE_CODE_1002 == data.getDeviceCode()) {
            //开入口处道闸
            data.setDeviceCode(InoutApiConstant.DEVICE_CODE_2002);
            data.setActionCode(InoutApiConstant.ACTION_CODE_1);
            inoutApiService.gateControl(data);
        }
        if (InoutApiConstant.DEVICE_CODE_1003 == data.getDeviceCode()) {
            //开入口处道闸
            data.setDeviceCode(InoutApiConstant.DEVICE_CODE_2003);
            data.setActionCode(InoutApiConstant.ACTION_CODE_1);
            inoutApiService.gateControl(data);
        }
    }
    /**
     * 出入库称重页面初始化,如果有SDK车牌识别,需要进行初始化操作
     *
     * @param listInoutConf
     * @param sort
     */
    @Async
    public void initInoutWeight(List<InoutConf> listInoutConf, String sort) {
        //获取车牌配置信息
        if (null == listInoutConf) return;
        ApiInoutData apiInoutData;
        ApiInoutService inoutApiService;
        for (InoutConf conf : listInoutConf) {
            if (InoutConstant.CONF_TYPE_10.equals(conf.getType()) && sort.equals(conf.getSort())) {
                apiInoutData = new ApiInoutData(conf);
                inoutApiService = apiInoutManager.getApiService(conf.getProtocol());
                inoutApiService.initLpr(apiInoutData);
            }
        }
    }
    /**
     * 出入库登记完成触发事件,默认为异步处理
     *
@@ -430,21 +493,21 @@
        //1、通知称重显示屏,设备编号6001
        ApiInoutData apiData = new ApiInoutData(conf);
        apiData.setTime(new Date());
        apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_6001);
        apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_6001);
        ApiInoutService inoutApiService = apiInoutManager.getApiService(conf.getProtocol());
        inoutApiService.noticeLed(apiData, data);
        //2、语音通知
        apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_8001);
        apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_8001);
        inoutApiService.noticeRadio(apiData, data);
        //3、开闸机
        if (InoutConstant.TYPE_IN.equals(data.getType())) {
            //结算重量大于0表示二次称重
            if (data.getNetWeight() > 0) {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_1002);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1002);
            } else {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_1003);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1003);
            }
            apiData.setActionCode(InoutApiConstant.ACTION_CODE_1);
@@ -452,9 +515,9 @@
        } else {
            //结算重量大于0表示二次称重
            if (data.getNetWeight() > 0) {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_1003);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1003);
            } else {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_1002);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1002);
            }
            apiData.setActionCode(InoutApiConstant.ACTION_CODE_1);
            inoutApiService.gateControl(apiData);
@@ -464,9 +527,9 @@
        if (InoutConstant.TYPE_IN.equals(data.getType())) {
            //结算重量大于0表示二次称重
            if (data.getNetWeight() > 0) {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_7001);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_7001);
            } else {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_7002);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_7002);
            }
            apiData.setActionCode(InoutApiConstant.ACTION_CODE_1);
@@ -474,14 +537,14 @@
        } else {
            //结算重量大于0表示二次称重
            if (data.getNetWeight() > 0) {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_7002);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_7002);
            } else {
                apiData.setDeviceId(InoutApiConstant.DEVICE_CODE_7001);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_7001);
            }
            apiData.setActionCode(InoutApiConstant.ACTION_CODE_1);
            inoutApiService.lightControl(apiData);
        }
    }
@@ -671,5 +734,24 @@
        return result;
    }
    private InoutConf getInoutConfBySn(String companyId, String deptId, String sn) {
        if (null == sn) return null;
        // 获取出入库配置信息
        List<InoutConf> listInoutConf = inoutCommonService.getCacheInoutConf(companyId, deptId);
        if (null == listInoutConf) return null;
        for (InoutConf conf : listInoutConf) {
            if (null == conf.getSn()) continue;
            if (sn.equals(conf.getSn())) return conf;
        }
        return null;
    }
}