From d6ae4bd543971312b51ba0e40b2565f63ed682e0 Mon Sep 17 00:00:00 2001 From: huangzhen <867217663@qq.com> Date: 星期四, 28 十二月 2023 16:14:28 +0800 Subject: [PATCH] 气体浓度加入方位 --- src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java | 24 +++++++++++++++++++++++- 1 files changed, 23 insertions(+), 1 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 b27996e..6f1f5d4 100644 --- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java +++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java @@ -64,13 +64,16 @@ } @Override - public Page<GasConcentration> listDatabyTimeSlotAndPage(PageQuery<GasPageQuery> pageQuery) { + public Page<GasConcentration> listDatabyTimeSlotAndPositionAndPage(PageQuery<GasPageQuery> pageQuery) { Pageable pageable = PageRequest.of(pageQuery.getPageIndex()-1, pageQuery.getPageSize(), Sort.Direction.DESC, "time"); Specification<GasConcentration> specification = new Specification<GasConcentration>() { @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { Set<Predicate> predicateList = new HashSet<>(); GasPageQuery searchParams = pageQuery.getSearchParams(); + if (searchParams != null && searchParams.getPosition() != null){ + predicateList.add(criteriaBuilder.equal(root.get("position").as(Integer.class),searchParams.getPosition())); + } if (searchParams != null && searchParams.getStartTime() != null && searchParams.getEndTime() != null){ predicateList.add(criteriaBuilder.between(root.get("time").as(LocalDateTime.class),searchParams.getStartTime(),searchParams.getEndTime())); } @@ -98,4 +101,23 @@ Page<GasConcentration> pageResult = gasConcentrationRepository.findAll(specification,pageable); return pageResult; } + + @Override + public List<GasConcentration> listDatabyTimeSlotAndPosition(LocalDateTime startTime, LocalDateTime endTime, Integer position) { + if (startTime == null || endTime == null) + throw new BusinessException(this.getClass(), ResultCode.PARAM_ERROR_NULL.getCode(),"时间区段值不能为空"); + Specification<GasConcentration> specification = new Specification<GasConcentration>() { + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + Set<Predicate> predicateList = new HashSet<>(); + if (position != null){ + predicateList.add(criteriaBuilder.equal(root.get("position").as(Integer.class),position)); + } + predicateList.add(criteriaBuilder.between(root.get("time").as(LocalDateTime.class),startTime,endTime)); + return criteriaBuilder.and(predicateList.toArray(new Predicate[predicateList.size()])); + } + }; + List<GasConcentration> gasConcentrations = gasConcentrationRepository.findAll(specification); + return gasConcentrations; + } } -- Gitblit v1.9.2