package com.ld.igds.protocol.snap; import com.ld.igds.camera.data.ApiCameraResp; import com.ld.igds.camera.data.ApiSnapReq; import com.ld.igds.models.SnapSer; import com.ld.igds.protocol.snap.server.SnapServerEngine; import com.ld.igds.view.service.SnapSerService; import com.ld.io.api.InvokeResult; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** * 风正致远抓拍插件 */ @Slf4j @Component public class SnapPluginService { @Autowired private SnapSerService snapSerService; /** * 调用本地插件进行抓拍操作 * * @param param * @return */ public ApiCameraResp snapImg(ApiSnapReq param) { if (StringUtils.isEmpty(param.getDeptId())) return null; if (StringUtils.isEmpty(param.getSerSn())) { //根据分库编码获取远程抓拍分机信息 SnapSer ser = snapSerService.getCacheByDeptId(param.getDeptId()); param.setSerSn(null == ser ? null : ser.getSn()); } if (null == param.getSerSn()) { log.error("---调用抓拍插件失败,没有获取到插件信息---"); return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "命令发送失败"); } //发送抓拍命令信息 String command = SnapCommand.getInstance().buildSnap(param.getSerSn(), param.getOrderId(), param.getMediaAddr()); log.debug("平台--->抓拍-{}", command); InvokeResult invokeResult = SnapServerEngine.push(param.getSerSn(), command.getBytes()); if (InvokeResult.SUCCESS != invokeResult) { log.error("平台------>>>>抓拍插件:执行失败-{}", invokeResult.getMessage()); return new ApiCameraResp(ApiCameraResp.CODE_ERROR, "命令发送失败"); } else { SnapUtils.addRequest(param.getOrderId(), param); return new ApiCameraResp(ApiCameraResp.CODE_SUCCESS, "命令发送成功"); } } }