提交修改
This commit is contained in:
parent
a1d2904701
commit
7823246636
@ -0,0 +1,93 @@
|
||||
package com.heyu.api.controller.convert;
|
||||
|
||||
|
||||
import com.heyu.api.baidu.handle.convert.BDocConvertHandle;
|
||||
import com.heyu.api.baidu.handle.convert.BGetRequestResultHandle;
|
||||
import com.heyu.api.baidu.request.convert.BGetRequestResultRequest;
|
||||
import com.heyu.api.baidu.response.convert.BDocConvertResp;
|
||||
import com.heyu.api.baidu.response.convert.BGetRequestResultResp;
|
||||
import com.heyu.api.data.annotation.CacheResult;
|
||||
import com.heyu.api.data.annotation.NotIntercept;
|
||||
import com.heyu.api.data.utils.ApiR;
|
||||
import com.heyu.api.data.utils.R;
|
||||
import com.heyu.api.data.utils.StringUtils;
|
||||
import com.heyu.api.request.convert.DocConvertReq;
|
||||
import com.heyu.api.resp.convert.DocConvertRequestResp;
|
||||
import com.heyu.api.resp.convert.DocConvertResultResp;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/***
|
||||
* https://console.bce.baidu.com/support/?_=1740667714316×tamp=1742711719154#/api?product=AI&project=%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB&parent=%E6%99%BA%E8%83%BD%E6%96%87%E6%A1%A3%E5%88%86%E6%9E%90&api=rest%2F2.0%2Focr%2Fv1%2Fdoc_convert%2Frequest&method=post
|
||||
*
|
||||
*文档格式转换-提交请求
|
||||
*
|
||||
*
|
||||
* 接口描述
|
||||
* 原图文转换器API版产品,现已更名为「文档格式转换」。
|
||||
*
|
||||
* 可识别图片/PDF文档版面布局,提取文字内容,并转换为保留原文档版式的Word、Excel文档,方便二次编辑和复制,可支持含表格、印章、水印、手写等内容的文档。满足文档格式转换、企业档案电子化等信息管理需求。如需直接使用在线工具,可到智能文档分析平台-文档格式转换使用。在线工具和API版的额度为共享互通。
|
||||
*
|
||||
* 在线工具「智能文档分析平台-文档格式转换」已支持**「PDF -> 双层PDF/双层OFD」、「OFD -> 双层OFD/Word/Excel」** 转换类型,API版开发中,敬请期待。
|
||||
*
|
||||
* 文档格式转换API版为异步接口,需要先调用提交请求接口获取 task_id,然后调用获取结果接口进行结果轮询,建议提交请求后 5~10 秒轮询。
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/convert")
|
||||
@NotIntercept
|
||||
public class DocConvertController {
|
||||
|
||||
|
||||
@Autowired
|
||||
private BDocConvertHandle bDocConvertHandle;
|
||||
|
||||
|
||||
@Autowired
|
||||
private BGetRequestResultHandle bGetRequestResultHandle;
|
||||
|
||||
|
||||
@RequestMapping("/doc")
|
||||
@CacheResult
|
||||
public R doc(DocConvertReq request) {
|
||||
ApiR bR = null;
|
||||
if (StringUtils.isBlank(request.getTaskId())) {
|
||||
DocConvertResultResp resp = new DocConvertResultResp();
|
||||
BGetRequestResultRequest bGetRequestResultRequest = new BGetRequestResultRequest();
|
||||
bGetRequestResultRequest.setTaskId(request.getTaskId());
|
||||
bR = bGetRequestResultHandle.handle(bGetRequestResultRequest);
|
||||
|
||||
BGetRequestResultResp bGetRequestResultResp = (BGetRequestResultResp) bR.getData();
|
||||
BGetRequestResultResp.ResultDTO resultDTO = bGetRequestResultResp.getResult();
|
||||
resp.setTaskId(resultDTO.getTaskId());
|
||||
resp.setRetCode(resultDTO.getRetCode());
|
||||
resp.setRetMsg(resultDTO.getRetMsg());
|
||||
resp.setPercent(resultDTO.getPercent());
|
||||
resp.setCreateTime(resultDTO.getCreateTime());
|
||||
resp.setStartTime(resultDTO.getStartTime());
|
||||
resp.setEndTime(resultDTO.getEndTime());
|
||||
if (resultDTO.getResultData() != null) {
|
||||
resp.setExcel(resultDTO.getResultData().getExcel());
|
||||
resp.setWord(resultDTO.getResultData().getWord());
|
||||
}
|
||||
return R.ok().setData(resp);
|
||||
} else {
|
||||
DocConvertRequestResp resp = new DocConvertRequestResp();
|
||||
bR = bDocConvertHandle.handle(request);
|
||||
if (bR.isSuccess()) {
|
||||
BDocConvertResp bDocConvertResp = (BDocConvertResp) bR.getData();
|
||||
BDocConvertResp.ResultDTO resultDTO = bDocConvertResp.getResult();
|
||||
resp.setTaskId(resultDTO.getTaskId());
|
||||
return R.ok().setData(resp);
|
||||
}
|
||||
}
|
||||
return R.error(bR.getErrorMsg());
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,18 @@
|
||||
package com.heyu.api.request.convert;
|
||||
|
||||
|
||||
import com.heyu.api.baidu.request.convert.BDocConvertRequest;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DocConvertReq extends BDocConvertRequest {
|
||||
|
||||
|
||||
/***
|
||||
* 通过taskId 来拿数据
|
||||
*/
|
||||
private String taskId;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
package com.heyu.api.resp.convert;
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DocConvertRequestResp extends BaseResp {
|
||||
|
||||
/***
|
||||
* 任务id
|
||||
*/
|
||||
private String taskId;
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.heyu.api.resp.convert;
|
||||
|
||||
import com.heyu.api.data.dto.BaseResp;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class DocConvertResultResp extends BaseResp {
|
||||
|
||||
private String taskId; // 该文件对应请求的task_id
|
||||
private Integer retCode; // 识别状态,1:任务未开始;2:进行中;3:已完成
|
||||
private String retMsg; // 识别状态信息:任务未开始;进行中;已完成
|
||||
private Integer percent; // 文档转换进度(百分比)
|
||||
private String createTime; // 任务创建时间
|
||||
private String startTime; // 任务开始时间
|
||||
private String endTime; // 任务结束时间
|
||||
private String word; // 还原后的word文件的下载地址,文件识别失败时返回""
|
||||
private String excel; // 还原后的Excel文件的下载地址,若文档中没有表格则返回""
|
||||
|
||||
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user