From 084fcff73e6858862544c3901361adfe5742016c Mon Sep 17 00:00:00 2001
From: cjl <909710561@qq.com>
Date: Wed, 09 Sep 2026 15:32:15 +0800
Subject: [PATCH] fix:雷达调整
---
screen-job/src/main/java/com/moral/api/service/impl/RadarHourlySummaryServiceImpl.java | 62 +++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 0 deletions(-)
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/RadarHourlySummaryServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/RadarHourlySummaryServiceImpl.java
index d438529..e873cac 100644
--- a/screen-job/src/main/java/com/moral/api/service/impl/RadarHourlySummaryServiceImpl.java
+++ b/screen-job/src/main/java/com/moral/api/service/impl/RadarHourlySummaryServiceImpl.java
@@ -5,6 +5,8 @@
import com.moral.api.service.HistorySecondRadarService;
import com.moral.api.service.RadarHourlySummaryService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.api.vo.*;
+import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -34,6 +36,7 @@
private static final int PEAK_SEARCH_LIMIT = 200;
private static final DateTimeFormatter FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:00:00");
+ private static final DateTimeFormatter DT_FMT = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
@@ -45,6 +48,65 @@
}
@Override
+ public ComparisonResponse getComparison(String location, String time) {
+ // ������������ ��� ��������������� = current ������
+ LocalDateTime inputTime = LocalDateTime.parse(time, DT_FMT);
+ LocalDateTime prevHour = inputTime.minusHours(1).withMinute(0).withSecond(0).withNano(0);
+ String currentTime = prevHour.format(DT_FMT);
+
+ // 30 ������������currentTime��������������������� 30 ���
+ String endStr = currentTime;
+ String startStr = prevHour.minusDays(30).format(DT_FMT);
+
+ ComparisonResponse resp = new ComparisonResponse();
+ resp.setLocation(location);
+ resp.setTime(time);
+
+ // current: ������������������ a34004_drop_height
+ RadarHourlySummaryVO cur = this.baseMapper.getByTime(currentTime);
+ resp.setCurrent(cur != null && cur.getA34004DropHeight() != null ? cur.getA34004DropHeight().doubleValue() : 0.0);
+
+ // avg30: 720 ������������
+ Double avg = this.baseMapper.getAvgDropHeightInRange(startStr, endStr);
+ resp.setAvg30(avg != null ? avg : 0.0);
+
+ // daily30: ���������������������������
+ List<DailyDropHeightVO> rows = this.baseMapper.getDailyAvgDropHeight(startStr, endStr);
+ if(CollectionUtils.isEmpty(rows)){
+ List<DailyDropHeightVO> daily = new ArrayList<>();
+ String todayStr = prevHour.toLocalDate().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ DailyDropHeightVO dropHeightVO = new DailyDropHeightVO();
+ dropHeightVO.setDate(todayStr);
+ dropHeightVO.setDropHeight(0d);
+ daily.add(dropHeightVO);
+ resp.setDaily30(daily);
+ }else {
+ resp.setDaily30(rows);
+ }
+ return resp;
+ }
+
+ @Override
+ public HourlyResponse getHourly5Days(String location, String startTime, String endTime) {
+ HourlyResponse resp = new HourlyResponse();
+ resp.setLocation(location);
+ resp.setStartTime(startTime);
+ resp.setEndTime(endTime);
+
+ List<RadarHourlySummaryVO> list = this.baseMapper.queryHourlyByRange(startTime, endTime);
+ List<HourlyItemVO> items = new ArrayList<>();
+ for (RadarHourlySummaryVO s : list) {
+ HourlyItemVO item = new HourlyItemVO();
+ item.setTime(s.getTimeStr());
+ item.setA34004DropHeight(s.getA34004DropHeight().doubleValue());
+ items.add(item);
+ }
+ resp.setCount(items.size());
+ resp.setHourly(items);
+ return resp;
+ }
+
+ @Override
public void processHour(String hourStart) {
String hourEnd = nextHour(hourStart);
List<String> rawList = radarService.queryRawDataByHour(hourStart, hourEnd);
--
Gitblit v1.8.0