From cd2cfd37366002f790a2ed1435962d4eff7d5cec Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 01 Jun 2021 09:39:30 +0800
Subject: [PATCH] 版本合并
---
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java | 194 ++++++++++++++++++++++++++++++++++++++----------
1 files changed, 154 insertions(+), 40 deletions(-)
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 24b0863..afa4666 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
@@ -16,27 +16,27 @@
*/
package org.springblade.jfpt.equipment.service.impl;
-import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springblade.core.tool.node.ForestNodeMerger;
import org.springblade.core.tool.utils.Func;
-import org.springblade.jfpt.alarm.vo.AlarmVO;
+import org.springblade.jfpt.alarm.service.IAlarmService;
import org.springblade.jfpt.equipment.entity.Equipment;
+import org.springblade.jfpt.equipment.entity.EquipmentPlayInfo;
+import org.springblade.jfpt.equipment.feign.OneNetStudioApi;
import org.springblade.jfpt.equipment.mapper.EquipmentMapper;
import org.springblade.jfpt.equipment.service.IEquipmentService;
import org.springblade.jfpt.equipment.vo.EquipmentVO;
import org.springblade.jfpt.equipment.vo.EquipmentVOS;
import org.springblade.jfpt.parcel.vo.ConditionVo;
-import org.springblade.system.cache.SysCache;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import javax.annotation.Resource;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
/**
* 服务实现类
@@ -49,7 +49,13 @@
private static final String PARENT_ID = "parentId";
//时间差
- private long TIME_DIFFERENCE = 24*3600*1000;
+ private long TIME_DIFFERENCE = 150*1000;
+
+ @Resource
+ private OneNetStudioApi oneNetStudioApi;
+
+ @Autowired
+ private IAlarmService iAlarmService;
@Override
public IPage<EquipmentVO> selectEquipmentPage(IPage<EquipmentVO> page, EquipmentVO equipment,List childList) {
@@ -66,13 +72,13 @@
@Override
public IPage<EquipmentVO> selectDeptPages(IPage<EquipmentVO> page, EquipmentVO equipment,String pid,String dxdype) {
- List deptIdList;
- if (pid != null && !pid.equals("")){
- deptIdList = SysCache.getDeptChildIds(Long.valueOf(pid));
- }else{
- deptIdList = SysCache.getDeptChildIds(null);
- }
- return page.setRecords(baseMapper.selectDeptPages(page,equipment,deptIdList,dxdype));
+// List deptIdList;
+// if (pid != null && !pid.equals("")){
+// deptIdList = SysCache.getDeptChildIds(Long.valueOf(pid));
+// }else{
+// deptIdList = SysCache.getDeptChildIds(null);
+// }
+ return page.setRecords(baseMapper.selectDeptPages(page,equipment,pid,dxdype));
}
@@ -83,13 +89,18 @@
}
@Override
- public List<EquipmentVO> listAll() {
- return baseMapper.listAll();
+ public List<EquipmentVO> listAll(EquipmentVO equipment) {
+ return baseMapper.listAll(equipment);
}
@Override
public void updateOne(Equipment equipment) {
baseMapper.updateOne(equipment);
+ }
+
+ @Override
+ public void saveImg(EquipmentVO equipment) {
+ baseMapper.saveImg(equipment);
}
@Override
@@ -147,28 +158,10 @@
*/
@Override
public Integer selectEquipmentCount(ConditionVo conditionVo) {
- //先查询所有的设备
- List<EquipmentVO> equipmentVOS = baseMapper.listAll();
- long time = new Date().getTime();
- int equipmentCount = 0;
- long hearbeat = 0;
- //遍历集合数据,对比心跳时间,得出在线的设备数量
- int status =0;
- if (status==0 && equipmentVOS.size()>0){
- for (EquipmentVO e:equipmentVOS) {
- try {
- if(null!=e.getHeartbeat()) {
- 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;
- }
- }
- }
+ //更新设备状态
+ updateEquipmentDtype();
+ //查询在线设备数量
+ Integer equipmentCount = baseMapper.selectOnlineEqNum();
//返回数据
return equipmentCount;
}
@@ -178,9 +171,32 @@
baseMapper.updateexpireTime(expireTime,deviceNumber);
}
+ /**
+ * 修改设备状态 2021-5-6 arsn修改
+ * @param state 设备状态
+ * @param reason 原因
+ * @param deviceNumber 设备编号
+ */
@Override
+ @Transactional(rollbackFor = Exception.class)
public void updateExstate(String state, String reason, String deviceNumber) {
- baseMapper.updateExstate(state, reason, deviceNumber);
+ if(state.equals("系统故障")){
+ String dType = "3";
+ baseMapper.updateExstate(dType, reason, deviceNumber);
+ }
+ if(state.equals("一键报警")){
+ String dType = "2";
+ baseMapper.updateExstate(dType, reason, deviceNumber);
+ }
+ if(state.equals("处理完成")){
+ //查询当前设备是否还存在其他报警
+ int eqCount = iAlarmService.selectEqCount(deviceNumber);
+ //只有一条记录时才去修改设备的状态
+ if (eqCount==1 || eqCount==0) {
+ String dType = "1";
+ baseMapper.updateExstate(dType, reason, deviceNumber);
+ }
+ }
}
@Override
@@ -202,4 +218,102 @@
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;
+ }
+
+
+ /**
+ * 更新设备状态
+ */
+ @Override
+ public void updateEquipmentDtype() {
+ //查询所有的设备,不包含故障和警情状态
+ List<Equipment> equipment = baseMapper.selAllEq();
+ long time = System.currentTimeMillis();
+ long hearbeat = 0;
+ List<Long> equipmentListz = new ArrayList<>();
+ List<Long> equipmentListl = new ArrayList<>();
+ for (Equipment e:equipment) {
+ try {
+ if(null!=e.getHeartbeat()) {
+ hearbeat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(e.getHeartbeat()).getTime();
+ }
+ } catch (ParseException parseException) {
+ parseException.printStackTrace();
+ }
+ //对比心跳时间,在线
+ if (time-hearbeat< TIME_DIFFERENCE){
+ if (null==e.getDtype() || !e.getDtype().equals("1")){
+ //需要修改为上线
+ equipmentListz.add(e.getId());
+ }
+ }
+ //不在线
+ if (time-hearbeat>=TIME_DIFFERENCE){
+ if (null==e.getDtype() || !e.getDtype().equals("0")){
+ //需要修改为下线
+ equipmentListl.add(e.getId());
+ }
+ }
+ }
+ //批量更新数据
+ if (equipmentListz.size()>0){
+ baseMapper.updateEqListz(equipmentListz);
+ // 在 onenet 平台上线
+ oneNetStudioApi.equipmentUp(equipmentListz);
+ }
+ if (equipmentListl.size()>0){
+ baseMapper.updateEqListl(equipmentListl);
+ //去 onenet 平台下线
+ oneNetStudioApi.equipmentDown(equipmentListl);
+ }
+ }
+
+ /**
+ * 获取设备视频播放的信息
+ * @param equipmentPlayInfo 视频播放地址对象,只需包含设备编号,以及视频播放格式即可
+ * @return
+ */
+ @Override
+ public EquipmentPlayInfo selectEquimentPlayInfo(EquipmentPlayInfo equipmentPlayInfo) {
+ return baseMapper.selectEquimentPlayInfo(equipmentPlayInfo);
+ }
+
+ /**
+ * 新增或修改设备视频播放的信息
+ * @param equipmentPlayInfo 视频播放地址对象
+ * @return
+ */
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean saveOrUpdateEquipmentPlayInfo(EquipmentPlayInfo equipmentPlayInfo) {
+ equipmentPlayInfo.setCreateTime(new Date());
+ //新增或修改
+ int result = null==equipmentPlayInfo.getId()? baseMapper.saveEquipmentPlayInfo(equipmentPlayInfo)
+ :baseMapper.updateEquipmentPlayInfo(equipmentPlayInfo);
+ //返回
+ return result>0? true:false;
+ }
}
--
Gitblit v1.9.3