package com.ld.igds.protocol.openapi; import com.alibaba.fastjson.JSONObject; import com.ld.igds.camera.CameraUtil; import com.ld.igds.inout.ApiInoutService; import com.ld.igds.inout.dto.ApiInoutData; import com.ld.igds.inout.dto.InoutData; import com.ld.igds.io.constant.ProtocolEnum; import com.ld.igds.protocol.openapi.data.PlateReqVo; import com.ld.igds.protocol.openapi.data.SinglePlateRepVo; import com.ld.igds.util.HttpUtils; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; /** * @Desc: OPEN-API HTTP请求协议实现 * @author: andy.jia * @update-time: 2023/6/29 15:21 */ @Slf4j @Component public class OpenApiInoutService implements ApiInoutService { private String http_url = "http://127.0.0.1:8081:/api/anpr/plate/single-recognition"; @Override public String getProtocol() { return ProtocolEnum.FZZY_OPENAPI_HTTP.getCode(); } @Override public ApiInoutData getIcCardNum(ApiInoutData param) { param.setErrorMsg("当前协议不支持"); return param; } @Override public ApiInoutData getPlateNum(ApiInoutData param) { try { log.info("-----------调用风正致远---OPEN-API-HTTP车牌识别-----"); String rtsp = param.getMediaAddr(); if (StringUtils.isEmpty(rtsp)) { param.setErrorMsg("当前车牌识别设备未配置播放地址"); return param; } //说明地址未做信息替换 if (rtsp.indexOf("{0}") > 0) { rtsp = CameraUtil.updateMediaAddr(rtsp, param.getLoginId(), param.getPwd(), param.getIp(), param.getPortCtrl(), param.getChanNum()); } PlateReqVo reqVo = new PlateReqVo(); reqVo.setImage(null); reqVo.setLimit(1); reqVo.setRtsp(rtsp); String jsonReturn = HttpUtils.doPostJson(http_url, JSONObject.toJSONString(reqVo)); SinglePlateRepVo repVo = JSONObject.parseObject(jsonReturn, SinglePlateRepVo.class); if (0 == repVo.getCode() && "SUCCESS".equalsIgnoreCase(repVo.getMessage())) { param.setPlateNum(repVo.getPlateNo()); } else { param.setErrorMsg("识别失败:" +repVo.getMessage()); } } catch (Exception e) { param.setErrorMsg("识别失败:" + e.getMessage()); } return param; } @Override public String initLpr(ApiInoutData param) { param.setErrorMsg("当前协议不支持"); return "当前协议不支持"; } @Override public String gateControl(ApiInoutData param) { return "当前协议不支持"; } @Override public String lightControl(ApiInoutData param) { return null; } @Override public String noticeRadio(ApiInoutData param, InoutData data) { return "当前协议不支持"; } @Override public String noticeLed(ApiInoutData param, InoutData data) { return "当前协议不支持"; } }