From cd2cfd37366002f790a2ed1435962d4eff7d5cec Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 01 Jun 2021 09:39:30 +0800
Subject: [PATCH] 版本合并

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/service/impl/AnimalHeatServiceImpl.java |  188 +++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 175 insertions(+), 13 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 1920bd8..5093554 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
@@ -3,19 +3,20 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.common.entity.ReportReturnData;
+import org.springblade.jfpt.alarm.constant.AlarmTimeConstant;
 import org.springblade.jfpt.animalheat.entity.BladeAnimalHeat;
 import org.springblade.jfpt.animalheat.mapper.AnimalHeatMapper;
 import org.springblade.jfpt.animalheat.service.AnimalHeatService;
 import org.springblade.jfpt.animalheat.util.ImageUtil;
+import org.springblade.common.entity.AnimalHeatExcel;
 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 java.util.*;
 
-import javax.validation.Valid;
-import java.util.List;
-import java.util.Map;
 import static org.springblade.core.tool.utils.DateUtil.now;
 
 /**
@@ -47,7 +48,6 @@
 		int length = body.length();
 		//3.截取,由于获取数据时,} 被去除,需要加上
 		String dataBody = body.substring(i, length)+"}";
-		System.out.println("dataBody = " + dataBody);
 		//4.数据转换
 		Map<String,Object> data = (Map<String, Object>) JSONObject.parse(dataBody);
 		//5.创建体温数据对象
@@ -72,16 +72,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);
@@ -95,14 +95,18 @@
 	 */
 	@Override
 	public List<Map<String, Object>> getAnimalStatis(AnimalHeatVo animalHeatVo) {
-		if(null!= animalHeatVo.getStatus()){
+		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;
@@ -127,7 +131,165 @@
 	 */
 	@Override
 	public List<Map<String, Integer>> selWeekDayAnimalStatis() {
-		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);
+	}
+
+	/**
+	 * 查询当前时间段区间时间体温异常次数
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public List<Integer> selAnimalTimeDis(ConditionVo conditionVo) {
+		//获取当前时间段内异常体温数据集合
+		List<BladeAnimalHeat> animalHeats = baseMapper.selAnimalTimeData(conditionVo);
+		if (animalHeats.size()>0){
+			return getHealthcodeTimeDis(animalHeats);
+		}
+		return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0);
+	}
+
+	/**
+	 * 筛选数据,分类返回
+	 * @param collect 集合数据
+	 * @return
+	 */
+	private List<Integer> getHealthcodeTimeDis(List<BladeAnimalHeat> collect) {
+		List<Integer> list = new ArrayList<>();
+		int count02 = 0;
+		int count0204 = 0;
+		int count0406 = 0;
+		int count0608 = 0;
+		int count0810 = 0;
+		int count1012 = 0;
+		int count1214 = 0;
+		int count1416 = 0;
+		int count1618 = 0;
+		int count1820 = 0;
+		int count2022 = 0;
+		int count2224 = 0;
+		//遍历集合
+		for (BladeAnimalHeat animalHeat:collect) {
+			try {
+				long hours = animalHeat.getCreateTime().getHours();
+				if (hours>0 && hours< AlarmTimeConstant.TWO){
+					count02+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWO && hours<AlarmTimeConstant.FOUR){
+					count0204+=1;
+				}
+				if (hours>=AlarmTimeConstant.FOUR && hours<AlarmTimeConstant.SIX){
+					count0406+=1;
+				}
+				if (hours>=AlarmTimeConstant.SIX && hours<AlarmTimeConstant.EIGHT){
+					count0608+=1;
+				}
+				if (hours>=AlarmTimeConstant.EIGHT && hours<AlarmTimeConstant.TEN){
+					count0810+=1;
+				}
+				if (hours>=AlarmTimeConstant.TEN && hours<AlarmTimeConstant.TWEKVE){
+					count1012+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWEKVE && hours<AlarmTimeConstant.FOURTEEN){
+					count1214+=1;
+				}
+				if (hours>=AlarmTimeConstant.FOURTEEN && hours<AlarmTimeConstant.SIXTEEN){
+					count1416+=1;
+				}
+				if (hours>=AlarmTimeConstant.SIXTEEN && hours<AlarmTimeConstant.EIGHTEEN){
+					count1618+=1;
+				}
+				if (hours>=AlarmTimeConstant.EIGHTEEN && hours<AlarmTimeConstant.TWENTY){
+					count1820+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWENTY && hours<AlarmTimeConstant.TWENTY_TWO){
+					count2022+=1;
+				}
+				if (hours>=AlarmTimeConstant.TWENTY_TWO && hours<AlarmTimeConstant.TWENTY_FOUR){
+					count2224+=1;
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		}
+		//封装数据
+		list.add(count02);
+		list.add(count0204);
+		list.add(count0406);
+		list.add(count0608);
+		list.add(count0810);
+		list.add(count1012);
+		list.add(count1214);
+		list.add(count1416);
+		list.add(count1618);
+		list.add(count1820);
+		list.add(count2022);
+		list.add(count2224);
+		//返回数据
+		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;
+	}
+
+
+	/**
+	 * 导出体温数据列表
+	 * @param animalHeatVo 条件
+	 */
+	@Override
+	public List<AnimalHeatExcel> exportAnimalHeat(AnimalHeatVo animalHeatVo) {
+		return baseMapper.exportAnimalHeat(animalHeatVo);
+	}
+
+	/**
+	 * 导出体温数据列表
+	 * @param animalHeatVo 条件
+	 */
+	@Override
+	public List<ReportReturnData> getAnimalHeatPie(AnimalHeatVo animalHeatVo) {
+		return baseMapper.getAnimalHeatPie(animalHeatVo);
+	}
 }

--
Gitblit v1.9.3