package com.ycl.platform.service.impl; import com.ycl.platform.domain.entity.WorkOrder; import com.ycl.platform.domain.result.UY.*; import com.ycl.platform.service.UYErrorTypeCheckService; import com.ycl.platform.service.WorkOrderService; import com.ycl.utils.uuid.IdUtils; import enumeration.ErrorType; import enumeration.general.WorkOrderStatusEnum; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; /** * @author:xp * @date:2024/8/19 13:46 */ @Service @RequiredArgsConstructor public class UYErrorTypeCheckServiceImpl implements UYErrorTypeCheckService { private final WorkOrderService workOrderService; /** * 图像检测生成工单 * * @param dataList */ @Override public void imageDetectionCheck(List dataList) { List 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()); workOrderService.innerAddWorkOrder(workOrderList); } /** * 点位信息异常 * * @param dataList */ @Override public void monitorQualifyCheck(List dataList) { List 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()) { this.genWorkOrder(workOrder, ErrorType.POINT_INFO_ERROR, item.getSerialNumber().getValue()); } return workOrder; }).collect(Collectors.toList()); workOrderService.innerAddWorkOrder(workOrderList); } @Override public void videoOnlineCheck(List dataList) { List 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()); workOrderService.innerAddWorkOrder(workOrderList); } @Override public void recordMetaDSumCheck(List dataList) { List 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); } /** * 工单信息 * * @param workOrder * @param errorType 故障类型 * @param serialNumber 国标码 */ private void genWorkOrder(WorkOrder workOrder, ErrorType errorType, String serialNumber) { workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5)); workOrder.setErrorType(errorType.getValue()); workOrder.setStatus(WorkOrderStatusEnum.DISTRIBUTED); workOrder.setSerialNumber(serialNumber); } }