From 970567fcffdb6710288357a0d18fb66bc29d074e Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Mon, 02 Feb 2026 18:17:57 +0800
Subject: [PATCH] 设备统计优化

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.java            |    4 ++--
 drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java |    5 +++--
 drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml             |   20 ++++++++++++++++++--
 3 files changed, 23 insertions(+), 6 deletions(-)

diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.java
index d3a3b80..a41333c 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.java
@@ -85,13 +85,13 @@
 	 * 设备统计 - 按类型统计
 	 * @return 统计数据
 	 */
-	List<DeviceTypeStatisticsVO> getDeviceTypeStatistics(List<Long> deptList);
+	List<DeviceTypeStatisticsVO> getDeviceTypeStatistics(List<Long> deptList,String currentDeptId);
 
 	/**
 	 * 设备出库去向统计
 	 * @return 统计数据
 	 */
-	List<DeviceStatisticsVO> getDeviceOutStatistics(String effectiveRangeKmIsNotNull,List<Long> deptList);
+	List<DeviceStatisticsVO> getDeviceOutStatistics(String effectiveRangeKmIsNotNull,List<Long> deptList,String currentDeptId);
 
 	/**
 	 * 设备生产厂商统计
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
index c5e1d3d..d44b2e0 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/mapper/FwDeviceMapper.xml
@@ -311,10 +311,18 @@
                 blade_dict_biz b ON (a.device_type = b.dict_key AND b.code = 'deviceType' AND b.parent_id != 0)
         where a.is_deleted = 0
         <if test="deptList != null and deptList.size > 0">
-            and a.create_dept in
+            and ( a.create_dept in
             <foreach collection="deptList" item="deptId" open="(" separator="," close=")">
                 #{deptId}
             </foreach>
+            <!-- <if test="currentDeptId != null and currentDeptId != '' "> -->
+            <!--     or a.id in ( -->
+            <!--     SELECT device_id FROM ja_fw_device_per_share -->
+            <!--     WHERE loan_to_dept_id = #{currentDeptId} -->
+            <!--     AND is_deleted = 0 -->
+            <!--     ) -->
+            <!-- </if> -->
+            )
         </if>
         group by a.device_type,b.dict_value
     </select>
@@ -338,10 +346,18 @@
             and (d.effective_range_km is null or d.effective_range_km = 0)
         </if>
         <if test="deptList != null and deptList.size > 0">
-            and d.create_dept in
+            and ( d.create_dept in
             <foreach collection="deptList" item="deptId" open="(" separator="," close=")">
                 #{deptId}
             </foreach>
+            <if test="currentDeptId != null and currentDeptId != '' ">
+                or d.id in (
+                SELECT device_id FROM ja_fw_device_per_share
+                WHERE loan_to_dept_id = #{currentDeptId}
+                AND is_deleted = 0
+                )
+            </if>
+            )
         </if>
         GROUP BY
             d.final_outbound_area
diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java
index b01203c..1d3ec1e 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java
@@ -143,14 +143,15 @@
 	public List<DeviceTypeStatisticsVO> getDeviceTypeStatistics() {
 		// 统计范围限定在当前部门及下级部门
 		List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
-		return baseMapper.getDeviceTypeStatistics(deptList);
+		List<DeviceTypeStatisticsVO> deviceTypeStatistics = baseMapper.getDeviceTypeStatistics(deptList, AuthUtil.getDeptId());
+		return deviceTypeStatistics;
 	}
 
 	@Override
 	public List<DeviceStatisticsVO> getDeviceOutStatistics(String effectiveRangeKmIsNotNull) {
 		// 统计范围限定在当前部门及下级部门
 		List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
-		return baseMapper.getDeviceOutStatistics(effectiveRangeKmIsNotNull, deptList);
+		return baseMapper.getDeviceOutStatistics(effectiveRangeKmIsNotNull, deptList, AuthUtil.getDeptId());
 	}
 
 	@Override

--
Gitblit v1.9.3