吉安感知网项目-后端
rain
2026-02-03 74b5d54c1cf5dc585a2fe135f4ce4dd2b374b4dd
drone-service/drone-fw/src/main/java/org/sxkj/fw/device/service/IFwDeviceService.java
@@ -17,18 +17,27 @@
package org.sxkj.fw.device.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.cockpit.vo.DeviceStatisticsVO;
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.param.FwDevicePageParam;
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 com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.mp.support.Query;
import java.util.List;
import java.util.Map;
/**
 * 反无设备表 服务类
 * 设备表 服务类
 *
 * @author AIX
 * @since 2026-01-06
 * @author aix
 * @since 2026-01-08
 */
public interface IFwDeviceService extends BaseService<FwDeviceEntity> {
   /**
@@ -38,7 +47,35 @@
    * @param fwDevice
    * @return
    */
   IPage<FwDeviceVO> selectFwDevicePage(IPage<FwDeviceVO> page, FwDeviceVO fwDevice);
   IPage<FwDeviceEntity> selectFwDevicePage(IPage<FwDeviceEntity> page, FwDeviceDTO fwDevice);
   /**
    * 自定义分页返回
    *
    * @param fwDevice
    * @param query
    * @return
    */
   IPage<FwDeviceVO> selectFwDevicePageVo(FwDevicePageParam fwDevice, Query query);
   /**
    * 列表查询
    *
    * @param isAreaSelect 是否过滤区域
    * @param areaId 设备被关联区域id
    * @param areaIds 设备被关联区域id集合
    * @param status 设备状态
    * @return
    */
   List<FwDeviceEntity> selectFwDeviceList(Integer isAreaSelect, Long areaId, List<Long> areaIds, Integer status, Integer isTrack);
   /**
    * 根据多边形查询设备列表
    *
    * @param query 查询条件
    * @return 设备列表
    */
   List<FwDeviceEntity> selectFwDeviceListByPolygons(FwDevicePolygonQueryDTO query);
   /**
@@ -49,4 +86,89 @@
    */
   List<FwDeviceExcel> exportFwDevice(Wrapper<FwDeviceEntity> queryWrapper);
   /**
    * 设备类型统计
    * @return
    */
   List<DeviceStatisticsVO> statisticalDeviceType(String regionCode, String currentDeptId);
   /**
    * 设备统计 - 按类型统计
    * @return 统计数据
    */
   List<DeviceTypeStatisticsVO> getDeviceTypeStatistics();
   /**
    * 设备出库去向统计
    * @return 统计数据
    */
   List<DeviceStatisticsVO> getDeviceOutStatistics(String effectiveRangeKmIsNotNull);
   /**
    * 设备生产厂商统计
    * @return 统计数据
    */
   List<DeviceStatisticsVO> getDeviceManufacturerStatistics();
   /**
    * 设备报警统计
    * @return
    */
   AlarmStatisticsVO statisticalDeviceAtt(String regionCode, String currentDeptId);
   /**
    * 驾驶舱获取设备列表
    * @param page
    * @param fwDevice
    * @return
    */
   IPage<CockpitFwDeviceVO> selectCockpitDevicePage(IPage<CockpitFwDeviceVO> page, FwDeviceDTO fwDevice);
   /**
    * 获取设备关联场景名称
    *
    * @param deviceIds
    * @return
    */
   Map<Long, String> selectSceneNameByDeviceIds(List<Long> deviceIds);
   /**
    * 判断设备是否绑定区域
    *
    * @param deviceId
    * @return
    */
   boolean existsAreaBindByDeviceId(Long deviceId);
   /**
    * 新增或修改设备
    * @param fwDeviceEntity
    * @return
    */
   boolean saveOrUpdateDevice(FwDeviceEntity fwDeviceEntity);
   /**
    * 按设备ID更新出入库状态
    *
    * @param deviceId 设备ID
    * @param trackStatus 出入库状态
    * @return 是否更新成功
    */
   boolean updateTrackStatusByDeviceId(Long deviceId, Integer trackStatus, String outTarget, String outTargetCode);
   /**
    * 查询非本部门区域的设备
    *
    * @param regionCode 区域编码,用于查询不在该区域内的设备
    * @param deptId 机构ID,用于限定查询范围
    * @return 设备列表
    */
   List<FwDeviceVO> getNonDeptAreaDevices(String regionCode, String deptId);
   /**
    *
    * @param fwDeviceDTO
    * @return
    */
   List<DeviceStatisticsVO> getDeviceStatistics(FwDeviceDTO fwDeviceDTO);
}