From 80be018676ee9063820f2edf5a71d7d422ab3451 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Thu, 18 Mar 2021 18:18:47 +0800
Subject: [PATCH] 报警分发接口调整
---
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java | 4 +
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml | 44 +++++++++++++++++++--
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.java | 4 +
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java | 7 +++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/controller/AlarmController.java | 37 +++++++++++++-----
5 files changed, 77 insertions(+), 19 deletions(-)
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 39d3519..bcc5948 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
@@ -169,30 +169,45 @@
//警情分发测试代码
- //查询所有在线的接警员
+ //查询所有闲置的接警员
List<Map<String, Object>> policeList = alarmService.queryPolice();
List<Map<String, Object>> online_police = new ArrayList<>();
for (int i = 0; i < policeList.size(); i++) {
if (policeList.get(i).get("work_status").equals(0)){
- System.out.println(policeList.get(i).get("real_name"));
+ //System.out.println(policeList.get(i).get("real_name"));
online_police.add(policeList.get(i));
}
}
- int size = 0;
+
if (online_police.size() == 0){
online_police = policeList;
- size = policeList.size();
- }else {
- size = online_police.size();
}
- int num=(int)(Math.random()*(size));
- String name = (String) online_police.get(num).get("real_name");
- String id = (String) online_police.get(num).get("id");
+ List policeIdArr = new ArrayList();
- alarm.setAlarmPeople(name);
- alarm.setAlarmId(name);
+ //将闲置状态的人员id存入数组
+ for (int i = 0; i < online_police.size(); i++) {
+ policeIdArr.add(online_police.get(i).get("id"));
+ }
+
+ //通过id计算接警员最后一次接警时间,倒序返回闲置最久的人员,派发任务
+ List<Map<String, Object>> police = alarmService.queryPoliceTime(policeIdArr);
+
+ if (police.size() != 0){
+ alarm.setAlarmId((String) police.get(0).get("alarmId"));
+ alarm.setAlarmPeople((String) police.get(0).get("alarmPeople"));
+ Date date = new Date();
+ SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ alarm.setJjTime(dateFormat.format(date));
+ }else {
+ alarm.setAlarmId((String) online_police.get(0).get("id"));
+ alarm.setAlarmPeople((String) online_police.get(0).get("name"));
+ Date date = new Date();
+ SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ alarm.setJjTime(dateFormat.format(date));
+ }
+
return null;
//return R.status(alarmService.saveOrUpdate(alarm));
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 973d671..33df04f 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
@@ -75,5 +75,7 @@
*/
List<Map<String, Object>> selectAlarmSum(@Param("conditionVo") ConditionVo conditionVo);
- List queryPolice();
+ List<Map<String, Object>> queryPolice();
+
+ List<Map<String, Object>> queryPoliceTime(List policeIdArr);
}
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 bf79fbc..1e648bd 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
@@ -19,7 +19,7 @@
<result column="district" property="district"/>
<result column="alarmId" property="alarmId"/>
<result column="level" property="level"/>
- <result column="coordinate" property="coordinate"/>
+ <!--<result column="coordinate" property="coordinate"/>-->
<result column="jd" property="jd"/>
<result column="wd" property="wd"/>
<result column="jtype" property="jtype"/>
@@ -39,7 +39,7 @@
a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,
a.deviceNumber,a.region,a.district,
a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,a.province,a.city,a.cid,
- e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,onePhone,twoPhone,ThreePhone,
+ e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone,
e.stype,
e.channelNumber from sys_alarm a
LEFT JOIN sys_equipment e on e.deviceNumber=a.deviceNumber
@@ -203,7 +203,13 @@
d.addvnm,
e.serialNumber,
e.stype,
- e.channelNumber
+ e.channelNumber,
+ e.oneContacts,
+ e.ThreeContacts,
+ e.twoContacts,
+ e.onePhone,
+ e.twoPhone,
+ e.ThreePhone
FROM
sys_alarm a LEFT JOIN sys_district d on d.addvcds=a.district LEFT JOIN sys_equipment e on
e.deviceNumber=a.deviceNumber where 1=1
@@ -335,6 +341,34 @@
sa.alarmType = sb.alarmType
</select>
- <select id="queryPolice" resultType="java.util.List">
- SELECT * FROM jfpth.blade_user WHERE is_deleted != '1' and role_id ="1370562810882502657"</select>
+ <select id="queryPolice" resultType="java.util.HashMap">
+ SELECT * FROM jfpth.blade_user WHERE is_deleted != '1' and role_id ="1372092102682521602"
+ </select>
+
+
+ <select id="queryPoliceTime" resultType="java.util.HashMap">
+
+ SELECT
+ a.alarmPeople,
+ a.alarmId,
+ max( a.jjTime ) AS jjTime
+ FROM
+ sys_alarm a
+ WHERE
+ 1 =1
+
+ <if test="policeIdArr!=null and policeIdArr.size>0">
+ and alarmId in
+ <foreach collection="policeIdArr" index="index" item="item" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </if>
+ GROUP BY
+ a.alarmPeople,
+ a.alarmId
+ ORDER BY
+ jjTime
+ LIMIT 1
+
+ </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 cc97bf7..50d997f 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
@@ -73,5 +73,7 @@
*/
List<Map<String,Object>> selectAlarmSum(ConditionVo conditionVo);
- List queryPolice();
+ List<Map<String, Object>> queryPolice();
+
+ List<Map<String, Object>> queryPoliceTime(List policeIdArr);
}
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 47bb13c..716df96 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
@@ -143,7 +143,12 @@
}
@Override
- public List queryPolice() {
+ public List<Map<String, Object>> queryPolice() {
return baseMapper.queryPolice();
}
+
+ @Override
+ public List<Map<String, Object>> queryPoliceTime(List policeIdArr) {
+ return baseMapper.queryPoliceTime(policeIdArr);
+ }
}
--
Gitblit v1.9.3