From 758a5ee8f5c5c96837b2459cf223569b5b389207 Mon Sep 17 00:00:00 2001 From: shuliYao <1397940314@qq.com> Date: Sun, 7 Apr 2024 23:05:53 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E6=8B=89=E5=8F=96?= =?UTF-8?q?=E6=97=A0=E9=87=8F=E4=BA=912.0=E6=95=B0=E6=8D=AE=E4=B8=A2?= =?UTF-8?q?=E5=A4=B1=EF=BC=8C=E7=BA=BF=E7=A8=8B=E6=9C=AA=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E7=AD=89=E5=BE=85=EF=BC=8C=E8=AF=B7=E6=B1=82=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=A4=AA=E9=A2=91=E7=B9=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/service/OcrPictureService.java | 7 ++ .../service/impl/OcrPictureServiceImpl.java | 103 ++++++++++++++---- .../cn/jyjz/xiaoyao/ocr/thread/TaskQueue.java | 4 +- .../xiaoyao/ocr/thread/TaskThreadPool.java | 17 ++- .../ocr/thread/tasks/PictureDisposeTask.java | 7 +- .../thread/tasks/PictureImgToLocalTask.java | 5 + .../xiaoyao/ocr/util/DownloadImgUtil.java | 2 +- 7 files changed, 114 insertions(+), 31 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java index f6803232..9273216d 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/OcrPictureService.java @@ -6,6 +6,7 @@ import cn.jyjz.xiaoyao.common.base.vo.ResultVo; import cn.jyjz.xiaoyao.common.base.vo.UserToken; import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService; import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -61,6 +62,12 @@ public interface OcrPictureService extends BaseService { */ int savePictures(List ocrPictureList); + /** + * 新增图片信息 + * @param ocrPicture + */ + void savePicturesInfo(OcrPicture ocrPicture); + ResultVo createPackageTask(List pageList, String tenantId, UserToken userToken, String searchMonth, HttpServletRequest req, String buessinessno, Map paramMap); Map getOcrPictureClassifyAndHash(String img); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java index cd11baa2..04e9a2be 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java @@ -26,6 +26,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import liquibase.pro.packaged.E; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -38,7 +39,9 @@ import javax.imageio.ImageIO; import javax.servlet.http.HttpServletRequest; import java.awt.color.ColorSpace; import java.awt.image.BufferedImage; +import java.io.File; import java.io.IOException; +import java.io.InputStream; import java.math.BigDecimal; import java.net.URL; import java.net.URLConnection; @@ -665,7 +668,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl ocrPictureList) { + public int savePictures(List ocrPictureList){ //1.字典数据 解析入库 boolean b = dataDictionaryUtil.pictureDataDictionarySaveArray(ocrPictureList); @@ -673,16 +676,26 @@ public class OcrPictureServiceImpl extends BaseServiceImpl list = new ArrayList<>(); for (OcrPicture ocrPicture : ocrPictureList) { if (StringUtils.isNotBlank(ocrPicture.getImgurl())) { - OcrPictureInfo imageInfo = getImageInfo(ocrPicture.getImgurl()); + OcrPictureInfo imageInfo = getImageInfo(ocrPicture.getImgurl(),true); if (ObjectUtil.isNotEmpty(imageInfo)) { imageInfo.setPictureId(ocrPicture.getId()); imageInfo.setImgName(ocrPicture.getImgname()); @@ -701,18 +714,49 @@ public class OcrPictureServiceImpl extends BaseServiceImpl list) { for (OcrPicture ocrPicture : list) { PictureImgToLocalEntity entity = new PictureImgToLocalEntity(); @@ -764,7 +810,22 @@ public class OcrPictureServiceImpl extends BaseServiceImpl(), Executors.defaultThreadFactory(), new ThreadPoolExecutor.DiscardOldestPolicy()); + + threadPoolImg = new ThreadPoolExecutor( + 10, + 40, + 3, + TimeUnit.SECONDS, + new LinkedBlockingDeque<>(), + Executors.defaultThreadFactory(), + new ThreadPoolExecutor.DiscardOldestPolicy()); } } @@ -45,8 +55,8 @@ public class TaskThreadPool { @SneakyThrows @Override public void run() { - logger.debug("无量云接口数据处理消费线程检测中..."); while (true) { + logger.debug("无量云接口数据处理消费线程检测中...,队列数量:{}",TaskQueue.pictureDisposeQueue.size()); PictureSourceResult pictureSourceResult = TaskQueue.pictureDisposePullData(); if (pictureSourceResult != null) { threadPool.execute(new PictureDisposeTask(pictureSourceResult)); @@ -71,13 +81,12 @@ public class TaskThreadPool { @SneakyThrows @Override public void run() { - logger.debug("图片下载消费线程检测中..."); - while (true) { + logger.debug("图片下载消费线程检测中...,队列数量:{}",TaskQueue.pictureImgToLocalQueue.size()); try { PictureImgToLocalEntity pictureImgToLocalEntity = TaskQueue.pictureImgToLocalPullData(); if (pictureImgToLocalEntity != null) { - threadPool.execute(new PictureImgToLocalTask(pictureImgToLocalEntity)); + threadPoolImg.execute(new PictureImgToLocalTask(pictureImgToLocalEntity)); } else { Thread.sleep(5000); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureDisposeTask.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureDisposeTask.java index 7d55ba48..833ca7f0 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureDisposeTask.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureDisposeTask.java @@ -205,9 +205,9 @@ public class PictureDisposeTask implements Runnable{ picture.setSubmitDateTimestamp(pictureSourceResult.getSubmitTime()); // picture.setSubmitDateTimestamp(System.currentTimeMillis()); picture.setPhotoDateTimestamp(System.currentTimeMillis()); - - System.out.println("SubmitDateTimestamp1=================>>>>>>>"+pictureSourceResult.getSubmitTime()); - System.out.println("SubmitDateTimestamp2=================>>>>>>>"+picture.getSubmitDateTimestamp()); +// +// System.out.println("SubmitDateTimestamp1=================>>>>>>>"+pictureSourceResult.getSubmitTime()); +// System.out.println("SubmitDateTimestamp2=================>>>>>>>"+picture.getSubmitDateTimestamp()); //定位距离 picture.setField12(pictureSourceResult.getDistance()); @@ -230,6 +230,7 @@ public class PictureDisposeTask implements Runnable{ //调用图片入库方法 int size = ocrPictureService.savePictures(ocrPictureList); + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureImgToLocalTask.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureImgToLocalTask.java index 6be700d6..cef05e06 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureImgToLocalTask.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/thread/tasks/PictureImgToLocalTask.java @@ -74,12 +74,17 @@ public class PictureImgToLocalTask implements Runnable { picture.setImgHash(ocrPictureClassifyAndHash.get("hash")); picture.setClassificationid(ocrPictureClassifyAndHash.get("classId")); } + // 获取拍照时间 // Long timestamp = ocrPictureService.getPhotoDateTime(picture); // if(timestamp != 0L){ // picture.setPhotoDateTimestamp(timestamp); // } ocrPictureService.updateById(picture); + logger.info("图片本地化,回写数据完成!"); + logger.info("开启获取图片信息操作!"); + ocrPictureService.savePicturesInfo(picture); + logger.info("获取图片信息操作,结束!"); } } } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/DownloadImgUtil.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/DownloadImgUtil.java index bd203e8e..76bd6243 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/DownloadImgUtil.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/util/DownloadImgUtil.java @@ -33,7 +33,7 @@ public class DownloadImgUtil { out.write(buffer, 0, n); } } catch (Exception e) { - logger.error(e.getMessage()); + logger.error("图片本地化,转储图片异常:",e.getMessage()); return false; } return true;