From 606a427fd3242fcebb039800a967d8adfef9a99c Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 07 May 2021 19:26:01 +0800
Subject: [PATCH] 1.设备列表接口修改,警情状态的排最前 2.新增设备查询的拦截器,更新设备状态

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml                     |    2 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java         |    5 +
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentInterceptor.java            |   57 ++++++++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentAdapter.java                |   34 ++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml             |   22 ++--
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java |   76 +++++++++++++++----
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java    |    1 
 7 files changed, 169 insertions(+), 28 deletions(-)

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 064a6f4..276ae43 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
@@ -721,7 +721,7 @@
     <!--查询符合条件的数据并导出-->
     <select id="exportAlarm" resultType="org.springblade.common.entity.AlarmExcel">
         select
-        a.id,a.alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,a.bz,
+        a.id, "一键求助" as alarmType,a.alarmPeople,a.alarmTime,a.galarmPeople,a.sex,a.phoneNumber,a.place,a.content,a.waringType,a.bz,
         a.deviceNumber,a.region,a.district,a.vaddress,a.aaddress,
         a.alarmId,a.LEVEL,e.jd,e.wd,a.jtype,a.rname,a.jjTime,a.province,a.city,
         e.serialNumber,e.oneContacts,e.ThreeContacts,e.twoContacts,e.onePhone,e.twoPhone,e.ThreePhone
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
index 2091070..fa578b5 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java
@@ -239,6 +239,7 @@
 		List<DeptVo> deptVos = deptFeignApi.selDeptList();
 		//获取设备数据信息
 		IPage<EquipmentVO> page = equipmentService.selectDeptPages(Condition.getPage(query), equipment, pid, dxtype);
+		System.out.println("page = " + page);
 		//遍历数据
 		for (int j = 0; j < page.getRecords().size(); j++) {
 			if (null!=page.getRecords().get(j).getDeptId()){
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml
index de41668..3c57a77 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml
@@ -160,19 +160,16 @@
         deviceNumber
         ) alarm ON alarm.deviceN = equipment.deviceNumber
         where 1=1
-
         <if test="equipment.deviceName!=null">
             and (deviceName like concat('%',#{equipment.deviceName},'%') or deviceNumber like
             concat('%',#{equipment.deviceName},'%'))
         </if>
-
         <if test="equipment.beginTime!=null and equipment.beginTime!=''">
             and expireTime&gt;=#{equipment.beginTime}
         </if>
         <if test="equipment.endTime!=null and equipment.endTime!=''">
             and expireTime&lt;=#{equipment.endTime}
         </if>
-
         <if test="equipment.district!=null">
             and district like concat('%',#{equipment.district},'%')
         </if>
@@ -185,31 +182,34 @@
         <if test="equipment.manufacturers!=null and equipment.manufacturers!=''">
             and manufacturers = #{equipment.manufacturers}
         </if>
-
         <if test="equipment.devicestate!=null">
             and devicestate =#{equipment.devicestate}
         </if>
-
         <if test="equipment.dtype!=null">
             and dtype=#{equipment.dtype}
         </if>
-
         <if test="dxtype!=null and dxtype == 0">
-            and heartbeat &lt; DATE_SUB(NOW(),INTERVAL 1 DAY)
+            and heartbeat &lt; DATE_SUB(NOW(),INTERVAL 1 DAY)  and dtype=0
         </if>
         <if test="dxtype!=null and dxtype == 1">
-            and heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY)
+            and heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=1
         </if>
         <if test="dxtype!=null and dxtype == 2">
-            and alarm.jtype IS NOT NULL
+            and heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=2
         </if>
         <if test="dxtype!=null and dxtype == 3">
-            and heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and state!=null
+            and heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY)  and dtype=3
         </if>
         <if test="pid!=null and pid!=''">
             and deptId like concat('%',#{pid},'%')
         </if>
-
+        order by (
+            case
+                when dtype=2  then 1
+                when dtype=3 then 2
+                when dtype=0  then 3
+                when dtype=1  then 4
+            END)
     </select>
 
     <!--新增-->
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java
index 22f668a..4d465d5 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java
@@ -100,4 +100,9 @@
 	 * @return
 	 */
 	Map<String,Object> selEqTypeSum();
+
+	/**
+	 * 更新设备状态
+	 */
+	void updateEquipmentDtype();
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java
index 1d499c3..aab30ff 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java
@@ -233,6 +233,66 @@
 	public Map<String, Object> selEqTypeSum() {
 		//查詢之前先更新设备状态
 		//查询所有的设备,不包含故障和警情状态
+//		List<Equipment> equipment = baseMapper.selAllEq();
+//		long time = new Date().getTime();
+//		long hearbeat = 0;
+//		List<Long> equipmentListz = new ArrayList<>();
+//		List<Long> equipmentListl = new ArrayList<>();
+//		for (Equipment e:equipment) {
+//			try {
+//				if(null!=e.getHeartbeat()) {
+//					hearbeat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(e.getHeartbeat()).getTime();
+//				}
+//			} catch (ParseException parseException) {
+//				parseException.printStackTrace();
+//			}
+//			//对比心跳时间,在线
+//			if (time-hearbeat<TIME_DIFFERENCE){
+//				if (null==e.getDtype() || e.getDtype()!="1"){
+//					equipmentListz.add(e.getId());
+//				}
+//			}
+//			if (time-hearbeat>=TIME_DIFFERENCE){
+//				if (null==e.getDtype() || e.getDtype()!="0"){
+//					equipmentListl.add(e.getId());
+//				}
+//			}
+//		}
+//
+//		System.out.println("equipmentListl = " + equipmentListl);
+//		System.out.println("equipmentListz = " + equipmentListz);
+//		//批量更新数据
+//		if (equipmentListz.size()>0){
+//			baseMapper.updateEqListz(equipmentListz);
+//		}
+//		if (equipmentListl.size()>0){
+//			baseMapper.updateEqListl(equipmentListl);
+//		}
+		//设备在线数量
+		Integer integerz = baseMapper.selectEqCz();
+		//设备掉线数量
+		Integer integerd = baseMapper.selectEqCd();
+		//设备预警数量
+		Integer alarmSum = baseMapper.selectEqCys();
+		//设备故障数量
+		Integer integerg = baseMapper.selectEqCg();
+		//封装数据
+		Map<String, Object> map = new HashMap<String, Object>();
+		map.put("zx", integerz);
+		map.put("dx", integerd);
+		map.put("yj", alarmSum);
+		map.put("gz", integerg);
+		//返回数据
+		return map;
+	}
+
+
+	/**
+	 * 更新设备状态
+	 */
+	@Override
+	public void updateEquipmentDtype() {
+		//查询所有的设备,不包含故障和警情状态
 		List<Equipment> equipment = baseMapper.selAllEq();
 		long time = new Date().getTime();
 		long hearbeat = 0;
@@ -268,21 +328,5 @@
 		if (equipmentListl.size()>0){
 			baseMapper.updateEqListl(equipmentListl);
 		}
-		//设备在线数量
-		Integer integerz = baseMapper.selectEqCz();
-		//设备掉线数量
-		Integer integerd = baseMapper.selectEqCd();
-		//设备预警数量
-		Integer alarmSum = baseMapper.selectEqCys();
-		//设备故障数量
-		Integer integerg = baseMapper.selectEqCg();
-		//封装数据
-		Map<String, Object> map = new HashMap<String, Object>();
-		map.put("zx", integerz);
-		map.put("dx", integerd);
-		map.put("yj", alarmSum);
-		map.put("gz", integerg);
-		//返回数据
-		return map;
 	}
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentAdapter.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentAdapter.java
new file mode 100644
index 0000000..9590c4f
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentAdapter.java
@@ -0,0 +1,34 @@
+package org.springblade.jfpt.interceptor;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
+import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
+
+/**
+ * 添加设备拦截器
+ * @author zhongrj
+ * @time 2021-5-7
+ */
+
+@Configuration
+public class EquipmentAdapter extends WebMvcConfigurationSupport {
+
+	/**
+	 * 新增拦截
+	 * @param registry
+	 */
+	@Override
+	public void addInterceptors(InterceptorRegistry registry) {
+		registry.addInterceptor(new EquipmentInterceptor()).
+			addPathPatterns("/equipment/equipment/listAll",
+							"/equipment/equipment/pages",
+							"/equipment/equipment/pageDept",
+							"/equipment/equipment/selectList",
+							"/equipment/equipment/SeleCs",
+							"/equipment/equipment/SeleC",
+							"/equipment/equipment/detail",
+							"/equipment/equipment/list"
+				);
+		super.addInterceptors(registry);
+	}
+}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentInterceptor.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentInterceptor.java
new file mode 100644
index 0000000..e8df040
--- /dev/null
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/interceptor/EquipmentInterceptor.java
@@ -0,0 +1,57 @@
+package org.springblade.jfpt.interceptor;
+
+import org.springblade.jfpt.equipment.service.IEquipmentService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.web.servlet.HandlerInterceptor;
+import org.springframework.web.servlet.ModelAndView;
+import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 设备管理拦截器,管理设备的在线状态
+ * @author zhongrj
+ * @time 2021-5-7
+ */
+
+
+@Component
+public class EquipmentInterceptor implements HandlerInterceptor {
+
+	@Autowired
+	private IEquipmentService iEquipmentService;
+
+	public static EquipmentInterceptor equipmentInterceptor;
+
+	@PostConstruct
+	public void init(){
+		equipmentInterceptor = this;
+	}
+
+	/**
+	 * 拦截所有的设备查询操作,在此之前做更新设备状态的操作
+	 * @param request 请求域
+	 * @param response 响应域
+	 * @param handler 处理器
+	 * @return
+	 * @throws Exception 异常
+	 */
+	@Override
+	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
+		//更新设备状态
+		equipmentInterceptor.iEquipmentService.updateEquipmentDtype();
+		//放行
+		return true;
+	}
+
+	@Override
+	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
+
+	}
+
+	@Override
+	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
+
+	}
+}

--
Gitblit v1.9.3