新增设备类型选项接口
Some checks failed
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Has been cancelled

This commit is contained in:
2026-09-22 12:35:26 +08:00
parent 22c3e7cc1a
commit 4330b8a40c
28 changed files with 671 additions and 8 deletions

View File

@@ -0,0 +1,55 @@
# 设备类型选项当前行为
## Purpose
为管理端提供稳定、可直接用于筛选控件的设备类型选项来源,避免前端分页读取全部设备后自行去重,并确保 H5 弹窗配置提交的值与系统实际设备类型一致。
## Requirements
### Requirement: 管理端可查询去重设备类型
系统 MUST 提供一个受平台管理权限保护的只读接口,返回当前有效设备记录中的设备类型选项。
#### Scenario: 返回有效设备的非空去重类型
- **WHEN** 具备平台管理权限的调用方请求设备类型选项接口
- **THEN** 系统仅从未删除设备中读取 `device_type`
- **AND** 忽略空字符串及仅包含空白字符的值
- **AND** 对去除首尾空白后的设备类型进行去重
- **AND** 每个设备类型只返回一次
#### Scenario: 返回顺序稳定
- **WHEN** 查询成功
- **THEN** 系统按设备类型值的确定性升序返回结果
- **AND** 相同接口请求在数据未变化时返回相同顺序
#### Scenario: 返回值可直接用于弹窗配置
- **WHEN** 前端获取设备类型选项
- **THEN** 每个选项的值 MUST 是系统设备记录中用于匹配的设备类型字符串
- **AND** 前端可将该值原样放入 H5 弹窗配置的 `device_types` 数组
- **AND** 接口不得把设备类型转换为设备 ID、设备型号或固定枚举编码
### Requirement: 空结果与权限错误语义明确
接口 MUST 使用现有管理端接口的统一响应和错误语义。
#### Scenario: 当前没有有效设备类型
- **WHEN** 当前有效设备没有非空设备类型
- **THEN** 接口返回成功响应
- **AND** 设备类型列表为空
- **AND** 不返回空值占位项
#### Scenario: 调用方无平台管理权限
- **WHEN** 非超级管理员或平台账号请求接口
- **THEN** 系统拒绝请求并返回统一的无权限错误
- **AND** 不泄露设备类型数据
#### Scenario: 数据库查询失败
- **WHEN** 读取设备类型时发生数据库错误
- **THEN** 接口返回统一的数据库错误
- **AND** 不返回部分或伪造的设备类型列表

View File

@@ -209,4 +209,4 @@
### 核销申请
`POST /api/admin/employee-collection-applications`(创建核销申请);`GET /api/admin/employee-collection-applications`(查询核销申请);`GET /api/admin/employee-collection-applications/{id}`(查询核销申请详情);`PUT /api/admin/employee-collection-applications/{id}`(修改并重提核销申请)。
`POST /api/admin/employee-collection-applications`(创建核销申请);`GET /api/admin/employee-collection-applications`(查询核销申请);`GET /api/admin/employee-collection-applications/{id}`(查询核销申请详情);`PUT /api/admin/employee-collection-applications/{id}`(修改并重提核销申请)`POST /api/admin/employee-collection-applications/{id}/recover-approval`(恢复原审批提交)