吉安感知网项目-后端
linwei
2026-02-05 bf45f88ff9ea1ea1d4976f97dbe2a12eae9a52f9
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/impl/FwDeviceServiceImpl.java
@@ -16,39 +16,39 @@
 */
package org.sxkj.fw.device.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springframework.stereotype.Service;
import org.sxkj.fw.area.service.IFwAreaDivideService;
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
import org.sxkj.fw.common.GenericConverter;
import org.sxkj.fw.device.dto.FwDeviceDTO;
import org.sxkj.fw.device.dto.FwDevicePolygonQueryDTO;
import org.sxkj.fw.device.entity.FwDeviceEntity;
import org.sxkj.fw.device.excel.FwDeviceExcel;
import org.sxkj.fw.device.mapper.FwDeviceMapper;
import org.sxkj.fw.device.param.FwDevicePageParam;
import org.sxkj.fw.device.service.IFwDeviceService;
import org.sxkj.fw.device.vo.CockpitFwDeviceVO;
import org.sxkj.fw.device.vo.DeviceTypeStatisticsVO;
import org.sxkj.fw.device.vo.FwDeviceVO;
import org.sxkj.fw.device.excel.FwDeviceExcel;
import org.sxkj.fw.device.mapper.FwDeviceMapper;
import org.sxkj.fw.device.service.IFwDeviceService;
import org.sxkj.fw.area.service.IFwAreaDivideService;
import org.sxkj.fw.device.wrapper.FwDeviceWrapper;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.utils.StringUtil;
import org.sxkj.system.cache.RegionCache;
import org.sxkj.system.cache.SysCache;
import org.sxkj.system.entity.Dept;
import org.sxkj.system.entity.Region;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import javax.annotation.Resource;
/**
 * 设备表 服务实现类
@@ -71,8 +71,12 @@
   public IPage<FwDeviceVO> selectFwDevicePageVo(FwDevicePageParam fwDevice, Query query) {
      FwDeviceDTO fwDeviceDTO = GenericConverter.convert(fwDevice, FwDeviceDTO.class);
      // 按当前部门及下级部门范围过滤数据
      List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      fwDeviceDTO.setDeptList(deptList);
      if (!AuthUtil.isAdministrator()) {
         List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
         fwDeviceDTO.setDeptList(deptList);
      }
      fwDeviceDTO.setCurrentDeptId(AuthUtil.getDeptId());
      // 按区域范围过滤数据
      IPage<FwDeviceEntity> pages = selectFwDevicePage(Condition.getPage(query), fwDeviceDTO);
      IPage<FwDeviceVO> result = FwDeviceWrapper.build().pageVO(pages);
      List<FwDeviceVO> records = result.getRecords();
@@ -142,7 +146,10 @@
   @Override
   public List<DeviceTypeStatisticsVO> getDeviceTypeStatistics() {
      // 统计范围限定在当前部门及下级部门
      List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      List<Long> deptList = new ArrayList<>();
      if (!AuthUtil.isAdministrator()) {
         deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      }
      List<DeviceTypeStatisticsVO> deviceTypeStatistics = baseMapper.getDeviceTypeStatistics(deptList, AuthUtil.getDeptId());
      return deviceTypeStatistics;
   }
@@ -150,15 +157,21 @@
   @Override
   public List<DeviceStatisticsVO> getDeviceOutStatistics(String effectiveRangeKmIsNotNull) {
      // 统计范围限定在当前部门及下级部门
      List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      List<Long> deptList = new ArrayList<>();
      if (!AuthUtil.isAdministrator()) {
         deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      }
      return baseMapper.getDeviceOutStatistics(effectiveRangeKmIsNotNull, deptList, AuthUtil.getDeptId());
   }
   @Override
   public List<DeviceStatisticsVO> getDeviceManufacturerStatistics() {
      // 统计范围限定在当前部门及下级部门
      List<Long> deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      return baseMapper.getDeviceManufacturerStatistics(deptList);
      List<Long> deptList = new ArrayList<>();
      if (!AuthUtil.isAdministrator()) {
         deptList = SysCache.getDeptChildIds(Long.valueOf(AuthUtil.getDeptId()));
      }
      return baseMapper.getDeviceManufacturerStatistics(deptList, AuthUtil.getDeptId());
   }
   /**
@@ -206,7 +219,7 @@
    * 查询非本部门区域的设备
    *
    * @param regionCode 区域编码,用于查询不在该区域内的设备
    * @param deptId 机构ID,用于限定查询范围
    * @param deptId     机构ID,用于限定查询范围
    * @return 设备列表
    */
   @Override