From 2f432f52c1cfb1567dadcf6e040c5d38b0a26a79 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期五, 28 十一月 2025 17:31:49 +0800
Subject: [PATCH] 数量检测配置页面
---
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SecCameraService.java | 177 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 177 insertions(+), 0 deletions(-)
diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SecCameraService.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SecCameraService.java
new file mode 100644
index 0000000..fd95374
--- /dev/null
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/service/SecCameraService.java
@@ -0,0 +1,177 @@
+package com.fzzy.igds.service;
+
+import com.fzzy.igds.constant.RedisConst;
+import com.fzzy.igds.domain.Camera;
+import com.fzzy.igds.repository.SecCameraRepository;
+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.data.domain.Page;
+import org.springframework.data.domain.Pageable;
+import org.springframework.data.jpa.domain.Specification;
+import org.springframework.stereotype.Service;
+
+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 SecCameraRepository secCameraRepository;
+ @Resource
+ private RedisCache redisCache;
+
+ /**
+ * JPA鍒嗛〉鏌ヨ鏁版嵁
+ *
+ * @param specification
+ * @param pageable
+ * @return
+ */
+ public Page<Camera> findAll(Specification<Camera> specification, Pageable pageable) {
+ return secCameraRepository.findAll(specification, pageable);
+ }
+
+ /**
+ * JPA - 鏌ヨ搴撳尯涓嬫墍鏈夌洃鎺�
+ * @return
+ */
+ public List<Camera> listCamera() {
+ return secCameraRepository.listCamera(ContextUtil.getCompanyId(), ContextUtil.subDeptId(null));
+ }
+
+ /**
+ * JPA - 淇濆瓨鏁版嵁
+ * @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());
+ secCameraRepository.save(data);
+ }
+
+ /**
+ * JPA - 鍒犻櫎鏁版嵁
+ * @param data
+ * @return
+ */
+ public String delCamera(Camera data) {
+ secCameraRepository.delete(data);
+ return null;
+ }
+
+ /**
+ * 璁剧疆缂撳瓨
+ * @param companyId
+ */
+ public void refreshCache(String companyId) {
+ if (StringUtils.isEmpty(companyId)) {
+ companyId = ContextUtil.getCompanyId();
+ }
+ List<Camera> list = secCameraRepository.listCameraByCompanyId(companyId);
+ 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 = secCameraRepository.listCameraByCompanyId(companyId);
+ 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) {
+ secCameraRepository.updatePosById(param.getId(), param.getPosX(), param.getPosY());
+ }
+
+}
--
Gitblit v1.9.3