package com.fzzy.igds;
|
|
import com.bstek.dorado.annotation.DataProvider;
|
import com.bstek.dorado.annotation.DataResolver;
|
import com.bstek.dorado.annotation.Expose;
|
import com.bstek.dorado.data.provider.Page;
|
import com.fzzy.common.constant.BizTypeEnum;
|
import com.fzzy.igds.camera.ApiCameraManager;
|
import com.fzzy.igds.camera.data.ApiCameraData;
|
import com.fzzy.igds.domain.Camera;
|
import com.fzzy.igds.service.SecCameraService;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.annotation.Log;
|
import com.ruoyi.common.enums.BusinessType;
|
import com.ruoyi.common.utils.StringUtils;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
/**
|
* @Description
|
* @Author CZT
|
* @Date 2025/11/28 10:48
|
*/
|
@Slf4j
|
@Component
|
public class SecCameraPR {
|
|
@Autowired
|
private SecCameraService secCameraService;
|
@Resource
|
private ApiCameraManager apiCameraManager;
|
|
|
/**
|
* secCameraPR#listPageCamera 根据条件获取所有的摄像机配置信息
|
*
|
* @param param
|
*/
|
@DataProvider
|
public void listPageCamera(Page<Camera> page, Camera param) {
|
com.baomidou.mybatisplus.extension.plugins.pagination.Page<Camera> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(page.getPageNo(), page.getPageSize());
|
|
if (null == param) {
|
param = new Camera();
|
}
|
Camera camera = new Camera();
|
BeanUtils.copyProperties(param, camera);
|
secCameraService.listPageCamera(corePage, camera);
|
|
// 重新封装
|
page.setEntities(corePage.getRecords());
|
page.setEntityCount(Integer.parseInt(String.valueOf(corePage.getTotal())));
|
}
|
|
/**
|
* secCameraPR#listCamera 获取所有的摄像机配置信息
|
* ${dorado.getDataProvider("secCameraPR#listCamera").getResult()}
|
*
|
* @return
|
*/
|
@DataProvider
|
public List<Camera> listCamera(String deptId) {
|
return secCameraService.listCamera(null, deptId);
|
}
|
|
/**
|
* secCameraPR#saveCamera
|
*
|
* @param data
|
*/
|
@DataResolver
|
public void saveCamera(Camera data) {
|
Camera secCamera = new Camera();
|
BeanUtils.copyProperties(data, secCamera);
|
secCameraService.saveCamera(secCamera);
|
}
|
|
/**
|
* secCameraPR#delCamera
|
*
|
* @param data
|
* @return
|
*/
|
@Expose
|
@Log(title = "监控配置", businessType = BusinessType.DELETE, bizType = BizTypeEnum.SECURITY)
|
public String delCamera(Camera data) {
|
Camera secCamera = new Camera();
|
BeanUtils.copyProperties(data, secCamera);
|
return secCameraService.delCamera(secCamera);
|
}
|
|
/***
|
* secCameraPR#refreshCache
|
* @return
|
*/
|
@Expose
|
public String refreshCache() {
|
secCameraService.refreshCache(ContextUtil.getCompanyId());
|
return null;
|
}
|
|
|
/***
|
* securityPR#flushByMedia
|
*
|
* 根据库区编码及播放方式,同步监控信息
|
* @return
|
*/
|
@DataResolver
|
public String flushByMedia(Camera param) {
|
|
if (StringUtils.isBlank(param.getPlayType())) {
|
return "没有选择播放方式,不执行!";
|
}
|
if (StringUtils.isBlank(param.getDeptId())) {
|
return "没有同步库区,不执行1";
|
}
|
try {
|
//通过统一入口获取播放地址
|
ApiCameraData apiCameraData = new ApiCameraData();
|
apiCameraData.setCompanyId(ContextUtil.getCompanyId());
|
apiCameraData.setDeptId(param.getDeptId());
|
|
//根据播放方式获取对应的播放地址
|
List<Camera> cameras = apiCameraManager.getApiCameraService(param.getPlayType()).searchCamera(apiCameraData);
|
if (cameras == null) {
|
return "同步失败!";
|
} else {
|
return null;
|
}
|
|
} catch (Exception e) {
|
log.error("-----同步摄像头列表失败-----原因={}", e.toString());
|
return "远程接口服务异常,请核查后重试!";
|
}
|
|
}
|
|
}
|