fuliqi
2024-08-29 f0aa0f9ea4bc9a924a4078fea175c41bc124151d
ycl-server/src/main/java/com/ycl/platform/service/impl/UYErrorTypeCheckServiceImpl.java
@@ -5,11 +5,15 @@
import com.ycl.platform.service.UYErrorTypeCheckService;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.utils.uuid.IdUtils;
import constant.ApiConstants;
import enumeration.ErrorType;
import enumeration.general.WorkOrderStatusEnum;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -30,18 +34,26 @@
     */
    @Override
    public void imageDetectionCheck(List<ImageDetectionResult> dataList) {
        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
        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()) {
            if (0 == item.getSigna1() ) {
                this.genWorkOrder(workOrder, ErrorType.SIGNAL_LOSS, item.getDeviceId());
            }
            // 画面偏色
            if (0 == item.getColor()) {
            if ( 0 == item.getColor()) {
                this.genWorkOrder(workOrder, ErrorType.SCREEN_COLOR_DEVIATION, item.getDeviceId());
            }
            // 雪花干扰
            if (0 == item.getSnow()) {
            if ( 0 == item.getSnow()) {
                this.genWorkOrder(workOrder, ErrorType.SNOW_STORM, item.getDeviceId());
            }
            // 条纹干扰
@@ -122,6 +134,27 @@
    }
    @Override
    public void osdCheck(List<OsdCheckResult> dataList) {
        List<WorkOrder> workOrderList = dataList.stream().map(item -> {
            WorkOrder workOrder = new WorkOrder();
            // osd时间
            if (!ApiConstants.OSD_Correct.equals(item.getOsdTimeCorrect())) {
                this.genWorkOrder(workOrder, ErrorType.CLOCK_SKEW, item.getDeviceNo());
            }
            // 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());
            }
            return workOrder;
        }).collect(Collectors.toList());
        workOrderService.innerAddWorkOrder(workOrderList);
    }
    /**
     * 工单信息
     *
@@ -130,8 +163,15 @@
     * @param serialNumber 国标码
     */
    private void genWorkOrder(WorkOrder workOrder, ErrorType errorType, String serialNumber) {
        workOrder.setWorkOrderNo(IdUtils.timeAddRandomNO(5));
        workOrder.setErrorType(errorType.getValue());
        if (! StringUtils.hasText(workOrder.getWorkOrderNo())) {
            workOrder.setWorkOrderNo(IdUtils.randomNO());
        }
        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);
    }