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, "命令发送成功");
|
}
|
}
|
}
|