diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRecordEOController.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRecordEOController.java new file mode 100644 index 000000000..7df54f9b3 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/controller/OcrRecordEOController.java @@ -0,0 +1,184 @@ +package com.jero.modules.ocr.controller; + +import java.util.Arrays; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.jero.common.api.vo.Result; +import com.jero.modules.ocr.entity.OcrRecordEO; +import com.jero.modules.ocr.service.IOcrRecordEOService; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; +import com.jero.common.system.base.controller.JeroController; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import com.jero.common.aspect.annotation.AutoLog; + + + /** + * @Description: OCR识别转换记录表 + * @Author: jero-boot + * @Date: 2022-02-16 + * @Version: V1.0 + */ +@Api(tags="OCR识别转换记录表") +@RestController +@RequestMapping("/ocr/ocrRecord") +@Slf4j +public class OcrRecordEOController extends JeroController { + @Autowired + private IOcrRecordEOService ocrRecordService; + + @Value("${OCR.ocrDownPath}") + private String ocrDownPath; + + /** + * 分页列表查询 + * + * @param ocrRecordEO + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @AutoLog(value = "OCR识别转换记录表-分页列表查询") + @ApiOperation(value="OCR识别转换记录表-分页列表查询", notes="OCR识别转换记录表-分页列表查询") + @GetMapping(value = "/page") + public Result queryPageList(OcrRecordEO ocrRecordEO, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.like(StringUtils.isNotEmpty(ocrRecordEO.getStandName()), OcrRecordEO::getStandName, ocrRecordEO.getStandName()) + .like(StringUtils.isNotEmpty(ocrRecordEO.getStandNumber()), OcrRecordEO::getStandNumber, ocrRecordEO.getStandNumber()) + .eq(StringUtils.isNotEmpty(ocrRecordEO.getResultContent()), OcrRecordEO::getResultContent, ocrRecordEO.getResultContent()) + .orderByDesc(OcrRecordEO::getCreateTime); + Page page = new Page(pageNo, pageSize); + IPage pageList = ocrRecordService.page(page, queryWrapper); + List rows = pageList.getRecords(); + for (OcrRecordEO row : rows){ + row.setDocRealFile(ocrDownPath+row.getDocRealName()); + row.setJsonRealFile(ocrDownPath+row.getJsonRealName()); + } + return Result.OK(pageList); + } + + /** + * 列表查询 + * + * @return + */ + @AutoLog(value = "OCR识别转换记录表-列表查询") + @ApiOperation(value="OCR识别转换记录表-列表查询", notes="OCR识别转换记录表-列表查询") + @GetMapping(value = "/list") + public Result> queryList() { + List list = ocrRecordService.queryList(); + return Result.OK(list); + } + + /** + * 添加 + * + * @param ocrRecordEO + * @return + */ + @AutoLog(value = "OCR识别转换记录表-添加") + @ApiOperation(value="OCR识别转换记录表-添加", notes="OCR识别转换记录表-添加") + @PostMapping(value = "/add") + public Result add(@Validated @RequestBody OcrRecordEO ocrRecordEO) { + ocrRecordService.add(ocrRecordEO); + return Result.OK("添加成功!"); + } + + /** + * 编辑 + * + * @param ocrRecordEO + * @return + */ + @AutoLog(value = "OCR识别转换记录表-编辑") + @ApiOperation(value="OCR识别转换记录表-编辑", notes="OCR识别转换记录表-编辑") + @PutMapping(value = "/edit") + public Result edit(@Validated @RequestBody OcrRecordEO ocrRecordEO) { + ocrRecordService.editById(ocrRecordEO); + return Result.OK("编辑成功!"); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @AutoLog(value = "OCR识别转换记录表-通过id删除") + @ApiOperation(value="OCR识别转换记录表-通过id删除", notes="OCR识别转换记录表-通过id删除") + @DeleteMapping(value = "/delete") + public Result delete(@RequestParam(name="id",required=true) String id) { + ocrRecordService.deleteById(id); + return Result.OK("删除成功!"); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @AutoLog(value = "OCR识别转换记录表-批量删除") + @ApiOperation(value="OCR识别转换记录表-批量删除", notes="OCR识别转换记录表-批量删除") + @DeleteMapping(value = "/deleteBatch") + public Result deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.ocrRecordService.deleteByIds(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) { + OcrRecordEO ocrRecordEO = ocrRecordService.queryById(id); + if(ocrRecordEO ==null) { + return Result.error("未找到对应数据"); + } + return Result.OK(ocrRecordEO); + } + + /** + * 导出excel + * + * @param request + * @param ocrRecordEO + */ + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, OcrRecordEO ocrRecordEO) { + return super.exportXls(request, ocrRecordEO, OcrRecordEO.class, "OCR识别转换记录表"); + } + + /** + * 通过excel导入数据 + * + * @param request + * @param response + * @return + */ + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, OcrRecordEO.class); + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/entity/OcrRecordEO.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/entity/OcrRecordEO.java new file mode 100644 index 000000000..7309cded0 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/entity/OcrRecordEO.java @@ -0,0 +1,132 @@ +package com.jero.modules.ocr.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import com.jero.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; + + +/** + * @Description: OCR识别转换记录表 + * @Author: jero-boot + * @Date: 2022-02-16 + * @Version: V1.0 + */ +@Data +@TableName("ocr_record") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="ocr_record对象", description="OCR识别转换记录表") +public class OcrRecordEO implements Serializable { + private static final long serialVersionUID = 1L; + + /**主键*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private String id; + + /**创建人*/ + @ApiModelProperty(value = "创建人") + private 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 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 String sysOrgCode; + + /**标准名称*/ + @Excel(name = "标准名称", width = 15) + @ApiModelProperty(value = "标准名称") + private String standName; + + /**标准编号*/ + @Excel(name = "标准编号", width = 15) + @ApiModelProperty(value = "标准编号") + private String standNumber; + + /**文本状态*/ + @Excel(name = "文本状态", width = 15, dicCode = "file_type") + @Dict(dicCode = "file_type") + @ApiModelProperty(value = "文本状态") + private String fileType; + + /**文件名称*/ + @Excel(name = "文件名称", width = 15) + @ApiModelProperty(value = "文件名称") + private String fileName; + + /**转换结果*/ + @Excel(name = "转换结果", width = 15) + @ApiModelProperty(value = "转换结果") + private String resultContent; + + /**doc本地存放全路径*/ + @Excel(name = "doc本地存放全路径", width = 15) + @ApiModelProperty(value = "doc本地存放全路径") + private String docName; + + /**doc文件名称*/ + @Excel(name = "doc文件名称", width = 15) + @ApiModelProperty(value = "doc文件名称") + private String docRealName; + + /**doc文件编码*/ + @Excel(name = "doc文件编码", width = 15) + @ApiModelProperty(value = "doc文件编码") + private String wordFileCode; + + /**json文件本地存放全路径*/ + @Excel(name = "json文件本地存放全路径", width = 15) + @ApiModelProperty(value = "json文件本地存放全路径") + private String jsonName; + + /**json文件名称*/ + @Excel(name = "json文件名称", width = 15) + @ApiModelProperty(value = "json文件名称") + private String jsonRealName; + + /**json文件编码*/ + @Excel(name = "json文件编码", width = 15) + @ApiModelProperty(value = "json文件编码") + private String jsonFileCode; + + /**pdf文件id*/ + @Excel(name = "pdf文件id", width = 15) + @ApiModelProperty(value = "pdf文件id") + private String attId; + + /**同步状态*/ + @Excel(name = "同步状态", width = 15) + @ApiModelProperty(value = "同步状态") + private String syncState; + + private String docRealFile; + private String jsonRealFile; +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/enums/FileSyncStateEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/enums/FileSyncStateEnum.java new file mode 100644 index 000000000..bb50eb541 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/enums/FileSyncStateEnum.java @@ -0,0 +1,36 @@ +package com.jero.modules.ocr.enums; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 14:49 2022/2/16 + */ +public enum FileSyncStateEnum { + SYNC_NO("未同步","未同步"), + SYNC_YES("已同步","已同步"); + + String name; + String value; + + private FileSyncStateEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/enums/FileTypeEnum.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/enums/FileTypeEnum.java new file mode 100644 index 000000000..cbfd89a5c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/enums/FileTypeEnum.java @@ -0,0 +1,36 @@ +package com.jero.modules.ocr.enums; + +/** + * @Author: liyawei + * @Description: + * @Date: Created in 14:49 2022/2/16 + */ +public enum FileTypeEnum { + OCR_CONVERTING("转换中","转换中"), + OCR_CONVERT_SUCCESS("转换成功","转换成功"), + OCR_CONVERT_FAIL("转换失败","转换失败"); + + String name; + String value; + + private FileTypeEnum(String name, String value) { + this.name = name; + this.value = value; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/mapper/OcrRecordEOMapper.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/mapper/OcrRecordEOMapper.java new file mode 100644 index 000000000..dea1de40c --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/mapper/OcrRecordEOMapper.java @@ -0,0 +1,14 @@ +package com.jero.modules.ocr.mapper; + +import com.jero.modules.ocr.entity.OcrRecordEO; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: OCR识别转换记录表 + * @Author: jero-boot + * @Date: 2022-02-16 + * @Version: V1.0 + */ +public interface OcrRecordEOMapper extends BaseMapper { + +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/mapper/xml/OcrRecordEOMapper.xml b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/mapper/xml/OcrRecordEOMapper.xml new file mode 100644 index 000000000..1f4706a18 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/mapper/xml/OcrRecordEOMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/IOcrRecordEOService.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/IOcrRecordEOService.java new file mode 100644 index 000000000..62e754ae0 --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/IOcrRecordEOService.java @@ -0,0 +1,64 @@ +package com.jero.modules.ocr.service; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.modules.ocr.entity.OcrRecordEO; +import com.baomidou.mybatisplus.extension.service.IService; +import java.util.List; + +/** + * @Description: OCR识别转换记录表 + * @Author: jero-boot + * @Date: 2022-02-16 + * @Version: V1.0 + */ +public interface IOcrRecordEOService extends IService { + + /** + * 保存 + * + * @param ocrRecordEO + * @return + */ + void add(OcrRecordEO ocrRecordEO); + + /** + * 更新 + * + * @param ocrRecordEO + * @return + */ + void editById(OcrRecordEO ocrRecordEO); + + /** + * 通过id删除 + * + * @param id + * @return + */ + void deleteById(String id); + + /** + * 批量删除 + * + * @param ids + * @return + */ + void deleteByIds(List ids); + + /** + * 通过id查询 + * + * @param id + * @return + */ + OcrRecordEO queryById(String id); + + /** + * 列表查询 + * + * @return + */ + List queryList(); +} diff --git a/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/impl/OcrRecordEOServiceImpl.java b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/impl/OcrRecordEOServiceImpl.java new file mode 100644 index 000000000..9a067876d --- /dev/null +++ b/jero-boot/jero-boot-modules/src/main/java/com/jero/modules/ocr/service/impl/OcrRecordEOServiceImpl.java @@ -0,0 +1,90 @@ +package com.jero.modules.ocr.service.impl; + +import com.jero.modules.ocr.entity.OcrRecordEO; +import com.jero.modules.ocr.mapper.OcrRecordEOMapper; +import com.jero.modules.ocr.service.IOcrRecordEOService; +import org.springframework.stereotype.Service; +import java.util.List; +import java.util.Date; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: OCR识别转换记录表 + * @Author: jero-boot + * @Date: 2022-02-16 + * @Version: V1.0 + */ +@Service +public class OcrRecordEOServiceImpl extends ServiceImpl implements IOcrRecordEOService { + + /** + * 保存 + * + * @param ocrRecordEO + * @return + */ + @Override + public void add(OcrRecordEO ocrRecordEO) { + Date now = new Date(); + ocrRecordEO.setCreateTime(now); + ocrRecordEO.setUpdateTime(now); + save(ocrRecordEO); + } + + /** + * 更新 + * + * @param ocrRecordEO + * @return + */ + @Override + public void editById(OcrRecordEO ocrRecordEO) { + Date now = new Date(); + ocrRecordEO.setUpdateTime(now); + saveOrUpdate(ocrRecordEO); + } + + /** + * 通过id删除 + * + * @param id + * @return + */ + @Override + public void deleteById(String id) { + removeById(id); + } + + /** + * 批量删除 + * + * @param ids + * @return + */ + @Override + public void deleteByIds(List ids) { + removeByIds(ids); + } + + /** + * 通过id查询 + * + * @param id + * @return + */ + @Override + public OcrRecordEO queryById(String id) { + return getById(id); + } + + /** + * 列表查询 + * + * @return + */ + @Override + public List queryList() { + return list(); + } +}