|
|
|
|
@ -4,17 +4,17 @@ import com.alibaba.excel.EasyExcel;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.github.pagehelper.PageHelper;
|
|
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
|
|
import com.sun.xml.internal.ws.policy.privateutil.PolicyUtils;
|
|
|
|
|
import com.zhehekeji.core.util.Assert;
|
|
|
|
|
import com.zhehekeji.web.entity.Camera;
|
|
|
|
|
import com.zhehekeji.web.entity.CameraIO;
|
|
|
|
|
import com.zhehekeji.web.entity.CameraIOConfig;
|
|
|
|
|
import com.zhehekeji.web.lib.PtzControlModule;
|
|
|
|
|
import com.zhehekeji.web.mapper.CameraIOConfigMapper;
|
|
|
|
|
import com.zhehekeji.web.mapper.CameraIOMapper;
|
|
|
|
|
import com.zhehekeji.web.mapper.CameraMapper;
|
|
|
|
|
import com.zhehekeji.web.mapper.StreetMapper;
|
|
|
|
|
import com.zhehekeji.web.pojo.camera.CameraSearchReq;
|
|
|
|
|
import com.zhehekeji.web.pojo.camera.CameraConfigSearchReq;
|
|
|
|
|
import com.zhehekeji.web.pojo.camera.IOImport;
|
|
|
|
|
import com.zhehekeji.web.pojo.stock.StockExcel;
|
|
|
|
|
import com.zhehekeji.web.pojo.street.StreetSearch;
|
|
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
|
@ -38,6 +38,8 @@ public class CameraService {
|
|
|
|
|
private StreetMapper streetMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
private CameraIOMapper ioMapper;
|
|
|
|
|
@Resource
|
|
|
|
|
private CameraIOConfigMapper configMapper;
|
|
|
|
|
|
|
|
|
|
@Value("${cameraPassword}")
|
|
|
|
|
private String cameraPassword;
|
|
|
|
|
@ -46,75 +48,162 @@ public class CameraService {
|
|
|
|
|
@Value("${cameraUser}")
|
|
|
|
|
private String cameraUser;
|
|
|
|
|
|
|
|
|
|
public Integer add(Camera camera){
|
|
|
|
|
public Integer add(Camera camera) {
|
|
|
|
|
camera.setUser(cameraUser);
|
|
|
|
|
camera.setPassword(cameraPassword);
|
|
|
|
|
camera.setPort(cameraPort);
|
|
|
|
|
camera.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
try {
|
|
|
|
|
cameraMapper.insert(camera);
|
|
|
|
|
}catch (DuplicateKeyException e){
|
|
|
|
|
Assert.isTrue(false,"rtsp地址已存在");
|
|
|
|
|
} catch (DuplicateKeyException e) {
|
|
|
|
|
Assert.isTrue(false, "rtsp地址已存在");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return camera.getId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void edit(Camera camera){
|
|
|
|
|
public void edit(Camera camera) {
|
|
|
|
|
camera.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
camera.setPtzId(null);
|
|
|
|
|
try {
|
|
|
|
|
cameraMapper.updateById(camera);
|
|
|
|
|
}catch (DuplicateKeyException e){
|
|
|
|
|
Assert.isTrue(false,"rtsp地址已存在");
|
|
|
|
|
} catch (DuplicateKeyException e) {
|
|
|
|
|
Assert.isTrue(false, "rtsp地址已存在");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void del(Integer id){
|
|
|
|
|
public void del(Integer id) {
|
|
|
|
|
Integer count = streetMapper.checkCamera(id);
|
|
|
|
|
Assert.isTrue(count == null || count == 0,"球机已被绑定");
|
|
|
|
|
Assert.isTrue(count == null || count == 0, "球机已被绑定");
|
|
|
|
|
cameraMapper.deleteById(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public PageInfo<Camera> cameras(StreetSearch streetSearch){
|
|
|
|
|
PageHelper.startPage(streetSearch.getPageNum(),streetSearch.getPageSize());
|
|
|
|
|
public PageInfo<Camera> cameras(StreetSearch streetSearch) {
|
|
|
|
|
PageHelper.startPage(streetSearch.getPageNum(), streetSearch.getPageSize());
|
|
|
|
|
List<Camera> cameras = cameraMapper.selectByMap(new HashMap<>(0));
|
|
|
|
|
return new PageInfo<>(cameras);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void importExcel(MultipartFile file,Integer cameraId) throws IOException {
|
|
|
|
|
EasyExcel.read(file.getInputStream(), IOImport.class, new IOImportListener(ioMapper,cameraId)).sheet().doRead();
|
|
|
|
|
/**
|
|
|
|
|
* 导入IO配置
|
|
|
|
|
*
|
|
|
|
|
* @param file
|
|
|
|
|
* @throws IOException
|
|
|
|
|
*/
|
|
|
|
|
public void importExcel(MultipartFile file) throws IOException {
|
|
|
|
|
EasyExcel.read(file.getInputStream(), IOImport.class, new IOImportListener(configMapper)).sheet().doRead();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public Integer addIO(CameraIO cameraIO){
|
|
|
|
|
cameraIO.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
cameraIO.setPtzId(0);
|
|
|
|
|
ioMapper.insert(cameraIO);
|
|
|
|
|
return cameraIO.getId();
|
|
|
|
|
public Integer addConfig(CameraIOConfig config) {
|
|
|
|
|
config.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
try {
|
|
|
|
|
configMapper.insert(config);
|
|
|
|
|
} catch (DuplicateKeyException e) {
|
|
|
|
|
Assert.isTrue(false, "配置已存在");
|
|
|
|
|
}
|
|
|
|
|
return config.getId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public PageInfo<CameraIO> IOPage(CameraSearchReq req){
|
|
|
|
|
PageHelper.startPage(req.getPage(),req.getSize());
|
|
|
|
|
List<CameraIO> list = ioMapper.selectList(new QueryWrapper<CameraIO>().eq("camera_id",req.getCameraId()));
|
|
|
|
|
return new PageInfo<>(list);
|
|
|
|
|
/**
|
|
|
|
|
* 配置列表 分页
|
|
|
|
|
*
|
|
|
|
|
* @param req
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public PageInfo<CameraIOConfig> configPageInfo(CameraConfigSearchReq req) {
|
|
|
|
|
PageHelper.startPage(req.getPage(), req.getSize());
|
|
|
|
|
List<CameraIOConfig> configs = configMapper.selectByMap(new HashMap<>(0));
|
|
|
|
|
return new PageInfo<>(configs);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 修改config
|
|
|
|
|
*
|
|
|
|
|
* @param config
|
|
|
|
|
*/
|
|
|
|
|
public void editConfig(CameraIOConfig config) {
|
|
|
|
|
Assert.notNull(config.getName(), "名称不能为空");
|
|
|
|
|
config.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
try {
|
|
|
|
|
configMapper.updateById(config);
|
|
|
|
|
} catch (DuplicateKeyException e) {
|
|
|
|
|
Assert.isTrue(false, "配置已存在");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void editIO(CameraIO cameraIO){
|
|
|
|
|
public void delConfig(Integer id) {
|
|
|
|
|
configMapper.deleteById(id);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* io列表
|
|
|
|
|
* @param cameraId
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
public List<CameraIO> ioList(Integer cameraId) {
|
|
|
|
|
List<CameraIO> list = ioMapper.cameraIOs(cameraId);
|
|
|
|
|
return list;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void editIO(CameraIO cameraIO) {
|
|
|
|
|
cameraIO.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
ioMapper.updateById(cameraIO);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void delIO(Integer id){
|
|
|
|
|
ioMapper.deleteById(id);
|
|
|
|
|
/**
|
|
|
|
|
* 球机新增、或修改预置点
|
|
|
|
|
* synchronized 设置为同步方法,防止出现同一个ptzId在同一个球机上
|
|
|
|
|
* @param IOId 存在修改,不存在 新增
|
|
|
|
|
* @param cameraId
|
|
|
|
|
*/
|
|
|
|
|
public synchronized Integer ptz(Integer IOId, Integer cameraId, String name,Integer type) {
|
|
|
|
|
Camera camera = cameraMapper.selectById(cameraId);
|
|
|
|
|
Assert.notNull(camera, "球机不存在");
|
|
|
|
|
Integer cameraPtzId = camera.getPtzId() == null ? 0 : camera.getPtzId();
|
|
|
|
|
CameraIO cameraIO = null;
|
|
|
|
|
Integer ptzId = cameraPtzId++;
|
|
|
|
|
if (IOId == null || IOId == 0) {
|
|
|
|
|
//新增
|
|
|
|
|
cameraIO = new CameraIO();
|
|
|
|
|
cameraIO.setCameraId(cameraId);
|
|
|
|
|
cameraIO.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
cameraIO.setName(name);
|
|
|
|
|
cameraIO.setPtzId(ptzId);
|
|
|
|
|
conver(cameraIO,type);
|
|
|
|
|
ioMapper.insert(cameraIO);
|
|
|
|
|
} else {
|
|
|
|
|
//修改
|
|
|
|
|
cameraIO = ioMapper.selectById(IOId);
|
|
|
|
|
Assert.notNull(cameraIO, "IO不存在");
|
|
|
|
|
cameraIO.setPtzId(ptzId);
|
|
|
|
|
cameraIO.setUpdateTime(LocalDateTime.now());
|
|
|
|
|
conver(cameraIO,type);
|
|
|
|
|
ioMapper.updateById(cameraIO);
|
|
|
|
|
}
|
|
|
|
|
camera.setPtzId(ptzId);
|
|
|
|
|
cameraMapper.updateById(camera);
|
|
|
|
|
PtzControlModule.ptz(IOId, cameraIO.getName(), cameraId);
|
|
|
|
|
log.info("设置 预置点 球机ID:{},预置点ID:{}", cameraId, ptzId);
|
|
|
|
|
return cameraIO.getId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void ptz(Integer IOId,Integer cameraId){
|
|
|
|
|
CameraIO cameraIO = ioMapper.selectById(IOId);
|
|
|
|
|
Assert.notNull(cameraIO,"IO不存在");
|
|
|
|
|
PtzControlModule.ptz(IOId,cameraIO.getName(),cameraId);
|
|
|
|
|
log.info("设置 预置点 球机ID:{},预置点ID:{}",cameraId, IOId);
|
|
|
|
|
public Integer getPtzId(Integer ioId){
|
|
|
|
|
CameraIO cameraIO = ioMapper.selectById(ioId);
|
|
|
|
|
Assert.notNull(cameraIO,"IO配置不存在");
|
|
|
|
|
return cameraIO.getPtzId();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void conver(CameraIO cameraIO,Integer type){
|
|
|
|
|
if(type == 0){
|
|
|
|
|
cameraIO.setPosition("OK");
|
|
|
|
|
}else if(type == 1){
|
|
|
|
|
cameraIO.setFocusing("OK");
|
|
|
|
|
}else if(type == 2){
|
|
|
|
|
cameraIO.setMultiple("OK");
|
|
|
|
|
}else if(type == 3){
|
|
|
|
|
cameraIO.setAperture("OK");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|