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>=#{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<=#{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) <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 < DATE_SUB(NOW(),INTERVAL 1 DAY)
+ select COUNT(*) from sys_equipment where heartbeat < 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