Преглед на файлове

在线离线 1:在线 2:离线

sunhh преди 1 година
родител
ревизия
f57838786f

+ 3 - 2
business-service/src/main/java/com/ozs/entity/SkynetHeartbeatLog.java

@@ -10,7 +10,7 @@ import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
 import lombok.NoArgsConstructor;
-
+import java.util.Date;
 import java.io.Serializable;
 import java.math.BigDecimal;
 
@@ -56,5 +56,6 @@ public class SkynetHeartbeatLog extends BaseEntity implements Serializable {
      * 监控相机安装里程位置
      */
     private Integer installMile;
-   
+
+    private Date createTime;
 }

+ 4 - 0
business-service/src/main/java/com/ozs/mapper/BaseCameraManagementMapper.java

@@ -2,9 +2,11 @@ package com.ozs.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ozs.entity.BaseCameraManagement;
+import com.ozs.entity.SkynetHeartbeatLog;
 import com.ozs.entity.vo.BaseCameraManagementVo;
 import com.ozs.entity.vo.MsgAlarmVo;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 import java.util.Map;
@@ -25,4 +27,6 @@ public interface BaseCameraManagementMapper extends BaseMapper<BaseCameraManagem
     Integer countCamera(MsgAlarmVo msgAlarmVo);
 
     Map<String, Integer> getMessageStatisticsCamera();
+
+    SkynetHeartbeatLog selectSkynetHeartbeatLogByCameraCode(@Param("cameraCode") String cameraCode);
 }

+ 30 - 5
business-service/src/main/java/com/ozs/service/impl/BaseCameraManagementServiceImpl.java

@@ -8,10 +8,7 @@ import com.ozs.common.exception.ServiceException;
 import com.ozs.common.utils.StringUtils;
 import com.ozs.common.utils.bean.BeanUtils;
 import com.ozs.common.utils.bean.BeanValidators;
-import com.ozs.entity.BaseCameraManagement;
-import com.ozs.entity.BaseDeviceDynamicManagement;
-import com.ozs.entity.BaseRailwayManagement;
-import com.ozs.entity.BaseUser;
+import com.ozs.entity.*;
 import com.ozs.entity.vo.BaseCameraManagementHomeVo;
 import com.ozs.entity.vo.BaseCameraManagementVo;
 import com.ozs.entity.vo.BaseCameraManagementVos;
@@ -55,6 +52,8 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
     private BaseDeptMapper baseDeptMapper;
     @Autowired
     private BaseRailwayManagementService baseRailwayManagementService;
+    @Autowired
+    private SkynetHeartbeatLogMapper skynetHeartbeatLogMapper;
 
     /**
      * 相机台账管理表导入
@@ -344,6 +343,32 @@ public class BaseCameraManagementServiceImpl extends ServiceImpl<BaseCameraManag
 
     @Override
     public Map<String, Integer> getMessageStatisticsCamera() {
-        return baseCameraManagementMapper.getMessageStatisticsCamera();
+        LambdaQueryWrapper<BaseCameraManagement> lw = new LambdaQueryWrapper<>();
+        List<BaseCameraManagement> baseCameraManagements = baseCameraManagementMapper.selectList(lw);
+        int online = 0;
+        int offline = 0;
+        for (BaseCameraManagement baseCameraManagement : baseCameraManagements) {
+            if (!StringUtils.isEmptySunhh(baseCameraManagement) && !StringUtils.isEmptySunhh(baseCameraManagement.getCameraCode())) {
+                SkynetHeartbeatLog skynetHeartbeatLog = baseCameraManagementMapper.selectSkynetHeartbeatLogByCameraCode(baseCameraManagement.getCameraCode());
+                if (StringUtils.isEmptySunhh(skynetHeartbeatLog)) {
+                    offline++;
+                } else {
+                    long timeNow = new Date().getTime();
+                    long createTime = skynetHeartbeatLog.getCreateTime().getTime();
+                    long thereHourMillis = 60 * 60 * 1000 * 3;
+                    long timeNew = timeNow - thereHourMillis;
+                    if (timeNew <= createTime) {
+                        online++;
+                    } else {
+                        offline++;
+                    }
+                }
+            }
+        }
+        Map<String, Integer> map = new HashMap<>();
+        map.put("countAllCamera", baseCameraManagements.size());
+        map.put("online", online);
+        map.put("offline", offline);
+        return map;
     }
 }

+ 4 - 0
business-service/src/main/resources/mapper/BaseCameraManagementMapper.xml

@@ -40,4 +40,8 @@
             SUM(CASE online WHEN '1' THEN 1 ELSE 0 end) AS onlineCamera
         from base_camera_management
     </select>
+
+    <select id="selectSkynetHeartbeatLogByCameraCode" resultType="com.ozs.entity.SkynetHeartbeatLog" parameterType="java.lang.String">
+        select /*+ GROUP_OPT_FLAG(1)*/ id, camera_code, max(create_time) as createTime from skynet_heartbeat_log where camera_code = #{cameraCode}
+    </select>
 </mapper>