From 19514ff362a94a611888f371ffc43a00ec21a38a Mon Sep 17 00:00:00 2001 From: 16639036659 <577530412@qq.com> Date: 星期二, 16 七月 2024 13:42:48 +0800 Subject: [PATCH] 数据导出 --- src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 46 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 a7b2426..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 { @@ -142,4 +143,46 @@ 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