吉安感知网项目-后端
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();
@@ -92,8 +96,8 @@
   }
   @Override
   public List<FwDeviceEntity> selectFwDeviceList(Integer isAreaSelect, Long areaId, Integer status, Integer isTrack) {
      return baseMapper.selectFwDeviceList(isAreaSelect, areaId, status, isTrack);
   public List<FwDeviceEntity> selectFwDeviceList(Integer isAreaSelect, Long areaId, List<Long> areaIds, Integer status, Integer isTrack) {
      return baseMapper.selectFwDeviceList(isAreaSelect, areaId, areaIds, status, isTrack);
   }
   @Override
@@ -130,8 +134,8 @@
    * @return
    */
   @Override
   public List<DeviceStatisticsVO> statisticalDeviceType(String regionName, String currentDeptId) {
      return baseMapper.statisticalDeviceType(regionName, currentDeptId);
   public List<DeviceStatisticsVO> statisticalDeviceType(String regionCode, String currentDeptId) {
      return baseMapper.statisticalDeviceType(regionCode, currentDeptId);
   }
   /**
@@ -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());
   }
   /**
@@ -167,8 +180,8 @@
    * @return
    */
   @Override
   public AlarmStatisticsVO statisticalDeviceAtt(String regionName, String currentDeptId) {
      return baseMapper.statisticalDeviceAtt(regionName, currentDeptId);
   public AlarmStatisticsVO statisticalDeviceAtt(String regionCode, String currentDeptId) {
      return baseMapper.statisticalDeviceAtt(regionCode, currentDeptId);
   }
   @Override
@@ -198,15 +211,15 @@
   }
   @Override
   public boolean updateTrackStatusByDeviceId(Long deviceId, Integer trackStatus, String outTarget) {
      return baseMapper.updateTrackStatusByDeviceId(deviceId, trackStatus, outTarget) > 0;
   public boolean updateTrackStatusByDeviceId(Long deviceId, Integer trackStatus, String outTarget, String outTargetCode) {
      return baseMapper.updateTrackStatusByDeviceId(deviceId, trackStatus, outTarget, outTargetCode) > 0;
   }
   /**
    * 查询非本部门区域的设备
    *
    * @param regionCode 区域编码,用于查询不在该区域内的设备
    * @param deptId 机构ID,用于限定查询范围
    * @param deptId     机构ID,用于限定查询范围
    * @return 设备列表
    */
   @Override
@@ -218,4 +231,9 @@
      List<FwDeviceVO> deviceList = baseMapper.selectNonDeptAreaDevices(regionName, deptId);
      return deviceList;
   }
   @Override
   public List<DeviceStatisticsVO> getDeviceStatistics(FwDeviceDTO fwDeviceDTO) {
      return baseMapper.getDeviceStatistics(fwDeviceDTO);
   }
}