From ef7cde2fb1f44de1ffa8b961ee1732fb327e1cd4 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 19 十二月 2025 11:17:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/security/SecManager.java |  129 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 128 insertions(+), 1 deletions(-)

diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/security/SecManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/security/SecManager.java
index dfaa182..e4a03d4 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/security/SecManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/security/SecManager.java
@@ -1,16 +1,27 @@
 package com.fzzy.sys.manager.security;
 
+import com.fzzy.igds.camera.ApiCameraManager;
+import com.fzzy.igds.camera.data.ApiCameraData;
+import com.fzzy.igds.camera.data.ApiCameraResp;
 import com.fzzy.igds.constant.RespCodeEnum;
 import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.data.PatrolSuperData;
 import com.fzzy.igds.domain.Camera;
+import com.fzzy.igds.domain.Dept;
+import com.fzzy.igds.domain.Patrol;
+import com.fzzy.igds.service.CoreDeptService;
+import com.fzzy.igds.service.PatrolService;
 import com.fzzy.igds.service.SecCameraService;
 import com.fzzy.igds.utils.ContextUtil;
+import com.fzzy.igds.utils.DateUtil;
 import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
-
 import javax.annotation.Resource;
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description
@@ -23,6 +34,12 @@
 
     @Resource
     private SecCameraService secCameraService;
+    @Resource
+    private ApiCameraManager apiCameraManager;
+    @Resource
+    private PatrolService patrolService;
+    @Resource
+    private CoreDeptService coreDeptService;
 
     /**
      *
@@ -61,6 +78,70 @@
     }
 
     /**
+     * 鑾峰彇鎾斁淇℃伅
+     * @param param
+     * @return
+     */
+    public ApiCameraResp getPlayAddr(Camera param, String requireIp) {
+
+        if (StringUtils.isEmpty(param.getId())) {
+            log.error("娌℃湁鑾峰彇鍒扮洃鎺т俊鎭紒");
+            return new ApiCameraResp("ERROR", "娌℃湁鑾峰彇鍒扮洃鎺т俊鎭紒");
+        }
+
+        // 鏍规嵁id鑾峰彇璁惧淇℃伅
+        Camera camera = secCameraService.getCameraById(ContextUtil.getCompanyId(), param.getId());
+        if(null == camera){
+            log.error("缂撳瓨涓病鏈夎幏鍙栧埌鎽勫儚澶翠俊鎭�"+ param.toString());
+            return new ApiCameraResp("ERROR", "缂撳瓨涓病鏈夎幏鍙栧埌鎽勫儚澶翠俊鎭紒");
+        }
+
+        //閫氳繃缁熶竴鍏ュ彛鑾峰彇鎾斁鍦板潃
+        ApiCameraData apiCameraData = new ApiCameraData();
+        apiCameraData.setCompanyId(camera.getCompanyId());
+        apiCameraData.setDeptId(camera.getDeptId());
+        apiCameraData.setCameraId(camera.getId());
+        apiCameraData.setIp(camera.getIp());
+        apiCameraData.setCtrlPort(camera.getControlPort());
+        apiCameraData.setWebPort(camera.getWebPort());
+        apiCameraData.setPlayType(camera.getPlayType());
+        apiCameraData.setSnapType(camera.getSnapType());
+        apiCameraData.setSn(camera.getSn());
+        apiCameraData.setChannel(camera.getChanNum());
+        apiCameraData.setLoginId(camera.getLoginId());
+        apiCameraData.setPwd(camera.getPwd());
+        apiCameraData.setUrlIn(camera.getUrlIn());
+        apiCameraData.setUrlOut(camera.getUrlOut());
+        apiCameraData.setMediaAddr(camera.getMediaAddr());
+
+        //鏍规嵁鎾斁鏂瑰紡鑾峰彇瀵瑰簲鐨勬挱鏀惧湴鍧�
+        ApiCameraResp resp = apiCameraManager.getApiCameraService(camera.getPlayType()).getPlayAddr(apiCameraData);
+        return resp;
+    }
+
+    /**
+     * 浜戝彴鎺у埗
+     * @param param
+     * @return
+     */
+    public ApiCameraResp ptzMedia(ApiCameraData param) {
+
+        if(StringUtils.isEmpty(param.getCompanyId())){
+            param.setCompanyId(ContextUtil.getCompanyId());
+        }
+        return apiCameraManager.getApiCameraService(param.getPtzType()).ptzMedia(param);
+    }
+
+    /**
+     * 棰勭疆浣嶈缃�
+     * @param param
+     * @return
+     */
+    public ApiCameraResp ptzPreset(ApiCameraData param) {
+        return apiCameraManager.getApiCameraService(param.getPlayType()).ptzPreset(param);
+    }
+
+    /**
      *
      * @param params
      * @return
@@ -79,4 +160,50 @@
         secCameraService.refreshCache(ContextUtil.getCompanyId());
         return new PageResponse<>(RespCodeEnum.CODE_0000, "鎵ц鎴愬姛锛侊紒");
     }
+
+    /**
+     * 宸℃缁熻
+     * @return
+     */
+    public PatrolSuperData patrolTrack() {
+        PatrolSuperData patrolSuperData = new PatrolSuperData();
+
+        List<Dept> deptList = coreDeptService.getDeptData();
+        if(null == deptList || deptList.isEmpty()){
+            return  patrolSuperData;
+        }
+
+        //搴撳尯杞崲
+        Map<String, Integer> map = new HashMap<>();
+        for (Dept dept : deptList) {
+            map.put(dept.getId(), 0);
+        }
+
+        List<Patrol> weekList = patrolService.getWeekList();
+
+        if(null != weekList && weekList.size() > 0){
+            Date start = DateUtil.getCurZero(DateUtil.getNewByDay(new Date(), -1));  //鏄ㄥぉ闆剁偣闆跺垎
+            Date end = DateUtil.getCurZero(new Date());                         //浠婂ぉ闆剁偣闆跺垎
+            for (Patrol patrol : weekList) {
+                //7澶╁唴浜烘
+                patrolSuperData.setWeekSum(patrolSuperData.getWeekSum() + 1);
+
+                //鏄ㄥぉ浜烘
+                if(patrol.getCreateTime().after(start) && patrol.getCreateTime().before(end)){
+                    patrolSuperData.setYesterdaySum(patrolSuperData.getYesterdaySum() + 1);
+                }
+
+                //褰撳ぉ缁熻
+                if(patrol.getCreateTime().after(end)){
+                    if(map.get(patrol.getDeptId()) == 0){
+                        patrolSuperData.setIsDeptNum(patrolSuperData.getIsDeptNum() + 1);
+                        map.put(patrol.getDeptId(), map.get(patrol.getDeptId()) + 1);
+                    }
+                }
+            }
+        }
+        patrolSuperData.setNoDeptNum(deptList.size() - patrolSuperData.getIsDeptNum());
+
+        return patrolSuperData;
+    }
 }

--
Gitblit v1.9.3