bug修复

segment2.0
zhanglb 2 years ago
parent 9a3d3dd4b9
commit 3f2ac4e1a1

@ -68,6 +68,12 @@ public class StartSegmentHandler {
List<File> files = new ArrayList<>(fileInfoList.size());
List<FileDTO> fileDTOList = new ArrayList<>(fileInfoList.size());
for (OcrFileInfo fileInfo:fileInfoList) {
boolean assortFlag = false;
String assortId = null;
String assortName = null;
Long ruleId = null;
String hitKey = null;
Double rate = null;
//遍历文件列表 获取ocr识别结果
List<String> ocrTextList = ocrApi.getText(fileInfo.getPicCutUrl(),url);
@ -77,44 +83,57 @@ public class StartSegmentHandler {
fileInfo.setOcrFinishTime(new Date());
//判断上次是否特殊文件开始 需要判断是否特殊文件结尾
if (isSpecialFile){
fileInfo.setAssortId(lastSpecialResul.getAssortId());
fileInfo.setAssortName(lastSpecialResul.getAssortName());
fileInfo.setRuleId(lastSpecialResul.getRuleId());
assortId = lastSpecialResul.getAssortId();
assortName = lastSpecialResul.getAssortName();
ruleId = lastSpecialResul.getRuleId();
boolean b = iOcrSpecialRuleService.handleSpecialRuleEnd(lastSpecialResul, ocrTextList);
if (b){
//当前分段为特殊分段结尾
isSpecialFile = false;
lastSpecialResul = null;
assortFlag = true;
}
continue;
}
//优先判断是否特殊规则开始
OcrSpecialResult ocrSpecialResult = iOcrSpecialRuleService.handleSpecialRule(ocrTextList,version);
//判断是否属于某个分段
if (ocrSpecialResult!=null){
fileInfo.setAssortId(ocrSpecialResult.getAssortId());
fileInfo.setAssortName(ocrSpecialResult.getAssortName());
fileInfo.setRuleId(ocrSpecialResult.getRuleId());
fileInfo.setHitKey(ocrSpecialResult.getHitKey());
fileInfo.setRate(ocrSpecialResult.getRate());
isSpecialFile = true;
lastSpecialResul = ocrSpecialResult;
continue;
if (!assortFlag){
OcrSpecialResult ocrSpecialResult = iOcrSpecialRuleService.handleSpecialRule(ocrTextList,version);
//判断是否属于某个分段
if (ocrSpecialResult!=null){
assortId = ocrSpecialResult.getAssortId();
assortName = ocrSpecialResult.getAssortName();
ruleId = ocrSpecialResult.getRuleId();
hitKey = ocrSpecialResult.getHitKey();
rate = ocrSpecialResult.getRate();
isSpecialFile = true;
lastSpecialResul = ocrSpecialResult;
assortFlag = true;
}
}
OcrRuleResult ocrRuleResult = iOcrRuleService.handleRule(ocrTextList,version);
//更新文件数据的分段
if (ocrRuleResult!=null){
fileInfo.setAssortId(ocrRuleResult.getAssortId());
fileInfo.setAssortName(ocrRuleResult.getAssortName());
fileInfo.setRuleId(ocrRuleResult.getRuleId());
fileInfo.setHitKey(ocrRuleResult.getHitKey());
fileInfo.setRate(ocrRuleResult.getRate());
}else {
fileInfo.setAssortId("-1");
fileInfo.setAssortName("找不到分段");
if (!assortFlag){
OcrRuleResult ocrRuleResult = iOcrRuleService.handleRule(ocrTextList,version);
//更新文件数据的分段
if (ocrRuleResult!=null){
assortId = ocrRuleResult.getAssortId();
assortName = ocrRuleResult.getAssortName();
ruleId = ocrRuleResult.getRuleId();
hitKey = ocrRuleResult.getHitKey();
rate = ocrRuleResult.getRate();
}else {
assortId = "-1";
assortName="其他";
}
}
fileInfo.setAssortId(assortId);
fileInfo.setAssortName(assortName);
fileInfo.setRuleId(ruleId);
fileInfo.setHitKey(hitKey);
fileInfo.setRate(rate);
File file = new File(fileInfo.getPicUrl());
files.add(file);
@ -127,8 +146,6 @@ public class StartSegmentHandler {
fileDTO.setSerialNumber(fileInfo.getSerialNumber());
fileDTOList.add(fileDTO);
}
//更新数据库表
List<OcrBasic> collect = ocrBasicList.stream().peek(p -> {

@ -49,6 +49,12 @@ public class StartSegmentTestHandler {
List<OcrFileInfoTest> fileInfoTestList = iOcrFileInfoTestDao.findBy("patientId", patientId);
String url = iOcrUrlConfigTestDao.findAll().get(0).getUrl();
for (OcrFileInfoTest fileInfoTest : fileInfoTestList) {
boolean assortFlag = false;
String assortId = null;
String assortName = null;
Long ruleId = null;
String hitKey = null;
Double rate = null;
//遍历文件列表 获取ocr识别结果
List<String> ocrTextList = ocrApi.getText(fileInfoTest.getPicCutUrl(),url);
@ -58,40 +64,61 @@ public class StartSegmentTestHandler {
fileInfoTest.setOcrFinishTime(new Date());
//判断上次是否特殊文件开始 需要判断是否特殊文件结尾
if (isSpecialFile) {
fileInfoTest.setAssortId(lastSpecialResul.getAssortId());
fileInfoTest.setAssortName(lastSpecialResul.getAssortName());
fileInfoTest.setRuleId(lastSpecialResul.getRuleId());
assortId = lastSpecialResul.getAssortId();
assortName = lastSpecialResul.getAssortName();
ruleId = lastSpecialResul.getRuleId();
boolean b = iOcrSpecialRuleTestService.handleSpecialRuleEnd(lastSpecialResul, ocrTextList);
if (b) {
//当前分段为特殊分段结尾
isSpecialFile = false;
lastSpecialResul = null;
assortFlag = true;
}
continue;
}
//优先判断是否特殊规则开始
OcrSpecialResult ocrSpecialResult = iOcrSpecialRuleTestService.handleSpecialRule(ocrTextList);
//判断是否属于某个分段
if (ocrSpecialResult != null) {
fileInfoTest.setAssortId(ocrSpecialResult.getAssortId());
fileInfoTest.setAssortName(ocrSpecialResult.getAssortName());
fileInfoTest.setRuleId(ocrSpecialResult.getRuleId());
fileInfoTest.setHitKey(ocrSpecialResult.getHitKey());
fileInfoTest.setRate(ocrSpecialResult.getRate());
isSpecialFile = true;
lastSpecialResul = ocrSpecialResult;
continue;
if (!assortFlag){
//优先判断是否特殊规则开始
OcrSpecialResult ocrSpecialResult = iOcrSpecialRuleTestService.handleSpecialRule(ocrTextList);
//判断是否属于某个分段
if (ocrSpecialResult != null) {
assortId = ocrSpecialResult.getAssortId();
assortName = ocrSpecialResult.getAssortName();
ruleId = ocrSpecialResult.getRuleId();
hitKey = ocrSpecialResult.getHitKey();
rate = ocrSpecialResult.getRate();
assortFlag = true;
isSpecialFile = true;
lastSpecialResul = ocrSpecialResult;
}
}
OcrRuleResult ocrRuleResult = iOcrRuleTestService.handleRule(ocrTextList);
//更新文件数据的分段
if (ocrRuleResult != null) {
fileInfoTest.setAssortId(ocrRuleResult.getAssortId());
fileInfoTest.setAssortName(ocrRuleResult.getAssortName());
fileInfoTest.setRuleId(ocrRuleResult.getRuleId());
fileInfoTest.setHitKey(ocrRuleResult.getHitKey());
fileInfoTest.setRate(ocrRuleResult.getRate());
if (!assortFlag){
OcrRuleResult ocrRuleResult = iOcrRuleTestService.handleRule(ocrTextList);
//更新文件数据的分段
if (ocrRuleResult != null) {
assortId = ocrRuleResult.getAssortId();
assortName = ocrRuleResult.getAssortName();
ruleId = ocrRuleResult.getRuleId();
hitKey = ocrRuleResult.getHitKey();
rate = ocrRuleResult.getRate();
}else {
assortId = "-1";
assortName="其他";
}
}
fileInfoTest.setAssortId(assortId);
fileInfoTest.setAssortName(assortName);
fileInfoTest.setRuleId(ruleId);
fileInfoTest.setHitKey(hitKey);
fileInfoTest.setRate(rate);
}
//更新数据库表
List<OcrBasicTest> collect = ocrBasicTestList.stream().peek(p -> {

@ -103,6 +103,13 @@ public class OcrRuleServiceImpl implements IOcrRuleService {
double rate = keyWord.length() / (double) ocrText.length() * 100;
//判断是否命中
if (rate >= score) {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRule.getId());
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setAssortName(assortName);
ocrRuleResult.setHitKey(keyWord);
ocrRuleResult.setRate(rate);
//判断二级是否启用
if (ocrRule.getIsUseSecond() && Func.isNotEmpty(ocrRule.getJson())) {
List<OcrRuleJson> ocrRuleList = Func.parseJsonArray(ocrRule.getJson(), OcrRuleJson.class)
@ -125,7 +132,6 @@ public class OcrRuleServiceImpl implements IOcrRuleService {
rate = keyWord.length() / (double) ocrText.length() * 100;
//判断是否命中
if (rate >= score) {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRule.getId());
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setAssortName(assortName);
@ -137,15 +143,9 @@ public class OcrRuleServiceImpl implements IOcrRuleService {
}
}
}
} else {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRule.getId());
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setAssortName(assortName);
ocrRuleResult.setHitKey(keyWord);
ocrRuleResult.setRate(rate);
return ocrRuleResult;
}
return ocrRuleResult;
}
}
}

@ -57,6 +57,15 @@ public class OcrRuleTestServiceImpl implements IOcrRuleTestService {
double rate = keyWord.length() / (double) ocrText.length() * 100;
//判断是否命中
if (rate >= score) {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRuleTest.getId());
ocrRuleResult.setAssortName(assortName);
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setHitKey(keyWord);
ocrRuleResult.setRate(rate);
//判断二级是否启用
if (ocrRuleTest.getIsUseSecond() && Func.isNotEmpty(ocrRuleTest.getJson())) {
List<OcrRuleJson> ocrRuleList = Func.parseJsonArray(ocrRuleTest.getJson(), OcrRuleJson.class)
@ -79,7 +88,6 @@ public class OcrRuleTestServiceImpl implements IOcrRuleTestService {
rate = keyWord.length() / (double) ocrText.length() * 100;
//判断是否命中
if (rate >= score) {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRuleTest.getId());
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setAssortName(assortName);
@ -91,15 +99,9 @@ public class OcrRuleTestServiceImpl implements IOcrRuleTestService {
}
}
}
} else {
OcrRuleResult ocrRuleResult = new OcrRuleResult();
ocrRuleResult.setRuleId(ocrRuleTest.getId());
ocrRuleResult.setAssortName(assortName);
ocrRuleResult.setAssortId(assortId);
ocrRuleResult.setHitKey(keyWord);
ocrRuleResult.setRate(rate);
return ocrRuleResult;
}
return ocrRuleResult;
}
}
}

Loading…
Cancel
Save