jiazx0107@163.com
2023-09-18 4dc585d5bf2fd0a01602aba0d9fa25adbaf4a7fb
igds-inout/src/main/java/com/ld/igds/inout/manager/InoutEventControlManager.java
@@ -29,7 +29,6 @@
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -69,20 +68,16 @@
        //如果使用的是地磅插件获取,则需要调整设备为地磅插件信息
        if (ProtocolEnum.TCP_FZZY_WEIGHT.getCode().equals(param.getProtocol())) {
            InoutConf conf = this.getInoutConf(param.getCompanyId(), param.getDeptId(), param.getSort(), InoutConstant.CONF_TYPE_70);
            if (null == conf) {
                param.setErrorMsg("没有获取到当前协议插件配置配置信息,获取失败");
                return param;
            }
            param.setIp(conf.getIp());
            param.setPort(conf.getPort());
            param.setProtocol(conf.getProtocol());
            return apiInoutManager.getApiService(param.getProtocol()).getPlateNum(param);
        }
        return apiInoutManager.getApiService(param.getProtocol()).getPlateNum(param);
@@ -96,6 +91,20 @@
     * @return
     */
    public ApiInoutData getIcCardNum(ApiInoutData param) {
        //如果使用的是地磅插件获取,则需要调整设备为地磅插件信息
        if (ProtocolEnum.TCP_FZZY_WEIGHT.getCode().equals(param.getProtocol())) {
            InoutConf conf = this.getInoutConf(param.getCompanyId(), param.getDeptId(), param.getSort(), InoutConstant.CONF_TYPE_70);
            if (null == conf) {
                param.setErrorMsg("没有获取到当前协议插件配置配置信息,获取失败");
                return param;
            }
            param.setIp(conf.getIp());
            param.setPort(conf.getPort());
            param.setProtocol(conf.getProtocol());
            return apiInoutManager.getApiService(param.getProtocol()).getIcCardNum(param);
        }
        return apiInoutManager.getApiService(param.getProtocol()).getIcCardNum(param);
    }
@@ -117,27 +126,7 @@
    }
    /**
     * @param param
     * @return
     */
    public String noticeWeightDone(ApiInoutData param) {
        //获取称重主控器配置
        InoutConf conf = getWeightGateway(param.getCompanyId(), param.getDeptId(), param.getSort());
        if (null == conf) {
            return "称重主控未配置,支持失败";
        }
        ApiInoutData apiData = new ApiInoutData(conf);
        apiData.setPlateNum(param.getPlateNum());
        apiData.setTime(new Date());
        ApiInoutService inoutApiService = apiInoutManager.getApiService(conf.getProtocol());
        // return inoutApiService.noticeWeightDone(apiData); TODO
        return null;
    }
    /**
     * 出入库抓拍
@@ -175,73 +164,73 @@
     *
     * @param snapImgDto
     */
    private void noticeGatewayWeightInfo(SnapImgDto snapImgDto) {
        log.debug("-------------用户确认称重----通知称重网关----{}", snapImgDto.getWeight());
        InoutConf conf = this.getWeightGateway(snapImgDto.getCompanyId(), snapImgDto.getDeptId(), snapImgDto.getSort());
        if (null == conf) {
            log.info("-------------用户确认称重----通知称重网关---未配置网关----");
            return;
        }
        ApiInoutData apiData = new ApiInoutData(conf);
        apiData.setTime(new Date());
        apiData.setRepeat(2);
        apiData.setWeight(snapImgDto.getWeight());
        apiData.setPlateNum(snapImgDto.getPlateNum());
        //称重信息暂时取消播放
//        apiData.setMsg("当前称重:" + apiData.getWeight() + "千克");
        apiData.setMsg("称重已完成");
//        apiInoutManager.getApiService(apiData.getProtocol()).noticeWeightDone(apiData);
        //  apiInoutManager.getApiService(apiData.getProtocol()).noticeRadio(apiData);
    }
//    private void noticeGatewayWeightInfo(SnapImgDto snapImgDto) {
//
//        log.debug("-------------用户确认称重----通知称重网关----{}", snapImgDto.getWeight());
//        InoutConf conf = this.getWeightGateway(snapImgDto.getCompanyId(), snapImgDto.getDeptId(), snapImgDto.getSort());
//
//        if (null == conf) {
//            log.info("-------------用户确认称重----通知称重网关---未配置网关----");
//            return;
//        }
//
//        ApiInoutData apiData = new ApiInoutData(conf);
//        apiData.setTime(new Date());
//        apiData.setRepeat(2);
//        apiData.setWeight(snapImgDto.getWeight());
//        apiData.setPlateNum(snapImgDto.getPlateNum());
//        //称重信息暂时取消播放
////        apiData.setMsg("当前称重:" + apiData.getWeight() + "千克");
//        apiData.setMsg("称重已完成");
//
////        apiInoutManager.getApiService(apiData.getProtocol()).noticeWeightDone(apiData);
//        //  apiInoutManager.getApiService(apiData.getProtocol()).noticeRadio(apiData);
//    }
    /**
     * 新增白名单给住控制器,需要注意的是,登记时候不确认使用哪个地磅系统,如果系统配置多个主控器,需要同步全部推送
     *
     * @param imgDto
     */
    private void noticeGatewayAddWhitePlate(SnapImgDto imgDto) {
//    private void noticeGatewayAddWhitePlate(SnapImgDto imgDto) {
//
//        List<InoutConf> list = this.getWeightGateway(imgDto.getCompanyId(), imgDto.getDeptId());
//
//        if (null == list || list.isEmpty()) {
//            log.info("-------------称重网关增加白名单----没有获取到网关配置-----取消执行---");
//            return;
//        }
//
//        log.debug("-------------登记完成,增加车牌白名单-----------{}", imgDto.getPlateNum());
//
//        ApiInoutService inoutApiService = apiInoutManager.getApiService(list.get(0).getProtocol());
//
//        ApiInoutData apiData;
//        for (InoutConf conf : list) {
//            apiData = new ApiInoutData(conf);
//            apiData.setPlateNum(imgDto.getPlateNum());
//            // inoutApiService.addWhitePlate(apiData);
//        }
//    }
        List<InoutConf> list = this.getWeightGateway(imgDto.getCompanyId(), imgDto.getDeptId());
        if (null == list || list.isEmpty()) {
            log.info("-------------称重网关增加白名单----没有获取到网关配置-----取消执行---");
            return;
        }
        log.debug("-------------登记完成,增加车牌白名单-----------{}", imgDto.getPlateNum());
        ApiInoutService inoutApiService = apiInoutManager.getApiService(list.get(0).getProtocol());
        ApiInoutData apiData;
        for (InoutConf conf : list) {
            apiData = new ApiInoutData(conf);
            apiData.setPlateNum(imgDto.getPlateNum());
            // inoutApiService.addWhitePlate(apiData);
        }
    }
    public void noticeProgressComplete(InoutData data) {
        log.debug("-----------------通知称重主控--------流程结束删除白名单");
        List<InoutConf> list = this.getWeightGateway(data.getCompanyId(), data.getDeptId());
        if (null == list || list.isEmpty()) {
            return;
        }
        ApiInoutService inoutApiService = apiInoutManager.getApiService(list.get(0).getProtocol());
        ApiInoutData apiData;
        for (InoutConf conf : list) {
            apiData = new ApiInoutData(conf);
            apiData.setPlateNum(data.getPlateNum());
            // inoutApiService.delWhitePlate(apiData); TODO
        }
    }
//    public void noticeProgressComplete(InoutData data) {
//        log.debug("-----------------通知称重主控--------流程结束删除白名单");
//        List<InoutConf> list = this.getWeightGateway(data.getCompanyId(), data.getDeptId());
//
//        if (null == list || list.isEmpty()) {
//            return;
//        }
//
//        ApiInoutService inoutApiService = apiInoutManager.getApiService(list.get(0).getProtocol());
//
//        ApiInoutData apiData;
//        for (InoutConf conf : list) {
//            apiData = new ApiInoutData(conf);
//            apiData.setPlateNum(data.getPlateNum());
//
//            // inoutApiService.delWhitePlate(apiData); TODO
//        }
//    }
    /**
     * 调用接口进行抓拍
@@ -362,26 +351,6 @@
        return inoutCommonService.getCacheInoutConf(ContextUtil.getCompanyId(), ContextUtil.subDeptId(null), id);
    }
    /**
     * @Desc: 获取称重网关设备
     * @author: Andy
     * @update-time: 2022/11/26
     */
    public List<InoutConf> getWeightGateway(String companyId, String deptId) {
        List<InoutConf> list = inoutCommonService.getCacheInoutConf(companyId, deptId);
        if (null == list || list.isEmpty()) return null;
        List<InoutConf> result = new ArrayList<>();
        for (InoutConf conf : list) {
            if (InoutConstant.CONF_TYPE_70.equals(conf.getType())) {
                result.add(conf);
            }
        }
        return result;
    }
    /**
     * @Desc: 获取称重网关设备
     * @author: Andy
@@ -410,30 +379,41 @@
    public void onReceivePlateNum(ApiInoutData data) {
        InoutConf conf = this.getInoutConfBySn(data.getCompanyId(), data.getDeptId(), data.getSn());
        if (null == conf) return;
        if (null == conf) {
            log.error("没有获取到出入库配置CONF:"+data.toString());
            return;
        }
        log.info(conf.toString());
        if (0 == conf.getInOrder()) return;
        data = new ApiInoutData(conf);
        ApiInoutService inoutApiService = apiInoutManager.getApiService(conf.getProtocol());
        log.info(data.toString());
        ApiInoutService inoutApiService = null;
        InoutConf gateconf = null;
        //获取车牌信息,开闸机
        if (InoutApiConstant.DEVICE_CODE_1002 == data.getDeviceCode()) {
            gateconf = this.getWeightGateway(data.getCompanyId(), data.getDeptId(), null);
            if (null == gateconf) {
                log.info("----------没有获取到称重控制器--------------");
            }
            data = new ApiInoutData(gateconf);
            //开入口处道闸
            inoutApiService = apiInoutManager.getApiService(gateconf.getProtocol());
            data.setDeviceCode(InoutApiConstant.DEVICE_CODE_2002);
            data.setActionCode(InoutApiConstant.ACTION_CODE_1);
            inoutApiService.gateControl(data);
        }
        if (InoutApiConstant.DEVICE_CODE_1003 == data.getDeviceCode()) {
            gateconf = this.getWeightGateway(data.getCompanyId(), data.getDeptId(), null);
            if (null == gateconf) {
                log.info("----------没有获取到称重控制器--------------");
            }
            //开入口处道闸
            data = new ApiInoutData(gateconf);
            inoutApiService = apiInoutManager.getApiService(gateconf.getProtocol());
            data.setDeviceCode(InoutApiConstant.DEVICE_CODE_2003);
            data.setActionCode(InoutApiConstant.ACTION_CODE_1);
            inoutApiService.gateControl(data);
        }
@@ -454,7 +434,7 @@
        ApiInoutData apiInoutData;
        ApiInoutService inoutApiService;
        for (InoutConf conf : listInoutConf) {
            if (InoutConstant.CONF_TYPE_10.equals(conf.getType()) && sort.equals(conf.getSort())) {
            if (InoutConstant.PROGRESS_WEIGHT_TAG.equals(conf.getInoutProgress())&&InoutConstant.CONF_TYPE_10.equals(conf.getType()) && sort.equals(conf.getSort())) {
                apiInoutData = new ApiInoutData(conf);
                inoutApiService = apiInoutManager.getApiService(conf.getProtocol());
                inoutApiService.initLpr(apiInoutData);
@@ -505,9 +485,9 @@
        if (InoutConstant.TYPE_IN.equals(data.getType())) {
            //结算重量大于0表示二次称重
            if (data.getNetWeight() > 0) {
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1002);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2002);
            } else {
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1003);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2003);
            }
            apiData.setActionCode(InoutApiConstant.ACTION_CODE_1);
@@ -515,9 +495,9 @@
        } else {
            //结算重量大于0表示二次称重
            if (data.getNetWeight() > 0) {
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1003);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2002);
            } else {
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_1002);
                apiData.setDeviceCode(InoutApiConstant.DEVICE_CODE_2003);
            }
            apiData.setActionCode(InoutApiConstant.ACTION_CODE_1);
            inoutApiService.gateControl(apiData);