From af83304e2ca46ace2cde325df5acde6b8e51ab8d Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Fri, 12 Mar 2021 14:17:45 +0800
Subject: [PATCH] 包裹,违禁品,在线设备统计接口ok
---
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/IAlarmService.java | 7 +
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/IEquipmentService.java | 7 +
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java | 88 ++++++++++++++++++++++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/alarm/service/impl/AlarmServiceImpl.java | 16 ++++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java | 36 +++++++++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java | 8 ++
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/impl/ParcelServiceImpl.java | 47 ++++++++++-
7 files changed, 203 insertions(+), 6 deletions(-)
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 df924c6..fd61cc5 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
@@ -51,4 +51,11 @@
List<Map<String, Object>> selectScount(String time);
List<AlarmVO> selectListSe(String beginTime, String endTime);
void updateJtype(String id, String czTime, String bz);
+
+ /**
+ * 查询警情总数
+ * @param status 0:本日 1:本周 2:本月
+ * @return
+ */
+ Integer selectAlarmCount(Integer status);
}
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 52a28b1..8703914 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
@@ -17,6 +17,7 @@
package org.springblade.jfpt.alarm.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.jfpt.alarm.entity.Alarm;
@@ -25,6 +26,8 @@
import org.springblade.jfpt.alarm.vo.AlarmVO;
import org.springframework.stereotype.Service;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -97,4 +100,17 @@
baseMapper.updateJtype(id,czTime,bz);
}
+ /**
+ * 查询警情总数
+ * @param status 0:本日 1:本周 2:本月
+ * @return
+ */
+ @Override
+ public Integer selectAlarmCount(Integer status) {
+ QueryWrapper<Alarm> wrapper = new QueryWrapper<>();
+ if (status==0){
+ wrapper.eq("alarmTime",new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
+ }
+ return baseMapper.selectCount(wrapper);
+ }
}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java
index f154ef2..e39d63c 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/catalog/controller/catalogController.java
@@ -28,9 +28,13 @@
import org.springblade.core.secure.BladeUser;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
+import org.springblade.jfpt.alarm.service.IAlarmService;
import org.springblade.jfpt.catalog.entitly.catalog;
import org.springblade.jfpt.catalog.service.catalogService;
import org.springblade.jfpt.catalog.vo.catalogVO;
+import org.springblade.jfpt.equipment.service.IEquipmentService;
+import org.springblade.jfpt.parcel.service.ParcelService;
+import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springblade.system.vo.DeptVO;
import org.springframework.web.bind.annotation.*;
import org.springblade.jfpt.catalog.wrapper.catalogWrapper;
@@ -53,6 +57,12 @@
public class catalogController extends BladeController {
private final org.springblade.jfpt.catalog.service.catalogService catalogService;
+
+ private final IAlarmService iAlarmService;
+
+ private final ParcelService parcelService;
+
+ private final IEquipmentService iEquipmentService;
/**
* 详情
@@ -166,6 +176,7 @@
mapa.put("backgroundColor","#F56C6C");
mapa.put("prefixText","警情总数");
mapa.put("suffixText","条");
+
mape.put("value",list1.get(1).get("counta"));
mape.put("backgroundColor","#67C23A");
mape.put("prefixText","设备总数");
@@ -189,6 +200,83 @@
/**
+ * 系统首页展示条各个总数
+ * @time 2021-03-12 arsn新增
+ * @param response
+ * @param conditionVo 条件 status 0:本日 1:本周 2:本月
+ * @return
+ */
+ @GetMapping("/selectIndexCount")
+ public R selectIndexCount(HttpServletResponse response, ConditionVo conditionVo) {
+ response.setHeader("Access-Control-Allow-Origin", "*");
+ response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
+ response.setHeader("Access-Control-Allow-Credentials","true");
+ if (conditionVo.getStatus()!=null){
+ //数据返回
+ return R.data(getIndexCountData(conditionVo));
+ }
+ //数据返回
+ return null;
+ }
+
+ /**
+ * 按时间条件查询统计数据
+ * @param conditionVo 条件 status 0:本日 1:本周 2:本月
+ * @return
+ */
+ private List<Map<String, Object>> getIndexCountData(ConditionVo conditionVo) {
+ List<Map<String, Object>> lists = new ArrayList<>();
+ Map<String, Object> mapa = new HashMap<String, Object>();
+ Map<String, Object> mape = new HashMap<String, Object>();
+ Map<String, Object> maps = new HashMap<String, Object>();
+ Map<String, Object> mapse = new HashMap<String, Object>();
+ Integer alarmCount = null;
+ List<Integer> parcelCount = new ArrayList<>();
+ Integer contrabandCount = null;
+ Integer equipmentCount = null;
+ Integer status = conditionVo.getStatus();
+ if (conditionVo.getStatus()==0){
+ //1.查询警情总数
+ alarmCount = iAlarmService.selectAlarmCount(status);
+ //2.查询包裹总数,违禁品总数
+ parcelCount = parcelService.selectParcelCount(status);
+ //3.查询在线设备总数
+ equipmentCount = iEquipmentService.selectEquipmentCount(status);
+
+ }
+ //1.警情总数
+ mapa.put("value",alarmCount);
+ mapa.put("backgroundColor","#F56C6C");
+ mapa.put("prefixText","警情总数");
+ mapa.put("suffixText","条");
+
+ //2.包裹总数
+ mape.put("value",parcelCount.get(0));
+ mape.put("backgroundColor","#67C23A");
+ mape.put("prefixText","包裹总数");
+ mape.put("suffixText","个");
+
+ //3.违禁品总数
+ maps.put("value",parcelCount.get(1));
+ maps.put("backgroundColor","#409EFF");
+ maps.put("prefixText","违禁品总数");
+ maps.put("suffixText","个");
+
+ //4.在线设备总数
+ mapse.put("value",equipmentCount);
+ mapse.put("backgroundColor","#E6A23C");
+ mapse.put("prefixText","在线设备总数");
+ mapse.put("suffixText","个");
+ //数据存入集合
+ lists.add(mapa);
+ lists.add(mape);
+ lists.add(maps);
+ lists.add(mapse);
+ return lists;
+ }
+
+
+ /**
* 按行政区统计用户数量
* @param response
* @return
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 158a589..7cfbe7d 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
@@ -73,4 +73,11 @@
*/
List<EquipmentVOS> selectList(String deviceType);
void updateChannel(String heartbeat, String deviceNumber);
+
+ /**
+ * 查询在线设备总数
+ * @param status 状态码 0:本日 1:本周 2:本月
+ * @return
+ */
+ Integer selectEquipmentCount(Integer status);
}
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 dedecfd..75cfd12 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
@@ -27,8 +27,12 @@
import org.springblade.jfpt.equipment.service.IEquipmentService;
import org.springblade.jfpt.equipment.vo.EquipmentVO;
import org.springblade.jfpt.equipment.vo.EquipmentVOS;
+import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -41,6 +45,9 @@
@Service
public class EquipmentServiceImpl extends ServiceImpl<EquipmentMapper, Equipment> implements IEquipmentService {
private static final String PARENT_ID = "parentId";
+
+ //时间差
+ private long TIME_DIFFERENCE = 24*3600*1000;
@Override
public IPage<EquipmentVO> selectEquipmentPage(IPage<EquipmentVO> page, EquipmentVO equipment,List childList) {
@@ -116,4 +123,33 @@
baseMapper.updateChannel(heartbeat, deviceNumber);
}
+ /**
+ * 查询在线设备总数
+ * @param status 状态码 0:本日 1:本周 2:本月
+ * @return
+ */
+ @Override
+ public Integer selectEquipmentCount(Integer status) {
+ //先查询所有的设备
+ List<EquipmentVO> equipmentVOS = baseMapper.listAll();
+ long time = new Date().getTime();
+ int equipmentCount = 0;
+ long hearbeat = 0;
+ //遍历集合数据,对比心跳时间,得出在线的设备数量
+ if (status==0){
+ for (EquipmentVO e:equipmentVOS) {
+ try {
+ hearbeat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(e.getHeartbeat()).getTime();
+ } catch (ParseException parseException) {
+ parseException.printStackTrace();
+ }
+ //对比心跳时间
+ if (time-hearbeat<TIME_DIFFERENCE){
+ equipmentCount+=1;
+ }
+ }
+ }
+ //返回数据
+ return equipmentCount;
+ }
}
diff --git a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
index 0e91bfc..4984921 100644
--- a/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
+++ b/blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/parcel/service/ParcelService.java
@@ -22,4 +22,12 @@
* @return
*/
Object getParcelStatis(ConditionVo conditionVo);
+
+ /**
+ * 查询包裹总数,违禁品总数
+ * @param status 状态码 0:本天 1:本周 2:本月
+ * @return
+ */
+ List<Integer> selectParcelCount(Integer status);
+
}
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 14bd180..52e92e2 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
@@ -8,7 +8,11 @@
import org.springblade.jfpt.parcel.vo.ConditionVo;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
+
+import java.text.SimpleDateFormat;
import java.util.*;
+
+import static org.springblade.core.tool.utils.DateUtil.now;
/**
* 包裹服务实现层
@@ -86,8 +90,8 @@
List<String> listTime = new ArrayList<>();
List<Map<String,Object>> parcelList = new ArrayList<>();
if (conditionVo.getStatus() == 1) {
- //3.获取本周开始时间和结束时间的每一天数组
- listTime = DateUtils.pastDay(DateUtils.getWeekEnd());
+ //3.获取今天之前的每一天数组 2021-3-12 arsn修改
+ listTime = DateUtils.pastDay(new SimpleDateFormat("yyyy-MM-dd").format(new Date()));
List<String> percelTimeList = new ArrayList<>();
for (Object object:objectList) {
//4.取出list里面的值转为map
@@ -160,11 +164,11 @@
startDate = DateUtils.getToday();
endDate = DateUtils.getToday();
}
- //2.2查询本周内每天的数据
+ //2.2查询过去6天及当天的的数据
if (conditionVo.getStatus() == 1) {
- //3.获取本周开始时间和结束时间
- startDate = DateUtils.getWeekStart();
- endDate = DateUtils.getWeekEnd();
+ //3.获取过去6天及当天开始时间和结束时间
+ startDate = DateUtils.getPastDate(6,now());
+ endDate = DateUtils.getToday();
}
//2.2查询本月的数据
if (conditionVo.getStatus() == 2) {
@@ -180,4 +184,35 @@
Map<String, Object> data = (Map<String, Object>) JSONObject.parse(params);
return JSON.parseArray(data.get("result").toString());
}
+
+
+ /**
+ * 查询包裹,违禁品总数
+ * @param status 状态码 0:本天 1:本周 2:本月
+ * @return
+ */
+ @Override
+ public List<Integer> selectParcelCount(Integer status) {
+ List<Integer> list = new ArrayList<>();
+ ConditionVo conditionVo = new ConditionVo();
+ conditionVo.setStatus(status);
+ //获取包裹数据
+ List<Object> parcelData = getParcelData(conditionVo, PARCEL_URL, PARCEL_KEY, PARCEL_SECRET);
+ //查询当天的包裹总数
+ Integer checkCount = null;
+ Integer dangerCount = null;
+ if (status == 0) {
+ for (Object object : parcelData) {
+ //取出list里面的值转为map
+ Map<String, Object> objectMap = (Map<String, Object>) object;
+ checkCount = Integer.parseInt(objectMap.get("checkCount").toString()); //安检包裹数量
+ dangerCount = Integer.parseInt(objectMap.get("dangerCount").toString()); //违禁包裹数量
+ }
+ }
+ //封装数据
+ list.add(checkCount);
+ list.add(dangerCount);
+ //返回数据
+ return list;
+ }
}
--
Gitblit v1.9.3