From 075e9d515c7954e7eaf3d86e77c9ff97f74b09c8 Mon Sep 17 00:00:00 2001 From: DELL Date: Wed, 10 Apr 2024 12:13:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9=E5=8F=AF=E7=96=91?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E7=9B=B8=E4=BC=BC=E5=BA=A6=E6=8E=92?= =?UTF-8?q?=E5=BA=8F=E5=AD=97=E6=AE=B5=E5=90=8D=EF=BC=8C=E9=80=82=E9=85=8D?= =?UTF-8?q?=E5=89=8D=E7=AB=AF=EF=BC=8C=E5=90=8C=E6=97=B6=E4=BF=AE=E6=94=B9?= =?UTF-8?q?apifox=EF=BC=8C=E6=96=B0=E5=A2=9E=E4=B8=8B=E8=BD=BD=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E7=9B=91=E6=B5=8B=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=AF=A5?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E6=9A=82=E4=B8=8D=E5=AE=8C=E5=96=84=EF=BC=8C?= =?UTF-8?q?=E8=BF=98=E9=9C=80=E8=A6=81=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jyjz/xiaoyao/ocr/api/PrevailCloudApi.java | 5 ++ .../ocr/api/impl/PrevailCloudApiImpl.java | 51 +++++++++++++++++++ .../ocr/controller/ApiTestController.java | 23 +++++++++ .../OcrTaskchildDubiousFileController.java | 4 +- .../IOcrTaskchildDubiousFileService.java | 2 +- .../OcrTaskchildDubiousFileServiceImpl.java | 10 ++-- 6 files changed, 87 insertions(+), 8 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java index af7f7356..f3fef5b1 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java @@ -21,4 +21,9 @@ public interface PrevailCloudApi { ApiPage pullPictureSource(PictureSourceParameter pictureSourceParameter) throws Exception; void sendFlowTaskResult(String tenantId,String data) throws Exception; + + /** + * 图片下载监测 + */ + boolean startImageDownloadMonitoring(String localImagePath) throws Exception; } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java index 295280a5..c683ce4f 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java @@ -2,17 +2,23 @@ package cn.jyjz.xiaoyao.ocr.api.impl; import cn.hutool.core.bean.BeanUtil; import cn.hutool.json.JSONUtil; +import cn.jyjz.xiaoyao.common.base.util.SpringUtils; import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; import cn.jyjz.xiaoyao.ocr.api.utils.*; +import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; +import cn.jyjz.xiaoyao.ocr.service.OcrPictureService; import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; +import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity; import cn.jyjz.xiaoyao.ocr.util.httputil.HttpClient; import cn.jyjz.xiaoyao.ocr.util.httputil.HttpMethod; import cn.jyjz.xiaoyao.ocr.util.httputil.HttpParamers; import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.annotation.JsonFormat; import liquibase.pro.packaged.S; +import lombok.SneakyThrows; import org.apache.commons.collections.SequencedHashMap; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -135,4 +141,49 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { System.out.println(responseJsonStr); } + /** + * 启动任务 图片下载监测 + * + * @return + */ + @Override + public boolean startImageDownloadMonitoring(String localImagePath) { + Runnable runnable = new Runnable() { + @SneakyThrows + @Override + public void run() { + OcrPictureService ocrPictureService = SpringUtils.getBean("ocrPictureService"); + logger.debug("图片下载监测中..."); + // 查询数据库中local_picture_url字段为null的图片数据 + LambdaQueryWrapper ocrPictureLambdaQueryWrapper = new LambdaQueryWrapper<>(); + ocrPictureLambdaQueryWrapper.isNull(OcrPicture::getLocalpictrueurl); + List ocrPictureList = new ArrayList<>(); + ocrPictureList = ocrPictureService.list(ocrPictureLambdaQueryWrapper); + logger.debug("待执行下载图片数量:{}",ocrPictureList.size()); + for (OcrPicture pictureOne : ocrPictureList) { + // 创建 PictureImgToLocalEntity 对象并赋值 + PictureImgToLocalEntity entity = new PictureImgToLocalEntity(); + entity.setPictureId(pictureOne.getId()); + entity.setImgUrl(pictureOne.getImgurl()); + String imgurl = pictureOne.getImgurl(); + entity.setLocalPath(localImagePath + imgurl.substring(imgurl.lastIndexOf("/"))); + //本地调试下载地址 +// entity.setLocalPath("D:\\server\\data\\images" + imgurl.substring(imgurl.lastIndexOf("/"))); + // 将对象添加到下载图片队列中 + boolean isAddedToQueue = false; + while (!isAddedToQueue) { + isAddedToQueue =TaskQueue.pictureImgToLocalPushData(entity); + if (!isAddedToQueue) { + logger.info("图片下载监测-添加队列失败,等待五秒后继续进行添加,图片id:{}",entity.getPictureId()); + Thread.sleep(5000); + } + } + } + } + }; + Thread thread = new Thread(runnable); + thread.start(); + return true; + } + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java index 5e6dec72..d73831f7 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/ApiTestController.java @@ -7,9 +7,11 @@ import cn.jyjz.xiaoyao.ocr.api.PrevailCloudApi; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceParameter; import cn.jyjz.xiaoyao.ocr.api.entity.PictureSourceResult; import cn.jyjz.xiaoyao.ocr.api.utils.ApiPage; +import cn.jyjz.xiaoyao.ocr.thread.ImageDownloadMonitoring; import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -30,6 +32,10 @@ import java.util.List; @RestController @RequestMapping("/test/api") public class ApiTestController { + + @Value("${ocr.api.wly.localImagePath}") + private String localImagePath; + @Autowired private PrevailCloudApi prevailCloudApi; @@ -168,5 +174,22 @@ public class ApiTestController { thread.start(); return "开启入库"; } + + @GetMapping("downloadImageMonitor") + public String downloadImageMonitor(HttpServletRequest request) { + String message; + try { + boolean result = prevailCloudApi.startImageDownloadMonitoring(localImagePath); + if (result) { + message = "操作成功"; + } else { + message = "操作失败"; + } + } catch (Exception e) { + e.printStackTrace(); + message = "操作失败,发生异常:" + e.getMessage(); + } + return message; + } } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildDubiousFileController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildDubiousFileController.java index e80278c2..a75020c6 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildDubiousFileController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrTaskchildDubiousFileController.java @@ -68,7 +68,7 @@ public class OcrTaskchildDubiousFileController { @RequestParam(value = "pageNo", required = false, defaultValue = "0") Integer pageNo, @RequestParam(value = "pageSize", required = false, defaultValue = "10") Integer pageSize, @RequestParam(value = "orderByUptime",required = false) String orderByUptime, - @RequestParam(value = "orderBysimilarity",required = false) String orderBysimilarity) { + @RequestParam(value = "orderBySimilarity",required = false) String orderBySimilarity) { String tenantId = request.getHeader("X-Tenant-Id"); @@ -98,7 +98,7 @@ public class OcrTaskchildDubiousFileController { // // //IPage page = ocrpictureservice.page(iPage, wrapper); - Page page = ocrTaskchildDubiousFileService.dubiousfilelist(pageNo,pageSize,orderByUptime,orderBysimilarity,userToken,tenantId); + Page page = ocrTaskchildDubiousFileService.dubiousfilelist(pageNo,pageSize,orderByUptime,orderBySimilarity,userToken,tenantId); return ResultVoUtil.success(page); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskchildDubiousFileService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskchildDubiousFileService.java index fd361fb5..aca7ac40 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskchildDubiousFileService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrTaskchildDubiousFileService.java @@ -17,6 +17,6 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IOcrTaskchildDubiousFileService extends IService { - Page dubiousfilelist(Integer pageNo, Integer pageSize,String orderByUptime,String orderBysimilarity,UserToken userToken, String tenantId); + Page dubiousfilelist(Integer pageNo, Integer pageSize,String orderByUptime,String orderBySimilarity,UserToken userToken, String tenantId); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildDubiousFileServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildDubiousFileServiceImpl.java index df425f2f..01ce77a6 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildDubiousFileServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrTaskchildDubiousFileServiceImpl.java @@ -49,13 +49,13 @@ public class OcrTaskchildDubiousFileServiceImpl extends ServiceImpl dubiousfilelist(Integer pageNo, Integer pageSize,String orderByUptime,String orderBysimilarity,UserToken userToken, String tenantId) { + public Page dubiousfilelist(Integer pageNo, Integer pageSize,String orderByUptime,String orderBySimilarity,UserToken userToken, String tenantId) { Page objectPage = new Page<>(Integer.valueOf(pageNo), Integer.valueOf(pageSize)); @@ -89,11 +89,11 @@ public class OcrTaskchildDubiousFileServiceImpl extends ServiceImpl similarityComparator = null; - if ("asc".equals(orderBysimilarity)) { + if ("asc".equals(orderBySimilarity)) { similarityComparator = Comparator.comparing(OcrTaskChildPictureVo::getSimilarityScore); - } else if ("desc".equals(orderBysimilarity)) { + } else if ("desc".equals(orderBySimilarity)) { similarityComparator = Comparator.comparing(OcrTaskChildPictureVo::getSimilarityScore).reversed(); } From 6f38e0fb8d817ead95d797b9e51bff07bcbc326b Mon Sep 17 00:00:00 2001 From: DELL Date: Wed, 10 Apr 2024 12:34:23 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E8=A7=A3=E5=86=B3=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java | 1 + .../java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java | 1 + 2 files changed, 2 insertions(+) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java index 74a21eb6..35da1e23 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/PrevailCloudApi.java @@ -32,4 +32,5 @@ public interface PrevailCloudApi { * 图片下载监测 */ boolean startImageDownloadMonitoring(String localImagePath) throws Exception; + } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java index 8d81f8c3..e45d0687 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/api/impl/PrevailCloudApiImpl.java @@ -216,5 +216,6 @@ public class PrevailCloudApiImpl implements PrevailCloudApi { thread.start(); return true; } + }