From 4e6ba796be67ccbefb8e0f8f61bbfa12d8e0df6d Mon Sep 17 00:00:00 2001 From: huangzhen <867217663@qq.com> Date: 星期四, 04 一月 2024 09:53:51 +0800 Subject: [PATCH] 新增功能 --- src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DeviceExceptionLogServiceImpl.java | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 48 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DeviceExceptionLogServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DeviceExceptionLogServiceImpl.java index 6be49cc..0acbeb4 100644 --- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DeviceExceptionLogServiceImpl.java +++ b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/DeviceExceptionLogServiceImpl.java @@ -1,10 +1,32 @@ package com.gkhy.fourierSpecialGasMonitor.service.impl; +import com.gkhy.fourierSpecialGasMonitor.commons.domain.Result; +import com.gkhy.fourierSpecialGasMonitor.commons.domain.SearchResult; +import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.DeviceExceptionLog; +import com.gkhy.fourierSpecialGasMonitor.entity.GasConcentration; +import com.gkhy.fourierSpecialGasMonitor.entity.query.DeviceExcLogPageQuery; +import com.gkhy.fourierSpecialGasMonitor.entity.query.GasPageQuery; +import com.gkhy.fourierSpecialGasMonitor.entity.resp.GasPageRespDTO; import com.gkhy.fourierSpecialGasMonitor.repository.DeviceExceptionLogRepository; import com.gkhy.fourierSpecialGasMonitor.service.DeviceExceptionLogService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import javax.persistence.criteria.CriteriaBuilder; +import javax.persistence.criteria.CriteriaQuery; +import javax.persistence.criteria.Predicate; +import javax.persistence.criteria.Root; +import java.time.LocalDateTime; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * @author Mr.huang @@ -14,11 +36,36 @@ @Service public class DeviceExceptionLogServiceImpl implements DeviceExceptionLogService { - @Autowired + @Resource private DeviceExceptionLogRepository deviceExceptionLogRepository; @Override public DeviceExceptionLog save(DeviceExceptionLog log) { return deviceExceptionLogRepository.save(log); } + + @Override + public Result deviceExcLogPage(PageQuery<DeviceExcLogPageQuery> pageQuery) { + SearchResult<List<DeviceExceptionLog>> searchResult = new SearchResult<>(); + searchResult.setPageIndex(pageQuery.getPageIndex()); + searchResult.setPageSize(pageQuery.getPageSize()); + searchResult.setSuccess(); + Pageable pageable = PageRequest.of(pageQuery.getPageIndex()-1, pageQuery.getPageSize(), Sort.Direction.DESC, "time"); + Specification<DeviceExceptionLog> specification = new Specification<DeviceExceptionLog>() { + @Override + public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder criteriaBuilder) { + Set<Predicate> predicateList = new HashSet<>(); + DeviceExcLogPageQuery searchParams = pageQuery.getSearchParams(); + if (searchParams != null && searchParams.getStartTime() != null && searchParams.getEndTime() != null){ + predicateList.add(criteriaBuilder.between(root.get("time").as(LocalDateTime.class),searchParams.getStartTime(),searchParams.getEndTime())); + } + return criteriaBuilder.and(predicateList.toArray(new Predicate[predicateList.size()])); + } + }; + Page<DeviceExceptionLog> pageResult = deviceExceptionLogRepository.findAll(specification,pageable); + searchResult.setTotal(pageResult.getTotalElements()); + searchResult.setPages(pageResult.getTotalPages()); + searchResult.setData(pageResult.getContent()); + return searchResult; + } } \ No newline at end of file -- Gitblit v1.9.2