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 | 77 +++++++++++++++++++++++++++++++++++---
1 files changed, 70 insertions(+), 7 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 2555e7b..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,15 +16,31 @@
*/
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;
/**
@@ -34,21 +50,68 @@
* @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