package com.ld.igds.protocol.hk; import com.ld.igds.inout.ApiInoutService; import com.ld.igds.inout.dto.ApiInoutData; import com.ld.igds.inout.dto.InoutData; import com.ld.igds.protocol.hk.lpr.AlarmLpr; import com.ld.igds.constant.Constant; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; /** * 海康警告类型车牌识别JDK调用 */ @Slf4j @Component public class HkApiInoutService implements ApiInoutService { private AlarmLpr alarmLpr = new AlarmLpr(); @Override public String getProtocol() { return "HIK_SDK"; } @Override public ApiInoutData getIcCardNum(ApiInoutData param) { return null; } @Override public ApiInoutData getPlateNum(ApiInoutData param) { // 获取缓存数据 ApiInoutData lPrData = HKConstant.getDataBySn(param.getSn()); if (null == lPrData) { param.setErrorMsg("ERROR:系统未获取到当前设备信息"); return param; } if (Constant.YN_N.equals(lPrData.getStatus())) { param.setErrorMsg("ERROR:当前车牌识别认证登陆失败,请重置车牌识别"); return param; } log.info("-------------请求参数----------------------{}", param.getSn()); if (HKConstant.RESULT_SUCCESS.equals(lPrData.getErrorMsg())) { // 验证时间 if (System.currentTimeMillis() - lPrData.getTime().getTime() < HKConstant.CHECK_TIME) { param.setPlateNum(lPrData.getPlateNum()); } else { param.setErrorMsg("未识别到车牌,请重新尝试"); } param.setPlateNum(lPrData.getPlateNum()); } else { param.setErrorMsg(lPrData.getErrorMsg()); } return param; } @Override public String initLpr(ApiInoutData param) { try { String msg = alarmLpr.initSdk(); log.info("--------初始化HK-SDK-------{}", msg); Thread.sleep(500); ApiInoutData cacheData = HKConstant.getDataBySn(param.getSn()); if (null != cacheData && Constant.YN_Y.equals(cacheData.getStatus())) { return null; } // 登陆 msg = alarmLpr.login(param.getDeviceCode(), param.getIp(), param.getPort(), param.getLoginId(), param.getPwd()); if (HKConstant.RESULT_SUCCESS.equals(msg)) { param.setStatus(Constant.YN_Y); } else { param.setStatus(Constant.YN_N); } param.setErrorMsg(msg); HKConstant.updateLprMap(param.getSn(), param); return msg; } catch (Exception e) { log.error("----------------初始化车牌识别执行识别----------------------"); } return null; } @Override public String gateControl(ApiInoutData param) { return null; } @Override public String lightControl(ApiInoutData param) { return null; } @Override public String noticeRadio(ApiInoutData param, InoutData data) { return null; } @Override public String noticeLed(ApiInoutData param, InoutData data) { return null; } }