From c7d05af4e7ebf92b67308df21bde17282c0c50f1 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Thu, 06 May 2021 21:44:06 +0800
Subject: [PATCH] 1.警情导出bug修复 2.警情统计接口修改 3.一键报警设备接收报文时修改设备状态

---
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java  |   31 ++++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/mapper/AlarmMapper.xml                     |    9 +-
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java         |    6 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml           |    6 +-
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java                   |    2 
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.xml             |   12 +++-
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java |   29 +++++++++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/controller/EquipmentController.java    |   10 +++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java            |    6 ++
 blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java       |   31 +++++++++-
 10 files changed, 128 insertions(+), 14 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 1deb79f..c4061ba 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
@@ -82,16 +82,16 @@
         <if test="alarm.level!=null">
             and a.level like concat('%',#{alarm.level},'%')
         </if>
-        <if test="alarm.waringType!=null">
+        <if test="alarm.waringType!=null and alarm.waringType!='undefined'">
             and a.waringType like concat('%',#{alarm.waringType},'%')
         </if>
-        <if test="alarm.beginTime!=null and alarm.beginTime!=''">
+        <if test="alarm.beginTime!=null and alarm.beginTime!='' and alarm.beginTime!='undefined'">
             and a.alarmTime&gt;=#{alarm.beginTime}
         </if>
-        <if test="alarm.endTime!=null and alarm.endTime!=''">
+        <if test="alarm.endTime!=null and alarm.endTime!='' and alarm.endTime!='undefined'">
             and a.alarmTime&lt;=#{alarm.endTime}
         </if>
-        <if test="alarm.timeDesc!=null and alarm.timeDesc!=''">
+        <if test="alarm.timeDesc!=null and alarm.timeDesc!='' and alarm.timeDesc!='undefined'">
             <if test="alarm.timeDesc=='30分钟以上'">
                 and czTime-alarmTime>1800
             </if>
@@ -692,6 +692,7 @@
         ) b
         on
         a.days = b.datetime
+        order by days
     </select>
 
 
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java
index 22b63dc..1f38c9d 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/controller/AnimalHeatController.java
@@ -3,6 +3,7 @@
 import com.alibaba.excel.EasyExcel;
 import com.alibaba.excel.EasyExcelFactory;
 import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.builder.ExcelWriterBuilder;
 import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
@@ -36,8 +37,10 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.UUID;
 
 /**
  * 体温监测控制层
@@ -98,8 +101,34 @@
 	 * @param response 返回域
 	 */
 	@GetMapping("/export-animalHeat")
-	public void exportAnimalHeat(AnimalHeatVo animalHeatVo,HttpServletResponse response){
+	public void exportAnimalHeat(AnimalHeatVo animalHeatVo,HttpServletResponse response) throws Exception{
 		List<AnimalHeatExcel> list = animalHeatService.exportAnimalHeat(animalHeatVo);
+//		response.setContentType("application/vnd.ms-excel");
+//		response.setCharacterEncoding(Charsets.UTF_8.name());
+//		String fileName = URLEncoder.encode("体温检测数据" + DateUtil.time(), Charsets.UTF_8.name());
+//		response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
+//		ExcelWriter writer = new ExcelWriterBuilder()
+//			.autoCloseStream(true)
+//			.file(response.getOutputStream())
+//			.head(AnimalHeatExcel.class)
+//			.build();
+//		// xlsx文件上上限是104W行左右,这里如果超过104W需要分Sheet
+//		WriteSheet writeSheet = new WriteSheet();
+//		writeSheet.setSheetName("target");
+//		long lastBatchMaxId = 0L;
+//		int limit = 500;
+//		for (; ; ) {
+//			List<AnimalHeatExcel> list = animalHeatService.exportAnimalHeat(animalHeatVo);
+//			List list = orderService.queryByScrollingPagination(paymentDateTimeStart, paymentDateTimeEnd, lastBatchMaxId, limit);
+//			if (list.isEmpty()) {
+//				writer.finish();
+//				break;
+//			} else {
+//				lastBatchMaxId = list.stream().map(AnimalHeatExcel::getId).max(Long::compareTo).orElse(Long.MAX_VALUE);
+//				writer.write(list, writeSheet);
+//			}
+//		}
+//		EasyExcel.write(response.getOutputStream(), AnimalHeatExcel.class).sheet("体温检测数据表").doWrite(list);
 		ExcelUtil.export(response, "体温检测数据" + DateUtil.time(), "体温检测数据表", list,AnimalHeatExcel.class );
 	}
 
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
index 2435b5d..2dcdb60 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/animalheat/mapper/AnimalHeatMapper.xml
@@ -12,10 +12,10 @@
         <if test="animalHeatVo.type==2">
             and date_format(create_time,'%Y%m') = date_format(now(),'%Y%m')
         </if>
-        <if test="animalHeatVo.begTime!=null and animalHeatVo.begTime!='' and animalHeatVo.endTime!=null and animalHeatVo.endTime!='' ">
+        <if test="animalHeatVo.begTime!=null and animalHeatVo.begTime!='' and animalHeatVo.endTime!=null and animalHeatVo.endTime!='' and animalHeatVo.begTime!='undefined' and animalHeatVo.endTime!='undefined' ">
             and date(create_time) between #{animalHeatVo.begTime} and #{animalHeatVo.endTime}
         </if>
-        <if test="animalHeatVo.timeDesc!=null and animalHeatVo.timeDesc!=''">
+        <if test="animalHeatVo.timeDesc!=null and animalHeatVo.timeDesc!='' and animalHeatVo.timeDesc!='undefined'">
             <if test="animalHeatVo.timeDesc=='0-2'">
                 and hour(create_time)>=0 and hour(create_time) &lt;2
             </if>
@@ -202,7 +202,7 @@
     <select id="exportAnimalHeat" resultType="org.springblade.common.entity.AnimalHeatExcel">
         SELECT * FROM blade_animal_heat
         where 1=1
-        <if test="animalHeatVo.status!=null">
+        <if test="animalHeatVo.status!=null and animalHeatVo.status!='' and animalHeatVo.status!='undefined'">
             and status=#{animalHeatVo.status}
         </if>
         <include refid="animalHeatCondition"></include>
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 9e5a85b..2091070 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
@@ -549,4 +549,14 @@
 		return R.data(map);
 	}
 
+	/**
+	 * 监控台统计
+	 * @author arsn 2021-5-6
+	 * @return
+	 */
+	@PostMapping("/SeleCs")
+	public R SeleCs() {
+		return R.data(equipmentService.selEqTypeSum());
+	}
+
 }
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java
index 75a336b..9ef0be4 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/mapper/EquipmentMapper.java
@@ -85,4 +85,10 @@
 	Integer selectEqCd();
 	List<Map<String, Object>> selectEqCy(String time);
 	Integer selectEqCg();
+
+	/**
+	 * 当前预警设备数量
+	 * @return
+	 */
+	Integer selectEqCys();
 }
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 b477aed..7b8816d 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
@@ -445,12 +445,12 @@
 
     <!--查询设备在线数量-->
     <select id="selectEqCz" resultType="Integer">
-        select COUNT(*) from sys_equipment where heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY)
+        select COUNT(*) from sys_equipment where heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=1
     </select>
 
     <!--查询设备掉线数量-->
     <select id="selectEqCd" resultType="Integer">
-        select COUNT(*) from sys_equipment where heartbeat &lt; DATE_SUB(NOW(),INTERVAL 1 DAY)
+        select COUNT(*) from sys_equipment where heartbeat &lt; DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=0
     </select>
 
     <!--查询预警设备数量-->
@@ -468,8 +468,14 @@
             deviceNumber
     </select>
 
+
+    <!--查询预警设备数量-->
+    <select id="selectEqCys" resultType="Integer">
+        select COUNT(*) from sys_equipment where heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=2
+    </select>
+
     <!--查询设故障数量-->
     <select id="selectEqCg" resultType="Integer">
-        select COUNT(*) from sys_equipment where heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and state!=null
+        select COUNT(*) from sys_equipment where heartbeat >= DATE_SUB(NOW(),INTERVAL 1 DAY) and dtype=3
     </select>
 </mapper>
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 e3255b8..22f668a 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
@@ -94,4 +94,10 @@
 	Integer selectEqCd();
 	List<Map<String, Object>> selectEqCy(String time);
 	Integer selectEqCg();
+
+	/**
+	 * 获取各个设备状态统计数量
+	 * @return
+	 */
+	Map<String,Object> selEqTypeSum();
 }
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 24d78b1..c1f5c68 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
@@ -36,6 +36,7 @@
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -197,6 +198,10 @@
 			String dType = "3";
 			baseMapper.updateExstate(dType, reason, deviceNumber);
 		}
+		if(state.equals("一键报警")){
+			String dType = "2";
+			baseMapper.updateExstate(dType, reason, deviceNumber);
+		}
 		if(state.equals("处理完成")){
 			String dType = "1";
 			baseMapper.updateExstate(dType, reason, deviceNumber);
@@ -222,4 +227,28 @@
 	public Integer selectEqCg() {
 		return baseMapper.selectEqCg();
 	}
+
+	/**
+	 * 获取各个设备状态统计数量
+	 * @return
+	 */
+	@Override
+	public Map<String, Object> selEqTypeSum() {
+		//设备在线数量
+		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/nettyServer/ServerHandler.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
index 08049ab..18ca512 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/nettyServer/ServerHandler.java
@@ -180,6 +180,8 @@
 					alarm.setWd((String) list.get(0).get("wd"));//纬度
 					alarm.setCid(String.valueOf(a));//警情代码
 					alarm.setJtype("0");
+					//修改设备状态
+					serverHandler.equipmentService.updateExstate("一键报警",null,(String) list.get(0).get("deviceNumber"));
 					switch (num) {
 						case "00":
 							if (fqbm.equals("0")) {
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
index b164fcd..d8e61a2 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java
@@ -688,6 +688,16 @@
 		//设置页码数
 		conditionVo.setCurrentPage(1);
 		conditionVo.setPageSize(1000);
+		if(null==conditionVo.getDecisioDiagramResult() || conditionVo.getDecisioDiagramResult()=="" || conditionVo.getDecisioDiagramResult().equals("undefined") ){
+			conditionVo.setDecisioDiagramResult(null);
+		}
+		if(null==conditionVo.getStartTime() || conditionVo.getStartTime()==""|| conditionVo.getStartTime().equals("undefined") ){
+			conditionVo.setStartTime(null);
+		}
+		if(null==conditionVo.getEndTime() || conditionVo.getEndTime()=="" || conditionVo.getEndTime().equals("undefined") ){
+			conditionVo.setEndTime(null);
+		}
+		System.out.println("conditionVo 后 = " + conditionVo);
 		//获取数据
 		Map<String,Object> result =(Map<String,Object>)getParcelDataPageList(conditionVo, PARCEL_DETAIL_RUL, PARCEL_KEY, PARCEL_SECRET).get("result");
 		if (null!=result) {
@@ -727,9 +737,15 @@
 			ConditionVo vo = new ConditionVo();
 			vo.setCurrentPage(1);
 			vo.setPageSize(100);
-			vo.setDecisioDiagramResult(conditionVo.getDecisioDiagramResult());
-			vo.setStartTime(conditionVo.getStartTime());
-			vo.setEndTime(conditionVo.getEndTime());
+			if(null!=conditionVo.getDecisioDiagramResult() && conditionVo.getDecisioDiagramResult()!="" && !conditionVo.getDecisioDiagramResult().equals("undefined") ){
+				vo.setDecisioDiagramResult(conditionVo.getDecisioDiagramResult());
+			}
+			if(null!=conditionVo.getStartTime() && conditionVo.getStartTime()!="" && !conditionVo.getStartTime().equals("undefined") ) {
+				vo.setStartTime(conditionVo.getStartTime());
+			}
+			if(null!=conditionVo.getEndTime() && conditionVo.getEndTime()!="" && !conditionVo.getEndTime().equals("undefined") ) {
+				vo.setEndTime(conditionVo.getEndTime());
+			}
 			Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(vo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
 			if (null!=result){
 				String data = result.get("data").toString();
@@ -758,6 +774,15 @@
 		}else {
 			conditionVo.setCurrentPage(1);
 			conditionVo.setPageSize(100);
+			if(null==conditionVo.getDecisioDiagramResult() || conditionVo.getDecisioDiagramResult()=="" || conditionVo.getDecisioDiagramResult().equals("undefined") ){
+				conditionVo.setDecisioDiagramResult(null);
+			}
+			if(null==conditionVo.getStartTime() || conditionVo.getStartTime()=="" || conditionVo.getStartTime().equals("undefined") ){
+				conditionVo.setStartTime(null);
+			}
+			if(null==conditionVo.getEndTime() || conditionVo.getEndTime()=="" || conditionVo.getEndTime().equals("undefined") ){
+				conditionVo.setEndTime(null);
+			}
 			Map<String,Object> result =(Map<String,Object>) getParcelDataPageList(conditionVo, PARCEL_KIND_URL, PARCEL_KEY, PARCEL_SECRET).get("result");
 			//获取违禁品数据
 			if (null!=result) {

--
Gitblit v1.9.3