吉安感知网项目-后端
linwei
4 hours ago 51a551a7f8eae7654f973d45cd2fa2952774673d
drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java
@@ -16,39 +16,87 @@
 */
package org.sxkj.fw.record.service.impl;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.sxkj.common.utils.HeaderUtils;
import org.sxkj.fw.cockpit.vo.AlarmStatisticsVO;
import org.sxkj.fw.record.dto.FwDroneAlarmRecordDTO;
import org.sxkj.fw.record.entity.FwDroneAlarmRecordEntity;
import org.sxkj.fw.record.param.FwDroneAlarmRecordExportParam;
import org.sxkj.fw.record.vo.FwDroneAlarmRecordVO;
import org.sxkj.fw.record.excel.FwDroneAlarmRecordExcel;
import org.sxkj.fw.record.mapper.FwDroneAlarmRecordMapper;
import org.sxkj.fw.record.service.IFwDroneAlarmRecordService;
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.sxkj.system.cache.RegionCache;
import org.sxkj.system.cache.SysCache;
import org.sxkj.fw.device.mapper.FwDevicePerShareMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.sxkj.system.entity.Dept;
import org.sxkj.system.entity.Region;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
/**
 * 无人机告警表 服务实现类
 *
 * @author lw
 * @since 2026-01-07
 * @since 2026-01-08
 */
@Service
@Slf4j
public class FwDroneAlarmRecordServiceImpl extends BaseServiceImpl<FwDroneAlarmRecordMapper, FwDroneAlarmRecordEntity> implements IFwDroneAlarmRecordService {
   @Autowired
   private FwDevicePerShareMapper fwDevicePerShareMapper;
   /**
    * 查询无人机告警记录分页列表
    *
    * @param page              分页对象
    * @param fwDroneAlarmRecord 无人机告警记录查询参数
    * @return 分页结果
    */
   @Override
   public IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordVO fwDroneAlarmRecord) {
   public IPage<FwDroneAlarmRecordVO> selectFwDroneAlarmRecordPage(IPage<FwDroneAlarmRecordVO> page, FwDroneAlarmRecordDTO fwDroneAlarmRecord) {
      // 设置当前用户ID
      fwDroneAlarmRecord.setCurrentUserId(AuthUtil.getUserId());
      log.info("查询参数:{}", fwDroneAlarmRecord);
      Dept dept = SysCache.getDept(Long.valueOf(AuthUtil.getDeptId()));
      log.info("部门信息:{}", dept);
      // 3. 查询不在这些部门区域内的设备
      Region byCode = RegionCache.getByCode(dept.getAreaCode());
      log.info("部门区域信息:{}", byCode);
      fwDroneAlarmRecord.setRegionName(byCode.getName());
      fwDroneAlarmRecord.setCurrentDeptId(AuthUtil.getDeptId());
      fwDroneAlarmRecord.setRegionCode(HeaderUtils.formatAreaCode(byCode.getCode()));
      return page.setRecords(baseMapper.selectFwDroneAlarmRecordPage(page, fwDroneAlarmRecord));
   }
   @Override
   public List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(Wrapper<FwDroneAlarmRecordEntity> queryWrapper) {
      List<FwDroneAlarmRecordExcel> fwDroneAlarmRecordList = baseMapper.exportFwDroneAlarmRecord(queryWrapper);
      //fwDroneAlarmRecordList.forEach(fwDroneAlarmRecord -> {
      //   fwDroneAlarmRecord.setTypeName(DictCache.getValue(DictEnum.YES_NO, FwDroneAlarmRecord.getType()));
      //});
   public List<FwDroneAlarmRecordExcel> exportFwDroneAlarmRecord(FwDroneAlarmRecordExportParam fwDroneAlarmRecord) {
      Dept dept = SysCache.getDept(Long.valueOf(AuthUtil.getDeptId()));
      Region byCode = RegionCache.getByCode(dept.getAreaCode());
      fwDroneAlarmRecord.setRegionCode(HeaderUtils.formatAreaCode(byCode.getCode()));
      fwDroneAlarmRecord.setCurrentDeptId(AuthUtil.getDeptId());
      List<FwDroneAlarmRecordExcel> fwDroneAlarmRecordList = baseMapper.exportFwDroneAlarmRecord(fwDroneAlarmRecord);
      return fwDroneAlarmRecordList;
   }
   /**
    * 告警类型统计
    *
    * @return
    */
   @Override
   public AlarmStatisticsVO alarmTypeStatistics(String regionCode, String currentDeptId) {
      return baseMapper.alarmTypeStatistics(regionCode, currentDeptId);
   }
}