|
|
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import com.xunmei.common.core.constant.Constants;
|
|
|
import com.xunmei.common.core.constant.SecurityConstants;
|
|
|
+import com.xunmei.common.core.constant.SystemParameterConstant;
|
|
|
import com.xunmei.common.core.domain.host.remote.VideoIntegrityGetReq;
|
|
|
import com.xunmei.common.core.domain.video.MediatorVideoDaysCheck;
|
|
|
import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheck;
|
|
|
@@ -33,7 +34,9 @@ import com.xunmei.host.websocket.enums.TopicTypeEnums;
|
|
|
import com.xunmei.host.websocket.service.RouterService;
|
|
|
import com.xunmei.host.websocket.utils.IotServerUtils;
|
|
|
import com.xunmei.host.websocket.utils.WebSocketUtils;
|
|
|
+import com.xunmei.system.api.RemoteConfigService;
|
|
|
import com.xunmei.system.api.RemoteOrgService;
|
|
|
+import com.xunmei.system.api.domain.SysConfig;
|
|
|
import com.xunmei.system.api.domain.SysOrg;
|
|
|
import com.xunmei.system.api.domain.iot.IotDeviceInfo;
|
|
|
import com.xunmei.system.api.domain.north.NorthError;
|
|
|
@@ -78,6 +81,9 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
|
|
|
@Resource
|
|
|
IIotDeviceInfoService iotDeviceInfoService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ RemoteConfigService remoteConfigService;
|
|
|
+
|
|
|
@Override
|
|
|
public ProductEnums product() {
|
|
|
return ProductEnums.DVS;
|
|
|
@@ -142,7 +148,7 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
|
|
|
object.put("index", req.getIndex());
|
|
|
object.put("recordDate", req.getRecordDate());
|
|
|
final WebsocketResult result = IotServerUtils.invokeHostServer(topic, new JSONObject(), WebSocketConstants.GET_RECORD_INFOS_SERVICES, object);
|
|
|
- WebSocketUtils.sendMessage(req.getIotCode(),JacksonUtils.toJSONString(result));
|
|
|
+ WebSocketUtils.sendMessage(req.getIotCode(), JacksonUtils.toJSONString(result));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -228,8 +234,8 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
|
|
|
videoIntegrityCheck.setOrgId(org.getId());
|
|
|
videoIntegrityCheck.setOrgName(org.getShortName());
|
|
|
videoIntegrityCheck.setOrgPath(org.getPath());
|
|
|
- videoIntegrityCheck.setStatus(getStatus(videoIntegrityCheckDto));
|
|
|
videoIntegrityCheck.setLoseDuration(calculateLoseMinute(videoIntegrityCheck.getLoseSpan()));
|
|
|
+ videoIntegrityCheck.setStatus(getStatus(videoIntegrityCheckDto, videoIntegrityCheck.getLoseDuration()));
|
|
|
videoIntegrityCheck.setRecordType(videoIntegrityCheckDto.getRecordType());
|
|
|
videoIntegrityCheck.setRecordSpan(dealSpan(videoIntegrityCheckDto.getRecordSpan()));
|
|
|
if (!isCompensate) {
|
|
|
@@ -327,10 +333,16 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
|
|
|
return StringUtil.EMPTY_STRING;
|
|
|
}
|
|
|
|
|
|
- private Integer getStatus(VideoIntegrityCheckDto videoIntegrityCheckDto) {
|
|
|
- if (ObjectUtil.isEmpty(videoIntegrityCheckDto.getLoseSpan())) return VideoIntegrityStatus.Full.getId();
|
|
|
+ private Integer getStatus(VideoIntegrityCheckDto videoIntegrityCheckDto, Integer loseDuration) {
|
|
|
+ final List loseSpan = videoIntegrityCheckDto.getLoseSpan();
|
|
|
+ final SysConfig config = remoteConfigService.findSysConfigByCode(SystemParameterConstant.ALARM_LOSE_DURATION, SecurityConstants.INNER);
|
|
|
+ if (ObjectUtil.isNotEmpty(config) && loseDuration <= Integer.parseInt(config.getConfigValue())) {
|
|
|
+ //如果丢失时长小于等于配置的时长,则判定为录像正常
|
|
|
+ loseSpan.clear();
|
|
|
+ }
|
|
|
+ if (ObjectUtil.isEmpty(loseSpan)) return VideoIntegrityStatus.Full.getId();
|
|
|
String checkSpanStr = JSON.toJSONString(videoIntegrityCheckDto.getCheckSpan());
|
|
|
- String loseSpanStr = JSON.toJSONString(videoIntegrityCheckDto.getLoseSpan());
|
|
|
+ String loseSpanStr = JSON.toJSONString(loseSpan);
|
|
|
return checkSpanStr.equals(loseSpanStr) ? VideoIntegrityStatus.AllLoss.getId() : VideoIntegrityStatus.PartialLoss.getId();
|
|
|
|
|
|
}
|