Appearance
办公助手 · 数据洞察 内部 API
数据问答、数据分析、线索挖掘、数据表配置、预设模板、数据上传等内部接口。
权限码为接口所需权限标识。
OfficeAiToolController
- 基础路径:
/office/ai-tool - 类级权限:
@ss.hasAnyPermi('train:ai:prompt:list,train:ai:prompt:edit,office:upload:list')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/ai-tool/available | @ss.hasAnyPermi('train:ai:prompt:list,train:ai:prompt:edit,office:upload:list') | |
| GET | /office/ai-tool/list | @ss.hasPermi('train:ai:prompt:edit') | |
| GET | /office/ai-tool/{toolId} | @ss.hasPermi('train:ai:prompt:edit') | |
| POST | /office/ai-tool | @ss.hasPermi('train:ai:prompt:edit') | |
| PUT | /office/ai-tool | @ss.hasPermi('train:ai:prompt:edit') | |
| DELETE | /office/ai-tool/{toolId} | @ss.hasPermi('train:ai:prompt:edit') | |
| POST | /office/ai-tool/{toolId}/test | @ss.hasPermi('train:ai:prompt:edit') | 试跑工具:用当前登录身份直接执行一次(不经过模型)。 |
OfficeAnalysisTaskController
- 基础路径:
/office/task - 类级权限:
@ss.hasAnyPermi('office:analysis:query,office:clue:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/task/doubt-options | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | 存疑闸门的展示选项(前端按它决定显不显示「跳过继续」按钮)。 |
| POST | /office/task/analyze | @ss.hasPermi('office:analysis:query') | |
| POST | /office/task/clue | @ss.hasPermi('office:clue:query') | |
| GET | /office/task/{taskId}/pwd-check | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | 任务涉及哪些需要访问密码的文件(打开结果前调用;不返回密码哈希)。 |
| POST | /office/task/{taskId}/pwd-verify | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId} | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/list | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/creators | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| DELETE | /office/task/{taskId} | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| POST | /office/task/{taskId}/stop | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| POST | /office/task/{taskId}/retry | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| POST | /office/task/{taskId}/resume | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | 继续「待处理存疑」(status=3)的任务。 |
| GET | /office/task/{taskId}/exportPdf | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| POST | /office/task/{taskId}/exportGraphPdf | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/exportEventsExcel | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/extract-summary | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | 本任务使用的识别结果版本概要(任务详情显示"本次使用识别结果:xxx 第 N 版")。 |
| GET | /office/task/{taskId}/events | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/layers | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/layers/{no} | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/log | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/queries/{qi}/rows | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/queries | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/queries/{qi}/exportExcel | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/queries/{qi}/exportPdf | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/queries/{qi}/rowsAll | @ss.hasAnyPermi('office:analysis:query,office:clue:query') | |
| GET | /office/task/{taskId}/status | @ss.hasAnyPermi('office:analysis:query,office:clue:query') |
OfficeAssistantController
- 基础路径:
/office - 类级权限:
@ss.hasPermi('office:chat:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/chat/sessions | @ss.hasPermi('office:chat:query') | |
| POST | /office/chat/session | @ss.hasPermi('office:chat:query') | |
| GET | /office/chat/messages/{sessionId} | @ss.hasPermi('office:chat:query') | |
| PUT | /office/chat/session/{sessionId} | @ss.hasPermi('office:chat:query') | |
| DELETE | /office/chat/session/{sessionId} | @ss.hasPermi('office:chat:remove') | |
| DELETE | /office/chat/messages/{sessionId} | @ss.hasPermi('office:chat:remove') | |
| GET | /office/chat/session/{sessionId}/pwd-check | @ss.hasPermi('office:chat:query') | |
| POST | /office/chat/session/{sessionId}/pwd-verify | @ss.hasPermi('office:chat:query') | |
| PUT | /office/chat/session/{sessionId}/scope | @ss.hasPermi('office:chat:query') | |
| POST | /office/chat/stream/{sessionId} | @ss.hasPermi('office:chat:query') | AI 问答(SSE 流式输出) |
| POST | /office/chat/cancel | @ss.hasPermi('office:chat:query') | 停止该会话最新一条生成中的消息(前端点"停止"后调用) |
| POST | /office/analysis | @ss.hasPermi('office:analysis:query') | AI 分析:自然语言 → SQL → 返回表格数据 |
| GET | /office/table/list | @ss.hasAnyPermi('office:table:query,office:table:edit,office:chat:query,office:analysis:query,office:clue:query,office:template:list') | |
| GET | /office/table/summaries | @ss.hasAnyPermi('office:table:query,office:table:edit,office:chat:query,office:analysis:query,office:clue:query,office:template:list') | |
| GET | /office/table/uploaders | @ss.hasAnyPermi('office:table:query,office:table:edit') | |
| POST | /office/table/save | @ss.hasPermi('office:table:edit') | |
| POST | /office/table/reset | @ss.hasPermi('office:table:edit') | |
| PUT | /office/table/comment | @ss.hasPermi('office:table:edit') | |
| GET | /office/table/preview | @ss.hasAnyPermi('office:table:query,office:table:edit,office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | |
| GET | /office/table/exportExcel | @ss.hasAnyPermi('office:table:query,office:table:edit,office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | 预览弹窗的「导出表格」:整表导出 xlsx(表头用字段描述)。 |
| GET | /office/table/exportPdf | @ss.hasAnyPermi('office:table:query,office:table:edit,office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | 预览弹窗的「导出 PDF」:整表导出 PDF。 |
| GET | /office/table/rows | @ss.hasAnyPermi('office:table:query,office:table:edit,office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | 预览弹窗的「打印」:取整表数据(JSON),由前端拼 markdown 表格后用浏览器打印。 |
| GET | /office/query/log | @ss.hasPermi('office:analysis:query') |
OfficeClueScreenController
- 基础路径:
/office/screen - 类级权限:
@ss.hasAnyPermi('office:screen:list,office:clue:query,office:analysis:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/screen/clue/overview | @ss.hasAnyPermi('office:screen:list,office:clue:query,office:analysis:query') | 大屏总览(全部面板一次返回) |
| GET | /office/screen/clue/tasks | @ss.hasAnyPermi('office:screen:list,office:clue:query,office:analysis:query') | 大屏下钻:任务明细列表(分页) |
| GET | /office/screen/clue/region-events | @ss.hasAnyPermi('office:screen:list,office:clue:query,office:analysis:query') |
OfficeConfigController
- 基础路径:
/office/config - 类级权限:
@ss.hasPermi('office:config:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/config/list | @ss.hasPermi('office:config:query') | |
| PUT | /office/config | @ss.hasPermi('office:config:edit') | 批量保存。body: { items: [ { configKey, configValue } ] } |
OfficeEntityTypeConfigController
- 基础路径:
/office/entity - 类级权限:
@ss.hasPermi('office:entity:list')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/entity/list | @ss.hasPermi('office:entity:list') | 办公助手-实体类型配置 Controller |
| GET | /office/entity/all | @ss.hasAnyPermi('office:entity:list,office:clue:query') | |
| GET | /office/entity/icons | @ss.hasAnyPermi('office:entity:list,office:clue:query') | |
| PUT | /office/entity/icons | @ss.hasPermi('office:entity:edit') | |
| GET | /office/entity/level-colors | @ss.hasAnyPermi('office:entity:list,office:clue:query') | |
| PUT | /office/entity/level-colors | @ss.hasPermi('office:entity:edit') | |
| GET | /office/entity/layout-config | @ss.hasAnyPermi('office:entity:list,office:clue:query') | |
| PUT | /office/entity/layout-config | @ss.hasPermi('office:entity:edit') | |
| POST | /office/entity | @ss.hasPermi('office:entity:add') | |
| PUT | /office/entity | @ss.hasPermi('office:entity:edit') | |
| DELETE | /office/entity/{configIds} | @ss.hasPermi('office:entity:remove') |
OfficeEventTemplateController
- 基础路径:
/office/eventtemplate - 类级权限:
@ss.hasAnyPermi('office:eventtemplate:query,office:clue:query,office:template:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/eventtemplate/list | @ss.hasAnyPermi('office:eventtemplate:query,office:clue:query,office:template:query') | |
| GET | /office/eventtemplate/{templateId} | @ss.hasAnyPermi('office:eventtemplate:query,office:clue:query,office:template:query') | |
| POST | /office/eventtemplate | @ss.hasPermi('office:eventtemplate:add') | |
| PUT | /office/eventtemplate | @ss.hasPermi('office:eventtemplate:edit') | |
| DELETE | /office/eventtemplate/{templateId} | @ss.hasPermi('office:eventtemplate:remove') |
OfficeQuickQuestionController
- 基础路径:
/office/template/quick - 类级权限:
@ss.hasAnyPermi('office:table:query,office:template:list,office:chat:query,office:clue:query,office:analysis:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/template/quick/list | @ss.hasAnyPermi('office:table:query,office:template:list,office:chat:query,office:clue:query,office:analysis:query') | |
| GET | /office/template/quick/enabled | @ss.hasAnyPermi('office:chat:query,office:table:query,office:table:edit') | |
| POST | /office/template/quick | @ss.hasAnyPermi('office:table:edit,office:template:add') | |
| PUT | /office/template/quick | @ss.hasAnyPermi('office:table:edit,office:template:edit') | |
| DELETE | /office/template/quick/{questionIds} | @ss.hasAnyPermi('office:table:edit,office:template:remove') |
OfficeRegionController
- 基础路径:
/office/region - 类级权限:
@ss.hasPermi('system:region:list')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/region/list | @ss.hasPermi('system:region:list') | |
| GET | /office/region/tree | @ss.hasPermi('system:region:list') | |
| GET | /office/region/dict | 全量字典(地图地区解析用)。 | |
| GET | /office/region/boundary/children/{parentCode} | 地图边界拼装:把某父级下所有"有边界"的子区划拼成 FeatureCollection | |
| GET | /office/region/boundary/{code} | 读回某区划自己的边界几何(管理页"传边界"弹窗回显用:在原有图形上改,而不是每次从空白重传)。 | |
| POST | /office/region/boundary/{code} | @ss.hasPermi('system:region:edit') | |
| DELETE | /office/region/boundary/{code} | @ss.hasPermi('system:region:edit') | |
| GET | /office/region/{code} | @ss.hasPermi('system:region:query') | |
| POST | /office/region | @ss.hasPermi('system:region:add') | |
| PUT | /office/region | @ss.hasPermi('system:region:edit') | |
| DELETE | /office/region/{code} | @ss.hasPermi('system:region:remove') |
OfficeTableTemplateController
- 基础路径:
/office/template - 类级权限:
@ss.hasAnyPermi('office:table:query,office:template:list,office:clue:query,office:analysis:query,office:chat:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/template/list | @ss.hasAnyPermi('office:table:query,office:template:list,office:clue:query,office:analysis:query,office:chat:query') | |
| GET | /office/template/{templateId} | @ss.hasAnyPermi('office:table:query,office:template:list,office:clue:query,office:analysis:query,office:chat:query') | |
| POST | /office/template | @ss.hasAnyPermi('office:table:edit,office:template:add') | |
| PUT | /office/template | @ss.hasAnyPermi('office:table:edit,office:template:edit') | |
| DELETE | /office/template/{templateIds} | @ss.hasAnyPermi('office:table:edit,office:template:remove') |
OfficeTaskTemplateController
- 基础路径:
/office/tasktemplate - 类级权限:
@ss.hasAnyPermi('office:tasktemplate:query,office:analysis:query,office:clue:query,office:template:query')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/tasktemplate/list | @ss.hasAnyPermi('office:tasktemplate:query,office:analysis:query,office:clue:query,office:template:query') | |
| GET | /office/tasktemplate/{templateId} | @ss.hasAnyPermi('office:tasktemplate:query,office:analysis:query,office:clue:query,office:template:query') | |
| POST | /office/tasktemplate | @ss.hasPermi('office:tasktemplate:add') | |
| PUT | /office/tasktemplate | @ss.hasPermi('office:tasktemplate:edit') | |
| DELETE | /office/tasktemplate/{templateId} | @ss.hasPermi('office:tasktemplate:remove') |
OfficeUploadController
- 基础路径:
/office/upload - 类级权限:
@ss.hasPermi('office:filepwd:list')
| 方法 | 路径 | 权限 | 说明 |
|---|---|---|---|
| GET | /office/upload/dept-user-tree | @ss.hasPermi('office:filepwd:list') | |
| GET | /office/upload/task-options | @ss.hasPermi('office:filepwd:list') | 「按任务筛选」的任务候选:只返回 taskId / queryText / taskType,供下拉显示。 |
| POST | /office/upload | @ss.hasAnyPermi('office:upload:upload,office:chat:query,office:analysis:query,office:clue:query') | |
| POST | /office/upload/session/{sessionId} | @ss.hasAnyPermi('office:upload:upload,office:chat:query,office:analysis:query,office:clue:query') | |
| GET | /office/upload/options | @ss.hasPermi('office:upload:list') | |
| GET | /office/upload/list | @ss.hasAnyPermi('office:upload:list,office:filepwd:list') | |
| GET | /office/upload/process-info | @ss.hasPermi('office:upload:list') | 文档提取状态与内容预览(提交任务前的"处理方式确认"用): |
| GET | /office/upload/session/{sessionId}/files | @ss.hasPermi('office:upload:list') | |
| GET | /office/upload/{uploadId}/download | 下载文档附件(非 Excel,本人/管理员)。 | |
| GET | /office/upload/{uploadId}/text | @ss.hasPermi('office:upload:list') | 文档文本预览(返回上传时本地提取的缓存文本,text/plain 内联; |
| GET | /office/upload/{uploadId}/text-layer-preview | @ss.hasPermi('office:upload:list') | PDF 文本层预览(处理方式确认弹窗选"改用文本层"时展示用;PDFBox 现场提取,不落库不触发任务) |
| GET | /office/upload/{uploadId}/preview-url | @ss.hasPermi('office:upload:list') | 生成文档在线预览签名 URL(本人/管理员调起预览时调用)。 |
| GET | /office/upload/{uploadId}/preview | @ss.hasPermi('office:upload:list') | |
| DELETE | /office/upload/{uploadIds} | @ss.hasPermi('office:upload:remove') | 删除上传记录(Excel 硬校验表名前缀;文档删除物理文件)。 |
| PUT | /office/upload/{uploadId}/comment | @ss.hasPermi('office:upload:edit') | |
| PUT | /office/upload/{uploadId}/shared | @ss.hasPermi('office:upload:list') | 设置上传表的「共享」开关(1=共享给所有人用 0=不共享, |
| POST | /office/upload/{uploadId}/clear-extract | @ss.hasPermi('office:upload:list') | |
| POST | /office/upload/{uploadId}/extract | @ss.hasPermi('office:upload:list') | 数据上传页直接触发视觉 OCR 识别(异步):body {force},force=true 时先清空现有识别文本再重新识别。 |
| POST | /office/upload/{uploadId}/text-layer | @ss.hasPermi('office:upload:list') | 直接用 PDF 自带文本层提取文字(本地提取,同步完成,不消耗 AI): |
| POST | /office/upload/{uploadId}/summary | @ss.hasPermi('office:upload:list') | 数据上传页直接触发摘要生成(异步):body {force},force=true 时先清空现有摘要再重新生成。 |
| GET | /office/upload/{uploadId}/summary | @ss.hasPermi('office:upload:list') | |
| GET | /office/upload/{uploadId}/extract-info | @ss.hasPermi('office:upload:list') | 识别版本信息:这个附件当前是第几版、某个任务用的是第几版、两者是否一致。 |
| GET | /office/upload/{uploadId}/versions | @ss.hasPermi('office:upload:list') | 识别版本清单:这个附件一共有几版、每版什么情况(来源 / 字数 / 存疑 / 页数 / 时间), |
| DELETE | /office/upload/{uploadId}/versions/{extractId} | @ss.hasPermi('office:upload:list') | 删除指定的识别版本( |
| DELETE | /office/upload/{uploadId}/versions | @ss.hasPermi('office:upload:list') | 清除该附件的 |
| POST | /office/upload/{uploadId}/stop-extract | @ss.hasPermi('office:upload:list') | 强制停止正在进行的识别生成(本人/管理员)—— 数据上传页「更多操作 → 停止生成」。 |
| PUT | /office/upload/{uploadId}/page-text | @ss.hasPermi('office:upload:list') | 人工修正识别文本(按页更新):替换指定页的提取文本, |
| PUT | /office/upload/{uploadId}/page-text/doubts | @ss.hasPermi('office:upload:list') | 批量移除存疑标记(「清空本页存疑 / 全部移除」)。 |
| GET | /office/upload/{uploadId}/pages | @ss.hasAnyPermi('office:upload:list,office:analysis:query,office:clue:query') | 文档按页窗口读取(溯源弹窗/预览按需加载用;from/to 为页码,含首尾)。 |
| POST | /office/upload/pwd-check | @ss.hasAnyPermi('office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | 查询一组 scope 里哪些文件需要访问密码(提交任务 / 查看结果前调用)。 |
| POST | /office/upload/pwd-verify | @ss.hasAnyPermi('office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | 批量校验访问密码(提交任务 / 查看结果前调用)。 |
| PUT | /office/upload/{uploadId}/pwd | @ss.hasAnyPermi('office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | 设置 / 修改访问密码。 |
| DELETE | /office/upload/{uploadId}/pwd | @ss.hasAnyPermi('office:upload:list,office:chat:query,office:analysis:query,office:clue:query') | |
| PUT | /office/upload/{uploadId}/pwd/unlock | @ss.hasAnyPermi('office:upload:pwdReset,office:filepwd:manage') | |
| PUT | /office/upload/{uploadId}/pwd/reset | @ss.hasAnyPermi('office:upload:pwdReset,office:filepwd:manage') | |
| PUT | /office/upload/pwd/batch-unlock | @ss.hasAnyPermi('office:upload:pwdReset,office:filepwd:manage') | |
| PUT | /office/upload/pwd/batch-reset | @ss.hasAnyPermi('office:upload:pwdReset,office:filepwd:manage') | 批量重置为同一密码(同时解锁)。body: |