Merge remote-tracking branch 'origin/test' into sunchenliang

pull/34/head
sunchenliang 1 year ago
commit 1008932b63

@ -60,10 +60,11 @@ public class OcrAiApprovalTools {
ai
*/
@RequestMapping(value = "/aiApprovaltools", method = RequestMethod.GET)
public ResultVo aiApprovaltools(HttpServletRequest request,@RequestParam(value = "taskid", required = true) String taskid) {
public ResultVo aiApprovaltools(HttpServletRequest request,@RequestParam(value = "taskid", required = true) String taskid,
@RequestParam(value = "nodeType", required = true) Integer nodeType) {
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
Map<Object, Object> selectaisp = iocrsearchhistoryservice.selectaisp(userToken.getUserid(), taskid);
Map<Object, Object> selectaisp = iocrsearchhistoryservice.selectaisp(userToken.getUserid(), taskid,nodeType);
return ResultVoUtil.success(selectaisp);
}

@ -31,5 +31,7 @@ public interface OcrSearchHistoryMapper extends BaseMapper<OcrSearchHistory> {
Map<Object,Object> selectaisp(@Param("id")String id);
List<Map<Object, Object>> selectaispList(@Param("id")String id);
String selectaiuser(@Param("userid")String userid);
}

@ -21,7 +21,7 @@ public interface IOcrSearchHistoryService extends IService<OcrSearchHistory> {
ResultVo toolscount(String tenantid);
Map<Object,Object> selectaisp(String userid,String id);
Map<Object,Object> selectaisp(String userid,String id,Integer nodeType);
ResultVo clearmark(String id);

@ -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

@ -1,5 +1,6 @@
package cn.jyjz.xiaoyao.ocr.service.impl;
import cn.jyjz.xiaoyao.admin.dataobject.User;
import cn.jyjz.xiaoyao.common.base.vo.ResultVo;
import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil;
import cn.jyjz.xiaoyao.common.redis.cache.ICacheManager;
@ -8,8 +9,10 @@ import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.dataobject.OcrSearchHistory;
import cn.jyjz.xiaoyao.ocr.service.IOcrSearchHistoryService;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import cn.jyjz.xiaoyao.ocr.dataDao.OcrSearchHistoryMapper;
@ -74,36 +77,73 @@ public class OcrSearchHistoryServiceImpl extends ServiceImpl<OcrSearchHistoryMap
return ResultVoUtil.success(toolscount);
}
// @Override
// public Map<Object, Object> selectaisp(String userid,String id) {
// Map<Object, Object> selectaisp = ocrsearchhistorymapper.selectaisp(id);
// if(null==selectaisp){
// return null;
// }
// String selectaiuser = ocrsearchhistorymapper.selectaiuser(userid);
//
// String[] cps = selectaisp.get("pictureresult").toString().split(",");
//
// List<OcrPicture> saveList = new ArrayList<>();
// int i=0;
// for (String childpictureid : cps) {
// if (childpictureid.equals("100")){
// i++;
// }
// }
//
// Map<Object,Object> map=new HashMap<>();
// map.put("taskid",id);
// map.put("tenantusername",selectaiuser);
// map.put("packagename",selectaisp.get("packagename"));
// map.put("tasks","基线任务");
//// map.put("similarcount",selectaisp.get("similarcount"));
// map.put("createtime",selectaisp.get("createtime"));
// map.put("similarComplete",i);
//
// return map;
// }
@Override
public Map<Object, Object> selectaisp(String userid,String id) {
Map<Object, Object> selectaisp = ocrsearchhistorymapper.selectaisp(id);
if(null==selectaisp){
return null;
public Map<Object, Object> selectaisp(String userid, String id,Integer nodeType) {
List<Map<Object, Object>> resultList = ocrsearchhistorymapper.selectaispList(id);
if (resultList == null || resultList.isEmpty()) {
return Collections.emptyMap();
}
String selectaiuser = ocrsearchhistorymapper.selectaiuser(userid);
String[] cps = selectaisp.get("pictureresult").toString().split(",");
List<OcrPicture> saveList = new ArrayList<>();
int i=0;
for (String childpictureid : cps) {
if (childpictureid.equals("100")){
i++;
Map<Object, Object> mappedResults = new LinkedHashMap<>();
String selectaiuser = ocrsearchhistorymapper.selectaiuser(userid);
mappedResults.put("packageId", id);
mappedResults.put("tenantUserName", selectaiuser);
mappedResults.put("packageName", resultList.get(0).get("packageName"));
mappedResults.put("createTime", resultList.get(0).get("createTime"));
int similarComplete = 0;
List<Object> pictureIds = new ArrayList<>(); // 存储所有的pictureId
for (Map<Object, Object> selectaisp : resultList) {
Object pictureResult = selectaisp.get("pictureResult");
String pictureResultStr = pictureResult.toString();
if ("100.0".equals(pictureResultStr)) {
similarComplete++;
}
Object pictureId = selectaisp.get("pictureId");
if (pictureId != null) {
pictureIds.add(pictureId);
}
}
Map<Object,Object> map=new HashMap<>();
map.put("taskid",id);
map.put("tenantusername",selectaiuser);
map.put("packagename",selectaisp.get("packagename"));
map.put("tasks","基线任务");
// map.put("similarcount",selectaisp.get("similarcount"));
map.put("createtime",selectaisp.get("createtime"));
map.put("similarComplete",i);
return map;
// List<Object> failedPictureIds = fakeInterface.getFailedPictureIds(pictureIds,nodeType); // 假的接口根据pictureId集合获取不通过的pictureId列表
// int passedCount = pictureIds.size() - failedPictureIds.size(); // 通过的数量
// int failedCount = failedPictureIds.size(); // 不通过的数量
mappedResults.put("similarComplete", similarComplete);
// mappedResults.put("passedCount", passedCount);
// mappedResults.put("failedCount", failedCount);
// mappedResults.put("failedPictureIds", failedPictureIds);
return mappedResults;
}
@Override
public ResultVo clearmark(String id) {

@ -66,22 +66,23 @@
(SELECT COUNT(*) FROM ocr_taskchild_picture WHERE TENANTID = ""#{tenantid}"" AND STATES = '3') as approved
</select>
<!-- <select id="selectaisp" resultType="map">-->
<!-- SELECT-->
<!-- rw.ID as id,rw.OCPICTUREID as ocpictureid,t.packagename,rw.PICTURERESULT as pictureresult,count(length(rw.PICTURERESULT)-length(replace(rw.PICTURERESULT,',',''))+1) as similarcount,t.create_time as createtime-->
<!-- FROM-->
<!-- ocr_taskchild_picture rw-->
<!-- LEFT JOIN ocr_packagetask t ON rw.PACKAGEID = t.ID-->
<select id="selectaisp" resultType="map">
SELECT
rw.ID as id,rw.OCPICTUREID as ocpictureid,t.packagename,rw.PICTURERESULT as pictureresult,count(length(rw.PICTURERESULT)-length(replace(rw.PICTURERESULT,',',''))+1) as similarcount,t.create_time as createtime
FROM
ocr_taskchild_picture rw
LEFT JOIN ocr_packagetask t ON rw.PACKAGEID = t.ID
<!-- WHERE t.ID = #{id}-->
<!-- </select>-->
WHERE t.ID = #{id}
</select>
<select id="selectaisp" resultType="map">
<select id="selectaispList" resultType="map">
SELECT
tp.id as id,
tp.name as packagename,
GROUP_CONCAT(IFNULL(cdr.max_similarity, 0)) as pictureresult,
tp.create_time as createtime
tp.name as packageName,
cdr.picture_id as pictureId,
IFNULL(cdr.max_similarity, 0) as pictureResult,
tp.create_time as createTime
FROM
ocr_task_package tp
LEFT JOIN ocr_check_duplicate_result cdr ON tp.check_duplicate_id = cdr.check_duplicate_id
@ -89,6 +90,7 @@
tp.ID = #{id}
</select>
<select id="selectaiuser" resultType="String">
SELECT CONCAT_WS( "-", t.`NAME`, u.USERNAME ) as tenantusername FROM s_user_t u LEFT JOIN s_user_tenant_t z ON u.ID = z.USERID
LEFT JOIN s_tenant_t t ON z.TENANTID = t.ID WHERE u.ID = #{userid}

Loading…
Cancel
Save