package com.ld.igds.inout.controller; import com.ld.igds.constant.RespCodeEnum; import com.ld.igds.data.PageResponse; import com.ld.igds.inout.dto.InoutApiData; import com.ld.igds.inout.dto.InoutCameraDto; import com.ld.igds.inout.dto.InoutSnapImgDto; import com.ld.igds.inout.manager.InoutDeviceManager; import com.ld.igds.models.InoutConf; import org.apache.commons.lang3.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; /** * 出入库作业页面,设备相关操作控制层,包括车牌识别,远程读卡器,摄像头,称重主控器远程控制等 * * @author: andy.jia * @description: * @version: */ @RestController @RequestMapping("inout/api") public class InoutDeviceController { @Resource private InoutDeviceManager inoutDeviceManager; /** * 获取车牌识别信息 * * @param param 车牌识别数据信息 * @return */ @ResponseBody @RequestMapping("/flush-lpr") public PageResponse flushPlate(@RequestBody InoutApiData param) { if (StringUtils.isEmpty(param.getProtocol())) { param.setErrorMsg("当前车牌识别未配置通讯协议,无法执行"); return new PageResponse<>(RespCodeEnum.CODE_1007, param); } if (null == param.getIp()) { param.setErrorMsg("出入库配置中没有配置如入登记的车牌识别"); return new PageResponse<>(RespCodeEnum.CODE_1007, param); } param = inoutDeviceManager.getPlateNum(param); if (StringUtils.isEmpty(param.getErrorMsg())) { return new PageResponse<>(RespCodeEnum.CODE_0000, param); } return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), param.getErrorMsg()); } /** * 获取车牌识别信息 * * @param param 车牌识别数据信息 * @return */ @ResponseBody @RequestMapping("/ic-card-num") public PageResponse getIcCardNum(@RequestBody InoutApiData param) { if (StringUtils.isEmpty(param.getProtocol())) { param.setErrorMsg("当前智慧卡未配置通讯协议,无法执行"); return new PageResponse<>(RespCodeEnum.CODE_1007, param); } if (null == param.getIp()) { param.setErrorMsg("出入库配置中没有配置智慧卡信息"); return new PageResponse<>(RespCodeEnum.CODE_1007, param); } param = inoutDeviceManager.getIcCardNum(param); if (StringUtils.isEmpty(param.getErrorMsg())) { return new PageResponse<>(RespCodeEnum.CODE_0000, param); } return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), param.getErrorMsg()); } /** * 重新连接系统-车牌识别 * * @return */ @ResponseBody @RequestMapping("/reset-lpr") public PageResponse resetLpr(@RequestBody InoutApiData param) { String result = "执行完成"; if (StringUtils.isEmpty(param.getProtocol())) { result = "当前车牌识别未配置通讯协议,无法执行"; return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), result); } if (null == param.getIp()) { result = "出入库配置中没有配置如入登记的车牌识别"; return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), result); } result = inoutDeviceManager.reConnectLpr(param); if (null == result) { return new PageResponse(RespCodeEnum.CODE_0000, "执行成功"); } return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), result); } /** * 出入库视频 * * @return */ @RequestMapping("/inout-video-play") public @ResponseBody PageResponse inoutVideoPlay(@RequestBody InoutCameraDto param) { param.setErrorMsg(null); param = inoutDeviceManager.inoutVideoPlay(param); if (StringUtils.isEmpty(param.getErrorMsg())) { return new PageResponse<>(RespCodeEnum.CODE_0000.getCode(), "成功", param); } return new PageResponse<>(RespCodeEnum.CODE_1007.getCode(), param.getErrorMsg()); } /** * 视频保活 * * @param param * @return */ @RequestMapping("/video-keep-Live") public @ResponseBody PageResponse keepLive(@RequestBody InoutCameraDto param) { String msg = inoutDeviceManager.videoKeepLive(param); return new PageResponse<>(RespCodeEnum.CODE_0000, msg); } /** * 出入库抓拍 * * @param param * @return */ @RequestMapping("/snap-img") public @ResponseBody PageResponse cutImg(@RequestBody InoutSnapImgDto param) { param = inoutDeviceManager.snapImg(param); return new PageResponse<>(RespCodeEnum.CODE_0000, param); } /** * 海康Web4.0播放 * * @param id * @param length * @param width * @return */ @RequestMapping("/iframe-hik") public ModelAndView inRegister(@RequestParam(value = "id", required = true) String id, @RequestParam(value = "length", required = true) String length, @RequestParam(value = "width", required = true) String width) { ModelAndView view = new ModelAndView(); // 当前流程节点 view.addObject("id", id); view.addObject("length", length); view.addObject("width", width); InoutConf inoutConf = inoutDeviceManager.getInoutConf(id); view.addObject("data", inoutConf); view.setViewName("admin/inout/video-hik"); return view; } /** * 调用通知,称重完成 * * @param param * @return */ @RequestMapping("/notice-weight-done") public @ResponseBody PageResponse noticeWeightDone(@RequestBody InoutApiData param) { String msg = inoutDeviceManager.noticeWeightDone(param); return new PageResponse<>(RespCodeEnum.CODE_0000, msg); } }