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