提交修改

This commit is contained in:
quyixiao 2025-03-23 14:55:29 +08:00
parent a1d2904701
commit 7823246636
4 changed files with 144 additions and 0 deletions

View File

@ -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&timestamp=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文档版面布局提取文字内容并转换为保留原文档版式的WordExcel文档方便二次编辑和复制可支持含表格印章水印手写等内容的文档满足文档格式转换企业档案电子化等信息管理需求如需直接使用在线工具可到智能文档分析平台-文档格式转换使用在线工具和API版的额度为共享互通
*
* 在线工具智能文档分析平台-文档格式转换已支持**PDF -> 双层PDF/双层OFDOFD -> 双层OFD/Word/Excel** 转换类型API版开发中敬请期待
*
* 文档格式转换API版为异步接口需要先调用提交请求接口获取 task_id然后调用获取结果接口进行结果轮询建议提交请求后 510 秒轮询
*
*
*
*/
@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());
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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文件的下载地址若文档中没有表格则返回""
}