From f14966e7c0338b4c749fee51c73470ca0230f163 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Wed, 07 Apr 2021 17:39:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java |  185 ++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 178 insertions(+), 7 deletions(-)

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 7dffae4..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
@@ -20,18 +20,18 @@
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.alarm.entity.Alarm;
 import org.springblade.jfpt.alarm.mapper.AlarmMapper;
 import org.springblade.jfpt.alarm.service.IAlarmService;
 import org.springblade.jfpt.alarm.vo.AlarmVO;
+import org.springblade.jfpt.parcel.util.DateUtils;
 import org.springblade.jfpt.parcel.vo.ConditionVo;
 import org.springframework.stereotype.Service;
 
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  *  服务实现类
@@ -124,12 +124,12 @@
 
 	/**
 	 * 查询警情总数
-	 * @param status  0:本日   1:本周   2:本月
+	 * @param conditionVo status  0:本日   1:本周   2:本月
 	 * @return
 	 */
 	@Override
-	public Integer selectAlarmCount(Integer status) {
-		return baseMapper.selectAlarmCount();
+	public Integer selectAlarmCount(ConditionVo conditionVo) {
+		return baseMapper.selectAlarmCount(conditionVo);
 	}
 
 	/**
@@ -176,4 +176,175 @@
 	public List<Map<String, Object>> queryBa() {
 		return baseMapper.queryBa();
 	}
+
+	/**
+	 * 查询当前时间段一键求助报警总次数
+	 * @param conditionVo
+	 * @return
+	 */
+	@Override
+	public Integer selAlarmTimeCount(ConditionVo conditionVo) {
+		return baseMapper.selAlarmTimeCount(conditionVo);
+	}
+
+	/**
+	 * 一键求助报警确认时间占比
+	 * @param conditionVo 条件
+	 * @return
+	 */
+	@Override
+	public Object selConfirmTimePro(ConditionVo conditionVo) {
+		//查询当前时间段内一键求助报警的数据集合
+		List<Alarm> alarmList = baseMapper.selectAlarmList(conditionVo);
+		List<Integer> list = new ArrayList<>();
+		//一键求助报警总数
+		int count = alarmList.size();
+		int count05 = 0;
+		int count0510 = 0;
+		int count1030 = 0;
+		int count30 = 0;
+		//遍历集合
+		for (Alarm alarm:alarmList) {
+			if (null!=alarm.getCzTime() && alarm.getCzTime()!=""){
+				try {
+					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_TIME){
+						count05+=1;
+					}
+					//5-10分钟
+					if (czTime-alarmTime>=AlarmTimeConstant.FIVE_TIME && czTime-alarmTime<AlarmTimeConstant.TEN_TIME){
+						count0510+=1;
+					}
+					//10-30分钟
+					if (czTime-alarmTime>=AlarmTimeConstant.TEN_TIME && czTime-alarmTime<AlarmTimeConstant.THIRTY_TIME){
+						count1030+=1;
+					}
+					//30分钟以上
+					if (czTime-alarmTime>=AlarmTimeConstant.THIRTY_TIME){
+						count30+=1;
+					}
+				} catch (ParseException e) {
+					e.printStackTrace();
+				}
+			}else {
+				long nowTime = new Date().getTime();
+				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_TIME){
+						count05+=1;
+					}
+					//5-10分钟
+					if (nowTime-alarmTime>=AlarmTimeConstant.FIVE_TIME && nowTime-alarmTime<AlarmTimeConstant.TEN_TIME){
+						count0510+=1;
+					}
+					//10-30分钟
+					if (nowTime-alarmTime>=AlarmTimeConstant.TEN_TIME && nowTime-alarmTime<AlarmTimeConstant.THIRTY_TIME){
+						count1030+=1;
+					}
+					//30分钟以上
+					if (nowTime-alarmTime>=AlarmTimeConstant.THIRTY_TIME){
+						count30+=1;
+					}
+				} catch (ParseException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+		//封装数据
+		list.add(count05);
+		list.add(count0510);
+		list.add(count1030);
+		list.add(count30);
+		//返回数据
+		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);
+	}
 }

--
Gitblit v1.9.3