master
周文涛 2 years ago
parent 91ecb9ea18
commit b0c292c3ba

@ -160,7 +160,7 @@ public class OcrIdentifyController extends JeecgController<OcrIdentify, IOcrIden
}
/**
* excel
* excel
*
* @param request
* @param response

@ -81,16 +81,6 @@ public class OcrMetadataConfigController extends JeecgController<OcrMetadataConf
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
/*if (StringUtils.isNotBlank(ocrMetadataConfig.getConfigName())){
ocrMetadataConfig.setConfigName("*"+ocrMetadataConfig.getConfigName()+"*");
}
if (StringUtils.isNotBlank(ocrMetadataConfig.getResultName())){
ocrMetadataConfig.setResultName("*"+ocrMetadataConfig.getResultName()+"*");
}
if (StringUtils.isNotBlank(ocrMetadataConfig.getGetField())){
ocrMetadataConfig.setGetField("*"+ocrMetadataConfig.getGetField()+"*");
}*/
//QueryWrapper<OcrMetadataConfig> queryWrapper = QueryGenerator.initQueryWrapper(ocrMetadataConfig, req.getParameterMap());
Page<OcrMetadataConfig> page = new Page<OcrMetadataConfig>(pageNo, pageSize);
IPage<OcrMetadataConfigVo> pageList = ocrMetadataConfigService.pageVo(page, ocrMetadataConfig);
return Result.OK(pageList);
@ -235,7 +225,6 @@ public class OcrMetadataConfigController extends JeecgController<OcrMetadataConf
mv.addObject(NormalExcelConstants.DATA_LIST, exportList);
}
return mv;
}
/**
@ -271,19 +260,26 @@ public class OcrMetadataConfigController extends JeecgController<OcrMetadataConf
//判断重复字段名
Map<String, Long> 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<OcrMetadataConfigSaveModel> saveModelList=new ArrayList<>();
OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel=null;
List<OcrMetadataConfigDetail> ocrMetadataConfigDetailList=null;
OcrMetadataConfigDetail ocrMetadataConfigDetail=null;
//元数据循环copy add的对象
OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel;
//元数据循环遍历用的对象
List<OcrMetadataConfigDetail> ocrMetadataConfigDetailList;
OcrMetadataConfigDetail ocrMetadataConfigDetail;
String resultName;//字段
String getField;//字段描述
List<String> resultList;
List<String> getFieldList;
for (OcrMetadataConfigVo configVo : list) {
ocrMetadataConfigSaveModel=new OcrMetadataConfigSaveModel();
ocrMetadataConfigSaveModel.setConfigName(configVo.getConfigName());
String resultName = configVo.getResultName();
String getField = configVo.getGetField();
resultName = configVo.getResultName();
getField = configVo.getGetField();
ocrMetadataConfigSaveModel.setTaskTypeName(configVo.getTaskType_dictText());
List<String> resultList=new ArrayList<>();
List<String> getFieldList=new ArrayList<>();
resultList=new ArrayList<>();
getFieldList=new ArrayList<>();
if (StringUtils.isNotBlank(resultName)) {
resultList=Arrays.asList(resultName.split(","));
}
@ -301,16 +297,11 @@ public class OcrMetadataConfigController extends JeecgController<OcrMetadataConf
ocrMetadataConfigSaveModel.setOcrMetadataConfigDetailList(ocrMetadataConfigDetailList);
saveModelList.add(ocrMetadataConfigSaveModel);
}
//update-begin-author:taoyan date:20190528 for:批量插入数据
long start = System.currentTimeMillis();
ocrMetadataConfigService.saveModelBatch(saveModelList);
//400条 saveBatch消耗时间1592毫秒 循环插入消耗时间1947毫秒
//1200条 saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
//update-end-author:taoyan date:20190528 for:批量插入数据
return Result.ok("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
String msg = e.getMessage();
log.error(msg, e);
if(msg!=null && msg.indexOf("Duplicate entry")>=0){
@ -318,7 +309,6 @@ public class OcrMetadataConfigController extends JeecgController<OcrMetadataConf
}else{
return Result.error("文件导入失败:" + e.getMessage());
}
//update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
} finally {
try {
file.getInputStream().close();

@ -11,15 +11,20 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import org.apache.commons.lang.StringUtils;
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;
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.OcrMetadataConfig;
import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail;
import org.jeecg.modules.ocr.entity.OcrRuleCheck;
import org.jeecg.modules.ocr.entity.OcrTaskType;
@ -32,7 +37,10 @@ import org.jeecg.modules.ocr.utils.DownloadTemplateUtil;
import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo;
import org.jeecg.modules.ocr.vo.OcrRuleCheckVo;
import org.jeecgframework.poi.excel.ExcelImportUtil;
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;
@ -43,232 +51,258 @@ import io.swagger.annotations.ApiOperation;
import org.jeecg.common.aspect.annotation.AutoLog;
import org.apache.shiro.authz.annotation.RequiresPermissions;
/**
/**
* @Description:
* @Author: jeecg-boot
* @Date: 2023-07-14
* @Date: 2023-07-14
* @Version: V1.0
*/
@Api(tags="规则检查配置")
@Api(tags = "规则检查配置")
@RestController
@RequestMapping("/ocrRuleCheck")
@Slf4j
public class OcrRuleCheckController extends JeecgController<OcrRuleCheck, IOcrRuleCheckService> {
@Autowired
private IOcrRuleCheckService ocrRuleCheckService;
@Autowired
private DownloadTemplateUtil downloadTemplateUtil;
@Autowired
private IOcrMetadataConfigService ocrMetadataConfigService;
/**
*
*
* @param ocrRuleCheck
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "规则检查配置-分页列表查询")
@ApiOperation(value="规则检查配置-分页列表查询", notes="规则检查配置-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<OcrRuleCheckVo>> 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()+"*");
}
@Autowired
private IOcrRuleCheckService ocrRuleCheckService;
@Autowired
private DownloadTemplateUtil downloadTemplateUtil;
@Autowired
private IOcrMetadataConfigService ocrMetadataConfigService;
@Resource
private JeecgBaseConfig jeecgBaseConfig;
/**
*
*
* @param ocrRuleCheck
* @param pageNo
* @param pageSize
* @param req
* @return
*/
//@AutoLog(value = "规则检查配置-分页列表查询")
@ApiOperation(value = "规则检查配置-分页列表查询", notes = "规则检查配置-分页列表查询")
@GetMapping(value = "/list")
public Result<IPage<OcrRuleCheckVo>> 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<OcrRuleCheck> page = new Page<OcrRuleCheck>(pageNo, pageSize);
IPage<OcrRuleCheckVo> pageList = ocrRuleCheckService.pageVo(page, ocrRuleCheck);
return Result.OK(pageList);
}
/**
*
* @param ocrRuleCheckSaveModel
* @return
*/
@AutoLog(value = "规则检查配置-添加")
@ApiOperation(value="规则检查配置-添加", notes="规则检查配置-添加")
if (StringUtils.isNotBlank(ocrRuleCheck.getConfigRule())) {
ocrRuleCheck.setConfigRule("*" + ocrRuleCheck.getConfigRule() + "*");
}
Page<OcrRuleCheck> page = new Page<OcrRuleCheck>(pageNo, pageSize);
IPage<OcrRuleCheckVo> pageList = ocrRuleCheckService.pageVo(page, ocrRuleCheck);
return Result.OK(pageList);
}
/**
*
*
* @param ocrRuleCheckSaveModel
* @return
*/
@AutoLog(value = "规则检查配置-添加")
@ApiOperation(value = "规则检查配置-添加", notes = "规则检查配置-添加")
// @RequiresPermissions("org.jeecg.modules.ocr:ocr_rule_check:add")
@PostMapping(value = "/add")
public Result<String> add(@RequestBody OcrRuleCheckSaveModel ocrRuleCheckSaveModel) {
checkSaveModel(ocrRuleCheckSaveModel);
String configName = ocrRuleCheckSaveModel.getConfigName();
boolean existsFlag=ocrRuleCheckService.existsByConfigName(configName,null);//true 已存在,false不存在
AssertUtils.notTrue(existsFlag,String.format("[配置名称]-%s 已存在",configName));
ocrRuleCheckService.saveModel(ocrRuleCheckSaveModel);
return Result.OK("添加成功!");
}
@PostMapping(value = "/add")
public Result<String> add(@RequestBody OcrRuleCheckSaveModel ocrRuleCheckSaveModel) {
checkSaveModel(ocrRuleCheckSaveModel);
String configName = ocrRuleCheckSaveModel.getConfigName();
boolean existsFlag = ocrRuleCheckService.existsByConfigName(configName, null);//true 已存在,false不存在
AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", configName));
ocrRuleCheckService.saveModel(ocrRuleCheckSaveModel);
return Result.OK("添加成功!");
}
/**
*
* @param ocrRuleCheckSaveModel
*/
public void checkSaveModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel){
AssertUtils.notEmpty(ocrRuleCheckSaveModel.getConfigName(),"[配置名称]不可为空");
}
/**
*
*
* @param ocrRuleCheckSaveModel
*/
public void checkSaveModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel) {
AssertUtils.notEmpty(ocrRuleCheckSaveModel.getConfigName(), "[配置名称]不可为空");
}
/**
*
*
* @param ocrRuleCheckSaveModel
* @return
*/
@AutoLog(value = "规则检查配置-编辑")
@ApiOperation(value="规则检查配置-编辑", notes="规则检查配置-编辑")
/**
*
*
* @param ocrRuleCheckSaveModel
* @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<String> edit(@RequestBody OcrRuleCheckSaveModel ocrRuleCheckSaveModel) {
checkSaveModel(ocrRuleCheckSaveModel);
String configName = ocrRuleCheckSaveModel.getConfigName();
AssertUtils.notEmpty(ocrRuleCheckSaveModel.getId(),"[id]不可为空");
boolean existsFlag=ocrRuleCheckService.existsByConfigName(configName,ocrRuleCheckSaveModel.getId());//true 已存在,false不存在
AssertUtils.notTrue(existsFlag,String.format("[配置名称]-%s 已存在",configName));
ocrRuleCheckService.updateModel(ocrRuleCheckSaveModel);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "规则检查配置-通过id删除")
@ApiOperation(value="规则检查配置-通过id删除", notes="规则检查配置-通过id删除")
@RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST})
public Result<String> edit(@RequestBody OcrRuleCheckSaveModel ocrRuleCheckSaveModel) {
checkSaveModel(ocrRuleCheckSaveModel);
String configName = ocrRuleCheckSaveModel.getConfigName();
AssertUtils.notEmpty(ocrRuleCheckSaveModel.getId(), "[id]不可为空");
boolean existsFlag = ocrRuleCheckService.existsByConfigName(configName, ocrRuleCheckSaveModel.getId());//true 已存在,false不存在
AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", configName));
ocrRuleCheckService.updateModel(ocrRuleCheckSaveModel);
return Result.OK("编辑成功!");
}
/**
* id
*
* @param id
* @return
*/
@AutoLog(value = "规则检查配置-通过id删除")
@ApiOperation(value = "规则检查配置-通过id删除", notes = "规则检查配置-通过id删除")
// @RequiresPermissions("org.jeecg.modules.ocr:ocr_rule_check:delete")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name="id",required=true) String id) {
ocrRuleCheckService.removeById(id);
return Result.OK("删除成功!");
}
/**
*
*
* @param ids
* @return
*/
@AutoLog(value = "规则检查配置-批量删除")
@ApiOperation(value="规则检查配置-批量删除", notes="规则检查配置-批量删除")
@DeleteMapping(value = "/delete")
public Result<String> delete(@RequestParam(name = "id", required = true) String id) {
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<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
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<OcrRuleCheck> queryById(@RequestParam(name="id",required=true) String id) {
OcrRuleCheck ocrRuleCheck = ocrRuleCheckService.getById(id);
if(ocrRuleCheck==null) {
return Result.error("未找到对应数据");
}
return Result.OK(ocrRuleCheck);
}
@DeleteMapping(value = "/deleteBatch")
public Result<String> deleteBatch(@RequestParam(name = "ids", required = true) String ids) {
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<OcrRuleCheck> queryById(@RequestParam(name = "id", required = true) String id) {
OcrRuleCheck ocrRuleCheck = ocrRuleCheckService.getById(id);
if (ocrRuleCheck == null) {
return Result.error("未找到对应数据");
}
return Result.OK(ocrRuleCheck);
}
/**
* excel
*
* @param request
* @param ocrRuleCheck
*/
* excel
*
* @param request
* @param ocrRuleCheck
*/
// @RequiresPermissions("org.jeecg.modules.ocr:ocr_rule_check:exportXls")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, OcrRuleCheck ocrRuleCheck) {
return super.exportXls(request, ocrRuleCheck, OcrRuleCheck.class, "规则检查配置");
// 过滤选中数据
String selections = request.getParameter("selections");
String title = "规则检查配置";
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
List<OcrRuleCheckVo> exportList = new ArrayList<>();
if (oConvertUtils.isNotEmpty(selections)) {
List<String> 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, OcrRuleCheckVo.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;
}
/**
*
*/
@RequestMapping(value = "/downloadTemplate")
public ModelAndView downloadTemplate() {
return downloadTemplateUtil.downloadTemplate(OcrRuleCheck.class,"规则检查配置");
}
/**
*
*/
@RequestMapping(value = "/downloadTemplate")
public ModelAndView downloadTemplate() {
return downloadTemplateUtil.downloadTemplate(OcrRuleCheck.class, "规则检查配置");
}
/**
* excel
*
* @param request
* @param response
* @return
*/
* excel
*
* @param request
* @param response
* @return
*/
// @RequiresPermissions("org.jeecg.modules.ocr:ocr_rule_check:importExcel")
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<OcrRuleCheckSaveModel> list = ExcelImportUtil.importExcel(file.getInputStream(), OcrRuleCheckSaveModel.class, params);
AssertUtils.hasSize(list,"未获取到数据!");
//判断重复字段名
Map<String, Long> 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<OcrRuleCheckSaveModel> saveModelList=new ArrayList<>();
OcrRuleCheckSaveModel ocrRuleCheckSaveModel=new OcrRuleCheckSaveModel();
for (OcrRuleCheckSaveModel configVo : list) {
ocrRuleCheckSaveModel.setConfigName(configVo.getConfigName());
boolean existsFlag=ocrRuleCheckService.existsByConfigName(configVo.getConfigName(),null);//true 已存在,false不存在
AssertUtils.notTrue(existsFlag,String.format("[配置名称]-%s 已存在",configVo.getConfigName()));
String configRule = configVo.getConfigRule();
String metadataConfigId = configVo.getMetadataConfigId();
OcrMetadataConfigVo ocrMetadataConfigVo = ocrMetadataConfigService.findById(metadataConfigId);
AssertUtils.notNull(ocrMetadataConfigVo,String.format("[元数据配置]-%s 不存在",metadataConfigId));
ocrRuleCheckSaveModel.setConfigRule(configRule);
ocrRuleCheckSaveModel.setMetadataConfigId(metadataConfigId);
saveModelList.add(ocrRuleCheckSaveModel);
}
//update-begin-author:taoyan date:20190528 for:批量插入数据
long start = System.currentTimeMillis();
ocrRuleCheckService.saveModelBatch(saveModelList);
//400条 saveBatch消耗时间1592毫秒 循环插入消耗时间1947毫秒
//1200条 saveBatch消耗时间3687毫秒 循环插入消耗时间5212毫秒
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
//update-end-author:taoyan date:20190528 for:批量插入数据
return Result.ok("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
//update-begin-author:taoyan date:20211124 for: 导入数据重复增加提示
String msg = e.getMessage();
log.error(msg, e);
if(msg!=null && msg.indexOf("Duplicate entry")>=0){
return Result.error("文件导入失败:有重复数据!");
}else{
return Result.error("文件导入失败:" + e.getMessage());
}
//update-end-author:taoyan date:20211124 for: 导入数据重复增加提示
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
// 获取上传文件对象
MultipartFile file = entity.getValue();
ImportParams params = new ImportParams();
params.setTitleRows(2);
params.setHeadRows(1);
params.setNeedSave(true);
try {
List<OcrRuleCheckSaveModel> list = ExcelImportUtil.importExcel(file.getInputStream(), OcrRuleCheckSaveModel.class, params);
AssertUtils.hasSize(list, "未获取到数据!");
//判断重复字段名
Map<String, Long> 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<String, String> metadataConfigNameMap = ocrMetadataConfigService.list(new LambdaQueryWrapper<>()).stream().collect(Collectors.toMap(OcrMetadataConfig::getConfigName, OcrMetadataConfig::getId));
List<OcrRuleCheckSaveModel> saveModelList = new ArrayList<>();
OcrRuleCheckSaveModel ocrRuleCheckSaveModel;
boolean existsFlag = false;
String configRule;//规则配置
String metadataConfigName;//元数据配置名称
String metadataConfigId;//元数据配置id
for (OcrRuleCheckSaveModel configVo : list) {
ocrRuleCheckSaveModel = new OcrRuleCheckSaveModel();
metadataConfigName = configVo.getMetadataConfigName();
configRule = configVo.getConfigRule();
metadataConfigId = metadataConfigNameMap.get(metadataConfigName);
existsFlag = ocrRuleCheckService.existsByConfigName(configVo.getConfigName(), null);//true 已存在,false不存在
AssertUtils.notTrue(existsFlag, String.format("[配置名称]-%s 已存在", configVo.getConfigName()));
AssertUtils.notEmpty(metadataConfigId, String.format("[元数据配置]-%s 不存在", metadataConfigName));
ocrRuleCheckSaveModel.setConfigName(configVo.getConfigName());
ocrRuleCheckSaveModel.setConfigRule(configRule);
ocrRuleCheckSaveModel.setMetadataConfigId(metadataConfigId);
saveModelList.add(ocrRuleCheckSaveModel);
}
long start = System.currentTimeMillis();
ocrRuleCheckService.saveModelBatch(saveModelList);
log.info("消耗时间" + (System.currentTimeMillis() - start) + "毫秒");
return Result.ok("文件导入成功!数据行数:" + list.size());
} catch (Exception e) {
String msg = e.getMessage();
log.error(msg, e);
if (msg != null && msg.indexOf("Duplicate entry") >= 0) {
return Result.error("文件导入失败:有重复数据!");
}else {
return Result.error("文件导入失败:" + e.getMessage());
}
} finally {
try {
file.getInputStream().close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return Result.error("文件导入失败!");
}
}

@ -67,6 +67,6 @@ public class OcrRuleCheck implements Serializable {
private String resultName;*/
@ApiModelProperty(value = "元数据配置id")
@Excel(name = "元数据配置id", width = 15)
/*@Excel(name = "元数据配置id", width = 15)*/
private String metadataConfigId;
}

@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.ocr.entity.OcrRuleCheck;
import org.jeecg.modules.ocr.vo.OcrRuleCheckVo;
import java.util.List;
import java.util.Map;
/**
@ -20,4 +21,6 @@ public interface OcrRuleCheckMapper extends BaseMapper<OcrRuleCheck> {
IPage<OcrRuleCheckVo> pageVo(@Param("page")Page<OcrRuleCheck> page,@Param("p") Map<String, Object> params);
OcrRuleCheckVo findById(String id);
List<OcrRuleCheckVo> allList(@Param("selectionList")List<String> selectionList);
}

@ -21,4 +21,19 @@
SELECT * FROM ocr_rule_check ocr
WHERE ocr.id = #{id}
</select>
<select id="allList" resultType="org.jeecg.modules.ocr.vo.OcrRuleCheckVo">
SELECT
ocr.*,omc.config_name as metadataConfigName
FROM ocr_rule_check ocr
LEFT JOIN ocr_metadata_config omc ON omc.id = ocr.metadata_config_id
WHERE 1=1
<if test="selectionList!=null">
AND ocr.id in
<foreach item="id" collection="selectionList" open="(" separator="," close=")">
#{id}
</foreach>
</if>
order by ocr.update_time desc
</select>
</mapper>

@ -36,8 +36,10 @@ public class OcrRuleCheckSaveModel implements Serializable {
private String configRule;
/**选择的元数据明细id*/
@ApiModelProperty(value = "选择的元数据id")
@Excel(name = "元数据配置id", width = 15)
public String metadataConfigId;
@ApiModelProperty(value = "元数据配置名称")
@Excel(name = "元数据配置名称", width = 15,fixedIndex = 9)
private String metadataConfigName;
/**选择的元数据明细id*/
//@ApiModelProperty(value = "选择的元数据明细id")
//public List<String> metadataConfigDetailIdList=new ArrayList<>();

@ -16,18 +16,58 @@ import java.util.List;
* @Version: V1.0
*/
public interface IOcrRuleCheckService extends IService<OcrRuleCheck> {
/**
*
* @param configName
* @param id
* @return
*/
boolean existsByConfigName(String configName, String id);
/**
*
* @param ocrRuleCheckSaveModel
*/
void saveModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel);
/**
*
* @param ocrRuleCheckSaveModel
* @return
*/
OcrRuleCheck updateModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel);
/**
*
* @param id
*/
void removeById(String id);
/**
*
* @param page
* @param ocrRuleCheck
* @return
*/
IPage<OcrRuleCheckVo> pageVo(Page<OcrRuleCheck> page, OcrRuleCheck ocrRuleCheck);
/**
* id
* @param ruleCheck
* @return
*/
OcrRuleCheckVo findById(String ruleCheck);
/**
*
* @param saveModelList
*/
void saveModelBatch(List<OcrRuleCheckSaveModel> saveModelList);
/**
* id
* @param selectionList
* @return
*/
List<OcrRuleCheckVo> allList(List<String> selectionList);
}

@ -62,6 +62,11 @@ public class OcrRuleCheckServiceImpl extends ServiceImpl<OcrRuleCheckMapper, Ocr
}
}
@Override
public List<OcrRuleCheckVo> allList(List<String> selectionList) {
return baseMapper.allList(selectionList);
}
@Override
public OcrRuleCheck updateModel(OcrRuleCheckSaveModel ocrRuleCheckSaveModel) {
OcrRuleCheck ocrRuleCheck=this.getById(ocrRuleCheckSaveModel.getId());

@ -29,6 +29,7 @@ public class OcrRuleCheckVo extends OcrRuleCheck {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "元数据配置名称")
@Excel(name = "元数据配置名称", width = 15,fixedIndex = 9)
private String metadataConfigName;
private Map<String,String> configRuleMap=new LinkedHashMap<>();

Loading…
Cancel
Save