本文档引用的文件
本API文档详细描述了专利导入导出系统的功能,包括批量导入、导入状态查询和专利数据导出等核心功能。系统采用异步任务处理机制,支持多种数据源类型的导入和多种格式的导出,为用户提供灵活的专利数据管理能力。
系统提供了三个主要的API端点来支持专利导入导出功能:
这些端点通过ImportTaskController和PatentController实现,采用RESTful设计风格,返回标准的JSON响应格式。
Section sources
导入任务通过ImportTaskDTO对象进行配置,该对象包含了导入任务的所有必要参数。
ImportTaskDTO是导入任务的核心数据传输对象,包含以下关键字段:
系统在导入过程中会自动处理重复数据。当ifUpdate参数为true时,系统会更新现有记录;当为false时,会跳过已存在的记录。对于专利号导入,系统会检查专利号的唯一性,避免重复导入相同的专利。
Section sources
系统支持将专利数据导出为多种格式,包括Excel和PDF首页。
导出功能支持高度自定义,用户可以通过PatentExportVO对象指定需要导出的字段。每个PatentExportVO包含以下属性:
用户可以自由选择需要导出的字段,并设置它们的显示顺序。
Section sources
系统采用异步任务处理机制来处理耗时的导入导出操作,确保API响应的及时性。
导入导出任务遵循以下生命周期:
系统通过WebSocket和轮询两种方式提供进度查询:
任务状态包括:
进度信息通过ImportTaskAMVO对象提供,包含总条数(allNum)、完成条数(doneNum)和失败条数(defaultNum)等统计信息。
sequenceDiagram
participant Client as "客户端"
participant Controller as "控制器"
participant Service as "服务层"
participant TaskManager as "任务管理器"
participant WebSocket as "WebSocket服务"
Client->>Controller : POST /importTask/create
Controller->>Service : 创建导入任务
Service->>TaskManager : 添加任务到队列
TaskManager-->>Service : 返回任务ID
Service-->>Controller : 返回成功响应
Controller-->>Client : 返回任务ID
loop 任务执行
TaskManager->>TaskManager : 处理任务
TaskManager->>WebSocket : 发送进度更新
WebSocket->>Client : 推送进度
end
TaskManager->>Service : 更新任务状态
Service->>TaskManager : 任务完成
Diagram sources
Section sources
系统定义了详细的错误码体系,用于处理各种异常情况。
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 202 | 参数错误 | 请求参数验证失败 |
| 203 | 检索式错误 | 检索条件格式错误 |
| 401 | 未登录 | 用户未登录或会话过期 |
| 500 | 系统异常 | 服务器内部错误 |
| 708 | 请求失败 | 业务逻辑处理失败 |
| 999999 | 系统异常 | 系统级异常 |
当上传的文件格式不符合要求时,系统会返回参数错误(202)或业务错误(708)。对于Excel文件,系统会验证文件结构和数据格式;对于PDF文件,会验证文件的完整性和可读性。
导入失败可能由多种原因引起:
系统会记录详细的错误日志,用户可以通过查询接口获取具体的错误信息。
由于专利数据量可能很大,导出操作可能需要较长时间。系统设置了合理的超时机制:
当任务超时时,系统会自动终止任务并返回超时错误,同时保留已处理的数据。
Section sources
以下示例展示了如何使用API完成完整的导入导出流程。
curl -X POST "http://localhost:8080/api/importTask/addImportTask" \
-H "Content-Type: application/json" \
-d '{
"importToId": 123,
"importToType": 0,
"type": 1,
"ifUpdate": true,
"searchCondition": "",
"fileGuid": "abc123",
"sourceId": 1,
"DBType": "CN"
}'
curl -X GET "http://localhost:8080/api/importTask/status?taskId=456"
curl -X POST "http://localhost:8080/api/patent/exportPatentExcel" \
-H "Content-Type: application/json" \
-d '{
"projectId": 123,
"EsVO": {
"projectId": 123,
"selectedFields": ["appNo", "title", "abstract"]
}
}'
Section sources
| 状态码 | 含义 |
|---|---|
| 0 | 待处理 |
| 1 | 处理中 |
| 2 | 完成 |
| 4 | 暂停 |
| 5 | 取消 |
| 类型 | 含义 |
|---|---|
| 1 | Excel导入 |
| 2 | 专利号导入 |
| 3 | 专利号文件导入 |
| 4 | 检索导入 |
| 5 | PDF文档导入 |
| 6 | Excel导出 |
| 7 | PDF首页导出 |