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/service/impl/FwDeviceServiceImpl.java |   24 +++++++++++++-----------
 1 files changed, 13 insertions(+), 11 deletions(-)

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 fbca111..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
@@ -197,23 +198,24 @@
 	}
 
 	@Override
-	public boolean updateTrackStatusByDeviceId(Long deviceId, Integer trackStatus) {
-		return baseMapper.updateTrackStatusByDeviceId(deviceId, trackStatus) > 0;
+	public boolean updateTrackStatusByDeviceId(Long deviceId, Integer trackStatus, String outTarget) {
+		return baseMapper.updateTrackStatusByDeviceId(deviceId, trackStatus, outTarget) > 0;
 	}
 
 	/**
 	 * 查询非本部门区域的设备
 	 *
+	 * @param regionCode 区域编码,用于查询不在该区域内的设备
+	 * @param deptId 机构ID,用于限定查询范围
 	 * @return 设备列表
 	 */
 	@Override
-	public List<FwDeviceVO> getNonDeptAreaDevices() {
-		// 1. 获取当前用户的部门ID
-		String currentDeptId = AuthUtil.getDeptId();
-		Dept dept = SysCache.getDept(Long.valueOf(currentDeptId));
-		// 3. 查询不在这些部门区域内的设备
-		Region byCode = RegionCache.getByCode(dept.getAreaCode());
-		List<FwDeviceVO> deviceList = baseMapper.selectNonDeptAreaDevices(byCode.getName(), currentDeptId);
+	public List<FwDeviceVO> getNonDeptAreaDevices(String regionCode, String deptId) {
+		// 1. 根据区域编码获取区域名称
+		Region region = RegionCache.getByCode(regionCode);
+		String regionName = region != null ? region.getName() : null;
+		// 2. 查询不在这些部门区域内的设备
+		List<FwDeviceVO> deviceList = baseMapper.selectNonDeptAreaDevices(regionName, deptId);
 		return deviceList;
 	}
 }

--
Gitblit v1.9.3