| | |
| | | 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; |
| | |
| | | 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; |
| | |
| | | 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 { |
| | |
| | | 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; |
| | | } |
| | | } |