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<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());
|
workOrderService.innerAddWorkOrder(workOrderList);
|
}
|
|
/**
|
* 点位信息异常
|
*
|
* @param dataList
|
*/
|
@Override
|
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()) {
|
this.genWorkOrder(workOrder, ErrorType.POINT_INFO_ERROR, item.getSerialNumber().getValue());
|
}
|
return workOrder;
|
}).collect(Collectors.toList());
|
workOrderService.innerAddWorkOrder(workOrderList);
|
}
|
|
@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());
|
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);
|
}
|
|
|
/**
|
* 工单信息
|
*
|
* @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);
|
}
|
}
|