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;