From eebbacafdebaf63e7c72264777585b6ac417f02e Mon Sep 17 00:00:00 2001 From: lvfengfree Date: Wed, 21 Jan 2026 16:16:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0OS=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E6=89=AB=E6=8F=8F=E5=92=8CUUID=E7=BB=91=E5=AE=9A=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加OsDevice模型和OsDevicesController - 实现WindowsScannerService用于网络扫描和WMI查询 - 添加AMT设备UUID查询功能(从CIM_ComputerSystemPackage获取PlatformGUID) - 实现PlatformGUID到标准UUID格式的转换(字节序转换) - 修复HardwareInfoRepository保存UUID的问题 - 前端添加OS设备管理页面和UUID获取/刷新按钮 - 添加数据库迁移脚本 --- adminSystem/src/api/amt.ts | 80 ++ adminSystem/src/views/amt/devices.vue | 37 +- .../views/amt/modules/hardware-info-modal.vue | 5 +- .../src/views/desktop-manage/os-devices.vue | 330 ++++++++ .../AmtScanner.Api/AmtScanner.Api.csproj | 1 + .../Controllers/OsDevicesController.cs | 323 ++++++++ .../AmtScanner.Api/Data/AppDbContext.cs | 31 + ...62236_AddOsDeviceAndSystemUuid.Designer.cs | 738 +++++++++++++++++ ...20260121062236_AddOsDeviceAndSystemUuid.cs | 102 +++ ...49_AddSystemUuidToHardwareInfo.Designer.cs | 741 ++++++++++++++++++ ...60121071149_AddSystemUuidToHardwareInfo.cs | 29 + .../Migrations/AppDbContextModelSnapshot.cs | 85 ++ .../AmtScanner.Api/Models/AmtDevice.cs | 5 + .../AmtScanner.Api/Models/HardwareInfo.cs | 5 + .../AmtScanner.Api/Models/HardwareInfoDto.cs | 1 + .../AmtScanner.Api/Models/OsDevice.cs | 103 +++ backend-csharp/AmtScanner.Api/Program.cs | 1 + .../Repositories/HardwareInfoRepository.cs | 1 + .../Services/AmtHardwareQueryService.cs | 156 ++++ .../Services/HardwareInfoService.cs | 12 +- .../Services/WindowsScannerService.cs | 465 +++++++++++ .../AmtScanner.Api/add_os_devices_menu.sql | 11 + 22 files changed, 3259 insertions(+), 3 deletions(-) create mode 100644 adminSystem/src/views/desktop-manage/os-devices.vue create mode 100644 backend-csharp/AmtScanner.Api/Controllers/OsDevicesController.cs create mode 100644 backend-csharp/AmtScanner.Api/Migrations/20260121062236_AddOsDeviceAndSystemUuid.Designer.cs create mode 100644 backend-csharp/AmtScanner.Api/Migrations/20260121062236_AddOsDeviceAndSystemUuid.cs create mode 100644 backend-csharp/AmtScanner.Api/Migrations/20260121071149_AddSystemUuidToHardwareInfo.Designer.cs create mode 100644 backend-csharp/AmtScanner.Api/Migrations/20260121071149_AddSystemUuidToHardwareInfo.cs create mode 100644 backend-csharp/AmtScanner.Api/Models/OsDevice.cs create mode 100644 backend-csharp/AmtScanner.Api/Services/WindowsScannerService.cs create mode 100644 backend-csharp/AmtScanner.Api/add_os_devices_menu.sql diff --git a/adminSystem/src/api/amt.ts b/adminSystem/src/api/amt.ts index 934fb69..7149fe7 100644 --- a/adminSystem/src/api/amt.ts +++ b/adminSystem/src/api/amt.ts @@ -311,3 +311,83 @@ export const remoteDesktopApi = { }) } } + +// 操作系统设备 API +export const osDeviceApi = { + // 获取所有操作系统设备 + getAll() { + return request.get({ + url: '/api/os-devices' + }) + }, + + // 获取单个设备 + getById(id: number) { + return request.get({ + url: `/api/os-devices/${id}` + }) + }, + + // 启动操作系统扫描 + startScan(networkSegment: string, subnetMask: string) { + return request.post({ + url: '/api/os-devices/scan/start', + params: { networkSegment, subnetMask } + }) + }, + + // 获取扫描状态 + getScanStatus(taskId: string) { + return request.get({ + url: `/api/os-devices/scan/status/${taskId}` + }) + }, + + // 取消扫描 + cancelScan(taskId: string) { + return request.post({ + url: `/api/os-devices/scan/cancel/${taskId}` + }) + }, + + // 获取设备详细信息(通过 WMI) + fetchInfo(id: number, credentials: { username: string; password: string }) { + return request.post({ + url: `/api/os-devices/${id}/fetch-info`, + data: credentials, + showSuccessMessage: true + }) + }, + + // 手动绑定 AMT 设备 + bindAmt(id: number, amtDeviceId: number) { + return request.post({ + url: `/api/os-devices/${id}/bind-amt/${amtDeviceId}`, + showSuccessMessage: true + }) + }, + + // 解除 AMT 绑定 + unbindAmt(id: number) { + return request.post({ + url: `/api/os-devices/${id}/unbind-amt`, + showSuccessMessage: true + }) + }, + + // 自动绑定所有设备 + autoBind() { + return request.post({ + url: '/api/os-devices/auto-bind', + showSuccessMessage: true + }) + }, + + // 删除设备 + delete(id: number) { + return request.del({ + url: `/api/os-devices/${id}`, + showSuccessMessage: true + }) + } +} diff --git a/adminSystem/src/views/amt/devices.vue b/adminSystem/src/views/amt/devices.vue index f165c16..18d9d78 100644 --- a/adminSystem/src/views/amt/devices.vue +++ b/adminSystem/src/views/amt/devices.vue @@ -28,6 +28,23 @@ + + +