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 c6a7216..26a3df5 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 @@ -1,5 +1,7 @@ package org.jeecg.common.constant; +import java.util.Arrays; +import java.util.List; import java.util.Random; /** @@ -27,8 +29,6 @@ public class OcrConstant { /** * Api 通用识别接口 */ - public static String api_test_identify_url="http://47.103.213.109:8071/aitest/semantic"; - 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"; @@ -41,6 +41,12 @@ public class OcrConstant { */ public static String FILE_REVIEW_URL_PREFIX="http://47.103.213.109:8072/files"; + + //目前仅支持的字段 + public static List SUPPORTED_FIELDS= Arrays.asList("hospitalName","doctor_name","departmentName","time"); + //目前仅支持的字段中文名 + public static List SUPPORTED_FIELD_NAMES= Arrays.asList("医院名称","医生名称","科室","时间"); + public static void main(String[] args) { for (int i = 0; i < 100; i++) { System.out.println(new Random().nextInt(10)); 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 b27f5e9..7da0a42 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 @@ -11,10 +11,10 @@ import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.ocr.entity.OcrApiCallStatistics; import org.jeecg.modules.ocr.service.IOcrApiCallStatisticsService; import org.jeecg.modules.ocr.vo.CommonQueryVO; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; @@ -30,35 +30,25 @@ import java.util.Arrays; @RequestMapping("/ocrApiCallStatistics") @Slf4j public class OcrApiCallStatisticsController extends JeecgController { - @Autowired + @Resource private IOcrApiCallStatisticsService ocrApiCallStatisticsService; /** * 分页列表查询 - * - * @param commonQueryVO - * @param pageNo - * @param pageSize - * @param req - * @return */ //@AutoLog(value = "api调用统计-分页列表查询") @ApiOperation(value="api调用统计-分页列表查询", notes="api调用统计-分页列表查询") @GetMapping(value = "/list") 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); + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); IPage pageList = ocrApiCallStatisticsService.pageList(page, commonQueryVO); return Result.OK(pageList); } /** * 添加 - * - * @param ocrApiCallStatistics - * @return */ @AutoLog(value = "api调用统计-添加") @ApiOperation(value="api调用统计-添加", notes="api调用统计-添加") @@ -71,9 +61,6 @@ public class OcrApiCallStatisticsController extends JeecgController delete(@RequestParam(name="id",required=true) String id) { + public Result delete(@RequestParam(name="id") String id) { ocrApiCallStatisticsService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 - * - * @param ids - * @return */ @AutoLog(value = "api调用统计-批量删除") @ApiOperation(value="api调用统计-批量删除", notes="api调用统计-批量删除") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_api_call_statistics:deleteBatch") @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + public Result deleteBatch(@RequestParam(name="ids") String ids) { this.ocrApiCallStatisticsService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 - * - * @param id - * @return */ //@AutoLog(value = "api调用统计-通过id查询") @ApiOperation(value="api调用统计-通过id查询", notes="api调用统计-通过id查询") @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { + public Result queryById(@RequestParam(name="id") String id) { OcrApiCallStatistics ocrApiCallStatistics = ocrApiCallStatisticsService.getById(id); if(ocrApiCallStatistics==null) { return Result.error("未找到对应数据"); @@ -133,9 +111,6 @@ public class OcrApiCallStatisticsController extends JeecgController { - @Autowired + @Resource private IOcrIdentifyCallbackLogService ocrIdentifyCallbackLogService; /** * 分页列表查询 - * - * @param ocrIdentifyCallbackLog - * @param pageNo - * @param pageSize - * @param req - * @return */ //@AutoLog(value = "ocr识别无量云回调记录-分页列表查询") @ApiOperation(value="ocr识别无量云回调记录-分页列表查询", notes="ocr识别无量云回调记录-分页列表查询") @@ -52,16 +46,13 @@ public class OcrIdentifyCallbackLogController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ocrIdentifyCallbackLog, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); + Page page = new Page<>(pageNo, pageSize); IPage pageList = ocrIdentifyCallbackLogService.page(page, queryWrapper); return Result.OK(pageList); } /** * 添加 - * - * @param ocrIdentifyCallbackLog - * @return */ @AutoLog(value = "ocr识别无量云回调记录-添加") @ApiOperation(value="ocr识别无量云回调记录-添加", notes="ocr识别无量云回调记录-添加") @@ -74,9 +65,6 @@ public class OcrIdentifyCallbackLogController extends JeecgController delete(@RequestParam(name="id",required=true) String id) { + public Result delete(@RequestParam(name="id") String id) { ocrIdentifyCallbackLogService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 - * - * @param ids - * @return */ @AutoLog(value = "ocr识别无量云回调记录-批量删除") @ApiOperation(value="ocr识别无量云回调记录-批量删除", notes="ocr识别无量云回调记录-批量删除") @RequiresPermissions("ocr:ocr_identify_callback_log:deleteBatch") @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + public Result deleteBatch(@RequestParam(name="ids") String ids) { this.ocrIdentifyCallbackLogService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 - * - * @param id - * @return */ //@AutoLog(value = "ocr识别无量云回调记录-通过id查询") @ApiOperation(value="ocr识别无量云回调记录-通过id查询", notes="ocr识别无量云回调记录-通过id查询") @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { + public Result queryById(@RequestParam(name="id") String id) { OcrIdentifyCallbackLog ocrIdentifyCallbackLog = ocrIdentifyCallbackLogService.getById(id); if(ocrIdentifyCallbackLog==null) { return Result.error("未找到对应数据"); @@ -136,9 +115,6 @@ public class OcrIdentifyCallbackLogController extends JeecgController { - @Autowired + @Resource private IOcrIdentifyService ocrIdentifyService; - @Autowired + @Resource private IOcrIdentifyDetailService ocrIdentifyDetailService; - @Autowired + @Resource private DownloadTemplateUtil downloadTemplateUtil; - @Autowired + @Resource private IOcrTaskTypeService ocrTaskTypeService; - @Autowired + @Resource private IOcrMetadataConfigService ocrMetadataConfigService; - @Autowired + @Resource private IOcrRuleCheckService ocrRuleCheckService; - @Autowired + @Resource private ISysDictService sysDictService; - @Autowired + @Resource private TaskService taskService; @Value("${spring.profiles.active}") private String profiles; /** * 分页列表查询 - * - * @param ocrIdentify - * @param pageNo - * @param pageSize - * @param req - * @return */ //@AutoLog(value = "ocr识别-分页列表查询") @ApiOperation(value = "ocr识别-分页列表查询", notes = "ocr识别-分页列表查询") @@ -109,7 +103,7 @@ public class OcrIdentifyController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ocrIdentify, req.getParameterMap()); queryWrapper.ne("task_source", "模拟实验");//排除模拟实验的数据 if (startTime != null && endTime != null) { - endTime.setTime(endTime.getTime() + 86400000l); + endTime.setTime(endTime.getTime() + 86400000L); queryWrapper.between("end_time", startTime, endTime); } Page page = new Page<>(pageNo, pageSize); @@ -118,7 +112,7 @@ public class OcrIdentifyController extends JeecgController taskNameMap = ocrTaskTypeService.listNameToMap(null); IPage pageList = ocrIdentifyService.page(page, queryWrapper); if (pageList != null && pageList.getRecords() != null && pageList.getRecords().size() > 0) { - List identifyIdList = pageList.getRecords().stream().map(p -> p.getId()).collect(Collectors.toList()); + List identifyIdList = pageList.getRecords().stream().map(OcrIdentify::getId).collect(Collectors.toList()); List identifyDetailList = ocrIdentifyDetailService.list(new LambdaQueryWrapper().in(OcrIdentifyDetail::getIdentifyId, identifyIdList)); for (OcrIdentify record : pageList.getRecords()) { long count = identifyDetailList.stream().filter(i -> i.getIdentifyId().equals(record.getId())).count(); @@ -126,7 +120,7 @@ public class OcrIdentifyController extends JeecgController ocrResultDTOS = JSONObject.parseArray(record.getTaskResultInfo()).toJavaList(OcrResultDTO.class); int tagNum = ocrResultDTOS.size(); - int successNum = (int) ocrResultDTOS.stream().filter(o -> o.getRuleValidation()).count(); + int successNum = (int) ocrResultDTOS.stream().filter(OcrResultDTO::getRuleValidation).count(); record.setTagNum(tagNum); record.setTagSuccessNum(successNum); record.setSuccessRate(successNum + "/" + tagNum); @@ -149,9 +143,6 @@ public class OcrIdentifyController extends JeecgController edit(@RequestBody OcrIdentify ocrIdentify) { AssertUtils.notEmpty(ocrIdentify.getId(), "[id]不可为空"); - OcrIdentify identify = ocrIdentifyService.getById(ocrIdentify.getId()); - /*if (Arrays.asList("0","1","2").contains(identify.getStatus())) { - throw new JeecgBootException("当前状态不可编辑"); - }*/ ocrIdentifyService.updateById(ocrIdentify); return Result.OK("编辑成功!"); } /** * 通过id删除 - * - * @param id - * @return */ @AutoLog(value = "ocr识别-通过id删除") @ApiOperation(value = "ocr识别-通过id删除", notes = "ocr识别-通过id删除") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_identify:delete") @DeleteMapping(value = "/delete") - public Result delete(@RequestParam(name = "id", required = true) String id) { + public Result delete(@RequestParam(name = "id") String id) { OcrIdentify ocrIdentify = ocrIdentifyService.getById(id); AssertUtils.isTrue(OcrStatusEnum.OVER.getStatus().equals(ocrIdentify.getStatus()), "当前状态不可删除"); ocrIdentifyService.removeById(id); @@ -237,15 +215,12 @@ public class OcrIdentifyController extends JeecgController deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + public Result deleteBatch(@RequestParam(name = "ids") String ids) { List ocrIdentifies = ocrIdentifyService.listByIds(Arrays.asList(ids.split(","))); for (OcrIdentify ocrIdentify : ocrIdentifies) { AssertUtils.isTrue(OcrStatusEnum.OVER.getStatus().equals(ocrIdentify.getStatus()), "当前ocr识别状态不可删除"); @@ -256,14 +231,11 @@ public class OcrIdentifyController extends JeecgController queryById(@RequestParam(name = "id", required = true) String id) { + public Result queryById(@RequestParam(name = "id") String id) { OcrIdentify ocrIdentify = ocrIdentifyService.getById(id); if (ocrIdentify == null) { return Result.error("未找到对应数据"); @@ -276,7 +248,7 @@ public class OcrIdentifyController extends JeecgController ocrResultDTOList = JSONObject.parseArray(ocrIdentify.getTaskResultInfo()).toJavaList(OcrResultDTO.class); int tagNum = ocrResultDTOList.size(); - int successNum = (int) ocrResultDTOList.stream().filter(o -> o.getRuleValidation()).count(); + int successNum = (int) ocrResultDTOList.stream().filter(OcrResultDTO::getRuleValidation).count(); ocrIdentify.setTagNum(tagNum); ocrIdentify.setTagSuccessNum(successNum); ocrIdentify.setSuccessRate(successNum + "/" + tagNum); @@ -300,9 +272,6 @@ public class OcrIdentifyController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { + public Result importExcel(HttpServletRequest request) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { @@ -393,7 +362,7 @@ public class OcrIdentifyController extends JeecgController= 0) { + if (msg != null && msg.contains("Duplicate entry")) { return Result.error("文件导入失败:有重复数据!"); } else { return Result.error("文件导入失败:" + e.getMessage()); @@ -412,10 +381,6 @@ public class OcrIdentifyController extends JeecgController { - @Autowired + @Resource private IOcrIdentifyDetailService ocrIdentifyDetailService; //系统环境 @Value("${system.project.env}") @@ -44,12 +44,6 @@ public class OcrIdentifyDetailController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ocrIdentifyDetail, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); + Page page = new Page<>(pageNo, pageSize); IPage pageList = ocrIdentifyDetailService.page(page, queryWrapper); if (pageList!=null&& pageList.getRecords()!=null) { for (OcrIdentifyDetail record : pageList.getRecords()) { @@ -101,9 +95,6 @@ public class OcrIdentifyDetailController extends JeecgController delete(@RequestParam(name="id",required=true) String id) { + public Result delete(@RequestParam(name="id") String id) { ocrIdentifyDetailService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 - * - * @param ids - * @return */ @AutoLog(value = "ocr识别结果明细-批量删除") @ApiOperation(value="ocr识别结果明细-批量删除", notes="ocr识别结果明细-批量删除") @RequiresPermissions("ocr:ocr_identify_detail:deleteBatch") @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + public Result deleteBatch(@RequestParam(name="ids") String ids) { this.ocrIdentifyDetailService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 - * - * @param id - * @return */ //@AutoLog(value = "ocr识别结果明细-通过id查询") @ApiOperation(value="ocr识别结果明细-通过id查询", notes="ocr识别结果明细-通过id查询") @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name="id",required=true) String id) { + public Result queryById(@RequestParam(name="id") String id) { OcrIdentifyDetail ocrIdentifyDetail = ocrIdentifyDetailService.getById(id); if(ocrIdentifyDetail==null) { return Result.error("未找到对应数据"); @@ -178,9 +157,6 @@ public class OcrIdentifyDetailController extends JeecgController { - @Autowired + @Resource private IOcrMetadataConfigService ocrMetadataConfigService; - @Autowired + @Resource private IOcrRuleCheckService ocrRuleCheckService; - @Autowired + @Resource private DownloadTemplateUtil downloadTemplateUtil; @Resource private JeecgBaseConfig jeecgBaseConfig; /** * 分页列表查询 - * - * @param ocrMetadataConfig - * @param pageNo - * @param pageSize - * @param req - * @return */ //@AutoLog(value = "元数据配置-分页列表查询") @ApiOperation(value = "元数据配置-分页列表查询", notes = "元数据配置-分页列表查询") @GetMapping(value = "/list") 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); + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); IPage pageList = ocrMetadataConfigService.pageVo(page, ocrMetadataConfig); return Result.OK(pageList); } @ApiOperation(value = "元数据配置-下拉列表", notes = "元数据配置-下拉列表") @GetMapping(value = "/allList") - public Result> allList(HttpServletRequest req) { + public Result> allList() { List allList = ocrMetadataConfigService.allList(null); return Result.OK(allList); } /** * 添加 - * - * @param saveOcrMetadataConfigVO - * @return */ @AutoLog(value = "元数据配置-添加") @ApiOperation(value = "元数据配置-添加", notes = "元数据配置-添加") @@ -116,8 +104,6 @@ public class OcrMetadataConfigController extends JeecgController delete(@RequestParam(name = "id", required = true) String id) { + public Result delete(@RequestParam(name = "id") String id) { long count = ocrRuleCheckService.count(new LambdaQueryWrapper().eq(OcrRuleCheck::getMetadataConfigId, id)); - AssertUtils.notTrue(count>0, String.format("所选元数据配置不可删除,原因:[被规则检查配置使用中]")); + AssertUtils.notTrue(count>0, "所选元数据配置不可删除,原因:[被规则检查配置使用中]"); ocrMetadataConfigService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 - * - * @param ids - * @return */ @AutoLog(value = "元数据配置-批量删除") @ApiOperation(value = "元数据配置-批量删除", notes = "元数据配置-批量删除") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_metadata_config:deleteBatch") @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + public Result deleteBatch(@RequestParam(name = "ids") String ids) { long count = ocrRuleCheckService.count(new LambdaQueryWrapper().in(OcrRuleCheck::getMetadataConfigId, Arrays.asList(ids.split(",")))); - AssertUtils.notTrue(count>0, String.format("所选元数据配置不可删除,原因:[被规则检查配置使用中]")); + AssertUtils.notTrue(count>0, "所选元数据配置不可删除,原因:[被规则检查配置使用中]"); this.ocrMetadataConfigService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 - * - * @param id - * @return */ //@AutoLog(value = "元数据配置-通过id查询") @ApiOperation(value = "元数据配置-通过id查询", notes = "元数据配置-通过id查询") @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name = "id", required = true) String id) { + public Result queryById(@RequestParam(name = "id") String id) { OcrMetadataConfigDTO ocrMetadataConfig = ocrMetadataConfigService.findById(id); if (ocrMetadataConfig == null) { return Result.error("未找到对应数据"); @@ -202,13 +176,10 @@ public class OcrMetadataConfigController extends JeecgController selectionList = Arrays.asList(selections.split(",")); exportList = ocrMetadataConfigService.allList(selectionList); } - if(true){ - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - mv.addObject(NormalExcelConstants.FILE_NAME, title); - mv.addObject(NormalExcelConstants.CLASS, OcrMetadataConfigDTO.class); - ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); - exportParams.setImageBasePath(jeecgBaseConfig.getPath().getUpload()); - mv.addObject(NormalExcelConstants.PARAMS, exportParams); - mv.addObject(NormalExcelConstants.DATA_LIST, exportList); - } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, OcrMetadataConfigDTO.class); + ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(jeecgBaseConfig.getPath().getUpload()); + mv.addObject(NormalExcelConstants.PARAMS, exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); return mv; } @@ -242,14 +211,10 @@ public class OcrMetadataConfigController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { + public Result importExcel(HttpServletRequest request) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { @@ -263,8 +228,8 @@ public class OcrMetadataConfigController extends JeecgController 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,"不可有重复的配置名称!"); + Map countMap = list.stream().map(OcrMetadataConfig::getConfigName).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); + AssertUtils.notTrue(countMap.values().stream().anyMatch(f -> f > 1),"不可有重复的配置名称!"); //入库保存的元数据对象 List saveModelList=new ArrayList<>(); //元数据循环copy add的对象 @@ -309,7 +274,7 @@ public class OcrMetadataConfigController extends JeecgController=0){ + if(msg!=null && msg.contains("Duplicate entry")){ return Result.error("文件导入失败:有重复数据!"); }else{ return Result.error("文件导入失败:" + e.getMessage()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrRuleCheckController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrRuleCheckController.java index 46c9293..235d0ba 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrRuleCheckController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrRuleCheckController.java @@ -28,7 +28,6 @@ import org.jeecgframework.poi.excel.def.NormalExcelConstants; import org.jeecgframework.poi.excel.entity.ExportParams; import org.jeecgframework.poi.excel.entity.ImportParams; import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartHttpServletRequest; @@ -36,7 +35,6 @@ import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; @@ -56,51 +54,32 @@ import java.util.stream.Collectors; @RequestMapping("/ocrRuleCheck") @Slf4j public class OcrRuleCheckController extends JeecgController { - @Autowired + @Resource private IOcrRuleCheckService ocrRuleCheckService; - @Autowired + @Resource private DownloadTemplateUtil downloadTemplateUtil; - @Autowired + @Resource private IOcrMetadataConfigService ocrMetadataConfigService; @Resource private JeecgBaseConfig jeecgBaseConfig; - @Autowired + @Resource private IOcrIdentifyService ocrIdentifyService; /** * 分页列表查询 - * - * @param ocrRuleCheck - * @param pageNo - * @param pageSize - * @param req - * @return */ //@AutoLog(value = "规则检查配置-分页列表查询") @ApiOperation(value = "规则检查配置-分页列表查询", notes = "规则检查配置-分页列表查询") @GetMapping(value = "/list") 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() + "*"); - }*/ - /*if (StringUtils.isNotBlank(ocrRuleCheck.getResultName())){ - ocrRuleCheck.setResultName("*"+ocrRuleCheck.getResultName()+"*"); - }*/ - /*if (StringUtils.isNotBlank(ocrRuleCheck.getConfigRule())) { - ocrRuleCheck.setConfigRule("*" + ocrRuleCheck.getConfigRule() + "*"); - }*/ - Page page = new Page(pageNo, pageSize); + @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { + Page page = new Page<>(pageNo, pageSize); IPage pageList = ocrRuleCheckService.pageVo(page, ocrRuleCheck); return Result.OK(pageList); } /** * 添加 - * - * @param saveOcrRuleCheckVO - * @return */ @AutoLog(value = "规则检查配置-添加") @ApiOperation(value = "规则检查配置-添加", notes = "规则检查配置-添加") @@ -117,8 +96,6 @@ public class OcrRuleCheckController extends JeecgController delete(@RequestParam(name = "id", required = true) String id) { + public Result delete(@RequestParam(name = "id") String id) { long count = ocrIdentifyService.count(new LambdaQueryWrapper().eq(OcrIdentify::getRuleCheck, id)); - AssertUtils.notTrue(count>0, String.format("所选规则配置不可删除,原因:[被识别任务使用中]")); + AssertUtils.notTrue(count>0, "所选规则配置不可删除,原因:[被识别任务使用中]"); ocrRuleCheckService.removeById(id); return Result.OK("删除成功!"); } /** * 批量删除 - * - * @param ids - * @return */ @AutoLog(value = "规则检查配置-批量删除") @ApiOperation(value = "规则检查配置-批量删除", notes = "规则检查配置-批量删除") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_rule_check:deleteBatch") @DeleteMapping(value = "/deleteBatch") - public Result deleteBatch(@RequestParam(name = "ids", required = true) String ids) { + public Result deleteBatch(@RequestParam(name = "ids") String ids) { long count = ocrIdentifyService.count(new LambdaQueryWrapper().in(OcrIdentify::getRuleCheck, Arrays.asList(ids.split(",")))); - AssertUtils.notTrue(count>0, String.format("所选规则配置不可删除,原因:[被识别任务使用中]")); + AssertUtils.notTrue(count>0, "所选规则配置不可删除,原因:[被识别任务使用中]"); this.ocrRuleCheckService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } /** * 通过id查询 - * - * @param id - * @return */ //@AutoLog(value = "规则检查配置-通过id查询") @ApiOperation(value = "规则检查配置-通过id查询", notes = "规则检查配置-通过id查询") @GetMapping(value = "/queryById") - public Result queryById(@RequestParam(name = "id", required = true) String id) { + public Result queryById(@RequestParam(name = "id") String id) { OcrRuleCheck ocrRuleCheck = ocrRuleCheckService.getById(id); if (ocrRuleCheck == null) { return Result.error("未找到对应数据"); @@ -197,33 +162,26 @@ public class OcrRuleCheckController extends JeecgController exportList = new ArrayList<>(); if (oConvertUtils.isNotEmpty(selections)) { List selectionList = Arrays.asList(selections.split(",")); exportList = ocrRuleCheckService.allList(selectionList); } - if (true) { - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - mv.addObject(NormalExcelConstants.FILE_NAME, title); - mv.addObject(NormalExcelConstants.CLASS, OcrRuleCheckDTO.class); - ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); - exportParams.setImageBasePath(jeecgBaseConfig.getPath().getUpload()); - mv.addObject(NormalExcelConstants.PARAMS, exportParams); - mv.addObject(NormalExcelConstants.DATA_LIST, exportList); - } + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + mv.addObject(NormalExcelConstants.FILE_NAME, title); + mv.addObject(NormalExcelConstants.CLASS, OcrRuleCheckDTO.class); + ExportParams exportParams = new ExportParams(title + "报表", "导出人:" + sysUser.getRealname(), title); + exportParams.setImageBasePath(jeecgBaseConfig.getPath().getUpload()); + mv.addObject(NormalExcelConstants.PARAMS, exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, exportList); return mv; } @@ -237,14 +195,10 @@ public class OcrRuleCheckController extends JeecgController importExcel(HttpServletRequest request, HttpServletResponse response) { + public Result importExcel(HttpServletRequest request) { MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; Map fileMap = multipartRequest.getFileMap(); for (Map.Entry entity : fileMap.entrySet()) { @@ -258,12 +212,12 @@ public class OcrRuleCheckController extends JeecgController 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 countMap = list.stream().map(SaveOcrRuleCheckVO::getConfigName).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); + AssertUtils.notTrue(countMap.values().stream().anyMatch(f -> f > 1), "不可有重复的配置名称!"); Map metadataConfigNameMap = ocrMetadataConfigService.list(new LambdaQueryWrapper<>()).stream().collect(Collectors.toMap(OcrMetadataConfig::getConfigName, OcrMetadataConfig::getId)); List saveModelList = new ArrayList<>(); SaveOcrRuleCheckVO saveOcrRuleCheckVO; - boolean existsFlag = false; + boolean existsFlag; String configRule;//规则配置 String metadataConfigName;//元数据配置名称 String metadataConfigId;//元数据配置id @@ -288,7 +242,7 @@ public class OcrRuleCheckController extends JeecgController= 0) { + if (msg != null && msg.contains("Duplicate entry")) { return Result.error("文件导入失败:有重复数据!"); }else { return Result.error("文件导入失败:" + e.getMessage()); diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrSimulatorController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrSimulatorController.java index 170336c..895b0b9 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrSimulatorController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrSimulatorController.java @@ -22,6 +22,7 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -46,7 +47,6 @@ public class OcrSimulatorController{ @Value("${jeecg.path.upload}") private String uploadFilePath; - String ss = "{\"Inputs\":{\"RequestJson\":{\"Header\":{\"InterfaceCode\":\"QMS-MES-001\",\"RequestTime\":\"20230731163802\"},\"RequestInfo\":{\"Containers\":[\"M500000000002806\",\"M500000000002805\",\"M500000000002390\"],\"SerialNos\":[],\"Characteristics\":[{\"Characteristic\":\"N1SHP_PR019\",\"OprSequenceNo\":\"N1SHP01\"}],\"ProductionType\":\"C\"}}}}"; @ApiOperation(value = "场景识别") @PostMapping(value = "/identify") @@ -61,10 +61,9 @@ public class OcrSimulatorController{ OcrIdentify ocrIdentify=new OcrIdentify(); ocrIdentify.setTaskSource("模拟实验");//模拟实验-场景识别 ocrIdentifyService.save(ocrIdentify); - int i = 1; List ocrIdentifyDetailList=new ArrayList<>(); - Double nluTimeSum=0d; - Double ocrTimeSum=0d; + double nluTimeSum=0d; + double ocrTimeSum=0d; for (String image : imageList) { long time = new Date().getTime(); //执行识别 @@ -82,8 +81,8 @@ public class OcrSimulatorController{ //执行时间 调整小数点 Double nluTime = semanticResponseJson.getDouble("nlu_time"); Double ocrTime = semanticResponseJson.getDouble("ocr_time"); - nluTime = nluTime != null && nluTime != 0 ? new BigDecimal(nluTime).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() : 0; - ocrTime = ocrTime != null && ocrTime != 0 ? new BigDecimal(ocrTime).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue() : 0; + nluTime = nluTime != null && nluTime != 0 ? new BigDecimal(nluTime).setScale(2, RoundingMode.HALF_UP).doubleValue() : 0; + ocrTime = ocrTime != null && ocrTime != 0 ? new BigDecimal(ocrTime).setScale(2, RoundingMode.HALF_UP).doubleValue() : 0; //入库 ocrIdentifyDetail.setIdentifyId(ocrIdentify.getId()); ocrIdentifyDetail.setOcrTime(ocrTime); @@ -100,8 +99,8 @@ public class OcrSimulatorController{ ocrIdentifyDetailService.saveBatch(ocrIdentifyDetailList); //返回前端的json - responseBody.put("ocrTime",new BigDecimal(ocrTimeSum).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()); - responseBody.put("nluTime",new BigDecimal(nluTimeSum).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue()); + responseBody.put("ocrTime",new BigDecimal(ocrTimeSum).setScale(2, RoundingMode.HALF_UP).doubleValue()); + responseBody.put("nluTime",new BigDecimal(nluTimeSum).setScale(2, RoundingMode.HALF_UP).doubleValue()); responseBody.put("detailList",ocrIdentifyDetailList); return Result.OK(responseBody); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrTaskTypeController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrTaskTypeController.java index 376b366..ade94d6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrTaskTypeController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrTaskTypeController.java @@ -15,13 +15,14 @@ import org.jeecg.common.util.AssertUtils; import org.jeecg.modules.ocr.entity.OcrTaskType; import org.jeecg.modules.ocr.service.IOcrTaskTypeService; 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 javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.Arrays; +import java.util.Collections; import java.util.List; /** @@ -35,19 +36,13 @@ import java.util.List; @RequestMapping("/ocrTaskType") @Slf4j public class OcrTaskTypeController extends JeecgController { - @Autowired + @Resource private IOcrTaskTypeService ocrTaskTypeService; - @Autowired + @Resource private DownloadTemplateUtil downloadTemplateUtil; /** * 分页列表查询 - * - * @param ocrTaskType - * @param pageNo - * @param pageSize - * @param req - * @return */ //@AutoLog(value = "任务类型-分页列表查询") @ApiOperation(value="任务类型-分页列表查询", notes="任务类型-分页列表查询") @@ -63,55 +58,46 @@ public class OcrTaskTypeController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ocrTaskType, req.getParameterMap()); - Page page = new Page(pageNo, pageSize); + Page page = new Page<>(pageNo, pageSize); IPage pageList = ocrTaskTypeService.page(page, queryWrapper); return Result.OK(pageList); } /** * 添加 - * - * @param ocrTaskType - * @return */ @AutoLog(value = "任务类型-添加") @ApiOperation(value="任务类型-添加", notes="任务类型-添加") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_task_type:add") @PostMapping(value = "/add") public Result add(@RequestBody OcrTaskType ocrTaskType) { - ocrTaskTypeService.existsByTypeNameList(Arrays.asList(ocrTaskType)); + ocrTaskTypeService.existsByTypeNameList(Collections.singletonList(ocrTaskType)); ocrTaskTypeService.save(ocrTaskType); return Result.OK("添加成功!"); } /** * 编辑 - * - * @param ocrTaskType - * @return */ @AutoLog(value = "任务类型-编辑") @ApiOperation(value="任务类型-编辑", notes="任务类型-编辑") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_task_type:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) public Result edit(@RequestBody OcrTaskType ocrTaskType) { - ocrTaskTypeService.existsByTypeNameList(Arrays.asList(ocrTaskType)); + ocrTaskTypeService.existsByTypeNameList(Collections.singletonList(ocrTaskType)); ocrTaskTypeService.updateById(ocrTaskType); return Result.OK("编辑成功!"); } /** * 通过id删除 - * - * @param id - * @return */ @AutoLog(value = "任务类型-通过id删除") @ApiOperation(value="任务类型-通过id删除", notes="任务类型-通过id删除") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_task_type:delete") @DeleteMapping(value = "/delete") - public Result delete(@RequestParam(name="id",required=true) String id) { - boolean flag=ocrTaskTypeService.checkMetadataConfigUse(Arrays.asList(id)); + public Result delete(@RequestParam(name="id") String id) { + boolean flag=ocrTaskTypeService.checkMetadataConfigUse(Collections.singletonList(id)); AssertUtils.notTrue(flag,"任务类型不可删除,原因:[被元数据配置使用中]"); ocrTaskTypeService.removeById(id); return Result.OK("删除成功!"); @@ -119,15 +105,12 @@ public class OcrTaskTypeController extends JeecgController deleteBatch(@RequestParam(name="ids",required=true) String ids) { + public Result deleteBatch(@RequestParam(name="ids") String ids) { boolean flag=ocrTaskTypeService.checkMetadataConfigUse(Arrays.asList(ids.split(","))); AssertUtils.notTrue(flag,"任务类型不可删除,原因:[被元数据配置使用中]"); this.ocrTaskTypeService.removeByIds(Arrays.asList(ids.split(","))); @@ -136,14 +119,11 @@ public class OcrTaskTypeController extends JeecgController queryById(@RequestParam(name="id",required=true) String id) { + public Result queryById(@RequestParam(name="id") String id) { OcrTaskType ocrTaskType = ocrTaskTypeService.getById(id); if(ocrTaskType==null) { return Result.error("未找到对应数据"); @@ -153,9 +133,6 @@ public class OcrTaskTypeController extends JeecgController fieldRightMap;*/ } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrRuleCheck.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrRuleCheck.java index 2fc5674..ca08308 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrRuleCheck.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrRuleCheck.java @@ -60,10 +60,6 @@ public class OcrRuleCheck implements Serializable { @Excel(name = "配置规则", width = 15) @ApiModelProperty(value = "配置规则") private String configRule; - /**结果名称*/ - /*@Excel(name = "结果名称", width = 15) - @ApiModelProperty(value = "结果名称") - private String resultName;*/ @ApiModelProperty(value = "元数据配置id") /*@Excel(name = "元数据配置id", width = 15)*/ diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/init/HandleTransInit.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/init/HandleTransInit.java index 6dda1c8..4256d30 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/init/HandleTransInit.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/init/HandleTransInit.java @@ -45,26 +45,18 @@ public class HandleTransInit implements ApplicationRunner { @Value("${system.project.enableHandleTask}") private boolean enableHandleTask; - - public static void main(String[] args) { - - } - /** - * - * @param args - */ @Override @Async public void run(ApplicationArguments args) throws UnknownHostException { if (enableHandleTask) { try { - Thread.sleep(5000l); + Thread.sleep(5000L); } catch (InterruptedException e) { e.printStackTrace(); } while (true) { try { - Thread.sleep(10000l); + Thread.sleep(10000L); } catch (InterruptedException e) { e.printStackTrace(); } @@ -101,7 +93,7 @@ public class HandleTransInit implements ApplicationRunner { /** * 刷新任务状态 * - * @param taskId + * @param taskId 任务id * @param status 状态 1 运行中,2 已结束 */ public void flushTask(String taskId, int status) { diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigServiceImpl.java index 6e04ac9..32fba73 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigServiceImpl.java @@ -4,7 +4,9 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.apache.commons.collections.CollectionUtils; import org.apache.commons.lang.StringUtils; +import org.jeecg.common.constant.OcrConstant; import org.jeecg.common.util.AssertUtils; import org.jeecg.modules.ocr.dto.OcrMetadataConfigDTO; import org.jeecg.modules.ocr.entity.OcrMetadataConfig; @@ -15,8 +17,6 @@ import org.jeecg.modules.ocr.service.IOcrMetadataConfigDetailService; import org.jeecg.modules.ocr.service.IOcrMetadataConfigService; import org.jeecg.modules.ocr.service.IOcrTaskTypeService; import org.jeecg.modules.ocr.vo.SaveOcrMetadataConfigVO; -import org.jeecg.modules.system.service.ISysDictItemService; -import org.jeecg.modules.system.service.ISysDictService; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -37,25 +37,19 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(OcrMetadataConfig::getConfigName,configName); queryWrapper.ne(StringUtils.isNotBlank(id),OcrMetadataConfig::getId,id); - return this.baseMapper.selectCount(queryWrapper)>0?true:false; + return this.baseMapper.selectCount(queryWrapper) > 0; } @Override public void saveModel(SaveOcrMetadataConfigVO saveOcrMetadataConfigVO) { - saveModelBatch(Arrays.asList(saveOcrMetadataConfigVO)); - /*return ocrMetadataConfig;*/ + saveModelBatch(Collections.singletonList(saveOcrMetadataConfigVO)); } @Override @@ -64,9 +58,8 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl ocrMetadataConfigDetailList = saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList(); if(ocrMetadataConfigDetailList!=null&&ocrMetadataConfigDetailList.size()>0){ //判断重复字段名 - Map countMap = ocrMetadataConfigDetailList.stream().map(o->o.getFieldName()).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); + Map countMap = ocrMetadataConfigDetailList.stream().map(OcrMetadataConfigDetail::getFieldName).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); if (countMap.keySet().size()>0) { //有重复的字段名 String fieldsName = countMap.keySet().stream().filter(key -> countMap.get(key) > 1).distinct().collect(Collectors.joining(",")); AssertUtils.isEmpty(fieldsName,String.format("字段名[%s]-重复了",fieldsName)); } + //判断字段是否支持 for (OcrMetadataConfigDetail detail : saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList()) { + AssertUtils.isTrue(OcrConstant.SUPPORTED_FIELDS.contains(detail.getFieldName()),String.format("字段名[%s]-目前不支持",detail.getFieldName())); + AssertUtils.isTrue(OcrConstant.SUPPORTED_FIELD_NAMES.contains(detail.getGetField()),String.format("获取字段[%s]-目前不支持",detail.getGetField())); detail.setMetadataConfigId(ocrMetadataConfig.getId()); ocrMetadataConfigDetailService.saveOrUpdate(detail); } @@ -96,8 +91,7 @@ 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(OcrMetadataConfigDTO::getId, o -> o)); - return metadataConfigVoMap; + return metadataConfigVoList.stream().collect(Collectors.toMap(OcrMetadataConfigDTO::getId, o -> o)); } @@ -108,16 +102,17 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl ocrMetadataConfigDetailList = saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList(); - if(ocrMetadataConfigDetailList!=null&&ocrMetadataConfigDetailList.size()>0){ //判断重复字段名 - Map countMap = ocrMetadataConfigDetailList.stream().map(o->o.getFieldName()).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); + Map countMap = ocrMetadataConfigDetailList.stream().map(OcrMetadataConfigDetail::getFieldName).collect(Collectors.groupingBy(Function.identity(), Collectors.counting())); if (countMap.keySet().size()>0) { //有重复的字段名 String fieldsName = countMap.keySet().stream().filter(key -> countMap.get(key) > 1).distinct().collect(Collectors.joining(",")); AssertUtils.isEmpty(fieldsName,String.format("字段名[%s]-重复了",fieldsName)); } for (OcrMetadataConfigDetail detail : saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList()) { + AssertUtils.isTrue(OcrConstant.SUPPORTED_FIELDS.contains(detail.getFieldName()),String.format("字段名[%s]-目前不支持",detail.getFieldName())); + AssertUtils.isTrue(OcrConstant.SUPPORTED_FIELD_NAMES.contains(detail.getGetField()),String.format("获取字段[%s]-目前不支持",detail.getGetField())); detail.setMetadataConfigId(ocrMetadataConfig.getId()); ocrMetadataConfigDetailService.saveOrUpdate(detail); } @@ -126,11 +121,11 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl notRemoveIdList = new ArrayList<>(); if (saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList().size()>0) { - notRemoveIdList = saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList().stream().map(o -> o.getId()).collect(Collectors.toList()); + notRemoveIdList = saveOcrMetadataConfigVO.getOcrMetadataConfigDetailList().stream().map(OcrMetadataConfigDetail::getId).collect(Collectors.toList()); } - LambdaQueryWrapper removeQueryWrapper = new LambdaQueryWrapper(); + LambdaQueryWrapper removeQueryWrapper = new LambdaQueryWrapper<>(); removeQueryWrapper.eq(OcrMetadataConfigDetail::getMetadataConfigId, saveOcrMetadataConfigVO.getId()); - removeQueryWrapper.notIn(notRemoveIdList!=null&¬RemoveIdList.size()>0, OcrMetadataConfigDetail::getId,notRemoveIdList); + removeQueryWrapper.notIn(CollectionUtils.isNotEmpty(notRemoveIdList), OcrMetadataConfigDetail::getId,notRemoveIdList); //TODO zwt先检测这些删除的,有没有被规则检查配置 绑定(删除元数据配置明细时,需不需要先检查该元数据配置明细有没有被规则检查配置绑定,如果被绑定是否需要提示 不可删除) ocrMetadataConfigDetailService.remove(removeQueryWrapper); return ocrMetadataConfig; @@ -142,30 +137,24 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl pageList=baseMapper.pageVo(page,params); List metadataConfigDetails = ocrMetadataConfigDetailService.list(); - List arrayTestList=new ArrayList<>(); - - - List taskTypeIdList = pageList.getRecords().stream().map(a -> a.getTaskType()).collect(Collectors.toList()); + List arrayTestList; + List taskTypeIdList = pageList.getRecords().stream().map(OcrMetadataConfig::getTaskType).collect(Collectors.toList()); List ocrTaskTypeList=new ArrayList<>(); if (taskTypeIdList.size()>0) { ocrTaskTypeList = ocrTaskTypeService.listByIds(taskTypeIdList); } - - String fieldName=null,getField=null; + String fieldName,getField; for (OcrMetadataConfigDTO record : pageList.getRecords()) { if (StringUtils.isNotBlank(record.getTaskType())) { - String taskTypeName = ocrTaskTypeList.stream().filter(o -> o.getId().equals(record.getTaskType())).map(o -> o.getTypeName()).collect(Collectors.joining("")); + String taskTypeName = ocrTaskTypeList.stream().filter(o -> o.getId().equals(record.getTaskType())).map(OcrTaskType::getTypeName).collect(Collectors.joining("")); record.setTaskType_dictText(taskTypeName); } - if (metadataConfigDetails!=null && metadataConfigDetails.size()>0) { arrayTestList = metadataConfigDetails.stream().filter(m -> m.getMetadataConfigId().equals(record.getId())).collect(Collectors.toList()); - fieldName = arrayTestList.stream().map(o -> o.getFieldName()).collect(Collectors.joining(",")); - getField = arrayTestList.stream().map(o -> o.getGetField()).collect(Collectors.joining(",")); + fieldName = arrayTestList.stream().map(OcrMetadataConfigDetail::getFieldName).collect(Collectors.joining(",")); + getField = arrayTestList.stream().map(OcrMetadataConfigDetail::getGetField).collect(Collectors.joining(",")); record.setResultName(fieldName); record.setGetField(getField); record.setOcrMetadataConfigDetailList(arrayTestList); @@ -176,13 +165,13 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl allList(List idList) { - List allList=new ArrayList<>(); + List allList; if (idList!=null && idList.size()>0) { allList=baseMapper.allList(idList); }else{ allList=baseMapper.allList(null); } - List taskTypeIdList = allList.stream().map(a -> a.getTaskType()).collect(Collectors.toList()); + List taskTypeIdList = allList.stream().map(OcrMetadataConfig::getTaskType).collect(Collectors.toList()); List ocrTaskTypeList=new ArrayList<>(); if (taskTypeIdList.size()>0) { ocrTaskTypeList = ocrTaskTypeService.listByIds(taskTypeIdList); @@ -190,20 +179,20 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl metadataConfigDetails = ocrMetadataConfigDetailService.list(); - List arrayTestList=new ArrayList<>(); - String fieldName=null,getField=null; + List arrayTestList; + String fieldName,getField; for (OcrMetadataConfigDTO ocrMetadataConfig : allList) { ocrMetadataConfig.setId(ocrMetadataConfig.getId()); ocrMetadataConfig.setConfigName(ocrMetadataConfig.getConfigName()); if (StringUtils.isNotBlank(ocrMetadataConfig.getTaskType())) { - String taskTypeName = ocrTaskTypeList.stream().filter(o -> o.getId().equals(ocrMetadataConfig.getTaskType())).map(o -> o.getTypeName()).collect(Collectors.joining("")); + String taskTypeName = ocrTaskTypeList.stream().filter(o -> o.getId().equals(ocrMetadataConfig.getTaskType())).map(OcrTaskType::getTypeName).collect(Collectors.joining("")); ocrMetadataConfig.setTaskType_dictText(taskTypeName); } if (metadataConfigDetails!=null&&metadataConfigDetails.size()>0) { arrayTestList = metadataConfigDetails.stream().filter(m -> m.getMetadataConfigId().equals(ocrMetadataConfig.getId())).collect(Collectors.toList()); - fieldName = arrayTestList.stream().map(o -> o.getFieldName()).collect(Collectors.joining(",")); - getField = arrayTestList.stream().map(o -> o.getGetField()).collect(Collectors.joining(",")); + fieldName = arrayTestList.stream().map(OcrMetadataConfigDetail::getFieldName).collect(Collectors.joining(",")); + getField = arrayTestList.stream().map(OcrMetadataConfigDetail::getGetField).collect(Collectors.joining(",")); ocrMetadataConfig.setResultName(fieldName); ocrMetadataConfig.setGetField(getField); ocrMetadataConfig.setOcrMetadataConfigDetailList(arrayTestList); @@ -218,8 +207,8 @@ public class OcrMetadataConfigServiceImpl extends ServiceImpl list = ocrMetadataConfigDetailService.list(new LambdaQueryWrapper().eq(OcrMetadataConfigDetail::getMetadataConfigId, id)); - String fieldName = list.stream().map(o -> o.getFieldName()).collect(Collectors.joining(",")); - String getField = list.stream().map(o -> o.getGetField()).collect(Collectors.joining(",")); + String fieldName = list.stream().map(OcrMetadataConfigDetail::getFieldName).collect(Collectors.joining(",")); + String getField = list.stream().map(OcrMetadataConfigDetail::getGetField).collect(Collectors.joining(",")); copyEntityVo.setResultName(fieldName); copyEntityVo.setGetField(getField); copyEntityVo.setOcrMetadataConfigDetailList(list);