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