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