From 1fa0e57df26dcbf9f7c936806b5f4f0744e1d543 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 15 十一月 2021 17:42:01 +0800
Subject: [PATCH] 1. 网格化数据查询添加秒级值和分钟值的选择

---
 src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt                       |    6 
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt      |    6 
 src/test/kotlin/com/flightfeather/uav/dataprocess/DataProcessTest.kt                     |    2 
 src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt           |    4 
 src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt                             |    2 
 src/main/kotlin/com/flightfeather/uav/lightshare/service/RealTimeDataService.kt          |    2 
 src/main/kotlin/com/flightfeather/uav/domain/entity/RealTimeDataGridMin.java             |  367 ---------------------------------------------
 src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt                          |    4 
 src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt |   26 ++
 src/main/kotlin/com/flightfeather/uav/domain/mapper/RealTimeDataGridMinMapper.kt         |    2 
 src/main/resources/application.yml                                                       |   12 
 11 files changed, 41 insertions(+), 392 deletions(-)

diff --git a/src/main/kotlin/com/flightfeather/uav/domain/entity/RealTimeDataGridMin.java b/src/main/kotlin/com/flightfeather/uav/domain/entity/RealTimeDataGridMin.java
index b5fcd00..b42834f 100644
--- a/src/main/kotlin/com/flightfeather/uav/domain/entity/RealTimeDataGridMin.java
+++ b/src/main/kotlin/com/flightfeather/uav/domain/entity/RealTimeDataGridMin.java
@@ -5,371 +5,6 @@
 import javax.persistence.*;
 
 @Table(name = "real_time_data_grid_min")
-public class RealTimeDataGridMin {
-    @Id
-    private Integer id;
-
-    @Column(name = "device_code")
-    private String deviceCode;
-
-    private BigDecimal latitude;
-
-    private BigDecimal longitude;
-
-    private Float altitude;
-
-    @Column(name = "data_time")
-    private Date dataTime;
-
-    @Column(name = "create_time")
-    private Date createTime;
-
-    @Column(name = "NO2")
-    private Float no2;
-
-    @Column(name = "CO")
-    private Float co;
-
-    @Column(name = "H2S")
-    private Float h2s;
-
-    @Column(name = "SO2")
-    private Float so2;
-
-    @Column(name = "O3")
-    private Float o3;
-
-    @Column(name = "PM25")
-    private Float pm25;
-
-    @Column(name = "PM10")
-    private Float pm10;
-
-    private Float temperature;
-
-    private Float humidity;
-
-    @Column(name = "VOC")
-    private Float voc;
-
-    @Column(name = "NOI")
-    private Float noi;
-
-    private Float velocity;
-
-    @Column(name = "wind_speed")
-    private Float windSpeed;
-
-    @Column(name = "wind_direction")
-    private Float windDirection;
-
-    private Float height;
-
-    /**
-     * @return id
-     */
-    public Integer getId() {
-        return id;
-    }
-
-    /**
-     * @param id
-     */
-    public void setId(Integer id) {
-        this.id = id;
-    }
-
-    /**
-     * @return device_code
-     */
-    public String getDeviceCode() {
-        return deviceCode;
-    }
-
-    /**
-     * @param deviceCode
-     */
-    public void setDeviceCode(String deviceCode) {
-        this.deviceCode = deviceCode == null ? null : deviceCode.trim();
-    }
-
-    /**
-     * @return latitude
-     */
-    public BigDecimal getLatitude() {
-        return latitude;
-    }
-
-    /**
-     * @param latitude
-     */
-    public void setLatitude(BigDecimal latitude) {
-        this.latitude = latitude;
-    }
-
-    /**
-     * @return longitude
-     */
-    public BigDecimal getLongitude() {
-        return longitude;
-    }
-
-    /**
-     * @param longitude
-     */
-    public void setLongitude(BigDecimal longitude) {
-        this.longitude = longitude;
-    }
-
-    /**
-     * @return altitude
-     */
-    public Float getAltitude() {
-        return altitude;
-    }
-
-    /**
-     * @param altitude
-     */
-    public void setAltitude(Float altitude) {
-        this.altitude = altitude;
-    }
-
-    /**
-     * @return data_time
-     */
-    public Date getDataTime() {
-        return dataTime;
-    }
-
-    /**
-     * @param dataTime
-     */
-    public void setDataTime(Date dataTime) {
-        this.dataTime = dataTime;
-    }
-
-    /**
-     * @return create_time
-     */
-    public Date getCreateTime() {
-        return createTime;
-    }
-
-    /**
-     * @param createTime
-     */
-    public void setCreateTime(Date createTime) {
-        this.createTime = createTime;
-    }
-
-    /**
-     * @return NO2
-     */
-    public Float getNo2() {
-        return no2;
-    }
-
-    /**
-     * @param no2
-     */
-    public void setNo2(Float no2) {
-        this.no2 = no2;
-    }
-
-    /**
-     * @return CO
-     */
-    public Float getCo() {
-        return co;
-    }
-
-    /**
-     * @param co
-     */
-    public void setCo(Float co) {
-        this.co = co;
-    }
-
-    /**
-     * @return H2S
-     */
-    public Float getH2s() {
-        return h2s;
-    }
-
-    /**
-     * @param h2s
-     */
-    public void setH2s(Float h2s) {
-        this.h2s = h2s;
-    }
-
-    /**
-     * @return SO2
-     */
-    public Float getSo2() {
-        return so2;
-    }
-
-    /**
-     * @param so2
-     */
-    public void setSo2(Float so2) {
-        this.so2 = so2;
-    }
-
-    /**
-     * @return O3
-     */
-    public Float getO3() {
-        return o3;
-    }
-
-    /**
-     * @param o3
-     */
-    public void setO3(Float o3) {
-        this.o3 = o3;
-    }
-
-    /**
-     * @return PM25
-     */
-    public Float getPm25() {
-        return pm25;
-    }
-
-    /**
-     * @param pm25
-     */
-    public void setPm25(Float pm25) {
-        this.pm25 = pm25;
-    }
-
-    /**
-     * @return PM10
-     */
-    public Float getPm10() {
-        return pm10;
-    }
-
-    /**
-     * @param pm10
-     */
-    public void setPm10(Float pm10) {
-        this.pm10 = pm10;
-    }
-
-    /**
-     * @return temperature
-     */
-    public Float getTemperature() {
-        return temperature;
-    }
-
-    /**
-     * @param temperature
-     */
-    public void setTemperature(Float temperature) {
-        this.temperature = temperature;
-    }
-
-    /**
-     * @return humidity
-     */
-    public Float getHumidity() {
-        return humidity;
-    }
-
-    /**
-     * @param humidity
-     */
-    public void setHumidity(Float humidity) {
-        this.humidity = humidity;
-    }
-
-    /**
-     * @return VOC
-     */
-    public Float getVoc() {
-        return voc;
-    }
-
-    /**
-     * @param voc
-     */
-    public void setVoc(Float voc) {
-        this.voc = voc;
-    }
-
-    /**
-     * @return NOI
-     */
-    public Float getNoi() {
-        return noi;
-    }
-
-    /**
-     * @param noi
-     */
-    public void setNoi(Float noi) {
-        this.noi = noi;
-    }
-
-    /**
-     * @return velocity
-     */
-    public Float getVelocity() {
-        return velocity;
-    }
-
-    /**
-     * @param velocity
-     */
-    public void setVelocity(Float velocity) {
-        this.velocity = velocity;
-    }
-
-    /**
-     * @return wind_speed
-     */
-    public Float getWindSpeed() {
-        return windSpeed;
-    }
-
-    /**
-     * @param windSpeed
-     */
-    public void setWindSpeed(Float windSpeed) {
-        this.windSpeed = windSpeed;
-    }
-
-    /**
-     * @return wind_direction
-     */
-    public Float getWindDirection() {
-        return windDirection;
-    }
-
-    /**
-     * @param windDirection
-     */
-    public void setWindDirection(Float windDirection) {
-        this.windDirection = windDirection;
-    }
-
-    /**
-     * @return height
-     */
-    public Float getHeight() {
-        return height;
-    }
+public class RealTimeDataGridMin extends BaseRealTimeData {
 
-    /**
-     * @param height
-     */
-    public void setHeight(Float height) {
-        this.height = height;
-    }
 }
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/domain/mapper/RealTimeDataGridMinMapper.kt b/src/main/kotlin/com/flightfeather/uav/domain/mapper/RealTimeDataGridMinMapper.kt
index b8b4e8e..7fd5497 100644
--- a/src/main/kotlin/com/flightfeather/uav/domain/mapper/RealTimeDataGridMinMapper.kt
+++ b/src/main/kotlin/com/flightfeather/uav/domain/mapper/RealTimeDataGridMinMapper.kt
@@ -5,4 +5,4 @@
 import org.apache.ibatis.annotations.Mapper
 
 @Mapper
-interface RealTimeDataGridMinMapper : MyMapper<RealTimeDataGridMin?>
\ No newline at end of file
+interface RealTimeDataGridMinMapper : MyMapper<RealTimeDataGridMin>
\ No newline at end of file
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/RealTimeDataService.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/RealTimeDataService.kt
index 0608e28..c7fb767 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/RealTimeDataService.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/RealTimeDataService.kt
@@ -10,7 +10,7 @@
 
 interface RealTimeDataService {
 
-    fun getSecondData(deviceCode: String?, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>>
+    fun getSecondData(deviceCode: String?, startTime: String?, endTime: String?, type: Int?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>>
 
     fun getNextData(deviceCode: String, updateTime: String, page: Int?, perPage: Int?): BaseResponse<List<DataVo>>
 
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt
index 5e5da20..fb8ca9d 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt
@@ -64,11 +64,11 @@
         var page = 1
         var totalPage = -1
         while (totalPage == -1 || page <= totalPage) {
-            realTimeDataService.getSecondData(deviceCode, startTime, endTime, page, 5000).apply {
+            realTimeDataService.getSecondData(deviceCode, startTime, endTime, 0, page, 5000).apply {
                 if (totalPage == -1) {
                     totalPage = head?.totalPage ?: 0
                 }
-                val dataList = data?: emptyList()
+                val dataList = data ?: emptyList()
 
                 // FIXME: 2021/7/13 姝ゅ涓轰簡娴嬭瘯鏆傛椂灏嗙珯鐐圭粡绾害鍐欐锛屽悗缁�氳繃鏁版嵁搴撻厤缃幏鍙� 
                 dataList.forEach {
@@ -77,7 +77,7 @@
                         it.lat = 30.835898
                     }
                 }
-                
+
                 epwModel.execute(dataList, companySOPList, true)
                 page++
             }
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt
index 0336692..48aff07 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt
@@ -40,7 +40,7 @@
     private var dateFormatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm")
     private val fileExchange = FileExchange()
 
-    override fun getSecondData(deviceCode: String?, startTime: String?, endTime: String?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>> {
+    override fun getSecondData(deviceCode: String?, startTime: String?, endTime: String?, type: Int?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>> {
         val _perPage = perPage ?: 60
         val _page = page ?: 1
         val sTime = startTime?.let { dateFormatter.parse(it) }
@@ -68,12 +68,24 @@
                 pages = pageInfo.pages
             }
             UWDeviceType.GRID -> {
-                val pageInfo = PageHelper.startPage<RealTimeDataGrid>(_page, _perPage)
-                realTimeDataGridMapper.selectByExample(Example(RealTimeDataGrid::class.java).apply {
-                    getSecondDataExample(this, deviceCode, sTime, eTime)
-                }).forEach { result.add(it.toDataVo()) }
-                pageNum = pageInfo.pageNum
-                pages = pageInfo.pages
+                // 缃戞牸鍖栫洃娴嬬绾у��
+                if (type == null || type == 0) {
+                    val pageInfo = PageHelper.startPage<RealTimeDataGrid>(_page, _perPage)
+                    realTimeDataGridMapper.selectByExample(Example(RealTimeDataGrid::class.java).apply {
+                        getSecondDataExample(this, deviceCode, sTime, eTime)
+                    }).forEach { result.add(it.toDataVo()) }
+                    pageNum = pageInfo.pageNum
+                    pages = pageInfo.pages
+                }
+                // 缃戞牸鍖栫洃娴嬪垎閽熷��
+                else if (type == 1) {
+                    val pageInfo = PageHelper.startPage<RealTimeDataGridMin>(_page, _perPage)
+                    realTimeDataGridMinMapper.selectByExample(Example(RealTimeDataGridMin::class.java).apply {
+                        getSecondDataExample(this, deviceCode, sTime, eTime)
+                    }).forEach { result.add(it.toDataVo()) }
+                    pageNum = pageInfo.pageNum
+                    pages = pageInfo.pages
+                }
             }
             else -> {
                 // 浠庡師濮嬫暟鎹〃涓幏鍙栨暟鎹�
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt
index cc05b83..def38ec 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt
@@ -2,6 +2,7 @@
 
 import com.flightfeather.uav.lightshare.service.RealTimeDataService
 import io.swagger.annotations.Api
+import io.swagger.annotations.ApiParam
 import org.springframework.web.bind.annotation.*
 import org.springframework.web.multipart.MultipartFile
 
@@ -15,9 +16,10 @@
         @RequestParam(value = "deviceCode", required = false) deviceCode: String?,
         @RequestParam(value = "startTime", required = false) startTime: String?,
         @RequestParam(value = "endTime", required = false) endTime: String?,
+        @ApiParam(value = "0: 绉掔骇鍊�; 1:鍒嗛挓鍊�", defaultValue = "0") @RequestParam(value = "type", required = false) type: Int?,
         @RequestParam(value = "page", required = false) page: Int?,
         @RequestParam(value = "perPage", required = false) perPage: Int?
-    ) = realTimeDataService.getSecondData(deviceCode, startTime, endTime, page, perPage)
+    ) = realTimeDataService.getSecondData(deviceCode, startTime, endTime, type, page, perPage)
 
     @GetMapping("/sec/next")
     fun getNextData(
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 1087cd6..e03ad45 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -7,9 +7,9 @@
 #    password: cn.FLIGHTFEATHER
 
 #    绾夸笂鏈嶅姟鍣�
-#    url: jdbc:mysql://localhost:3306/dronemonitor?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
-#    username: dronemonitor
-#    password: dronemonitor_hackxrnomxm
+    url: jdbc:mysql://localhost:3306/dronemonitor?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+    username: dronemonitor
+    password: dronemonitor_hackxrnomxm
 
 #    寮�鍙戞湰鍦版湇鍔″櫒
 #    url: jdbc:mysql://localhost:3306/dronemonitor?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
@@ -17,9 +17,9 @@
 #    password: 123456
 
 #   寮�鍙戣繙绋嬫湇鍔″櫒
-    url: jdbc:mysql://47.100.191.150:3306/dronemonitor?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
-    username: remoteU1
-    password: eSoF8DnzfGTlhAjE
+#    url: jdbc:mysql://47.100.191.150:3306/dronemonitor?serverTimezone=Asia/Shanghai&prepStmtCacheSize=517&cachePrepStmts=true&autoReconnect=true&characterEncoding=utf-8&allowMultiQueries=true&useSSL=false
+#    username: remoteU1
+#    password: eSoF8DnzfGTlhAjE
     hikari:
       maximum-pool-size: 500
       minimum-idle: 20
diff --git a/src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt b/src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt
index 6bc811e..88b2b6b 100644
--- a/src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt
+++ b/src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt
@@ -36,7 +36,7 @@
 
     @Test
     fun foo2() {
-        val r = realTimeDataService.getSecondData(null, "2021-01-13 14:30:00", "2021-01-13 14:45:00", null, 10)
+        val r = realTimeDataService.getSecondData(null, "2021-01-13 14:30:00", "2021-01-13 14:45:00", 0, null, 10)
         println(r)
     }
 
diff --git a/src/test/kotlin/com/flightfeather/uav/dataprocess/DataProcessTest.kt b/src/test/kotlin/com/flightfeather/uav/dataprocess/DataProcessTest.kt
index bea0d39..2fd77b6 100644
--- a/src/test/kotlin/com/flightfeather/uav/dataprocess/DataProcessTest.kt
+++ b/src/test/kotlin/com/flightfeather/uav/dataprocess/DataProcessTest.kt
@@ -53,7 +53,7 @@
             val dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
             val s = sTime.format(dateFormatter)
             val e = eTime.format(dateFormatter)
-            val data = realTimeDataService.getSecondData(deviceCode, s, e, 1, 30000).data
+            val data = realTimeDataService.getSecondData(deviceCode, s, e, 0, 1, 30000).data
             data?.let {
                 process.process(it)
             }
diff --git a/src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt b/src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt
index 5b8301e..69db2a2 100644
--- a/src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt
+++ b/src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt
@@ -70,12 +70,12 @@
             var totalPage = -1
             val dataList = mutableListOf<DataVo>()
             while (totalPage == -1 || page <= totalPage) {
-                realTimeDataService.getSecondData(deviceCode, it.first, it.second, page, 50000).apply {
+                realTimeDataService.getSecondData(deviceCode, it.first, it.second, 0, page, 50000).apply {
                     if (totalPage == -1) {
                         totalPage = head?.totalPage ?: 0
                     }
 
-                    val list = data?: emptyList()
+                    val list = data ?: emptyList()
 
                     val prepList = prep.mDataPrep(list)
 
@@ -128,7 +128,7 @@
             val dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
             val s = sTime.format(dateFormatter)
             val e = eTime.format(dateFormatter)
-            val data = realTimeDataService.getSecondData(deviceCode, s, e, 1, 30000).data
+            val data = realTimeDataService.getSecondData(deviceCode, s, e, 0, 1, 30000).data
 
             data?.let {
                 val dataList = ePWDataPrep.mDataPrep(it)
diff --git a/src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt b/src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt
index 261b525..f69e430 100644
--- a/src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt
+++ b/src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt
@@ -96,12 +96,12 @@
             var page = 1
             var totalPage = -1
             while (totalPage == -1 || page <= totalPage) {
-                realTimeDataService.getSecondData(deviceCode, it.first, it.second, page, 10000).apply {
+                realTimeDataService.getSecondData(deviceCode, it.first, it.second, page, 0, 10000).apply {
                     if (totalPage == -1) {
                         totalPage = head?.totalPage ?: 0
                     }
 
-                    val dataList = data?: emptyList()
+                    val dataList = data ?: emptyList()
 
                     dataList.forEach {
                         if (it.lng == 0.0 && it.lat == 0.0) {

--
Gitblit v1.9.3