|
|
|
@ -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<OcrPictureMybatisDao,
|
|
|
|
|
return ocrTaskchildPictureService.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, pictureId));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public IPage<OcrPicture> pagePictureSimilarity(String pictureId, Page<OcrPicture> page, QueryWrapper<OcrPicture> queryWrapper) {
|
|
|
|
|
OcrPictureDuplicateHis ocrPictureDuplicateHis = ocrPictureDuplicateHisService.queryByPictureId(Long.parseLong(pictureId));
|
|
|
|
|
if(ocrPictureDuplicateHis==null){
|
|
|
|
|
page.setTotal(0);
|
|
|
|
|
page.setRecords(new ArrayList<>());
|
|
|
|
|
return page;
|
|
|
|
|
}
|
|
|
|
|
Map<String,Object> picturesMap = JSONObject.parseObject(ocrPictureDuplicateHis.getCheckDuplicateResultHisJson());
|
|
|
|
|
// 将Map转换成List
|
|
|
|
|
List<Map.Entry<String, Integer>> pictureMapList = new ArrayList(picturesMap.entrySet());
|
|
|
|
|
// 根据Map的值进行排序
|
|
|
|
|
pictureMapList.sort(Map.Entry.comparingByValue());
|
|
|
|
|
//将排序后的list倒序
|
|
|
|
|
Collections.reverse(pictureMapList);
|
|
|
|
|
//赋值总数到page中
|
|
|
|
|
page.setTotal(pictureMapList.size());
|
|
|
|
|
//对list分页获取
|
|
|
|
|
List<Map.Entry<String, Integer>> pageMapList = new ArrayList<>();
|
|
|
|
|
Long fromIndex = (page.getCurrent()-1) * page.getSize();
|
|
|
|
|
Long toIndex =fromIndex + page.getSize();
|
|
|
|
|
//判断如果当前页,是否还有整页完整数据
|
|
|
|
|
if(toIndex > pictureMapList.size()){
|
|
|
|
|
if(fromIndex<pictureMapList.size()){
|
|
|
|
|
//没有整页完整数据,但是还有数据
|
|
|
|
|
pageMapList = pictureMapList.subList(Integer.parseInt(fromIndex.toString()),pictureMapList.size());
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
pageMapList = pictureMapList.subList(Integer.parseInt(fromIndex.toString()),Integer.parseInt(toIndex.toString()));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//判断是否还需要获取关联查询数据
|
|
|
|
|
if(pageMapList.size()<=0){
|
|
|
|
|
page.setRecords(new ArrayList<>());
|
|
|
|
|
return page;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//有数据得情况下,关联查询出对应数据
|
|
|
|
|
List<Long> pictureIds = new ArrayList<>();
|
|
|
|
|
for (Map.Entry<String, Integer> pictureHisEntry : pageMapList) {
|
|
|
|
|
pictureIds.add(Long.parseLong(pictureHisEntry.getKey()));
|
|
|
|
|
}
|
|
|
|
|
QueryWrapper queryWrapperP = new QueryWrapper();
|
|
|
|
|
queryWrapperP.in("id",pictureIds);
|
|
|
|
|
List<OcrPicture> 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;
|
|
|
|
|