pom.xml
@@ -111,7 +111,7 @@ <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.58</version> <version>1.2.83</version> </dependency> <!-- 七牛云短信--> <dependency> src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasMonitorDataController.java
@@ -6,10 +6,7 @@ import com.gkhy.fourierSpecialGasMonitor.entity.query.GasAtmospherePageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasFluxPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.req.CreateGasCategoryReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasAtmosphereLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasFluxLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.*; import com.gkhy.fourierSpecialGasMonitor.service.MonitorDataService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -64,4 +61,17 @@ Result result = monitorDataService.gasAtmospherePage(pageQuery); return result; } // todo @PostMapping("/gasFlux/export") public Result gasFluxExport(@RequestBody GasFluxExportBO gasFluxExportBO){ Result result = monitorDataService.gasFluxExport(gasFluxExportBO); return result; } // todo @PostMapping("/gasConcentration/export") public Result gasConcentrationExport(@RequestBody GasConcentrationExportBO gasConcentrationExportBO){ Result result = monitorDataService.gasConcentrationExport(gasConcentrationExportBO); return result; } } src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasConcentrationExportBO.java
对比新文件 @@ -0,0 +1,29 @@ package com.gkhy.fourierSpecialGasMonitor.entity.req; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @Data public class GasConcentrationExportBO { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime startTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime endTime; // 0不查询,1查询 private Integer ch4; private Integer c2h6; private Integer c3H8; private Integer c4h101; private Integer h2s; private Integer c2h4; private Integer c4h102; private Integer position1; private Integer position2; private Integer position3; } src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasFluxExportBO.java
对比新文件 @@ -0,0 +1,33 @@ package com.gkhy.fourierSpecialGasMonitor.entity.req; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; @Data public class GasFluxExportBO { @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime startTime; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime endTime; // 0不查询,1查询 private Integer ch4; private Integer c2h6; private Integer c3H8; private Integer c4h101; private Integer h2s; private Integer c2h4; private Integer c4h102; private Integer areaId1; private Integer areaId2; private Integer areaId3; private Integer areaId4; private Integer areaId5; private Integer areaId6; } src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasConcentrationExportDTO.java
对比新文件 @@ -0,0 +1,54 @@ package com.gkhy.fourierSpecialGasMonitor.entity.resp; import lombok.Data; import javax.persistence.*; import java.time.LocalDateTime; @Data public class GasConcentrationExportDTO { private Long id; private String equipmentId; private LocalDateTime time; private LocalDateTime dataReceivingTime; private String position; private int type; private String lng; private String lat; private String angle; private Double temp; private Double humidity; private Double windSpeed; private int windDirection; private Double pressure; private String gasName01; private Double gasValue01; private String gasName02; private Double gasValue02; private String gasName03; private Double gasValue03; private String gasName04; private Double gasValue04; private String gasName05; private Double gasValue05; private String gasName06; private Double gasValue06; private String gasName07; private Double gasValue07; } src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasFluxExportDTO.java
对比新文件 @@ -0,0 +1,42 @@ package com.gkhy.fourierSpecialGasMonitor.entity.resp; import lombok.Data; import javax.persistence.*; import java.time.LocalDateTime; @Data public class GasFluxExportDTO { private Long id; private String equipmentId; private LocalDateTime time; private String areaId; private LocalDateTime dataReceivingTime; private int type; private Double windSpeed; private int windDirection; private String gasName01; private Double gasValue01; private String gasName02; private Double gasValue02; private String gasName03; private Double gasValue03; private String gasName04; private Double gasValue04; private String gasName05; private Double gasValue05; private String gasName06; private Double gasValue06; private String gasName07; private Double gasValue07; } src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasFluxRepository.java
@@ -1,15 +1,12 @@ package com.gkhy.fourierSpecialGasMonitor.repository; import com.gkhy.fourierSpecialGasMonitor.entity.GasConcentration; import com.gkhy.fourierSpecialGasMonitor.entity.GasFlux; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.JpaSpecificationExecutor; import org.springframework.stereotype.Repository; import javax.persistence.OrderBy; import java.time.LocalDateTime; import java.util.List; @Repository public interface GasFluxRepository extends JpaRepository<GasFlux,Long>,JpaSpecificationExecutor<GasFlux> { src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasConcentrationService.java
@@ -6,6 +6,7 @@ import com.gkhy.fourierSpecialGasMonitor.entity.GasWarnUser; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasAtmospherePageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasConcentrationExportBO; import org.springframework.data.domain.Page; import java.time.LocalDateTime; @@ -23,4 +24,6 @@ Page<GasConcentration> gasAtmospherePage(PageQuery<GasAtmospherePageQuery> pageQuery); List<GasConcentration> listDatabyTimeSlotAndPosition(LocalDateTime startTime, LocalDateTime endTime, Integer position); List<GasConcentration> gasConcentrationExport(GasConcentrationExportBO gasConcentrationExportBO); } src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasFluxService.java
@@ -8,6 +8,7 @@ import com.gkhy.fourierSpecialGasMonitor.entity.GasFlux; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasFluxPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.req.CreateGasCategoryReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasFluxExportBO; import com.gkhy.fourierSpecialGasMonitor.entity.req.UpdateGasCategoryReqDTO; import org.springframework.data.domain.Page; @@ -29,4 +30,5 @@ List<GasFlux> listYesterdayTenAmToSixPm(); List<GasFlux> gasFluxExport(GasFluxExportBO gasFluxExportBO); } src/main/java/com/gkhy/fourierSpecialGasMonitor/service/MonitorDataService.java
@@ -5,9 +5,7 @@ import com.gkhy.fourierSpecialGasMonitor.entity.query.GasAtmospherePageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasFluxPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasAtmosphereLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasFluxLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.*; /** * @author Mr.huang @@ -27,4 +25,7 @@ Result gasAtmospherePage(PageQuery<GasAtmospherePageQuery> pageQuery); Result gasFluxExport(GasFluxExportBO gasFluxExportBO); Result gasConcentrationExport(GasConcentrationExportBO gasConcentrationExportBO); } 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; } } 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; } } src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/MonitorDataServiceImpl.java
@@ -5,16 +5,18 @@ import com.gkhy.fourierSpecialGasMonitor.commons.enums.ResultCode; import com.gkhy.fourierSpecialGasMonitor.commons.exception.BusinessException; import com.gkhy.fourierSpecialGasMonitor.commons.model.PageQuery; import com.gkhy.fourierSpecialGasMonitor.commons.utils.BeanCopyUtils; import com.gkhy.fourierSpecialGasMonitor.entity.*; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasAtmospherePageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasFluxPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.query.GasPageQuery; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasAtmosphereLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasFluxLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.GasLineChartReqDTO; import com.gkhy.fourierSpecialGasMonitor.entity.req.*; import com.gkhy.fourierSpecialGasMonitor.entity.resp.*; import com.gkhy.fourierSpecialGasMonitor.service.*; import com.gkhy.fourierSpecialGasMonitor.utils.AreaHandle; import com.gkhy.fourierSpecialGasMonitor.utils.PositionHandle; import io.micrometer.core.instrument.util.StringUtils; import jodd.bean.BeanCopy; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -26,6 +28,7 @@ import java.lang.reflect.Field; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -372,4 +375,109 @@ searchResult.setData(respDTOS); return searchResult; } @Override public Result gasFluxExport(GasFluxExportBO gasFluxExportBO) { Result<List<GasFluxExportDTO>> result = new Result<>(); List<GasFlux> gasFluxes = gasFluxService.gasFluxExport(gasFluxExportBO); List<GasFluxExportDTO> exportLists = new ArrayList<>(); AreaHandle areaHandle = new AreaHandle(); for (GasFlux gasFlux : gasFluxes) { GasFluxExportDTO gasFluxExportDTO = BeanCopyUtils.copyBean(gasFlux, GasFluxExportDTO.class); gasFluxExportDTO.setGasName01("甲烷CH4"); gasFluxExportDTO.setGasName02("乙烷C2H6"); gasFluxExportDTO.setGasName03("丙烷C3H8"); gasFluxExportDTO.setGasName04("丁烷C4H10"); gasFluxExportDTO.setGasName05("硫化氢H2S"); gasFluxExportDTO.setGasName06("乙烯C2H4"); gasFluxExportDTO.setGasName07("异丁烷C4H10"); gasFluxExportDTO.setAreaId(areaHandle.areaHandleMethod(gasFlux.getAreaId())); if (gasFluxExportBO.getCh4() == 0){ gasFluxExportDTO.setGasValue01(null); } if (gasFluxExportBO.getC2h6() == 0){ gasFluxExportDTO.setGasValue02(null); } if (gasFluxExportBO.getC3H8() == 0){ gasFluxExportDTO.setGasValue03(null); } if (gasFluxExportBO.getC4h101() == 0){ gasFluxExportDTO.setGasValue04(null); } if (gasFluxExportBO.getH2s() == 0){ gasFluxExportDTO.setGasValue05(null); } if (gasFluxExportBO.getC2h4() == 0){ gasFluxExportDTO.setGasValue06(null); } if (gasFluxExportBO.getC4h102() == 0){ gasFluxExportDTO.setGasValue07(null); } exportLists.add(gasFluxExportDTO); } //sql根据时间查所有,业务中处理数据项 result.setData(exportLists); result.setCode(200); result.setCount(exportLists.size()); result.setMsg("通量数据导出成功"); return result; } @Override public Result gasConcentrationExport(GasConcentrationExportBO gasConcentrationExportBO) { Result<List<GasConcentrationExportDTO>> result = new Result<>(); List<GasConcentration> gasConcentrationList = gasConcentrationService.gasConcentrationExport(gasConcentrationExportBO); List<GasConcentrationExportDTO> exportLists = new ArrayList<>(); PositionHandle positionHandle = new PositionHandle(); for (GasConcentration gasConcentration : gasConcentrationList) { GasConcentrationExportDTO gasConcentrationExportDTO = BeanCopyUtils.copyBean(gasConcentration, GasConcentrationExportDTO.class); gasConcentrationExportDTO.setPosition(positionHandle.positionHandleMethod(gasConcentration.getPosition())); gasConcentrationExportDTO.setGasName01("甲烷CH4"); gasConcentrationExportDTO.setGasName02("乙烷C2H6"); gasConcentrationExportDTO.setGasName03("丙烷C3H8"); gasConcentrationExportDTO.setGasName04("丁烷C4H10"); gasConcentrationExportDTO.setGasName05("硫化氢H2S"); gasConcentrationExportDTO.setGasName06("乙烯C2H4"); gasConcentrationExportDTO.setGasName07("异丁烷C4H10"); if (gasConcentrationExportBO.getCh4() == 0){ gasConcentrationExportDTO.setGasValue01(null); } if (gasConcentrationExportBO.getC2h6() == 0){ gasConcentrationExportDTO.setGasValue02(null); } if (gasConcentrationExportBO.getC3H8() == 0){ gasConcentrationExportDTO.setGasValue03(null); } if (gasConcentrationExportBO.getC4h101() == 0){ gasConcentrationExportDTO.setGasValue04(null); } if (gasConcentrationExportBO.getH2s() == 0){ gasConcentrationExportDTO.setGasValue05(null); } if (gasConcentrationExportBO.getC2h4() == 0){ gasConcentrationExportDTO.setGasValue06(null); } if (gasConcentrationExportBO.getC4h102() == 0){ gasConcentrationExportDTO.setGasValue07(null); } exportLists.add(gasConcentrationExportDTO); } //sql根据时间查所有,业务中处理数据项 result.setData(exportLists); result.setCode(200); result.setCount(exportLists.size()); result.setMsg("气体浓度数据导出成功"); return result; } } src/main/java/com/gkhy/fourierSpecialGasMonitor/utils/AreaHandle.java
对比新文件 @@ -0,0 +1,36 @@ package com.gkhy.fourierSpecialGasMonitor.utils; import org.springframework.stereotype.Component; @Component public class AreaHandle { public String areaHandleMethod(int areaId){ StringBuilder result = new StringBuilder(); if (areaId == 1){ result.append("区域1"); } if (areaId == 2){ result.append("区域2"); } if (areaId == 3){ result.append("区域3"); } if (areaId == 4){ result.append("区域4"); } if (areaId == 5){ result.append("区域5"); } if (areaId == 6){ result.append("区域6"); } if (areaId == 7){ result.append("区域7"); } return result.toString(); } } src/main/java/com/gkhy/fourierSpecialGasMonitor/utils/PositionHandle.java
对比新文件 @@ -0,0 +1,24 @@ package com.gkhy.fourierSpecialGasMonitor.utils; import org.springframework.stereotype.Component; @Component public class PositionHandle { public String positionHandleMethod(Integer position){ StringBuilder result = new StringBuilder(); if (position == 1){ result.append("点位1"); } if (position == 2){ result.append("点位2"); } if (position == 3){ result.append("点位3"); } return result.toString(); } }