Commit 0681cfb0 authored by alex yao's avatar alex yao

feat:MinerU Api

parent 3afdbbbe
package cn.com.poc.ai_data_audit.convert;
import cn.com.poc.ai_data_audit.model.BizAiDataAuditRuleModel;
import cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity;
import cn.com.poc.ai_data_audit.dto.BizAiDataAuditRuleDto;
public class BizAiDataAuditRuleConvert {
public static BizAiDataAuditRuleEntity modelToEntity(BizAiDataAuditRuleModel model){
BizAiDataAuditRuleEntity entity = new BizAiDataAuditRuleEntity();
entity.setDataAuditRuleId(model.getDataAuditRuleId());
entity.setDataAuditRuleType(model.getDataAuditRuleType());
entity.setFirstFile(model.getFirstFile());
entity.setFirstField(model.getFirstField());
entity.setSecondFile(model.getSecondFile());
entity.setSecondField(model.getSecondField());
entity.setRuleDesc(model.getRuleDesc());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
return entity;
}
public static BizAiDataAuditRuleModel entityToModel(BizAiDataAuditRuleEntity entity){
BizAiDataAuditRuleModel model = new BizAiDataAuditRuleModel();
model.setDataAuditRuleId(entity.getDataAuditRuleId());
model.setDataAuditRuleType(entity.getDataAuditRuleType());
model.setFirstFile(entity.getFirstFile());
model.setFirstField(entity.getFirstField());
model.setSecondFile(entity.getSecondFile());
model.setSecondField(entity.getSecondField());
model.setRuleDesc(entity.getRuleDesc());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
return model;
}
public static BizAiDataAuditRuleDto entityToDto(BizAiDataAuditRuleEntity entity){
BizAiDataAuditRuleDto dto = new BizAiDataAuditRuleDto();
dto.setDataAuditRuleId(entity.getDataAuditRuleId());
dto.setDataAuditRuleType(entity.getDataAuditRuleType());
dto.setFirstFile(entity.getFirstFile());
dto.setFirstField(entity.getFirstField());
dto.setSecondFile(entity.getSecondFile());
dto.setSecondField(entity.getSecondField());
dto.setRuleDesc(entity.getRuleDesc());
dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime());
dto.setModifier(entity.getModifier());
dto.setModifiedTime(entity.getModifiedTime());
dto.setSysVersion(entity.getSysVersion());
return dto;
}
public static BizAiDataAuditRuleEntity dtoToEntity(BizAiDataAuditRuleDto dto){
BizAiDataAuditRuleEntity entity = new BizAiDataAuditRuleEntity();
entity.setDataAuditRuleId(dto.getDataAuditRuleId());
entity.setDataAuditRuleType(dto.getDataAuditRuleType());
entity.setFirstFile(dto.getFirstFile());
entity.setFirstField(dto.getFirstField());
entity.setSecondFile(dto.getSecondFile());
entity.setSecondField(dto.getSecondField());
entity.setRuleDesc(dto.getRuleDesc());
entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime());
entity.setModifier(dto.getModifier());
entity.setModifiedTime(dto.getModifiedTime());
entity.setSysVersion(dto.getSysVersion());
return entity;
}
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.dto;
public class BizAiDataAuditRuleDto {
private static final long serialVersionUID = 1L;
/** data_audit_rule_id
*
*/
private java.lang.Integer dataAuditRuleId;
public java.lang.Integer getDataAuditRuleId(){
return this.dataAuditRuleId;
}
public void setDataAuditRuleId(java.lang.Integer dataAuditRuleId){
this.dataAuditRuleId = dataAuditRuleId;
}
/** data_audit_rule_type
*类型:
字段对字段:c2c
字段对文件:f2c
文件对文件:f2f
*/
private java.lang.String dataAuditRuleType;
public java.lang.String getDataAuditRuleType(){
return this.dataAuditRuleType;
}
public void setDataAuditRuleType(java.lang.String dataAuditRuleType){
this.dataAuditRuleType = dataAuditRuleType;
}
/** first_file
*第一个文件
*/
private java.lang.Integer firstFile;
public java.lang.Integer getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
this.firstFile = firstFile;
}
/** first_field
*第一个字段
*/
private java.lang.String firstField;
public java.lang.String getFirstField(){
return this.firstField;
}
public void setFirstField(java.lang.String firstField){
this.firstField = firstField;
}
/** second_file
*第二个文件
*/
private java.lang.Integer secondFile;
public java.lang.Integer getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
this.secondFile = secondFile;
}
/** second_field
*第二个字段
*/
private java.lang.String secondField;
public java.lang.String getSecondField(){
return this.secondField;
}
public void setSecondField(java.lang.String secondField){
this.secondField = secondField;
}
/** rule_desc
*规则描述
*/
private java.lang.String ruleDesc;
public java.lang.String getRuleDesc(){
return this.ruleDesc;
}
public void setRuleDesc(java.lang.String ruleDesc){
this.ruleDesc = ruleDesc;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.entity;
public class BizAiDataAuditRuleEntity {
private static final long serialVersionUID = 1L;
/** data_audit_rule_id
*
*/
private java.lang.Integer dataAuditRuleId;
public java.lang.Integer getDataAuditRuleId(){
return this.dataAuditRuleId;
}
public void setDataAuditRuleId(java.lang.Integer dataAuditRuleId){
this.dataAuditRuleId = dataAuditRuleId;
}
/** data_audit_rule_type
*类型:
字段对字段:c2c
字段对文件:f2c
文件对文件:f2f
*/
private java.lang.String dataAuditRuleType;
public java.lang.String getDataAuditRuleType(){
return this.dataAuditRuleType;
}
public void setDataAuditRuleType(java.lang.String dataAuditRuleType){
this.dataAuditRuleType = dataAuditRuleType;
}
/** first_file
*第一个文件
*/
private java.lang.Integer firstFile;
public java.lang.Integer getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
this.firstFile = firstFile;
}
/** first_field
*第一个字段
*/
private java.lang.String firstField;
public java.lang.String getFirstField(){
return this.firstField;
}
public void setFirstField(java.lang.String firstField){
this.firstField = firstField;
}
/** second_file
*第二个文件
*/
private java.lang.Integer secondFile;
public java.lang.Integer getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
this.secondFile = secondFile;
}
/** second_field
*第二个字段
*/
private java.lang.String secondField;
public java.lang.String getSecondField(){
return this.secondField;
}
public void setSecondField(java.lang.String secondField){
this.secondField = secondField;
}
/** rule_desc
*规则描述
*/
private java.lang.String ruleDesc;
public java.lang.String getRuleDesc(){
return this.ruleDesc;
}
public void setRuleDesc(java.lang.String ruleDesc){
this.ruleDesc = ruleDesc;
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.model;
import java.io.Serializable;
import cn.com.yict.framemax.data.model.BaseModelClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Version;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
/**
* Model class for biz_ai_data_audit_rule
*
*/
@Entity
@Table(name = "biz_ai_data_audit_rule")
@DynamicInsert
@DynamicUpdate
public class BizAiDataAuditRuleModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/** data_audit_rule_id
*
*/
private java.lang.Integer dataAuditRuleId;
@Column(name = "data_audit_rule_id",length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Integer getDataAuditRuleId(){
return this.dataAuditRuleId;
}
public void setDataAuditRuleId(java.lang.Integer dataAuditRuleId){
this.dataAuditRuleId = dataAuditRuleId;
super.addValidField("dataAuditRuleId");
}
/** data_audit_rule_type
*类型:
字段对字段:c2c
字段对文件:f2c
文件对文件:f2f
*/
private java.lang.String dataAuditRuleType;
@Column(name = "data_audit_rule_type",length = 255)
public java.lang.String getDataAuditRuleType(){
return this.dataAuditRuleType;
}
public void setDataAuditRuleType(java.lang.String dataAuditRuleType){
this.dataAuditRuleType = dataAuditRuleType;
super.addValidField("dataAuditRuleType");
}
/** first_file
*第一个文件
*/
private java.lang.Integer firstFile;
@Column(name = "first_file",length = 10)
public java.lang.Integer getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
this.firstFile = firstFile;
super.addValidField("firstFile");
}
/** first_field
*第一个字段
*/
private java.lang.String firstField;
@Column(name = "first_field",length = 255)
public java.lang.String getFirstField(){
return this.firstField;
}
public void setFirstField(java.lang.String firstField){
this.firstField = firstField;
super.addValidField("firstField");
}
/** second_file
*第二个文件
*/
private java.lang.Integer secondFile;
@Column(name = "second_file",length = 10)
public java.lang.Integer getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
this.secondFile = secondFile;
super.addValidField("secondFile");
}
/** second_field
*第二个字段
*/
private java.lang.String secondField;
@Column(name = "second_field",length = 1073741824)
public java.lang.String getSecondField(){
return this.secondField;
}
public void setSecondField(java.lang.String secondField){
this.secondField = secondField;
super.addValidField("secondField");
}
/** rule_desc
*规则描述
*/
private java.lang.String ruleDesc;
@Column(name = "rule_desc",length = 255)
public java.lang.String getRuleDesc(){
return this.ruleDesc;
}
public void setRuleDesc(java.lang.String ruleDesc){
this.ruleDesc = ruleDesc;
super.addValidField("ruleDesc");
}
/** is_deleted
*是否删除 1、Y 是 2、N 否
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted",length = 1)
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
@Column(name = "CREATOR",length = 225)
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
super.addValidField("creator");
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME",length = 19)
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
@Column(name = "MODIFIER",length = 225)
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
super.addValidField("modifier");
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME",length = 19)
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10)
@Version
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
select
data_audit_rule_id,
data_audit_rule_type,
first_file,
first_field,
second_file,
second_field,
rule_desc,
is_deleted,
CREATOR,
CREATED_TIME,
MODIFIER,
MODIFIED_TIME,
SYS_VERSION
from
biz_ai_data_audit_rule
where is_deleted = 'N'
<< and data_audit_rule_id in (:ids) >>
\ No newline at end of file
package cn.com.poc.ai_data_audit.query;
import java.io.Serializable;
/**
* Query Condition class for AiDataAuditRuleQuery
*/
public class AiDataAuditRuleQueryCondition implements Serializable{
private static final long serialVersionUID = 1L;
private java.lang.Long[] ids;
public java.lang.Long[] getIds(){
return this.ids;
}
public void setIds(java.lang.Long[] ids){
this.ids = ids;
}
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.query;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import cn.com.yict.framemax.data.model.BaseItemClass;
/**
* Query Item class for AiDataAuditRuleQuery
*/
@Entity
public class AiDataAuditRuleQueryItem extends BaseItemClass implements Serializable{
private static final long serialVersionUID = 1L;
/** data_audit_rule_id
*data_audit_rule_id
*/
private java.lang.Integer dataAuditRuleId;
@Column(name = "data_audit_rule_id")
public java.lang.Integer getDataAuditRuleId(){
return this.dataAuditRuleId;
}
public void setDataAuditRuleId(java.lang.Integer dataAuditRuleId){
this.dataAuditRuleId = dataAuditRuleId;
}
/** data_audit_rule_type
*data_audit_rule_type
*/
private java.lang.String dataAuditRuleType;
@Column(name = "data_audit_rule_type")
public java.lang.String getDataAuditRuleType(){
return this.dataAuditRuleType;
}
public void setDataAuditRuleType(java.lang.String dataAuditRuleType){
this.dataAuditRuleType = dataAuditRuleType;
}
/** first_file
*first_file
*/
private java.lang.Integer firstFile;
@Column(name = "first_file")
public java.lang.Integer getFirstFile(){
return this.firstFile;
}
public void setFirstFile(java.lang.Integer firstFile){
this.firstFile = firstFile;
}
/** first_field
*first_field
*/
private java.lang.String firstField;
@Column(name = "first_field")
public java.lang.String getFirstField(){
return this.firstField;
}
public void setFirstField(java.lang.String firstField){
this.firstField = firstField;
}
/** second_file
*second_file
*/
private java.lang.Integer secondFile;
@Column(name = "second_file")
public java.lang.Integer getSecondFile(){
return this.secondFile;
}
public void setSecondFile(java.lang.Integer secondFile){
this.secondFile = secondFile;
}
/** second_field
*second_field
*/
private java.lang.String secondField;
@Column(name = "second_field")
public java.lang.String getSecondField(){
return this.secondField;
}
public void setSecondField(java.lang.String secondField){
this.secondField = secondField;
}
/** rule_desc
*rule_desc
*/
private java.lang.String ruleDesc;
@Column(name = "rule_desc")
public java.lang.String getRuleDesc(){
return this.ruleDesc;
}
public void setRuleDesc(java.lang.String ruleDesc){
this.ruleDesc = ruleDesc;
}
/** is_deleted
*is_deleted
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted")
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*CREATOR
*/
private java.lang.String creator;
@Column(name = "CREATOR")
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*CREATED_TIME
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME")
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*MODIFIER
*/
private java.lang.String modifier;
@Column(name = "MODIFIER")
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*MODIFIED_TIME
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME")
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*SYS_VERSION
*/
private java.lang.Integer sysVersion;
@Column(name = "SYS_VERSION")
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.ai_data_audit.model.BizAiDataAuditRuleModel;
public interface BizAiDataAuditRuleRepository extends Repository<BizAiDataAuditRuleModel,java.lang.Integer> {
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.rest;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.poc.ai_data_audit.dto.BizAiDataAuditRuleDto;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
public interface BizAiDataAuditRuleRest extends BaseRest {
BizAiDataAuditRuleDto getById(java.lang.Integer id) throws Exception;
List<BizAiDataAuditRuleDto> getList(BizAiDataAuditRuleDto example,PagingInfo pagingInfo) throws Exception;
BizAiDataAuditRuleDto save(BizAiDataAuditRuleDto dto) throws Exception;
BizAiDataAuditRuleDto update(BizAiDataAuditRuleDto dto) throws Exception;
void deletedById(java.lang.Integer id) throws Exception;
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.rest.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cn.com.poc.ai_data_audit.rest.BizAiDataAuditRuleRest;
import cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService;
import cn.com.poc.ai_data_audit.dto.BizAiDataAuditRuleDto;
import cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.poc.ai_data_audit.convert.BizAiDataAuditRuleConvert;
import java.util.stream.Collectors;
import org.springframework.util.Assert;
@Component
public class BizAiDataAuditRuleRestImpl implements BizAiDataAuditRuleRest {
@Resource
private BizAiDataAuditRuleService service;
public BizAiDataAuditRuleDto getById(java.lang.Integer id) throws Exception{
Assert.notNull(id);
return BizAiDataAuditRuleConvert.entityToDto(service.get(id));
}
public List<BizAiDataAuditRuleDto> getList(BizAiDataAuditRuleDto dto,PagingInfo pagingInfo) throws Exception{
return service
.findByExample(BizAiDataAuditRuleConvert.dtoToEntity(dto),pagingInfo)
.stream()
.map(BizAiDataAuditRuleConvert::entityToDto)
.collect(Collectors.toList());
}
public BizAiDataAuditRuleDto save(BizAiDataAuditRuleDto dto) throws Exception{
Assert.notNull(dto);
BizAiDataAuditRuleEntity entity = BizAiDataAuditRuleConvert.dtoToEntity(dto);
return BizAiDataAuditRuleConvert.entityToDto(service.save(entity));
}
public BizAiDataAuditRuleDto update(BizAiDataAuditRuleDto dto) throws Exception{
Assert.notNull(dto);
BizAiDataAuditRuleEntity entity = BizAiDataAuditRuleConvert.dtoToEntity(dto);
return BizAiDataAuditRuleConvert.entityToDto(service.update(entity));
}
public void deletedById(java.lang.Integer id) throws Exception{
Assert.notNull(id);
service.deletedById(id);
}
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.service;
import cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryCondition;
import cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryItem;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizAiDataAuditRuleService extends BaseService {
BizAiDataAuditRuleEntity get(java.lang.Integer id) throws Exception;
List<BizAiDataAuditRuleEntity> findByExample(BizAiDataAuditRuleEntity example, PagingInfo pagingInfo) throws Exception;
BizAiDataAuditRuleEntity save(BizAiDataAuditRuleEntity entity) throws Exception;
BizAiDataAuditRuleEntity update(BizAiDataAuditRuleEntity entity) throws Exception;
void deletedById(java.lang.Integer id) throws Exception;
List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItemList(AiDataAuditRuleQueryCondition condition, PagingInfo pagingInfo) throws Exception;
}
\ No newline at end of file
package cn.com.poc.ai_data_audit.service.impl;
import cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryCondition;
import cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryItem;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService;
import cn.com.poc.ai_data_audit.model.BizAiDataAuditRuleModel;
import cn.com.poc.ai_data_audit.entity.BizAiDataAuditRuleEntity;
import cn.com.poc.ai_data_audit.convert.BizAiDataAuditRuleConvert;
import cn.com.poc.ai_data_audit.repository.BizAiDataAuditRuleRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.util.Assert;
@Service
public class BizAiDataAuditRuleServiceImpl extends BaseServiceImpl
implements BizAiDataAuditRuleService {
@Resource
private BizAiDataAuditRuleRepository repository;
public BizAiDataAuditRuleEntity get(java.lang.Integer id) throws Exception {
Assert.notNull(id);
BizAiDataAuditRuleModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizAiDataAuditRuleConvert.modelToEntity(model);
}
public List<BizAiDataAuditRuleEntity> findByExample(BizAiDataAuditRuleEntity example, PagingInfo pagingInfo) throws Exception {
List<BizAiDataAuditRuleEntity> result = new ArrayList<BizAiDataAuditRuleEntity>();
BizAiDataAuditRuleModel model = new BizAiDataAuditRuleModel();
if (example != null) {
model = BizAiDataAuditRuleConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizAiDataAuditRuleModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizAiDataAuditRuleConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizAiDataAuditRuleEntity save(BizAiDataAuditRuleEntity entity) throws Exception {
Assert.notNull(entity);
entity.setDataAuditRuleId(null);
entity.setIsDeleted("N");
BizAiDataAuditRuleModel model = BizAiDataAuditRuleConvert.entityToModel(entity);
BizAiDataAuditRuleModel saveModel = this.repository.save(model);
return BizAiDataAuditRuleConvert.modelToEntity(saveModel);
}
public BizAiDataAuditRuleEntity update(BizAiDataAuditRuleEntity entity) throws Exception {
Assert.notNull(entity);
Assert.notNull(entity.getDataAuditRuleId(), "update pk can not be null");
BizAiDataAuditRuleModel model = this.repository.get(entity.getDataAuditRuleId());
if (entity.getDataAuditRuleType() != null) {
model.setDataAuditRuleType(entity.getDataAuditRuleType());
}
if (entity.getFirstFile() != null) {
model.setFirstFile(entity.getFirstFile());
}
if (entity.getFirstField() != null) {
model.setFirstField(entity.getFirstField());
}
if (entity.getSecondFile() != null) {
model.setSecondFile(entity.getSecondFile());
}
if (entity.getSecondField() != null) {
model.setSecondField(entity.getSecondField());
}
if (entity.getRuleDesc() != null) {
model.setRuleDesc(entity.getRuleDesc());
}
if (entity.getIsDeleted() != null) {
model.setIsDeleted(entity.getIsDeleted());
}
if (entity.getCreator() != null) {
model.setCreator(entity.getCreator());
}
if (entity.getCreatedTime() != null) {
model.setCreatedTime(entity.getCreatedTime());
}
if (entity.getModifier() != null) {
model.setModifier(entity.getModifier());
}
if (entity.getModifiedTime() != null) {
model.setModifiedTime(entity.getModifiedTime());
}
if (entity.getSysVersion() != null) {
model.setSysVersion(entity.getSysVersion());
}
BizAiDataAuditRuleModel saveModel = this.repository.save(model);
return BizAiDataAuditRuleConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Integer id) throws Exception {
Assert.notNull(id);
BizAiDataAuditRuleModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
@Override
public List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItemList(AiDataAuditRuleQueryCondition condition, PagingInfo pagingInfo) throws Exception {
return this.sqlDao.query(condition, AiDataAuditRuleQueryItem.class, pagingInfo);
}
}
\ No newline at end of file
package cn.com.poc.common.utils;
import cn.com.gsst.dify_client.DifyClientFactory;
import cn.com.gsst.dify_client.DifyWorkflowClient;
import cn.com.gsst.dify_client.enums.FileTransferMethod;
import cn.com.gsst.dify_client.enums.FileType;
import cn.com.gsst.dify_client.enums.ResponseMode;
import cn.com.gsst.dify_client.model.file.FileInfo;
import cn.com.gsst.dify_client.model.workflow.WorkflowRunRequest;
import cn.com.gsst.dify_client.model.workflow.WorkflowRunResponse;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* MD表格/表单转 json
*
* @author alex.yao
* @date 2025/10/30
*/
public class MD2Json {
private static String DIFY_BASE_URL = "https://dify.gsstcloud.com/v1";
private static Logger logger = LoggerFactory.getLogger(MD2Json.class);
public static String md2json(String md) {
Map<String, Object> inputs = new LinkedHashMap<>();
inputs.put("document", md);
List<FileInfo> files = new ArrayList<>();
files.add(FileInfo.builder()
.type(FileType.DOCUMENT)
.transferMethod(FileTransferMethod.REMOTE_URL)
.build());
try {
DifyWorkflowClient workflowClient = DifyClientFactory.createWorkflowClient(DIFY_BASE_URL, "app-pYQciBixUQCmSpVTMDCMD0Uj");
WorkflowRunRequest workflowRunRequest = new WorkflowRunRequest();
workflowRunRequest.setResponseMode(ResponseMode.BLOCKING);
workflowRunRequest.setInputs(inputs);
workflowRunRequest.setUser("ModelLink");
WorkflowRunResponse workflowRunResponse = workflowClient.runWorkflow(workflowRunRequest);
Map<String, Object> outputs = workflowRunResponse.getData().getOutputs();
if (outputs.containsKey("text")) {
Object text = outputs.get("text");
JSONObject jsonObject = JSON.parseObject(text.toString());
if (jsonObject.containsKey("paper") && !jsonObject.getBoolean("paper")) {
logger.info("------------ md to json could not paper -------------");
return StringUtils.EMPTY;
}
return jsonObject.toJSONString();
}
logger.error("------------- md to json error , text is null -------------");
return StringUtils.EMPTY;
} catch (Exception e) {
logger.error("------------- md to json error -------------", e);
return StringUtils.EMPTY;
}
}
}
package cn.com.poc.message.entity;
import java.util.List;
import java.util.Map;
/**
* 香港机场-PDF解析消息
*
* @author alex.yao
* @date 2025/10/30
*/
public class AirportPDFPaperMessage {
// 1. 规则列表
private List<Integer> ruleIdList;
// 2. 文件映射
private Map<String, String> fileMap;
public List<Integer> getRuleIdList() {
return ruleIdList;
}
public void setRuleIdList(List<Integer> ruleIdList) {
this.ruleIdList = ruleIdList;
}
public Map<String, String> getFileMap() {
return fileMap;
}
public void setFileMap(Map<String, String> fileMap) {
this.fileMap = fileMap;
}
}
package cn.com.poc.message.entity;
/**
* @author alex.yao
* @date 2025/10/30
*/
public class OCRMessage {
private Long id;
private String fileURL;
private String md5;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public String getFileURL() {
return fileURL;
}
public void setFileURL(String fileURL) {
this.fileURL = fileURL;
}
}
package cn.com.poc.message.entity;
/**
* @author alex.yao
* @date 2025/10/30
*/
public class OCRStatusMessage {
private Long id;
private String status;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.AirportPDFPaperMessage;
import cn.com.yict.framemax.core.service.BaseService;
/**
* @author alex.yao
* @date 2025/10/30
*/
public interface AirportConsumerService extends BaseService {
/**
* 推送PDF解析消息任务
*
* @param message
* @return
*/
void pdfPaper(AirportPDFPaperMessage message) throws Exception;
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.AirportPDFPaperMessage;
import cn.com.yict.framemax.core.service.BaseService;
/**
* @author alex.yao
* @date 2025/10/30
*/
public interface AirportProducerService extends BaseService {
/**
* 推送PDF解析消息任务
*
* @param message
* @return
*/
AirportPDFPaperMessage pdfPaper(AirportPDFPaperMessage message);
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.OCRMessage;
import cn.com.poc.message.entity.OCRStatusMessage;
import cn.com.yict.framemax.core.service.BaseService;
/**
* @author alex.yao
* @date 2025/10/30
*/
public interface OCRConsumerService extends BaseService {
void OCR(OCRMessage message) throws Exception;
void updateStatus(OCRStatusMessage message) throws Exception;
}
package cn.com.poc.message.service;
import cn.com.poc.message.entity.OCRMessage;
import cn.com.poc.message.entity.OCRStatusMessage;
import cn.com.yict.framemax.core.service.BaseService;
/**
* @author alex.yao
* @date 2025/10/30
*/
public interface OCRProducerService extends BaseService {
OCRMessage OCR(OCRMessage message);
OCRStatusMessage updateStatus(OCRStatusMessage message);
}
package cn.com.poc.message.service.impl;
import cn.com.gsst.dify_client.DifyChatClient;
import cn.com.gsst.dify_client.DifyClientFactory;
import cn.com.gsst.dify_client.enums.ResponseMode;
import cn.com.gsst.dify_client.model.chat.ChatMessage;
import cn.com.gsst.dify_client.model.chat.ChatMessageResponse;
import cn.com.poc.ai_data_audit.entity.BizAiDataAuditFileEntity;
import cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryCondition;
import cn.com.poc.ai_data_audit.query.AiDataAuditRuleQueryItem;
import cn.com.poc.ai_data_audit.service.BizAiDataAuditFileService;
import cn.com.poc.ai_data_audit.service.BizAiDataAuditRuleService;
import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.equity.service.BizPointDeductionRulesService;
import cn.com.poc.message.entity.AirportPDFPaperMessage;
import cn.com.poc.message.service.AirportConsumerService;
import cn.com.poc.message.topic.AirportTopic;
import cn.com.poc.ocr.entity.BizFileOcrCacheEntity;
import cn.com.poc.ocr.service.BizFileOcrCacheService;
import cn.com.yict.framemax.core.exception.BusinessException;
import cn.com.yict.framemax.tumbleweed.client.annotation.Consumer;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.File;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public class AirportConsumerServiceImpl implements AirportConsumerService {
private String DIFY_BASE_URL = "https://dify.gsstcloud.com/v1";
private ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 20, 10L,
TimeUnit.SECONDS,
new java.util.concurrent.ArrayBlockingQueue<>(5),
new ThreadFactoryBuilder().setNameFormat("pdf-paper-%d").build(),
new ThreadPoolExecutor.DiscardOldestPolicy());
@Resource
private BizFileOcrCacheService bizFileOcrCacheService;
@Resource
private BizAiDataAuditFileService bizAiDataAuditFileService;
@Resource
private BizAiDataAuditRuleService bizAiDataAuditRuleService;
@Override
@Consumer(topic = AirportTopic.AIRPORT_PDF_PAPER_TOPIC)
public void pdfPaper(AirportPDFPaperMessage message) throws Exception {
List<String> results = new CopyOnWriteArrayList<>();
List<Integer> ruleIdList = message.getRuleIdList();
AiDataAuditRuleQueryCondition aiDataAuditRuleQueryCondition = new AiDataAuditRuleQueryCondition();
aiDataAuditRuleQueryCondition.setIds(ruleIdList.toArray(new Long[ruleIdList.size()]));
List<AiDataAuditRuleQueryItem> aiDataAuditRuleQueryItems = bizAiDataAuditRuleService.aiDataAuditRuleQueryItemList(aiDataAuditRuleQueryCondition, null);
CountDownLatch countDownLatch = new CountDownLatch(aiDataAuditRuleQueryItems.size());
try {
//
for (AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem : aiDataAuditRuleQueryItems) {
String ruleType = aiDataAuditRuleQueryItem.getDataAuditRuleType();
if (ruleType.equals("c2c")) {
c2c(aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("c2f")) {
c2f(aiDataAuditRuleQueryItem, results, countDownLatch);
} else if (ruleType.equals("f2f")) {
f2f(aiDataAuditRuleQueryItem, results, countDownLatch);
} else {
countDownLatch.countDown();
}
}
countDownLatch.await();
} catch (Exception e) {
throw new BusinessException(e.getMessage());
}
}
// 字段对字段
private void c2c(AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<String> results, CountDownLatch countDownLatch) {
executor.submit(() -> {
try {
String ruleDesc = aiDataAuditRuleQueryItem.getRuleDesc();// 规则描述
Integer firstFile = aiDataAuditRuleQueryItem.getFirstFile();// 文件1
String firstField = aiDataAuditRuleQueryItem.getFirstField();// 字段1
Integer secondFile = aiDataAuditRuleQueryItem.getSecondFile();// 文件2
String secondField = aiDataAuditRuleQueryItem.getSecondField();// 字段2
String firstFileContent = StringUtils.EMPTY;
String secondFileContent = StringUtils.EMPTY;
// 找到文件 并下载对应的md 或 json 文件
BizAiDataAuditFileEntity firstAuditFileEntity = bizAiDataAuditFileService.get(firstFile);
BizFileOcrCacheEntity bizFileOcrCacheEntity = new BizFileOcrCacheEntity();
bizFileOcrCacheEntity.setMd5(firstAuditFileEntity.getMd5());
List<BizFileOcrCacheEntity> firstocrCacheEntities = bizFileOcrCacheService.findByExample(bizFileOcrCacheEntity, null);
BizFileOcrCacheEntity firstFileOcrCacheEntity = firstocrCacheEntities.get(0);
String firstMdFileUrl = firstFileOcrCacheEntity.getMdFileUrl();
String firstJsonFileUrl = firstFileOcrCacheEntity.getJsonFileUrl();
if (StringUtils.isNotBlank(firstJsonFileUrl)) {
File file = DocumentLoad.downloadURLDocument(StringUtils.isBlank(firstJsonFileUrl) ? firstMdFileUrl : firstJsonFileUrl);
firstFileContent = DocumentLoad.documentToText(file);
}
BizAiDataAuditFileEntity secondAuditFileEntity = bizAiDataAuditFileService.get(secondFile);
bizFileOcrCacheEntity = new BizFileOcrCacheEntity();
bizFileOcrCacheEntity.setMd5(secondAuditFileEntity.getMd5());
List<BizFileOcrCacheEntity> secondOcrCacheEntities = bizFileOcrCacheService.findByExample(bizFileOcrCacheEntity, null);
BizFileOcrCacheEntity secondFileOcrCacheEntity = secondOcrCacheEntities.get(0);
String secondMdFileUrl = firstFileOcrCacheEntity.getMdFileUrl();
String secondJsonFileUrl = firstFileOcrCacheEntity.getJsonFileUrl();
if (StringUtils.isNotBlank(secondJsonFileUrl)) {
File file = DocumentLoad.downloadURLDocument(StringUtils.isBlank(secondJsonFileUrl) ? secondMdFileUrl : secondJsonFileUrl);
secondFileContent = DocumentLoad.documentToText(file);
}
// 执行工作流
Map<String, Object> inputs = new LinkedHashMap<>();
inputs.put("rule", ruleDesc);
inputs.put("doc1", firstFileContent);
inputs.put("doc2", secondFileContent);
inputs.put("filed_1", firstField);
inputs.put("filed_2", secondField);
// 创建聊天客户端
DifyChatClient chatClient = DifyClientFactory.createChatClient(DIFY_BASE_URL, "app-1MRun3ecfLOzFS96xcWYCOOX");
// 创建聊天消息
ChatMessage message = ChatMessage.builder()
.query("run")
.user("0")
.inputs(inputs)
.conversationId(StringUtils.EMPTY)
.responseMode(ResponseMode.BLOCKING)
.build();
// 发送消息并获取响应
ChatMessageResponse response = chatClient.sendChatMessage(message);
String result = response.getAnswer();
results.add(result);
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
countDownLatch.countDown();
}
});
}
// 字段对文件
private void c2f(AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<String> results, CountDownLatch countDownLatch) {
countDownLatch.countDown();
}
// 文件对文件
private void f2f(AiDataAuditRuleQueryItem aiDataAuditRuleQueryItem, List<String> results, CountDownLatch countDownLatch) {
countDownLatch.countDown();
}
}
package cn.com.poc.message.service.impl;
import cn.com.poc.message.entity.AirportPDFPaperMessage;
import cn.com.poc.message.service.AirportProducerService;
import cn.com.poc.message.topic.AirportTopic;
import cn.com.yict.framemax.tumbleweed.client.annotation.Producer;
import org.springframework.stereotype.Service;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public class AirportProducerServiceImpl implements AirportProducerService {
@Override
@Producer(topic = AirportTopic.AIRPORT_PDF_PAPER_TOPIC)
public AirportPDFPaperMessage pdfPaper(AirportPDFPaperMessage message) {
return message;
}
}
package cn.com.poc.message.service.impl;
import cn.com.poc.common.model.BizFileUploadRecordModel;
import cn.com.poc.common.service.BizFileUploadRecordService;
import cn.com.poc.common.service.BosConfigService;
import cn.com.poc.common.utils.DocumentLoad;
import cn.com.poc.common.utils.MD2Json;
import cn.com.poc.common.utils.UUIDTool;
import cn.com.poc.message.entity.OCRMessage;
import cn.com.poc.message.entity.OCRStatusMessage;
import cn.com.poc.message.service.OCRConsumerService;
import cn.com.poc.message.service.OCRProducerService;
import cn.com.poc.message.topic.OCRTopic;
import cn.com.poc.ocr.entity.BizFileOcrCacheEntity;
import cn.com.poc.ocr.service.BizFileOcrCacheService;
import cn.com.poc.thirdparty.resource.minerU.MinerUResponse;
import cn.com.poc.thirdparty.resource.minerU.api.MinerUAPI;
import cn.com.yict.framemax.tumbleweed.client.annotation.Consumer;
import cn.hutool.core.io.FileUtil;
import cn.hutool.crypto.digest.MD5;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public class OCRConsumerServiceImpl implements OCRConsumerService {
private Logger logger = LoggerFactory.getLogger(OCRConsumerService.class);
@Resource
private MinerUAPI minerUAPI;
@Resource
private BizFileOcrCacheService bizFileOcrCacheService;
@Resource
private BosConfigService bosConfigService;
@Resource
private BizFileUploadRecordService bizFileUploadRecordService;
@Resource
private OCRProducerService ocrProducerService;
@Override
@Consumer(topic = OCRTopic.PARSE_PDF)
public void OCR(OCRMessage message) throws Exception {
OCRStatusMessage ocrStatusMessage = new OCRStatusMessage();
ocrStatusMessage.setId(message.getId());
ocrStatusMessage.setStatus("parsing");
ocrProducerService.updateStatus(ocrStatusMessage);
File file = DocumentLoad.downloadURLDocument(message.getFileURL());
MinerUResponse minerUResponse = new MinerUResponse();
minerUResponse.setFiles(file);
try {
Object o = minerUAPI.parsePDF(minerUResponse);
//
String md = "";
String json = MD2Json.md2json(md);
BizFileOcrCacheEntity updateEntity = bizFileOcrCacheService.get(message.getId());
updateEntity.setParseStatus("complete");
updateEntity.setJsonFileUrl(createFileAndUploadBos(md, "txt"));
updateEntity.setMdFileUrl(createFileAndUploadBos(md, "md"));
bizFileOcrCacheService.update(updateEntity);
} catch (Exception e) {
logger.error("----------- OCR 失败 {} ----------", e.getMessage());
OCRStatusMessage errorOcrStatusMessage = new OCRStatusMessage();
errorOcrStatusMessage.setId(message.getId());
errorOcrStatusMessage.setStatus("fail");
ocrProducerService.updateStatus(errorOcrStatusMessage);
}
}
@Override
@Consumer(topic = OCRTopic.UPDATE_STATUS)
public void updateStatus(OCRStatusMessage message) throws Exception {
logger.info("update ocr status , id:{} , status:{}", message.getId(), message.getStatus());
BizFileOcrCacheEntity bizFileOcrCacheEntity = bizFileOcrCacheService.get(message.getId());
bizFileOcrCacheEntity.setParseStatus(message.getStatus());
bizFileOcrCacheService.update(bizFileOcrCacheEntity);
}
private String createFileAndUploadBos(String content, String suffix) throws IOException {
String fileName = UUIDTool.getUUID();
File tempFile = File.createTempFile(fileName, suffix);
FileOutputStream fileOutputStream = new FileOutputStream(tempFile);
fileOutputStream.write(content.getBytes());
fileOutputStream.flush();
BufferedInputStream inputStream = FileUtil.getInputStream(tempFile);
byte[] bytes = new byte[inputStream.available()];
inputStream.read(bytes);
String md5 = MD5.create().digestHex(bytes);
String upload = bosConfigService.upload(inputStream, fileName, null);
BizFileUploadRecordModel bizFileUploadRecordModel = new BizFileUploadRecordModel();
bizFileUploadRecordModel.setFileName(fileName);
bizFileUploadRecordModel.setFileUrl(upload);
bizFileUploadRecordModel.setMd5(md5);
bizFileUploadRecordModel.setCoverSheetUrl("");
bizFileUploadRecordService.save(bizFileUploadRecordModel);
fileOutputStream.close();
inputStream.close();
tempFile.delete();
return upload;
}
}
package cn.com.poc.message.service.impl;
import cn.com.poc.message.entity.OCRMessage;
import cn.com.poc.message.entity.OCRStatusMessage;
import cn.com.poc.message.service.OCRProducerService;
import cn.com.poc.message.topic.OCRTopic;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.yict.framemax.tumbleweed.client.annotation.Producer;
import cn.com.yict.framemax.tumbleweed.constant.PublishPoint;
import org.springframework.stereotype.Service;
/**
* @author alex.yao
* @date 2025/10/30
*/
@Service
public class OCRProducerServiceImpl implements OCRProducerService {
@Override
@Producer(topic = OCRTopic.PARSE_PDF)
public OCRMessage OCR(OCRMessage message) {
return message;
}
@Override
@Producer(topic = OCRTopic.UPDATE_STATUS, publishPoint = PublishPoint.PUBLISH_REAL_TIME)
public OCRStatusMessage updateStatus(OCRStatusMessage message) {
return message;
}
}
package cn.com.poc.message.topic;
/**
* @author alex.yao
* @date 2025/10/30
*/
public interface AirportTopic {
String AIRPORT_PDF_PAPER_TOPIC = "AIRPORT_PDF_PAPER_TOPIC";
}
package cn.com.poc.message.topic;
/**
* @author alex.yao
* @date 2025/10/30
*/
public interface OCRTopic {
String PARSE_PDF = "PARSE_PDF";
String UPDATE_STATUS = "UPDATE_STATUS";
}
package cn.com.poc.ocr.convert;
import cn.com.poc.ocr.model.BizFileOcrCacheModel;
import cn.com.poc.ocr.entity.BizFileOcrCacheEntity;
import cn.com.poc.ocr.dto.BizFileOcrCacheDto;
public class BizFileOcrCacheConvert {
public static BizFileOcrCacheEntity modelToEntity(BizFileOcrCacheModel model) {
BizFileOcrCacheEntity entity = new BizFileOcrCacheEntity();
entity.setId(model.getId());
entity.setMd5(model.getMd5());
entity.setParseStatus(model.getParseStatus());
entity.setFileUrl(model.getFileUrl());
entity.setMdFileUrl(model.getMdFileUrl());
entity.setJsonFileUrl(model.getJsonFileUrl());
entity.setIsDeleted(model.getIsDeleted());
entity.setCreator(model.getCreator());
entity.setCreatedTime(model.getCreatedTime());
entity.setModifier(model.getModifier());
entity.setModifiedTime(model.getModifiedTime());
entity.setSysVersion(model.getSysVersion());
return entity;
}
public static BizFileOcrCacheModel entityToModel(BizFileOcrCacheEntity entity) {
BizFileOcrCacheModel model = new BizFileOcrCacheModel();
model.setId(entity.getId());
model.setMd5(entity.getMd5());
model.setFileUrl(entity.getFileUrl());
model.setParseStatus(entity.getParseStatus());
model.setMdFileUrl(entity.getMdFileUrl());
model.setJsonFileUrl(entity.getJsonFileUrl());
model.setIsDeleted(entity.getIsDeleted());
model.setCreator(entity.getCreator());
model.setCreatedTime(entity.getCreatedTime());
model.setModifier(entity.getModifier());
model.setModifiedTime(entity.getModifiedTime());
model.setSysVersion(entity.getSysVersion());
return model;
}
public static BizFileOcrCacheDto entityToDto(BizFileOcrCacheEntity entity) {
BizFileOcrCacheDto dto = new BizFileOcrCacheDto();
dto.setId(entity.getId());
dto.setMd5(entity.getMd5());
dto.setFileUrl(entity.getFileUrl());
dto.setParseStatus(entity.getParseStatus());
dto.setMdFileUrl(entity.getMdFileUrl());
dto.setJsonFileUrl(entity.getJsonFileUrl());
dto.setIsDeleted(entity.getIsDeleted());
dto.setCreator(entity.getCreator());
dto.setCreatedTime(entity.getCreatedTime());
dto.setModifier(entity.getModifier());
dto.setModifiedTime(entity.getModifiedTime());
dto.setSysVersion(entity.getSysVersion());
return dto;
}
public static BizFileOcrCacheEntity dtoToEntity(BizFileOcrCacheDto dto) {
BizFileOcrCacheEntity entity = new BizFileOcrCacheEntity();
entity.setId(dto.getId());
entity.setMd5(dto.getMd5());
entity.setFileUrl(dto.getFileUrl());
entity.setParseStatus(dto.getParseStatus());
entity.setMdFileUrl(dto.getMdFileUrl());
entity.setJsonFileUrl(dto.getJsonFileUrl());
entity.setIsDeleted(dto.getIsDeleted());
entity.setCreator(dto.getCreator());
entity.setCreatedTime(dto.getCreatedTime());
entity.setModifier(dto.getModifier());
entity.setModifiedTime(dto.getModifiedTime());
entity.setSysVersion(dto.getSysVersion());
return entity;
}
}
\ No newline at end of file
package cn.com.poc.ocr.dto;
public class BizFileOcrCacheDto {
private static final long serialVersionUID = 1L;
/** id
*主键id
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** md5
*文件MD5
*/
private java.lang.String md5;
public java.lang.String getMd5(){
return this.md5;
}
public void setMd5(java.lang.String md5){
this.md5 = md5;
}
/**
* parse_status
* 解析状态 : create-已创建 queuing-排队中 parsing -解析中 complete-完成 fail-失败
*/
private String parseStatus;
public String getParseStatus() {
return parseStatus;
}
public void setParseStatus(String parseStatus) {
this.parseStatus = parseStatus;
}
/** file_url
*源文件地址
*/
private java.lang.String fileUrl;
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
}
/** md_file_url
*OCR后MD文件地址
*/
private java.lang.String mdFileUrl;
public java.lang.String getMdFileUrl(){
return this.mdFileUrl;
}
public void setMdFileUrl(java.lang.String mdFileUrl){
this.mdFileUrl = mdFileUrl;
}
/** json_file_url
*提取json后文件url
*/
private java.lang.String jsonFileUrl;
public java.lang.String getJsonFileUrl(){
return this.jsonFileUrl;
}
public void setJsonFileUrl(java.lang.String jsonFileUrl){
this.jsonFileUrl = jsonFileUrl;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.ocr.entity;
public class BizFileOcrCacheEntity {
private static final long serialVersionUID = 1L;
/** id
*主键id
*/
private java.lang.Long id;
public java.lang.Long getId(){
return this.id;
}
public void setId(java.lang.Long id){
this.id = id;
}
/** md5
*文件MD5
*/
private java.lang.String md5;
public java.lang.String getMd5(){
return this.md5;
}
public void setMd5(java.lang.String md5){
this.md5 = md5;
}
/**
* parse_status
* 解析状态 : create-已创建 queuing-排队中 parsing -解析中 complete-完成 fail-失败
*/
private String parseStatus;
public String getParseStatus() {
return parseStatus;
}
public void setParseStatus(String parseStatus) {
this.parseStatus = parseStatus;
}
/** file_url
*源文件地址
*/
private java.lang.String fileUrl;
public java.lang.String getFileUrl(){
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl){
this.fileUrl = fileUrl;
}
/** md_file_url
*OCR后MD文件地址
*/
private java.lang.String mdFileUrl;
public java.lang.String getMdFileUrl(){
return this.mdFileUrl;
}
public void setMdFileUrl(java.lang.String mdFileUrl){
this.mdFileUrl = mdFileUrl;
}
/** json_file_url
*提取json后文件url
*/
private java.lang.String jsonFileUrl;
public java.lang.String getJsonFileUrl(){
return this.jsonFileUrl;
}
public void setJsonFileUrl(java.lang.String jsonFileUrl){
this.jsonFileUrl = jsonFileUrl;
}
/** is_deleted
*是否删除 Y 是 N 否
*/
private java.lang.String isDeleted;
public java.lang.String getIsDeleted(){
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted){
this.isDeleted = isDeleted;
}
/** CREATOR
*创建人
*/
private java.lang.String creator;
public java.lang.String getCreator(){
return this.creator;
}
public void setCreator(java.lang.String creator){
this.creator = creator;
}
/** CREATED_TIME
*创建时间
*/
private java.util.Date createdTime;
public java.util.Date getCreatedTime(){
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime){
this.createdTime = createdTime;
}
/** MODIFIER
*修改人
*/
private java.lang.String modifier;
public java.lang.String getModifier(){
return this.modifier;
}
public void setModifier(java.lang.String modifier){
this.modifier = modifier;
}
/** MODIFIED_TIME
*修改时间
*/
private java.util.Date modifiedTime;
public java.util.Date getModifiedTime(){
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime){
this.modifiedTime = modifiedTime;
}
/** SYS_VERSION
*乐观锁,版本号
*/
private java.lang.Integer sysVersion;
public java.lang.Integer getSysVersion(){
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion){
this.sysVersion = sysVersion;
}
}
\ No newline at end of file
package cn.com.poc.ocr.model;
import java.io.Serializable;
import cn.com.yict.framemax.data.model.BaseModelClass;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Id;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import javax.persistence.Version;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
/**
* Model class for biz_file_ocr_cache
* 文件OCR结果缓存
*/
@Entity
@Table(name = "biz_file_ocr_cache")
@DynamicInsert
@DynamicUpdate
public class BizFileOcrCacheModel extends BaseModelClass implements Serializable {
private static final long serialVersionUID = 1L;
/**
* id
* 主键id
*/
private java.lang.Long id;
@Column(name = "id", length = 19)
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public java.lang.Long getId() {
return this.id;
}
public void setId(java.lang.Long id) {
this.id = id;
super.addValidField("id");
}
/**
* md5
* 文件MD5
*/
private java.lang.String md5;
@Column(name = "md5", length = 200)
public java.lang.String getMd5() {
return this.md5;
}
public void setMd5(java.lang.String md5) {
this.md5 = md5;
super.addValidField("md5");
}
/**
* parse_status
* 解析状态 : create-已创建 queuing-排队中 parsing -解析中 complete-完成 fail-失败
*/
private String parseStatus;
@Column(name = "parse_status", length = 10)
public String getParseStatus() {
return parseStatus;
}
public void setParseStatus(String parseStatus) {
this.parseStatus = parseStatus;
super.addValidField("parseStatus");
}
/**
* file_url
* 源文件地址
*/
private java.lang.String fileUrl;
@Column(name = "file_url", length = 200)
public java.lang.String getFileUrl() {
return this.fileUrl;
}
public void setFileUrl(java.lang.String fileUrl) {
this.fileUrl = fileUrl;
super.addValidField("fileUrl");
}
/**
* md_file_url
* OCR后MD文件地址
*/
private java.lang.String mdFileUrl;
@Column(name = "md_file_url", length = 200)
public java.lang.String getMdFileUrl() {
return this.mdFileUrl;
}
public void setMdFileUrl(java.lang.String mdFileUrl) {
this.mdFileUrl = mdFileUrl;
super.addValidField("mdFileUrl");
}
/**
* json_file_url
* 提取json后文件url
*/
private java.lang.String jsonFileUrl;
@Column(name = "json_file_url", length = 200)
public java.lang.String getJsonFileUrl() {
return this.jsonFileUrl;
}
public void setJsonFileUrl(java.lang.String jsonFileUrl) {
this.jsonFileUrl = jsonFileUrl;
super.addValidField("jsonFileUrl");
}
/**
* is_deleted
* 是否删除 Y 是 N 否
*/
private java.lang.String isDeleted;
@Column(name = "is_deleted", length = 1)
public java.lang.String getIsDeleted() {
return this.isDeleted;
}
public void setIsDeleted(java.lang.String isDeleted) {
this.isDeleted = isDeleted;
super.addValidField("isDeleted");
}
/**
* CREATOR
* 创建人
*/
private java.lang.String creator;
@Column(name = "CREATOR", length = 50)
public java.lang.String getCreator() {
return this.creator;
}
public void setCreator(java.lang.String creator) {
this.creator = creator;
super.addValidField("creator");
}
/**
* CREATED_TIME
* 创建时间
*/
private java.util.Date createdTime;
@Column(name = "CREATED_TIME", length = 19)
public java.util.Date getCreatedTime() {
return this.createdTime;
}
public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime;
super.addValidField("createdTime");
}
/**
* MODIFIER
* 修改人
*/
private java.lang.String modifier;
@Column(name = "MODIFIER", length = 50)
public java.lang.String getModifier() {
return this.modifier;
}
public void setModifier(java.lang.String modifier) {
this.modifier = modifier;
super.addValidField("modifier");
}
/**
* MODIFIED_TIME
* 修改时间
*/
private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME", length = 19)
public java.util.Date getModifiedTime() {
return this.modifiedTime;
}
public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime");
}
/**
* SYS_VERSION
* 乐观锁,版本号
*/
private java.lang.Integer sysVersion;
@Column(name = "SYS_VERSION", length = 10)
@Version
public java.lang.Integer getSysVersion() {
return this.sysVersion;
}
public void setSysVersion(java.lang.Integer sysVersion) {
this.sysVersion = sysVersion;
super.addValidField("sysVersion");
}
}
\ No newline at end of file
package cn.com.poc.ocr.repository;
import cn.com.yict.framemax.data.repository.Repository;
import cn.com.poc.ocr.model.BizFileOcrCacheModel;
public interface BizFileOcrCacheRepository extends Repository<BizFileOcrCacheModel,java.lang.Long> {
}
\ No newline at end of file
package cn.com.poc.ocr.rest;
import cn.com.yict.framemax.core.rest.BaseRest;
import cn.com.poc.ocr.dto.BizFileOcrCacheDto;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
import cn.com.yict.framemax.web.permission.Access;
import cn.com.yict.framemax.web.permission.Permission;
import org.springframework.web.bind.annotation.RequestBody;
public interface BizFileOcrCacheRest extends BaseRest {
BizFileOcrCacheDto getById(java.lang.Long id) throws Exception;
List<BizFileOcrCacheDto> getList(BizFileOcrCacheDto example,PagingInfo pagingInfo) throws Exception;
BizFileOcrCacheDto save(BizFileOcrCacheDto dto) throws Exception;
BizFileOcrCacheDto update(BizFileOcrCacheDto dto) throws Exception;
void deletedById(java.lang.Long id) throws Exception;
}
\ No newline at end of file
package cn.com.poc.ocr.rest.impl;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cn.com.poc.ocr.rest.BizFileOcrCacheRest;
import cn.com.poc.ocr.service.BizFileOcrCacheService;
import cn.com.poc.ocr.dto.BizFileOcrCacheDto;
import cn.com.poc.ocr.entity.BizFileOcrCacheEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import cn.com.poc.ocr.convert.BizFileOcrCacheConvert;
import java.util.stream.Collectors;
import org.springframework.util.Assert;
@Component
public class BizFileOcrCacheRestImpl implements BizFileOcrCacheRest {
@Resource
private BizFileOcrCacheService service;
public BizFileOcrCacheDto getById(java.lang.Long id) throws Exception{
Assert.notNull(id);
return BizFileOcrCacheConvert.entityToDto(service.get(id));
}
public List<BizFileOcrCacheDto> getList(BizFileOcrCacheDto dto,PagingInfo pagingInfo) throws Exception{
return service
.findByExample(BizFileOcrCacheConvert.dtoToEntity(dto),pagingInfo)
.stream()
.map(BizFileOcrCacheConvert::entityToDto)
.collect(Collectors.toList());
}
public BizFileOcrCacheDto save(BizFileOcrCacheDto dto) throws Exception{
Assert.notNull(dto);
BizFileOcrCacheEntity entity = BizFileOcrCacheConvert.dtoToEntity(dto);
return BizFileOcrCacheConvert.entityToDto(service.save(entity));
}
public BizFileOcrCacheDto update(BizFileOcrCacheDto dto) throws Exception{
Assert.notNull(dto);
BizFileOcrCacheEntity entity = BizFileOcrCacheConvert.dtoToEntity(dto);
return BizFileOcrCacheConvert.entityToDto(service.update(entity));
}
public void deletedById(java.lang.Long id) throws Exception{
Assert.notNull(id);
service.deletedById(id);
}
}
\ No newline at end of file
package cn.com.poc.ocr.scheduler;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.message.entity.OCRMessage;
import cn.com.poc.message.service.OCRProducerService;
import cn.com.poc.ocr.entity.BizFileOcrCacheEntity;
import cn.com.poc.ocr.service.BizFileOcrCacheService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
/**
* OCR服务
*
* @author alex.yao
* @date 2025/10/30
*/
@Component
public class OCRScheduler {
@Resource
private BizFileOcrCacheService bizFileOcrCacheService;
@Resource
private OCRProducerService ocrProducerService;
@Scheduled(fixedDelay = 10000)
public void taskStatusUpdate() throws Exception {
BizFileOcrCacheEntity bizFileOcrCacheEntity = new BizFileOcrCacheEntity();
bizFileOcrCacheEntity.setParseStatus("create");
bizFileOcrCacheEntity.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizFileOcrCacheEntity> fileOcrCacheEntities = bizFileOcrCacheService.findByExample(bizFileOcrCacheEntity, null);
if (CollectionUtils.isNotEmpty(fileOcrCacheEntities)) {
for (BizFileOcrCacheEntity fileOcrCacheEntity : fileOcrCacheEntities) {
if (fileOcrCacheEntity.getParseStatus().equals("create")) {
if (StringUtils.isBlank(fileOcrCacheEntity.getMdFileUrl())) {
fileOcrCacheEntity.setParseStatus("queuing");
bizFileOcrCacheService.update(fileOcrCacheEntity);
OCRMessage message = new OCRMessage();
message.setId(fileOcrCacheEntity.getId());
message.setFileURL(fileOcrCacheEntity.getFileUrl());
message.setMd5(fileOcrCacheEntity.getMd5());
ocrProducerService.OCR(message);
} else {
fileOcrCacheEntity.setParseStatus("complete");
bizFileOcrCacheService.update(fileOcrCacheEntity);
}
}
}
}
}
}
package cn.com.poc.ocr.service;
import cn.com.yict.framemax.core.service.BaseService;
import cn.com.poc.ocr.entity.BizFileOcrCacheEntity;
import cn.com.yict.framemax.data.model.PagingInfo;
import java.util.Collection;
import java.util.List;
public interface BizFileOcrCacheService extends BaseService {
BizFileOcrCacheEntity get(java.lang.Long id) throws Exception;
List<BizFileOcrCacheEntity> findByExample(BizFileOcrCacheEntity example,PagingInfo pagingInfo) throws Exception;
BizFileOcrCacheEntity save(BizFileOcrCacheEntity entity) throws Exception;
BizFileOcrCacheEntity update(BizFileOcrCacheEntity entity) throws Exception;
void deletedById(java.lang.Long id) throws Exception;
}
\ No newline at end of file
package cn.com.poc.ocr.service.impl;
import cn.com.yict.framemax.core.service.impl.BaseServiceImpl;
import cn.com.poc.ocr.service.BizFileOcrCacheService;
import cn.com.poc.ocr.model.BizFileOcrCacheModel;
import cn.com.poc.ocr.entity.BizFileOcrCacheEntity;
import cn.com.poc.ocr.convert.BizFileOcrCacheConvert;
import cn.com.poc.ocr.repository.BizFileOcrCacheRepository;
import cn.com.yict.framemax.data.model.PagingInfo;
import org.springframework.stereotype.Service;
import org.apache.commons.collections4.CollectionUtils;
import java.util.ArrayList;
import java.util.stream.Collectors;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.util.Assert;
@Service
public class BizFileOcrCacheServiceImpl extends BaseServiceImpl
implements BizFileOcrCacheService {
@Resource
private BizFileOcrCacheRepository repository;
public BizFileOcrCacheEntity get(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizFileOcrCacheModel model = this.repository.get(id);
if (model == null) {
return null;
}
if ("Y".equals(model.getIsDeleted())) {
return null;
}
return BizFileOcrCacheConvert.modelToEntity(model);
}
public List<BizFileOcrCacheEntity> findByExample(BizFileOcrCacheEntity example, PagingInfo pagingInfo) throws Exception {
List<BizFileOcrCacheEntity> result = new ArrayList<BizFileOcrCacheEntity>();
BizFileOcrCacheModel model = new BizFileOcrCacheModel();
if (example != null) {
model = BizFileOcrCacheConvert.entityToModel(example);
}
model.setIsDeleted("N");
List<BizFileOcrCacheModel> models = this.repository.findByExample(model, pagingInfo);
if (CollectionUtils.isNotEmpty(models)) {
result = models.stream().map(BizFileOcrCacheConvert::modelToEntity).collect(Collectors.toList());
}
return result;
}
public BizFileOcrCacheEntity save(BizFileOcrCacheEntity entity) throws Exception {
Assert.notNull(entity);
entity.setId(null);
entity.setIsDeleted("N");
BizFileOcrCacheModel model = BizFileOcrCacheConvert.entityToModel(entity);
BizFileOcrCacheModel saveModel = this.repository.save(model);
return BizFileOcrCacheConvert.modelToEntity(saveModel);
}
public BizFileOcrCacheEntity update(BizFileOcrCacheEntity entity) throws Exception {
Assert.notNull(entity);
Assert.notNull(entity.getId(), "update pk can not be null");
BizFileOcrCacheModel model = this.repository.get(entity.getId());
if (entity.getMd5() != null) {
model.setMd5(entity.getMd5());
}
if (entity.getFileUrl() != null) {
model.setFileUrl(entity.getFileUrl());
}
if (entity.getParseStatus() != null) {
model.setParseStatus(entity.getParseStatus());
}
if (entity.getMdFileUrl() != null) {
model.setMdFileUrl(entity.getMdFileUrl());
}
if (entity.getJsonFileUrl() != null) {
model.setJsonFileUrl(entity.getJsonFileUrl());
}
if (entity.getIsDeleted() != null) {
model.setIsDeleted(entity.getIsDeleted());
}
if (entity.getCreator() != null) {
model.setCreator(entity.getCreator());
}
if (entity.getCreatedTime() != null) {
model.setCreatedTime(entity.getCreatedTime());
}
if (entity.getModifier() != null) {
model.setModifier(entity.getModifier());
}
if (entity.getModifiedTime() != null) {
model.setModifiedTime(entity.getModifiedTime());
}
if (entity.getSysVersion() != null) {
model.setSysVersion(entity.getSysVersion());
}
BizFileOcrCacheModel saveModel = this.repository.save(model);
return BizFileOcrCacheConvert.modelToEntity(saveModel);
}
public void deletedById(java.lang.Long id) throws Exception {
Assert.notNull(id);
BizFileOcrCacheModel model = this.repository.get(id);
if (model != null) {
if ("N".equals(model.getIsDeleted())) {
model.setIsDeleted("Y");
this.repository.save(model);
}
}
}
}
\ No newline at end of file
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment