From abbaf2374fff7d02ecc3eecd6bf62504fbf27c4b Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Tue, 06 Apr 2021 22:33:25 +0800
Subject: [PATCH] 预警数量统计接口修改,预警数量分布接口修改,预警分类占比接口新增

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java |   74 ++++++++++++++++++++++++++++++-------
 1 files changed, 60 insertions(+), 14 deletions(-)

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 0bfa7e9..7d14840 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
@@ -9,11 +9,13 @@
 import org.springblade.jfpt.animalheat.util.ImageUtil;
 import org.springblade.jfpt.animalheat.vo.AnimalHeatVo;
 import org.springblade.jfpt.animalheat.vo.StatisVo;
+import org.springblade.jfpt.parcel.vo.ConditionVo;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.validation.Valid;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import static org.springblade.core.tool.utils.DateUtil.now;
@@ -32,9 +34,6 @@
 	@Value("${picture.addUrl}")
 	private String picAddUrl;
 
-	@Value("${picture.pre}")
-	private String picPre;
-
 
 	/**
 	 * 新增体温数据
@@ -45,6 +44,7 @@
 	public void save(String body) {
 		//1.截取信息
 		int i = body.indexOf("{");
+		String host = body.substring(body.indexOf("192."), body.indexOf("Accept-Encoding"));
 		//2.从 {  处开始截取
 		int length = body.length();
 		//3.截取,由于获取数据时,} 被去除,需要加上
@@ -52,14 +52,20 @@
 		System.out.println("dataBody = " + dataBody);
 		//4.数据转换
 		Map<String,Object> data = (Map<String, Object>) JSONObject.parse(dataBody);
-		System.out.println("data = " + data);
 		//5.创建体温数据对象
 		BladeAnimalHeat bladeAnimalHeat = new BladeAnimalHeat();
 		//6.取出数据,封装数据到对象
+		String method = data.get("method").toString();
+		if (method.contains("infrared_aiom_picture")){
+			bladeAnimalHeat.setMethod(0);
+		}
+		bladeAnimalHeat.setSerialno(data.get("serialno").toString());
+		bladeAnimalHeat.setIp(host);
 		String picture = data.get("picture").toString();
 		//将二进制原始图片转换成图片
-		ImageUtil.base64StringToImage(picture);
-		//bladeAnimalHeat.setPicture(data.get("picture").toString());  //暂时不存入
+		String imageUrl = ImageUtil.base64StringToImage(picture);
+		//存入图片地址url
+		bladeAnimalHeat.setPicture(picAddUrl+imageUrl);
 		String temp_red =data.get("temp_red").toString();
 		String[] temRedArr = temp_red.substring(1,temp_red.length()-1).split(",");
 		if (temRedArr.length>1){
@@ -68,16 +74,16 @@
 			float v1 = Float.parseFloat(temRedArr[1]);
 			int compare = Float.compare(v, v1);
 			bladeAnimalHeat.setTempRed(compare>=0 ? v:v1);
-			//和标志温度比较,大于37度为高温,标记为1,小于则为正常0
-			int compare1 = Float.compare(37, compare >= 0 ? v : v1);
+			//和标志温度比较,大于37.2度为高温,标记为1,小于则为正常0
+			int compare1 = Float.compare(37.2f, compare >= 0 ? v : v1);
 			bladeAnimalHeat.setStatus(compare1>0 ?0:1);
 		}else {
 			bladeAnimalHeat.setTempRed(Float.parseFloat(temRedArr[0]));
-			int compare1 = Float.compare(37, Float.parseFloat(temRedArr[0]));
+			int compare1 = Float.compare(37.2f, Float.parseFloat(temRedArr[0]));
 			bladeAnimalHeat.setStatus(compare1>0 ?0:1);
 		}
 		String person_rects = data.get("person_rect").toString();
-		bladeAnimalHeat.setPersonRect(person_rects.substring(2,person_rects.length()-2));
+		bladeAnimalHeat.setPersonRect(person_rects.substring(1,person_rects.length()-1));
 		bladeAnimalHeat.setCreateTime(now());
 		//7.插入数据
 		int idata = baseMapper.insert(bladeAnimalHeat);
@@ -90,15 +96,19 @@
 	 * @return
 	 */
 	@Override
-	public List<StatisVo> getAnimalStatis(AnimalHeatVo animalHeatVo) {
-		if(null!= animalHeatVo.getStatus()){
+	public List<Map<String, Object>> getAnimalStatis(AnimalHeatVo animalHeatVo) {
+		if(null!= animalHeatVo.getType()){
 			//查询当天的统计数据
-			if (animalHeatVo.getStatus()==0){
+			if (animalHeatVo.getType()==0){
 				return baseMapper.getAnimalStatis();
 			}
 			//查询本周的统计数据
-			if (animalHeatVo.getStatus()==1){
+			if (animalHeatVo.getType()==1){
 				return baseMapper.getAnimalStatisWeek();
+			}
+			//查询本月的统计数据
+			if (animalHeatVo.getType()==2){
+				return baseMapper.getAnimalStatisMonth();
 			}
 		}
 		return null;
@@ -115,4 +125,40 @@
 	public IPage<BladeAnimalHeat> selectAnimalHeatPage(IPage<BladeAnimalHeat> page, AnimalHeatVo animalHeatVo) {
 		return page.setRecords(baseMapper.selectAnimalHeatPageList(page, animalHeatVo));
 	}
+
+
+	/**
+	 * 查询本周每天的体温数据数量
+	 * @return
+	 */
+	@Override
+	public List<Map<String, Integer>> selWeekDayAnimalStatis() {
+		return baseMapper.selWeekDayAnimalStatis();
+	}
+
+	/**
+	 * 统计7天内每天体温异常的的总人数
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> selectAnimalData() {
+		//创建map对象
+		Map<String, Object> map = new HashMap<>();
+		//查询统计数据
+		List<Integer> list = baseMapper.selectAnimalHeatDataStatis();
+		//封装数据
+		map.put("animalData",list);
+		//返回数据
+		return map;
+	}
+
+	/**
+	 * 查询当前时间段体温异常总次数
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public Integer selAnimalTimeCount(ConditionVo conditionVo) {
+		return baseMapper.selAnimalTimeCount(conditionVo);
+	}
 }

--
Gitblit v1.9.3