From d4020168658efdee89a633083cd9c14b06c4d863 Mon Sep 17 00:00:00 2001
From: zhangf <1603559716@qq.com>
Date: 星期三, 11 九月 2024 17:09:10 +0800
Subject: [PATCH] 修改消息推送时间间隔

---
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java |   71 ++++++++++++++++++++++++++++++++++-
 1 files changed, 68 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java
index 0b80e0d..90fb63b 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java
+++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java
@@ -1,6 +1,7 @@
 package com.gkhy.fourierSpecialGasMonitor.service.impl;
 
 import com.gkhy.fourierSpecialGasMonitor.commons.enums.ResultCode;
+import com.gkhy.fourierSpecialGasMonitor.commons.enums.StatusEnum;
 import com.gkhy.fourierSpecialGasMonitor.commons.exception.BusinessException;
 import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery;
 import com.gkhy.fourierSpecialGasMonitor.entity.GasConcentration;
@@ -8,6 +9,7 @@
 import com.gkhy.fourierSpecialGasMonitor.entity.GasWarnLog;
 import com.gkhy.fourierSpecialGasMonitor.entity.query.GasFluxPageQuery;
 import com.gkhy.fourierSpecialGasMonitor.entity.query.GasPageQuery;
+import com.gkhy.fourierSpecialGasMonitor.entity.req.GasFluxExportBO;
 import com.gkhy.fourierSpecialGasMonitor.repository.GasConcentrationRepository;
 import com.gkhy.fourierSpecialGasMonitor.repository.GasFluxRepository;
 import com.gkhy.fourierSpecialGasMonitor.service.GasConcentrationService;
@@ -19,13 +21,12 @@
 import org.springframework.data.domain.Sort;
 import org.springframework.data.jpa.domain.Specification;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import javax.persistence.criteria.*;
 import java.time.LocalDateTime;
 import java.time.LocalTime;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 @Service
 public class GasFluxServiceImpl implements GasFluxService {
@@ -120,4 +121,68 @@
         List<GasFlux> gasFluxes = gasFluxRepository.findAll(specification);
         return gasFluxes;
     }
+
+    @Override
+    public List<GasFlux> listYesterdayTenAmToSixPm() {
+        // 获取昨天的上午十点
+        LocalDateTime yesterdayStart = LocalDateTime.now()
+                .minusDays(1)  // 减去一天,获取昨天的日期
+                .with(LocalTime.of(10, 0));  // 设置时间为上午十点
+        // 获取昨天的下午6点
+        LocalDateTime yesterdayEnd = LocalDateTime.now()
+                .minusDays(1)  // 减去一天,获取昨天的日期
+                .with(LocalTime.of(18, 0));  // 设置时间为下午6点
+        Specification<GasFlux> specification = new Specification<GasFlux>() {
+            @Override
+            public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) {
+                Set<Predicate> predicateList = new HashSet<>();
+                predicateList.add(criteriaBuilder.between(root.get("time").as(LocalDateTime.class),yesterdayStart,yesterdayEnd));
+                return criteriaBuilder.and(predicateList.toArray(new Predicate[predicateList.size()]));
+            }
+        };
+        List<GasFlux> gasFluxes = gasFluxRepository.findAll(specification);
+        return gasFluxes;
+    }
+
+    @Override
+    public List<GasFlux> gasFluxExport(GasFluxExportBO gasFluxExportBO) {
+
+        if(gasFluxExportBO.getAreaId1() == null && gasFluxExportBO.getAreaId2() == null && gasFluxExportBO.getAreaId3() == null
+                && gasFluxExportBO.getAreaId4() == null  && gasFluxExportBO.getAreaId5() == null  && gasFluxExportBO.getAreaId5() == null){
+            gasFluxExportBO.setAreaId1(1);
+            gasFluxExportBO.setAreaId2(2);
+            gasFluxExportBO.setAreaId3(3);
+            gasFluxExportBO.setAreaId4(4);
+            gasFluxExportBO.setAreaId5(5);
+            gasFluxExportBO.setAreaId6(6);
+        }
+
+        //封装查询参数
+        Specification<GasFlux> specification = new Specification<GasFlux>() {
+            @Override
+            public Predicate toPredicate(Root<GasFlux> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) {
+                List<Predicate> predicateList = new ArrayList<>();
+                if (gasFluxExportBO.getStartTime() != null && !gasFluxExportBO.getStartTime().equals("")){
+                    predicateList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("time"), gasFluxExportBO.getStartTime()));
+                }
+                if (gasFluxExportBO.getEndTime() != null && !gasFluxExportBO.getEndTime().equals("")){
+                    predicateList.add(criteriaBuilder.lessThanOrEqualTo(root.get("time"), gasFluxExportBO.getEndTime()));
+                }
+                predicateList.add(criteriaBuilder.or(
+                            criteriaBuilder.equal(root.get("areaId"), gasFluxExportBO.getAreaId1()),
+                            criteriaBuilder.equal(root.get("areaId"), gasFluxExportBO.getAreaId2()),
+                            criteriaBuilder.equal(root.get("areaId"), gasFluxExportBO.getAreaId3()),
+                            criteriaBuilder.equal(root.get("areaId"), gasFluxExportBO.getAreaId4()),
+                            criteriaBuilder.equal(root.get("areaId"), gasFluxExportBO.getAreaId5()),
+                            criteriaBuilder.equal(root.get("areaId"), gasFluxExportBO.getAreaId6())
+                        )
+                );
+                query.orderBy(criteriaBuilder.asc(root.get("time")),criteriaBuilder.asc(root.get("areaId")));
+                return criteriaBuilder.and(predicateList.toArray(new Predicate[0]));
+            }
+        };
+        List<GasFlux> gasFluxList = gasFluxRepository.findAll(specification);
+
+        return gasFluxList;
+    }
 }

--
Gitblit v1.9.2