From 9e11e94f8a92a62695657bb2b3b59a1cf47058a5 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 17 十月 2025 13:38:11 +0800
Subject: [PATCH] 大屏显示问题以及报备导出
---
ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java | 52 +++++++++++++++++++++++++++++++++++-----------------
1 files changed, 35 insertions(+), 17 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java b/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java
index 80a32cc..28ec3f1 100644
--- a/ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java
+++ b/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;
@@ -39,15 +48,15 @@
private final DeviceInfoMapper deviceInfoMapper;
private final WorkOrderCheckImgMapper workOrderCheckImgMapper;
-// private static final ExecutorService executorService = new ThreadPoolExecutor(8,
-// 10,
-// 5000,
-// TimeUnit.SECONDS,
-// new ArrayBlockingQueue<>(1024),
-// new ThreadPoolExecutor.CallerRunsPolicy()
-// );
+ private static final ExecutorService executorService = new ThreadPoolExecutor(16,
+ 128,
+ 5000,
+ TimeUnit.SECONDS,
+ new ArrayBlockingQueue<>(1000),
+ new ThreadPoolExecutor.CallerRunsPolicy()
+ );
- public void run() {
+ public void run() throws FFmpegFrameGrabber.Exception {
// 鏌ュ嚭鏈�杩戜竴鍛ㄧ殑鏁呴殰鐨勮澶�
Date now = new Date();
Calendar ca = Calendar.getInstance();
@@ -57,6 +66,7 @@
if (CollectionUtils.isEmpty(deviceList)) {
return;
}
+ log.info("姝ゆ鍏辨娴嬪伐鍗曞浘鐗囧伐鍗曟暟" + deviceList.size());
// 鏌ュ嚭鍥芥爣璁惧锛屽氨涓�鏉℃暟鎹�
List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper)
.orderByDesc(DeviceInfo::getUpdateTime)
@@ -66,16 +76,24 @@
return;
}
for (DeviceInfoVO deviceInfo : deviceList) {
- // 鍥芥爣璁惧鐨勭紪鐮佸氨鏄彇瑙嗛娴佺殑璁惧缂栫爜锛屽浗鏍囪澶囧氨涓�涓�傚浗鏍囪澶囩殑姣忎竴涓�氶亾浠h〃涓�涓憚鍍忓ご锛屼篃灏辨槸璁惧id鏄彇娴佺殑閫氶亾id
- String frameImg = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), deviceInfo.getDeviceId(), deviceInfo.getWorkOrderNo());
- if (StringUtils.hasText(frameImg)) {
- WorkOrderCheckImg img = new WorkOrderCheckImg();
- img.setWorkOrderNo(deviceInfo.getWorkOrderNo());
- img.setImgUrl(frameImg);
- img.setCreateTime(new Date());
- workOrderCheckImgMapper.insert(img);
- }
+ executorService.submit(() -> {
+ // 鍥芥爣璁惧鐨勭紪鐮佸氨鏄彇瑙嗛娴佺殑璁惧缂栫爜锛屽浗鏍囪澶囧氨涓�涓�傚浗鏍囪澶囩殑姣忎竴涓�氶亾浠h〃涓�涓憚鍍忓ご锛屼篃灏辨槸璁惧id鏄彇娴佺殑閫氶亾id
+ String frameImg = null;
+ try {
+ frameImg = workOrderService.getFrameImgByDevice(gbDevices.get(0).getDeviceId(), deviceInfo.getDeviceId(), deviceInfo.getWorkOrderNo());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ if (StringUtils.hasText(frameImg)) {
+ WorkOrderCheckImg img = new WorkOrderCheckImg();
+ img.setWorkOrderNo(deviceInfo.getWorkOrderNo());
+ img.setImgUrl(frameImg);
+ img.setCreateTime(new Date());
+ workOrderCheckImgMapper.insert(img);
+ }
+ });
}
+ log.info("宸ュ崟妫�娴嬪浘鐗囩粨鏉�");
}
}
--
Gitblit v1.8.0