|
|
@ -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.oa.from.service.impl.UserapproveServiceImpl;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.api.utils.ApiConfig;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureMybatisDao;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataDao.OcrPictureMybatisDao;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPackagetask;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.*;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.service.*;
|
|
|
|
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.thread.TaskQueue;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.thread.TaskQueue;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.thread.entity.PictureImgToLocalEntity;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.DataDictionaryUtil;
|
|
|
|
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.ImageClassUtil;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.SearchEnum;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.SearchEnum;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
|
|
|
|
import cn.jyjz.xiaoyao.ocr.util.SearchParaFormatting;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
@ -58,11 +50,7 @@ import java.io.File;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.math.BigDecimal;
|
|
|
|
import java.net.URL;
|
|
|
|
import java.net.URL;
|
|
|
|
import java.net.URLConnection;
|
|
|
|
import java.net.URLConnection;
|
|
|
|
import java.util.ArrayList;
|
|
|
|
import java.util.*;
|
|
|
|
import java.util.Arrays;
|
|
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import java.util.Map;
|
|
|
|
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -96,6 +84,14 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
|
|
|
|
private CategoryService categoryService;
|
|
|
|
private CategoryService categoryService;
|
|
|
|
@Resource
|
|
|
|
@Resource
|
|
|
|
private OcrPictureInfoService ocrPictureInfoService;
|
|
|
|
private OcrPictureInfoService ocrPictureInfoService;
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private OcrCheckDescribeHisService ocrCheckDescribeHisService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private IOcrCheckDuplicateResultService ocrCheckDuplicateResultService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Resource
|
|
|
|
|
|
|
|
private IOcrPictureDuplicateHisService ocrPictureDuplicateHisService;
|
|
|
|
private Object lock = new Object();
|
|
|
|
private Object lock = new Object();
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 字典数据添加工具类
|
|
|
|
* 字典数据添加工具类
|
|
|
@ -415,7 +411,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public OcrTaskchildPicture updateTaskChild(OcrPicture ocrPicture, Long packageid, String buessinessno) {
|
|
|
|
public OcrTaskchildPicture updateTaskChild(OcrPicture ocrPicture, Long packageid, String buessinessno) {
|
|
|
|
OcrTaskchildPicture ocrTaskchildPicture = ocrTaskchildPictureService.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, ocrPicture.getId()));
|
|
|
|
OcrTaskchildPicture ocrTaskchildPicture = ocrTaskchildPictureService.getOne(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, ocrPicture.getId()));
|
|
|
|
ocrTaskchildPicture.setBuessinessno(buessinessno);
|
|
|
|
ocrTaskchildPicture.setBuessinessno(buessinessno);
|
|
|
@ -531,6 +526,57 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
|
|
|
|
ocrTaskchildPictureService.remove(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, id));
|
|
|
|
ocrTaskchildPictureService.remove(new LambdaQueryWrapper<OcrTaskchildPicture>().eq(OcrTaskchildPicture::getPictureid, id));
|
|
|
|
//删除审批记录表
|
|
|
|
//删除审批记录表
|
|
|
|
userapproveService.delete(taskchildPicture.getId().toString());
|
|
|
|
userapproveService.delete(taskchildPicture.getId().toString());
|
|
|
|
|
|
|
|
//小结查重记录
|
|
|
|
|
|
|
|
OcrCheckDescribeHis checkDescribeHis = ocrCheckDescribeHisService.getOne(new LambdaQueryWrapper<OcrCheckDescribeHis>().eq(OcrCheckDescribeHis::getPictureId, id));
|
|
|
|
|
|
|
|
if (checkDescribeHis != null) {
|
|
|
|
|
|
|
|
String checkResult = checkDescribeHis.getCheckResult();
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(checkResult)) {
|
|
|
|
|
|
|
|
String[] checkResultPictureIds = checkResult.split(",");
|
|
|
|
|
|
|
|
List<OcrCheckDescribeHis> checkDescribes = ocrCheckDescribeHisService.list(new LambdaQueryWrapper<OcrCheckDescribeHis>().in(OcrCheckDescribeHis::getPictureId, checkResultPictureIds));
|
|
|
|
|
|
|
|
for (OcrCheckDescribeHis checkDescribe : checkDescribes) {
|
|
|
|
|
|
|
|
String[] split = checkDescribe.getCheckResult().split(",");
|
|
|
|
|
|
|
|
List<String> list = Arrays.asList(split);
|
|
|
|
|
|
|
|
list.remove(id.toString());
|
|
|
|
|
|
|
|
checkDescribe.setCheckResult(String.join(",", list));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ocrCheckDescribeHisService.updateBatchById(checkDescribes);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
ocrCheckDescribeHisService.remove(new LambdaQueryWrapper<OcrCheckDescribeHis>().eq(OcrCheckDescribeHis::getPictureId, id));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//图片对比记录
|
|
|
|
|
|
|
|
OcrPictureDuplicateHis hisServiceOne = ocrPictureDuplicateHisService.getOne(new LambdaQueryWrapper<OcrPictureDuplicateHis>().eq(OcrPictureDuplicateHis::getPictureId, id));
|
|
|
|
|
|
|
|
if (null != hisServiceOne) {
|
|
|
|
|
|
|
|
String checkDuplicateResultHisJson = hisServiceOne.getCheckDuplicateResultHisJson();
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(checkDuplicateResultHisJson)) {
|
|
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(checkDuplicateResultHisJson);
|
|
|
|
|
|
|
|
Set<String> keyList = jsonObject.keySet();
|
|
|
|
|
|
|
|
List<OcrPictureDuplicateHis> list = ocrPictureDuplicateHisService.list(new LambdaQueryWrapper<OcrPictureDuplicateHis>().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<OcrPictureDuplicateHis>().eq(OcrPictureDuplicateHis::getPictureId, id));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
//查重结果
|
|
|
|
|
|
|
|
OcrCheckDuplicateResult duplicateResult = ocrCheckDuplicateResultService.getOne(new LambdaQueryWrapper<OcrCheckDuplicateResult>().eq(OcrCheckDuplicateResult::getPictureId, id));
|
|
|
|
|
|
|
|
String compareResultJson = duplicateResult.getCompareResultJson();
|
|
|
|
|
|
|
|
if (StringUtils.isNotBlank(compareResultJson)) {
|
|
|
|
|
|
|
|
JSONObject jsonObject = JSON.parseObject(compareResultJson);
|
|
|
|
|
|
|
|
Set<String> keyList = jsonObject.keySet();
|
|
|
|
|
|
|
|
List<OcrCheckDuplicateResult> list = ocrCheckDuplicateResultService.list(new LambdaQueryWrapper<OcrCheckDuplicateResult>().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<OcrCheckDuplicateResult>().eq(OcrCheckDuplicateResult::getPictureId, id));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public void bubbleSortOpt(List<OcrPicture> compareList) {
|
|
|
|
public void bubbleSortOpt(List<OcrPicture> compareList) {
|
|
|
@ -758,6 +804,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 新增图片信息表
|
|
|
|
* 新增图片信息表
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param ocrPicture
|
|
|
|
* @param ocrPicture
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
@ -776,6 +823,7 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* 获取图片信息
|
|
|
|
* 获取图片信息
|
|
|
|
|
|
|
|
*
|
|
|
|
* @param imageUrl 图片地址 两种 网络或者本地图片
|
|
|
|
* @param imageUrl 图片地址 两种 网络或者本地图片
|
|
|
|
* @param isConnection 是否是url 开启网络请求
|
|
|
|
* @param isConnection 是否是url 开启网络请求
|
|
|
|
* @return
|
|
|
|
* @return
|
|
|
@ -844,7 +892,6 @@ public class OcrPictureServiceImpl extends BaseServiceImpl<OcrPictureMybatisDao,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void convertImage(List<OcrPicture> list) {
|
|
|
|
private void convertImage(List<OcrPicture> list) {
|
|
|
|
for (OcrPicture ocrPicture : list) {
|
|
|
|
for (OcrPicture ocrPicture : list) {
|
|
|
|
PictureImgToLocalEntity entity = new PictureImgToLocalEntity();
|
|
|
|
PictureImgToLocalEntity entity = new PictureImgToLocalEntity();
|
|
|
|