Commit 50a88741 authored by zhangyanduan's avatar zhangyanduan

add:添加门磁联动大华视频监控设备抓拍图像功能开发

parent c5aff7d4
...@@ -3,11 +3,16 @@ package org.rcisoft.integration.aep.Controller; ...@@ -3,11 +3,16 @@ package org.rcisoft.integration.aep.Controller;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.rcisoft.core.anno.CyOpeLogAnno; import org.rcisoft.core.anno.CyOpeLogAnno;
import org.rcisoft.core.operlog.enums.CyLogTypeEnum; import org.rcisoft.core.operlog.enums.CyLogTypeEnum;
import org.rcisoft.integration.aep.service.IAepPushService; import org.rcisoft.integration.aep.service.IAepPushService;
import org.rcisoft.integration.jieLink.dto.JieLinkResultDto; import org.rcisoft.integration.jieLink.dto.JieLinkResultDto;
import org.rcisoft.integration.video.Service.IDaHuaVideoService; import org.rcisoft.integration.video.Service.IDaHuaVideoService;
import org.rcisoft.sys.doorreportdata.entity.DoorReportData;
import org.rcisoft.sys.doorreportdata.service.DoorReportDataService;
import org.rcisoft.sys.doorvideodevice.entity.DoorVideoDevice;
import org.rcisoft.sys.doorvideodevice.service.DoorVideoDeviceService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
...@@ -23,6 +28,12 @@ public class AepPushController { ...@@ -23,6 +28,12 @@ public class AepPushController {
@Autowired @Autowired
private IDaHuaVideoService daHuaVideoService; private IDaHuaVideoService daHuaVideoService;
@Autowired
private DoorVideoDeviceService doorVideoDeviceService;
@Autowired
private DoorReportDataService doorReportDataService;
/** /**
* 门磁推送数据接口 * 门磁推送数据接口
* @param data * @param data
...@@ -80,16 +91,15 @@ public class AepPushController { ...@@ -80,16 +91,15 @@ public class AepPushController {
} }
/** /**
* 门磁推送数据接口 * 视频监控设备抓图①
* @param data * @param dataId
* @return * @return
*/ */
@ApiOperation(value="大华视频监控设备抓图", notes="大华视频监控设备抓图") @ApiOperation(value="大华视频监控设备抓图", notes="大华视频监控设备抓图")
@GetMapping(value = "/grabVideoPic") @GetMapping(value = "/grabVideoPic")
public JieLinkResultDto grabVideoPic() { public JieLinkResultDto grabVideoPic(String dataId) {
JieLinkResultDto result = new JieLinkResultDto(); JieLinkResultDto result = new JieLinkResultDto();
boolean grabFlag = daHuaVideoService.grabVideoDevicePicData(dataId);
boolean grabFlag = daHuaVideoService.grabVideoDevicePicData();
if(grabFlag){ if(grabFlag){
result.setCode("200"); result.setCode("200");
result.setMsg("抓取成功"); result.setMsg("抓取成功");
...@@ -101,4 +111,43 @@ public class AepPushController { ...@@ -101,4 +111,43 @@ public class AepPushController {
} }
/**
* 视频监控设备抓图②
* @param dataId
* @return
*/
@ApiOperation(value="大华视频监控设备抓图②", notes="大华视频监控设备抓图")
@GetMapping(value = "/grabVideoPicByDataId")
public JieLinkResultDto grabVideoPicByDataId(String videoDeviceId,String dataId) {
JieLinkResultDto result = new JieLinkResultDto();
if(StringUtils.isNotBlank(videoDeviceId) && StringUtils.isNotBlank(dataId)){
DoorVideoDevice videoDevice = doorVideoDeviceService.getDeviceInfoById(Long.parseLong(videoDeviceId));
if(videoDevice==null){
result.setCode("-1");
result.setMsg("设备不存在");
return result;
}
DoorReportData reportData = doorReportDataService.findById(Long.parseLong(dataId));
if(reportData==null){
result.setCode("-1");
result.setMsg("对应数据不存在");
return result;
}
boolean grabFlag = daHuaVideoService.grabVideoDevicePicData(videoDevice.getBusinessId().longValue(),reportData);
if(grabFlag){
result.setCode("200");
result.setMsg("抓取成功");
}else{
result.setCode("-1");
result.setMsg("抓取失败");
}
}else{
result.setCode("-1");
result.setMsg("参数缺失");
}
return result;
}
} }
...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject; ...@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.rcisoft.integration.aep.service.IAepPushService; import org.rcisoft.integration.aep.service.IAepPushService;
import org.rcisoft.integration.video.Service.IDaHuaVideoService;
import org.rcisoft.sys.doordeviceinfo.entity.DoorDeviceInfo; import org.rcisoft.sys.doordeviceinfo.entity.DoorDeviceInfo;
import org.rcisoft.sys.doordeviceinfo.service.DoorDeviceInfoService; import org.rcisoft.sys.doordeviceinfo.service.DoorDeviceInfoService;
import org.rcisoft.sys.doorreportdata.entity.DoorReportData; import org.rcisoft.sys.doorreportdata.entity.DoorReportData;
...@@ -32,6 +33,10 @@ public class AepPushServiceImpl implements IAepPushService { ...@@ -32,6 +33,10 @@ public class AepPushServiceImpl implements IAepPushService {
@Autowired @Autowired
private DoorReportDataService doorReportDataService; private DoorReportDataService doorReportDataService;
@Autowired
private IDaHuaVideoService daHuaVideoService;
private boolean videoStatus = false;
/** /**
* 门磁数据上报处理 * 门磁数据上报处理
...@@ -85,6 +90,9 @@ public class AepPushServiceImpl implements IAepPushService { ...@@ -85,6 +90,9 @@ public class AepPushServiceImpl implements IAepPushService {
reportData.setDelFlag("0"); reportData.setDelFlag("0");
//保存数据操作 //保存数据操作
doorReportDataService.persist(reportData); doorReportDataService.persist(reportData);
if(videoStatus && deviceInfo.getLinkVideoId()!=null && StringUtils.equals("OPEN",reportData.getDataType())){
daHuaVideoService.grabVideoDevicePicData(deviceInfo.getLinkVideoId(),reportData);
}
} }
}else{ }else{
//异常信息,获取负载信息失败了 //异常信息,获取负载信息失败了
......
...@@ -13,13 +13,13 @@ public interface IDaHuaVideoService { ...@@ -13,13 +13,13 @@ public interface IDaHuaVideoService {
* 抓取视频监控设备图像 * 抓取视频监控设备图像
* @return * @return
*/ */
public boolean grabVideoDevicePicData(); public boolean grabVideoDevicePicData(String dataId);
/** /**
* 抓取视频监控设备图像 * 抓取视频监控设备图像
* @param videoDeviceId * @param videoDeviceId
* @return * @return
*/ */
public boolean grabVideoDevicePicData(Long videoDeviceId, DoorReportData reportData) public boolean grabVideoDevicePicData(Long videoDeviceId, DoorReportData reportData);
} }
package org.rcisoft.integration.video.Service.impl; package org.rcisoft.integration.video.Service.impl;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.rcisoft.core.util.CyDateUtil;
import org.rcisoft.integration.video.Service.IDaHuaVideoService; import org.rcisoft.integration.video.Service.IDaHuaVideoService;
import org.rcisoft.integration.video.common.VideoDeviceHandel; import org.rcisoft.integration.video.common.VideoDeviceHandel;
import org.rcisoft.integration.video.config.CapturePicCallBack; import org.rcisoft.integration.video.config.CapturePicCallBack;
import org.rcisoft.integration.video.config.DaHuaVideoInitConfig; import org.rcisoft.integration.video.config.DaHuaVideoInitConfig;
import org.rcisoft.integration.video.utils.CapturePictureUtils; import org.rcisoft.integration.video.utils.CapturePictureUtils;
import org.rcisoft.sys.doorreportdata.entity.DoorReportData; import org.rcisoft.sys.doorreportdata.entity.DoorReportData;
import org.rcisoft.sys.doorvideodevice.entity.DoorVideoDevice;
import org.rcisoft.sys.doorvideodevice.service.DoorVideoDeviceService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.io.File;
import java.util.Date; import java.util.Date;
/** /**
...@@ -21,8 +27,16 @@ import java.util.Date; ...@@ -21,8 +27,16 @@ import java.util.Date;
@Transactional(readOnly = true, propagation = Propagation.NOT_SUPPORTED) @Transactional(readOnly = true, propagation = Propagation.NOT_SUPPORTED)
public class DahuaVideoServiceImpl implements IDaHuaVideoService { public class DahuaVideoServiceImpl implements IDaHuaVideoService {
@Value("${global.path.base_upload_location}")
private String baseUploadLocation;
@Autowired
private DoorVideoDeviceService doorVideoDeviceService;
@Override @Override
public boolean grabVideoDevicePicData() { public boolean grabVideoDevicePicData(String dataId) {
/** /**
* 先判断是否已经初始化, * 先判断是否已经初始化,
* 2、获取设备的配置信息 * 2、获取设备的配置信息
...@@ -32,6 +46,7 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService { ...@@ -32,6 +46,7 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService {
* 6、回调写入数据 * 6、回调写入数据
*/ */
VideoDeviceHandel handel = null; VideoDeviceHandel handel = null;
if(!DaHuaVideoInitConfig.videoDeviceMap.containsKey(0L)){ if(!DaHuaVideoInitConfig.videoDeviceMap.containsKey(0L)){
String deviceIp="192.168.1.199"; String deviceIp="192.168.1.199";
int devicePort = 37777; int devicePort = 37777;
...@@ -57,9 +72,11 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService { ...@@ -57,9 +72,11 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService {
if(handel == null ||!handel.isLoginStatus()){ if(handel == null ||!handel.isLoginStatus()){
return false; return false;
} }
String basePath = "E:\\DAHUAPIC"; String basePath = baseUploadLocation;
String strFileName =basePath+"\\"+new Date().getTime()+".jpg"; String savePicPath ="VIDEOPIC"+File.separator+ CyDateUtil.getSimpleDate("yyyyMMdd", new Date());
CapturePicCallBack callBack = new CapturePicCallBack("11111111",strFileName); DoorReportData data = new DoorReportData();
data.setReportTime(new Date());
CapturePicCallBack callBack = new CapturePicCallBack(basePath,savePicPath,data);
CapturePictureUtils.setSnapRevCallBack(callBack,null); CapturePictureUtils.setSnapRevCallBack(callBack,null);
boolean picture = CapturePictureUtils.remoteCapturePicture(handel.getDeviceLoginHandle(), 0); boolean picture = CapturePictureUtils.remoteCapturePicture(handel.getDeviceLoginHandle(), 0);
return picture; return picture;
...@@ -77,33 +94,42 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService { ...@@ -77,33 +94,42 @@ public class DahuaVideoServiceImpl implements IDaHuaVideoService {
*/ */
VideoDeviceHandel handel = null; VideoDeviceHandel handel = null;
if(!DaHuaVideoInitConfig.videoDeviceMap.containsKey(videoDeviceId)){ if(!DaHuaVideoInitConfig.videoDeviceMap.containsKey(videoDeviceId)){
String deviceIp="192.168.1.199"; DoorVideoDevice videoDevice = doorVideoDeviceService.getDeviceInfoById(videoDeviceId);
int devicePort = 37777; if(videoDevice!=null){
String deviceAccount = "admin"; String deviceIp=videoDevice.getDeviceIp();
String deviceSign = "admin123"; int devicePort = Integer.parseInt(videoDevice.getDevicePort());
boolean login = DaHuaVideoInitConfig.login(deviceIp, devicePort, deviceAccount, deviceSign); String deviceAccount = videoDevice.getDeviceAccount();
if(login){ String deviceSign = videoDevice.getDeviceSign();
handel = DaHuaVideoInitConfig.videoDeviceMap.get(videoDeviceId); boolean login = DaHuaVideoInitConfig.login(videoDeviceId,deviceIp, devicePort, deviceAccount, deviceSign);
if(login){
handel = DaHuaVideoInitConfig.videoDeviceMap.get(videoDeviceId);
}
}else{
//设备未找到
log.error("设备【"+videoDeviceId+"】 未找到");
return false;
} }
}else{ }else{
handel = DaHuaVideoInitConfig.videoDeviceMap.get(videoDeviceId); handel = DaHuaVideoInitConfig.videoDeviceMap.get(videoDeviceId);
if(handel.isLoginStatus()){ if(!handel.isLoginStatus()){
String deviceIp="192.168.1.199"; DoorVideoDevice videoDevice = doorVideoDeviceService.getDeviceInfoById(videoDeviceId);
int devicePort = 37777; String deviceIp=videoDevice.getDeviceIp();
String deviceAccount = "admin"; int devicePort = Integer.parseInt(videoDevice.getDevicePort());
String deviceSign = "admin123"; String deviceAccount = videoDevice.getDeviceAccount();
boolean login = DaHuaVideoInitConfig.login(deviceIp, devicePort, deviceAccount, deviceSign); String deviceSign = videoDevice.getDeviceSign();
boolean login = DaHuaVideoInitConfig.login(videoDeviceId,deviceIp, devicePort, deviceAccount, deviceSign);
if(login){ if(login){
handel = DaHuaVideoInitConfig.videoDeviceMap.get(videoDeviceId); handel = DaHuaVideoInitConfig.videoDeviceMap.get(videoDeviceId);
} }
} }
} }
if(handel == null ||!handel.isLoginStatus()){ if(handel == null ||!handel.isLoginStatus()){
log.error("设备【"+videoDeviceId+"】 未能注册成功或已掉线");
return false; return false;
} }
String basePath = "E:\\DAHUAPIC"; String basePath = baseUploadLocation;
String strFileName =basePath+"\\"+new Date().getTime()+".jpg"; String picSavePath ="VIDEOPIC"+File.separator+ CyDateUtil.getSimpleDate("yyyyMMdd", new Date());
CapturePicCallBack callBack = new CapturePicCallBack(reportData,strFileName); CapturePicCallBack callBack = new CapturePicCallBack(basePath,picSavePath,reportData);
CapturePictureUtils.setSnapRevCallBack(callBack,null); CapturePictureUtils.setSnapRevCallBack(callBack,null);
boolean picture = CapturePictureUtils.remoteCapturePicture(handel.getDeviceLoginHandle(), 0); boolean picture = CapturePictureUtils.remoteCapturePicture(handel.getDeviceLoginHandle(), 0);
return picture; return picture;
......
package org.rcisoft.integration.video.config; package org.rcisoft.integration.video.config;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.sun.jna.Pointer; import com.sun.jna.Pointer;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -13,7 +15,6 @@ import java.awt.image.BufferedImage; ...@@ -13,7 +15,6 @@ import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.Date;
/** /**
* 抓拍数据回调方法 * 抓拍数据回调方法
...@@ -21,19 +22,29 @@ import java.util.Date; ...@@ -21,19 +22,29 @@ import java.util.Date;
@Slf4j @Slf4j
public class CapturePicCallBack implements NetSDKLib.fSnapRev{ public class CapturePicCallBack implements NetSDKLib.fSnapRev{
/**
* 服务器内存储的根路径
*/
private String basePath;
private String dataId; /**
* 文件存储的路径
*/
private String savePath;
/**
* 需要操作的数据
*/
private DoorReportData reportData; private DoorReportData reportData;
private String savePath;
private DoorReportDataService doorReportDataService = SpringBeanUtils.getBean(DoorReportDataService.class); private DoorReportDataService doorReportDataService = SpringBeanUtils.getBean(DoorReportDataService.class);
public CapturePicCallBack(DoorReportData reportData, String savePath) { public CapturePicCallBack(String basePath, String savePath, DoorReportData reportData) {
this.reportData = reportData; this.basePath = basePath;
this.savePath = savePath; this.savePath = savePath;
this.reportData = reportData;
} }
/** /**
...@@ -49,9 +60,12 @@ public class CapturePicCallBack implements NetSDKLib.fSnapRev{ ...@@ -49,9 +60,12 @@ public class CapturePicCallBack implements NetSDKLib.fSnapRev{
public void invoke(NetSDKLib.LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser) { public void invoke(NetSDKLib.LLong lLoginID, Pointer pBuf, int RevLen, int EncodeType, int CmdSerial, Pointer dwUser) {
BufferedImage bufferedImage = null; BufferedImage bufferedImage = null;
if(pBuf != null && RevLen > 0) { if(pBuf != null && RevLen > 0) {
String strFileName = savePath; String savePicPath =basePath+File.separator+ savePath;
log.info("回调函数中的dataId:"+dataId); String picFileName = IdUtil.simpleUUID()+".JPG";
if(!FileUtil.exist(savePicPath)){
FileUtil.mkdir(savePicPath);
}
String strFileName = savePicPath+File.separator+ picFileName;
byte[] buf = pBuf.getByteArray(0, RevLen); byte[] buf = pBuf.getByteArray(0, RevLen);
ByteArrayInputStream byteArrInput = new ByteArrayInputStream(buf); ByteArrayInputStream byteArrInput = new ByteArrayInputStream(buf);
try { try {
...@@ -61,21 +75,17 @@ public class CapturePicCallBack implements NetSDKLib.fSnapRev{ ...@@ -61,21 +75,17 @@ public class CapturePicCallBack implements NetSDKLib.fSnapRev{
} }
ImageIO.write(bufferedImage, "jpg", new File(strFileName)); ImageIO.write(bufferedImage, "jpg", new File(strFileName));
//开始保存数据到表中 //开始保存数据到表中
String picRelativePath = savePath+File.separator+picFileName;
picRelativePath = picRelativePath.replaceAll("\\\\","/");
//转换文件的路径,从存储路径转换到访问路径
reportData.setCapturePic(picRelativePath);
doorReportDataService.merge(reportData);
} catch (IOException e) { } catch (IOException e) {
log.error("抓图回调函数出现异常:"+e.getMessage(),e); log.error("抓图回调函数出现异常:"+e.getMessage(),e);
} }
} }
} }
public String getDataId() {
return dataId;
}
public void setDataId(String dataId) {
this.dataId = dataId;
}
public String getSavePath() { public String getSavePath() {
return savePath; return savePath;
} }
......
...@@ -153,7 +153,7 @@ public class DaHuaVideoInitConfig { ...@@ -153,7 +153,7 @@ public class DaHuaVideoInitConfig {
VideoDeviceHandel handel = new VideoDeviceHandel(); VideoDeviceHandel handel = new VideoDeviceHandel();
handel.setDeviceLoginHandle(m_hLoginHandle); handel.setDeviceLoginHandle(m_hLoginHandle);
handel.setLoginStatus(true); handel.setLoginStatus(true);
videoDeviceMap.put(0L,handel); videoDeviceMap.put(deviceId,handel);
} }
return loginStatus; return loginStatus;
} }
......
...@@ -85,10 +85,11 @@ public class DoorReportDataController extends CyPaginationController<DoorReportD ...@@ -85,10 +85,11 @@ public class DoorReportDataController extends CyPaginationController<DoorReportD
@ApiImplicitParams({@ApiImplicitParam(name = "businessId", value = "businessId", required = true, dataType = "varchar")}) @ApiImplicitParams({@ApiImplicitParam(name = "businessId", value = "businessId", required = true, dataType = "varchar")})
@GetMapping("/detail/{businessId:\\w+}") @GetMapping("/detail/{businessId:\\w+}")
public CyResult detail(@PathVariable int businessId) { public CyResult detail(@PathVariable int businessId) {
long dataId = businessId;
return CyResultGenUtil.builder(new CyPersistModel(1), return CyResultGenUtil.builder(new CyPersistModel(1),
CyMessCons.MESSAGE_ALERT_SUCCESS, CyMessCons.MESSAGE_ALERT_SUCCESS,
CyMessCons.MESSAGE_ALERT_ERROR, CyMessCons.MESSAGE_ALERT_ERROR,
doorReportDataServiceImpl.findById(businessId)); doorReportDataServiceImpl.findById(dataId));
} }
//@PreAuthorize("@cyPerm.hasPerm('sys:rReportData:list')") //@PreAuthorize("@cyPerm.hasPerm('sys:rReportData:list')")
......
...@@ -39,7 +39,7 @@ public interface DoorReportDataService { ...@@ -39,7 +39,7 @@ public interface DoorReportDataService {
* @param id * @param id
* @return * @return
*/ */
DoorReportData findById(int id); DoorReportData findById(Long id);
/** /**
* 分页查询 门磁设备数据记录表 * 分页查询 门磁设备数据记录表
...@@ -64,4 +64,6 @@ public interface DoorReportDataService { ...@@ -64,4 +64,6 @@ public interface DoorReportDataService {
*/ */
List<DoorReportData> export(DoorReportData doorReportData); List<DoorReportData> export(DoorReportData doorReportData);
} }
...@@ -80,7 +80,7 @@ public class DoorReportDataServiceImpl extends ServiceImpl<DoorReportDataReposit ...@@ -80,7 +80,7 @@ public class DoorReportDataServiceImpl extends ServiceImpl<DoorReportDataReposit
* @return * @return
*/ */
@Override @Override
public DoorReportData findById(int id){ public DoorReportData findById(Long id){
return baseMapper.selectById(id); return baseMapper.selectById(id);
} }
......
...@@ -15,61 +15,47 @@ import java.math.BigInteger; ...@@ -15,61 +15,47 @@ import java.math.BigInteger;
@TableName("door_video_device") @TableName("door_video_device")
public class DoorVideoDevice extends CyIdIncreEntity<DoorVideoDevice> { public class DoorVideoDevice extends CyIdIncreEntity<DoorVideoDevice> {
/**
* @desc 主键
* @column id
* @default
*/
@Excel(name = "主键", orderNum = "0", width = 20)
private Long id;
/** /**
* @desc 视频监控设备名称 * @desc 视频监控设备名称
* @column device_name * @column device_name
* @default * @default
*/ */
@Excel(name = "视频监控设备名称", orderNum = "1", width = 20)
private String deviceName; private String deviceName;
/** /**
* @desc 设备ip * @desc 设备ip
* @column device_ip * @column device_ip
* @default * @default
*/ */
@Excel(name = "设备ip", orderNum = "2", width = 20)
private String deviceIp; private String deviceIp;
/** /**
* @desc 设备端口号 * @desc 设备端口号
* @column device_port * @column device_port
* @default * @default
*/ */
@Excel(name = "设备端口号", orderNum = "3", width = 20)
private String devicePort; private String devicePort;
/** /**
* @desc 设备账号 * @desc 设备账号
* @column device_account * @column device_account
* @default * @default
*/ */
@Excel(name = "设备账号", orderNum = "4", width = 20)
private String deviceAccount; private String deviceAccount;
/** /**
* @desc 设备密码 * @desc 设备密码
* @column device_sign * @column device_sign
* @default * @default
*/ */
@Excel(name = "设备密码", orderNum = "5", width = 20)
private String deviceSign; private String deviceSign;
/** /**
* @desc 关联门磁设备id * @desc 关联门磁设备id
* @column link_door_device_id * @column link_door_device_id
* @default * @default
*/ */
@Excel(name = "关联门磁设备id", orderNum = "6", width = 20) private Long linkDoorDeviceId;
private BigInteger linkDoorDeviceId;
/** /**
* @desc 关联门磁设备imei * @desc 关联门磁设备imei
* @column link_door_device_imei * @column link_door_device_imei
* @default * @default
*/ */
@Excel(name = "关联门磁设备imei", orderNum = "7", width = 20)
private String linkDoorDeviceImei; private String linkDoorDeviceImei;
......
...@@ -64,4 +64,20 @@ public interface DoorVideoDeviceService { ...@@ -64,4 +64,20 @@ public interface DoorVideoDeviceService {
*/ */
List<DoorVideoDevice> export(DoorVideoDevice doorVideoDevice); List<DoorVideoDevice> export(DoorVideoDevice doorVideoDevice);
/**
* 根据设备ID获取设备信息
* @param deviceId
* @return
*/
DoorVideoDevice getDeviceInfoById(Long deviceId);
/**
* 根据关联的门磁设备信息获取视频监控设备信息
* @param deviceImei
* @param linkId
* @return
*/
DoorVideoDevice getDeviceInfoByLinkId(String deviceImei,Long linkId);
} }
...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; ...@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.rcisoft.core.util.CyUserUtil; import org.rcisoft.core.util.CyUserUtil;
import org.rcisoft.core.aop.CyPageUtilAsp; import org.rcisoft.core.aop.CyPageUtilAsp;
import org.rcisoft.core.model.CyPersistModel; import org.rcisoft.core.model.CyPersistModel;
...@@ -116,4 +117,32 @@ public class DoorVideoDeviceServiceImpl extends ServiceImpl<DoorVideoDeviceRepos ...@@ -116,4 +117,32 @@ public class DoorVideoDeviceServiceImpl extends ServiceImpl<DoorVideoDeviceRepos
return doorVideoDeviceList; return doorVideoDeviceList;
} }
/**
* 根据设备ID获取设备信息
* @param deviceId
* @return
*/
@Override
public DoorVideoDevice getDeviceInfoById(Long deviceId) {
DoorVideoDevice doorVideoDevice = this.baseMapper.selectById(deviceId);
return doorVideoDevice;
}
@Override
public DoorVideoDevice getDeviceInfoByLinkId(String deviceImei, Long linkId) {
QueryWrapper<DoorVideoDevice> queryWrapper = new QueryWrapper<>();
if(StringUtils.isNotBlank(deviceImei)){
queryWrapper.eq("link_door_device_imei",deviceImei);
}
if(linkId!=null && linkId!=0l){
queryWrapper.eq("link_door_device_id",linkId);
}
List<DoorVideoDevice> doorVideoDevices = this.baseMapper.selectList(queryWrapper);
if(doorVideoDevices!=null && !doorVideoDevices.isEmpty()){
return doorVideoDevices.get(0);
}else{
return null;
}
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment