diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/OcrConstant.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/OcrConstant.java index 6b061ec..152db75 100644 --- a/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/OcrConstant.java +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/constant/OcrConstant.java @@ -32,6 +32,10 @@ public class OcrConstant { public static String api_test2_identify_url="http://127.0.0.1:7003/semantic"; //public static String api_test2_identify_url="http://127.0.0.1:8000/semantic"; + /** + * 测试环境图片预览地址 + */ + public static String FILE_REVIEW_URL_PREFIX="http://47.103.213.109:8072/files"; public static void main(String[] args) { for (int i = 0; i < 100; i++) { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java index a7d570e..3dcef1a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/api/controller/ApiController.java @@ -2,18 +2,13 @@ package org.jeecg.modules.api.controller; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.constant.CommonConstant; -import org.jeecg.common.constant.SymbolConstant; -import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.vo.DictModel; import org.jeecg.common.util.*; -import org.jeecg.common.util.filter.FileTypeFilter; import org.jeecg.modules.ocr.entity.OcrIdentify; import org.jeecg.modules.ocr.entity.OcrIdentifyDetail; import org.jeecg.modules.ocr.entity.OcrRuleCheck; @@ -23,28 +18,19 @@ import org.jeecg.modules.ocr.service.IOcrRuleCheckService; import org.jeecg.modules.ocr.service.impl.TaskService; import org.jeecg.modules.ocr.utils.FileOUtils; import org.jeecg.modules.ocr.utils.ImageUtils; -import org.jeecg.modules.ocr.vo.OcrIdentifyVo; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; +import org.jeecg.modules.ocr.dto.OcrIdentifyDTO; +import org.jeecg.modules.ocr.dto.OcrRuleCheckDTO; import org.jeecg.modules.system.service.ISysDictService; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableAsync; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.MultipartHttpServletRequest; import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.awt.*; import java.io.File; -import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; /** * @Description @@ -90,7 +76,7 @@ public class ApiController { AssertUtils.notNull(requestId, "[requestId]-不可为空"); AssertUtils.notTrue(!"door".equals(scenes), String.format("暂不支持该场景类型[%s]", scenes)); AssertUtils.notNull(ruleId, "[ruleId]-不可为空"); - OcrRuleCheckVo ruleCheck = ocrRuleCheckService.findById(ruleId); + OcrRuleCheckDTO ruleCheck = ocrRuleCheckService.findById(ruleId); AssertUtils.notNull(ruleCheck, "[ruleId]-不存在"); AssertUtils.notNull(priority, "[priority]-不可为空"); AssertUtils.notNull(sourceJson, "[sourceJson]-不可为空"); @@ -145,10 +131,10 @@ public class ApiController { @PostMapping(value = "/getRule") @Transactional(rollbackFor = Exception.class) public Result> getRule() { - IPage ocrRuleCheckVoIPage = ocrRuleCheckService.pageVo(new Page(1, Integer.MAX_VALUE), new OcrRuleCheck()); + IPage ocrRuleCheckVoIPage = ocrRuleCheckService.pageVo(new Page(1, Integer.MAX_VALUE), new OcrRuleCheck()); List records = new ArrayList<>(); JSONObject copyEntity = new JSONObject(); - for (OcrRuleCheckVo record : ocrRuleCheckVoIPage.getRecords()) { + for (OcrRuleCheckDTO record : ocrRuleCheckVoIPage.getRecords()) { copyEntity = new JSONObject(); copyEntity.put("ruleId", record.getId()); copyEntity.put("ruleName", record.getConfigName()); @@ -257,7 +243,7 @@ public class ApiController { @ApiOperation(value = "调试101") @PostMapping(value = "/test_101") public Result test101(@RequestBody JSONObject jsonObject){ - OcrIdentifyVo byId = ocrIdentifyService.findById("1692068694831755265"); + OcrIdentifyDTO byId = ocrIdentifyService.findById("1692068694831755265"); ocrIdentifyService.updateTaskResultInfo(byId.getId()); /*OcrRuleCheckVo ocrRuleCheckVo = byId.getOcrRuleCheckVo(); Map configRuleMap = ocrRuleCheckVo.getConfigRuleMap();*/ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiCallStatisticsController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiCallStatisticsController.java index e448b23..c382788 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiCallStatisticsController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiCallStatisticsController.java @@ -4,26 +4,21 @@ import java.util.Arrays; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.modules.ocr.entity.OcrApiCallStatistics; -import org.jeecg.modules.ocr.entity.OcrMetadataConfig; -import org.jeecg.modules.ocr.model.CommonQueryModel; +import org.jeecg.modules.ocr.vo.CommonQueryVO; import org.jeecg.modules.ocr.service.IOcrApiCallStatisticsService; import org.jeecg.common.system.base.controller.JeecgController; -import org.jeecg.modules.ocr.utils.DownloadTemplateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; -import org.apache.shiro.authz.annotation.RequiresPermissions; - /** +/** * @Description: api调用统计 * @Author: jeecg-boot * @Date: 2023-07-14 @@ -40,7 +35,7 @@ public class OcrApiCallStatisticsController extends JeecgController> queryPageList(CommonQueryModel commonQueryModel, - @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, - @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, - HttpServletRequest req) { + public Result> queryPageList(CommonQueryVO commonQueryVO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { Page page = new Page(pageNo, pageSize); - IPage pageList = ocrApiCallStatisticsService.pageList(page, commonQueryModel); + IPage pageList = ocrApiCallStatisticsService.pageList(page, commonQueryVO); return Result.OK(pageList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiController.java index f009c2a..666aee9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrApiController.java @@ -1,34 +1,15 @@ package org.jeecg.modules.ocr.controller; -import com.alibaba.fastjson.JSONArray; -import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.io.FileUtils; -import org.jeecg.common.api.vo.Result; import org.jeecg.common.util.AssertUtils; -import org.jeecg.common.util.RestUtil; -import org.jeecg.modules.ocr.entity.OcrApiCallStatistics; -import org.jeecg.modules.ocr.entity.OcrIdentify; -import org.jeecg.modules.ocr.entity.OcrTaskType; import org.jeecg.modules.ocr.service.IOcrApiCallStatisticsService; import org.jeecg.modules.ocr.service.IOcrIdentifyService; import org.jeecg.modules.ocr.service.IOcrRuleCheckService; import org.jeecg.modules.ocr.service.IOcrTaskTypeService; -import org.jeecg.modules.ocr.utils.FileOUtils; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; -import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.io.File; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; /** * @Description diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrIdentifyController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrIdentifyController.java index 148de96..888e548 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrIdentifyController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrIdentifyController.java @@ -11,9 +11,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang.StringUtils; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.constant.OcrConstant; import org.jeecg.common.constant.enums.OcrStatusEnum; -import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.system.query.QueryGenerator; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -21,22 +19,18 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.vo.DictModel; import org.jeecg.common.util.AssertUtils; -import org.jeecg.common.util.RedisUtil; import org.jeecg.modules.ocr.entity.OcrIdentify; import org.jeecg.modules.ocr.entity.OcrIdentifyDetail; -import org.jeecg.modules.ocr.entity.OcrMetadataConfig; import org.jeecg.modules.ocr.entity.OcrRuleCheck; -import org.jeecg.modules.ocr.model.OcrResult2; +import org.jeecg.modules.ocr.dto.OcrResultDTO; import org.jeecg.modules.ocr.service.*; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.ocr.service.impl.TaskService; import org.jeecg.modules.ocr.utils.DownloadTemplateUtil; import org.jeecg.modules.ocr.utils.FileOUtils; -import org.jeecg.modules.ocr.vo.OcrIdentifyExcelVo; -import org.jeecg.modules.ocr.vo.OcrIdentifyVo; -import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; -import org.jeecg.modules.system.service.ISysDictItemService; +import org.jeecg.modules.ocr.excel.OcrIdentifyExcel; +import org.jeecg.modules.ocr.dto.OcrMetadataConfigDTO; +import org.jeecg.modules.ocr.dto.OcrRuleCheckDTO; import org.jeecg.modules.system.service.ISysDictService; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.entity.ImportParams; @@ -49,7 +43,6 @@ import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; -import org.apache.shiro.authz.annotation.RequiresPermissions; /** * @Description: ocr识别 @@ -77,10 +70,6 @@ public class OcrIdentifyController extends JeecgController page = new Page<>(pageNo, pageSize); - Map ocrRuleCheckMap = ocrRuleCheckService.listToMap(null); - Map metadataConfigMap = ocrMetadataConfigService.listToMap(null); + Map ocrRuleCheckMap = ocrRuleCheckService.listToMap(null); + Map metadataConfigMap = ocrMetadataConfigService.listToMap(null); Map taskNameMap = ocrTaskTypeService.listNameToMap(null); IPage pageList = ocrIdentifyService.page(page, queryWrapper); if (pageList != null && pageList.getRecords() != null &&pageList.getRecords().size()>0) { @@ -131,22 +120,22 @@ public class OcrIdentifyController extends JeecgController i.getIdentifyId().equals(record.getId())).count(); record.setImgNum(count); if (StringUtils.isNotBlank(record.getTaskResultInfo())) { - List ocrResult2s = JSONObject.parseArray(record.getTaskResultInfo()).toJavaList(OcrResult2.class); - int tagNum = ocrResult2s.size(); - int successNum = (int) ocrResult2s.stream().filter(o -> o.getRuleValidation()).count(); + List ocrResultDTOS = JSONObject.parseArray(record.getTaskResultInfo()).toJavaList(OcrResultDTO.class); + int tagNum = ocrResultDTOS.size(); + int successNum = (int) ocrResultDTOS.stream().filter(o -> o.getRuleValidation()).count(); record.setTagNum(tagNum); record.setTagSuccessNum(successNum); record.setSuccessRate(successNum+"/"+tagNum); - record.setTaskResultInfoList(ocrResult2s); + record.setTaskResultInfoList(ocrResultDTOS); } - OcrRuleCheckVo ocrRuleCheckVo = ocrRuleCheckMap.get(record.getRuleCheck()); + OcrRuleCheckDTO ocrRuleCheckVo = ocrRuleCheckMap.get(record.getRuleCheck()); if (ocrRuleCheckVo!=null && StringUtils.isNotBlank(ocrRuleCheckVo.getMetadataConfigId())) { record.setOcrRuleCheckInfoConfigRule(ocrRuleCheckVo.getConfigRule()); record.setMetadataConfigId(ocrRuleCheckVo.getMetadataConfigId()); - OcrMetadataConfigVo ocrMetadataConfigVo = metadataConfigMap.get(ocrRuleCheckVo.getMetadataConfigId()); - if (ocrMetadataConfigVo!=null) { - record.setTaskType(ocrMetadataConfigVo.getTaskType()); - record.setTaskType_dictText(taskNameMap.get(ocrMetadataConfigVo.getTaskType())); + OcrMetadataConfigDTO ocrMetadataConfigDTO = metadataConfigMap.get(ocrRuleCheckVo.getMetadataConfigId()); + if (ocrMetadataConfigDTO !=null) { + record.setTaskType(ocrMetadataConfigDTO.getTaskType()); + record.setTaskType_dictText(taskNameMap.get(ocrMetadataConfigDTO.getTaskType())); } } } @@ -272,31 +261,31 @@ public class OcrIdentifyController extends JeecgController ocrRuleCheckMap = ocrRuleCheckService.listToMap(null); - Map metadataConfigMap = ocrMetadataConfigService.listToMap(null); + Map ocrRuleCheckMap = ocrRuleCheckService.listToMap(null); + Map metadataConfigMap = ocrMetadataConfigService.listToMap(null); Map taskNameMap = ocrTaskTypeService.listNameToMap(null); List identifyDetailList = ocrIdentifyDetailService.list(new LambdaQueryWrapper().eq(OcrIdentifyDetail::getIdentifyId,id)); ocrIdentify.setImgNum((long)identifyDetailList.size()); if (StringUtils.isNotBlank(ocrIdentify.getTaskResultInfo())) { - List ocrResult2s = JSONObject.parseArray(ocrIdentify.getTaskResultInfo()).toJavaList(OcrResult2.class); - int tagNum = ocrResult2s.size(); - int successNum = (int) ocrResult2s.stream().filter(o -> o.getRuleValidation()).count(); + List ocrResultDTOList = JSONObject.parseArray(ocrIdentify.getTaskResultInfo()).toJavaList(OcrResultDTO.class); + int tagNum = ocrResultDTOList.size(); + int successNum = (int) ocrResultDTOList.stream().filter(o -> o.getRuleValidation()).count(); ocrIdentify.setTagNum(tagNum); ocrIdentify.setTagSuccessNum(successNum); ocrIdentify.setSuccessRate(successNum+"/"+tagNum); - ocrIdentify.setTaskResultInfoList(ocrResult2s); + ocrIdentify.setTaskResultInfoList(ocrResultDTOList); } - OcrRuleCheckVo ocrRuleCheckVo = ocrRuleCheckMap.get(ocrIdentify.getRuleCheck()); + OcrRuleCheckDTO ocrRuleCheckVo = ocrRuleCheckMap.get(ocrIdentify.getRuleCheck()); if (ocrRuleCheckVo!=null && StringUtils.isNotBlank(ocrRuleCheckVo.getMetadataConfigId())) { ocrIdentify.setOcrRuleCheckInfoConfigRule(ocrRuleCheckVo.getConfigRule()); ocrIdentify.setRuleCheck_dictText(ocrRuleCheckVo.getConfigName()); ocrIdentify.setMetadataConfigId(ocrRuleCheckVo.getMetadataConfigId()); ocrIdentify.setMetadataConfigId_dictText(ocrRuleCheckVo.getMetadataConfigName()); - OcrMetadataConfigVo ocrMetadataConfigVo = metadataConfigMap.get(ocrRuleCheckVo.getMetadataConfigId()); - if (ocrMetadataConfigVo!=null) { - ocrIdentify.setTaskType(ocrMetadataConfigVo.getTaskType()); - ocrIdentify.setTaskType_dictText(taskNameMap.get(ocrMetadataConfigVo.getTaskType())); + OcrMetadataConfigDTO ocrMetadataConfigDTO = metadataConfigMap.get(ocrRuleCheckVo.getMetadataConfigId()); + if (ocrMetadataConfigDTO !=null) { + ocrIdentify.setTaskType(ocrMetadataConfigDTO.getTaskType()); + ocrIdentify.setTaskType_dictText(taskNameMap.get(ocrMetadataConfigDTO.getTaskType())); } } return Result.OK(ocrIdentify); @@ -335,19 +324,19 @@ public class OcrIdentifyController extends JeecgController list = ExcelImportUtil.importExcel(file.getInputStream(), OcrIdentifyExcelVo.class, params); + List list = ExcelImportUtil.importExcel(file.getInputStream(), OcrIdentifyExcel.class, params); //update-begin-author:taoyan date:20190528 for:批量插入数据 long start = System.currentTimeMillis(); //service.saveBatch(list); List ocrIdentifyList=new ArrayList<>(); - for (OcrIdentifyExcelVo ocrIdentifyExcelVo : list) { + for (OcrIdentifyExcel ocrIdentifyExcel : list) { OcrIdentify ocrIdentify=new OcrIdentify(); - BeanUtils.copyProperties(ocrIdentifyExcelVo,ocrIdentify); + BeanUtils.copyProperties(ocrIdentifyExcel,ocrIdentify); //通过规则检查配置名称 反查 规则检查配置id - if (StringUtils.isNotBlank(ocrIdentifyExcelVo.getRuleCheck())) { - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().eq(OcrRuleCheck::getConfigName, ocrIdentifyExcelVo.getRuleCheck()); + if (StringUtils.isNotBlank(ocrIdentifyExcel.getRuleCheck())) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper().eq(OcrRuleCheck::getConfigName, ocrIdentifyExcel.getRuleCheck()); List ruleChecklist = ocrRuleCheckService.list(queryWrapper); if (ruleChecklist!=null&&ruleChecklist.size()>0) { ocrIdentify.setRuleCheck(ruleChecklist.get(0).getId()); @@ -355,7 +344,7 @@ public class OcrIdentifyController extends JeecgController sourceJson = new ArrayList<>(); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java index a1246e1..d3110d1 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java @@ -13,11 +13,8 @@ import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.apache.commons.lang.StringUtils; -import org.apache.poi.ss.formula.functions.T; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; -import org.jeecg.common.system.query.QueryGenerator; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.extern.slf4j.Slf4j; @@ -25,16 +22,15 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.common.util.AssertUtils; import org.jeecg.common.util.oConvertUtils; import org.jeecg.config.JeecgBaseConfig; -import org.jeecg.modules.ocr.entity.OcrIdentify; import org.jeecg.modules.ocr.entity.OcrMetadataConfig; import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; import org.jeecg.modules.ocr.entity.OcrRuleCheck; -import org.jeecg.modules.ocr.model.OcrMetadataConfigSaveModel; +import org.jeecg.modules.ocr.vo.SaveOcrMetadataConfigVO; import org.jeecg.modules.ocr.service.IOcrMetadataConfigService; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.ocr.service.IOcrRuleCheckService; import org.jeecg.modules.ocr.utils.DownloadTemplateUtil; -import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; +import org.jeecg.modules.ocr.dto.OcrMetadataConfigDTO; import org.jeecgframework.poi.excel.ExcelImportUtil; import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; @@ -49,7 +45,6 @@ import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.aspect.annotation.AutoLog; -import org.apache.shiro.authz.annotation.RequiresPermissions; /** * @Description: 元数据配置 @@ -83,26 +78,26 @@ public class OcrMetadataConfigController extends JeecgController> queryPageList(OcrMetadataConfig ocrMetadataConfig, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest req) { + public Result> queryPageList(OcrMetadataConfig ocrMetadataConfig, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { Page page = new Page(pageNo, pageSize); - IPage pageList = ocrMetadataConfigService.pageVo(page, ocrMetadataConfig); + IPage pageList = ocrMetadataConfigService.pageVo(page, ocrMetadataConfig); return Result.OK(pageList); } @ApiOperation(value = "元数据配置-下拉列表", notes = "元数据配置-下拉列表") @GetMapping(value = "/allList") - public Result> allList(HttpServletRequest req) { - List allList = ocrMetadataConfigService.allList(null); + public Result> allList(HttpServletRequest req) { + List allList = ocrMetadataConfigService.allList(null); return Result.OK(allList); } /** * 添加 * - * @param ocrMetadataConfigSaveModel + * @param saveOcrMetadataConfigVO * @return */ @AutoLog(value = "元数据配置-添加") @@ -110,24 +105,24 @@ public class OcrMetadataConfigController extends JeecgController add(@RequestBody OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { - checkSaveModel(ocrMetadataConfigSaveModel); - String configName = ocrMetadataConfigSaveModel.getConfigName(); + public Result add(@RequestBody SaveOcrMetadataConfigVO saveOcrMetadataConfigVO) { + checkSaveModel(saveOcrMetadataConfigVO); + String configName = saveOcrMetadataConfigVO.getConfigName(); boolean existsFlag = ocrMetadataConfigService.existsByConfigName(configName, null);//true 已存在,false不存在 AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", configName)); - ocrMetadataConfigService.saveModel(ocrMetadataConfigSaveModel); + ocrMetadataConfigService.saveModel(saveOcrMetadataConfigVO); return Result.OK("添加成功!"); } /** * 校验保存时入参是否可通过 * - * @param ocrMetadataConfigSaveModel + * @param saveOcrMetadataConfigVO */ - public void checkSaveModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { - AssertUtils.notEmpty(ocrMetadataConfigSaveModel.getConfigName(), "[配置名称]不可为空"); - if (ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList() != null) { - for (OcrMetadataConfigDetail detail : ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList()) { + public void checkSaveModel(SaveOcrMetadataConfigVO saveOcrMetadataConfigVO) { + AssertUtils.notEmpty(saveOcrMetadataConfigVO.getConfigName(), "[配置名称]不可为空"); + if (saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList() != null) { + for (OcrMetadataConfigDetail detail : saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList()) { AssertUtils.notEmpty(detail.getFieldName(), "[字段名称]不可为空"); AssertUtils.notEmpty(detail.getGetField(), "[获取字段]不可为空"); } @@ -137,20 +132,20 @@ public class OcrMetadataConfigController extends JeecgController edit(@RequestBody OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { - checkSaveModel(ocrMetadataConfigSaveModel); - AssertUtils.notEmpty(ocrMetadataConfigSaveModel.getId(), "[id]不可为空"); - String configName = ocrMetadataConfigSaveModel.getConfigName(); - boolean existsFlag = ocrMetadataConfigService.existsByConfigName(configName, ocrMetadataConfigSaveModel.getId());//true 已存在,false不存在 + public Result edit(@RequestBody SaveOcrMetadataConfigVO saveOcrMetadataConfigVO) { + checkSaveModel(saveOcrMetadataConfigVO); + AssertUtils.notEmpty(saveOcrMetadataConfigVO.getId(), "[id]不可为空"); + String configName = saveOcrMetadataConfigVO.getConfigName(); + boolean existsFlag = ocrMetadataConfigService.existsByConfigName(configName, saveOcrMetadataConfigVO.getId());//true 已存在,false不存在 AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", configName)); - ocrMetadataConfigService.updateModel(ocrMetadataConfigSaveModel); + ocrMetadataConfigService.updateModel(saveOcrMetadataConfigVO); return Result.OK("编辑成功!"); } @@ -197,8 +192,8 @@ public class OcrMetadataConfigController extends JeecgController queryById(@RequestParam(name = "id", required = true) String id) { - OcrMetadataConfigVo ocrMetadataConfig = ocrMetadataConfigService.findById(id); + public Result queryById(@RequestParam(name = "id", required = true) String id) { + OcrMetadataConfigDTO ocrMetadataConfig = ocrMetadataConfigService.findById(id); if (ocrMetadataConfig == null) { return Result.error("未找到对应数据"); } @@ -220,7 +215,7 @@ public class OcrMetadataConfigController extends JeecgController exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); if (oConvertUtils.isNotEmpty(selections)) { List selectionList = Arrays.asList(selections.split(",")); exportList = ocrMetadataConfigService.allList(selectionList); @@ -228,7 +223,7 @@ public class OcrMetadataConfigController extends JeecgController list = ExcelImportUtil.importExcel(file.getInputStream(), OcrMetadataConfigVo.class, params); + List list = ExcelImportUtil.importExcel(file.getInputStream(), OcrMetadataConfigDTO.class, params); AssertUtils.hasSize(list,"未获取到数据!"); //判断重复字段名 Map countMap = list.stream().map(o->o.getConfigName()).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); AssertUtils.notTrue(countMap.values().stream().filter(f->f>1).count()>0,"不可有重复的配置名称!"); //入库保存的元数据对象 - List saveModelList=new ArrayList<>(); + List saveModelList=new ArrayList<>(); //元数据循环copy add的对象 - OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel; + SaveOcrMetadataConfigVO saveOcrMetadataConfigVO; //元数据循环遍历用的对象 List ocrMetadataConfigDetailList; OcrMetadataConfigDetail ocrMetadataConfigDetail; @@ -282,12 +277,12 @@ public class OcrMetadataConfigController extends JeecgController resultList; List getFieldList; - for (OcrMetadataConfigVo configVo : list) { - ocrMetadataConfigSaveModel=new OcrMetadataConfigSaveModel(); - ocrMetadataConfigSaveModel.setConfigName(configVo.getConfigName()); + for (OcrMetadataConfigDTO configVo : list) { + saveOcrMetadataConfigVO =new SaveOcrMetadataConfigVO(); + saveOcrMetadataConfigVO.setConfigName(configVo.getConfigName()); resultName = configVo.getResultName(); getField = configVo.getGetField(); - ocrMetadataConfigSaveModel.setTaskTypeName(configVo.getTaskType_dictText()); + saveOcrMetadataConfigVO.setTaskTypeName(configVo.getTaskType_dictText()); resultList=new ArrayList<>(); getFieldList=new ArrayList<>(); if (StringUtils.isNotBlank(resultName)) { @@ -304,8 +299,8 @@ public class OcrMetadataConfigController extends JeecgController> queryPageList(OcrRuleCheck ocrRuleCheck, - @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, - @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, - HttpServletRequest req) { + public Result> queryPageList(OcrRuleCheck ocrRuleCheck, + @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, + HttpServletRequest req) { /*if (StringUtils.isNotBlank(ocrRuleCheck.getConfigName())) { ocrRuleCheck.setConfigName("*" + ocrRuleCheck.getConfigName() + "*"); }*/ @@ -96,55 +90,55 @@ public class OcrRuleCheckController extends JeecgController page = new Page(pageNo, pageSize); - IPage pageList = ocrRuleCheckService.pageVo(page, ocrRuleCheck); + IPage pageList = ocrRuleCheckService.pageVo(page, ocrRuleCheck); return Result.OK(pageList); } /** * 添加 * - * @param ocrRuleCheckSaveModel + * @param saveOcrRuleCheckVO * @return */ @AutoLog(value = "规则检查配置-添加") @ApiOperation(value = "规则检查配置-添加", notes = "规则检查配置-添加") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_rule_check:add") @PostMapping(value = "/add") - public Result add(@RequestBody OcrRuleCheckSaveModel ocrRuleCheckSaveModel) { - checkSaveModel(ocrRuleCheckSaveModel); - String configName = ocrRuleCheckSaveModel.getConfigName(); + public Result add(@RequestBody SaveOcrRuleCheckVO saveOcrRuleCheckVO) { + checkSaveModel(saveOcrRuleCheckVO); + String configName = saveOcrRuleCheckVO.getConfigName(); boolean existsFlag = ocrRuleCheckService.existsByConfigName(configName, null);//true 已存在,false不存在 AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", configName)); - ocrRuleCheckService.saveModel(ocrRuleCheckSaveModel); + ocrRuleCheckService.saveModel(saveOcrRuleCheckVO); return Result.OK("添加成功!"); } /** * 校验保存时入参是否可通过 * - * @param ocrRuleCheckSaveModel + * @param saveOcrRuleCheckVO */ - public void checkSaveModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel) { - AssertUtils.notEmpty(ocrRuleCheckSaveModel.getConfigName(), "[配置名称]不可为空"); + public void checkSaveModel(SaveOcrRuleCheckVO saveOcrRuleCheckVO) { + AssertUtils.notEmpty(saveOcrRuleCheckVO.getConfigName(), "[配置名称]不可为空"); } /** * 编辑 * - * @param ocrRuleCheckSaveModel + * @param saveOcrRuleCheckVO * @return */ @AutoLog(value = "规则检查配置-编辑") @ApiOperation(value = "规则检查配置-编辑", notes = "规则检查配置-编辑") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_rule_check:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) - public Result edit(@RequestBody OcrRuleCheckSaveModel ocrRuleCheckSaveModel) { - checkSaveModel(ocrRuleCheckSaveModel); - String configName = ocrRuleCheckSaveModel.getConfigName(); - AssertUtils.notEmpty(ocrRuleCheckSaveModel.getId(), "[id]不可为空"); - boolean existsFlag = ocrRuleCheckService.existsByConfigName(configName, ocrRuleCheckSaveModel.getId());//true 已存在,false不存在 + public Result edit(@RequestBody SaveOcrRuleCheckVO saveOcrRuleCheckVO) { + checkSaveModel(saveOcrRuleCheckVO); + String configName = saveOcrRuleCheckVO.getConfigName(); + AssertUtils.notEmpty(saveOcrRuleCheckVO.getId(), "[id]不可为空"); + boolean existsFlag = ocrRuleCheckService.existsByConfigName(configName, saveOcrRuleCheckVO.getId());//true 已存在,false不存在 AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", configName)); - ocrRuleCheckService.updateModel(ocrRuleCheckSaveModel); + ocrRuleCheckService.updateModel(saveOcrRuleCheckVO); return Result.OK("编辑成功!"); } @@ -214,7 +208,7 @@ public class OcrRuleCheckController extends JeecgController exportList = new ArrayList<>(); + List exportList = new ArrayList<>(); if (oConvertUtils.isNotEmpty(selections)) { List selectionList = Arrays.asList(selections.split(",")); exportList = ocrRuleCheckService.allList(selectionList); @@ -222,7 +216,7 @@ public class OcrRuleCheckController extends JeecgController list = ExcelImportUtil.importExcel(file.getInputStream(), OcrRuleCheckSaveModel.class, params); + List list = ExcelImportUtil.importExcel(file.getInputStream(), SaveOcrRuleCheckVO.class, params); AssertUtils.hasSize(list, "未获取到数据!"); //判断重复字段名 Map countMap = list.stream().map(o -> o.getConfigName()).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); AssertUtils.notTrue(countMap.values().stream().filter(f -> f > 1).count() > 0, "不可有重复的配置名称!"); Map metadataConfigNameMap = ocrMetadataConfigService.list(new LambdaQueryWrapper<>()).stream().collect(Collectors.toMap(OcrMetadataConfig::getConfigName, OcrMetadataConfig::getId)); - List saveModelList = new ArrayList<>(); - OcrRuleCheckSaveModel ocrRuleCheckSaveModel; + List saveModelList = new ArrayList<>(); + SaveOcrRuleCheckVO saveOcrRuleCheckVO; boolean existsFlag = false; String configRule;//规则配置 String metadataConfigName;//元数据配置名称 String metadataConfigId;//元数据配置id - for (OcrRuleCheckSaveModel configVo : list) { - ocrRuleCheckSaveModel = new OcrRuleCheckSaveModel(); + for (SaveOcrRuleCheckVO configVo : list) { + saveOcrRuleCheckVO = new SaveOcrRuleCheckVO(); metadataConfigName = configVo.getMetadataConfigName(); configRule = configVo.getConfigRule(); metadataConfigId = metadataConfigNameMap.get(metadataConfigName); @@ -280,10 +274,10 @@ public class OcrRuleCheckController extends JeecgController identifyDetailIdList = simulateChecksVO.getIdentifyDetailIdList(); AssertUtils.notEmpty(ruleCheckId, "请选择[规则扫描器]"); AssertUtils.hasSize(identifyDetailIdList,"请先上传图片"); - ocrIdentifyService.simulateChecks(simulateChecksVO); - //图片明细的id - return Result.OK(); + return Result.OK(ocrIdentifyService.simulateChecks(simulateChecksVO)); } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrIdentifyVo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrIdentifyDTO.java similarity index 59% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrIdentifyVo.java rename to jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrIdentifyDTO.java index a357f21..b61c463 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrIdentifyVo.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrIdentifyDTO.java @@ -1,13 +1,11 @@ -package org.jeecg.modules.ocr.vo; +package org.jeecg.modules.ocr.dto; -import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.Data; +import org.jeecg.modules.ocr.dto.OcrRuleCheckDTO; import org.jeecg.modules.ocr.entity.OcrIdentify; -import org.jeecg.modules.ocr.entity.OcrRuleCheck; import java.util.List; -import java.util.Map; /** * @Description ocr识别返回对象 @@ -15,9 +13,9 @@ import java.util.Map; * @Date 2023/7/19 18:20 */ @Data -public class OcrIdentifyVo extends OcrIdentify { +public class OcrIdentifyDTO extends OcrIdentify { /**规则检查配置*/ - public OcrRuleCheckVo ocrRuleCheckVo; + public OcrRuleCheckDTO ocrRuleCheckVo; /**校验数据源 json对象*/ public List sourceJsonObjects; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrMetadataConfigVo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrMetadataConfigDTO.java similarity index 87% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrMetadataConfigVo.java rename to jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrMetadataConfigDTO.java index 9925301..6348700 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrMetadataConfigVo.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrMetadataConfigDTO.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.ocr.vo; +package org.jeecg.modules.ocr.dto; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModelProperty; @@ -16,7 +16,7 @@ import java.util.List; * @Date 2023/7/17 16:53 */ @Data -public class OcrMetadataConfigVo extends OcrMetadataConfig { +public class OcrMetadataConfigDTO extends OcrMetadataConfig { /**任务类型_字段中文*/ @Excel(name = "任务类型", width = 15) private String taskType_dictText; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrResult.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrResultDTO.java similarity index 89% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrResult.java rename to jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrResultDTO.java index 3f800e2..94e3aab 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrResult.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrResultDTO.java @@ -1,7 +1,8 @@ -package org.jeecg.modules.ocr.model; +package org.jeecg.modules.ocr.dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import org.jeecg.modules.ocr.model.SourceImage; /** * @Description 异步通知ocr识别结果 @@ -9,7 +10,7 @@ import lombok.Data; * @Date 2023/7/21 14:51 */ @Data -public class OcrResult { +public class OcrResultDTO { @ApiModelProperty(value = "检索字段") private String tag; @ApiModelProperty(value = "检索字段名称") diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrRuleCheckVo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrRuleCheckDTO.java similarity index 92% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrRuleCheckVo.java rename to jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrRuleCheckDTO.java index 147e958..521c010 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrRuleCheckVo.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/dto/OcrRuleCheckDTO.java @@ -1,4 +1,4 @@ -package org.jeecg.modules.ocr.vo; +package org.jeecg.modules.ocr.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; @@ -23,7 +23,7 @@ import java.util.*; * @Version: V1.0 */ @Data -public class OcrRuleCheckVo extends OcrRuleCheck { +public class OcrRuleCheckDTO extends OcrRuleCheck { private static final long serialVersionUID = 1L; @ApiModelProperty(value = "元数据配置名称") @Excel(name = "元数据配置名称", width = 15) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrIdentify.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrIdentify.java index 7555062..c0e4bfd 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrIdentify.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrIdentify.java @@ -5,15 +5,13 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; -import com.alibaba.fastjson.annotation.JSONField; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; -import org.jeecg.modules.ocr.model.OcrResult2; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; +import org.jeecg.modules.ocr.dto.OcrResultDTO; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; import org.jeecg.common.aspect.annotation.Dict; @@ -22,8 +20,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import javax.persistence.Table; - /** * @Description: ocr识别 * @Author: jeecg-boot @@ -150,7 +146,7 @@ public class OcrIdentify implements Serializable { private String taskType_dictText; @TableField(exist = false) - private List taskResultInfoList=new ArrayList<>(); + private List taskResultInfoList=new ArrayList<>(); @TableField(exist = false) private Integer tagNum=0; @TableField(exist = false) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrIdentifyExcelVo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/excel/OcrIdentifyExcel.java similarity index 66% rename from jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrIdentifyExcelVo.java rename to jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/excel/OcrIdentifyExcel.java index c5e0df4..3b89421 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrIdentifyExcelVo.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/excel/OcrIdentifyExcel.java @@ -1,24 +1,11 @@ -package org.jeecg.modules.ocr.vo; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; -import io.swagger.annotations.ApiModel; +package org.jeecg.modules.ocr.excel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; -import org.jeecg.common.aspect.annotation.Dict; -import org.jeecg.modules.ocr.model.OcrResult2; import org.jeecgframework.poi.excel.annotation.Excel; -import org.springframework.format.annotation.DateTimeFormat; import java.io.Serializable; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; /** * @author 社恐的橙子 @@ -27,7 +14,7 @@ import java.util.List; @Data @Accessors(chain = true) @EqualsAndHashCode(callSuper = false) -public class OcrIdentifyExcelVo implements Serializable { +public class OcrIdentifyExcel implements Serializable { @Excel(name = "RequestId",width = 15) @ApiModelProperty(value = "请求id") public String requestId; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrIdentifyMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrIdentifyMapper.java index bd83418..cee6fb2 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrIdentifyMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrIdentifyMapper.java @@ -2,7 +2,7 @@ package org.jeecg.modules.ocr.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.ocr.entity.OcrIdentify; -import org.jeecg.modules.ocr.vo.OcrIdentifyVo; +import org.jeecg.modules.ocr.dto.OcrIdentifyDTO; import java.util.List; @@ -14,11 +14,11 @@ import java.util.List; */ public interface OcrIdentifyMapper extends BaseMapper { - OcrIdentifyVo findById(String id); + OcrIdentifyDTO findById(String id); /** * 获取 需要 回调 无量云 接口的任务. * @return */ - List findListOfWlyCallBack(); + List findListOfWlyCallBack(); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java index 86a6d0a..02baf7a 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.ocr.entity.OcrMetadataConfig; -import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; +import org.jeecg.modules.ocr.dto.OcrMetadataConfigDTO; import java.util.List; import java.util.Map; @@ -18,7 +18,7 @@ import java.util.Map; */ public interface OcrMetadataConfigMapper extends BaseMapper { - IPage pageVo(@Param("page") Page page,@Param("o") Map params); + IPage pageVo(@Param("page") Page page, @Param("o") Map params); - List allList(@Param("idList") List idList); + List allList(@Param("idList") List idList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrRuleCheckMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrRuleCheckMapper.java index c41c5f5..cce2265 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrRuleCheckMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrRuleCheckMapper.java @@ -5,7 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.ocr.entity.OcrRuleCheck; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; +import org.jeecg.modules.ocr.dto.OcrRuleCheckDTO; import java.util.List; import java.util.Map; @@ -18,9 +18,9 @@ import java.util.Map; */ public interface OcrRuleCheckMapper extends BaseMapper { - IPage pageVo(@Param("page")Page page,@Param("p") Map params); + IPage pageVo(@Param("page")Page page, @Param("p") Map params); - OcrRuleCheckVo findById(String id); + OcrRuleCheckDTO findById(String id); - List allList(@Param("selectionList")List selectionList); + List allList(@Param("selectionList")List selectionList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrIdentifyMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrIdentifyMapper.xml index e39a64c..9592e7d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrIdentifyMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrIdentifyMapper.xml @@ -2,11 +2,11 @@ - SELECT * FROM ocr_identify WHERE id = #{id} - SELECT identify.* FROM ocr_identify identify \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml index 9188e9e..d63b461 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml @@ -2,7 +2,7 @@ - SELECT oc.*, GROUP_CONCAT(ocd.field_name)as resultName, GROUP_CONCAT(ocd.get_field)as getField, @@ -27,7 +27,7 @@ order by oc.update_time desc - SELECT oc.*, tasktype.type_name as taskType_dictText FROM ocr_metadata_config oc diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrRuleCheckMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrRuleCheckMapper.xml index 9e1e521..17f2712 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrRuleCheckMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrRuleCheckMapper.xml @@ -2,7 +2,7 @@ - SELECT ocr.*,omc.config_name as metadataConfigName FROM ocr_rule_check ocr @@ -17,12 +17,12 @@ order by ocr.update_time desc - SELECT * FROM ocr_rule_check ocr WHERE ocr.id = #{id} - SELECT ocr.*,omc.config_name as metadataConfigName FROM ocr_rule_check ocr diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrResult2.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrResult2.java deleted file mode 100644 index 92cdde5..0000000 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrResult2.java +++ /dev/null @@ -1,29 +0,0 @@ -package org.jeecg.modules.ocr.model; - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * @Description 异步通知ocr识别结果 - * @Author ZhouWenTao - * @Date 2023/7/21 14:51 - */ -@Data -public class OcrResult2 { - @ApiModelProperty(value = "字段") - private String tag; - @ApiModelProperty(value = "字段名称") - private String tagName; - /*@ApiModelProperty(value = "api输入值") - private String inputText; - @ApiModelProperty(value = "ocr识别文本") - private String ocrText; - @ApiModelProperty(value = "ocr识别置信度") - private Double ocrPrecisionRate; - @ApiModelProperty(value = "图片来源") - private SourceImage sourceImage;*/ - @ApiModelProperty(value = "失败原因") - private String failureReason; - @ApiModelProperty(value = "规则验证结果") - private Boolean ruleValidation=false; -} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/SourceImage.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/SourceImage.java index be7051a..b459072 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/SourceImage.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/SourceImage.java @@ -1,5 +1,6 @@ package org.jeecg.modules.ocr.model; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -10,7 +11,12 @@ import lombok.Data; @Data public class SourceImage { //附件名称 + @ApiModelProperty(value = "附件名称") private String fileName; //附件地址 + @ApiModelProperty(value = "附件地址") private String path; + //预览地址 + @ApiModelProperty(value = "预览地址") + private String previewUrl; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrApiCallStatisticsService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrApiCallStatisticsService.java index a678f5f..f990f0b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrApiCallStatisticsService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrApiCallStatisticsService.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.ocr.entity.OcrApiCallStatistics; -import org.jeecg.modules.ocr.model.CommonQueryModel; +import org.jeecg.modules.ocr.vo.CommonQueryVO; import java.util.Date; @@ -16,7 +16,7 @@ import java.util.Date; */ public interface IOcrApiCallStatisticsService extends IService { - IPage pageList(Page page, CommonQueryModel commonQueryModel); + IPage pageList(Page page, CommonQueryVO commonQueryVO); String saveLogs(String apiName, String apiUrl, int count); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrIdentifyService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrIdentifyService.java index cc5bd4e..d440da7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrIdentifyService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrIdentifyService.java @@ -2,10 +2,9 @@ package org.jeecg.modules.ocr.service; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.extension.service.IService; -import org.checkerframework.checker.units.qual.A; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.ocr.entity.OcrIdentify; -import org.jeecg.modules.ocr.vo.OcrIdentifyVo; +import org.jeecg.modules.ocr.dto.OcrIdentifyDTO; import org.jeecg.modules.ocr.vo.SimulateChecksVO; import org.springframework.scheduling.annotation.Async; @@ -19,7 +18,7 @@ import java.util.List; */ public interface IOcrIdentifyService extends IService { //单条根据id,自定义返回结果对象方法 - public OcrIdentifyVo findById(String id); + public OcrIdentifyDTO findById(String id); /** * 回调无量云接口 @@ -62,5 +61,5 @@ public interface IOcrIdentifyService extends IService { * 模拟检查 * @param simulateChecksVO */ - void simulateChecks(SimulateChecksVO simulateChecksVO); + JSONObject simulateChecks(SimulateChecksVO simulateChecksVO); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java index a96c263..0bd794d 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java @@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.ocr.entity.OcrMetadataConfig; -import org.jeecg.modules.ocr.model.OcrMetadataConfigSaveModel; -import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; +import org.jeecg.modules.ocr.vo.SaveOcrMetadataConfigVO; +import org.jeecg.modules.ocr.dto.OcrMetadataConfigDTO; import java.util.List; import java.util.Map; @@ -28,17 +28,17 @@ public interface IOcrMetadataConfigService extends IService { /** * 保存元数据配置 - * @param ocrMetadataConfigSaveModel + * @param saveOcrMetadataConfigVO * @return */ - void saveModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel); + void saveModel(SaveOcrMetadataConfigVO saveOcrMetadataConfigVO); /** * 修改元数据配置 - * @param ocrMetadataConfigSaveModel + * @param saveOcrMetadataConfigVO * @return */ - OcrMetadataConfig updateModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel); + OcrMetadataConfig updateModel(SaveOcrMetadataConfigVO saveOcrMetadataConfigVO); /** * 元数据配置列表 @@ -46,13 +46,13 @@ public interface IOcrMetadataConfigService extends IService { * @param ocrMetadataConfig * @return */ - IPage pageVo(Page page, OcrMetadataConfig ocrMetadataConfig); + IPage pageVo(Page page, OcrMetadataConfig ocrMetadataConfig); - List allList(List idList); + List allList(List idList); - OcrMetadataConfigVo findById(String id); + OcrMetadataConfigDTO findById(String id); - void saveModelBatch(List saveModelList); + void saveModelBatch(List saveModelList); - Map listToMap(List idList); + Map listToMap(List idList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrRuleCheckService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrRuleCheckService.java index 91a00f0..c75bce7 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrRuleCheckService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrRuleCheckService.java @@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.ocr.entity.OcrRuleCheck; -import org.jeecg.modules.ocr.model.OcrRuleCheckSaveModel; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; +import org.jeecg.modules.ocr.vo.SaveOcrRuleCheckVO; +import org.jeecg.modules.ocr.dto.OcrRuleCheckDTO; import java.util.List; import java.util.Map; @@ -27,16 +27,16 @@ public interface IOcrRuleCheckService extends IService { /** * 新增 - * @param ocrRuleCheckSaveModel + * @param saveOcrRuleCheckVO */ - void saveModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel); + void saveModel(SaveOcrRuleCheckVO saveOcrRuleCheckVO); /** * 更新 - * @param ocrRuleCheckSaveModel + * @param saveOcrRuleCheckVO * @return */ - OcrRuleCheck updateModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel); + OcrRuleCheck updateModel(SaveOcrRuleCheckVO saveOcrRuleCheckVO); /** * 删除 @@ -50,28 +50,28 @@ public interface IOcrRuleCheckService extends IService { * @param ocrRuleCheck * @return */ - IPage pageVo(Page page, OcrRuleCheck ocrRuleCheck); + IPage pageVo(Page page, OcrRuleCheck ocrRuleCheck); /** * 自定义根据id查询 * @param ruleCheck * @return */ - OcrRuleCheckVo findById(String ruleCheck); + OcrRuleCheckDTO findById(String ruleCheck); /** * 批量新增 * @param saveModelList */ - void saveModelBatch(List saveModelList); + void saveModelBatch(List saveModelList); /** * 根据id获取列表 * @param selectionList * @return */ - List allList(List selectionList); + List allList(List selectionList); - Map listToMap(List selectionList); + Map listToMap(List selectionList); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrApiCallStatisticsServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrApiCallStatisticsServiceImpl.java index a3c38d7..8e7b613 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrApiCallStatisticsServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrApiCallStatisticsServiceImpl.java @@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang.StringUtils; import org.jeecg.modules.ocr.entity.OcrApiCallStatistics; import org.jeecg.modules.ocr.mapper.OcrApiCallStatisticsMapper; -import org.jeecg.modules.ocr.model.CommonQueryModel; +import org.jeecg.modules.ocr.vo.CommonQueryVO; import org.jeecg.modules.ocr.service.IOcrApiCallStatisticsService; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -26,14 +26,14 @@ import java.util.Map; public class OcrApiCallStatisticsServiceImpl extends ServiceImpl implements IOcrApiCallStatisticsService { @Override - public IPage pageList(Page page, CommonQueryModel commonQueryModel) { + public IPage pageList(Page page, CommonQueryVO commonQueryVO) { Map map=new LinkedHashMap<>(); - map.put("apiUrl",commonQueryModel.getApiUrl()); - map.put("count",commonQueryModel.getCount()); - if (StringUtils.isNotBlank(commonQueryModel.getStartTime())&&StringUtils.isNotBlank(commonQueryModel.getEndTime())) { + map.put("apiUrl", commonQueryVO.getApiUrl()); + map.put("count", commonQueryVO.getCount()); + if (StringUtils.isNotBlank(commonQueryVO.getStartTime())&&StringUtils.isNotBlank(commonQueryVO.getEndTime())) { SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd"); - map.put("startTime",commonQueryModel.getStartTime()+" 00:00:00"); - map.put("endTime",commonQueryModel.getEndTime()+" 23:59:59"); + map.put("startTime", commonQueryVO.getStartTime()+" 00:00:00"); + map.put("endTime", commonQueryVO.getEndTime()+" 23:59:59"); } IPage pageList = this.baseMapper.pageList(page,map); return pageList; diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrIdentifyServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrIdentifyServiceImpl.java index ec248a6..021d9b5 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrIdentifyServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrIdentifyServiceImpl.java @@ -1,6 +1,5 @@ package org.jeecg.modules.ocr.service.impl; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; @@ -9,9 +8,9 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.OcrConstant; -import org.jeecg.common.util.CommonUtils; import org.jeecg.common.util.RedisUtil; import org.jeecg.common.util.RestUtil; +import org.jeecg.modules.ocr.dto.OcrResultDTO; import org.jeecg.modules.ocr.entity.OcrIdentify; import org.jeecg.modules.ocr.entity.OcrIdentifyCallbackLog; import org.jeecg.modules.ocr.entity.OcrIdentifyDetail; @@ -22,8 +21,8 @@ import org.jeecg.modules.ocr.utils.ArrayOUtils; import org.jeecg.modules.ocr.utils.FileOUtils; import org.jeecg.modules.ocr.utils.ImageUtils; import org.jeecg.modules.ocr.utils.StrCharUtil; -import org.jeecg.modules.ocr.vo.OcrIdentifyVo; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; +import org.jeecg.modules.ocr.dto.OcrIdentifyDTO; +import org.jeecg.modules.ocr.dto.OcrRuleCheckDTO; import org.jeecg.modules.ocr.vo.SimulateChecksVO; import org.springframework.scheduling.annotation.Async; import org.springframework.scheduling.annotation.EnableAsync; @@ -63,20 +62,20 @@ public class OcrIdentifyServiceImpl extends ServiceImpl jsonObjects = jsonArray.toJavaList(JSONObject.class); - ocrIdentifyVo.setSourceJsonObjects(jsonObjects); + ocrIdentifyDTO.setSourceJsonObjects(jsonObjects); } //规则检查配置信息 - String ruleCheck = ocrIdentifyVo.getRuleCheck(); + String ruleCheck = ocrIdentifyDTO.getRuleCheck(); if (StringUtils.isNotBlank(ruleCheck)) { - OcrRuleCheckVo ocrRuleCheck = ocrRuleCheckService.findById(ocrIdentifyVo.getRuleCheck()); - ocrIdentifyVo.setOcrRuleCheckVo(ocrRuleCheck); + OcrRuleCheckDTO ocrRuleCheck = ocrRuleCheckService.findById(ocrIdentifyDTO.getRuleCheck()); + ocrIdentifyDTO.setOcrRuleCheckVo(ocrRuleCheck); } - return ocrIdentifyVo; + return ocrIdentifyDTO; } @@ -148,13 +147,13 @@ public class OcrIdentifyServiceImpl extends ServiceImpl checkSemanticModelMap = getCheckSemanticModelMap(ocrRuleCheckVo.getConfigRuleMap(), ocrRuleCheckVo.getFieldMap(), ocrIdentifyVo.getSourceJsonObjects()); + OcrIdentifyDTO ocrIdentifyDTO = this.findById(identifyId); + OcrRuleCheckDTO ocrRuleCheckVo = ocrIdentifyDTO.getOcrRuleCheckVo(); + Map checkSemanticModelMap = getCheckSemanticModelMap(ocrRuleCheckVo.getConfigRuleMap(), ocrRuleCheckVo.getFieldMap(), ocrIdentifyDTO.getSourceJsonObjects()); String text = null;//ocr 识别的文本 Double probability = 0d; //用于数据结构化的对象 - List ocrResultList = new ArrayList<>(); + List ocrResultDTOList = new ArrayList<>(); StringBuffer rMessage = new StringBuffer(); Map fieldRightMap = new LinkedHashMap<>();//存放 字段判断正确map //========================== @@ -190,16 +189,16 @@ public class OcrIdentifyServiceImpl extends ServiceImpl"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); } } } else { @@ -207,37 +206,37 @@ public class OcrIdentifyServiceImpl extends ServiceImpl"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); } else if (StringUtils.isBlank(inputText)) { //没有输入值. fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "没有输入值不做匹配", true,null); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "没有输入值不做匹配", true,null); } else if ("0".equals(ruleInfo)) { //不必校验,有识别到就行,通过 fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true,ruleInfo); } else if (Double.valueOf(ruleInfo) >= 1 && Double.valueOf(ruleInfo) <= 99) { //在1~99之间,根据精准度匹配 double v = StrCharUtil.similarityRatio(inputText, text); if (v >= Double.valueOf(ruleInfo)) { //准确度 可靠 fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); } else { rMessage.append(value.getFieldName() + "参数不匹配
"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); } } else if ("100".equals(ruleInfo)) { //必定验证参数,必须有值且匹配 double v = StrCharUtil.similarityRatio(inputText, text); if (text.equals(inputText)) { fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); } else { rMessage.append(value.getFieldName() + "参数不匹配
"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); } } } @@ -245,11 +244,11 @@ public class OcrIdentifyServiceImpl extends ServiceImpl"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); } } else { rMessage.append(value.getFieldName() + "参数未获取到结果
"); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, null, 0d, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, null, 0d, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); fieldRightMap.put(field, false); } } @@ -268,7 +267,7 @@ public class OcrIdentifyServiceImpl extends ServiceImpl updateWrapper = new LambdaUpdateWrapper(); updateWrapper.eq(OcrIdentify::getId, id); List identifyDetailList = ocrIdentifyDetailService.listByIdentifyId(id); if (true) { if (identifyDetailList != null && identifyDetailList.size() > 0) { - Map fieldRightMap = new LinkedHashMap<>(); + Map fieldRightMap = new LinkedHashMap<>(); String tag = null; boolean ruleValidation = false; /////明细中,如果有字段成功的,则会覆盖其他明细的匹配失败的情况,如果全都是失败的,会获取第一次失败的. @@ -331,11 +330,11 @@ public class OcrIdentifyServiceImpl extends ServiceImpl resultList = jsonArray.toJavaList(OcrResult2.class); - for (OcrResult2 result : resultList) { + List resultList = jsonArray.toJavaList(OcrResultDTO.class); + for (OcrResultDTO result : resultList) { tag = result.getTag(); ruleValidation = result.getRuleValidation(); - OcrResult2 lastResult = fieldRightMap.get(tag); + OcrResultDTO lastResult = fieldRightMap.get(tag); if (ruleValidation) { fieldRightMap.put(tag, result); } else if (lastResult == null || !lastResult.getRuleValidation()) { @@ -347,8 +346,8 @@ public class OcrIdentifyServiceImpl extends ServiceImpl errorResults = fieldRightMap.values().stream().filter(f -> !f.getRuleValidation()).collect(Collectors.toList()); - List ocrResults = fieldRightMap.values().stream().collect(Collectors.toList()); + List errorResults = fieldRightMap.values().stream().filter(f -> !f.getRuleValidation()).collect(Collectors.toList()); + List ocrResultDTOS = fieldRightMap.values().stream().collect(Collectors.toList()); //TODO 后续考虑需要修正复杂程度. 支持 & + || 一起 @@ -362,7 +361,7 @@ public class OcrIdentifyServiceImpl extends ServiceImpl identifyDetails = ocrIdentifyDetailService.listByIdentifyId(ocrIdentifyVo.getId()); + OcrIdentifyDTO ocrIdentifyDTO = this.findById(id); + List identifyDetails = ocrIdentifyDetailService.listByIdentifyId(ocrIdentifyDTO.getId()); /*for (OcrIdentifyDetail identifyDetail : identifyDetails) { JSONObject semanticResult = JSONObject.parseObject(identifyDetail.getSemanticResult()); String imgPath = identifyDetail.getImageUrl(); @@ -507,7 +506,7 @@ public class OcrIdentifyServiceImpl extends ServiceImpl> configRuleTypeMap = ocrRuleCheckVo.getConfigRuleTypeMap(); //=================== //4.更新主任务状态 @@ -564,8 +563,25 @@ public class OcrIdentifyServiceImpl extends ServiceImpl list=new ArrayList<>(); + OcrResultDTO result = new OcrResultDTO(); + result.setTextRate(10d); + list.add(result); + OcrResultDTO result2 = new OcrResultDTO(); + result2.setTextRate(44d); + list.add(result2); + OcrResultDTO result3 = new OcrResultDTO(); + result3.setTextRate(12d); + list.add(result3); + + //获取最小 + Double min = list.stream().sorted((a, b) -> a.getTextRate().compareTo(b.getTextRate())).findFirst().get().getTextRate(); + //获取最大 + Double max = list.stream().sorted((a, b) -> b.getTextRate().compareTo(a.getTextRate())).findFirst().get().getTextRate(); + //获取最大 + //ocrResultList.stream().sorted((a,b)->a.getTextRate()-b.getTextRate()).findAny().get(); + //int stringPercent = getStringPercent("张三", "张三脏"); + //System.out.println(stringPercent); } private static int getStringPercent(String text, String inputText) { @@ -685,7 +701,7 @@ public class OcrIdentifyServiceImpl extends ServiceImpl ocrResultList, String fieldName, String field, String inputText, String ocrText, Double ocrPrecisionRate, String imgPath, String failureReason, Boolean ruleValidation, Double d,String ruleValidationValue) { - OcrResult ocrResult = new OcrResult(); - ocrResult.setTag(field); - ocrResult.setTagName(fieldName); - ocrResult.setOcrText(ocrText); - ocrResult.setInputText(inputText); - ocrResult.setOcrPrecisionRate(ocrPrecisionRate == null ? 0d : ocrPrecisionRate); + public static void ocrResultAdd(List ocrResultDTOList, String fieldName, String field, String inputText, String ocrText, Double ocrPrecisionRate, String imgPath, String failureReason, Boolean ruleValidation, Double d, String ruleValidationValue) { + OcrResultDTO ocrResultDTO = new OcrResultDTO(); + ocrResultDTO.setTag(field); + ocrResultDTO.setTagName(fieldName); + ocrResultDTO.setOcrText(ocrText); + ocrResultDTO.setInputText(inputText); + ocrResultDTO.setOcrPrecisionRate(ocrPrecisionRate == null ? 0d : ocrPrecisionRate); if (d == null) { - ocrResult.setTextRate(0d); + ocrResultDTO.setTextRate(0d); } else { - ocrResult.setTextRate(new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); + ocrResultDTO.setTextRate(new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); } System.out.println("-----------------"); System.out.println(failureReason); @@ -717,32 +733,33 @@ public class OcrIdentifyServiceImpl extends ServiceImpl(); + ocrResultDTO.setFailureReason(failureReason); + if (ocrResultDTOList == null) { + ocrResultDTOList = new ArrayList<>(); } - ocrResult.setRuleValidation(ruleValidation); + ocrResultDTO.setRuleValidation(ruleValidation); if ("0".equals(ruleValidationValue)) { - ocrResult.setRuleValidationText("有名称就算过"); + ocrResultDTO.setRuleValidationText("有名称就算过"); }else if(Double.valueOf(ruleValidationValue)>0 &&Double.valueOf(ruleValidationValue)<=99){ - ocrResult.setRuleValidationText("匹配度>="+ruleValidationValue); + ocrResultDTO.setRuleValidationText("匹配度>="+ruleValidationValue); }else if("100".equals(ruleValidation)){ - ocrResult.setRuleValidationText("名称必须与参数完全一致"); + ocrResultDTO.setRuleValidationText("名称必须与参数完全一致"); }else if("101".equals(ruleValidationValue)){ - ocrResult.setRuleValidationText("有值必须匹配无值算过"); + ocrResultDTO.setRuleValidationText("有值必须匹配无值算过"); }else if("isrule=1".equals(ruleValidationValue)){ - ocrResult.setRuleValidationText("依据输入参数必须一致判断"); + ocrResultDTO.setRuleValidationText("依据输入参数必须一致判断"); } - ocrResultList.add(ocrResult); + ocrResultDTOList.add(ocrResultDTO); } /** * 将数据 疯转成 OcrResult,追加到 ocrResultList * - * @param ocrResultList + * @param ocrResultDTOList * @param field * @param inputText * @param ocrText @@ -750,11 +767,11 @@ public class OcrIdentifyServiceImpl extends ServiceImpl ocrResultList, String fieldName, String field, String inputText, String ocrText, Double ocrPrecisionRate, String imgPath, String failureReason, Boolean ruleValidation,String ruleValidationValue) { + public static void ocrResultAdd(List ocrResultDTOList, String fieldName, String field, String inputText, String ocrText, Double ocrPrecisionRate, String imgPath, String failureReason, Boolean ruleValidation, String ruleValidationValue) { if (ruleValidation) { - ocrResultAdd(ocrResultList, fieldName, field, inputText, ocrText, ocrPrecisionRate, imgPath, failureReason, ruleValidation, 100d,ruleValidationValue); + ocrResultAdd(ocrResultDTOList, fieldName, field, inputText, ocrText, ocrPrecisionRate, imgPath, failureReason, ruleValidation, 100d,ruleValidationValue); } else { - ocrResultAdd(ocrResultList, fieldName, field, inputText, ocrText, ocrPrecisionRate, imgPath, failureReason, ruleValidation, 0d,ruleValidationValue); + ocrResultAdd(ocrResultDTOList, fieldName, field, inputText, ocrText, ocrPrecisionRate, imgPath, failureReason, ruleValidation, 0d,ruleValidationValue); } } @@ -912,10 +929,13 @@ public class OcrIdentifyServiceImpl extends ServiceImpl identifyDetailList = ocrIdentifyDetailService.listByIds(simulateChecksVO.getIdentifyDetailIdList()); //遍历任务,做匹配 int i1=1; + //用于数据结构化的对象 + List ocrResultDTOList = new ArrayList<>(); + Date startDataCheckTime = new Date(); for (OcrIdentifyDetail ocrIdentifyDetail : identifyDetailList) { if (i1==1) { ocrIdentifyDetail.setSemanticResult("{\"ocr_res\":[[[[1282.0,1576.0],[2764.0,1594.0],[2763.0,1671.0],[1281.0,1653.0]],[\"北京市朝阳区三里屯社区卫生服务中心\",0.9670220613479614]],[[[132.0,2244.0],[1062.0,2214.0],[1069.0,2455.0],[140.0,2485.0]],[\"儿科专家门诊\",0.984556257724762]],[[[117.0,2496.0],[1036.0,2473.0],[1038.0,2577.0],[119.0,2600.0]],[\"Pediatric srecialistclinic\",0.8756008148193359]]],\"其他\":[{\"area\":[[117.0,2496.0],[1036.0,2473.0],[1038.0,2577.0],[119.0,2600.0]],\"end\":26,\"ocrText\":\"Pediatric srecialistclinic\",\"probability\":0.9925054592526585,\"start\":0,\"text\":\"Pediatric srecialistclinic\"}],\"医院名称\":[{\"area\":[[1282.0,1576.0],[2764.0,1594.0],[2763.0,1671.0],[1281.0,1653.0]],\"end\":17,\"ocrText\":\"北京市朝阳区三里屯社区卫生服务中心\",\"probability\":0.9681764264135495,\"start\":0,\"text\":\"北京市朝阳区三里屯社区卫生服务中心\"},{\"area\":[[1282.0,1576.0],[2764.0,1594.0],[2763.0,1671.0],[1281.0,1653.0]],\"end\":17,\"ocrText\":\"北京市朝阳区农光里医院\",\"probability\":0.95,\"start\":0,\"text\":\"北京市朝阳区农光里医院\"}],\"姓名\":[],\"时间\":[],\"科室\":[{\"area\":[[132.0,2244.0],[1062.0,2214.0],[1069.0,2455.0],[140.0,2485.0]],\"end\":6,\"ocrText\":\"儿科专家门诊\",\"probability\":0.9836859327676066,\"start\":0,\"text\":\"儿科专家门诊\"}]}"); @@ -942,12 +962,10 @@ public class OcrIdentifyServiceImpl extends ServiceImpl checkSemanticModelMap = getCheckSemanticModelMap(ocrRuleCheckVo.getConfigRuleMap(), ocrRuleCheckVo.getFieldMap(), sourceJson); String text = null;//ocr 识别的文本 Double probability = 0d; - //用于数据结构化的对象 - List ocrResultList = new ArrayList<>(); StringBuffer rMessage = new StringBuffer(); Map fieldRightMap = new LinkedHashMap<>();//存放 字段判断正确map //========================== @@ -982,16 +1000,16 @@ public class OcrIdentifyServiceImpl extends ServiceImpl"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); } } } else { @@ -999,37 +1017,37 @@ public class OcrIdentifyServiceImpl extends ServiceImpl"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); } else if (StringUtils.isBlank(inputText)) { //没有输入值. fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "没有输入值不做匹配", true,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "没有输入值不做匹配", true,ruleInfo); } else if ("0".equals(ruleInfo)) { //不必校验,有识别到就行,通过 fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true,ruleInfo); } else if (Double.valueOf(ruleInfo) >= 1 && Double.valueOf(ruleInfo) <= 99) { //在1~99之间,根据精准度匹配 double v = StrCharUtil.similarityRatio(inputText, text); if (v >= Double.valueOf(ruleInfo)) { //准确度 可靠 fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); } else { rMessage.append(value.getFieldName() + "参数不匹配
"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); } } else if ("100".equals(ruleInfo)) { //必定验证参数,必须有值且匹配 double v = StrCharUtil.similarityRatio(inputText, text); if (text.equals(inputText)) { fieldRightMap.put(field, true); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, "", true, v,ruleInfo); } else { rMessage.append(value.getFieldName() + "参数不匹配
"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, text, probability, imgPath, value.getFieldName() + "参数不匹配", false, v,ruleInfo); } } } @@ -1037,25 +1055,35 @@ public class OcrIdentifyServiceImpl extends ServiceImpl"); mapPutIfTrue(fieldRightMap, field, false); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, null, probability, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); } } else { rMessage.append(value.getFieldName() + "参数未获取到结果
"); - ocrResultAdd(ocrResultList, value.getFieldName(), field, inputText, null, 0d, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); + ocrResultAdd(ocrResultDTOList, value.getFieldName(), field, inputText, null, 0d, imgPath, value.getFieldName() + "参数未获取到结果", false,ruleInfo); fieldRightMap.put(field, false); } } System.out.println("----------------------"); - for (OcrResult result : ocrResultList) { + for (OcrResultDTO result : ocrResultDTOList) { System.out.println(result.toString()); } - //获取最小 - ocrResultList.stream().sorted((a,b)->a.getTextRate().compareTo(b.getTextRate())).findFirst().get(); - - //获取最大 - //ocrResultList.stream().sorted((a,b)->a.getTextRate()-b.getTextRate()).findAny().get(); - //.sorted(OcrResult::getTextRate).findFirst(); } + Date overDataCheckTime = new Date(); + + JSONObject responseBody=new JSONObject(); + //获取最小 + Double min = ocrResultDTOList.stream().sorted((a, b) -> a.getTextRate().compareTo(b.getTextRate())).findFirst().get().getTextRate(); + //获取最大 + Double max = ocrResultDTOList.stream().sorted((a, b) -> b.getTextRate().compareTo(a.getTextRate())).findFirst().get().getTextRate(); + //OCR和NlU执行时间总和(秒) + double ocrAndNluTimeSum = identifyDetailList.stream().mapToDouble(i -> (i.getOcrTime() == null ? 0 : i.getOcrTime()) + (i.getNluTime() == null ? 0 : i.getNluTime())).sum(); + //执行时间(毫秒) + double executionTime = (ocrAndNluTimeSum * 1000) + overDataCheckTime.getTime() - startDataCheckTime.getTime(); + responseBody.put("min",min); + responseBody.put("max",max); + responseBody.put("executionTime",executionTime); + responseBody.put("detailList", ocrResultDTOList); + return responseBody; } @Transactional(rollbackFor = Exception.class) @@ -1215,4 +1243,5 @@ public class OcrIdentifyServiceImpl extends ServiceImpl saveModelList) { - for (OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel : saveModelList) { + public void saveModelBatch(List saveModelList) { + for (SaveOcrMetadataConfigVO saveOcrMetadataConfigVO : saveModelList) { OcrMetadataConfig ocrMetadataConfig=new OcrMetadataConfig(); - ocrMetadataConfig.setConfigName(ocrMetadataConfigSaveModel.getConfigName()); - Boolean existsFlag=existsByConfigName(ocrMetadataConfigSaveModel.getConfigName(),ocrMetadataConfigSaveModel.getId()); - AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", ocrMetadataConfigSaveModel.getConfigName())); + ocrMetadataConfig.setConfigName(saveOcrMetadataConfigVO.getConfigName()); + Boolean existsFlag=existsByConfigName(saveOcrMetadataConfigVO.getConfigName(), saveOcrMetadataConfigVO.getId()); + AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", saveOcrMetadataConfigVO.getConfigName())); //判断 元数据 所选的 任务类型 是否存在 - if (StringUtils.isBlank(ocrMetadataConfigSaveModel.getTaskType())&& StringUtils.isNotBlank(ocrMetadataConfigSaveModel.getTaskTypeName())) { - OcrTaskType ocrTaskType = ocrTaskTypeService.saveTaskType(ocrMetadataConfigSaveModel.getTaskTypeName()); + if (StringUtils.isBlank(saveOcrMetadataConfigVO.getTaskType())&& StringUtils.isNotBlank(saveOcrMetadataConfigVO.getTaskTypeName())) { + OcrTaskType ocrTaskType = ocrTaskTypeService.saveTaskType(saveOcrMetadataConfigVO.getTaskTypeName()); ocrMetadataConfig.setTaskType(ocrTaskType.getId()); }else{ - ocrMetadataConfig.setTaskType(ocrMetadataConfigSaveModel.getTaskType()); + ocrMetadataConfig.setTaskType(saveOcrMetadataConfigVO.getTaskType()); } this.save(ocrMetadataConfig); - List ocrMetadataConfigDetailList = ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList(); + List ocrMetadataConfigDetailList = saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList(); if(ocrMetadataConfigDetailList!=null&&ocrMetadataConfigDetailList.size()>0){ //判断重复字段名 Map countMap = ocrMetadataConfigDetailList.stream().map(o->o.getFieldName()).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); @@ -86,7 +85,7 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl countMap.get(key) > 1).distinct().collect(Collectors.joining(",")); AssertUtils.isEmpty(fieldsName,String.format("字段名[%s]-重复了",fieldsName)); } - for (OcrMetadataConfigDetail detail : ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList()) { + for (OcrMetadataConfigDetail detail : saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList()) { detail.setMetadataConfigId(ocrMetadataConfig.getId()); ocrMetadataConfigDetailService.saveOrUpdate(detail); } @@ -95,20 +94,20 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl listToMap(List idList) { - List metadataConfigVoList =baseMapper.allList(idList!=null&&idList.size()>0?idList:null); - Map metadataConfigVoMap = metadataConfigVoList.stream().collect(Collectors.toMap(OcrMetadataConfigVo::getId, o -> o)); + public Map listToMap(List idList) { + List metadataConfigVoList =baseMapper.allList(idList!=null&&idList.size()>0?idList:null); + Map metadataConfigVoMap = metadataConfigVoList.stream().collect(Collectors.toMap(OcrMetadataConfigDTO::getId, o -> o)); return metadataConfigVoMap; } @Override - public OcrMetadataConfig updateModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { - AssertUtils.notEmpty(ocrMetadataConfigSaveModel.getId(),"[id]不可为空"); - OcrMetadataConfig ocrMetadataConfig = this.getById(ocrMetadataConfigSaveModel.getId()); - ocrMetadataConfig.setConfigName(ocrMetadataConfigSaveModel.getConfigName()); + public OcrMetadataConfig updateModel(SaveOcrMetadataConfigVO saveOcrMetadataConfigVO) { + AssertUtils.notEmpty(saveOcrMetadataConfigVO.getId(),"[id]不可为空"); + OcrMetadataConfig ocrMetadataConfig = this.getById(saveOcrMetadataConfigVO.getId()); + ocrMetadataConfig.setConfigName(saveOcrMetadataConfigVO.getConfigName()); this.updateById(ocrMetadataConfig); - List ocrMetadataConfigDetailList = ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList(); + List ocrMetadataConfigDetailList = saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList(); if(ocrMetadataConfigDetailList!=null&&ocrMetadataConfigDetailList.size()>0){ //判断重复字段名 @@ -118,7 +117,7 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl countMap.get(key) > 1).distinct().collect(Collectors.joining(",")); AssertUtils.isEmpty(fieldsName,String.format("字段名[%s]-重复了",fieldsName)); } - for (OcrMetadataConfigDetail detail : ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList()) { + for (OcrMetadataConfigDetail detail : saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList()) { detail.setMetadataConfigId(ocrMetadataConfig.getId()); ocrMetadataConfigDetailService.saveOrUpdate(detail); } @@ -126,11 +125,11 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl notRemoveIdList = new ArrayList<>(); - if (ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList().size()>0) { - notRemoveIdList = ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList().stream().map(o -> o.getId()).collect(Collectors.toList()); + if (saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList().size()>0) { + notRemoveIdList = saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList().stream().map(o -> o.getId()).collect(Collectors.toList()); } LambdaQueryWrapper removeQueryWrapper = new LambdaQueryWrapper(); - removeQueryWrapper.eq(OcrMetadataConfigDetail::getMetadataConfigId, ocrMetadataConfigSaveModel.getId()); + removeQueryWrapper.eq(OcrMetadataConfigDetail::getMetadataConfigId, saveOcrMetadataConfigVO.getId()); removeQueryWrapper.notIn(notRemoveIdList!=null&¬RemoveIdList.size()>0, OcrMetadataConfigDetail::getId,notRemoveIdList); //TODO zwt先检测这些删除的,有没有被规则检查配置 绑定(删除元数据配置明细时,需不需要先检查该元数据配置明细有没有被规则检查配置绑定,如果被绑定是否需要提示 不可删除) ocrMetadataConfigDetailService.remove(removeQueryWrapper); @@ -138,14 +137,14 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl pageVo(Page page, OcrMetadataConfig ocrMetadataConfig) { + public IPage pageVo(Page page, OcrMetadataConfig ocrMetadataConfig) { Map params=new LinkedHashMap<>(); params.put("getField",ocrMetadataConfig.getGetField()); params.put("configName",ocrMetadataConfig.getConfigName()); params.put("resultName",ocrMetadataConfig.getResultName()); /*params.put("column","createTime"); params.put("order","desc");*/ - IPage pageList=baseMapper.pageVo(page,params); + IPage pageList=baseMapper.pageVo(page,params); List metadataConfigDetails = ocrMetadataConfigDetailService.list(); List arrayTestList=new ArrayList<>(); @@ -157,7 +156,7 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl o.getId().equals(record.getTaskType())).map(o -> o.getTypeName()).collect(Collectors.joining("")); record.setTaskType_dictText(taskTypeName); @@ -176,8 +175,8 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl allList(List idList) { - List allList=new ArrayList<>(); + public List allList(List idList) { + List allList=new ArrayList<>(); if (idList!=null && idList.size()>0) { allList=baseMapper.allList(idList); }else{ @@ -193,7 +192,7 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl metadataConfigDetails = ocrMetadataConfigDetailService.list(); List arrayTestList=new ArrayList<>(); String fieldName=null,getField=null; - for (OcrMetadataConfigVo ocrMetadataConfig : allList) { + for (OcrMetadataConfigDTO ocrMetadataConfig : allList) { ocrMetadataConfig.setId(ocrMetadataConfig.getId()); ocrMetadataConfig.setConfigName(ocrMetadataConfig.getConfigName()); if (StringUtils.isNotBlank(ocrMetadataConfig.getTaskType())) { @@ -214,8 +213,8 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl list = ocrMetadataConfigDetailService.list(new LambdaQueryWrapper().eq(OcrMetadataConfigDetail::getMetadataConfigId, id)); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrRuleCheckServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrRuleCheckServiceImpl.java index b4e9da3..48fc6cd 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrRuleCheckServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrRuleCheckServiceImpl.java @@ -6,18 +6,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang.StringUtils; import org.jeecg.common.constant.OcrConstant; import org.jeecg.common.util.AssertUtils; -import org.jeecg.modules.ocr.entity.OcrMetadataConfig; import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; import org.jeecg.modules.ocr.entity.OcrRuleCheck; -import org.jeecg.modules.ocr.entity.OcrRuleCheckDetail; import org.jeecg.modules.ocr.mapper.OcrMetadataConfigDetailMapper; import org.jeecg.modules.ocr.mapper.OcrMetadataConfigMapper; import org.jeecg.modules.ocr.mapper.OcrRuleCheckMapper; -import org.jeecg.modules.ocr.model.OcrMetadataConfigSaveModel; -import org.jeecg.modules.ocr.model.OcrRuleCheckSaveModel; +import org.jeecg.modules.ocr.vo.SaveOcrRuleCheckVO; import org.jeecg.modules.ocr.service.IOcrRuleCheckDetailService; import org.jeecg.modules.ocr.service.IOcrRuleCheckService; -import org.jeecg.modules.ocr.vo.OcrRuleCheckVo; +import org.jeecg.modules.ocr.dto.OcrRuleCheckDTO; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -48,39 +45,39 @@ public class OcrRuleCheckServiceImpl extends ServiceImpl ocrRuleCheckSaveModels) { - for (OcrRuleCheckSaveModel ocrRuleCheckSaveModel : ocrRuleCheckSaveModels) { + public void saveModelBatch(List saveOcrRuleCheckVOS) { + for (SaveOcrRuleCheckVO saveOcrRuleCheckVO : saveOcrRuleCheckVOS) { OcrRuleCheck ocrRuleCheck=new OcrRuleCheck(); - ocrRuleCheck.setConfigRule(ocrRuleCheckSaveModel.getConfigRule()); - ocrRuleCheck.setMetadataConfigId(ocrRuleCheckSaveModel.getMetadataConfigId()); - ocrRuleCheck.setConfigName(ocrRuleCheckSaveModel.getConfigName()); + ocrRuleCheck.setConfigRule(saveOcrRuleCheckVO.getConfigRule()); + ocrRuleCheck.setMetadataConfigId(saveOcrRuleCheckVO.getMetadataConfigId()); + ocrRuleCheck.setConfigName(saveOcrRuleCheckVO.getConfigName()); this.save(ocrRuleCheck); } } @Override - public List allList(List selectionList) { + public List allList(List selectionList) { return baseMapper.allList(selectionList!=null && selectionList.size()>0?selectionList:null); } @Override - public Map listToMap(List selectionList) { - List ocrRuleCheckVoList = allList(selectionList); - Map collect = ocrRuleCheckVoList.stream().collect(Collectors.toMap(OcrRuleCheckVo::getId, o -> o)); + public Map listToMap(List selectionList) { + List ocrRuleCheckVoList = allList(selectionList); + Map collect = ocrRuleCheckVoList.stream().collect(Collectors.toMap(OcrRuleCheckDTO::getId, o -> o)); return collect; } @Override - public OcrRuleCheck updateModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel) { - OcrRuleCheck ocrRuleCheck=this.getById(ocrRuleCheckSaveModel.getId()); - ocrRuleCheck.setConfigRule(ocrRuleCheckSaveModel.getConfigRule()); - ocrRuleCheck.setMetadataConfigId(ocrRuleCheckSaveModel.getMetadataConfigId()); - ocrRuleCheck.setConfigName(ocrRuleCheckSaveModel.getConfigName()); + public OcrRuleCheck updateModel(SaveOcrRuleCheckVO saveOcrRuleCheckVO) { + OcrRuleCheck ocrRuleCheck=this.getById(saveOcrRuleCheckVO.getId()); + ocrRuleCheck.setConfigRule(saveOcrRuleCheckVO.getConfigRule()); + ocrRuleCheck.setMetadataConfigId(saveOcrRuleCheckVO.getMetadataConfigId()); + ocrRuleCheck.setConfigName(saveOcrRuleCheckVO.getConfigName()); this.updateById(ocrRuleCheck); //明细 @@ -116,7 +113,7 @@ public class OcrRuleCheckServiceImpl extends ServiceImpl pageVo(Page page, OcrRuleCheck ocrRuleCheck) { + public IPage pageVo(Page page, OcrRuleCheck ocrRuleCheck) { Map params=new LinkedHashMap<>(); params.put("configName",ocrRuleCheck.getConfigName()); params.put("configRule",ocrRuleCheck.getConfigRule()); @@ -124,8 +121,8 @@ public class OcrRuleCheckServiceImpl extends ServiceImpl