From 2dd2e7f54db7149965acaa11d933f85b31fbd59c Mon Sep 17 00:00:00 2001
From: huangzhen <867217663@qq.com>
Date: 星期二, 19 十二月 2023 16:54:00 +0800
Subject: [PATCH] 解决验收过程中出现的问题

---
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java
index 0f93767..ace5444 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasWarnLogServiceImpl.java
@@ -8,18 +8,20 @@
 import com.gkhy.fourierSpecialGasMonitor.domain.account.entity.User;
 import com.gkhy.fourierSpecialGasMonitor.domain.account.enums.UserStatusEnum;
 import com.gkhy.fourierSpecialGasMonitor.domain.account.repository.jpa.UserRepository;
+import com.gkhy.fourierSpecialGasMonitor.entity.GasConcentration;
 import com.gkhy.fourierSpecialGasMonitor.entity.GasWarnLog;
 import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasWarnLogPageQuery;
 import com.gkhy.fourierSpecialGasMonitor.entity.query.GasWarnTimesCountTimeSlotQuery;
+import com.gkhy.fourierSpecialGasMonitor.entity.query.WindRoseTimeSlotQuery;
 import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogCountByTimeReqDTO;
 import com.gkhy.fourierSpecialGasMonitor.entity.req.GasWarnLogInfoReqDTO;
 import com.gkhy.fourierSpecialGasMonitor.entity.req.HandleGasWarnLogReqDTO;
-import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindGasWarnLogPageRespDTO;
-import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindGasWarnLogSmsUserPageRespDTO;
-import com.gkhy.fourierSpecialGasMonitor.entity.resp.GasWarnLogCountByTimeRespDTO;
-import com.gkhy.fourierSpecialGasMonitor.entity.resp.GasWarnLogInfoByTimeRespDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.WindRoseByTimeReqDTO;
+import com.gkhy.fourierSpecialGasMonitor.entity.resp.*;
 import com.gkhy.fourierSpecialGasMonitor.enums.GasWarnTimesCountEnum;
 import com.gkhy.fourierSpecialGasMonitor.enums.WarnHandleStatusEnum;
+import com.gkhy.fourierSpecialGasMonitor.enums.WindRoseEnum;
+import com.gkhy.fourierSpecialGasMonitor.repository.GasConcentrationRepository;
 import com.gkhy.fourierSpecialGasMonitor.repository.GasWarnLogRepository;
 import com.gkhy.fourierSpecialGasMonitor.service.GasWarnLogService;
 import com.gkhy.fourierSpecialGasMonitor.utils.ThreadLocalUtil;
@@ -34,6 +36,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import javax.annotation.Resource;
 import javax.persistence.criteria.CriteriaBuilder;
 import javax.persistence.criteria.CriteriaQuery;
 import javax.persistence.criteria.Predicate;
@@ -53,6 +56,9 @@
 
     @Autowired
     private GasWarnLogRepository gasWarnLogRepository;
+
+    @Resource
+    private GasConcentrationRepository gasConcentrationRepository;
 
     @Autowired
     private UserRepository userRepository;
@@ -191,6 +197,25 @@
     }
 
     @Override
+    public Result gasWindRoseByTime(WindRoseByTimeReqDTO reqDTO) {
+        if (reqDTO == null && reqDTO .getCountTime() == null)
+            throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL,"参数不能为空");
+        Integer countTime = reqDTO.getCountTime();
+        WindRoseTimeSlotQuery query = WindRoseEnum.getQueryObject(countTime).getTimeSlotByStrategy();
+        Result result = Result.success();
+        List<GasConcentration> gasConcentrations = gasConcentrationRepository.findAllByDataReceivingTimeBetweenOrderByDataReceivingTimeDesc(query.getStartTime(), query.getEndTime());
+        if (CollectionUtils.isEmpty(gasConcentrations))
+            return result;
+        List<WindRoseByTimeRespDTO> collect = gasConcentrations.stream().map(gasConcentration -> {
+            WindRoseByTimeRespDTO dto = new WindRoseByTimeRespDTO();
+            BeanUtils.copyProperties(gasConcentration, dto);
+            return dto;
+        }).collect(Collectors.toList());
+        result.setData(collect);
+        return result;
+    }
+
+    @Override
     public Result gasWarnLogInfoByTime(GasWarnLogInfoReqDTO gasWarnLogInfoReqDTO) {
         LocalDateTime now = LocalDateTime.now();
         LocalDateTime startTime = now.with(LocalTime.MIN);

--
Gitblit v1.9.2