From 950ac308df2cb2eb3907c8db933929cc1726478a Mon Sep 17 00:00:00 2001 From: shuliYao <1397940314@qq.com> Date: Sun, 31 Mar 2024 13:35:27 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E6=9F=A5=E9=87=8D?= =?UTF-8?q?=E6=97=B6=E5=9B=A0=E4=B8=BA=E6=9F=90=E5=BC=A0=E5=9B=BE=E7=89=87?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E4=B8=8B=E8=BD=BD=E5=88=B0=E6=9C=AC=E5=9C=B0?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E8=87=B4=E6=9F=A5=E9=87=8D=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/OcrCheckDuplicateServiceImpl.java | 36 +++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java index 3f60c2be..cf6c2c00 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrCheckDuplicateServiceImpl.java @@ -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 map = this.getOcrPictureClassifyAndHash(ocrPicture.getLocalpictrueurl()); + String url = ocrPicture.getLocalpictrueurl(); + if(StringUtils.isBlank(url)){ + if(StringUtils.isBlank(ocrPicture.getImgurl())){ + continue; + } + url = ocrPicture.getImgurl(); + } + + Map 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 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 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 Date: Sun, 31 Mar 2024 13:41:59 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9ai=E5=AE=A1=E6=89=B9?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=9C=AA=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=AE=8C=E6=95=B4=EF=BC=8C=E5=9B=A0=E4=B8=BA=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E6=8B=89=E4=BB=A3=E7=A0=81=E6=8B=BF=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=8E=A5=E5=8F=A3=EF=BC=8C=E6=89=80=E4=BB=A5?= =?UTF-8?q?=E5=85=88=E6=9A=82=E6=97=B6=E6=8F=90=E4=BA=A4=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ocr/controller/OcrAiApprovalTools.java | 5 +- .../ocr/dataDao/OcrSearchHistoryMapper.java | 2 + .../ocr/service/IOcrSearchHistoryService.java | 2 +- .../impl/OcrSearchHistoryServiceImpl.java | 86 ++++++++++++++----- .../mapper/oa/OcrSearchHistoryMapper.xml | 26 +++--- 5 files changed, 83 insertions(+), 38 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrAiApprovalTools.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrAiApprovalTools.java index a71e887b..5da0a6a6 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrAiApprovalTools.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/controller/OcrAiApprovalTools.java @@ -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 selectaisp = iocrsearchhistoryservice.selectaisp(userToken.getUserid(), taskid); + Map selectaisp = iocrsearchhistoryservice.selectaisp(userToken.getUserid(), taskid,nodeType); return ResultVoUtil.success(selectaisp); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrSearchHistoryMapper.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrSearchHistoryMapper.java index 3c78666e..9284480c 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrSearchHistoryMapper.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/dataDao/OcrSearchHistoryMapper.java @@ -31,5 +31,7 @@ public interface OcrSearchHistoryMapper extends BaseMapper { Map selectaisp(@Param("id")String id); + List> selectaispList(@Param("id")String id); + String selectaiuser(@Param("userid")String userid); } diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrSearchHistoryService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrSearchHistoryService.java index 5624c592..70bb0c88 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrSearchHistoryService.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/IOcrSearchHistoryService.java @@ -21,7 +21,7 @@ public interface IOcrSearchHistoryService extends IService { ResultVo toolscount(String tenantid); - Map selectaisp(String userid,String id); + Map selectaisp(String userid,String id,Integer nodeType); ResultVo clearmark(String id); diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrSearchHistoryServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrSearchHistoryServiceImpl.java index 23bb0b30..6afb6b9b 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrSearchHistoryServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrSearchHistoryServiceImpl.java @@ -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 selectaisp(String userid,String id) { +// Map selectaisp = ocrsearchhistorymapper.selectaisp(id); +// if(null==selectaisp){ +// return null; +// } +// String selectaiuser = ocrsearchhistorymapper.selectaiuser(userid); +// +// String[] cps = selectaisp.get("pictureresult").toString().split(","); +// +// List saveList = new ArrayList<>(); +// int i=0; +// for (String childpictureid : cps) { +// if (childpictureid.equals("100")){ +// i++; +// } +// } +// +// Map 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 selectaisp(String userid,String id) { - Map selectaisp = ocrsearchhistorymapper.selectaisp(id); - if(null==selectaisp){ - return null; + public Map selectaisp(String userid, String id,Integer nodeType) { + List> 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 saveList = new ArrayList<>(); - int i=0; - for (String childpictureid : cps) { - if (childpictureid.equals("100")){ - i++; + Map 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 pictureIds = new ArrayList<>(); // 存储所有的pictureId + for (Map 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 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 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) { diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrSearchHistoryMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrSearchHistoryMapper.xml index 6ea6dd23..60723532 100644 --- a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrSearchHistoryMapper.xml +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/OcrSearchHistoryMapper.xml @@ -66,22 +66,23 @@ (SELECT COUNT(*) FROM ocr_taskchild_picture WHERE TENANTID = ""#{tenantid}"" AND STATES = '3') as approved - - - - - - + - 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} +