南昌市物联网技防平台-后台
zengh
2021-04-09 6971c195601ecc91b2b7b52af83efed9956dcfe0
blade-service/blade-jfpts/src/main/java/org/springblade/jfpt/equipment/service/impl/EquipmentServiceImpl.java
@@ -27,8 +27,14 @@
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.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -42,6 +48,9 @@
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) {
      return page.setRecords(baseMapper.selectEquipmentPage(page,equipment,childList));
@@ -53,9 +62,29 @@
      return page.setRecords(baseMapper.selectEquipmentPage(page,equipment,null));
   }
   @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));
   }
   @Override
   public List<EquipmentVOS> tree() {
      return ForestNodeMerger.merge(baseMapper.tree());
   }
   @Override
   public List<EquipmentVO> listAll(EquipmentVO equipment) {
      return baseMapper.listAll(equipment);
   }
   @Override
@@ -111,4 +140,66 @@
      baseMapper.updateChannel(heartbeat, deviceNumber);
   }
   /**
    * 查询在线设备总数
    * @param conditionVo status 状态码   0:本日   1:本周   2:本月
    * @return
    */
   @Override
   public Integer selectEquipmentCount(ConditionVo conditionVo) {
      //先查询所有的设备
      List<EquipmentVO> equipmentVOS = baseMapper.listAlls();
      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;
            }
         }
      }
      //返回数据
      return equipmentCount;
   }
   @Override
   public void updateexpireTime(String expireTime, String deviceNumber) {
      baseMapper.updateexpireTime(expireTime,deviceNumber);
   }
   @Override
   public void updateExstate(String state, String reason, String deviceNumber) {
      baseMapper.updateExstate(state, reason, deviceNumber);
   }
   @Override
   public Integer selectEqCz() {
      return baseMapper.selectEqCz();
   }
   @Override
   public Integer selectEqCd() {
      return baseMapper.selectEqCd();
   }
   @Override
   public List<Map<String, Object>> selectEqCy(String time) {
      return baseMapper.selectEqCy(time);
   }
   @Override
   public Integer selectEqCg() {
      return baseMapper.selectEqCg();
   }
}