From 3b0516a2959e25576e4f3fda697a3b025d06c8c9 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期二, 24 六月 2025 14:09:07 +0800 Subject: [PATCH] 每日录像可用指标添加日志,修改大屏为查看当前月平均 --- ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java | 208 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 133 insertions(+), 75 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 d68398a..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,19 +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; /** @@ -22,9 +37,12 @@ */ @Service @RequiredArgsConstructor +@Slf4j public class UYErrorTypeCheckServiceImpl implements UYErrorTypeCheckService { private final WorkOrderService workOrderService; + private final IYwThresholdService ywThresholdService; + private final WorkOrderMapper workOrderMapper; /** * 鍥惧儚妫�娴嬬敓鎴愬伐鍗� @@ -33,46 +51,41 @@ */ @Override public void imageDetectionCheck(List<ImageDetectionResult> dataList) { - List<WorkOrder> workOrderList = dataList.stream().filter(item -> 0 == item.getSigna1() - || 0 == item.getColor() - || 0 == item.getSnow() - || 0 == item.getStripe() - || 0 == item.getShade() - || 0 == item.getBlur() - || 0 == item.getLight() - ) - .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); } @@ -85,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; @@ -106,44 +123,85 @@ @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) { - if (! StringUtils.hasText(workOrder.getWorkOrderNo())) { - workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); - } if (CollectionUtils.isEmpty(workOrder.getErrorTypeList())) { workOrder.setErrorTypeList(new ArrayList<>()); workOrder.getErrorTypeList().add(errorType.getValue()); -- Gitblit v1.8.0