|
|
|
@ -33,6 +33,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
|
import java.io.StringWriter;
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
|
import java.util.*;
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
@ -104,6 +106,12 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
checkDuplicateService.comparePictureResultSave(ocrPictureList, sysUser, id);
|
|
|
|
|
checkDuplicate.setStatus(2);
|
|
|
|
|
} catch (Exception e) {
|
|
|
|
|
StringWriter sw = new StringWriter();
|
|
|
|
|
PrintWriter pw = new PrintWriter(sw);
|
|
|
|
|
e.printStackTrace(pw);
|
|
|
|
|
String exceptionDetails = sw.toString(); // 包含堆栈跟踪信息的字符串
|
|
|
|
|
logger.error(exceptionDetails);
|
|
|
|
|
logger.error("异步执行图片比对异常:", e);
|
|
|
|
|
logger.error("异步执行图片比对异常:", e.getMessage());
|
|
|
|
|
checkDuplicate.setStatus(3);
|
|
|
|
|
} finally {
|
|
|
|
@ -182,7 +190,15 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
|
|
|
|
|
logService.addLog(103, "AI获取图片相似度接口", sysUser, "sendParams");
|
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isBlank(ocrPicture.getImgHash())) {
|
|
|
|
|
Map<String, String> map = this.getOcrPictureClassifyAndHash(ocrPicture.getLocalpictrueurl());
|
|
|
|
|
String url = ocrPicture.getLocalpictrueurl();
|
|
|
|
|
if(StringUtils.isBlank(url)){
|
|
|
|
|
if(StringUtils.isBlank(ocrPicture.getImgurl())){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
url = ocrPicture.getImgurl();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, String> map = this.getOcrPictureClassifyAndHash(url);
|
|
|
|
|
if (map != null) {
|
|
|
|
|
ocrPicture.setImgHash(map.get("hash"));
|
|
|
|
|
ocrPicture.setClassificationid(map.get("classId"));
|
|
|
|
@ -203,7 +219,15 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
//分类不一致的也不需要进行比对
|
|
|
|
|
//TODO 接口请求判断重复情况
|
|
|
|
|
if (org.apache.commons.lang3.StringUtils.isBlank(ocrPictureNext.getImgHash())) {
|
|
|
|
|
Map<String, String> map = this.getOcrPictureClassifyAndHash(ocrPictureNext.getLocalpictrueurl());
|
|
|
|
|
logger.info("图片没有hash值,进入分类并获取hash接口:{}",JSONObject.toJSON(ocrPictureNext));
|
|
|
|
|
String url = ocrPictureNext.getLocalpictrueurl();
|
|
|
|
|
if(StringUtils.isBlank(url)){
|
|
|
|
|
if(StringUtils.isBlank(ocrPictureNext.getImgurl())){
|
|
|
|
|
continue;
|
|
|
|
|
}
|
|
|
|
|
url = ocrPictureNext.getImgurl();
|
|
|
|
|
}
|
|
|
|
|
Map<String, String> map = this.getOcrPictureClassifyAndHash(url);
|
|
|
|
|
if (map != null) {
|
|
|
|
|
ocrPictureNext.setImgHash(map.get("hash"));
|
|
|
|
|
ocrPictureNext.setClassificationid(map.get("classId"));
|
|
|
|
@ -247,18 +271,26 @@ public class OcrCheckDuplicateServiceImpl extends ServiceImpl<OcrCheckDuplicateM
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
logger.info("查重任务:{},开启创建任务",checkDuplicateId);
|
|
|
|
|
if (CollectionUtils.isNotEmpty(ocrPictureList)) {
|
|
|
|
|
ocrTaskchildPictureService.createTask(ocrPictureList, ocrPictureList.get(0).getTenantId().toString(), sysUser);
|
|
|
|
|
}
|
|
|
|
|
logger.info("查重任务:{},结束创建任务",checkDuplicateId);
|
|
|
|
|
//批量入库
|
|
|
|
|
logger.info("查重任务:{},开启批量入库任务",checkDuplicateId);
|
|
|
|
|
boolean b = checkDuplicateResultService.saveOrUpdateBatch(saveList);
|
|
|
|
|
if (!b) {
|
|
|
|
|
throw new Exception("批量入库比对结果失败!");
|
|
|
|
|
}
|
|
|
|
|
logger.info("查重任务:{},结束批量入库任务",checkDuplicateId);
|
|
|
|
|
//开始更新图片最高阈值
|
|
|
|
|
logger.info("查重任务:{},更新最高阈值",checkDuplicateId);
|
|
|
|
|
this.updatePictureSimilarityScore(saveList);
|
|
|
|
|
logger.info("查重任务:{},结束更新最高阈值",checkDuplicateId);
|
|
|
|
|
//开始更新 图片历史比对数据结果
|
|
|
|
|
logger.info("查重任务:{},更新图片历史比对结果",checkDuplicateId);
|
|
|
|
|
this.updateCompareToPictureDuplicateHis(saveList);
|
|
|
|
|
logger.info("查重任务:{},结束图片历史比对结果",checkDuplicateId);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|