From f12b7fd8a4a5dc6c7db814f5879defa77f1b1ab7 Mon Sep 17 00:00:00 2001
From: czt <czt18638530771@163.com>
Date: 星期三, 17 十二月 2025 17:28:15 +0800
Subject: [PATCH] 巡检监管逻辑

---
 fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html                |   19 ++-------
 fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java |    5 ++
 fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java                 |    8 ++++
 fzzy-igdss-web/src/main/java/com/fzzy/sys/manager/security/SecManager.java            |   59 +++++++++++++++++++++++++++++
 fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java                             |   13 ++++++
 5 files changed, 89 insertions(+), 15 deletions(-)

diff --git a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java
index 23b81c5..e07b9dc 100644
--- a/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java
+++ b/fzzy-igdss-core/src/main/java/com/fzzy/igds/data/PatrolSuperData.java
@@ -14,6 +14,7 @@
 @Data
 public class PatrolSuperData implements Serializable {
 
+    /*----------------鍒楄〃浣跨敤--------------------*/
 
     private String companyId;      //缁勭粐缂栫爜
 
@@ -31,6 +32,13 @@
 
     private Date updateTime;
 
+
+    /*----------------缁熻浣跨敤--------------------*/
+    private Integer isDeptNum = 0;      //宸插贰妫�搴撳尯鏁�;
+    private Integer noDeptNum = 0;      //鏈贰妫�搴撳尯鏁�;
+    private Integer yesterdaySum = 0;   //鏄ㄥぉ宸℃浜烘;
+    private Integer weekSum = 0;        //杩�7澶╁贰妫�浜烘;
+
     public PatrolSuperData() {
         super();
     }
diff --git a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java
index ef412a6..e5dcdc8 100644
--- a/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java
+++ b/fzzy-igdss-view/src/main/java/com/fzzy/igds/PatrolPR.java
@@ -58,6 +58,19 @@
             for (Patrol patrol : weekList) {
                 patrolSuperData = map.get(patrol.getDeptId());
 
+                //7澶╁唴缁熻
+                patrolSuperData.setWeekNum(patrolSuperData.getWeekNum() + 1);
+
+                //褰撳ぉ缁熻
+                if(patrol.getCreateTime().after(end)){
+                    patrolSuperData.setCurNum(patrolSuperData.getCurNum() + 1);
+                    patrolSuperData.setIsPatrol("Y");
+                }
+
+                //鏄ㄥぉ缁熻
+                if(patrol.getCreateTime().after(start) && patrol.getCreateTime().before(end)){
+                    patrolSuperData.setWeekNum(patrolSuperData.getWeekNum() + 1);
+                }
             }
         }
 
diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
index 6423a53..7504a74 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/sys/controller/security/SecurityController.java
@@ -5,6 +5,7 @@
 import com.fzzy.igds.constant.CameraPlayType;
 import com.fzzy.igds.constant.Constant;
 import com.fzzy.igds.data.PageResponse;
+import com.fzzy.igds.data.PatrolSuperData;
 import com.fzzy.igds.domain.Camera;
 import com.fzzy.igds.utils.ContextUtil;
 import com.fzzy.igds.utils.SystemUtil;
@@ -205,6 +206,10 @@
         String deptId = ContextUtil.subDeptId(user);
         view.put("deptId", deptId);
 
+
+        PatrolSuperData patrolSuperData = secManager.patrolTrack();
+        view.put("patrolSuperData", patrolSuperData);
+
         return prefix + "/patrol-count";
     }
 
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 e873102..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
@@ -5,14 +5,23 @@
 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
@@ -27,6 +36,10 @@
     private SecCameraService secCameraService;
     @Resource
     private ApiCameraManager apiCameraManager;
+    @Resource
+    private PatrolService patrolService;
+    @Resource
+    private CoreDeptService coreDeptService;
 
     /**
      *
@@ -147,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;
+    }
 }
diff --git a/fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html b/fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html
index c401146..dd9e34d 100644
--- a/fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html
+++ b/fzzy-igdss-web/src/main/resources/templates/security/patrol-count.html
@@ -94,28 +94,28 @@
     <div class="layui-row layui-col-space15" style="background: #FFFFFF;margin: 10px">
         <div class="layui-col-sm3  layui-col-xs6">
             <div class="console-link-block">
-                <div class="console-link-block-num">0</div>
+                <div class="console-link-block-num" th:text="${patrolSuperData.isDeptNum}">0</div>
                 <div class="console-link-block-text">宸插贰妫�搴撳尯鏁�(褰撳ぉ)</div>
                 <i class="console-link-block-icon layui-icon layui-icon-form"></i>
             </div>
         </div>
         <div class="layui-col-sm3 layui-col-xs6">
             <div class="console-link-block">
-                <div class="console-link-block-num">0</div>
+                <div class="console-link-block-num" th:text="${patrolSuperData.noDeptNum}">0</div>
                 <div class="console-link-block-text">鏈贰妫�搴撳尯鏁�(褰撳ぉ)</div>
                 <i class="console-link-block-icon layui-icon layui-icon-survey"></i>
             </div>
         </div>
         <div class="layui-col-sm3 layui-col-xs6">
             <div class="console-link-block">
-                <div class="console-link-block-num">0</div>
+                <div class="console-link-block-num" th:text="${patrolSuperData.yesterdaySum}">0</div>
                 <div class="console-link-block-text">宸℃浜烘(鏄ㄥぉ)</div>
                 <i class="console-link-block-icon layui-icon layui-icon-chart"></i>
             </div>
         </div>
        <div class="layui-col-sm3 layui-col-xs6">
             <div class="console-link-block">
-                <div class="console-link-block-num">0</div>
+                <div class="console-link-block-num" th:text="${patrolSuperData.weekSum}">0</div>
                 <div class="console-link-block-text">宸℃浜烘(杩�7澶�)</div>
                 <i class="console-link-block-icon layui-icon layui-icon-chart"></i>
             </div>
@@ -125,17 +125,6 @@
 </div>
 <!-- js閮ㄥ垎 -->
 <script th:src="@{/ajax/libs/layui-ruoyi/layui.js}"></script>
-<!--<script src="${ctxPath}/assets/js/common.js"></script>-->
-<script th:src="@{/ajax/libs/echarts/echarts.min.js}"></script>
-<script th:src="@{/ajax/libs/echarts/china.js}"></script>
-<script th:src="@{/ajax/libs/echarts/echarts-wordcloud.min.js}"></script>
-<script>
-    layui.use(['layer'], function () {
-        var $ = layui.jquery;
-        var layer = layui.layer;
 
-
-    });
-</script>
 </body>
 </html>
\ No newline at end of file

--
Gitblit v1.9.3