|
|
|
@ -23,6 +23,7 @@ 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;
|
|
|
|
@ -184,7 +185,10 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
|
|
|
|
|
//图片信息不能为空
|
|
|
|
|
if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
|
|
|
|
|
|
|
|
|
|
//阈值分组从1开始
|
|
|
|
|
int similarityGroupOrder = 1;
|
|
|
|
|
//阈值分组map
|
|
|
|
|
Map<String,Integer> similarityGroupOrderMap = new HashMap<>();
|
|
|
|
|
//1.开启比对任务
|
|
|
|
|
for (OcrPicture ocrPicture : ocrPictureList) {
|
|
|
|
|
|
|
|
|
@ -247,12 +251,27 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
}
|
|
|
|
|
ocrPictureNext.setResult(resultValue);
|
|
|
|
|
BigDecimal b1 = new BigDecimal(resultValue);
|
|
|
|
|
//比对是否重复图片
|
|
|
|
|
// BigDecimal b2 = new BigDecimal("100");
|
|
|
|
|
// int val = b1.compareTo(b2);
|
|
|
|
|
// if (val == 0) {
|
|
|
|
|
// havePoint = true;
|
|
|
|
|
// }
|
|
|
|
|
//进行图片分组
|
|
|
|
|
BigDecimal b2 = new BigDecimal("95");
|
|
|
|
|
if (b1.compareTo(b2)==1) {
|
|
|
|
|
//阈值超过95 对两张图片进行阈值分组
|
|
|
|
|
//1.获取主图片组别编号
|
|
|
|
|
Integer groupOrderNo = similarityGroupOrderMap.get(ocrPicture.getId().toString());
|
|
|
|
|
//2.获取对比图片组别编号
|
|
|
|
|
Integer nextGroupOrderNo = similarityGroupOrderMap.get(ocrPictureNext.getId().toString());
|
|
|
|
|
if(groupOrderNo==null && nextGroupOrderNo==null){
|
|
|
|
|
//2.1 两种图片都没有组别,则创建新的组别
|
|
|
|
|
similarityGroupOrderMap.put(ocrPictureNext.getId().toString(),similarityGroupOrder);
|
|
|
|
|
similarityGroupOrderMap.put(ocrPicture.getId().toString(),similarityGroupOrder);
|
|
|
|
|
similarityGroupOrder = similarityGroupOrder+1;
|
|
|
|
|
}else if(groupOrderNo!=null && nextGroupOrderNo==null){
|
|
|
|
|
//2.2 主图有组别,对比图没有,将对比图分入主图组别
|
|
|
|
|
similarityGroupOrderMap.put(ocrPictureNext.getId().toString(),groupOrderNo);
|
|
|
|
|
}else if(nextGroupOrderNo!=null && groupOrderNo==null){
|
|
|
|
|
//2.3 对比图有组别,主图没有,将主图分入对比图组别
|
|
|
|
|
similarityGroupOrderMap.put(ocrPicture.getId().toString(),nextGroupOrderNo);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
//当前阈值大于 最高阈值 进行替换
|
|
|
|
|
if (b1.compareTo(maxSimilarity) == 1) {
|
|
|
|
|
maxSimilarity = b1;
|
|
|
|
@ -266,6 +285,9 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
ocrCheckDuplicateResult.setMaxSimilarity(maxSimilarity.doubleValue());
|
|
|
|
|
ocrCheckDuplicateResult.setCompareResultJson(JSONObject.toJSONString(resultMap));
|
|
|
|
|
ocrCheckDuplicateResult.setCheckDuplicateId(checkDuplicateId);
|
|
|
|
|
if(similarityGroupOrderMap.get(ocrPicture.getId().toString())!=null){
|
|
|
|
|
ocrCheckDuplicateResult.setSimilarityGroupOrder(similarityGroupOrderMap.get(ocrPicture.getId().toString()));
|
|
|
|
|
}
|
|
|
|
|
saveList.add(ocrCheckDuplicateResult);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|