511 lines
17 KiB
YAML
511 lines
17 KiB
YAML
openapi: 3.0.3
|
||
info:
|
||
title: 监管端-安评报告数据库 API
|
||
description: |
|
||
对齐监管端原型页 `mod-report-library`(安评报告数据库)。
|
||
|
||
## 原型能力对照
|
||
| 原型 | 后端 |
|
||
|------|------|
|
||
| 近三年报告 / 本年度 | `GET /summary` |
|
||
| 筛选:名称编号、报送机构、年度、评价类型、行业、报送时间起止 | `GET /page` |
|
||
| 列表列:编号/名称/机构/类型/行业/签发日/报送时间 | `EvalReportLibraryCO`(含 `orgName`) |
|
||
| 查看报告 | `GET /get`(`fileUrl`) |
|
||
| AI分析 | **前端静态,无后端接口** |
|
||
| 批量下载 / 导出目录 | `POST /batch-download`(ZIP)、`POST /export-catalog`(CSV) |
|
||
| 补录历史报告 | `POST /add`(与机构端上传字段对齐,强制已报送) |
|
||
| 抽查发起/复核(与机构端整改闭环,本页列表未直出按钮) | `/eval-report-spotcheck/**` |
|
||
|
||
与机构端关系:机构 `submit`/`archive`/`add(submitToRegulator)` → `submit_flag=1` 后进入监管库;监管抽查 → 机构整改 → 监管复核。
|
||
|
||
**Apifox 导入**:项目设置 → 导入数据 → OpenAPI → 选择本文件。
|
||
|
||
成功:`success=true` 且 `code="0"`(文件流接口直接返回附件,失败时返回 JSON)
|
||
version: 1.1.0
|
||
contact:
|
||
name: safety-eval-service
|
||
|
||
servers:
|
||
- url: http://localhost:8095
|
||
description: 本地开发
|
||
- url: http://192.168.20.100:30140
|
||
description: 测试网关(100)
|
||
|
||
tags:
|
||
- name: 监管端-安评报告库
|
||
description: 报告数据库列表/详情/汇总/补录
|
||
- name: 监管端-报告抽查
|
||
description: 发起抽查与复核(机构整改闭环)
|
||
|
||
paths:
|
||
/safetyEval/regulator/eval-report/summary:
|
||
get:
|
||
tags: [监管端-安评报告库]
|
||
summary: 报告数据库页顶栏汇总
|
||
operationId: regulatorEvalReportSummary
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseRegulatorEvalReportSummaryCO'
|
||
example:
|
||
success: true
|
||
code: "0"
|
||
data:
|
||
recentThreeYearCount: 286
|
||
currentYearCount: 92
|
||
submittedTotalCount: 310
|
||
|
||
/safetyEval/regulator/eval-report/page:
|
||
get:
|
||
tags: [监管端-安评报告库]
|
||
summary: 分页查询已报送报告
|
||
description: 默认仅返回 `submitFlag=1`(机构已报送/归档入库)的报告。
|
||
operationId: regulatorEvalReportPage
|
||
parameters:
|
||
- $ref: '#/components/parameters/current'
|
||
- $ref: '#/components/parameters/size'
|
||
- name: keyword
|
||
in: query
|
||
description: 报告名称 / 编号
|
||
schema: { type: string }
|
||
- name: orgId
|
||
in: query
|
||
description: 机构 id(精确)
|
||
schema: { type: integer, format: int64 }
|
||
- name: orgName
|
||
in: query
|
||
description: 报送机构名称(模糊,按机构表 unitName 解析)
|
||
schema: { type: string }
|
||
- name: reportYear
|
||
in: query
|
||
schema: { type: integer, example: 2026 }
|
||
- name: evalTypeCode
|
||
in: query
|
||
description: PRE / ACCEPT / STATUS
|
||
schema: { type: string, example: PRE }
|
||
- name: industryCode
|
||
in: query
|
||
schema: { type: string, example: HAZCHEM }
|
||
- name: reportStatusCode
|
||
in: query
|
||
description: 1已入库 2抽查中 3待整改 4已复核
|
||
schema: { type: integer }
|
||
- name: archiveTimeStart
|
||
in: query
|
||
description: 报送时间起 yyyy-MM-dd
|
||
schema: { type: string, example: '2026-01-01' }
|
||
- name: archiveTimeEnd
|
||
in: query
|
||
description: 报送时间止 yyyy-MM-dd
|
||
schema: { type: string, example: '2026-12-31' }
|
||
- name: submitFlag
|
||
in: query
|
||
description: 默认 1;一般无需传
|
||
schema: { type: integer, example: 1 }
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/PageResponseEvalReportLibraryCO'
|
||
|
||
/safetyEval/regulator/eval-report/get:
|
||
get:
|
||
tags: [监管端-安评报告库]
|
||
summary: 报告详情
|
||
operationId: regulatorEvalReportGet
|
||
parameters:
|
||
- name: id
|
||
in: query
|
||
required: true
|
||
schema: { type: string }
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseEvalReportLibraryCO'
|
||
|
||
/safetyEval/regulator/eval-report/add:
|
||
post:
|
||
tags: [监管端-安评报告库]
|
||
summary: 补录历史报告
|
||
description: |
|
||
监管侧补录;`submitFlag` 固定为已报送。
|
||
字段与机构端上传对齐(行业、被评价单位、签发日、页数、保密等)。
|
||
文件先走统一上传拿 `fileUrl`。
|
||
operationId: regulatorEvalReportAdd
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/RegulatorEvalReportAddCmd'
|
||
example:
|
||
orgId: 10001
|
||
reportNo: CQAP-2026-0715
|
||
reportName: 华安化工园区安全预评价报告
|
||
reportYear: 2026
|
||
evalTypeCode: PRE
|
||
evalTypeName: 安全预评价
|
||
industryCode: HAZCHEM
|
||
industryName: 危险化学品
|
||
evaluatedUnitName: 重庆华安化工有限公司
|
||
issueDate: '2026-07-15'
|
||
pageCount: 186
|
||
fileUrl: https://oss.example.com/reports/xxx.pdf
|
||
fileName: 华安化工预评价.pdf
|
||
secretLevelCode: NORMAL
|
||
secretLevelName: 普通
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseEvalReportLibraryCO'
|
||
|
||
/safetyEval/regulator/eval-report/batch-download:
|
||
post:
|
||
tags: [监管端-安评报告库]
|
||
summary: 批量下载报告文件(ZIP)
|
||
description: |
|
||
按勾选报告 ID 拉取各自 `fileUrl` 打包为 ZIP。
|
||
上限 50 份;无有效文件地址时报错 06-07-012。
|
||
成功直接返回 `application/zip` 附件流。
|
||
operationId: regulatorEvalReportBatchDownload
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/RegulatorEvalReportBatchDownloadCmd'
|
||
example:
|
||
ids: [10001, 10002, 10003]
|
||
responses:
|
||
'200':
|
||
description: ZIP 文件流,或业务失败时的 JSON
|
||
content:
|
||
application/zip:
|
||
schema:
|
||
type: string
|
||
format: binary
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseBase'
|
||
|
||
/safetyEval/regulator/eval-report/export-catalog:
|
||
post:
|
||
tags: [监管端-安评报告库]
|
||
summary: 导出报告目录(CSV)
|
||
description: |
|
||
导出「安评报告数据库目录」。
|
||
- `ids` 非空或 `scope=SELECTED`:导出勾选
|
||
- `scope=FILTERED`(默认无 ids):导出当前筛选结果
|
||
- `scope=ALL`:导出全部已报送
|
||
上限 5000 行;UTF-8 BOM,Excel 可直接打开。
|
||
operationId: regulatorEvalReportExportCatalog
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/RegulatorEvalReportExportCmd'
|
||
example:
|
||
scope: FILTERED
|
||
reportYear: 2026
|
||
industryCode: HAZCHEM
|
||
responses:
|
||
'200':
|
||
description: CSV 文件流,或业务失败时的 JSON
|
||
content:
|
||
text/csv:
|
||
schema:
|
||
type: string
|
||
format: binary
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseBase'
|
||
|
||
/safetyEval/regulator/eval-report-spotcheck/start:
|
||
post:
|
||
tags: [监管端-报告抽查]
|
||
summary: 发起抽查
|
||
description: 报告须已入库(status=1);不合格须填整改要求,并消息通知机构。
|
||
operationId: regulatorSpotcheckStart
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/RegulatorSpotcheckStartCmd'
|
||
example:
|
||
reportId: 10001
|
||
checkResultCode: 2
|
||
checkResultName: 不合格
|
||
checkOpinion: 危险辨识不完整
|
||
rectifyRequire: 请补充重大危险源辨识章节并重新签章
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseEvalReportSpotcheckCO'
|
||
|
||
/safetyEval/regulator/eval-report-spotcheck/review:
|
||
post:
|
||
tags: [监管端-报告抽查]
|
||
summary: 复核抽查
|
||
operationId: regulatorSpotcheckReview
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/RegulatorSpotcheckReviewCmd'
|
||
example:
|
||
spotcheckId: 20001
|
||
reviewResultCode: 1
|
||
reviewResultName: 通过
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseEvalReportSpotcheckCO'
|
||
|
||
/safetyEval/regulator/eval-report-spotcheck/list:
|
||
get:
|
||
tags: [监管端-报告抽查]
|
||
summary: 按报告查询抽查记录
|
||
operationId: regulatorSpotcheckList
|
||
parameters:
|
||
- name: reportId
|
||
in: query
|
||
required: true
|
||
schema: { type: integer, format: int64 }
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseEvalReportSpotcheckCOList'
|
||
|
||
/safetyEval/regulator/eval-report-spotcheck/get:
|
||
get:
|
||
tags: [监管端-报告抽查]
|
||
summary: 抽查详情
|
||
operationId: regulatorSpotcheckGet
|
||
parameters:
|
||
- name: id
|
||
in: query
|
||
required: true
|
||
schema: { type: string }
|
||
responses:
|
||
'200':
|
||
description: 成功
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseEvalReportSpotcheckCO'
|
||
|
||
components:
|
||
parameters:
|
||
current:
|
||
name: current
|
||
in: query
|
||
schema: { type: integer, default: 1 }
|
||
size:
|
||
name: size
|
||
in: query
|
||
schema: { type: integer, default: 10 }
|
||
|
||
schemas:
|
||
SingleResponseBase:
|
||
type: object
|
||
properties:
|
||
success: { type: boolean, example: true }
|
||
code: { type: string, example: "0" }
|
||
message: { type: string }
|
||
errCode: { type: string }
|
||
errMessage: { type: string }
|
||
|
||
EvalReportLibraryCO:
|
||
type: object
|
||
properties:
|
||
id: { type: string }
|
||
orgId: { type: string }
|
||
orgName: { type: string, description: 报送机构名称 }
|
||
projectId: { type: string }
|
||
customerId: { type: string }
|
||
evaluatedUnitName: { type: string }
|
||
reportNo: { type: string }
|
||
reportName: { type: string }
|
||
reportYear: { type: integer }
|
||
evalTypeCode: { type: string }
|
||
evalTypeName: { type: string }
|
||
industryCode: { type: string }
|
||
industryName: { type: string }
|
||
fileUrl: { type: string }
|
||
fileName: { type: string }
|
||
submitFlag: { type: integer, description: "1已报送2未报送" }
|
||
reportStatusCode: { type: integer }
|
||
reportStatusName: { type: string }
|
||
displayStatusName: { type: string }
|
||
archiveTime: { type: string, format: date-time, description: 报送/入库时间 }
|
||
issueDate: { type: string, format: date, description: 签发日期 }
|
||
pageCount: { type: integer }
|
||
secretLevelCode: { type: string }
|
||
secretLevelName: { type: string }
|
||
remarks: { type: string }
|
||
|
||
RegulatorEvalReportSummaryCO:
|
||
type: object
|
||
properties:
|
||
recentThreeYearCount: { type: integer, format: int64 }
|
||
currentYearCount: { type: integer, format: int64 }
|
||
submittedTotalCount: { type: integer, format: int64 }
|
||
|
||
RegulatorEvalReportAddCmd:
|
||
type: object
|
||
required: [orgId, reportName, fileUrl]
|
||
properties:
|
||
orgId: { type: integer, format: int64 }
|
||
projectId: { type: integer, format: int64 }
|
||
reportName: { type: string }
|
||
reportNo: { type: string }
|
||
reportYear: { type: integer }
|
||
evalTypeCode: { type: string }
|
||
evalTypeName: { type: string }
|
||
industryCode: { type: string }
|
||
industryName: { type: string }
|
||
evaluatedUnitName: { type: string }
|
||
customerId: { type: integer, format: int64 }
|
||
issueDate: { type: string, format: date }
|
||
pageCount: { type: integer }
|
||
businessScope: { type: string }
|
||
fileUrl: { type: string }
|
||
fileName: { type: string }
|
||
secretLevelCode: { type: string }
|
||
secretLevelName: { type: string }
|
||
remarks: { type: string }
|
||
|
||
RegulatorEvalReportBatchDownloadCmd:
|
||
type: object
|
||
required: [ids]
|
||
properties:
|
||
ids:
|
||
type: array
|
||
items: { type: integer, format: int64 }
|
||
maxItems: 50
|
||
|
||
RegulatorEvalReportExportCmd:
|
||
allOf:
|
||
- $ref: '#/components/schemas/RegulatorEvalReportPageQueryFields'
|
||
- type: object
|
||
properties:
|
||
ids:
|
||
type: array
|
||
items: { type: integer, format: int64 }
|
||
scope:
|
||
type: string
|
||
enum: [SELECTED, FILTERED, ALL]
|
||
description: 有 ids 时默认 SELECTED;无 ids 默认 FILTERED
|
||
|
||
RegulatorEvalReportPageQueryFields:
|
||
type: object
|
||
properties:
|
||
orgId: { type: integer, format: int64 }
|
||
orgName: { type: string }
|
||
keyword: { type: string }
|
||
reportYear: { type: integer }
|
||
evalTypeCode: { type: string }
|
||
industryCode: { type: string }
|
||
reportStatusCode: { type: integer }
|
||
archiveTimeStart: { type: string }
|
||
archiveTimeEnd: { type: string }
|
||
submitFlag: { type: integer }
|
||
|
||
RegulatorSpotcheckStartCmd:
|
||
type: object
|
||
required: [reportId, checkResultCode]
|
||
properties:
|
||
reportId: { type: integer, format: int64 }
|
||
checkResultCode: { type: integer, description: "1合格2不合格" }
|
||
checkResultName: { type: string }
|
||
checkOpinion: { type: string }
|
||
rectifyRequire: { type: string, description: 不合格必填 }
|
||
|
||
RegulatorSpotcheckReviewCmd:
|
||
type: object
|
||
required: [spotcheckId, reviewResultCode]
|
||
properties:
|
||
spotcheckId: { type: integer, format: int64 }
|
||
reviewResultCode: { type: integer, description: "1通过2不通过" }
|
||
reviewResultName: { type: string }
|
||
|
||
EvalReportSpotcheckCO:
|
||
type: object
|
||
properties:
|
||
id: { type: string }
|
||
orgId: { type: string }
|
||
reportId: { type: string }
|
||
checkResultCode: { type: integer }
|
||
checkResultName: { type: string }
|
||
checkOpinion: { type: string }
|
||
rectifyRequire: { type: string }
|
||
rectifyFeedback: { type: string }
|
||
reviewResultCode: { type: integer }
|
||
reviewResultName: { type: string }
|
||
checkerId: { type: string }
|
||
checkerName: { type: string }
|
||
checkTime: { type: string, format: date-time }
|
||
|
||
SingleResponseEvalReportLibraryCO:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SingleResponseBase'
|
||
- type: object
|
||
properties:
|
||
data: { $ref: '#/components/schemas/EvalReportLibraryCO' }
|
||
|
||
SingleResponseRegulatorEvalReportSummaryCO:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SingleResponseBase'
|
||
- type: object
|
||
properties:
|
||
data: { $ref: '#/components/schemas/RegulatorEvalReportSummaryCO' }
|
||
|
||
PageResponseEvalReportLibraryCO:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SingleResponseBase'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
type: array
|
||
items: { $ref: '#/components/schemas/EvalReportLibraryCO' }
|
||
total: { type: integer, format: int64 }
|
||
|
||
SingleResponseEvalReportSpotcheckCO:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SingleResponseBase'
|
||
- type: object
|
||
properties:
|
||
data: { $ref: '#/components/schemas/EvalReportSpotcheckCO' }
|
||
|
||
SingleResponseEvalReportSpotcheckCOList:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SingleResponseBase'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
type: array
|
||
items: { $ref: '#/components/schemas/EvalReportSpotcheckCO' }
|