From 0d59d664b3b81e9264df6ad513d06b1b2c84c931 Mon Sep 17 00:00:00 2001
From: sgj <1442489573@qq.com>
Date: 星期五, 27 三月 2026 11:43:34 +0800
Subject: [PATCH] 大屏首页储量数量展示,仅展示散粮;抓拍跟踪图片展示业务逻辑调整

---
 fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java |  103 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 82 insertions(+), 21 deletions(-)

diff --git a/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java b/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
index 7860820..35fc6d2 100644
--- a/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
+++ b/fzzy-igdss-web/src/main/java/com/fzzy/group/manager/GroupManager.java
@@ -13,14 +13,13 @@
 import com.ruoyi.common.utils.StringUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.time.DateFormatUtils;
+import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
 import java.text.DecimalFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @Description
@@ -51,9 +50,12 @@
     private SecCameraService cameraService;
     @Resource
     private BankService bankService;
-
     @Resource
     private PledgeContractService pledgeContractService;
+    @Resource
+    private PledgeContractDepotService pledgeContractDepotService;
+    @Resource
+    private GatewaySerService gatewaySerService;
 
     /**
      * 鑾峰彇鐪佸強涓嬪睘甯傚窞闆嗗悎
@@ -132,11 +134,11 @@
         if (null == area) {
             return null;
         }
-        List<DicArea> areaChildren =  new ArrayList<>();
+        List<DicArea> areaChildren = new ArrayList<>();
 
         List<DicArea> list = new ArrayList<>();
         if (Constant.AREA_TYPE_1.equals(area.getType())) {
-           //鏌ヨ鎵�鏈夌殑璐ㄦ娂鍚堝悓
+            //鏌ヨ鎵�鏈夌殑璐ㄦ娂鍚堝悓
             List<PledgeContract> pledgeContractList = pledgeContractService.listAll(null);
             //鏌ヨ鎵�鏈夌殑搴撳尯
             List<Dept> depotList = deptService.listDept(null, ContextUtil.getCompanyId(), null);
@@ -150,7 +152,15 @@
             for (Dept dept : depotList) {
                 Boolean isPledge = false;
                 for (PledgeContract pledgeContract : pledgeContractList) {
-                    if( dept.getId().equals(pledgeContract.getPledgeDept())){
+                    IgdsBaseParam param = new IgdsBaseParam();
+                    param.setParentId(pledgeContract.getId());
+                    List<PledgeContractDepot> pledgeContractDepots = pledgeContractDepotService.listAll(param);
+                    if (null == pledgeContractDepots || pledgeContractDepots.isEmpty()) {
+                        continue;
+                    }
+                    //鎵惧埌pledgeContractDepots涓殑deptId闆嗗悎锛屽苟鍘婚噸
+                    List<String> deptIdList = pledgeContractDepots.stream().map(PledgeContractDepot::getPledgeDept).distinct().collect(Collectors.toList());
+                    if (deptIdList.contains(dept.getId())) {
                         //浠巐ist涓壘鍒板綋鍓嶈川鎶奸摱琛岀殑鏁版嵁
                         DicArea pledgeBank = null;
                         int indexBank = -1;
@@ -161,11 +171,11 @@
                                 break;
                             }
                         }
-                        if( null == pledgeBank){
+                        if (null == pledgeBank) {
                             //鏈壘鍒拌川鎶奸摱琛屾暟鎹垯鏂板缓
                             pledgeBank = new DicArea();
                             pledgeBank.setCode(pledgeContract.getPledgeBank());
-                            pledgeBank.setName("璐ㄦ娂閾惰_"+pledgeContract.getPledgeBank());
+                            pledgeBank.setName("璐ㄦ娂閾惰_" + pledgeContract.getPledgeBank());
                             //浠庨摱琛屾暟鎹腑鎵惧埌璐ㄦ娂閾惰鐨勪俊鎭�
                             for (Bank bank : bankList) {
                                 if (pledgeContract.getPledgeBank().equals(bank.getId())) {
@@ -184,9 +194,9 @@
                             pledgeBank.getChildren().add(deptDic);
                             //鏂板璐ㄦ娂閾惰鏁版嵁鍒發ist涓�
                             areaChildren.add(pledgeBank);
-                            isPledge=true;
+                            isPledge = true;
                             break;
-                        }else{
+                        } else {
                             //娣诲姞璐ㄦ娂閾惰涓嬬殑搴撳尯鏁版嵁
                             DicArea deptDic = new DicArea();
                             deptDic.setCode(dept.getId());
@@ -198,16 +208,14 @@
                             }
                             pledgeBank.getChildren().add(deptDic);
                             //鏇存柊list涓殑璐ㄦ娂閾惰鏁版嵁
-                            areaChildren.set(indexBank,pledgeBank);
-                            isPledge=true;
+                            areaChildren.set(indexBank, pledgeBank);
+                            isPledge = true;
                             break;
-
                         }
-
-
                     }
+
                 }
-                if(!isPledge){
+                if (!isPledge) {
                     DicArea deptDic = new DicArea();
                     deptDic.setCode(dept.getId());
                     deptDic.setName(dept.getKqmc());
@@ -220,7 +228,7 @@
                 }
             }
             List<DicArea> defaultBankChildren = defaultBank.getChildren();
-            if (defaultBankChildren.size()>0) {
+            if (defaultBankChildren.size() > 0) {
                 areaChildren.add(defaultBank);
             }
             area.setChildren(areaChildren);
@@ -511,7 +519,11 @@
                         }
                     }
                 }
-
+                //鍒ゆ柇缃戝叧鏄惁鍦ㄧ嚎
+                GatewaySer cacheSerByDeptId = gatewaySerService.getCacheSerByDeptId(dept.getId());
+                if (null == cacheSerByDeptId || (null != cacheSerByDeptId && StringUtils.isNotBlank(cacheSerByDeptId.getStatus()) && cacheSerByDeptId.getStatus().equals(Constant.YN_N))) {
+                    deptData.setDailyTotal(-1);
+                }
                 list.add(deptData);
             }
         }
@@ -588,7 +600,6 @@
     }
 
 
-
     public GroupGisData getGisDataByCompanyId() {
 
         GroupGisData groupGisData = new GroupGisData();
@@ -651,6 +662,7 @@
 
         return groupGisData;
     }
+
     /**
      * 澶у睆棣栭〉-鎶撴媿璺熻釜淇℃伅
      *
@@ -681,4 +693,53 @@
 
         return new PageResponse<>(RespCodeEnum.CODE_0000, resultListSnap);
     }
+
+
+    /**
+     * 澶у睆棣栭〉-鎶撴媿璺熻釜淇℃伅-灞曠ずAI鏃堕棿鍥剧墖
+     * 灞曠ず鍥剧墖鐨勪笟鍔¢�昏緫锛氭瘡涓簱鍖哄睍绀轰竴寮狅紝鍥剧墖涓哄綋澶╁崄鐐逛互鍚庢渶鏂扮殑涓�寮�
+     * @param param
+     * @return
+     */
+    public PageResponse<List<EventInfo>> indexEventInfoList(IgdsBaseParam param) {
+//        Date start =DateUtils.setHours(DateUtil.getNewByDay(new Date(), -3), 10);
+        //param.setStart(start);
+//        param.setEnd(DateUtil.getNewByDay(new Date(), -3));
+        Date start =DateUtils.setHours(new Date(), 10);
+        param.setStart(start);
+        param.setEnd(new Date());
+        //鑾峰彇褰撴棩鐨勬姄鎷嶄俊鎭�
+        List<EventInfo> listByParam = eventInfoService.getListByParam(param);
+        if (null == listByParam || listByParam.isEmpty()) {
+            return new PageResponse<>(RespCodeEnum.CODE_0000, new ArrayList<>());
+        }
+        //绛涢�塼ime澶т簬Start鏃堕棿鐨勬暟鎹�
+        listByParam = listByParam.stream().filter(info -> info.getTime().after(start)).collect(Collectors.toList());
+
+        //鑾峰彇鎵�鏈夌殑搴撳尯淇℃伅
+        List<Dept> deptList = deptService.getDeptByUserType(null);
+        //鏍规嵁搴撳尯浠巐istByParam鏉ヨ幏鍙栨瘡涓�涓簱鍖轰笅锛屾渶鏂扮殑涓�寮犳姄鎷嶅浘鐗�
+        List<EventInfo> resultList = new ArrayList<>();
+
+        for (Dept dept : deptList) {
+            EventInfo latestEvent = null;
+                //浠巐istByParam涓瓫閫夊嚭涓庡綋鍓峣d鍖归厤鐨勬暟鎹�
+            List<EventInfo> collect = listByParam.stream().filter(info -> info.getDeptId().equals(dept.getId())).collect(Collectors.toList());
+            if (!collect.isEmpty()) {
+                //鏍规嵁鏃堕棿鎺掑簭骞舵壘鍒版渶鏂颁竴鏉℃暟鎹�
+                latestEvent = collect.stream().sorted(Comparator.comparing(EventInfo::getTime).reversed()).findFirst().get();
+            }
+            if (latestEvent != null) {
+                resultList.add(latestEvent);
+            }
+        }
+        if (null != resultList && !resultList.isEmpty()) {
+            //鍒ゆ柇鏂囦欢鏄惁瀛樺湪
+            for (EventInfo record : resultList) {
+                record.setImgName(commonManager.isImgExit(record.getImgName(), null));
+            }
+        }
+
+        return new PageResponse<>(RespCodeEnum.CODE_0000, resultList);
+    }
 }

--
Gitblit v1.9.3