package com.fzzy.igds.service;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
import com.fzzy.igds.constant.RedisConst;
|
import com.fzzy.igds.domain.Camera;
|
import com.fzzy.igds.mapper.CameraMapper;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.utils.StringUtils;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Service;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import javax.annotation.Resource;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @Description
|
* @Author CZT
|
* @Date 2025/11/28 10:48
|
*/
|
@Slf4j
|
@Service
|
public class SecCameraService {
|
|
@Resource
|
private CameraMapper cameraMapper;
|
@Resource
|
private RedisCache redisCache;
|
|
public void listPageCamera(Page<Camera> page, Camera param) {
|
QueryWrapper<Camera> queryWrapper = new QueryWrapper<>();
|
|
param.setCompanyId(ContextUtil.getCompanyId());
|
param.setDeptId(ContextUtil.subDeptId(null));
|
queryWrapper.eq("company_id", param.getCompanyId());
|
queryWrapper.eq("dept_id", param.getDeptId());
|
|
if(StringUtils.isNotBlank(param.getName())){
|
queryWrapper.like("name", param.getName());
|
}
|
if(StringUtils.isNotBlank(param.getBrand())){
|
queryWrapper.eq("brand", param.getBrand());
|
}
|
if(StringUtils.isNotBlank(param.getSpjklx())){
|
queryWrapper.eq("spjklx", param.getSpjklx());
|
}
|
if(StringUtils.isNotBlank(param.getSpdwlx())){
|
queryWrapper.eq("spdwlx", param.getSpdwlx());
|
}
|
|
cameraMapper.selectPage(page, queryWrapper);
|
}
|
|
/**
|
* 查询库区下所有监控
|
* @return
|
*/
|
public List<Camera> listCamera(String companyId, String deptId) {
|
|
QueryWrapper<Camera> queryWrapper = new QueryWrapper<>();
|
|
if(StringUtils.isNotBlank(companyId)){
|
queryWrapper.eq("company_id", companyId);
|
}
|
if(StringUtils.isNotBlank(deptId)){
|
queryWrapper.eq("dept_id", deptId);
|
}
|
|
return cameraMapper.selectList(queryWrapper);
|
}
|
|
/**
|
* 保存数据
|
* @param data
|
*/
|
public void saveCamera(Camera data) {
|
if (StringUtils.isEmpty(data.getCompanyId())) {
|
data.setCompanyId(ContextUtil.getCompanyId());
|
}
|
if (StringUtils.isEmpty(data.getDeptId())) {
|
data.setDeptId(ContextUtil.subDeptId(null));
|
}
|
if (data.getChanNum() == 0) {
|
data.setChanNum(1);
|
}
|
if(StringUtils.isEmpty(data.getId())){
|
data.setId(ContextUtil.generateId());
|
data.setCreateBy(ContextUtil.getLoginUserName());
|
data.setCreateTime(new Date());
|
}
|
data.setUpdateBy(ContextUtil.getLoginUserName());
|
data.setUpdateTime(new Date());
|
cameraMapper.insert(data);
|
}
|
|
/**
|
* 删除数据
|
* @param data
|
* @return
|
*/
|
public String delCamera(Camera data) {
|
cameraMapper.deleteById(data);
|
return null;
|
}
|
|
/**
|
* 设置缓存
|
* @param companyId
|
*/
|
public void refreshCache(String companyId) {
|
if (StringUtils.isEmpty(companyId)) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
List<Camera> list = this.listCamera(companyId,null);
|
redisCache.setCacheObject(RedisConst.buildKey(companyId, RedisConst.KEY_CAMERA_LIST), list);
|
}
|
|
/**
|
* 获取缓存中监控信息
|
* @param companyId
|
* @return
|
*/
|
public List<Camera> getAllCacheCamera(String companyId) {
|
if (StringUtils.isEmpty(companyId)) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
String key = RedisConst.buildKey(companyId, RedisConst.KEY_CAMERA_LIST);
|
List<Camera> list = redisCache.getCacheObject(key);
|
|
if (null == list || list.isEmpty()) {
|
list = this.listCamera(companyId,null);
|
redisCache.setCacheObject(key, list);
|
}
|
return list;
|
}
|
|
/**
|
* 根据库区编码获取监控信息
|
* @param companyId
|
* @param deptId
|
* @return
|
*/
|
public List<Camera> getCameraByDeptId(String companyId, String deptId) {
|
if (StringUtils.isEmpty(deptId)) {
|
return null;
|
}
|
if (StringUtils.isEmpty(companyId)) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
List<Camera> list = this.getAllCacheCamera(companyId);
|
|
if (null == list || list.isEmpty()){
|
return null;
|
}
|
List<Camera> result = new ArrayList<>();
|
for (Camera data : list) {
|
if (data.getDeptId().equals(deptId)){
|
result.add(data);
|
}
|
}
|
return result;
|
}
|
|
/**
|
* 根据监控ID获取监控信息
|
* @param companyId
|
* @param cameraId
|
* @return
|
*/
|
public Camera getCameraById(String companyId, String cameraId) {
|
if (StringUtils.isEmpty(companyId)) {
|
companyId = ContextUtil.getCompanyId();
|
}
|
List<Camera> list = this.getAllCacheCamera(companyId);
|
|
if (null == list || list.isEmpty()){
|
return null;
|
}
|
|
for (Camera data : list) {
|
if (data.getId().equals(cameraId)){
|
return data;
|
}
|
}
|
return null;
|
}
|
|
/**
|
* 更新设置位置
|
* @param param
|
*/
|
public void updatePos(Camera param) {
|
UpdateWrapper<Camera> updateWrapper = new UpdateWrapper<>();
|
updateWrapper.eq("id", param.getId()).set("pos_x", param.getPosX()).set("pos_y", param.getPosY());
|
cameraMapper.update(null, updateWrapper);
|
}
|
|
}
|