From e6cc379fbef57277568ee667ec07a508b3dcc479 Mon Sep 17 00:00:00 2001
From: feiyu02 <risaku@163.com>
Date: 星期四, 29 八月 2024 17:35:35 +0800
Subject: [PATCH] 1. 新增NO监测因子 2. 新增第三方数据接口数据获取相关模块
---
src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/CompanyServiceImpl.kt | 2
src/test/kotlin/com/flightfeather/uav/biz/dataprocess/DataProcessTest.kt | 2
src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt | 3 +
src/main/resources/mapper/MissionMapper.xml | 3 +
src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt | 2
src/main/kotlin/com/flightfeather/uav/lightshare/service/RealTimeDataService.kt | 5 ++
src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt | 2
src/main/kotlin/com/flightfeather/uav/domain/entity/Mission.java | 24 ++++++++++++
src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt | 4 +-
src/main/resources/generator/generatorConfig.xml | 4 +-
src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/EPWModelServiceImpl.kt | 2
src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt | 27 +++++--------
src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt | 11 +++++
src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/RealTimeDataServiceImpl.kt | 8 +++
14 files changed, 69 insertions(+), 30 deletions(-)
diff --git a/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt b/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt
index d7bd69b..d4d315c 100644
--- a/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt
+++ b/src/main/kotlin/com/flightfeather/uav/domain/entity/BaseRealTimeData.kt
@@ -111,20 +111,7 @@
add(AirData().apply { setData(FactorType.WIND_SPEED, windSpeed) })
add(AirData().apply { setData(FactorType.WIND_DIRECTION, windDirection) })
add(AirData().apply { setData(FactorType.HEIGHT, height) })
- }
- }
-
- fun getByFactorIndex(i: Int): Float? {
- return when (i) {
- 0 -> no2
- 1 -> co
- 2 -> h2s
- 3 -> so2
- 4 -> o3
- 5 -> pm25
- 6 -> pm10
- 7 -> voc
- else -> null
+ add(AirData().apply { setData(FactorType.NO, no) })
}
}
@@ -144,10 +131,11 @@
FactorType.LNG -> longitude?.toFloat()
FactorType.LAT -> latitude?.toFloat()
FactorType.VELOCITY -> velocity
-// FactorType.TIME -> noi
+// FactorType.TIME -> dataTime?.time?.toFloat()
FactorType.WIND_SPEED -> windSpeed
FactorType.WIND_DIRECTION -> windDirection
FactorType.HEIGHT -> height
+ FactorType.NO -> no
else -> null
}
}
@@ -162,7 +150,7 @@
//闄ら鍚戝鐨勫叾浠栧洜瀛愰噰鐢ㄧ畻鏈钩鍧囨硶姹傚彇鍧囧��
val tmpList = mutableListOf<AvgPair>()
- repeat(17) {
+ repeat(18) {
tmpList.add(AvgPair(0f, 0))
}
@@ -277,6 +265,12 @@
this.c++
}
}
+ tmpList[17].apply {
+ it.no?.let {
+ t += it
+ this.c++
+ }
+ }
}
return RealTimeDataGridMin().apply {
@@ -301,6 +295,7 @@
velocity = tmpList[14].avg()
windSpeed = tmpList[15].avg()
height = tmpList[16].avg()
+ no = tmpList[17].avg()
if (c != 0) {
val avgU = u / c
diff --git a/src/main/kotlin/com/flightfeather/uav/domain/entity/Mission.java b/src/main/kotlin/com/flightfeather/uav/domain/entity/Mission.java
index 1af716d..4272c58 100644
--- a/src/main/kotlin/com/flightfeather/uav/domain/entity/Mission.java
+++ b/src/main/kotlin/com/flightfeather/uav/domain/entity/Mission.java
@@ -24,6 +24,12 @@
private String districtName;
/**
+ * 鏁版嵁鏄惁宸茬粡鎷夊彇鍏ュ簱
+ */
+ @Column(name = "data_pulled")
+ private Boolean dataPulled;
+
+ /**
* @return mission_code
*/
public String getMissionCode() {
@@ -106,4 +112,22 @@
public void setDistrictName(String districtName) {
this.districtName = districtName == null ? null : districtName.trim();
}
+
+ /**
+ * 鑾峰彇鏁版嵁鏄惁宸茬粡鎷夊彇鍏ュ簱
+ *
+ * @return data_pulled - 鏁版嵁鏄惁宸茬粡鎷夊彇鍏ュ簱
+ */
+ public Boolean getDataPulled() {
+ return dataPulled;
+ }
+
+ /**
+ * 璁剧疆鏁版嵁鏄惁宸茬粡鎷夊彇鍏ュ簱
+ *
+ * @param dataPulled 鏁版嵁鏄惁宸茬粡鎷夊彇鍏ュ簱
+ */
+ public void setDataPulled(Boolean dataPulled) {
+ this.dataPulled = dataPulled;
+ }
}
\ 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 c9e7f16..af71e21 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,10 @@
interface RealTimeDataService {
- fun getSecondData(deviceCode: String?, startTime: String?, endTime: String?, type: Int?, page: Int?, perPage: Int?): BaseResponse<List<DataVo>>
+ fun getSecondData(
+ deviceType: String?, 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 fb8ca9d..2c3e172 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,7 +64,7 @@
var page = 1
var totalPage = -1
while (totalPage == -1 || page <= totalPage) {
- realTimeDataService.getSecondData(deviceCode, startTime, endTime, 0, page, 5000).apply {
+ realTimeDataService.getSecondData(null, deviceCode, startTime, endTime, 0, page, 5000).apply {
if (totalPage == -1) {
totalPage = head?.totalPage ?: 0
}
diff --git a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/EPWModelServiceImpl.kt b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/EPWModelServiceImpl.kt
index 494a8dc..0986058 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/EPWModelServiceImpl.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/service/impl/EPWModelServiceImpl.kt
@@ -47,7 +47,7 @@
var c = 0//椋庡悜鏁版嵁璁℃暟
var windDirection = .0 // 骞冲潎椋庡悜瑙掑害
while (totalPage == -1 || page <= totalPage) {
- realTimeDataService.getSecondData(deviceCode, startTime, endTime, 0, page, 5000).apply {
+ realTimeDataService.getSecondData(null, deviceCode, startTime, endTime, 0, page, 5000).apply {
if (totalPage == -1) {
totalPage = head?.totalPage ?: 0
}
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 057472d..4bf03aa 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
@@ -57,6 +57,7 @@
private val fileExchange = FileExchange()
override fun getSecondData(
+ deviceType: String?,
deviceCode: String?,
startTime: String?,
endTime: String?,
@@ -73,7 +74,12 @@
var pages = 0
val result = mutableListOf<DataVo>()
- when (UWDeviceType.getType(deviceCode)) {
+ val _deviceType = if (deviceType != null) {
+ UWDeviceType.fromValue(deviceType)
+ } else {
+ UWDeviceType.getType(deviceCode)
+ }
+ when (_deviceType) {
UWDeviceType.VEHICLE -> {
val pageInfo = PageHelper.startPage<RealTimeDataVehicle>(_page, _perPage)
realTimeDataVehicleMapper.selectByExample(Example(RealTimeDataVehicle::class.java).apply {
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 bdeb3b0..cc717f7 100644
--- a/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt
+++ b/src/main/kotlin/com/flightfeather/uav/lightshare/web/RealTimeDataController.kt
@@ -16,6 +16,7 @@
@GetMapping("/sec")
fun getSecondData(
+ @RequestParam(value = "deviceType", required = false) deviceType: String?,
@RequestParam(value = "deviceCode", required = false) deviceCode: String?,
@RequestParam(value = "startTime", required = false) startTime: String?,
@RequestParam(value = "endTime", required = false) endTime: String?,
@@ -23,7 +24,7 @@
required = false) type: Int?,
@RequestParam(value = "page", required = false) page: Int?,
@RequestParam(value = "perPage", required = false) perPage: Int?,
- ) = realTimeDataService.getSecondData(deviceCode, startTime, endTime, type, page, perPage)
+ ) = realTimeDataService.getSecondData(deviceType, deviceCode, startTime, endTime, type, page, perPage)
@GetMapping("/sec/next")
fun getNextData(
diff --git a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
index 5ae4e9f..9874aa7 100644
--- a/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
+++ b/src/main/kotlin/com/flightfeather/uav/socket/eunm/FactorType.kt
@@ -24,7 +24,8 @@
TIME(15, "TIME", 6),//鏃堕棿
WIND_SPEED(16, "WIND_SPEED", 3),
WIND_DIRECTION(17, "WIND_DIRECTION", 2),
- HEIGHT(18, "HEIGHT", 3);
+ HEIGHT(18, "HEIGHT", 3),
+ NO(19, "NO", 6);
companion object {
@@ -41,6 +42,7 @@
5 -> PM25
6 -> PM10
7 -> VOC
+ 19 -> NO
else -> null
}
@@ -63,6 +65,7 @@
WIND_SPEED.value -> WIND_SPEED
WIND_DIRECTION.value -> WIND_DIRECTION
HEIGHT.value -> HEIGHT
+ NO.value -> NO
else -> null
}
@@ -85,6 +88,7 @@
WIND_SPEED.des -> WIND_SPEED
WIND_DIRECTION.des -> WIND_DIRECTION
HEIGHT.des -> HEIGHT
+ NO.des -> NO
else -> null
}
@@ -99,6 +103,7 @@
* 鑾峰彇鐩戞祴鍥犲瓙鐨勫悎鐞嗚寖鍥�
*/
fun getRange(type: FactorType): Pair<Double, Double>? = when (type) {
+ NO -> Pair(0.1, 1000.0)
NO2 -> Pair(0.1, 1000.0)
CO -> Pair(1.0, 5000.0)
H2S -> Pair(0.1, 1000.0)
@@ -131,6 +136,7 @@
* 涓嶅鐞嗕綆浜庢鍊肩殑鍊�
*/
fun getVMax(type: FactorType): Double? = when (type) {
+ NO -> 1.0
NO2 -> 10.0
CO -> 100.0
H2S -> 10.0
@@ -152,6 +158,9 @@
else -> null
}
+ /**
+ * 鍥犲瓙杩炵画鏁版嵁涓婂崌鍚堢悊骞呭害锛堝�嶆暟锛�
+ */
fun getMultiplier(name: String?): Double {
getByName(name)?.let {
return getMultiplier(it)
diff --git a/src/main/resources/generator/generatorConfig.xml b/src/main/resources/generator/generatorConfig.xml
index 4bb181c..891447b 100644
--- a/src/main/resources/generator/generatorConfig.xml
+++ b/src/main/resources/generator/generatorConfig.xml
@@ -47,14 +47,14 @@
</javaClientGenerator>
<!-- 瑕佺敓鎴愮殑琛� tableName鏄暟鎹簱涓殑琛ㄥ悕鎴栬鍥惧悕 domainObjectName鏄疄浣撶被鍚�-->
<!-- <table tableName="air_real_time_data" domainObjectName="RealTimeData" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
-<!-- <table tableName="mission" domainObjectName="Mission" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
+ <table tableName="mission" domainObjectName="Mission" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
<!-- <table tableName="el_minutevalue" domainObjectName="ElectricMinuteValue" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="el_company_device" domainObjectName="CompanyDevice" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="co_complaint" domainObjectName="Complaint" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="co_assessment" domainObjectName="Assessment" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="real_time_data_grid" domainObjectName="RealTimeDataGrid" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="real_time_data_uav" domainObjectName="RealTimeDataUav" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
- <table tableName="real_time_data_vehicle" domainObjectName="RealTimeDataVehicle" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>
+<!-- <table tableName="real_time_data_vehicle" domainObjectName="RealTimeDataVehicle" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="device_info" domainObjectName="DeviceInfo" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="factor_calibration" domainObjectName="FactorCalibration" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
<!-- <table tableName="real_time_data_grid_min" domainObjectName="RealTimeDataGridMin" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"/>-->
diff --git a/src/main/resources/mapper/MissionMapper.xml b/src/main/resources/mapper/MissionMapper.xml
index eb104a7..31c198e 100644
--- a/src/main/resources/mapper/MissionMapper.xml
+++ b/src/main/resources/mapper/MissionMapper.xml
@@ -11,11 +11,12 @@
<result column="start_time" jdbcType="TIMESTAMP" property="startTime" />
<result column="end_time" jdbcType="TIMESTAMP" property="endTime" />
<result column="district_name" jdbcType="VARCHAR" property="districtName" />
+ <result column="data_pulled" jdbcType="BIT" property="dataPulled" />
</resultMap>
<sql id="Base_Column_List">
<!--
WARNING - @mbg.generated
-->
- mission_code, device_type, device_code, start_time, end_time, district_name
+ mission_code, device_type, device_code, start_time, end_time, district_name, data_pulled
</sql>
</mapper>
\ No newline at end of file
diff --git a/src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt b/src/test/kotlin/com/flightfeather/uav/UAVApplicationTests.kt
index 88b2b6b..1dd2ccf 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", 0, null, 10)
+ val r = realTimeDataService.getSecondData(null, 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/biz/dataprocess/DataProcessTest.kt b/src/test/kotlin/com/flightfeather/uav/biz/dataprocess/DataProcessTest.kt
index 43b578f..7b51ffb 100644
--- a/src/test/kotlin/com/flightfeather/uav/biz/dataprocess/DataProcessTest.kt
+++ b/src/test/kotlin/com/flightfeather/uav/biz/dataprocess/DataProcessTest.kt
@@ -45,7 +45,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, 0, 1, 30000).data
+ val data = realTimeDataService.getSecondData(null, 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 4cdb400..7e0b6f7 100644
--- a/src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt
+++ b/src/test/kotlin/com/flightfeather/uav/model/epw/EPWDataPrepTest.kt
@@ -70,7 +70,7 @@
var totalPage = -1
val dataList = mutableListOf<DataVo>()
while (totalPage == -1 || page <= totalPage) {
- realTimeDataService.getSecondData(deviceCode, it.first, it.second, 0, page, 50000).apply {
+ realTimeDataService.getSecondData(null, deviceCode, it.first, it.second, 0, page, 50000).apply {
if (totalPage == -1) {
totalPage = head?.totalPage ?: 0
}
@@ -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, 0, 1, 30000).data
+ val data = realTimeDataService.getSecondData(null, 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 f69e430..b76ffff 100644
--- a/src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt
+++ b/src/test/kotlin/com/flightfeather/uav/model/epw/EPWModelTest.kt
@@ -96,7 +96,7 @@
var page = 1
var totalPage = -1
while (totalPage == -1 || page <= totalPage) {
- realTimeDataService.getSecondData(deviceCode, it.first, it.second, page, 0, 10000).apply {
+ realTimeDataService.getSecondData(null, deviceCode, it.first, it.second, page, 0, 10000).apply {
if (totalPage == -1) {
totalPage = head?.totalPage ?: 0
}
--
Gitblit v1.9.3