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/GasConcentrationServiceImpl.java | 38 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 38 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java index 6f1f5d4..a094e91 100644 --- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java +++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java @@ -5,12 +5,14 @@ import com.gkhy.fourierSpecialGasMonitor.commons.exception.BusinessException; import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.GasConcentration; +import com.gkhy.fourierSpecialGasMonitor.entity.GasFlux; import com.gkhy.fourierSpecialGasMonitor.entity.GasWarnLog; import com.gkhy.fourierSpecialGasMonitor.entity.GasWarnUser; import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasWarnLogPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.FindGasWarnUserPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasAtmospherePageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasPageQuery; +import com.gkhy.fourierSpecialGasMonitor.entity.req.GasConcentrationExportBO; import com.gkhy.fourierSpecialGasMonitor.entity.resp.FindGasWarnUserPageRespDTO; import com.gkhy.fourierSpecialGasMonitor.enums.DeleteStatusEnum; import com.gkhy.fourierSpecialGasMonitor.repository.GasConcentrationRepository; @@ -26,6 +28,7 @@ import javax.persistence.criteria.*; import java.time.LocalDateTime; +import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -120,4 +123,39 @@ List<GasConcentration> gasConcentrations = gasConcentrationRepository.findAll(specification); return gasConcentrations; } + + @Override + public List<GasConcentration> gasConcentrationExport(GasConcentrationExportBO gasConcentrationExportBO) { + + if(gasConcentrationExportBO.getPosition1() == null && gasConcentrationExportBO.getPosition2() == null + && gasConcentrationExportBO.getPosition3() == null){ + gasConcentrationExportBO.setPosition1(1); + gasConcentrationExportBO.setPosition2(2); + gasConcentrationExportBO.setPosition3(3); + } + + //封装查询参数 + Specification<GasConcentration> specification = new Specification<GasConcentration>() { + @Override + public Predicate toPredicate(Root<GasConcentration> root, CriteriaQuery<?> query, CriteriaBuilder criteriaBuilder) { + List<Predicate> predicateList = new ArrayList<>(); + if (gasConcentrationExportBO.getStartTime() != null && !gasConcentrationExportBO.getStartTime().equals("")){ + predicateList.add(criteriaBuilder.greaterThanOrEqualTo(root.get("time"), gasConcentrationExportBO.getStartTime())); + } + if (gasConcentrationExportBO.getEndTime() != null && !gasConcentrationExportBO.getEndTime().equals("")){ + predicateList.add(criteriaBuilder.lessThanOrEqualTo(root.get("time"), gasConcentrationExportBO.getEndTime())); + } + predicateList.add(criteriaBuilder.or( + criteriaBuilder.equal(root.get("position"), gasConcentrationExportBO.getPosition1()), + criteriaBuilder.equal(root.get("position"), gasConcentrationExportBO.getPosition2()), + criteriaBuilder.equal(root.get("position"), gasConcentrationExportBO.getPosition3()) + ) + ); + query.orderBy(criteriaBuilder.asc(root.get("time")),criteriaBuilder.asc(root.get("position"))); + return criteriaBuilder.and(predicateList.toArray(new Predicate[0])); + } + }; + List<GasConcentration> result = gasConcentrationRepository.findAll(specification); + return result; + } } -- Gitblit v1.9.2