Commit da5a7be2 authored by alex yao's avatar alex yao

feat: 新增合同对比接口

parent 85628679
...@@ -16,6 +16,7 @@ public interface ContractConstants { ...@@ -16,6 +16,7 @@ public interface ContractConstants {
public interface ContractType{ public interface ContractType{
final static String contractExtract = "ContractExtract"; //审查 final static String contractExtract = "ContractExtract"; //审查
final static String contractReview = "ContractReview"; //对比 final static String contractReview = "ContractReview"; //对比
final static String contractTextdiff = "ContractTextdiff"; //对比
} }
......
...@@ -20,77 +20,98 @@ public class BizExtractionReviewTaskModel extends BaseModelClass implements Seri ...@@ -20,77 +20,98 @@ public class BizExtractionReviewTaskModel extends BaseModelClass implements Seri
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** id /**
* * id
*/ */
private Integer id; private Integer id;
@Column(name = "id",length = 10) @Column(name = "id", length = 10)
@Id @GeneratedValue(strategy = GenerationType.AUTO) @Id
public Integer getId(){ @GeneratedValue(strategy = GenerationType.AUTO)
public Integer getId() {
return this.id; return this.id;
} }
public void setId(Integer id){ public void setId(Integer id) {
this.id = id; this.id = id;
super.addValidField("id"); super.addValidField("id");
} }
/** task_id /**
*审查任务 * task_id
* 审查任务
*/ */
private String taskId; private String taskId;
@Column(name = "task_id",length = 100) @Column(name = "task_id", length = 100)
public String getTaskId(){ public String getTaskId() {
return this.taskId; return this.taskId;
} }
public void setTaskId(String taskId){ public void setTaskId(String taskId) {
this.taskId = taskId; this.taskId = taskId;
super.addValidField("taskId"); super.addValidField("taskId");
} }
/**
* user_id
* 用户ID
*/
private Long userId;
@Column(name = "user_id")
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
super.addValidField("userId");
}
/** file_url /**
*文件地址 * file_url
* 文件地址
*/ */
private String fileUrl; private String fileUrl;
@Column(name = "file_url",length = 120) @Column(name = "file_url", length = 120)
public String getFileUrl(){ public String getFileUrl() {
return this.fileUrl; return this.fileUrl;
} }
public void setFileUrl(String fileUrl){ public void setFileUrl(String fileUrl) {
this.fileUrl = fileUrl; this.fileUrl = fileUrl;
super.addValidField("fileUrl"); super.addValidField("fileUrl");
} }
/** file_name /**
*文件名 * file_name
* 文件名
*/ */
private String fileName; private String fileName;
@Column(name = "file_name",length = 100) @Column(name = "file_name", length = 100)
public String getFileName(){ public String getFileName() {
return this.fileName; return this.fileName;
} }
public void setFileName(String fileName){ public void setFileName(String fileName) {
this.fileName = fileName; this.fileName = fileName;
super.addValidField("fileName"); super.addValidField("fileName");
} }
/** actionType /**
*执行动作(审查,提取,对比) * actionType
* 执行动作(审查,提取,对比)
*/ */
private String actionType; private String actionType;
@Column(name = "action_type",length = 100) @Column(name = "action_type", length = 100)
public String getActionType() { public String getActionType() {
return actionType; return actionType;
} }
...@@ -101,162 +122,172 @@ public class BizExtractionReviewTaskModel extends BaseModelClass implements Seri ...@@ -101,162 +122,172 @@ public class BizExtractionReviewTaskModel extends BaseModelClass implements Seri
} }
/** review_status /**
*审核状态 RUN-审核中 END-已完成 FAIL-审核失败 * review_status
* 审核状态 RUN-审核中 END-已完成 FAIL-审核失败
*/ */
private String reviewStatus; private String reviewStatus;
@Column(name = "review_status",length = 10) @Column(name = "review_status", length = 10)
public String getReviewStatus(){ public String getReviewStatus() {
return this.reviewStatus; return this.reviewStatus;
} }
public void setReviewStatus(String reviewStatus){ public void setReviewStatus(String reviewStatus) {
this.reviewStatus = reviewStatus; this.reviewStatus = reviewStatus;
super.addValidField("reviewStatus"); super.addValidField("reviewStatus");
} }
/** review_error_msg /**
*审核异常消息 * review_error_msg
* 审核异常消息
*/ */
private String reviewErrorMsg; private String reviewErrorMsg;
@Column(name = "review_error_msg",length = 300) @Column(name = "review_error_msg", length = 300)
public String getReviewErrorMsg(){ public String getReviewErrorMsg() {
return this.reviewErrorMsg; return this.reviewErrorMsg;
} }
public void setReviewErrorMsg(String reviewErrorMsg){ public void setReviewErrorMsg(String reviewErrorMsg) {
this.reviewErrorMsg = reviewErrorMsg; this.reviewErrorMsg = reviewErrorMsg;
super.addValidField("reviewErrorMsg"); super.addValidField("reviewErrorMsg");
} }
/** text_in_task_id /**
*textIn的task_id * text_in_task_id
* textIn的task_id
*/ */
private String textInTaskId; private String textInTaskId;
@Column(name = "text_in_task_id",length = 120) @Column(name = "text_in_task_id", length = 120)
public String getTextInTaskId(){ public String getTextInTaskId() {
return this.textInTaskId; return this.textInTaskId;
} }
public void setTextInTaskId(String textInTaskId){ public void setTextInTaskId(String textInTaskId) {
this.textInTaskId = textInTaskId; this.textInTaskId = textInTaskId;
super.addValidField("textInTaskId"); super.addValidField("textInTaskId");
} }
/** contract_type /**
*合同类型 * contract_type
* 合同类型
*/ */
private String contractType; private String contractType;
@Column(name = "contract_type",length = 100) @Column(name = "contract_type", length = 100)
public String getContractType(){ public String getContractType() {
return this.contractType; return this.contractType;
} }
public void setContractType(String contractType){ public void setContractType(String contractType) {
this.contractType = contractType; this.contractType = contractType;
super.addValidField("contractType"); super.addValidField("contractType");
} }
/** is_deleted /**
*是否删除 1、Y 是 2、N 否 * is_deleted
* 是否删除 1、Y 是 2、N 否
*/ */
private String isDeleted; private String isDeleted;
@Column(name = "is_deleted",length = 1) @Column(name = "is_deleted", length = 1)
public String getIsDeleted(){ public String getIsDeleted() {
return this.isDeleted; return this.isDeleted;
} }
public void setIsDeleted(String isDeleted){ public void setIsDeleted(String isDeleted) {
this.isDeleted = isDeleted; this.isDeleted = isDeleted;
super.addValidField("isDeleted"); super.addValidField("isDeleted");
} }
/** CREATOR /**
*创建人 * CREATOR
* 创建人
*/ */
private String creator; private String creator;
@Column(name = "CREATOR",length = 225) @Column(name = "CREATOR", length = 225)
public String getCreator(){ public String getCreator() {
return this.creator; return this.creator;
} }
public void setCreator(String creator){ public void setCreator(String creator) {
this.creator = creator; this.creator = creator;
super.addValidField("creator"); super.addValidField("creator");
} }
/** CREATED_TIME /**
*创建时间 * CREATED_TIME
* 创建时间
*/ */
private java.util.Date createdTime; private java.util.Date createdTime;
@Column(name = "CREATED_TIME",length = 19) @Column(name = "CREATED_TIME", length = 19)
public java.util.Date getCreatedTime(){ public java.util.Date getCreatedTime() {
return this.createdTime; return this.createdTime;
} }
public void setCreatedTime(java.util.Date createdTime){ public void setCreatedTime(java.util.Date createdTime) {
this.createdTime = createdTime; this.createdTime = createdTime;
super.addValidField("createdTime"); super.addValidField("createdTime");
} }
/** MODIFIER /**
*修改人 * MODIFIER
* 修改人
*/ */
private String modifier; private String modifier;
@Column(name = "MODIFIER",length = 225) @Column(name = "MODIFIER", length = 225)
public String getModifier(){ public String getModifier() {
return this.modifier; return this.modifier;
} }
public void setModifier(String modifier){ public void setModifier(String modifier) {
this.modifier = modifier; this.modifier = modifier;
super.addValidField("modifier"); super.addValidField("modifier");
} }
/** MODIFIED_TIME /**
*修改时间 * MODIFIED_TIME
* 修改时间
*/ */
private java.util.Date modifiedTime; private java.util.Date modifiedTime;
@Column(name = "MODIFIED_TIME",length = 19) @Column(name = "MODIFIED_TIME", length = 19)
public java.util.Date getModifiedTime(){ public java.util.Date getModifiedTime() {
return this.modifiedTime; return this.modifiedTime;
} }
public void setModifiedTime(java.util.Date modifiedTime){ public void setModifiedTime(java.util.Date modifiedTime) {
this.modifiedTime = modifiedTime; this.modifiedTime = modifiedTime;
super.addValidField("modifiedTime"); super.addValidField("modifiedTime");
} }
/** SYS_VERSION /**
*乐观锁,版本号 * SYS_VERSION
* 乐观锁,版本号
*/ */
private Integer sysVersion; private Integer sysVersion;
@Column(name = "SYS_VERSION",length = 10) @Column(name = "SYS_VERSION", length = 10)
@Version @Version
public Integer getSysVersion(){ public Integer getSysVersion() {
return this.sysVersion; return this.sysVersion;
} }
public void setSysVersion(Integer sysVersion){ public void setSysVersion(Integer sysVersion) {
this.sysVersion = sysVersion; this.sysVersion = sysVersion;
super.addValidField("sysVersion"); super.addValidField("sysVersion");
} }
......
...@@ -12,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -12,7 +12,7 @@ import org.springframework.web.multipart.MultipartFile;
* @author alex.yao * @author alex.yao
* @date 2025/6/25 * @date 2025/6/25
*/ */
@Permission(Access.Anonymous) @Permission(Access.Safety)
public interface TextDiffRest extends BaseRest { public interface TextDiffRest extends BaseRest {
/** /**
...@@ -46,7 +46,7 @@ public interface TextDiffRest extends BaseRest { ...@@ -46,7 +46,7 @@ public interface TextDiffRest extends BaseRest {
/** /**
* 查询任务状态 * 查询任务状态
*/ */
String queryTextDiffTask(@RequestParam String taskId); String queryTextDiffTask(@RequestParam String taskId) throws Exception;
} }
package cn.com.poc.covenant.rest.impl; package cn.com.poc.covenant.rest.impl;
import cn.com.poc.common.utils.Assert; import cn.com.poc.common.utils.Assert;
import cn.com.poc.common.utils.BlContext;
import cn.com.poc.common.utils.FileUtils; import cn.com.poc.common.utils.FileUtils;
import cn.com.poc.covenant.rest.TextDiffRest; import cn.com.poc.covenant.rest.TextDiffRest;
import cn.com.poc.support.security.oauth.entity.UserBaseEntity;
import cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult; import cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult;
import cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService; import cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService;
import cn.com.yict.framemax.core.exception.BusinessException;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
...@@ -24,14 +27,22 @@ public class TextDiffRestImpl implements TextDiffRest { ...@@ -24,14 +27,22 @@ public class TextDiffRestImpl implements TextDiffRest {
public String textDiff(MultipartFile baseFile, MultipartFile compareFile) { public String textDiff(MultipartFile baseFile, MultipartFile compareFile) {
Assert.notNull(baseFile, "Base file cannot be null"); Assert.notNull(baseFile, "Base file cannot be null");
Assert.notNull(compareFile, "Compare file cannot be null"); Assert.notNull(compareFile, "Compare file cannot be null");
return baiduTextDiffService.textDiff(baseFile, compareFile, null); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity != null) {
throw new BusinessException("用户未登录");
}
return baiduTextDiffService.textDiff(baseFile, compareFile, null, userBaseEntity.getUserId());
} }
@Override @Override
public String textDiffByUrl(String baseFileUrl, String compareFileUrl) { public String textDiffByUrl(String baseFileUrl, String compareFileUrl) {
Assert.notNull(baseFileUrl, "Base file cannot be null"); Assert.notNull(baseFileUrl, "Base file cannot be null");
Assert.notNull(compareFileUrl, "Compare file cannot be null"); Assert.notNull(compareFileUrl, "Compare file cannot be null");
return baiduTextDiffService.textDiff(baseFileUrl, compareFileUrl, null); UserBaseEntity userBaseEntity = BlContext.getCurrentUserNotException();
if (userBaseEntity != null) {
throw new BusinessException("用户未登录");
}
return baiduTextDiffService.textDiff(baseFileUrl, compareFileUrl, null, userBaseEntity.getUserId());
} }
@Override @Override
...@@ -41,9 +52,8 @@ public class TextDiffRestImpl implements TextDiffRest { ...@@ -41,9 +52,8 @@ public class TextDiffRestImpl implements TextDiffRest {
} }
@Override @Override
public String queryTextDiffTask(String taskId) { public String queryTextDiffTask(String taskId) throws Exception {
Assert.notBlank(taskId, "Task ID cannot be blank"); Assert.notBlank(taskId, "Task ID cannot be blank");
BaiduTextDiffQueryResult baiduTextDiffQueryResult = baiduTextDiffService.queryTextDiffTask(taskId); return baiduTextDiffService.queryTextDiffTask(taskId);
return baiduTextDiffQueryResult.getResult().getStatus();
} }
} }
package cn.com.poc.covenant.scheduler; package cn.com.poc.covenant.scheduler;
import cn.com.poc.common.constant.CommonConstant; import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.covenant.constants.ContractConstants; import cn.com.poc.covenant.constants.ContractConstants;
import cn.com.poc.covenant.model.BizExtractionReviewTaskModel; import cn.com.poc.covenant.model.BizExtractionReviewTaskModel;
import cn.com.poc.covenant.service.BizExtractionReviewTaskService; import cn.com.poc.covenant.service.BizExtractionReviewTaskService;
import cn.com.poc.thirdparty.resource.baidu.api.BaiduTokenAPI; import cn.com.poc.thirdparty.resource.baidu.api.BaiduTokenAPI;
import cn.com.poc.thirdparty.resource.baidu.api.TextReviewApi; import cn.com.poc.thirdparty.resource.baidu.api.TextReviewApi;
import cn.com.poc.thirdparty.resource.baidu.entity.response.TextReviewResultQueryResponse; import cn.com.poc.thirdparty.resource.baidu.entity.response.TextReviewResultQueryResponse;
import cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult;
import cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService;
import cn.com.poc.thirdparty.resource.text_in.api.TextInClient; import cn.com.poc.thirdparty.resource.text_in.api.TextInClient;
import cn.com.poc.thirdparty.resource.text_in.entity.extraction.entity.ExtractionResult; import cn.com.poc.thirdparty.resource.text_in.entity.extraction.entity.ExtractionResult;
import cn.com.yict.framemax.frame.service.FmxParamConfigService; import cn.com.yict.framemax.frame.service.FmxParamConfigService;
...@@ -35,6 +38,9 @@ public class ExtractionReviewScheduler { ...@@ -35,6 +38,9 @@ public class ExtractionReviewScheduler {
@Resource @Resource
private BaiduTokenAPI baiduTokenAPI; private BaiduTokenAPI baiduTokenAPI;
@Resource
private BaiduTextDiffService baiduTextDiffService;
@Scheduled(cron = "0 0/1 * * * ?") @Scheduled(cron = "0 0/1 * * * ?")
public void extraction() throws Exception { public void extraction() throws Exception {
// 执行任务 // 执行任务
...@@ -93,4 +99,26 @@ public class ExtractionReviewScheduler { ...@@ -93,4 +99,26 @@ public class ExtractionReviewScheduler {
bizExtractionReviewTaskService.saveAll(models); bizExtractionReviewTaskService.saveAll(models);
} }
} }
/**
* 文本对比任务查询
* pending:排队中;processing:运行中;success:成功;failed:失败
*
* @throws Exception
*/
@Scheduled(cron = "0 0/1 * * * ?")
public void textDiffTaskQuery() throws Exception {
// 执行任务
BizExtractionReviewTaskModel bizExtractionReviewTaskModel = new BizExtractionReviewTaskModel();
bizExtractionReviewTaskModel.setReviewStatus("RUN");
bizExtractionReviewTaskModel.setActionType(ContractConstants.ActionType.textdiff);
bizExtractionReviewTaskModel.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizExtractionReviewTaskModel> models = bizExtractionReviewTaskService.findByExample(bizExtractionReviewTaskModel, null);
if (CollectionUtils.isNotEmpty(models)) {
for (BizExtractionReviewTaskModel model : models) {
baiduTextDiffService.queryTextDiffTask(model.getTaskId());
}
}
}
} }
package cn.com.poc.thirdparty.resource.baidu.service; package cn.com.poc.thirdparty.resource.baidu.service;
import cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse; import cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse;
import cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.File;
/** /**
* @author alex.yao * @author alex.yao
* @date 2025/6/25 * @date 2025/6/25
...@@ -20,7 +17,7 @@ public interface BaiduTextDiffService { ...@@ -20,7 +17,7 @@ public interface BaiduTextDiffService {
* @param param 参数 * @param param 参数
* @return taskId - 任务ID * @return taskId - 任务ID
*/ */
String textDiff(MultipartFile baseFile, MultipartFile compareFile, BaiduTextDiffResponse.Param param); String textDiff(MultipartFile baseFile, MultipartFile compareFile, BaiduTextDiffResponse.Param param, Long userId);
/** /**
* 文档比对任务创建接口 * 文档比对任务创建接口
...@@ -30,15 +27,16 @@ public interface BaiduTextDiffService { ...@@ -30,15 +27,16 @@ public interface BaiduTextDiffService {
* @param param 参数 * @param param 参数
* @return taskId - 任务ID * @return taskId - 任务ID
*/ */
String textDiff(String baseFileUrl, String compareFileUrl, BaiduTextDiffResponse.Param param); @Deprecated
String textDiff(String baseFileUrl, String compareFileUrl, BaiduTextDiffResponse.Param param, Long userId);
/** /**
* 查询文档比对任务结果 * 查询文档比对任务结果
* *
* @param taskId 任务ID * @param taskId 任务ID
* @return BaiduTextDiffQueryResult - 文档比对任务结果对象 * @return 文档比对任务结果
*/ */
BaiduTextDiffQueryResult queryTextDiffTask(String taskId); String queryTextDiffTask(String taskId) throws Exception;
/** /**
* 获取前端SDK渲染 * 获取前端SDK渲染
......
package cn.com.poc.thirdparty.resource.baidu.service.impl; package cn.com.poc.thirdparty.resource.baidu.service.impl;
import cn.com.poc.common.constant.CommonConstant;
import cn.com.poc.common.service.BizFileUploadRecordService;
import cn.com.poc.common.utils.StringUtils; import cn.com.poc.common.utils.StringUtils;
import cn.com.poc.covenant.constants.ContractConstants;
import cn.com.poc.covenant.model.BizExtractionReviewTaskModel;
import cn.com.poc.covenant.service.BizExtractionReviewTaskService;
import cn.com.poc.thirdparty.resource.baidu.api.BaiduTextDiffApi; import cn.com.poc.thirdparty.resource.baidu.api.BaiduTextDiffApi;
import cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse; import cn.com.poc.thirdparty.resource.baidu.entity.response.BaiduTextDiffResponse;
import cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult; import cn.com.poc.thirdparty.resource.baidu.entity.response.text_diff.BaiduTextDiffQueryResult;
...@@ -8,6 +13,7 @@ import cn.com.poc.thirdparty.resource.baidu.entity.result.BaiduTextDiffResult; ...@@ -8,6 +13,7 @@ import cn.com.poc.thirdparty.resource.baidu.entity.result.BaiduTextDiffResult;
import cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService; import cn.com.poc.thirdparty.resource.baidu.service.BaiduTextDiffService;
import cn.com.poc.thirdparty.resource.baidu.service.BaiduTokenService; import cn.com.poc.thirdparty.resource.baidu.service.BaiduTokenService;
import cn.com.yict.framemax.core.exception.BusinessException; import cn.com.yict.framemax.core.exception.BusinessException;
import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
...@@ -15,6 +21,7 @@ import org.springframework.stereotype.Service; ...@@ -15,6 +21,7 @@ import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
/** /**
* @author alex.yao * @author alex.yao
...@@ -38,22 +45,60 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService { ...@@ -38,22 +45,60 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
@Resource @Resource
private BaiduTokenService baiduTokenService; private BaiduTokenService baiduTokenService;
@Resource
private BizFileUploadRecordService bizFileUploadRecordService;
@Resource
private BizExtractionReviewTaskService bizExtractionReviewTaskService;
@Override @Override
public String textDiff(MultipartFile baseFile, MultipartFile compareFile, BaiduTextDiffResponse.Param param) { public String textDiff(MultipartFile baseFile, MultipartFile compareFile, BaiduTextDiffResponse.Param param, Long userId) {
BaiduTextDiffResponse baiduTextDiffResponse = new BaiduTextDiffResponse(); BaiduTextDiffResponse baiduTextDiffResponse = new BaiduTextDiffResponse();
baiduTextDiffResponse.setBaseFile(baseFile); baiduTextDiffResponse.setBaseFile(baseFile);
baiduTextDiffResponse.setCompareFile(compareFile); baiduTextDiffResponse.setCompareFile(compareFile);
baiduTextDiffResponse.setParam(param); baiduTextDiffResponse.setParam(param);
return createTextDiffTask(baiduTextDiffResponse, baiduTokenService.getToken(clientId, clientSecret)); try {
String taskId = createTextDiffTask(baiduTextDiffResponse, baiduTokenService.getToken(clientId, clientSecret));
BizExtractionReviewTaskModel bizExtractionReviewTaskModel = new BizExtractionReviewTaskModel();
bizExtractionReviewTaskModel.setTaskId(taskId);
bizExtractionReviewTaskModel.setFileUrl(null);
bizExtractionReviewTaskModel.setUserId(userId);
bizExtractionReviewTaskModel.setFileName(baseFile.getOriginalFilename());
bizExtractionReviewTaskModel.setActionType(ContractConstants.ActionType.textdiff);
bizExtractionReviewTaskModel.setReviewStatus("RUN");
bizExtractionReviewTaskModel.setContractType(ContractConstants.ContractType.contractTextdiff);
bizExtractionReviewTaskService.save(bizExtractionReviewTaskModel);
return taskId;
} catch (Exception e) {
logger.error("保存任务失败", e);
throw new BusinessException("保存任务失败");
}
} }
@Override @Override
public String textDiff(String baseFileUrl, String compareFileUrl, BaiduTextDiffResponse.Param param) { public String textDiff(String baseFileUrl, String compareFileUrl, BaiduTextDiffResponse.Param param, Long userId) {
BaiduTextDiffResponse baiduTextDiffResponse = new BaiduTextDiffResponse(); BaiduTextDiffResponse baiduTextDiffResponse = new BaiduTextDiffResponse();
baiduTextDiffResponse.setBaseFileURL(baseFileUrl); baiduTextDiffResponse.setBaseFileURL(baseFileUrl);
baiduTextDiffResponse.setCompareFileURL(compareFileUrl); baiduTextDiffResponse.setCompareFileURL(compareFileUrl);
baiduTextDiffResponse.setParam(param); baiduTextDiffResponse.setParam(param);
return createTextDiffTask(baiduTextDiffResponse, baiduTokenService.getToken(clientId, clientSecret));
String taskId = createTextDiffTask(baiduTextDiffResponse, baiduTokenService.getToken(clientId, clientSecret));
try {
BizExtractionReviewTaskModel bizExtractionReviewTaskModel = new BizExtractionReviewTaskModel();
bizExtractionReviewTaskModel.setTaskId(taskId);
bizExtractionReviewTaskModel.setFileUrl(baseFileUrl);
bizExtractionReviewTaskModel.setUserId(userId);
bizExtractionReviewTaskModel.setFileName(bizFileUploadRecordService.getFileNameByFileUrl(baseFileUrl));
bizExtractionReviewTaskModel.setActionType(ContractConstants.ActionType.textdiff);
bizExtractionReviewTaskModel.setReviewStatus("RUN");
bizExtractionReviewTaskModel.setContractType(ContractConstants.ContractType.contractTextdiff);
bizExtractionReviewTaskService.save(bizExtractionReviewTaskModel);
} catch (Exception e) {
logger.error("保存任务失败", e);
throw new BusinessException("保存任务失败");
}
return taskId;
} }
private String createTextDiffTask(BaiduTextDiffResponse baiduTextDiffResponse, String token) { private String createTextDiffTask(BaiduTextDiffResponse baiduTextDiffResponse, String token) {
...@@ -70,7 +115,18 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService { ...@@ -70,7 +115,18 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
} }
@Override @Override
public BaiduTextDiffQueryResult queryTextDiffTask(String taskId) { public String queryTextDiffTask(String taskId) throws Exception {
BizExtractionReviewTaskModel bizExtractionReviewTaskModel = new BizExtractionReviewTaskModel();
bizExtractionReviewTaskModel.setTaskId(taskId);
bizExtractionReviewTaskModel.setActionType(ContractConstants.ActionType.textdiff);
bizExtractionReviewTaskModel.setIsDeleted(CommonConstant.IsDeleted.N);
List<BizExtractionReviewTaskModel> models = bizExtractionReviewTaskService.findByExample(bizExtractionReviewTaskModel, null);
if (CollectionUtils.isEmpty(models)) {
throw new BusinessException("任务不存在");
}
BizExtractionReviewTaskModel taskModel = models.get(0);
String status = StringUtils.EMPTY;
if ("RUN".equals(taskModel.getReviewStatus())) {
String token = baiduTokenService.getToken(clientId, clientSecret); String token = baiduTokenService.getToken(clientId, clientSecret);
BaiduTextDiffQueryResult baiduTextDiffQueryResult = baiduTextDiffApi.queryTask(taskId, token); BaiduTextDiffQueryResult baiduTextDiffQueryResult = baiduTextDiffApi.queryTask(taskId, token);
if (baiduTextDiffQueryResult == null || !baiduTextDiffQueryResult.getError_code().equals(0)) { if (baiduTextDiffQueryResult == null || !baiduTextDiffQueryResult.getError_code().equals(0)) {
...@@ -81,7 +137,20 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService { ...@@ -81,7 +137,20 @@ public class BaiduTextDiffServiceImpl implements BaiduTextDiffService {
} }
throw new BusinessException("查询文档对比任务失败"); throw new BusinessException("查询文档对比任务失败");
} }
return baiduTextDiffQueryResult;
if ("success".equals(baiduTextDiffQueryResult.getResult().getStatus())) {
taskModel.setReviewStatus("END");
bizExtractionReviewTaskService.save(taskModel);
status = "END";
} else if ("failed".equals(baiduTextDiffQueryResult.getResult().getStatus())) {
taskModel.setReviewStatus("FAIL");
bizExtractionReviewTaskService.save(taskModel);
status = "FAIL";
} else {
status = "RUN";
}
}
return status;
} }
@Override @Override
......
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