|
|
|
@ -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("文件导入失败!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|