From a3ff4d366c6654e5cd139f74a0104d7e9a9fa0c9 Mon Sep 17 00:00:00 2001
From: 于紫祥_1901 <email@yuzixiang_1910>
Date: Wed, 12 Aug 2020 15:55:36 +0800
Subject: [PATCH] 风场图update

---
 src/main/resources/mapper/HistoryDailyMapper.xml |  158 ++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 126 insertions(+), 32 deletions(-)

diff --git a/src/main/resources/mapper/HistoryDailyMapper.xml b/src/main/resources/mapper/HistoryDailyMapper.xml
index 549b64f..4d4fe67 100644
--- a/src/main/resources/mapper/HistoryDailyMapper.xml
+++ b/src/main/resources/mapper/HistoryDailyMapper.xml
@@ -1,36 +1,130 @@
 <?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.HistoryDailyMapper">
-	<select id="getEmissionsData" resultType="java.util.Map">
-		SELECT
-			SUM(hd.`json` ->'$.${sensorKey}[0]') AS '${sensorKey}',
-			vdi.mac,
-			mp.`name` 'name' 
-		FROM
-			history_daily hd,
-			view_device_info vdi,
-			monitor_point mp
-		<where>
-			hd.mac = vdi.mac
-			AND vdi.monitor_point_id = mp.id
-			AND vdi.device_tech = 1 
-			<if test="start != null">
-				AND hd.time >= #{start}
-			</if>
-			<if test="end != null">
-				AND hd.time &lt; #{end}
-			</if>
-			<if test="regionCode != null">
-				AND mp.${regionType}_code = #{regionCode}
-			</if>
-			<if test="orgIds != null and orgIds.size &gt; 0">
-				AND mp.organization_id IN
-				<foreach collection="orgIds" open="(" separator="," close=")"
-					item="listItem">
-					#{listItem}
-				</foreach>
-			</if>
-		</where>
-		GROUP BY mp.`name`, vdi.mac
-	</select>
+    <select id="getEmissionsData" resultType="java.util.Map">
+        SELECT
+        SUM(hd.`json` ->'$.${sensorKey}[0]') AS '${sensorKey}',
+        vdi.mac,
+        mp.`name` 'name'
+        FROM
+        history_daily hd,
+        view_device_info vdi,
+        monitor_point mp
+        <where>
+            hd.mac = vdi.mac
+            AND vdi.monitor_point_id = mp.id
+            AND vdi.device_tech = 1
+            <if test="monitorPointId != null">
+                AND mp.id = #{monitorPointId}
+            </if>
+            <if test="mac != null">
+                AND hd.mac = #{mac}
+            </if>
+            <if test="start != null">
+                AND hd.time >= #{start}
+            </if>
+            <if test="end != null">
+                AND hd.time &lt; #{end}
+            </if>
+            <if test="regionCode != null">
+                AND mp.${regionType}_code = #{regionCode}
+            </if>
+            <if test="orgIds != null and orgIds.size &gt; 0">
+                AND mp.organization_id IN
+                <foreach collection="orgIds" open="(" separator="," close=")"
+                         item="listItem">
+                    #{listItem}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY mp.`name`, vdi.mac
+    </select>
+
+
+    <select id="getOverproofData" resultType="java.util.Map">
+        SELECT
+        AVG( hd.`json` -> '$.${sensorKey}[0]' ) avg,
+        ( SELECT DISTINCT limit_val ->> '$.${sensorKey}' FROM view_device_density WHERE monitor_point_id =
+        vdd.monitor_point_id AND device_tech = vdd.device_tech ) `limit`,
+        ( SELECT mp.`name` FROM monitor_point mp WHERE mp.id = vdd.monitor_point_id ) `name`,
+        vdd.device_tech
+        FROM
+        history_daily hd,
+        view_device_density vdd,
+        (
+        SELECT
+        vdd.monitor_point_id
+        FROM
+        history_daily hd,
+        device vdd,
+        monitor_point mp
+        <where>
+            hd.mac = vdd.mac
+            AND mp.id = vdd.monitor_point_id
+            <if test="start != null">
+                AND hd.time >= #{start}
+            </if>
+            <if test="end != null">
+                AND hd.time &lt; #{end}
+            </if>
+            <if test="regionCode != null">
+                AND mp.${regionType}_code = #{regionCode}
+            </if>
+            <if test="orgIds != null and orgIds.size &gt; 0">
+                AND mp.organization_id IN
+                <foreach collection="orgIds" open="(" separator="," close=")"
+                         item="listItem">
+                    #{listItem}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+        vdd.mac,
+        vdd.monitor_point_id
+        HAVING
+        AVG( hd.`json` -> '$.${sensorKey}[0]' ) >= ( SELECT limit_val ->> '$.${sensorKey}' FROM view_device_density
+        WHERE mac = vdd.mac ) * (1 + #{overproofRatio} * 1)
+        <if test="overproofRatio != 0 and overproofRatio != 3">
+            AND AVG( hd.`json` -> '$.${sensorKey}[0]' ) &lt; ( SELECT limit_val ->> '$.${sensorKey}' FROM
+            view_device_density WHERE mac = vdd.mac ) * (2 + #{overproofRatio} * 1)
+        </if>
+        ) ta
+        <where>
+            hd.mac = vdd.mac
+            AND vdd.monitor_point_id = ta.monitor_point_id
+            <if test="start != null">
+                AND hd.time >= #{start}
+            </if>
+            <if test="end != null">
+                AND hd.time &lt; #{end}
+            </if>
+        </where>
+        GROUP BY
+        vdd.monitor_point_id,
+        vdd.device_tech
+    </select>
+
+    <!-- ������������mac������������������������������������������������������ -->
+    <select id="getTraceabilityData" resultType="java.util.Map">
+        SELECT
+        json ->'$.${sensorKey}[0]' AS '${sensorKey}'
+        FROM
+        history_daily
+        <where>
+            <if test="mac!=null">
+                AND mac=#{mac}
+            </if>
+            <if test="time!=null">
+                AND time=#{time}
+            </if>
+        </where>
+    </select>
+
+    <!-- ������������mac������������������������������������������������������ -->
+    <select id="getDataByTimeSlot" resultType="java.util.Map">
+        SELECT *
+        FROM history_daily
+        where mac=#{mac}
+        AND time between #{startTime} and #{endTime}
+    </select>
 </mapper>
\ No newline at end of file

--
Gitblit v1.8.0