From 14c1385d8b5f6adf631833faacadebd242bd527e Mon Sep 17 00:00:00 2001 From: sunchenliang <2532527871@qq.com> Date: Tue, 14 May 2024 22:37:55 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E9=87=8D=E7=BD=AE=E6=B5=81?= =?UTF-8?q?=E7=A8=8B=E5=88=A0=E9=99=A4=E6=9F=A5=E9=87=8D=E8=AE=B0=E5=BD=95?= =?UTF-8?q?=E5=8F=8A=E5=9B=BE=E7=89=87=E6=9F=A5=E9=87=8D=E7=BB=93=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/OcrPictureServiceImpl.java | 133 ++++++++++++------ .../resources/mapper/oa/OcrPictureMapper.xml | 14 +- 2 files changed, 98 insertions(+), 49 deletions(-) diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java index 153034b9..a5922547 100644 --- a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/ocr/service/impl/OcrPictureServiceImpl.java @@ -17,17 +17,8 @@ import cn.jyjz.xiaoyao.oa.from.service.UserapproveService; import cn.jyjz.xiaoyao.oa.from.service.impl.UserapproveServiceImpl; import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig; import cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureMybatisDao; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPackagetask; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrPictureInfo; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrTaskchildPicture; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearch; -import cn.jyjz.xiaoyao.ocr.dataobject.OcrUsersearchchild; -import cn.jyjz.xiaoyao.ocr.service.OcrPackagetaskService; -import cn.jyjz.xiaoyao.ocr.service.OcrPictureInfoService; -import cn.jyjz.xiaoyao.ocr.service.OcrPictureService; -import cn.jyjz.xiaoyao.ocr.service.OcrTaskchildPictureService; -import cn.jyjz.xiaoyao.ocr.service.OcrUsersearchService; +import cn.jyjz.xiaoyao.ocr.dataobject.*; +import cn.jyjz.xiaoyao.ocr.service.*; import cn.jyjz.xiaoyao.ocr.thread.TaskQueue; import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity; import cn.jyjz.xiaoyao.ocr.util.DataDictionaryUtil; @@ -35,6 +26,7 @@ import cn.jyjz.xiaoyao.ocr.util.HashCompareUtil; import cn.jyjz.xiaoyao.ocr.util.ImageClassUtil; import cn.jyjz.xiaoyao.ocr.util.SearchEnum; import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -58,11 +50,7 @@ import java.io.File; import java.math.BigDecimal; import java.net.URL; import java.net.URLConnection; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -96,6 +84,14 @@ public class OcrPictureServiceImpl extends BaseServiceImpl().eq(OcrPictureInfo::getPictureId, ocrPicture.getId())); ocrPicture.setPictureInfo(one); - if(ObjectUtil.isNotEmpty(one)){ + if (ObjectUtil.isNotEmpty(one)) { ocrPicture.getPictureInfo().setCreateTime(ocrPicture.getPhotoDateTimestamp()); } return ocrPicture; @@ -351,7 +347,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl().eq(OcrTaskchildPicture::getPictureid,pictureId)); + return ocrTaskchildPictureService.getOne(new LambdaQueryWrapper().eq(OcrTaskchildPicture::getPictureid, pictureId)); } // @Override @@ -415,7 +411,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl().eq(OcrTaskchildPicture::getPictureid, ocrPicture.getId())); ocrTaskchildPicture.setBuessinessno(buessinessno); @@ -445,7 +440,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl ocrPictureList, String tenantId,HttpServletRequest request) { + public ResultVo createTaskChild(List ocrPictureList, String tenantId, HttpServletRequest request) { //图片错误信息 StringBuffer error = new StringBuffer(); //项目错误信息 @@ -517,7 +512,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl().eq(OcrPictureInfo::getPictureId,id)); + ocrPictureInfoService.remove(new LambdaQueryWrapper().eq(OcrPictureInfo::getPictureId, id)); OcrTaskchildPicture taskchildPicture = ocrTaskchildPictureService.getOne(new LambdaQueryWrapper().eq(OcrTaskchildPicture::getPictureid, id)); //删除任务表 - ocrTaskchildPictureService.remove(new LambdaQueryWrapper().eq(OcrTaskchildPicture::getPictureid,id)); + ocrTaskchildPictureService.remove(new LambdaQueryWrapper().eq(OcrTaskchildPicture::getPictureid, id)); //删除审批记录表 userapproveService.delete(taskchildPicture.getId().toString()); + //小结查重记录 + OcrCheckDescribeHis checkDescribeHis = ocrCheckDescribeHisService.getOne(new LambdaQueryWrapper().eq(OcrCheckDescribeHis::getPictureId, id)); + if (checkDescribeHis != null) { + String checkResult = checkDescribeHis.getCheckResult(); + if (StringUtils.isNotBlank(checkResult)) { + String[] checkResultPictureIds = checkResult.split(","); + List checkDescribes = ocrCheckDescribeHisService.list(new LambdaQueryWrapper().in(OcrCheckDescribeHis::getPictureId, checkResultPictureIds)); + for (OcrCheckDescribeHis checkDescribe : checkDescribes) { + String[] split = checkDescribe.getCheckResult().split(","); + List list = Arrays.asList(split); + list.remove(id.toString()); + checkDescribe.setCheckResult(String.join(",", list)); + } + ocrCheckDescribeHisService.updateBatchById(checkDescribes); + } + ocrCheckDescribeHisService.remove(new LambdaQueryWrapper().eq(OcrCheckDescribeHis::getPictureId, id)); + } + //图片对比记录 + OcrPictureDuplicateHis hisServiceOne = ocrPictureDuplicateHisService.getOne(new LambdaQueryWrapper().eq(OcrPictureDuplicateHis::getPictureId, id)); + if (null != hisServiceOne) { + String checkDuplicateResultHisJson = hisServiceOne.getCheckDuplicateResultHisJson(); + if (StringUtils.isNotBlank(checkDuplicateResultHisJson)) { + JSONObject jsonObject = JSON.parseObject(checkDuplicateResultHisJson); + Set keyList = jsonObject.keySet(); + List list = ocrPictureDuplicateHisService.list(new LambdaQueryWrapper().in(OcrPictureDuplicateHis::getPictureId, keyList)); + for (OcrPictureDuplicateHis ocrPictureDuplicateHis : list) { + String checkDuplicateResultHis = ocrPictureDuplicateHis.getCheckDuplicateResultHisJson(); + JSONObject json = JSON.parseObject(checkDuplicateResultHis); + json.remove(id.toString()); + ocrPictureDuplicateHis.setCheckDuplicateResultHisJson(JSON.toJSONString(json)); + } + ocrPictureDuplicateHisService.updateBatchById(list); + } + ocrPictureDuplicateHisService.remove(new LambdaQueryWrapper().eq(OcrPictureDuplicateHis::getPictureId, id)); + } + //查重结果 + OcrCheckDuplicateResult duplicateResult = ocrCheckDuplicateResultService.getOne(new LambdaQueryWrapper().eq(OcrCheckDuplicateResult::getPictureId, id)); + String compareResultJson = duplicateResult.getCompareResultJson(); + if (StringUtils.isNotBlank(compareResultJson)) { + JSONObject jsonObject = JSON.parseObject(compareResultJson); + Set keyList = jsonObject.keySet(); + List list = ocrCheckDuplicateResultService.list(new LambdaQueryWrapper().in(OcrCheckDuplicateResult::getPictureId, keyList)); + for (OcrCheckDuplicateResult checkDuplicateResult : list) { + String resultCompareResultJson = checkDuplicateResult.getCompareResultJson(); + JSONObject json = JSON.parseObject(resultCompareResultJson); + json.remove(id.toString()); + checkDuplicateResult.setCompareResultJson(JSON.toJSONString(json)); + } + ocrCheckDuplicateResultService.updateBatchById(list); + } + ocrCheckDuplicateResultService.remove(new LambdaQueryWrapper().eq(OcrCheckDuplicateResult::getPictureId, id)); } public void bubbleSortOpt(List compareList) { @@ -710,7 +756,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl ocrPictureList){ + public int savePictures(List ocrPictureList) { //1.字典数据 解析入库 boolean b = dataDictionaryUtil.pictureDataDictionarySaveArray(ocrPictureList); @@ -722,9 +768,9 @@ public class OcrPictureServiceImpl extends BaseServiceImpl list = new ArrayList<>(); for (OcrPicture ocrPicture : ocrPictureList) { if (StringUtils.isNotBlank(ocrPicture.getImgurl())) { - OcrPictureInfo imageInfo = getImageInfo(ocrPicture.getImgurl(),true); + OcrPictureInfo imageInfo = getImageInfo(ocrPicture.getImgurl(), true); if (ObjectUtil.isNotEmpty(imageInfo)) { imageInfo.setPictureId(ocrPicture.getId()); imageInfo.setImgName(ocrPicture.getImgname()); @@ -758,17 +804,18 @@ public class OcrPictureServiceImpl extends BaseServiceImpl list) { for (OcrPicture ocrPicture : list) { PictureImgToLocalEntity entity = new PictureImgToLocalEntity(); @@ -855,15 +902,15 @@ public class OcrPictureServiceImpl extends BaseServiceImpl -- 2.39.3