Merge pull request 'feat: 图审相似度列表接口,增加相似度分组排序' (#37) from feature/taskPageSimilarityGroupOrder into test

Reviewed-on: #37
pull/38/head
yaoshuli 1 year ago
commit 6040528bc4

@ -84,6 +84,7 @@ public class OcrCheckDuplicateController {
queryWrapper.eq("tenant_id", tenantId); queryWrapper.eq("tenant_id", tenantId);
queryWrapper.eq("suspiciousfile", "0"); queryWrapper.eq("suspiciousfile", "0");
queryWrapper.orderBy(true,true,"submit_date_timestamp");
List<OcrPicture> pageList = ocrPictureService.listPage(queryWrapper); List<OcrPicture> pageList = ocrPictureService.listPage(queryWrapper);
if (null != pageList && !pageList.isEmpty()) { if (null != pageList && !pageList.isEmpty()) {
if (pageList.size() == 1) { if (pageList.size() == 1) {

@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
/** /**
* <p> * <p>
* *
* </p> * </p>
* *
* @author author * @author author
@ -50,5 +50,7 @@ public class OcrCheckDuplicateResult implements Serializable {
@ApiModelProperty(value = "当前图片在当前任务包下比对最高阈值") @ApiModelProperty(value = "当前图片在当前任务包下比对最高阈值")
private Double maxSimilarity; private Double maxSimilarity;
@ApiModelProperty(value = "阈值分组排序值,数值越低排序越靠前,")
private Integer similarityGroupOrder;
} }

@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
@ -184,7 +185,10 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
//图片信息不能为空 //图片信息不能为空
if (null != ocrPictureList && !ocrPictureList.isEmpty()) { if (null != ocrPictureList && !ocrPictureList.isEmpty()) {
//阈值分组从1开始
int similarityGroupOrder = 1;
//阈值分组map
Map<String,Integer> similarityGroupOrderMap = new HashMap<>();
//1.开启比对任务 //1.开启比对任务
for (OcrPicture ocrPicture : ocrPictureList) { for (OcrPicture ocrPicture : ocrPictureList) {
@ -247,12 +251,27 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
} }
ocrPictureNext.setResult(resultValue); ocrPictureNext.setResult(resultValue);
BigDecimal b1 = new BigDecimal(resultValue); BigDecimal b1 = new BigDecimal(resultValue);
//比对是否重复图片 //进行图片分组
// BigDecimal b2 = new BigDecimal("100"); BigDecimal b2 = new BigDecimal("95");
// int val = b1.compareTo(b2); if (b1.compareTo(b2)==1) {
// if (val == 0) { //阈值超过95 对两张图片进行阈值分组
// havePoint = true; //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) { if (b1.compareTo(maxSimilarity) == 1) {
maxSimilarity = b1; maxSimilarity = b1;
@ -266,6 +285,9 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
ocrCheckDuplicateResult.setMaxSimilarity(maxSimilarity.doubleValue()); ocrCheckDuplicateResult.setMaxSimilarity(maxSimilarity.doubleValue());
ocrCheckDuplicateResult.setCompareResultJson(JSONObject.toJSONString(resultMap)); ocrCheckDuplicateResult.setCompareResultJson(JSONObject.toJSONString(resultMap));
ocrCheckDuplicateResult.setCheckDuplicateId(checkDuplicateId); ocrCheckDuplicateResult.setCheckDuplicateId(checkDuplicateId);
if(similarityGroupOrderMap.get(ocrPicture.getId().toString())!=null){
ocrCheckDuplicateResult.setSimilarityGroupOrder(similarityGroupOrderMap.get(ocrPicture.getId().toString()));
}
saveList.add(ocrCheckDuplicateResult); saveList.add(ocrCheckDuplicateResult);
} }

@ -706,7 +706,7 @@
and t1.picture_id != #{pictureId} and t1.picture_id != #{pictureId}
</if> </if>
<if test="oderName == 'similarityScore'"> <if test="oderName == 'similarityScore'">
order by t1.max_similarity ${oderType},t2.submit_date_timestamp ${oderType} order by t1.max_similarity ${oderType},t1.similarity_group_order asc,t2.submit_date_timestamp ${oderType}
</if> </if>
<if test="oderName == 'createdate'"> <if test="oderName == 'createdate'">
order by t2.create_time ${oderType} order by t2.create_time ${oderType}

Loading…
Cancel
Save