From 3f6d65729796f35c21abe032e9a5a1c0ad114db0 Mon Sep 17 00:00:00 2001 From: zhouwentao <1577701412@qq.com> Date: Mon, 17 Jul 2023 17:36:38 +0800 Subject: [PATCH] =?UTF-8?q?updates=20=E5=85=83=E6=95=B0=E6=8D=AE=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20=E5=8A=A0=E6=98=8E=E7=BB=86=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/jeecg/common/util/AssertUtils.java | 88 +++++++++++++++++++ .../OcrMetadataConfigController.java | 53 ++++++++--- .../modules/ocr/entity/OcrMetadataConfig.java | 5 ++ .../ocr/entity/OcrMetadataConfigDetail.java | 71 +++++++++++++++ .../modules/ocr/entity/OcrRuleCheck.java | 7 +- .../mapper/OcrMetadataConfigDetailMapper.java | 17 ++++ .../ocr/mapper/OcrMetadataConfigMapper.java | 7 ++ .../xml/OcrMetadataConfigDetailMapper.xml | 5 ++ .../mapper/xml/OcrMetadataConfigMapper.xml | 19 ++++ .../ocr/model/OcrMetadataConfigSaveModel.java | 25 ++++++ .../IOcrMetadataConfigDetailService.java | 14 +++ .../service/IOcrMetadataConfigService.java | 33 +++++++ .../OcrMetadataConfigDetailServiceImpl.java | 19 ++++ .../impl/OcrMetadataConfigServiceImpl.java | 76 ++++++++++++++++ .../modules/ocr/vo/OcrMetadataConfigVo.java | 19 ++++ 15 files changed, 442 insertions(+), 16 deletions(-) create mode 100644 jeecg-boot-base-core/src/main/java/org/jeecg/common/util/AssertUtils.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfigDetail.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigDetailMapper.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigDetailMapper.xml create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrMetadataConfigSaveModel.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigDetailService.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigDetailServiceImpl.java create mode 100644 jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrMetadataConfigVo.java diff --git a/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/AssertUtils.java b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/AssertUtils.java new file mode 100644 index 0000000..a6201b9 --- /dev/null +++ b/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/AssertUtils.java @@ -0,0 +1,88 @@ +package org.jeecg.common.util; + +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.exception.JeecgBootException; + +import java.util.List; + +/** + * @Description 变量校验工具 + * @Author ZhouWenTao + * @Date 2023/6/26 19:14 + */ +public abstract class AssertUtils { + /** + * 判断真假值 + * @param flag + * @param message + */ + public static void isTrue(boolean flag, String message) { + if (!flag) { + throw new JeecgBootException(message); + } + } + + /** + * true时拦截 + * @param flag + * @param message + */ + public static void notTrue(boolean flag, String message) { + if (flag) { + throw new JeecgBootException(message); + } + } + + public static void notNull(Object object, String message) { + if (object == null) { + throw new JeecgBootException(message); + } + } + + public static void isEmpty(String str, String message) { + if (StringUtils.isNotBlank(str)) { + throw new JeecgBootException(message); + } + } + + public static void notEmpty(String str, String message) { + if (StringUtils.isBlank(str)) { + throw new JeecgBootException(message); + } + } + + /** + * 校验Array 不可为空/不可空数据 + * @param list + * @param message + */ + public static void hasSize(List list,String message){ + if (list==null || list.size()==0) { + throw new JeecgBootException(message); + } + } + + /** + * 校验Array 不可为空/不可空数据 + * @param list + * @param message + */ + public static void hasSize(Object[] list,String message){ + if (list==null || list.length==0) { + throw new JeecgBootException(message); + } + } + + /** + * 判断字符串长度 + * @param o 判读对象 + * @param len 字符串长度,不可超过 + * @param message 异常提示 + */ + public static void checkLength(Object o,Integer len,String message){ + notNull(o,"<"+message+">判断之前参数不可空!"); + if (o.toString().length()>len) { + throw new JeecgBootException(message); + } + } +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java index 44a01af..dc94150 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/controller/OcrMetadataConfigController.java @@ -11,11 +11,16 @@ 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.modules.ocr.entity.OcrMetadataConfig; +import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; +import org.jeecg.modules.ocr.model.OcrMetadataConfigSaveModel; import org.jeecg.modules.ocr.service.IOcrMetadataConfigService; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.modules.ocr.utils.DownloadTemplateUtil; +import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; @@ -51,11 +56,11 @@ public class OcrMetadataConfigController extends JeecgController> queryPageList(OcrMetadataConfig ocrMetadataConfig, + public Result> queryPageList(OcrMetadataConfig ocrMetadataConfig, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { - if (StringUtils.isNotBlank(ocrMetadataConfig.getConfigName())){ + /*if (StringUtils.isNotBlank(ocrMetadataConfig.getConfigName())){ ocrMetadataConfig.setConfigName("*"+ocrMetadataConfig.getConfigName()+"*"); } if (StringUtils.isNotBlank(ocrMetadataConfig.getResultName())){ @@ -63,40 +68,64 @@ public class OcrMetadataConfigController extends JeecgController queryWrapper = QueryGenerator.initQueryWrapper(ocrMetadataConfig, req.getParameterMap()); + }*/ + //QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(ocrMetadataConfig, req.getParameterMap()); Page page = new Page(pageNo, pageSize); - IPage pageList = ocrMetadataConfigService.page(page, queryWrapper); + IPage pageList = ocrMetadataConfigService.pageVo(page, ocrMetadataConfig); return Result.OK(pageList); } /** * 添加 * - * @param ocrMetadataConfig + * @param ocrMetadataConfigSaveModel * @return */ @AutoLog(value = "元数据配置-添加") @ApiOperation(value="元数据配置-添加", notes="元数据配置-添加") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_metadata_config:add") @PostMapping(value = "/add") - public Result add(@RequestBody OcrMetadataConfig ocrMetadataConfig) { - ocrMetadataConfigService.save(ocrMetadataConfig); + @Transactional(rollbackFor = Exception.class) + public Result add(@RequestBody OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { + checkSaveModel(ocrMetadataConfigSaveModel); + String configName = ocrMetadataConfigSaveModel.getConfigName(); + boolean existsFlag=ocrMetadataConfigService.existsByConfigName(configName,null);//true 已存在,false不存在 + AssertUtils.notTrue(existsFlag,String.format("[配置名称]-%s 已存在",configName)); + ocrMetadataConfigService.saveModel(ocrMetadataConfigSaveModel); return Result.OK("添加成功!"); } - + + /** + * 校验保存时入参是否可通过 + * @param ocrMetadataConfigSaveModel + */ + public void checkSaveModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel){ + AssertUtils.notEmpty(ocrMetadataConfigSaveModel.getConfigName(),"[配置名称]不可为空"); + if (ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList()!=null) { + for (OcrMetadataConfigDetail detail : ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList()) { + AssertUtils.notEmpty(detail.getFieldName(),"[字段名称]不可为空"); + AssertUtils.notEmpty(detail.getGetField(),"[获取字段]不可为空"); + } + } + } + /** * 编辑 * - * @param ocrMetadataConfig + * @param ocrMetadataConfigSaveModel * @return */ @AutoLog(value = "元数据配置-编辑") @ApiOperation(value="元数据配置-编辑", notes="元数据配置-编辑") // @RequiresPermissions("org.jeecg.modules.ocr:ocr_metadata_config:edit") @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) - public Result edit(@RequestBody OcrMetadataConfig ocrMetadataConfig) { - ocrMetadataConfigService.updateById(ocrMetadataConfig); + public Result edit(@RequestBody OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { + checkSaveModel(ocrMetadataConfigSaveModel); + AssertUtils.notEmpty(ocrMetadataConfigSaveModel.getId(),""); + String configName = ocrMetadataConfigSaveModel.getConfigName(); + boolean existsFlag=ocrMetadataConfigService.existsByConfigName(configName,ocrMetadataConfigSaveModel.getId());//true 已存在,false不存在 + AssertUtils.notTrue(existsFlag,String.format("[配置名称]-%s 已存在",configName)); + ocrMetadataConfigService.updateModel(ocrMetadataConfigSaveModel); return Result.OK("编辑成功!"); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfig.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfig.java index bb00a32..80f0c4e 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfig.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfig.java @@ -2,7 +2,10 @@ package org.jeecg.modules.ocr.entity; import java.io.Serializable; import java.util.Date; +import java.util.List; + import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -58,9 +61,11 @@ public class OcrMetadataConfig implements Serializable { /**结果名称*/ @Excel(name = "结果名称", width = 15) @ApiModelProperty(value = "结果名称") + @TableField(exist = false) private String resultName; /**获取字段*/ @Excel(name = "获取字段", width = 15) @ApiModelProperty(value = "获取字段") + @TableField(exist = false) private String getField; } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfigDetail.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfigDetail.java new file mode 100644 index 0000000..9780f5b --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/entity/OcrMetadataConfigDetail.java @@ -0,0 +1,71 @@ +package org.jeecg.modules.ocr.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 元数据配置明细 + * @Author: jeecg-boot + * @Date: 2023-07-17 + * @Version: V1.0 + */ +@Data +@TableName("ocr_metadata_config_detail") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="ocr_metadata_config_detail对象", description="元数据配置明细") +public class OcrMetadataConfigDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private java.lang.String id; + + /**元数据配置id*/ + @ApiModelProperty(value = "元数据配置id") + private java.lang.String metadataConfigId; + + /**字段*/ + @Excel(name = "字段名称", width = 15) + @ApiModelProperty(value = "字段名称") + private java.lang.String fieldName; + /**获取字段*/ + @Excel(name = "获取字段", width = 15) + @ApiModelProperty(value = "获取字段") + private java.lang.String getField; + /**创建人*/ + @ApiModelProperty(value = "创建人") + private java.lang.String createBy; + /**创建日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "创建日期") + private java.util.Date createTime; + /**更新人*/ + @ApiModelProperty(value = "更新人") + private java.lang.String updateBy; + /**更新日期*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "更新日期") + private java.util.Date updateTime; + /**所属部门*/ + @ApiModelProperty(value = "所属部门") + private java.lang.String sysOrgCode; +} 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 caa4b98..1a2510f 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 @@ -4,10 +4,8 @@ import java.io.Serializable; import java.io.UnsupportedEncodingException; import java.util.Date; import java.math.BigDecimal; -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.baomidou.mybatisplus.annotation.TableLogic; + +import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import com.fasterxml.jackson.annotation.JsonFormat; import org.springframework.format.annotation.DateTimeFormat; @@ -62,6 +60,7 @@ public class OcrRuleCheck implements Serializable { /**配置规则*/ @Excel(name = "配置规则", width = 15) @ApiModelProperty(value = "配置规则") + @TableField(exist = false) private String configRule; /**结果名称*/ @Excel(name = "结果名称", width = 15) diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigDetailMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigDetailMapper.java new file mode 100644 index 0000000..eee6ec8 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigDetailMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.ocr.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 元数据配置明细 + * @Author: jeecg-boot + * @Date: 2023-07-17 + * @Version: V1.0 + */ +public interface OcrMetadataConfigDetailMapper extends BaseMapper { + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java index d15fd2b..cac3b13 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/OcrMetadataConfigMapper.java @@ -1,7 +1,13 @@ package org.jeecg.modules.ocr.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Param; import org.jeecg.modules.ocr.entity.OcrMetadataConfig; +import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; + +import java.util.Map; /** * @Description: 元数据配置 @@ -11,4 +17,5 @@ import org.jeecg.modules.ocr.entity.OcrMetadataConfig; */ public interface OcrMetadataConfigMapper extends BaseMapper { + IPage pageVo(@Param("page") Page page,@Param("o") Map params); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigDetailMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigDetailMapper.xml new file mode 100644 index 0000000..01fa7bd --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigDetailMapper.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml index c928268..1111b1f 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/mapper/xml/OcrMetadataConfigMapper.xml @@ -2,4 +2,23 @@ + \ No newline at end of file diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrMetadataConfigSaveModel.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrMetadataConfigSaveModel.java new file mode 100644 index 0000000..31639e3 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/model/OcrMetadataConfigSaveModel.java @@ -0,0 +1,25 @@ +package org.jeecg.modules.ocr.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description 保存元数据对象 + * @Author ZhouWenTao + * @Date 2023/7/17 14:06 + */ +@Data +public class OcrMetadataConfigSaveModel { + /**主键*/ + public String id; + /**配置名称*/ + @ApiModelProperty(value = "配置名称") + private String configName; + + /**元数据字段列表*/ + public List ocrMetadataConfigDetailList=new ArrayList<>(); +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigDetailService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigDetailService.java new file mode 100644 index 0000000..0164341 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigDetailService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.ocr.service; + +import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 元数据配置明细 + * @Author: jeecg-boot + * @Date: 2023-07-17 + * @Version: V1.0 + */ +public interface IOcrMetadataConfigDetailService extends IService { + +} diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java index d06400f..d97d6b6 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/IOcrMetadataConfigService.java @@ -1,7 +1,11 @@ package org.jeecg.modules.ocr.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.ocr.entity.OcrMetadataConfig; +import org.jeecg.modules.ocr.model.OcrMetadataConfigSaveModel; +import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; /** * @Description: 元数据配置 @@ -11,4 +15,33 @@ import org.jeecg.modules.ocr.entity.OcrMetadataConfig; */ public interface IOcrMetadataConfigService extends IService { + /** + * 根据配置名称 判断是否已存在 + * @param configName + * @param id + * @return + */ + boolean existsByConfigName(String configName, String id); + + /** + * 保存元数据配置 + * @param ocrMetadataConfigSaveModel + * @return + */ + OcrMetadataConfig saveModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel); + + /** + * 修改元数据配置 + * @param ocrMetadataConfigSaveModel + * @return + */ + OcrMetadataConfig updateModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel); + + /** + * 元数据配置列表 + * @param page + * @param ocrMetadataConfig + * @return + */ + IPage pageVo(Page page, OcrMetadataConfig ocrMetadataConfig); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigDetailServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigDetailServiceImpl.java new file mode 100644 index 0000000..c182812 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/service/impl/OcrMetadataConfigDetailServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.ocr.service.impl; + +import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; +import org.jeecg.modules.ocr.mapper.OcrMetadataConfigDetailMapper; +import org.jeecg.modules.ocr.service.IOcrMetadataConfigDetailService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 元数据配置明细 + * @Author: jeecg-boot + * @Date: 2023-07-17 + * @Version: V1.0 + */ +@Service +public class OcrMetadataConfigDetailServiceImpl extends ServiceImpl implements IOcrMetadataConfigDetailService { + +} 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 245957f..b168692 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 @@ -1,11 +1,27 @@ package org.jeecg.modules.ocr.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.util.AssertUtils; import org.jeecg.modules.ocr.entity.OcrMetadataConfig; +import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; import org.jeecg.modules.ocr.mapper.OcrMetadataConfigMapper; +import org.jeecg.modules.ocr.model.OcrMetadataConfigSaveModel; +import org.jeecg.modules.ocr.service.IOcrMetadataConfigDetailService; import org.jeecg.modules.ocr.service.IOcrMetadataConfigService; +import org.jeecg.modules.ocr.vo.OcrMetadataConfigVo; import org.springframework.stereotype.Service; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + /** * @Description: 元数据配置 * @Author: jeecg-boot @@ -14,5 +30,65 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; */ @Service public class OcrMetadataConfigServiceImpl extends ServiceImpl implements IOcrMetadataConfigService { + @Resource + IOcrMetadataConfigDetailService ocrMetadataConfigDetailService; + @Resource + OcrMetadataConfigMapper ocrMetadataConfigMapper; + @Override + public boolean existsByConfigName(String configName, String id) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(OcrMetadataConfig::getConfigName,configName); + queryWrapper.ne(StringUtils.isNotBlank(id),OcrMetadataConfig::getId,id); + return this.baseMapper.selectCount(queryWrapper)>0?true:false; + } + + @Override + public OcrMetadataConfig saveModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { + OcrMetadataConfig ocrMetadataConfig=new OcrMetadataConfig(); + ocrMetadataConfig.setConfigName(ocrMetadataConfigSaveModel.getConfigName()); + this.save(ocrMetadataConfig); + for (OcrMetadataConfigDetail detail : ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList()) { + detail.setMetadataConfigId(ocrMetadataConfig.getId()); + ocrMetadataConfigDetailService.saveOrUpdate(detail); + } + return ocrMetadataConfig; + } + + @Override + public OcrMetadataConfig updateModel(OcrMetadataConfigSaveModel ocrMetadataConfigSaveModel) { + AssertUtils.notEmpty(ocrMetadataConfigSaveModel.getId(),"[id]不可为空"); + OcrMetadataConfig ocrMetadataConfig = this.getById(ocrMetadataConfigSaveModel.getId()); + ocrMetadataConfig.setConfigName(ocrMetadataConfigSaveModel.getConfigName()); + this.updateById(ocrMetadataConfig); + for (OcrMetadataConfigDetail detail : ocrMetadataConfigSaveModel.getOcrMetadataConfigDetailList()) { + detail.setMetadataConfigId(ocrMetadataConfig.getId()); + ocrMetadataConfigDetailService.saveOrUpdate(detail); + } + return ocrMetadataConfig; + } + @Override + public IPage pageVo(Page page, OcrMetadataConfig ocrMetadataConfig) { + Map params=new LinkedHashMap<>(); + params.put("getField",ocrMetadataConfig.getGetField()); + params.put("configName",ocrMetadataConfig.getConfigName()); + params.put("resultName",ocrMetadataConfig.getResultName()); + /*params.put("column","createTime"); + params.put("order","desc");*/ + IPage pageList=baseMapper.pageVo(page,params); + List metadataConfigDetails = ocrMetadataConfigDetailService.list(); + List arrayTestList=new ArrayList<>(); + String fieldName=null,getField=null; + for (OcrMetadataConfigVo record : pageList.getRecords()) { + 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(",")); + record.setResultName(fieldName); + record.setGetField(getField); + record.setOcrMetadataConfigDetailList(arrayTestList); + } + } + return pageList; + } } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrMetadataConfigVo.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrMetadataConfigVo.java new file mode 100644 index 0000000..8968770 --- /dev/null +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/ocr/vo/OcrMetadataConfigVo.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.ocr.vo; + +import lombok.Data; +import org.jeecg.modules.ocr.entity.OcrMetadataConfig; +import org.jeecg.modules.ocr.entity.OcrMetadataConfigDetail; + +import java.util.ArrayList; +import java.util.List; + +/** + * @Description + * @Author ZhouWenTao + * @Date 2023/7/17 16:53 + */ +@Data +public class OcrMetadataConfigVo extends OcrMetadataConfig { + /**配置明细信息*/ + public List ocrMetadataConfigDetailList=new ArrayList<>(); +}