From 6f1dc57c829ab76e1408356bf2a16f39a092c5f9 Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Thu, 09 Apr 2026 13:57:18 +0800
Subject: [PATCH] opt:优化

---
 drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java |   79 +++++++++++++++++++++++++++++++++++----
 1 files changed, 71 insertions(+), 8 deletions(-)

diff --git a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java
index 2224f9d..363d331 100644
--- a/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java
+++ b/drone-service/drone-fw/src/main/java/org/sxkj/fw/record/service/impl/FwDroneAlarmRecordServiceImpl.java
@@ -16,39 +16,102 @@
  */
 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()));
+		// 如果结束时间有值,设置为当天的最后一秒
+		if (StringUtil.isNotBlank(fwDroneAlarmRecord.getEndTime())) {
+			try {
+				// 解析结束时间
+				SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+				Date endDate = sdf.parse(fwDroneAlarmRecord.getEndTime());
+				// 设置时间为当天的23:59:59
+				SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+				String dateStr = dateFormat.format(endDate);
+				String lastSecondOfDay = dateStr + " 23:59:59";
+				fwDroneAlarmRecord.setEndTime(lastSecondOfDay);
+			} catch (ParseException e) {
+				log.error("解析结束时间失败: {}", e.getMessage());
+			}
+		}
 		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);
+	}
 }

--
Gitblit v1.9.3