From cf42a18aba4da77141dd0ea65918444636f899e1 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Mon, 07 Dec 2020 10:50:12 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/main/resources/mapper/HistoryFiveMinutelyMapper.xml | 12 +++
src/main/java/com/moral/service/impl/HistoryFiveMinutelyServiceImpl.java | 6 +
src/main/java/com/moral/service/impl/PollutioSourcePointServiceImpl.java | 21 +++++
src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java | 1
src/main/resources/mapper/PollutionSourcePointMapper.xml | 16 ++++
src/main/java/com/moral/util/WindUtils.java | 88 ++++++++++++++++++++++
src/main/java/com/moral/entity/PollutionSourcePoint.java | 17 ++++
src/main/java/com/moral/service/HistoryFiveMinutelyService.java | 2
src/main/java/com/moral/util/EmissionDataUtil.java | 27 ++++++
src/main/java/com/moral/controller/ScreenController.java | 4
src/main/java/com/moral/service/PollutioSourcePointService.java | 7 +
src/main/java/com/moral/mapper/PollutionSourcPointMapper.java | 13 +++
12 files changed, 213 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java
index 4e37c00..65924e7 100644
--- a/src/main/java/com/moral/controller/ScreenController.java
+++ b/src/main/java/com/moral/controller/ScreenController.java
@@ -727,6 +727,7 @@
*/
/*������������start-------------------------------------------------------------------------*/
list.remove(0);
+ //if (list.size() == 23) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
//���������������������yyyy-MM-dd HH:mm:ss
@@ -744,9 +745,10 @@
datas.put("time",time1);
list.add(datas);
}
-
+ //}
/*������������end-------------------------------------------------------------------------*/
+
for (Map<String, Object> map : list) {
String time = map.get("time").toString();
time = time.substring(time.length() - 2);
diff --git a/src/main/java/com/moral/entity/PollutionSourcePoint.java b/src/main/java/com/moral/entity/PollutionSourcePoint.java
new file mode 100644
index 0000000..8a47d73
--- /dev/null
+++ b/src/main/java/com/moral/entity/PollutionSourcePoint.java
@@ -0,0 +1,17 @@
+package com.moral.entity;
+
+import lombok.Data;
+
+import javax.persistence.Id;
+
+@Data
+public class PollutionSourcePoint {
+ @Id
+ Integer id;
+
+ Integer monitorPointId;
+
+ Double longitude;
+
+ Double latitude;
+}
diff --git a/src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java b/src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java
index 438fb96..0aadbdd 100644
--- a/src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java
+++ b/src/main/java/com/moral/mapper/HistoryFiveMinutelyMapper.java
@@ -9,4 +9,5 @@
Map<String,Object> getFiveMinutesDataByMac(Map<String,Object> parameters);
+ List<Map<String,Object>> getFiveMinutesSersorDataByMacsAndTime(Map<String,Object> parameters);
}
diff --git a/src/main/java/com/moral/mapper/PollutionSourcPointMapper.java b/src/main/java/com/moral/mapper/PollutionSourcPointMapper.java
new file mode 100644
index 0000000..ba0851b
--- /dev/null
+++ b/src/main/java/com/moral/mapper/PollutionSourcPointMapper.java
@@ -0,0 +1,13 @@
+package com.moral.mapper;
+
+
+import com.moral.entity.DeviceAdjustValueTiming;
+import com.moral.entity.PollutionSourcePoint;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+public interface PollutionSourcPointMapper {
+ PollutionSourcePoint selectByMonitorPointId(@Param("monitorPointId") Integer monitorPointId);
+}
\ No newline at end of file
diff --git a/src/main/java/com/moral/service/HistoryFiveMinutelyService.java b/src/main/java/com/moral/service/HistoryFiveMinutelyService.java
index 0d3f3eb..21972b8 100644
--- a/src/main/java/com/moral/service/HistoryFiveMinutelyService.java
+++ b/src/main/java/com/moral/service/HistoryFiveMinutelyService.java
@@ -7,4 +7,6 @@
List<Map<String, Object>> getFiveMinutesDataByMacsAndTime(Map<String, Object> parameters);
Map<String,Object> getFiveMinutesDataByMac(Map<String, Object> parameters);
+
+ List<Map<String, Object>> getFiveMinutesSersorDataByMacsAndTime(Map<String,Object> parameters);
}
diff --git a/src/main/java/com/moral/service/PollutioSourcePointService.java b/src/main/java/com/moral/service/PollutioSourcePointService.java
new file mode 100644
index 0000000..5ee0ab1
--- /dev/null
+++ b/src/main/java/com/moral/service/PollutioSourcePointService.java
@@ -0,0 +1,7 @@
+package com.moral.service;
+
+import com.moral.entity.PollutionSourcePoint;
+
+public interface PollutioSourcePointService {
+ PollutionSourcePoint selectByMonitorPointId(Integer monitorPointId);
+}
diff --git a/src/main/java/com/moral/service/impl/HistoryFiveMinutelyServiceImpl.java b/src/main/java/com/moral/service/impl/HistoryFiveMinutelyServiceImpl.java
index 1a2e322..b2dc382 100644
--- a/src/main/java/com/moral/service/impl/HistoryFiveMinutelyServiceImpl.java
+++ b/src/main/java/com/moral/service/impl/HistoryFiveMinutelyServiceImpl.java
@@ -26,5 +26,11 @@
return historyFiveMinutelyMapper.getFiveMinutesDataByMac(parameters);
}
+ @Override
+ public List<Map<String, Object>> getFiveMinutesSersorDataByMacsAndTime(Map<String, Object> parameters) {
+ ValidateUtil.notNull(parameters,"���������������������������������");
+ return historyFiveMinutelyMapper.getFiveMinutesSersorDataByMacsAndTime(parameters);
+ }
+
}
diff --git a/src/main/java/com/moral/service/impl/PollutioSourcePointServiceImpl.java b/src/main/java/com/moral/service/impl/PollutioSourcePointServiceImpl.java
new file mode 100644
index 0000000..80121f2
--- /dev/null
+++ b/src/main/java/com/moral/service/impl/PollutioSourcePointServiceImpl.java
@@ -0,0 +1,21 @@
+package com.moral.service.impl;
+
+import com.moral.entity.PollutionSourcePoint;
+import com.moral.mapper.PollutionSourcPointMapper;
+import com.moral.service.PollutioSourcePointService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+
+@Service
+public class PollutioSourcePointServiceImpl implements PollutioSourcePointService {
+
+ @Resource
+ private PollutionSourcPointMapper pollutionSourcPointMapper;
+
+ @Override
+ public PollutionSourcePoint selectByMonitorPointId(Integer monitorPointId) {
+ PollutionSourcePoint result = pollutionSourcPointMapper.selectByMonitorPointId(monitorPointId);
+ return result;
+ }
+}
diff --git a/src/main/java/com/moral/util/EmissionDataUtil.java b/src/main/java/com/moral/util/EmissionDataUtil.java
new file mode 100644
index 0000000..5bec662
--- /dev/null
+++ b/src/main/java/com/moral/util/EmissionDataUtil.java
@@ -0,0 +1,27 @@
+package com.moral.util;
+
+public class EmissionDataUtil {
+
+ //���������������������������������c������������������������������x������������������������������������������������������������y���������������������������������������������������������������u������������
+ public static Double getPollutionSourceIntensity(Double c, Double x, Double y, Double u){
+ double e = 2.718281828;
+ double r1 = 0.281846;
+ double r2 = 0.127190;
+ double x1 = 0.914370;
+ double x2 = 0.964435;
+ double �� = Math.PI;
+ double diffusionCoefficient_y = r1*Math.pow(x,x1);//������������y
+ double diffusionCoefficient_z = r2*Math.pow(x,x2);//������������z
+ double molecule = c*2*��*u*diffusionCoefficient_y*diffusionCoefficient_z;
+ double power = -1/2*(Math.pow(y,2)/Math.pow(diffusionCoefficient_y,2));
+ double denominator = Math.pow(e,power);
+ double pollutionSourceIntensity = molecule/denominator;
+ return pollutionSourceIntensity;
+ }
+
+ public static void main(String[] args) {
+ double result = EmissionDataUtil.getPollutionSourceIntensity(100.0,10.0,5.0,3.0);
+ System.out.println(result);
+ }
+
+}
diff --git a/src/main/java/com/moral/util/WindUtils.java b/src/main/java/com/moral/util/WindUtils.java
new file mode 100644
index 0000000..01d7073
--- /dev/null
+++ b/src/main/java/com/moral/util/WindUtils.java
@@ -0,0 +1,88 @@
+package com.moral.util;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+public class WindUtils {
+
+ /**
+ *@Description: ������������������������������UV������
+ * @return: < com.moral.entity.Device>>
+ * @Author: lizijie
+ * @Date: 2020/12/03
+ *
+ * */
+ public static Map<String, Double> getWind_direction_speed(List<Map<String, Object>> list){
+ //������u������������������v���������������
+ double u = 0;
+ double v = 0;
+ for (Map map:list) {
+ double u1 = 0;
+ double v1 = 0;
+ double wind_speed = Double.parseDouble(map.get("wind_speed").toString());
+ double wind_direction = Double.parseDouble(map.get("wind_direction").toString());
+ if (wind_speed == 0){
+ continue;//���������������0������������������������������������������
+ }
+ if (wind_direction==0){
+ u1 = 0;
+ v1 = wind_speed*1;
+ }else if (0<wind_direction&&wind_direction<90){
+ u1 = wind_speed*Math.sin(wind_direction);
+ v1 = wind_speed*Math.cos(wind_direction);
+ }else if (wind_direction == 90){
+ u1 = wind_speed*1;
+ v1 = 0;
+ }else if (90<wind_direction&&wind_direction<180){
+ u1 = wind_speed*Math.sin(180-wind_direction);
+ v1 = -1*wind_speed*Math.cos(180-wind_direction);
+ }else if (wind_direction == 180){
+ u1 = 0;
+ v1 = wind_speed*-1;
+ }else if (180<wind_direction&&wind_direction<270){
+ u1 = -1*wind_speed*Math.sin(wind_direction-180);
+ v1 = -1*wind_speed*Math.cos(wind_direction-180);
+ }else if (wind_direction == 270){
+ u1 = wind_speed*-1;
+ v1 = 0;
+ }else if (270<wind_direction&&wind_direction<360){
+ u1 = wind_speed*Math.sin(360-wind_direction);
+ v1 = -1*wind_speed*Math.cos(360-wind_direction);
+ }
+ u = u+u1;
+ v = v+v1;
+ }
+ Map<String,Double> windDirectionSpeedMap = new HashMap<>();
+ if (u==0&&v==0){
+ windDirectionSpeedMap.put("wind_direction",0.0);
+ windDirectionSpeedMap.put("wind_speed",0.0);
+ }else if (u==0&&v>0){
+ windDirectionSpeedMap.put("wind_direction",0.0);
+ windDirectionSpeedMap.put("wind_speed",v);
+ }else if (u>0&&v>0){
+ windDirectionSpeedMap.put("wind_direction",Math.atan2(u,v));
+ windDirectionSpeedMap.put("wind_speed",Math.sqrt(u*u+v*v));
+ }else if (u>0&&v==0){
+ windDirectionSpeedMap.put("wind_direction",90.0);
+ windDirectionSpeedMap.put("wind_speed",u);
+ }else if (u>0&&v<0){
+ windDirectionSpeedMap.put("wind_direction",Math.atan2(-v,u)+90);
+ windDirectionSpeedMap.put("wind_speed",Math.sqrt(u*u+v*v));
+ }else if (u==0&&v<0){
+ windDirectionSpeedMap.put("wind_direction",180.0);
+ windDirectionSpeedMap.put("wind_speed",-v);
+ }else if (u<0&&v<0){
+ windDirectionSpeedMap.put("wind_direction",Math.atan2(-u,-v)+180);
+ windDirectionSpeedMap.put("wind_speed",Math.sqrt(u*u+v*v));
+ }else if (u<0&&v==0){
+ windDirectionSpeedMap.put("wind_direction",270.0);
+ windDirectionSpeedMap.put("wind_speed",-u);
+ }else if (u<0&&v>0){
+ windDirectionSpeedMap.put("wind_direction",Math.atan2(v,-u)+270);
+ windDirectionSpeedMap.put("wind_speed",Math.sqrt(u*u+v*v));
+ }
+ return windDirectionSpeedMap;
+ }
+
+}
diff --git a/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml b/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
index 3c8e2b7..642d314 100644
--- a/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
+++ b/src/main/resources/mapper/HistoryFiveMinutelyMapper.xml
@@ -20,4 +20,16 @@
where h.time = #{time}
and h.mac = #{mac}
</select>
+
+ <select id="getFiveMinutesSersorDataByMacsAndTime" resultType="map">
+ SELECT h.mac,h.time,
+ <foreach collection="sensorKeys" separator="," item="sensorKey">
+ json->'$.${sensorKey}' AS '${sensorKey}'
+ </foreach>
+ from history_five_minutely_${yearAndMonth} h
+ where time = #{time} and mac IN
+ <foreach collection="macs" separator="," open="(" close=")" item="mac">
+ #{mac}
+ </foreach>
+ </select>
</mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/PollutionSourcePointMapper.xml b/src/main/resources/mapper/PollutionSourcePointMapper.xml
new file mode 100644
index 0000000..66a8bd7
--- /dev/null
+++ b/src/main/resources/mapper/PollutionSourcePointMapper.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.moral.mapper.PollutionSourcPointMapper">
+ <resultMap id="BaseResultMap" type="com.moral.entity.PollutionSourcePoint" >
+ <id column="id" property="id" jdbcType="INTEGER" />
+ <result column="monitor_point_id" property="monitorPointId" jdbcType="INTEGER" />
+ <result column="longitude" property="longitude" jdbcType="NUMERIC" />
+ <result column="latitude" property="latitude" jdbcType="NUMERIC" />
+ </resultMap>
+
+ <select id="selectByMonitorPointId" resultType="com.moral.entity.PollutionSourcePoint" resultMap="BaseResultMap">
+ select * from pollution_source_point
+ where monitor_point_id = #{monitorPointId}
+ </select>
+
+</mapper>
\ No newline at end of file
--
Gitblit v1.8.0