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); } 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); } } 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 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); } 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; } } 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); } 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; } }