From f643d0dd3d452c41a0b86e9cf85508965bd836f5 Mon Sep 17 00:00:00 2001 From: shuliYao <1397940314@qq.com> Date: Mon, 27 May 2024 06:48:46 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=BE=E7=89=87=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=EF=BC=8C=E8=BF=BD=E5=8A=A0=E6=8C=89=E5=9B=BE?= =?UTF-8?q?=E7=89=87id=E6=9F=A5=E8=AF=A2=E7=9B=B8=E4=BC=BC=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=8A=9F=E8=83=BD=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/controller/OcrPictureController.java | 9 ++- .../ocr/service/OcrPictureService.java | 4 ++ .../service/impl/OcrPictureServiceImpl.java | 57 ++++++++++++++++++- 3 files changed, 67 insertions(+), 3 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java index 88a56a0a..5b896ede 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrPictureController.java @@ -336,7 +336,14 @@ public class OcrPictureController extends BaseController { queryWrapper.isNotNull("local_pictrue_url"); Page page = new Page(pageNo, pageSize); - IPage pageList = ocrPictureService.page(page, queryWrapper); + IPage pageList = null; + //判断是否带有图片查询的条件,图片查询获取的是相似图片的的数据。 + String pictureId = req.getParameter("isupload"); + if(StringUtils.isNotBlank(pictureId)){ + pageList = ocrPictureService.pagePictureSimilarity(pictureId,page, queryWrapper); + }else{ + pageList = ocrPictureService.page(page, queryWrapper); + } List ocrPictures = pageList.getRecords(); List ocrPicturesNew = new ArrayList<>(); 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 ef6d5684..1754000b 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 @@ -7,7 +7,9 @@ import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import javax.servlet.http.HttpServletRequest; import java.util.List; @@ -91,4 +93,6 @@ public interface OcrPictureService extends BaseService { OcrPicture selectByRemark(String remark); OcrTaskchildPicture getOcrTaskChildPictureByPictureId(String pictureId); + + IPage pagePictureSimilarity(String pictureId, Page page, QueryWrapper queryWrapper); } 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 13bfcf0e..46550148 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 @@ -3,7 +3,6 @@ package cn.jyjz.xiaoyao.ocr.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; -import cn.jyjz.flowable.common.ProcessConstant; import cn.jyjz.flowable.service.IFlowInstanceService; import cn.jyjz.xiaoyao.common.base.service.UserTokenService; import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil; @@ -14,7 +13,6 @@ import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl; import cn.jyjz.xiaoyao.oa.from.dataobject.Category; import cn.jyjz.xiaoyao.oa.from.service.CategoryService; import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; -import cn.jyjz.xiaoyao.oa.from.service.impl.UserapproveServiceImpl; import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig; import cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureMybatisDao; import cn.jyjz.xiaoyao.ocr.dataobject.*; @@ -353,6 +351,61 @@ public class OcrPictureServiceImpl extends BaseServiceImpl().eq(OcrTaskchildPicture::getPictureid, pictureId)); } + @Override + public IPage pagePictureSimilarity(String pictureId, Page page, QueryWrapper queryWrapper) { + OcrPictureDuplicateHis ocrPictureDuplicateHis = ocrPictureDuplicateHisService.queryByPictureId(Long.parseLong(pictureId)); + if(ocrPictureDuplicateHis==null){ + page.setTotal(0); + page.setRecords(new ArrayList<>()); + return page; + } + Map picturesMap = JSONObject.parseObject(ocrPictureDuplicateHis.getCheckDuplicateResultHisJson()); + // 将Map转换成List + List> pictureMapList = new ArrayList(picturesMap.entrySet()); + // 根据Map的值进行排序 + pictureMapList.sort(Map.Entry.comparingByValue()); + //将排序后的list倒序 + Collections.reverse(pictureMapList); + //赋值总数到page中 + page.setTotal(pictureMapList.size()); + //对list分页获取 + List> pageMapList = new ArrayList<>(); + Long fromIndex = (page.getCurrent()-1) * page.getSize(); + Long toIndex =fromIndex + page.getSize(); + //判断如果当前页,是否还有整页完整数据 + if(toIndex > pictureMapList.size()){ + if(fromIndex()); + return page; + } + + //有数据得情况下,关联查询出对应数据 + List pictureIds = new ArrayList<>(); + for (Map.Entry pictureHisEntry : pageMapList) { + pictureIds.add(Long.parseLong(pictureHisEntry.getKey())); + } + QueryWrapper queryWrapperP = new QueryWrapper(); + queryWrapperP.in("id",pictureIds); + List pictures = baseMapper.selectList(queryWrapperP); + //此处相似阈值进行替换,替换为与改图片比对得阈值 + for (OcrPicture picture : pictures) { + String similarity = picturesMap.get(picture.getId().toString()).toString(); + picture.setSimilarityscore(Integer.parseInt(similarity)); + } + Collections.sort(pictures, (o1, o2) -> Integer.compare(o2.getSimilarityscore(), o1.getSimilarityscore())); + page.setRecords(pictures); + return page; + } + // @Override // public Long getPhotoDateTime(OcrPicture picture) { // long timestamp = 0L;