From ca9f3dd541747f4b8bb6a6c06f7635a962da0412 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 07 Apr 2021 23:47:43 +0800
Subject: [PATCH] 预警数量统计接口修改,mybatis 使用sql 变量问题解决

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java                   |    7 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml                       |   20 ++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java                      |    9 +++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml             |   20 ++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java            |    9 +++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java              |   11 +--
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java            |    9 +++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java |   19 ++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java           |   18 ++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java          |    7 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.xml             |   20 ++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/IhealthcodeService.java         |    7 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java |   24 +++++++
 13 files changed, 172 insertions(+), 8 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java
index f2d3f12..8852614 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java
@@ -396,17 +396,17 @@
 		if (null!=conditionVo){
 			//获取时间集合数据
 			times = DateUtils.getTimeOverOneDate(conditionVo.getStartTime(), conditionVo.getEndTime());
-			//1.统计时间段内一键求助警情数量数据    3-20 修改展示紧急求助
-			Map<String, Object> alarmData = alarmService.selectAlarmData();
+			//1.统计时间段内一键求助警情数量数据    4-7 修改展示紧急求助
+			Map<String, Object> alarmData = alarmService.selectAlarmTimeData(conditionVo);
 			alarmData.put("name", "一键求助");
 			//2.统计时间段内违禁品的数量数据
 			Map<String, Object> parcelData = parcelService.selectParcelData(conditionVo);
 			parcelData.put("name", "违禁品");
 			//3.统计时间段内红色健康码人数数量数据
-			Map<String, Object> healthcodeData = ihealthcodeService.selectHealthcodeData();
+			Map<String, Object> healthcodeData = ihealthcodeService.selectHealthcodeTimeData(conditionVo);
 			healthcodeData.put("name", "红色健康码");
 			//4.统计时间段内体温异常人数数量数据
-			Map<String, Object> animalData = animalHeatService.selectAnimalData();
+			Map<String, Object> animalData = animalHeatService.selectAnimalTimeData(conditionVo);
 			animalData.put("name", "体温异常");
 			//封装数据
 			dataList.add(alarmData);
@@ -587,8 +587,7 @@
 			List<Integer> alarmTimeDis = alarmService.selAlarmTimeDis(conditionVo);
 			//查询当前时间段区间时间违禁品个数
 			List<Integer> parcelTimeDis = parcelService.selParcelTimeDis(conditionVo);
-
-			//查询当前时间段区间时间红色健康码个数
+ 			//查询当前时间段区间时间红色健康码个数
 			List<Integer> healthcodeTimeDis = ihealthcodeService.selHealthcodeTimeDis(conditionVo);
 			//查询当前时间段区间时间体温异常次数
 			List<Integer> animalTimeDis = animalHeatService.selAnimalTimeDis(conditionVo);
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java
index d6fd45e..908bc07 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.jfpt.alarm.mapper;
 
+import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
@@ -98,4 +99,12 @@
 	 * @return
 	 */
 	List<Alarm> selectAlarmList(@Param("conditionVo")ConditionVo conditionVo);
+
+	/**
+	 * 统计时间段内一键求助警情数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	@SqlParser(filter = true)
+	List<Integer> selectAlarmTimeData(@Param("conditionVo")ConditionVo conditionVo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml
index 7d50353..c13c9d9 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml
@@ -474,4 +474,24 @@
         where waringType='紧急求救'
         and alarmTime between #{conditionVo.startTime} and #{conditionVo.endTime}
     </select>
+
+    <!--统计时间段内一键求助警情数量数据-->
+    <select id="selectAlarmTimeData" resultType="java.lang.Integer">
+        select ifnull(count,0) count from
+        (
+            SELECT @date := DATE_ADD( @date, INTERVAL + 1 DAY ) days FROM
+            (
+                SELECT @date := DATE_ADD( #{conditionVo.startTime}, INTERVAL - 1 DAY ) FROM sys_date
+            ) time
+                WHERE to_days( @date ) &lt; to_days( #{conditionVo.endTime} )
+        ) a
+        left join
+        (
+            select DATE_FORMAT(alarmTime,'%Y-%m-%d') as datetime, count(*) as count from sys_alarm
+            where waringType = '紧急求救'
+            group by DATE_FORMAT(alarmTime,'%Y-%m-%d')
+        ) b
+        on
+        a.days = b.datetime
+    </select>
 </mapper>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java
index 2d1c49c..ca5b64b 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java
@@ -104,4 +104,11 @@
 	 * @return
 	 */
 	List<Integer> selAlarmTimeDis(ConditionVo conditionVo);
+
+	/**
+	 * 统计时间段内一键求助警情数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	Map<String, Object> selectAlarmTimeData(ConditionVo conditionVo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java
index d7d9e37..5859a5f 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java
@@ -347,4 +347,22 @@
 		}
 		return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0);
 	}
+
+	/**
+	 * 统计时间段内一键求助警情数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> selectAlarmTimeData(ConditionVo conditionVo) {
+		conditionVo.setStartTime(conditionVo.getStartTime().substring(0,10));
+		conditionVo.setEndTime(conditionVo.getEndTime().substring(0,10));
+		Map<String, Object> map = new HashMap<>();
+		//查询数据
+		List<Integer> list = baseMapper.selectAlarmTimeData(conditionVo);
+		//封装数据
+		map.put("alarmData",list);
+		//返回数据
+		return map;
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java
index 4322ec3..fcc4a02 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java
@@ -1,5 +1,6 @@
 package org.springblade.jfpt.animalheat.mapper;
 
+import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
@@ -67,4 +68,12 @@
 	 * @return
 	 */
     List<BladeAnimalHeat> selAnimalTimeData(@Param("conditionVo")ConditionVo conditionVo);
+
+	/**
+	 * 统计时间段内体温异常人数数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	@SqlParser(filter = true)
+    List<Integer> selectAnimalTimeData(@Param("conditionVo")ConditionVo conditionVo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
index 869e1af..f871bc3 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
@@ -134,4 +134,24 @@
             where status=1
         and create_time between #{conditionVo.startTime} and #{conditionVo.endTime}
     </select>
+
+    <!--统计时间段内体温异常人数数量数据-->
+    <select id="selectAnimalTimeData" resultType="java.lang.Integer">
+        select ifnull(count,0) count from
+        (
+            SELECT @date := DATE_ADD( @date, INTERVAL + 1 DAY ) days FROM
+            (
+                SELECT @date := DATE_ADD( #{conditionVo.startTime}, INTERVAL - 1 DAY ) FROM sys_date
+            ) time
+            WHERE to_days( @date ) &lt; to_days( #{conditionVo.endTime} )
+        ) a
+        left join
+        (
+            select DATE_FORMAT(create_time,'%Y-%m-%d') as datetime, count(*) as count from blade_animal_heat
+            where status=1
+            group by DATE_FORMAT(create_time,'%Y-%m-%d')
+        ) b
+        on
+        a.days = b.datetime
+    </select>
 </mapper>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java
index 05beba9..4c35b60 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/AnimalHeatService.java
@@ -60,4 +60,11 @@
 	 * @return
 	 */
     List<Integer> selAnimalTimeDis(ConditionVo conditionVo);
+
+	/**
+	 * 统计时间段内体温异常人数数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	Map<String, Object> selectAnimalTimeData(ConditionVo conditionVo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java
index 3c96851..f2134fe 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java
@@ -202,7 +202,8 @@
 		//遍历集合
 		for (BladeAnimalHeat animalHeat:collect) {
 			try {
-				long hours = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(animalHeat.getCreateTime().toString()).getHours();
+				System.out.println("animalHeat.getCreateTime() = " + animalHeat.getCreateTime());
+				long hours = animalHeat.getCreateTime().getHours();
 				if (hours>0 && hours< AlarmTimeConstant.TWO){
 					count02+=1;
 				}
@@ -239,7 +240,7 @@
 				if (hours>=AlarmTimeConstant.TWENTY_TWO && hours<AlarmTimeConstant.TWENTY_FOUR){
 					count2224+=1;
 				}
-			} catch (ParseException e) {
+			} catch (Exception e) {
 				e.printStackTrace();
 			}
 		}
@@ -259,4 +260,23 @@
 		//返回数据
 		return list;
 	}
+
+	/**
+	 * 统计时间段内体温异常人数数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> selectAnimalTimeData(ConditionVo conditionVo) {
+		conditionVo.setStartTime(conditionVo.getStartTime().substring(0,10));
+		conditionVo.setEndTime(conditionVo.getEndTime().substring(0,10));
+		//创建map对象
+		Map<String, Object> map = new HashMap<>();
+		//查询统计数据
+		List<Integer> list = baseMapper.selectAnimalTimeData(conditionVo);
+		//封装数据
+		map.put("animalData",list);
+		//返回数据
+		return map;
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java
index f456ed4..97df574 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java
@@ -16,6 +16,7 @@
  */
 package org.springblade.jfpt.healthcode.mapper;
 
+import com.baomidou.mybatisplus.annotation.SqlParser;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
@@ -63,4 +64,12 @@
 	 * @return
 	 */
     List<Healthcode> selRedCodeTimeData(@Param("conditionVo")ConditionVo conditionVo);
+
+	/**
+	 * 统计时间段内红色健康码人数数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	@SqlParser(filter = true)
+    List<Integer> selectHealthcodeTimeData(@Param("conditionVo")ConditionVo conditionVo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.xml
index 3225b9b..fa65340 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.xml
@@ -168,4 +168,24 @@
             where type =3
         and dtime between #{conditionVo.startTime} and #{conditionVo.endTime}
     </select>
+
+    <!--统计时间段内红色健康码人数数量数据-->
+    <select id="selectHealthcodeTimeData" resultType="java.lang.Integer">
+        select ifnull(count,0) count from
+        (
+            SELECT @date := DATE_ADD( @date, INTERVAL + 1 DAY ) days FROM
+            (
+                SELECT @date := DATE_ADD( #{conditionVo.startTime}, INTERVAL - 1 DAY ) FROM sys_date
+            ) time
+            WHERE to_days( @date ) &lt; to_days( #{conditionVo.endTime} )
+        ) a
+        left join
+        (
+            select DATE_FORMAT(dtime,'%Y-%m-%d') as datetime, count(*) as count from healthcode
+            where type=3
+            group by DATE_FORMAT(dtime,'%Y-%m-%d')
+        ) b
+        on
+        a.days = b.datetime
+    </select>
 </mapper>
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/IhealthcodeService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/IhealthcodeService.java
index 47b22a4..3b2d04f 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/IhealthcodeService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/IhealthcodeService.java
@@ -63,4 +63,11 @@
 	 * @return
 	 */
 	List<Integer> selHealthcodeTimeDis(ConditionVo conditionVo);
+
+	/**
+	 * 统计时间段内红色健康码人数数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	Map<String, Object> selectHealthcodeTimeData(ConditionVo conditionVo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java
index 635c4e0..a3e8fbd 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java
@@ -184,4 +184,23 @@
 		//返回数据
 		return list;
 	}
+
+	/**
+	 * 统计时间段内红色健康码人数数量数据
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> selectHealthcodeTimeData(ConditionVo conditionVo) {
+		conditionVo.setStartTime(conditionVo.getStartTime().substring(0,10));
+		conditionVo.setEndTime(conditionVo.getEndTime().substring(0,10));
+		//创建map对象
+		Map<String, Object> map = new HashMap<>();
+		//查询统计数据
+		List<Integer> list = baseMapper.selectHealthcodeTimeData(conditionVo);
+		//封装数据
+		map.put("healthcodeData",list);
+		//返回数据
+		return map;
+	}
 }

--
Gitblit v1.9.3