From c83101eb62f5d4906b9c01ceea6b21a37f9e84d8 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 18 十一月 2025 09:24:53 +0800
Subject: [PATCH] bug修复
---
ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java | 208 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 142 insertions(+), 66 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
index d48d425..2495202 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
@@ -1,16 +1,34 @@
package com.ycl.platform.service.impl;
+import com.ycl.platform.controller.YwThresholdController;
import com.ycl.platform.domain.entity.WorkOrder;
+import com.ycl.platform.domain.entity.YwThreshold;
+import com.ycl.platform.domain.result.HK.SnapshotDataMonitorResult;
import com.ycl.platform.domain.result.UY.*;
+import com.ycl.platform.mapper.WorkOrderMapper;
+import com.ycl.platform.service.IYwThresholdService;
import com.ycl.platform.service.UYErrorTypeCheckService;
import com.ycl.platform.service.WorkOrderService;
+import com.ycl.utils.DateUtils;
import com.ycl.utils.uuid.IdUtils;
+import constant.ApiConstants;
+import constant.YwThreadConstants;
+import enumeration.CompareType;
import enumeration.ErrorType;
+import enumeration.general.BusinessTypeEnum;
import enumeration.general.WorkOrderStatusEnum;
+import lombok.Data;
import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
+import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -19,9 +37,12 @@
*/
@Service
@RequiredArgsConstructor
+@Slf4j
public class UYErrorTypeCheckServiceImpl implements UYErrorTypeCheckService {
private final WorkOrderService workOrderService;
+ private final IYwThresholdService ywThresholdService;
+ private final WorkOrderMapper workOrderMapper;
/**
* 鍥惧儚妫�娴嬬敓鎴愬伐鍗�
@@ -30,38 +51,41 @@
*/
@Override
public void imageDetectionCheck(List<ImageDetectionResult> dataList) {
- List<WorkOrder> workOrderList = dataList.stream().map(item -> {
- WorkOrder workOrder = new WorkOrder();
- // 淇″彿缂哄け
- if (0 == item.getSigna1()) {
- this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId());
- }
- // 鐢婚潰鍋忚壊
- if (0 == item.getColor()) {
- this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId());
- }
- // 闆姳骞叉壈
- if (0 == item.getSnow()) {
- this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId());
- }
- // 鏉$汗骞叉壈
- if (0 == item.getStripe()) {
- this.genWorkOrder(workOrder, ErrorType.STRIPE_INTERFERENCE, item.getDeviceId());
- }
- // 鐢婚潰閬尅
- if (0 == item.getShade()) {
- this.genWorkOrder(workOrder, ErrorType.SCREEN_OCCLUSION, item.getDeviceId());
- }
- // 娓呮櫚搴﹀紓甯�
- if (0 == item.getBlur()) {
- this.genWorkOrder(workOrder, ErrorType.ABNORMAL_CLARITY, item.getDeviceId());
- }
- // 浜害寮傚父
- if (0 == item.getLight()) {
- this.genWorkOrder(workOrder, ErrorType.ABNORMAL_BRIGHTNESS, item.getDeviceId());
- }
- return workOrder;
- }).collect(Collectors.toList());
+ List<WorkOrder> workOrderList = dataList.stream().filter(item -> -1 == item.getSignal()
+ || -1 == item.getImage()
+ )
+ .map(item -> {
+ WorkOrder workOrder = new WorkOrder();
+ // 淇″彿缂哄け
+ if (-1 == item.getSigna1()) {
+ this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
+ }
+ // 鐢婚潰鍋忚壊
+ if (-1 == item.getColor()) {
+ this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
+ }
+ // 闆姳骞叉壈
+ if (-1 == item.getSnow()) {
+ this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
+ }
+ // 鏉$汗骞叉壈
+ if (-1 == item.getStripe()) {
+ this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
+ }
+ // 鐢婚潰閬尅
+ if (-1 == item.getShade()) {
+ this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
+ }
+ // 娓呮櫚搴﹀紓甯�
+ if (-1 == item.getBlur()) {
+ this.genWorkOrder(workOrder, ErrorType.ABNORMAL_PIC, item.getDeviceId());
+ }
+// // 浜害寮傚父
+// if (-1 == item.getLight()) {
+// this.genWorkOrder(workOrder, ErrorType.ABNORMAL_BRIGHTNESS, item.getDeviceId());
+// }
+ return workOrder;
+ }).collect(Collectors.toList());
workOrderService.innerAddWorkOrder(workOrderList);
}
@@ -74,18 +98,22 @@
public void monitorQualifyCheck(List<MonitorQualifyResult> dataList) {
List<WorkOrder> workOrderList = dataList.stream().map(item -> {
WorkOrder workOrder = new WorkOrder();
- if (item.getSerialNumber().getError()
- || item.getCivilCode().getError()
- || item.getIntegrated_device().getError()
- || item.getIp().getError()
- || item.getJkdwlx().getError()
- || item.getLatitude().getError()
- || item.getLongitude().getError()
- || item.getMacdz().getError()
- || item.getSbzt().getError()
- || item.getName().getError()
- || item.getSxjcjqy().getError()
- || item.getSxjgnlx().getError()) {
+ //TODO:寰呬紭浜戜慨澶嶏紝閬垮厤宸ュ崟
+ MonitorQualifyResult.QualifyResult qualifyResult = new MonitorQualifyResult.QualifyResult();
+ qualifyResult.setError(false);
+ item.setIntegrated_device(qualifyResult);
+ if (item.getSerialNumber() == null || item.getSerialNumber().getError() ||
+ item.getCivilCode() == null || item.getCivilCode().getError() ||
+ item.getIntegrated_device() == null || item.getIntegrated_device().getError() ||
+ item.getIp() == null || item.getIp().getError() ||
+ item.getJkdwlx() == null || item.getJkdwlx().getError() ||
+ item.getLatitude() == null || item.getLatitude().getError() ||
+ item.getLongitude() == null || item.getLongitude().getError() ||
+ item.getMacdz() == null || item.getMacdz().getError() ||
+ item.getSbzt() == null || item.getSbzt().getError() ||
+ item.getName() == null || item.getName().getError() ||
+ item.getSxjcjqy() == null || item.getSxjcjqy().getError() ||
+ item.getSxjgnlx() == null || item.getSxjgnlx().getError()) {
this.genWorkOrder(workOrder, ErrorType.POINT_INFO_ERROR, item.getSerialNumber().getValue());
}
return workOrder;
@@ -95,43 +123,91 @@
@Override
public void videoOnlineCheck(List<VideoOnlineResult> dataList) {
- List<WorkOrder> workOrderList = dataList.stream().map(item -> {
- WorkOrder workOrder = new WorkOrder();
- if (-1 == item.getStatus()) {
- this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getDeviceId());
- } else if (0 == item.getStatus()) {
- this.genWorkOrder(workOrder, ErrorType.UNKNOWN, item.getDeviceId());
- }
- return workOrder;
- }).collect(Collectors.toList());
+ //鏌ヨ鏁版嵁搴撳凡瀛樺湪鐨勭绾垮伐鍗曡幏鍙杋p闆嗗悎锛屽墧闄�
+ List<String> ips = workOrderMapper.getOfflineWorkOrder();
+ List<WorkOrder> workOrderList = dataList.stream()
+ .filter(item -> CollectionUtils.isEmpty(ips) || !ips.contains(item.getIpAddr()))
+ .map(item -> {
+ WorkOrder workOrder = new WorkOrder();
+ if (ApiConstants.UY_OnlineSite_Offline.equals(item.getStatus())) {
+ this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getDeviceId());
+ }
+ return workOrder;
+ }).collect(Collectors.toList());
+ workOrderService.innerAddWorkOrder(workOrderList);
+ }
+
+ @Override
+ public void hkOnlineCheck(List<SnapshotDataMonitorResult> dataList) {
+ //鏌ヨ鏁版嵁搴撳凡瀛樺湪鐨勭绾垮伐鍗曡幏鍙杋p闆嗗悎锛屽墧闄�
+ List<String> ips = workOrderMapper.getOfflineWorkOrder();
+ List<WorkOrder> workOrderList = dataList.stream()
+ .filter(item -> CollectionUtils.isEmpty(ips) || !ips.contains(item.getIp()))
+ .map(item -> {
+ WorkOrder workOrder = new WorkOrder();
+ this.genWorkOrder(workOrder, ErrorType.DEVICE_OFFLINE, item.getExternalIndexCode());
+ return workOrder;
+ }).collect(Collectors.toList());
workOrderService.innerAddWorkOrder(workOrderList);
}
@Override
public void recordMetaDSumCheck(List<RecordMetaDSumResult> dataList) {
- List<WorkOrder> workOrderList = dataList.stream().map(item -> {
- WorkOrder workOrder = new WorkOrder();
- if (0 == item.getRecordStatus()) {
- this.genWorkOrder(workOrder, ErrorType.VIDEO_LOSS, item.getDeviceId());
- } else if (-1 == item.getRecordStatus()) {
- this.genWorkOrder(workOrder, ErrorType.VIDEO_NONE, item.getDeviceId());
- }
- return workOrder;
- }).collect(Collectors.toList());
- workOrderService.innerAddWorkOrder(workOrderList);
+// List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+// WorkOrder workOrder = new WorkOrder();
+// if (0 == item.getRecordStatus()) {
+// this.genWorkOrder(workOrder, ErrorType.VIDEO_LOSS, item.getDeviceId());
+// } else if (-1 == item.getRecordStatus()) {
+// this.genWorkOrder(workOrder, ErrorType.VIDEO_NONE, item.getDeviceId());
+// }
+// return workOrder;
+// }).collect(Collectors.toList());
+// workOrderService.innerAddWorkOrder(workOrderList);
}
+
+ @Override
+ public void osdCheck(List<OsdCheckResult> dataList) {
+ Map<String, YwThreshold> ywThresholdMap = ywThresholdService.getYwThresholdMap(BusinessTypeEnum.VIDEO.name());
+ List<WorkOrder> workOrderList = dataList.stream().map(item -> {
+ WorkOrder workOrder = new WorkOrder();
+ // osd淇℃伅
+ if (!ApiConstants.OSD_Correct.equals(item.getOsdProvinceCorrect())
+ || (!ApiConstants.OSD_Correct.equals(item.getOsdCityCorrect()))
+ || (!ApiConstants.OSD_Correct.equals(item.getOsdPartCorrect()))
+ || (!ApiConstants.OSD_Correct.equals(item.getOsdNameCorrect()))
+ ) {
+ this.genWorkOrder(workOrder, ErrorType.OSD_ERROR, item.getDeviceNo());
+ }
+ // osd鏃堕棿 鏃堕棿闇�瑕佽蛋闃堝�兼鏌� 杩欓噷闇�瑕佹妸鏃堕棿鏀惧湪鍚庨潰锛氬鏋滄椂闂村浜庡緟涓嬪彂鐨勯槇鍊奸偅涔堝伐鍗曠姸鎬佷細鏀逛负寰呬笅鍙戠殑宸ュ崟
+// if (!ApiConstants.OSD_Correct.equals(item.getOsdTimeCorrect())) {
+// this.genWorkOrder(workOrder, ErrorType.CLOCK_SKEW, item.getDeviceNo());
+// }
+ long checkTime = item.getCheckTime().getTime();
+ long osdTime = item.getSetTime().getTime();
+ Long timeDiff = Math.abs((checkTime - osdTime) / 1000);
+ ywThresholdService.check(YwThreadConstants.Video_DiffTime, timeDiff, item.getDeviceNo(), ywThresholdMap, workOrder, CompareType.MORE_THAN_EQ, ErrorType.CLOCK_SKEW.getValue());
+ return workOrder;
+ }).collect(Collectors.toList());
+
+ log.error("osdCheck鑾峰緱鎻掑叆宸ュ崟:{}",workOrderList);
+ workOrderService.innerAddWorkOrder(workOrderList);
+ }
/**
* 宸ュ崟淇℃伅
*
* @param workOrder
- * @param errorType 鏁呴殰绫诲瀷
+ * @param errorType 鏁呴殰绫诲瀷
* @param serialNumber 鍥芥爣鐮�
*/
private void genWorkOrder(WorkOrder workOrder, ErrorType errorType, String serialNumber) {
- workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
- workOrder.setErrorType(errorType.getValue());
+ if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) {
+ workOrder.setErrorTypeList(new ArrayList<>());
+ workOrder.getErrorTypeList().add(errorType.getValue());
+ } else {
+ workOrder.getErrorTypeList().add(errorType.getValue());
+ }
workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED);
workOrder.setSerialNumber(serialNumber);
}
--
Gitblit v1.8.0