From eb3440d7c0c7baef5e6fc888fd0076b1787643d9 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 07 Apr 2021 16:14:18 +0800
Subject: [PATCH] 预警时间分布接口新增

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/constant/AlarmTimeConstant.java              |   19 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java                   |    8 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml             |    7 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.java            |    7 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java              |   37 +++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/mapper/healthcodeMapper.java            |    7 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java                  |    7 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java         |  121 ++++++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/healthcode/service/impl/HealthcodeServiceImpl.java |  102 +++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java           |  102 +++++++++
 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             |    7 
 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 |  104 ++++++++++
 14 files changed, 523 insertions(+), 19 deletions(-)

diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/constant/AlarmTimeConstant.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/constant/AlarmTimeConstant.java
index 7cf9440..cd068af 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/constant/AlarmTimeConstant.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/constant/AlarmTimeConstant.java
@@ -5,8 +5,21 @@
  */
 public interface AlarmTimeConstant {
 	int ZERO = 0;
-	int FIVE = 5*60;
-	int TEN = 10*60;
-	int THIRTY = 30*60;
+	int TWO = 2;
+	int FOUR = 4;
+	int SIX = 6;
+	int EIGHT = 8;
+	int TEN = 10;
+	int TWEKVE = 12;
+	int FOURTEEN = 14;
+	int SIXTEEN = 16;
+	int EIGHTEEN = 18;
+	int TWENTY = 20;
+	int TWENTY_TWO = 22;
+	int TWENTY_FOUR = 24;
+	int FIVE_TIME = 5*60;
+	int TEN_TIME = 10*60;
+	int THIRTY_TIME = 30*60;
+
 
 }
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 0e6c787..f2d3f12 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
@@ -566,4 +566,41 @@
 		return null;
 	}
 
+
+	/**
+	 * 警情时间分布   0-2  2-4  4-6 6-8 ....  22-24
+	 * @param response 跨域配置
+	 * @param conditionVo 条件
+	 * @return
+	 */
+	@GetMapping("/selAlarmTimeDis")
+	public R selAlarmTimeDis(HttpServletResponse response,ConditionVo conditionVo) {
+		response.setHeader("Access-Control-Allow-Origin", "*");
+		response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+		response.setHeader("Access-Control-Allow-Credentials","true");
+		Map<String, Object> map = new HashMap<>();
+		//获取时间天数
+		if (null!= conditionVo.getStartTime() && conditionVo.getStartTime()!=""
+			&& null!=conditionVo.getEndTime() && conditionVo.getEndTime()!="") {
+			int times = DateUtils.getTimeOverOneDate(conditionVo.getStartTime(), conditionVo.getEndTime()).size();
+			//查询当前时间段区间时间一键求助报警个数
+			List<Integer> alarmTimeDis = alarmService.selAlarmTimeDis(conditionVo);
+			//查询当前时间段区间时间违禁品个数
+			List<Integer> parcelTimeDis = parcelService.selParcelTimeDis(conditionVo);
+
+			//查询当前时间段区间时间红色健康码个数
+			List<Integer> healthcodeTimeDis = ihealthcodeService.selHealthcodeTimeDis(conditionVo);
+			//查询当前时间段区间时间体温异常次数
+			List<Integer> animalTimeDis = animalHeatService.selAnimalTimeDis(conditionVo);
+			//封装数据
+			map.put("alarmTimeDis",alarmTimeDis);
+			map.put("parcelTimeDis",parcelTimeDis);
+			map.put("healthcodeTimeDis",healthcodeTimeDis);
+			map.put("animalTimeDis",animalTimeDis);
+			//返回数据
+			return R.data(map);
+		}
+		return null;
+	}
+
 }
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 837497d..2d1c49c 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
@@ -93,9 +93,15 @@
 
 	/**
 	 * 一键求助报警确认时间占比
-	 * @param response 跨域配置
 	 * @param conditionVo 条件
 	 * @return
 	 */
     Object selConfirmTimePro(ConditionVo conditionVo);
+
+	/**
+	 * 查询当前时间段区间时间一键求助报警个数
+	 * @param conditionVo
+	 * @return
+	 */
+	List<Integer> selAlarmTimeDis(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 8e75ddd..d7d9e37 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
@@ -210,19 +210,19 @@
 					long czTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(alarm.getCzTime()).getTime();
 					long alarmTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(alarm.getAlarmTime()).getTime();
 					//0-5分钟
-					if (czTime-alarmTime>0 && czTime-alarmTime<AlarmTimeConstant.FIVE){
+					if (czTime-alarmTime>0 && czTime-alarmTime<AlarmTimeConstant.FIVE_TIME){
 						count05+=1;
 					}
 					//5-10分钟
-					if (czTime-alarmTime>=AlarmTimeConstant.FIVE && czTime-alarmTime<AlarmTimeConstant.TEN){
+					if (czTime-alarmTime>=AlarmTimeConstant.FIVE_TIME && czTime-alarmTime<AlarmTimeConstant.TEN_TIME){
 						count0510+=1;
 					}
 					//10-30分钟
-					if (czTime-alarmTime>=AlarmTimeConstant.TEN && czTime-alarmTime<AlarmTimeConstant.THIRTY){
+					if (czTime-alarmTime>=AlarmTimeConstant.TEN_TIME && czTime-alarmTime<AlarmTimeConstant.THIRTY_TIME){
 						count1030+=1;
 					}
 					//30分钟以上
-					if (czTime-alarmTime>=AlarmTimeConstant.THIRTY){
+					if (czTime-alarmTime>=AlarmTimeConstant.THIRTY_TIME){
 						count30+=1;
 					}
 				} catch (ParseException e) {
@@ -233,19 +233,19 @@
 				try {
 					long alarmTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(alarm.getAlarmTime()).getTime();
 					//0-5分钟
-					if (nowTime-alarmTime>0 && nowTime-alarmTime<AlarmTimeConstant.FIVE){
+					if (nowTime-alarmTime>0 && nowTime-alarmTime<AlarmTimeConstant.FIVE_TIME){
 						count05+=1;
 					}
 					//5-10分钟
-					if (nowTime-alarmTime>=AlarmTimeConstant.FIVE && nowTime-alarmTime<AlarmTimeConstant.TEN){
+					if (nowTime-alarmTime>=AlarmTimeConstant.FIVE_TIME && nowTime-alarmTime<AlarmTimeConstant.TEN_TIME){
 						count0510+=1;
 					}
 					//10-30分钟
-					if (nowTime-alarmTime>=AlarmTimeConstant.TEN && nowTime-alarmTime<AlarmTimeConstant.THIRTY){
+					if (nowTime-alarmTime>=AlarmTimeConstant.TEN_TIME && nowTime-alarmTime<AlarmTimeConstant.THIRTY_TIME){
 						count1030+=1;
 					}
 					//30分钟以上
-					if (nowTime-alarmTime>=AlarmTimeConstant.THIRTY){
+					if (nowTime-alarmTime>=AlarmTimeConstant.THIRTY_TIME){
 						count30+=1;
 					}
 				} catch (ParseException e) {
@@ -261,4 +261,90 @@
 		//返回数据
 		return list;
 	}
+
+	/**
+	 * 查询当前时间段区间时间一键求助报警个数
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public List<Integer> selAlarmTimeDis(ConditionVo conditionVo) {
+		//查询当前时间段内一键求助报警的数据集合
+		List<Alarm> alarmList = baseMapper.selectAlarmList(conditionVo);
+		if (alarmList.size()>0) {
+			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 (Alarm alarm : alarmList) {
+				try {
+					int hours = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(alarm.getAlarmTime()).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 (ParseException 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;
+		}
+		return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0);
+	}
 }
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 4b38813..4322ec3 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
@@ -60,4 +60,11 @@
 	 * @return
 	 */
     Integer selAnimalTimeCount(@Param("conditionVo") ConditionVo conditionVo);
+
+	/**
+	 * 查询当前时间段区间时间体温异常次数
+	 * @param conditionVo
+	 * @return
+	 */
+    List<BladeAnimalHeat> selAnimalTimeData(@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 aa06736..869e1af 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
@@ -127,4 +127,11 @@
             and create_time between #{conditionVo.startTime} and #{conditionVo.endTime}
         </if>
     </select>
+
+    <!--查询当前时间段区间时间体温异常次数-->
+    <select id="selAnimalTimeData" resultType="org.springblade.jfpt.animalheat.entity.BladeAnimalHeat">
+        select status,create_time from blade_animal_heat
+            where status=1
+        and create_time between #{conditionVo.startTime} and #{conditionVo.endTime}
+    </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 e3e6a07..05beba9 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
@@ -53,4 +53,11 @@
 	 * @return
 	 */
 	Integer selAnimalTimeCount(ConditionVo conditionVo);
+
+	/**
+	 * 查询当前时间段区间时间体温异常次数
+	 * @param conditionVo
+	 * @return
+	 */
+    List<Integer> selAnimalTimeDis(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 7d14840..3c96851 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,21 +3,24 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+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.jfpt.animalheat.vo.AnimalHeatVo;
 import org.springblade.jfpt.animalheat.vo.StatisVo;
+import org.springblade.jfpt.healthcode.entity.Healthcode;
 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 java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 import static org.springblade.core.tool.utils.DateUtil.now;
 
 /**
@@ -161,4 +164,99 @@
 	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 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(animalHeat.getCreateTime().toString()).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 (ParseException 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;
+	}
 }
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 eb62ef6..f456ed4 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
@@ -56,4 +56,11 @@
 	 * @return
 	 */
     Integer selHealthcodeTimeCount(@Param("conditionVo")ConditionVo conditionVo);
+
+	/**
+	 * 查询当前时间段区间时间红色健康码个数
+	 * @param conditionVo
+	 * @return
+	 */
+    List<Healthcode> selRedCodeTimeData(@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 d7a271d..3225b9b 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
@@ -161,4 +161,11 @@
             and dtime between #{conditionVo.startTime} and #{conditionVo.endTime}
         </if>
     </select>
+
+    <!--查询当前时间段区间时间红色健康码个数-->
+    <select id="selRedCodeTimeData" resultType="org.springblade.jfpt.healthcode.entity.Healthcode">
+        SELECT type,dtime FROM healthcode
+            where type =3
+        and dtime between #{conditionVo.startTime} and #{conditionVo.endTime}
+    </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 482cb6a..47b22a4 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
@@ -56,4 +56,11 @@
 	 * @return
 	 */
     Integer selHealthcodeTimeCount(ConditionVo conditionVo);
+
+	/**
+	 * 查询当前时间段区间时间红色健康码个数
+	 * @param conditionVo
+	 * @return
+	 */
+	List<Integer> selHealthcodeTimeDis(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 7d1aa78..635c4e0 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
@@ -18,6 +18,7 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springblade.jfpt.alarm.constant.AlarmTimeConstant;
 import org.springblade.jfpt.healthcode.entity.Healthcode;
 import org.springblade.jfpt.healthcode.mapper.healthcodeMapper;
 import org.springblade.jfpt.healthcode.service.IhealthcodeService;
@@ -25,9 +26,9 @@
 import org.springblade.jfpt.parcel.vo.ConditionVo;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 /**
  *  服务实现类
@@ -88,4 +89,99 @@
 	public Integer selHealthcodeTimeCount(ConditionVo conditionVo) {
 		return baseMapper.selHealthcodeTimeCount(conditionVo);
 	}
+
+	/**
+	 * 查询当前时间段区间时间红色健康码个数
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public List<Integer> selHealthcodeTimeDis(ConditionVo conditionVo) {
+		//查询当前时间段内的红色健康码数据集合
+		List<Healthcode> healthcodeList = baseMapper.selRedCodeTimeData(conditionVo);
+		if (healthcodeList.size()>0){
+			return getHealthcodeTimeDis(healthcodeList);
+		}
+		return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0);
+	}
+
+	/**
+	 * 筛选数据,分类返回
+	 * @param collect 集合数据
+	 * @return
+	 */
+	private List<Integer> getHealthcodeTimeDis(List<Healthcode> 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 (Healthcode healthcode:collect) {
+			try {
+				long hours = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(healthcode.getDtime()).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 (ParseException 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;
+	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
index fbe4469..931ca2b 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
@@ -64,4 +64,11 @@
 	 * @return
 	 */
 	Integer selParcelTimeCount(ConditionVo conditionVo);
+
+	/**
+	 *查询当前时间段区间时间违禁品个数
+	 * @param conditionVo
+	 * @return
+	 */
+    List<Integer> selParcelTimeDis(ConditionVo conditionVo);
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
index bca65ef..d44455b 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -4,6 +4,7 @@
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import io.swagger.models.auth.In;
+import org.springblade.jfpt.alarm.constant.AlarmTimeConstant;
 import org.springblade.jfpt.animalheat.util.ImageUtil;
 import org.springblade.jfpt.parcel.service.ParcelService;
 import org.springblade.jfpt.parcel.util.DateUtils;
@@ -14,8 +15,10 @@
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static org.springblade.core.tool.utils.DateUtil.now;
 
@@ -69,7 +72,6 @@
 				//将所有的违禁包裹编码存起来
 				mapCode.put(objectMap.get("objCode").toString(),objectMap.get("objCode").toString());
 			}
-			System.out.println("mapCode = " + mapCode);
 			//遍历违禁编码map数据
 			List<Map<String,Object>> list = new ArrayList<>();
 			for (String value:mapCode.values()) {
@@ -434,4 +436,121 @@
 	public Integer selParcelTimeCount(ConditionVo conditionVo) {
 		return selectParcelCount(conditionVo).get(1);
 	}
+
+	/**
+	 *查询当前时间段区间时间违禁品个数
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public List<Integer> selParcelTimeDis(ConditionVo conditionVo) {
+		ArrayList<List<Object>> objectArrayList = new ArrayList<>();
+		//设置页码数
+		conditionVo.setCurrentPage(1);
+		conditionVo.setPageSize(100);
+		//获取数据
+		Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
+		if (null!=result) {
+			List<Object> dataList = JSONArray.parseArray(result.get("data").toString());
+			objectArrayList.add(dataList);
+			//取第一次获取到的数据总数,每次取100条,多于100分批次取
+			int totalSize = Integer.parseInt(result.get("totalSize").toString());
+			int i = totalSize/100+1;
+			if (i>1){
+				for (int j=1;j<i;j++) {
+					conditionVo.setCurrentPage(j+1);
+					//获取数据
+					Map<String,Object> result0 =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
+					List<Object> dataLists = JSONArray.parseArray(result0.get("data").toString());
+					objectArrayList.add(dataLists);
+				}
+			}
+			//合并集合
+			List<Object> collect = objectArrayList.stream().flatMap(List::stream).collect(Collectors.toList());
+			//筛选数据,返回数据
+			return getParcelTimeDis(collect);
+		}
+		return Arrays.asList(0,0,0,0,0,0,0,0,0,0,0,0);
+	}
+
+	/**
+	 * 筛选数据,分类返回
+	 * @param collect 集合数据
+	 * @return
+	 */
+	private List<Integer> getParcelTimeDis(List<Object> 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 (Object data:collect) {
+			Map<String,Object> parcelData =(Map<String,Object>)data;
+			try {
+				long hours = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(parcelData.get("createTime").toString()).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 (ParseException 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;
+	}
 }

--
Gitblit v1.9.3