| | |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | |
| | | //如果使用的是地磅插件获取,则需要调整设备为地磅插件信息 |
| | | 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); |
| | |
| | | * @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); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * @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; |
| | | } |
| | | |
| | | /** |
| | | * 出入库抓拍 |
| | |
| | | * |
| | | * @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 |
| | | // } |
| | | // } |
| | | |
| | | /** |
| | | * 调用接口进行抓拍 |
| | |
| | | req.setPlayType(conf.getPlayType()); |
| | | req.setSerSn(null == snapSer ? null : snapSer.getSn()); |
| | | req.setBizId(param.getBizId()); |
| | | //若为出入库称重抓拍,则不传递业务主键。在出入库业务提交时保存文件信息 |
| | | if(InoutConstant.PROGRESS_WEIGHT_TAG.equals(conf.getInoutProgress())){ |
| | | req.setBizId(null); |
| | | } |
| | | req.setCameraName(conf.getName()); |
| | | |
| | | req.setMediaAddr(CameraUtil.updateMediaAddr(conf.getMediaAddr(), conf.getLoginId(), |
| | |
| | | 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 |
| | |
| | | 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); |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | 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); |
| | | |
| | |
| | | } 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); |