From db75b45e9a7ce347162b8d3a36e4a7f46cfe199e Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期一, 10 二月 2025 15:30:18 +0800
Subject: [PATCH] 核算导出单独对录像扣分的数量做处理

---
 ycl-server/src/main/java/com/ycl/task/WorkOrderImgTask.java |   51 ++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 34 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 847391b..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();
@@ -67,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