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(); }