From 87ba91cc982d089cb8993753de049d0d638c8228 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Wed, 07 Apr 2021 11:14:54 +0800
Subject: [PATCH] 主动报警警情确认时间接口新增
---
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/constant/AlarmTimeConstant.java | 12 ++++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java | 9 +++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml | 43 ++++++++------
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java | 7 ++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java | 82 ++++++++++++++++++++++++++-
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java | 19 ++++++
6 files changed, 150 insertions(+), 22 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
new file mode 100644
index 0000000..7cf9440
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/constant/AlarmTimeConstant.java
@@ -0,0 +1,12 @@
+package org.springblade.jfpt.alarm.constant;
+
+/**
+ * 警情处理时间常量
+ */
+public interface AlarmTimeConstant {
+ int ZERO = 0;
+ int FIVE = 5*60;
+ int TEN = 10*60;
+ int THIRTY = 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 7a541d6..0e6c787 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
@@ -547,4 +547,23 @@
return null;
}
+
+ /**
+ * 一键求助报警确认时间占比
+ * @param response 跨域配置
+ * @param conditionVo 条件
+ * @return
+ */
+ @GetMapping("/selConfirmTimePro")
+ public R selConfirmTimePro(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");
+ if (null!= conditionVo.getStartTime() && conditionVo.getStartTime()!=""
+ && null!=conditionVo.getEndTime() && conditionVo.getEndTime()!="") {
+ return R.data(alarmService.selConfirmTimePro(conditionVo));
+ }
+ return null;
+ }
+
}
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 29bbdc0..d6fd45e 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
@@ -91,4 +91,11 @@
* @return
*/
Integer selAlarmTimeCount(@Param("conditionVo") ConditionVo conditionVo);
+
+ /**
+ * 查询当前时间段内一键求助报警的数据集合
+ * @param conditionVo
+ * @return
+ */
+ List<Alarm> selectAlarmList(@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 1ae2085..7d50353 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
@@ -333,24 +333,24 @@
</select>
<!--查询警情当前时间段内每天的数据-->
-<!-- <select id="selectTimeAlarmData" resultType="java.lang.Integer">-->
-<!-- select a.days, 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 ) < 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>-->
+ <select id="selectTimeAlarmData" resultType="java.lang.Integer">
+ select a.days, 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 ) < 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>
<!-- <!–查询本日,本周,本月 主动报警的数量–>-->
<!-- <select id="selectAlarmSum" resultType="java.util.HashMap">-->
@@ -467,4 +467,11 @@
and alarmTime between #{conditionVo.startTime} and #{conditionVo.endTime}
</if>
</select>
+
+ <!--查询当前时间段内一键求助报警的数据集合-->
+ <select id="selectAlarmList" resultType="org.springblade.jfpt.alarm.entity.Alarm">
+ SELECT waringType,alarmTime,alarmId,alarmPeople,jtype,czTime FROM `sys_alarm`
+ where waringType='紧急求救'
+ and alarmTime between #{conditionVo.startTime} and #{conditionVo.endTime}
+ </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 c124c49..837497d 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
@@ -89,4 +89,13 @@
* @return
*/
Integer selAlarmTimeCount(ConditionVo conditionVo);
+
+
+ /**
+ * 一键求助报警确认时间占比
+ * @param response 跨域配置
+ * @param conditionVo 条件
+ * @return
+ */
+ Object selConfirmTimePro(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 7c6aaf3..8e75ddd 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,6 +20,7 @@
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;
@@ -28,11 +29,9 @@
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.*;
/**
* 服务实现类
@@ -187,4 +186,79 @@
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){
+ count05+=1;
+ }
+ //5-10分钟
+ if (czTime-alarmTime>=AlarmTimeConstant.FIVE && czTime-alarmTime<AlarmTimeConstant.TEN){
+ count0510+=1;
+ }
+ //10-30分钟
+ if (czTime-alarmTime>=AlarmTimeConstant.TEN && czTime-alarmTime<AlarmTimeConstant.THIRTY){
+ count1030+=1;
+ }
+ //30分钟以上
+ if (czTime-alarmTime>=AlarmTimeConstant.THIRTY){
+ 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){
+ count05+=1;
+ }
+ //5-10分钟
+ if (nowTime-alarmTime>=AlarmTimeConstant.FIVE && nowTime-alarmTime<AlarmTimeConstant.TEN){
+ count0510+=1;
+ }
+ //10-30分钟
+ if (nowTime-alarmTime>=AlarmTimeConstant.TEN && nowTime-alarmTime<AlarmTimeConstant.THIRTY){
+ count1030+=1;
+ }
+ //30分钟以上
+ if (nowTime-alarmTime>=AlarmTimeConstant.THIRTY){
+ count30+=1;
+ }
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ //封装数据
+ list.add(count05);
+ list.add(count0510);
+ list.add(count1030);
+ list.add(count30);
+ //返回数据
+ return list;
+ }
}
--
Gitblit v1.9.3