task-api.yaml 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353
  1. openapi: 3.0.3
  2. info:
  3. title: Financial Report Generation - Task API
  4. version: 1.0.0
  5. description: 任务管理API
  6. servers:
  7. - url: http://localhost:8080/api/v1
  8. description: 本地开发环境
  9. - url: https://api.finrep.example.com/api/v1
  10. description: 生产环境
  11. tags:
  12. - name: Task
  13. description: 任务管理
  14. - name: Task Progress
  15. description: 任务进度
  16. paths:
  17. /tasks:
  18. get:
  19. summary: 查询任务列表
  20. tags:
  21. - Task
  22. parameters:
  23. - name: tenantId
  24. in: header
  25. required: true
  26. schema:
  27. type: string
  28. - name: status
  29. in: query
  30. schema:
  31. type: string
  32. enum: [PENDING_OUTLINE, PENDING_OUTLINE_CONFIRM, PENDING_DATA_PREPARE, PENDING_DATA_CONFIRM, PENDING_REPORT_GENERATE, GENERATING, PENDING_REVIEW, COMPLETED, FAILED, CANCELLED]
  33. - name: page
  34. in: query
  35. schema:
  36. type: integer
  37. default: 1
  38. - name: size
  39. in: query
  40. schema:
  41. type: integer
  42. default: 10
  43. responses:
  44. '200':
  45. description: 成功
  46. content:
  47. application/json:
  48. schema:
  49. $ref: '#/components/schemas/TaskPageResponse'
  50. post:
  51. summary: 创建任务
  52. tags:
  53. - Task
  54. parameters:
  55. - name: tenantId
  56. in: header
  57. required: true
  58. schema:
  59. type: string
  60. requestBody:
  61. required: true
  62. content:
  63. application/json:
  64. schema:
  65. $ref: '#/components/schemas/TaskCreateRequest'
  66. responses:
  67. '200':
  68. description: 成功
  69. content:
  70. application/json:
  71. schema:
  72. $ref: '#/components/schemas/TaskResponse'
  73. /tasks/{taskId}:
  74. get:
  75. summary: 查询任务详情
  76. tags:
  77. - Task
  78. parameters:
  79. - name: taskId
  80. in: path
  81. required: true
  82. schema:
  83. type: string
  84. - name: tenantId
  85. in: header
  86. required: true
  87. schema:
  88. type: string
  89. responses:
  90. '200':
  91. description: 成功
  92. content:
  93. application/json:
  94. schema:
  95. $ref: '#/components/schemas/TaskResponse'
  96. '404':
  97. description: 任务不存在
  98. put:
  99. summary: 更新任务
  100. tags:
  101. - Task
  102. parameters:
  103. - name: taskId
  104. in: path
  105. required: true
  106. schema:
  107. type: string
  108. - name: tenantId
  109. in: header
  110. required: true
  111. schema:
  112. type: string
  113. requestBody:
  114. required: true
  115. content:
  116. application/json:
  117. schema:
  118. $ref: '#/components/schemas/TaskUpdateRequest'
  119. responses:
  120. '200':
  121. description: 成功
  122. delete:
  123. summary: 删除任务
  124. tags:
  125. - Task
  126. parameters:
  127. - name: taskId
  128. in: path
  129. required: true
  130. schema:
  131. type: string
  132. - name: tenantId
  133. in: header
  134. required: true
  135. schema:
  136. type: string
  137. responses:
  138. '200':
  139. description: 成功
  140. /tasks/{taskId}/start:
  141. post:
  142. summary: 开始任务
  143. tags:
  144. - Task
  145. parameters:
  146. - name: taskId
  147. in: path
  148. required: true
  149. schema:
  150. type: string
  151. - name: tenantId
  152. in: header
  153. required: true
  154. schema:
  155. type: string
  156. responses:
  157. '200':
  158. description: 成功
  159. /tasks/{taskId}/complete:
  160. post:
  161. summary: 完成任务
  162. tags:
  163. - Task
  164. parameters:
  165. - name: taskId
  166. in: path
  167. required: true
  168. schema:
  169. type: string
  170. - name: tenantId
  171. in: header
  172. required: true
  173. schema:
  174. type: string
  175. responses:
  176. '200':
  177. description: 成功
  178. /tasks/{taskId}/cancel:
  179. post:
  180. summary: 取消任务
  181. tags:
  182. - Task
  183. parameters:
  184. - name: taskId
  185. in: path
  186. required: true
  187. schema:
  188. type: string
  189. - name: tenantId
  190. in: header
  191. required: true
  192. schema:
  193. type: string
  194. responses:
  195. '200':
  196. description: 成功
  197. /tasks/{taskId}/progress:
  198. get:
  199. summary: 订阅任务进度
  200. tags:
  201. - Task Progress
  202. parameters:
  203. - name: taskId
  204. in: path
  205. required: true
  206. schema:
  207. type: string
  208. - name: tenantId
  209. in: header
  210. required: true
  211. schema:
  212. type: string
  213. responses:
  214. '200':
  215. description: 成功
  216. content:
  217. text/event-stream:
  218. schema:
  219. type: string
  220. components:
  221. schemas:
  222. TaskCreateRequest:
  223. type: object
  224. required:
  225. - taskName
  226. - creatorId
  227. - creatorName
  228. properties:
  229. taskName:
  230. type: string
  231. description: 任务名称
  232. maxLength: 255
  233. description:
  234. type: string
  235. description: 任务描述
  236. modelConfigId:
  237. type: string
  238. description: 模型配置ID
  239. parameters:
  240. type: object
  241. description: 任务参数
  242. additionalProperties: true
  243. TaskUpdateRequest:
  244. type: object
  245. properties:
  246. taskName:
  247. type: string
  248. description: 任务名称
  249. maxLength: 255
  250. description:
  251. type: string
  252. description: 任务描述
  253. parameters:
  254. type: object
  255. description: 任务参数
  256. additionalProperties: true
  257. TaskResponse:
  258. type: object
  259. properties:
  260. taskId:
  261. type: string
  262. description: 任务ID
  263. tenantId:
  264. type: string
  265. description: 租户ID
  266. orgId:
  267. type: string
  268. description: 组织ID
  269. taskName:
  270. type: string
  271. description: 任务名称
  272. description:
  273. type: string
  274. description: 任务描述
  275. status:
  276. type: string
  277. description: 任务状态
  278. enum: [PENDING_OUTLINE, PENDING_OUTLINE_CONFIRM, PENDING_DATA_PREPARE, PENDING_DATA_CONFIRM, PENDING_REPORT_GENERATE, GENERATING, PENDING_REVIEW, COMPLETED, FAILED, CANCELLED]
  279. currentStage:
  280. type: string
  281. description: 当前阶段
  282. modelConfigId:
  283. type: string
  284. description: 模型配置ID
  285. creatorId:
  286. type: string
  287. description: 创建人ID
  288. creatorName:
  289. type: string
  290. description: 创建人名称
  291. progress:
  292. type: integer
  293. description: 任务进度(0-100)
  294. failureReason:
  295. type: string
  296. description: 失败原因
  297. parameters:
  298. type: object
  299. description: 任务参数
  300. createTime:
  301. type: string
  302. format: date-time
  303. description: 创建时间
  304. updateTime:
  305. type: string
  306. format: date-time
  307. description: 更新时间
  308. startTime:
  309. type: string
  310. format: date-time
  311. description: 开始时间
  312. endTime:
  313. type: string
  314. format: date-time
  315. description: 完成时间
  316. TaskPageResponse:
  317. type: object
  318. properties:
  319. code:
  320. type: integer
  321. description: 响应码
  322. message:
  323. type: string
  324. description: 响应消息
  325. data:
  326. type: object
  327. properties:
  328. total:
  329. type: integer
  330. description: 总数
  331. page:
  332. type: integer
  333. description: 当前页
  334. size:
  335. type: integer
  336. description: 每页大小
  337. records:
  338. type: array
  339. items:
  340. $ref: '#/components/schemas/TaskResponse'