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/utils/AreaHandle.java                         |   36 ++++
 src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasFluxExportBO.java               |   33 ++++
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java          |   49 +++++
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/MonitorDataServiceImpl.java      |  114 +++++++++++++
 src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasConcentrationExportDTO.java    |   54 ++++++
 pom.xml                                                                                       |    2 
 src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasFluxExportDTO.java             |   42 +++++
 src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasMonitorDataController.java      |   18 +
 src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasFluxRepository.java             |    3 
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/MonitorDataService.java               |    7 
 src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasConcentrationExportBO.java      |   29 +++
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasConcentrationService.java          |    3 
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasConcentrationServiceImpl.java |   38 ++++
 src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasFluxService.java                   |    2 
 src/main/java/com/gkhy/fourierSpecialGasMonitor/utils/PositionHandle.java                     |   24 +++
 15 files changed, 437 insertions(+), 17 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2adaf2a..350b87e 100644
--- a/pom.xml
+++ b/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>
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasMonitorDataController.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasMonitorDataController.java
index d4b6511..d318878 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/controller/GasMonitorDataController.java
+++ b/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;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasConcentrationExportBO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasConcentrationExportBO.java
new file mode 100644
index 0000000..23bc9de
--- /dev/null
+++ b/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;
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasFluxExportBO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/req/GasFluxExportBO.java
new file mode 100644
index 0000000..369b40e
--- /dev/null
+++ b/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;
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasConcentrationExportDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasConcentrationExportDTO.java
new file mode 100644
index 0000000..787582e
--- /dev/null
+++ b/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;
+
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasFluxExportDTO.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/entity/resp/GasFluxExportDTO.java
new file mode 100644
index 0000000..498d4a9
--- /dev/null
+++ b/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;
+
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasFluxRepository.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasFluxRepository.java
index d9d32dd..926b67a 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/repository/GasFluxRepository.java
+++ b/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> {
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasConcentrationService.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasConcentrationService.java
index c3355fa..5b54be5 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasConcentrationService.java
+++ b/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);
 }
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasFluxService.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasFluxService.java
index 65436e8..5ef091b 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/GasFluxService.java
+++ b/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);
 }
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/MonitorDataService.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/MonitorDataService.java
index 50af6cb..a10c6d7 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/MonitorDataService.java
+++ b/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);
 }
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;
+    }
 }
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java
index a7b2426..90fb63b 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/GasFluxServiceImpl.java
+++ b/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;
+    }
 }
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/MonitorDataServiceImpl.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/MonitorDataServiceImpl.java
index 43db9ca..a5fe17d 100644
--- a/src/main/java/com/gkhy/fourierSpecialGasMonitor/service/impl/MonitorDataServiceImpl.java
+++ b/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;
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/utils/AreaHandle.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/utils/AreaHandle.java
new file mode 100644
index 0000000..1764962
--- /dev/null
+++ b/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();
+    }
+}
diff --git a/src/main/java/com/gkhy/fourierSpecialGasMonitor/utils/PositionHandle.java b/src/main/java/com/gkhy/fourierSpecialGasMonitor/utils/PositionHandle.java
new file mode 100644
index 0000000..f6fe9ec
--- /dev/null
+++ b/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();
+    }
+}

--
Gitblit v1.9.2