fuliqi
2024-10-14 e4c69bcd4ba18dd022dd4ed86da96c5e4b8b3150
ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java
@@ -1,6 +1,7 @@
package com.ycl.task;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.ycl.config.PlatformConfig;
import com.ycl.platform.domain.entity.DeviceInfo;
import com.ycl.platform.domain.entity.WorkOrderCheckImg;
import com.ycl.platform.domain.vo.DeviceInfoVO;
@@ -8,13 +9,21 @@
import com.ycl.platform.mapper.WorkOrderCheckImgMapper;
import com.ycl.platform.service.WorkOrderService;
import com.ycl.utils.DateUtils;
import com.ycl.utils.uuid.IdUtils;
import constant.Constants;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.bytedeco.javacv.FFmpegFrameGrabber;
import org.bytedeco.javacv.Frame;
import org.bytedeco.javacv.Java2DFrameConverter;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import org.springframework.util.StringUtils;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
@@ -47,7 +56,7 @@
//            new ThreadPoolExecutor.CallerRunsPolicy()
//    );
    public void run() {
    public void run() throws FFmpegFrameGrabber.Exception {
        // 查出最近一周的故障的设备
        Date now = new Date();
        Calendar ca = Calendar.getInstance();
@@ -68,7 +77,13 @@
        }
        for (DeviceInfoVO deviceInfo : deviceList) {
            // 国标设备的编码就是取视频流的设备编码,国标设备就一个。国标设备的每一个通道代表一个摄像头,也就是设备id是取流的通道id
            String frameImg = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), deviceInfo.getDeviceId(), deviceInfo.getWorkOrderNo());
            String frameImg = null;
            try {
                frameImg = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), deviceInfo.getDeviceId(), deviceInfo.getWorkOrderNo());
            } catch (Exception e) {
                e.printStackTrace();
                continue;
            }
            if (StringUtils.hasText(frameImg)) {
                WorkOrderCheckImg img = new WorkOrderCheckImg();
                img.setWorkOrderNo(deviceInfo.getWorkOrderNo());
@@ -76,7 +91,6 @@
                img.setCreateTime(new Date());
                workOrderCheckImgMapper.insert(img);
            }
        }
    }
        }    }
}