|
|
@@ -1,7 +1,6 @@
|
|
|
package com.xunmei.iot.service.impl;
|
|
|
|
|
|
import cn.hutool.core.date.DateField;
|
|
|
-import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson2.JSON;
|
|
|
@@ -251,23 +250,34 @@ public class VideoDiagnosisServiceImpl extends ServiceImpl<IotDvrChannelMapper,
|
|
|
if (ObjectUtil.isEmpty(logList)) {
|
|
|
return videoDiagnostic;
|
|
|
}
|
|
|
- List<Map> res = new ArrayList<>();
|
|
|
+ int singleLostAlarmNums = 0;
|
|
|
+ int occludeAlarmNums = 0;
|
|
|
for (MediatorVideoDiagnosisLog diagnosisLog : logList) {
|
|
|
String detailInfo = diagnosisLog.getDetailInfo();
|
|
|
if (ObjectUtil.isEmpty(detailInfo)) {
|
|
|
continue;
|
|
|
}
|
|
|
List<Map> maps = JSON.parseArray(detailInfo, Map.class);
|
|
|
- res.addAll(maps);
|
|
|
+ for (Map map : maps) {
|
|
|
+ final Object type = map.get("type");
|
|
|
+ final Object state = map.get("state");
|
|
|
+ if (ObjectUtil.hasNull(type, state)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ final String typeStr = type.toString();
|
|
|
+ final String stateStr = state.toString();
|
|
|
+ if ("0".equals(stateStr)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if ("0".equals(typeStr)) {
|
|
|
+ singleLostAlarmNums++;
|
|
|
+ }
|
|
|
+ if ("1".equals(typeStr)) {
|
|
|
+ occludeAlarmNums++;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- long singleLostAlarmNums = res.stream()
|
|
|
- .filter(map -> ObjectUtil.equal(String.valueOf(map.get("type")), "0"))
|
|
|
- .filter(map -> ObjectUtil.equal(String.valueOf(map.get("state")), "1"))
|
|
|
- .count();
|
|
|
- long occludeAlarmNums = res.stream()
|
|
|
- .filter(map -> ObjectUtil.equal(String.valueOf(map.get("type")), "1"))
|
|
|
- .filter(map -> ObjectUtil.equal(String.valueOf(map.get("state")), "1"))
|
|
|
- .count();
|
|
|
+
|
|
|
videoDiagnostic.setSingleLostAlarmNums((int) singleLostAlarmNums);
|
|
|
videoDiagnostic.setOccludeAlarmNums((int) occludeAlarmNums);
|
|
|
return videoDiagnostic;
|