feat(机柜管理): 优化机柜导入导出功能

- 新增机柜导入预览功能,支持数据验证和错误提示
- 支持按选中机柜导出,优化导出文件名和提示信息
- 重构导入逻辑,分离Excel解析和验证逻辑
- 修复机柜关联设备查询问题,使用正确的关系别名
- 更新API文档,添加导入预览和选中导出接口说明
This commit is contained in:
zhang1106
2026-05-06 15:12:57 +08:00
parent 9c0fd0b3ff
commit fa39f2855f
11 changed files with 2095 additions and 543 deletions
+128 -6
View File
@@ -11,6 +11,9 @@
- [耗材管理](#耗材管理)
- [工单管理](#工单管理)
- [资产盘点](#资产盘点)
- [空闲设备管理](#空闲设备管理)
- [操作日志](#操作日志)
- [备份管理](#备份管理)
- [系统管理](#系统管理)
- [常见问题](#常见问题)
- [快捷操作参考](#快捷操作参考)
@@ -28,11 +31,14 @@ IDC设备资产系统是一款现代化的数据中心(IDC)设备管理平
| 功能模块 | 主要功能 |
|---------|---------|
| **仪表盘** | 数据中心运行状态实时监控,关键指标可视化展示 |
| **机房管理** | 机房信息管理、机柜管理、3D可视化展示 |
| **资产管理** | 设备管理、端口管理、线缆管理、字段配置 |
| **耗材管理** | 耗材库存管理、分类管理、操作日志、统计报表 |
| **工单管理** | 故障报修、维护工单、工单分类、统计报表 |
| **机房管理** | 机房信息管理、机柜管理、3D可视化展示、机房平面图 |
| **资产管理** | 设备管理、端口管理、线缆管理、网络拓扑、字段配置 |
| **耗材管理** | 耗材库存管理、分类管理、操作日志、统计报表、批量导入 |
| **工单管理** | 故障报修、维护工单、工单分类、统计报表、工单评价 |
| **资产盘点** | 盘点计划、盘点任务、暂存设备管理 |
| **空闲设备** | 空闲设备管理、设备转入/激活 |
| **操作日志** | 操作日志审计、模块/类型筛选、操作统计 |
| **备份管理** | 数据库备份恢复、自动备份、远端备份 |
| **系统管理** | 用户管理、角色权限、系统设置 |
### 系统特点
@@ -70,12 +76,15 @@ IDC设备资产系统是一款现代化的数据中心(IDC)设备管理平
├── 仪表盘 # 数据概览
├── 机房管理
│ ├── 机房管理 # 机房信息管理
│ ├── 机房平面图 # 机房平面图可视化
│ ├── 机柜管理 # 机柜信息管理
│ └── 3D机柜可视化 # 三维展示
├── 资产管理
│ ├── 设备管理 # 设备CRUD操作
│ ├── 空闲设备 # 空闲设备管理
│ ├── 字段管理 # 自定义字段配置
│ ├── 接线管理 # 线缆连接管理
│ ├── 网络拓扑 # 拓扑可视化
│ └── 端口管理 # 设备端口配置
├── 耗材管理
│ ├── 耗材统计 # 库存统计报表
@@ -90,6 +99,11 @@ IDC设备资产系统是一款现代化的数据中心(IDC)设备管理平
├── 资产盘点
│ ├── 盘点计划 # 盘点任务管理
│ └── 暂存设备 # 待确认设备
├── 备份管理
│ ├── 备份管理 # 数据库备份恢复
│ ├── 自动备份 # 定时备份配置
│ └── 远端备份 # 远程备份配置
├── 操作日志 # 操作审计日志
└── 系统管理
├── 用户管理 # 用户账号管理
└── 系统设置 # 系统参数配置
@@ -635,6 +649,114 @@ IDC设备资产系统是一款现代化的数据中心(IDC)设备管理平
---
### 空闲设备管理
空闲设备管理用于管理当前未上架或暂时不使用的设备。
#### 功能说明
- 查看所有空闲设备列表
- 将运行中设备转入空闲状态
- 将空闲设备重新激活上架
#### 操作流程
1. 在设备管理页面,选择需要转入空闲的设备
2. 点击「转入空闲」按钮
3. 确认操作后,设备状态变为空闲
4. 在「空闲设备」页面查看所有空闲设备
5. 需要重新使用时,点击「激活」按钮将设备恢复
---
### 操作日志
操作日志用于审计系统中所有用户操作记录。
#### 功能说明
| 功能 | 说明 |
|------|------|
| **日志查询** | 按时间范围、操作模块、操作类型筛选 |
| **模块列表** | 查看系统所有操作模块 |
| **操作类型** | 查看所有操作类型(创建/更新/删除等) |
| **操作统计** | 按模块和类型维度统计操作次数 |
| **日志详情** | 查看单条操作的详细信息 |
#### 操作说明
1. 进入「操作日志」页面
2. 使用筛选条件缩小查询范围:
- **时间范围**:选择起止日期
- **操作模块**:选择设备/工单/耗材等模块
- **操作类型**:选择创建/更新/删除等类型
3. 点击日志条目查看详细信息
4. 可查看操作统计图表
---
### 备份管理
备份管理用于数据库的备份与恢复,保障数据安全。
#### 备份管理
##### 手动备份
1. 进入「备份管理」页面
2. 点击「创建备份」按钮
3. 系统自动创建数据库备份文件
4. 备份完成后显示在备份列表中
##### 备份恢复
1. 在备份列表中选择要恢复的备份文件
2. 点击「恢复」按钮
3. 确认恢复操作(此操作会覆盖当前数据)
4. 系统显示恢复进度,完成后自动重启服务
##### 备份文件管理
| 操作 | 说明 |
|------|------|
| **上传** | 上传外部备份文件 |
| **下载** | 下载备份文件到本地 |
| **删除** | 删除不需要的备份文件 |
| **验证** | 验证备份文件完整性 |
#### 自动备份
##### 配置自动备份
1. 进入「自动备份」设置页面
2. 开启自动备份开关
3. 配置备份计划:
- **Cron 表达式**:设置备份执行时间(如 `0 2 * * *` 表示每天凌晨2点)
- **保留数量**:设置保留的备份文件数量
4. 点击「测试 Cron」验证表达式是否正确
5. 保存配置
#### 远端备份
##### 配置远端备份
1. 进入「远端备份」设置页面
2. 点击「添加目标」
3. 选择备份协议:
- **FTP**:文件传输协议
- **SFTP**:安全文件传输协议
- **WebDAV**Web 分布式创作协议
- **SMB**:网络文件共享协议
4. 填写连接信息:
- 主机地址
- 端口号
- 用户名/密码
- 远程目录
5. 点击「测试连接」验证配置
6. 保存配置
---
### 系统管理
#### 用户管理
@@ -812,5 +934,5 @@ A: 已关闭的工单无法重新打开,如有新问题请新建工单。
---
**文档版本**v1.0.0
**最后更新**2026年3
**文档版本**v2.0.0
**最后更新**2026年5
+416 -2
View File
@@ -21,11 +21,16 @@
- [耗材管理接口](#耗材管理接口)
- [耗材分类接口](#耗材分类接口)
- [耗材记录接口](#耗材记录接口)
- [盘点管理接口](#盘点管理接口)
- [空闲设备接口](#空闲设备接口)
- [操作日志接口](#操作日志接口)
- [备份管理接口](#备份管理接口)
- [仓库管理接口](#仓库管理接口)
- [拓扑管理接口](#拓扑管理接口)
- [用户管理接口](#用户管理接口)
- [角色管理接口](#角色管理接口)
- [系统设置接口](#系统设置接口)
- [背景配置接口](#背景配置接口)
- [盘点管理接口](#盘点管理接口)
- [健康检查接口](#健康检查接口)
- [错误码说明](#错误码说明)
@@ -2310,9 +2315,418 @@ GET /health
| /api/inventory/pending-devices/:pendingId | GET/PUT/DELETE | 暂存设备详情/更新/删除 |
| /api/inventory/pending-devices/:pendingId/sync | POST | 同步暂存设备 |
| /api/inventory/pending-devices/batch-sync | POST | 批量同步暂存设备 |
---
## 空闲设备接口
### 获取空闲设备列表
```http
GET /api/idle-devices
```
**查询参数:**
| 参数名 | 类型 | 描述 |
|--------|------|------|
| keyword | string | 关键词搜索 |
| roomId | string | 按机房筛选 |
| page | number | 页码 |
| pageSize | number | 每页数量 |
### 添加空闲设备
```http
POST /api/idle-devices
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| deviceId | string | 是 | 设备ID |
### 激活空闲设备
```http
PUT /api/idle-devices/:deviceId/activate
```
### 删除空闲设备
```http
DELETE /api/idle-devices/:deviceId
```
---
## 操作日志接口
### 获取操作日志列表
```http
GET /api/operation-logs
```
**查询参数:**
| 参数名 | 类型 | 描述 |
|--------|------|------|
| module | string | 按模块筛选 |
| operationType | string | 按操作类型筛选 |
| startDate | string | 开始日期 |
| endDate | string | 结束日期 |
| operator | string | 按操作人筛选 |
| keyword | string | 关键词搜索 |
| page | number | 页码 |
| pageSize | number | 每页数量 |
### 获取模块列表
```http
GET /api/operation-logs/modules
```
### 获取操作类型列表
```http
GET /api/operation-logs/types
```
### 获取操作日志统计
```http
GET /api/operation-logs/statistics
```
**查询参数:**
| 参数名 | 类型 | 描述 |
|--------|------|------|
| startDate | string | 开始日期 |
| endDate | string | 结束日期 |
### 获取操作日志详情
```http
GET /api/operation-logs/:recordId
```
---
## 备份管理接口
### 创建备份
```http
POST /api/backup
```
### 获取备份列表
```http
GET /api/backup/list
```
### 验证备份文件
```http
GET /api/backup/validate/:filename
```
### 获取恢复进度(SSE
```http
GET /api/backup/restore-progress/:filename
```
**说明:** 返回 Server-Sent Events 流,实时推送恢复进度
### 恢复备份
```http
POST /api/backup/restore
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| filename | string | 是 | 备份文件名 |
### 上传备份文件
```http
POST /api/backup/upload
```
**Content-Type**: `multipart/form-data`
### 下载备份文件
```http
GET /api/backup/download/:filename
```
### 删除备份文件
```http
DELETE /api/backup/:filename
```
### 获取备份信息
```http
GET /api/backup/info
```
### 清理旧备份
```http
POST /api/backup/clean
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| keepCount | number | 否 | 保留的备份数量 |
### 获取自动备份状态
```http
GET /api/backup/auto/status
```
### 更新自动备份设置
```http
POST /api/backup/auto/settings
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| enabled | boolean | 是 | 是否启用 |
| cronExpression | string | 否 | Cron 表达式 |
| keepCount | number | 否 | 保留数量 |
### 立即执行自动备份
```http
POST /api/backup/auto/execute
```
### 测试 Cron 表达式
```http
POST /api/backup/auto/test-cron
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| cronExpression | string | 是 | Cron 表达式 |
### 获取远端备份目标列表
```http
GET /api/backup/remote/targets
```
### 获取单个远端备份目标
```http
GET /api/backup/remote/targets/:id
```
### 添加远端备份目标
```http
POST /api/backup/remote/targets
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| name | string | 是 | 目标名称 |
| protocol | string | 是 | 协议(ftp/sftp/webdav/smb |
| host | string | 是 | 主机地址 |
| port | number | 否 | 端口号 |
| username | string | 否 | 用户名 |
| password | string | 否 | 密码 |
| remotePath | string | 否 | 远程目录 |
### 更新远端备份目标
```http
PUT /api/backup/remote/targets/:id
```
### 删除远端备份目标
```http
DELETE /api/backup/remote/targets/:id
```
### 测试远端连接
```http
POST /api/backup/remote/test
```
### 测试指定远端连接
```http
POST /api/backup/remote/targets/:id/test
```
### 获取远端备份设置
```http
GET /api/backup/remote/settings
```
### 更新远端备份设置
```http
PUT /api/backup/remote/settings
```
### 获取支持的协议列表
```http
GET /api/backup/remote/protocols
```
### 手动上传备份到远端
```http
POST /api/backup/remote/upload
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| filename | string | 是 | 备份文件名 |
| targetId | string | 是 | 远端目标ID |
### 获取备份日志列表
```http
GET /api/backup/logs
```
### 获取备份日志详情
```http
GET /api/backup/logs/:id
```
### 清理旧备份日志
```http
DELETE /api/backup/logs/clean
```
---
## 仓库管理接口
### 获取仓库列表
```http
GET /api/warehouses
```
### 创建仓库
```http
POST /api/warehouses
```
**请求参数:**
| 参数名 | 类型 | 必填 | 描述 |
|--------|------|------|------|
| name | string | 是 | 仓库名称 |
| location | string | 否 | 仓库位置 |
| description | string | 否 | 描述 |
| manager | string | 否 | 负责人 |
| contact | string | 否 | 联系方式 |
### 获取单个仓库
```http
GET /api/warehouses/:warehouseId
```
### 更新仓库
```http
PUT /api/warehouses/:warehouseId
```
### 删除仓库
```http
DELETE /api/warehouses/:warehouseId
```
---
## 拓扑管理接口
### 获取交换机拓扑
```http
GET /api/topology/switch/:switchId
```
**响应示例:**
```json
{
"success": true,
"data": {
"switch": {
"deviceId": "dev001",
"name": "核心交换机",
"type": "switch"
},
"connections": [
{
"deviceId": "dev002",
"name": "服务器01",
"type": "server",
"port": "eth0",
"cableId": "cable001"
}
]
}
}
```
### 获取设备拓扑
```http
GET /api/topology/device/:deviceId
```
---
## 健康检查接口
| 端点 | 方法 | 说明 |
|------|------|------|
| /health | GET | 服务健康检查 |
---
**文档版本:** 2.0.0
**最后更新:** 2026-03-11
**最后更新:** 2026年5月