package com.ycl.task;
|
|
import com.ycl.platform.domain.vo.DeviceInfoVO;
|
import com.ycl.platform.service.WorkOrderService;
|
import lombok.RequiredArgsConstructor;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
import org.springframework.util.StringUtils;
|
|
import java.util.List;
|
import java.util.concurrent.ArrayBlockingQueue;
|
import java.util.concurrent.ExecutorService;
|
import java.util.concurrent.ThreadPoolExecutor;
|
import java.util.concurrent.TimeUnit;
|
|
/**
|
* 工单恢复图片获取
|
*
|
* @author:xp
|
* @date:2024/8/21 11:56
|
*/
|
@Slf4j
|
@RequiredArgsConstructor
|
@Component("workOrderImgTask")
|
public class WorkOrderImgTask {
|
|
private final WorkOrderService workOrderService;
|
|
private static final ExecutorService executorService = new ThreadPoolExecutor(8,
|
24,
|
5000,
|
TimeUnit.SECONDS,
|
new ArrayBlockingQueue<>(10),
|
new ThreadPoolExecutor.CallerRunsPolicy()
|
);
|
|
public void run() {
|
// 查出故障的设备
|
List<DeviceInfoVO> deviceList = workOrderService.hasErrorWorkOrderList();
|
for (DeviceInfoVO deviceInfo : deviceList) {
|
executorService.submit(() -> {
|
String frameImg = workOrderService.getFrameImgByDevice(deviceInfo.getDeviceId(), deviceInfo.getChannelId());
|
if (StringUtils.hasText(frameImg)) {
|
workOrderService.updateImgById(deviceInfo.getWorkOrderId(), frameImg);
|
}
|
});
|
}
|
}
|
|
}
|