|
|
|
@ -5,27 +5,25 @@ import cn.hutool.core.date.DateUtil;
|
|
|
|
|
import cn.jyjz.xiaoyao.admin.service.LogService;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.exception.CommonExceptionCodeEnum;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.exception.ServiceException;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.util.DateUtils;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.util.SpringUtils;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.util.StringUtils;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.util.*;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
|
|
|
|
|
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataDao.OcrCheckDuplicateMapper;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.*;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.OcrCheckDuplicate;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.OcrCheckDuplicateResult;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureDuplicateHis;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.*;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.HashCompareUtil;
|
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.ImageClassUtil;
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
|
|
import io.swagger.annotations.ApiModelProperty;
|
|
|
|
|
import org.apache.commons.collections4.CollectionUtils;
|
|
|
|
|
import org.apache.commons.lang3.ObjectUtils;
|
|
|
|
|
import org.slf4j.Logger;
|
|
|
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
|
@ -192,8 +190,17 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
//阈值分组map
|
|
|
|
|
Map<String,Integer> similarityGroupOrderMap = new HashMap<>();
|
|
|
|
|
//1.开启比对任务
|
|
|
|
|
boolean isCompleteSimilarGroupIdNull;
|
|
|
|
|
for (OcrPicture ocrPicture : ocrPictureList) {
|
|
|
|
|
|
|
|
|
|
// 添加相似度百分百分组id
|
|
|
|
|
if (ObjectUtils.isEmpty(ocrPicture.getCompleteSimilarGroupId())) {
|
|
|
|
|
ocrPicture.setCompleteSimilarGroupId(SnowFlakeUtil.nextId());
|
|
|
|
|
pictureService.updateById(ocrPicture);
|
|
|
|
|
isCompleteSimilarGroupIdNull = true;
|
|
|
|
|
} else {
|
|
|
|
|
isCompleteSimilarGroupIdNull = false;
|
|
|
|
|
}
|
|
|
|
|
logService.addLog(103, "AI获取图片相似度接口", sysUser, "sendParams");
|
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isBlank(ocrPicture.getImgHash())) {
|
|
|
|
|
String url = ocrPicture.getLocalpictrueurl();
|
|
|
|
@ -280,6 +287,20 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
maxSimilarity = b1;
|
|
|
|
|
}
|
|
|
|
|
resultMap.put(ocrPictureNext.getId().toString(), resultValue);
|
|
|
|
|
|
|
|
|
|
// 判断相似度是否一样
|
|
|
|
|
BigDecimal allSimilarity = new BigDecimal("100");
|
|
|
|
|
if (b1.compareTo(allSimilarity) == 0) {
|
|
|
|
|
if (ObjectUtils.isEmpty(ocrPictureNext.getCompleteSimilarGroupId())) {
|
|
|
|
|
ocrPictureNext.setCompleteSimilarGroupId(ocrPicture.getCompleteSimilarGroupId());
|
|
|
|
|
pictureService.updateById(ocrPictureNext);
|
|
|
|
|
} else {
|
|
|
|
|
if (!ocrPictureNext.getCompleteSimilarGroupId().equals(ocrPicture.getCompleteSimilarGroupId()) && isCompleteSimilarGroupIdNull) {
|
|
|
|
|
ocrPicture.setCompleteSimilarGroupId(ocrPictureNext.getCompleteSimilarGroupId());
|
|
|
|
|
pictureService.updateById(ocrPicture);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//1.2 比对结束组装入库参数
|
|
|
|
|
//定义比对存储对象
|
|
|
|
|