213 lines
7.6 KiB
YAML
213 lines
7.6 KiB
YAML
openapi: 3.0.3
|
||
info:
|
||
title: 人员信息-人脸接口 API
|
||
description: |
|
||
基于 `OrgPersonnel` 的人脸相关接口,包含:
|
||
|
||
- **更新人员原始人像地址**:保存人脸比对基准图 URL。
|
||
- **人脸比对**:传入待比对图片 base64,服务端从人员「原始人像地址」下载并转 base64,再调用底层人脸比对能力,返回相似度。
|
||
|
||
## 接口一览
|
||
| 接口 | 说明 |
|
||
|------|------|
|
||
| `POST /safetyEval/org-personnel/update-origin-face` | 更新人员原始人像地址(基准图) |
|
||
| `POST /safetyEval/org-personnel/compare-face` | 人脸比对,传入图片 base64 与原始人像比对,返回相似度 |
|
||
|
||
## 错误码
|
||
| 错误码 | 说明 |
|
||
|--------|------|
|
||
| 01-05-004 | 原始人像地址为空(比对时人员未设置 originFaceUrl) |
|
||
| 01-05-005 | 待比对图片 base64 为空 |
|
||
| 01-05-006 | 人脸比对失败(底层调用异常) |
|
||
|
||
**Apifox 导入**:项目设置 → 导入数据 → OpenAPI → 选择本文件。
|
||
|
||
统一前缀:`/safetyEval/org-personnel`
|
||
成功:`success=true` 且 `code="0"`
|
||
version: 1.0.0
|
||
contact:
|
||
name: safety-eval-service
|
||
|
||
servers:
|
||
- url: http://localhost:8095
|
||
description: 本地开发
|
||
- url: http://192.168.20.100:30140
|
||
description: 测试网关(100)
|
||
|
||
tags:
|
||
- name: 人员信息-人脸接口
|
||
description: 原始人像地址维护与人脸比对
|
||
|
||
paths:
|
||
/safetyEval/org-personnel/update-origin-face:
|
||
post:
|
||
tags: [人员信息-人脸接口]
|
||
summary: 更新人员原始人像地址
|
||
description: |
|
||
保存人员的「原始人像地址(originFaceUrl)」,作为后续人脸比对的基准图。
|
||
仅更新该字段,不影响其他人员信息。
|
||
operationId: orgPersonnelUpdateOriginFace
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OrgPersonnelUpdateOriginFaceCmd'
|
||
example:
|
||
id: 10001
|
||
originFaceUrl: "https://oss.example.com/face/10001.jpg"
|
||
responses:
|
||
'200':
|
||
description: 成功(返回更新后的人员信息)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseOrgPersonnelCO'
|
||
example:
|
||
success: true
|
||
code: "0"
|
||
message: "success"
|
||
errMessage: null
|
||
data:
|
||
id: 10001
|
||
userName: "张三"
|
||
originFaceUrl: "https://oss.example.com/face/10001.jpg"
|
||
|
||
/safetyEval/org-personnel/compare-face:
|
||
post:
|
||
tags: [人员信息-人脸接口]
|
||
summary: 人脸比对
|
||
description: |
|
||
传入待比对图片 base64(imageBase64)与人员 ID(personnelId)。
|
||
服务端从人员「原始人像地址(originFaceUrl)」下载并转为 base64,
|
||
再调用底层人脸比对能力,返回两张人脸的相似度(0~1,越大越相似)。
|
||
operationId: orgPersonnelCompareFace
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/OrgPersonnelCompareFaceCmd'
|
||
example:
|
||
personnelId: 10001
|
||
imageBase64: "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/wAALCAABAAEBAREA/8QAFAABAAAAAAAAAAAAAAAAAAAAA//EABQQAQAAAAAAAAAAAAAAAAAAAAD/2gAIAQEAAD8AfwD/2Q=="
|
||
responses:
|
||
'200':
|
||
description: 成功(返回相似度,0~1)
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: '#/components/schemas/SingleResponseBigDecimal'
|
||
example:
|
||
success: true
|
||
code: "0"
|
||
message: "success"
|
||
errMessage: null
|
||
data: 0.92
|
||
|
||
components:
|
||
schemas:
|
||
SingleResponseBase:
|
||
type: object
|
||
properties:
|
||
success: { type: boolean, example: true }
|
||
code: { type: string, example: "0" }
|
||
message: { type: string }
|
||
errMessage: { type: string }
|
||
|
||
OrgPersonnelUpdateOriginFaceCmd:
|
||
type: object
|
||
required: [id]
|
||
properties:
|
||
id:
|
||
type: integer
|
||
format: int64
|
||
description: 人员ID
|
||
example: 10001
|
||
originFaceUrl:
|
||
type: string
|
||
description: 原始人像地址(人脸比对基准图)
|
||
example: "https://oss.example.com/face/10001.jpg"
|
||
|
||
OrgPersonnelCompareFaceCmd:
|
||
type: object
|
||
required: [personnelId, imageBase64]
|
||
properties:
|
||
personnelId:
|
||
type: integer
|
||
format: int64
|
||
description: 人员ID
|
||
example: 10001
|
||
imageBase64:
|
||
type: string
|
||
description: 待比对人脸图片 base64
|
||
example: "data:image/jpeg;base64,/9j/4AAQSkZJRg..."
|
||
|
||
OrgPersonnelCO:
|
||
type: object
|
||
properties:
|
||
id: { type: integer, format: int64 }
|
||
deptId: { type: integer, format: int64 }
|
||
postId: { type: integer, format: int64 }
|
||
userName: { type: string }
|
||
account: { type: string }
|
||
genderCode: { type: integer, format: int32 }
|
||
genderName: { type: string }
|
||
birthDate: { type: string, format: date }
|
||
joinWorkDate: { type: string, format: date }
|
||
idCardNo: { type: string }
|
||
currentAddress: { type: string }
|
||
officeAddress: { type: string }
|
||
educationCode: { type: string }
|
||
educationName: { type: string }
|
||
graduateSchool: { type: string }
|
||
major: { type: string }
|
||
basicDisciplineMajorId: { type: integer, format: int64 }
|
||
employmentStatusCode: { type: integer, format: int32 }
|
||
employmentStatusName: { type: string }
|
||
personTypeCode: { type: string }
|
||
personTypeName: { type: string }
|
||
qualScope: { type: string }
|
||
professionalLevelCode: { type: string }
|
||
professionalLevelName: { type: string }
|
||
evaluatorCertNo: { type: string }
|
||
educationTypeCode: { type: string }
|
||
educationTypeName: { type: string }
|
||
educationLevelCode: { type: string }
|
||
educationLevelName: { type: string }
|
||
titleCode: { type: string }
|
||
registerEngineerFlag: { type: integer, format: int32 }
|
||
publications: { type: string }
|
||
abilityDeclaration: { type: string }
|
||
workExperience: { type: string }
|
||
proofMaterialUrl: { type: string }
|
||
originFaceUrl: { type: string, description: 原始人像地址(人脸比对基准图) }
|
||
technicalDirectorFlag: { type: boolean }
|
||
processControlLeaderFlag: { type: boolean }
|
||
deptName: { type: string }
|
||
postName: { type: string }
|
||
certNames: { type: string }
|
||
changeCount: { type: integer, format: int32 }
|
||
resignApplyId: { type: integer, format: int64 }
|
||
resignAuditStatus: { type: integer, format: int32 }
|
||
tenantId: { type: integer, format: int64 }
|
||
|
||
SingleResponseOrgPersonnelCO:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SingleResponseBase'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
$ref: '#/components/schemas/OrgPersonnelCO'
|
||
|
||
SingleResponseBigDecimal:
|
||
allOf:
|
||
- $ref: '#/components/schemas/SingleResponseBase'
|
||
- type: object
|
||
properties:
|
||
data:
|
||
type: number
|
||
format: double
|
||
description: 人脸相似度(0~1,越大越相似)
|
||
example: 0.92
|