refactor(device): 重构设备基本信息表结构与请求实体

将 sys_sn_system_info 表的字段从旧的 sn_ 前缀命名统一重构为语义化命名,并扩充基本信息字段;同步更新 Java 请求实体 SnSystemInfoReq,字段与数据库表完全对齐,同时调整 display_version 列长度至 256。
This commit is contained in:
TongTongStudio
2026-08-05 10:53:35 +08:00
parent 3608c205b9
commit 749cf44754
2 changed files with 212 additions and 89 deletions

View File

@@ -2,72 +2,68 @@
-- 设备基本信息表sys_sn_system_info
-- 说明:仅存放设备【基本信息】面板数据;
-- 硬件信息 / 网络信息 / 安全信息 / 其他信息 已拆分至下列独立表。
-- 脚本遵循项目规范:不直连库,由 DBA 执行
--
-- 重要:部署环境中若已存在【旧结构】的 sys_sn_system_info列名为 sn_model、
-- sn_brand 等CREATE TABLE IF NOT EXISTS 不会重建,会导致实体查询报
-- "Unknown column 'device_name'"。因此此处先 DROP 再 CREATE确保表结构与
-- 实体SnDeviceSystemInfo完全一致。
-- 注意DROP 会清空该表历史数据,设备数据可由端上重新上报补齐。
-- 脚本由实体SnDeviceSystemInfo / DeviceSystemInfoVO生成字段逐一对应
-- 部署规范:不直连库,由 DBA 执行;先 DROP 再 CREATE 确保结构与实体完全一致
-- DROP 会清空该表历史数据,设备数据可由端上重新上报补齐)。
-- =============================================================================
DROP TABLE IF EXISTS `sys_sn_system_info`;
CREATE TABLE `sys_sn_system_info`
(
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno',
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`serialno` VARCHAR(64) NOT NULL COMMENT '设备序列号(关联 sys_sn.serialno',
-- ===================== 基本信息面板 =====================
`device_name` VARCHAR(128) DEFAULT NULL COMMENT '设备名称',
`device_brand` VARCHAR(64) DEFAULT NULL COMMENT '设备品牌',
`device_model` VARCHAR(64) DEFAULT NULL COMMENT '设备型号',
`device_board` VARCHAR(64) DEFAULT NULL COMMENT '主板名称',
`device_manufacturer` VARCHAR(64) DEFAULT NULL COMMENT '制造商',
`hardware` VARCHAR(64) DEFAULT NULL COMMENT '硬件信息',
`host` VARCHAR(64) DEFAULT NULL COMMENT '主机名',
`android_version` VARCHAR(32) DEFAULT NULL COMMENT 'Android 版本',
`android_api` INT DEFAULT NULL COMMENT 'Android API 级别',
`android_id` VARCHAR(64) DEFAULT NULL COMMENT 'Android ID',
`build_id` VARCHAR(64) DEFAULT NULL COMMENT 'Build ID',
`build_display_id` VARCHAR(128) DEFAULT NULL COMMENT 'Build Display ID',
`build_fingerprint` VARCHAR(255) DEFAULT NULL COMMENT 'Build 指纹',
`build_type` VARCHAR(32) DEFAULT NULL COMMENT 'Build 类型user/userdebug/eng',
`build_user` VARCHAR(64) DEFAULT NULL COMMENT 'Build 用户',
`build_host` VARCHAR(64) DEFAULT NULL COMMENT 'Build 主机',
`build_tags` VARCHAR(64) DEFAULT NULL COMMENT 'Build 标签',
`build_time` DATETIME DEFAULT NULL COMMENT 'Build 时间',
`language` VARCHAR(32) DEFAULT NULL COMMENT '系统语言',
`timezone` VARCHAR(64) DEFAULT NULL COMMENT '时区',
`boot_time` DATETIME DEFAULT NULL COMMENT '开机时间',
`screen_resolution` VARCHAR(32) DEFAULT NULL COMMENT '屏幕分辨率',
`screen_density` INT DEFAULT NULL COMMENT '屏幕密度',
`kernel_version` VARCHAR(128) DEFAULT NULL COMMENT '内核版本',
`rom_version` VARCHAR(128) DEFAULT NULL COMMENT 'ROM 版本',
`device_name` VARCHAR(128) DEFAULT NULL COMMENT '设备名称',
`device_brand` VARCHAR(64) DEFAULT NULL COMMENT '设备品牌',
`device_model` VARCHAR(64) DEFAULT NULL COMMENT '设备型号',
`device_board` VARCHAR(64) DEFAULT NULL COMMENT '主板名称',
`device_manufacturer` VARCHAR(64) DEFAULT NULL COMMENT '制造商',
`hardware` VARCHAR(64) DEFAULT NULL COMMENT '硬件信息',
`host` VARCHAR(64) DEFAULT NULL COMMENT '主机名',
`android_version` VARCHAR(32) DEFAULT NULL COMMENT 'Android 版本',
`android_api` INT DEFAULT NULL COMMENT 'Android API 级别',
`android_id` VARCHAR(64) DEFAULT NULL COMMENT 'Android ID',
`build_id` VARCHAR(64) DEFAULT NULL COMMENT 'Build ID',
`build_display_id` VARCHAR(128) DEFAULT NULL COMMENT 'Build Display ID',
`build_fingerprint` VARCHAR(255) DEFAULT NULL COMMENT 'Build 指纹',
`build_type` VARCHAR(32) DEFAULT NULL COMMENT 'Build 类型user/userdebug/eng',
`build_user` VARCHAR(64) DEFAULT NULL COMMENT 'Build 用户',
`build_host` VARCHAR(64) DEFAULT NULL COMMENT 'Build 主机',
`build_tags` VARCHAR(64) DEFAULT NULL COMMENT 'Build 标签',
`build_time` DATETIME DEFAULT NULL COMMENT 'Build 时间',
`language` VARCHAR(32) DEFAULT NULL COMMENT '系统语言',
`timezone` VARCHAR(64) DEFAULT NULL COMMENT '时区',
`boot_time` DATETIME DEFAULT NULL COMMENT '开机时间',
`screen_resolution` VARCHAR(32) DEFAULT NULL COMMENT '屏幕分辨率',
`screen_density` INT DEFAULT NULL COMMENT '屏幕密度',
`kernel_version` VARCHAR(128) DEFAULT NULL COMMENT '内核版本',
`rom_version` VARCHAR(128) DEFAULT NULL COMMENT 'ROM 版本',
-- ===================== 补充基本信息字段 =====================
`product_name` VARCHAR(128) DEFAULT NULL COMMENT '产品名称',
`product_model` VARCHAR(64) DEFAULT NULL COMMENT '产品型号',
`product_device` VARCHAR(64) DEFAULT NULL COMMENT '产品设备名',
`board_platform` VARCHAR(64) DEFAULT NULL COMMENT '主板平台',
`device_type` VARCHAR(32) DEFAULT NULL COMMENT '设备类型phone/tablet/tv等',
`is_tablet` TINYINT DEFAULT 0 COMMENT '是否平板0否 1是',
`release_version` VARCHAR(32) DEFAULT NULL COMMENT 'Android 发布版本号',
`display_version` VARCHAR(64) DEFAULT NULL COMMENT '显示版本号',
`bootloader` VARCHAR(64) DEFAULT NULL COMMENT 'Bootloader 版本',
`baseband_version` VARCHAR(64) DEFAULT NULL COMMENT '基带版本',
`radio_version` VARCHAR(64) DEFAULT NULL COMMENT 'Radio 版本',
`screen_size` VARCHAR(16) DEFAULT NULL COMMENT '屏幕尺寸(英寸,文本)',
`screen_inch` DECIMAL(4,2) DEFAULT NULL COMMENT '屏幕尺寸(数值,英寸)',
`refresh_rate` INT DEFAULT NULL COMMENT '屏幕刷新率Hz',
`os_type` VARCHAR(32) DEFAULT NULL COMMENT '操作系统类型',
`os_version` VARCHAR(32) DEFAULT NULL COMMENT '操作系统版本',
`firmware_version` VARCHAR(64) DEFAULT NULL COMMENT '固件版本',
`product_name` VARCHAR(128) DEFAULT NULL COMMENT '产品名称',
`product_model` VARCHAR(64) DEFAULT NULL COMMENT '产品型号',
`product_device` VARCHAR(64) DEFAULT NULL COMMENT '产品设备名',
`board_platform` VARCHAR(64) DEFAULT NULL COMMENT '主板平台',
`device_type` VARCHAR(32) DEFAULT NULL COMMENT '设备类型phone/tablet/tv等',
`is_tablet` TINYINT DEFAULT 0 COMMENT '是否平板0否 1是',
`release_version` VARCHAR(32) DEFAULT NULL COMMENT 'Android 发布版本号',
`display_version` VARCHAR(256) DEFAULT NULL COMMENT '显示版本号',
`bootloader` VARCHAR(64) DEFAULT NULL COMMENT 'Bootloader 版本',
`baseband_version` VARCHAR(64) DEFAULT NULL COMMENT '基带版本',
`radio_version` VARCHAR(64) DEFAULT NULL COMMENT 'Radio 版本',
`screen_size` VARCHAR(16) DEFAULT NULL COMMENT '屏幕尺寸(英寸,文本)',
`screen_inch` DECIMAL(4,2) DEFAULT NULL COMMENT '屏幕尺寸(数值,英寸)',
`refresh_rate` INT DEFAULT NULL COMMENT '屏幕刷新率Hz',
`os_type` VARCHAR(32) DEFAULT NULL COMMENT '操作系统类型',
`os_version` VARCHAR(32) DEFAULT NULL COMMENT '操作系统版本',
`firmware_version` VARCHAR(64) DEFAULT NULL COMMENT '固件版本',
-- ===================== 通用字段 =====================
`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
`update_time` DATETIME DEFAULT NULL COMMENT '更新时间',
`is_deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除0未删 1已删',
`create_time` DATETIME DEFAULT NULL COMMENT '创建时间',
`update_time` DATETIME DEFAULT NULL COMMENT '更新时间',
`is_deleted` TINYINT DEFAULT 0 COMMENT '逻辑删除0未删 1已删',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_serialno` (`serialno`),

View File

@@ -4,57 +4,184 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "设备基本信息")
@Data
public class SnSystemInfoReq {
@Schema(description="设备ID")
@Schema(description = "设备ID")
private Long id;
@Schema(description="SN")
@Schema(description = "SN")
private String serialno;
@Schema(description="WLAN MAC地址")
@JsonProperty("sn_wlan_mac")
private String snWlanMac;
@Schema(description = "设备名称")
@JsonProperty("device_name")
private String deviceName;
@Schema(description="设备MAC地址")
@JsonProperty("sn_device_mac")
private String snDeviceMac;
@Schema(description = "设备品牌")
@JsonProperty("device_brand")
private String deviceBrand;
@Schema(description="蓝牙MAC地址")
@JsonProperty("sn_bluetooth_mac")
private String snBluetoothMac;
@Schema(description = "设备型号")
@JsonProperty("device_model")
private String deviceModel;
@Schema(description="设备IMEI")
@JsonProperty("sn_imei")
private String snImei;
@Schema(description = "主板名称")
@JsonProperty("device_board")
private String deviceBoard;
@Schema(description="设备型号")
@JsonProperty("sn_model")
private String snModel;
@Schema(description = "制造商")
@JsonProperty("device_manufacturer")
private String deviceManufacturer;
@Schema(description="设备品牌")
@JsonProperty("sn_brand")
private String snBrand;
@Schema(description = "硬件信息")
@JsonProperty("hardware")
private String hardware;
@Schema(description="设备主板")
@JsonProperty("sn_board")
private String snBoard;
@Schema(description = "主机名")
@JsonProperty("host")
private String host;
@Schema(description="设备Android版本")
@JsonProperty("sn_android_version")
private String snAndroidVersion;
@Schema(description = "Android 版本")
@JsonProperty("android_version")
private String androidVersion;
@Schema(description="设备Android API")
@JsonProperty("sn_android_api")
private int snAndroidApi;
@Schema(description = "Android API 级别")
@JsonProperty("android_api")
private Integer androidApi;
@Schema(description="设备构建ID")
@JsonProperty("sn_build_id")
private String snBuildId;
@Schema(description = "Android ID")
@JsonProperty("android_id")
private String androidId;
@Schema(description="设备显示ID")
@JsonProperty("sn_build_display_id")
private String snBuildDisplayId;
@Schema(description = "Build ID")
@JsonProperty("build_id")
private String buildId;
@Schema(description = "Build Display ID")
@JsonProperty("build_display_id")
private String buildDisplayId;
@Schema(description = "Build 指纹")
@JsonProperty("build_fingerprint")
private String buildFingerprint;
@Schema(description = "Build 类型")
@JsonProperty("build_type")
private String buildType;
@Schema(description = "Build 用户")
@JsonProperty("build_user")
private String buildUser;
@Schema(description = "Build 主机")
@JsonProperty("build_host")
private String buildHost;
@Schema(description = "Build 标签")
@JsonProperty("build_tags")
private String buildTags;
@Schema(description = "Build 时间")
@JsonProperty("build_time")
private LocalDateTime buildTime;
@Schema(description = "系统语言")
@JsonProperty("language")
private String language;
@Schema(description = "时区")
@JsonProperty("timezone")
private String timezone;
@Schema(description = "开机时间")
@JsonProperty("boot_time")
private LocalDateTime bootTime;
@Schema(description = "屏幕分辨率")
@JsonProperty("screen_resolution")
private String screenResolution;
@Schema(description = "屏幕密度")
@JsonProperty("screen_density")
private Integer screenDensity;
@Schema(description = "内核版本")
@JsonProperty("kernel_version")
private String kernelVersion;
@Schema(description = "ROM 版本")
@JsonProperty("rom_version")
private String romVersion;
@Schema(description = "产品名称")
@JsonProperty("product_name")
private String productName;
@Schema(description = "产品型号")
@JsonProperty("product_model")
private String productModel;
@Schema(description = "产品设备名")
@JsonProperty("product_device")
private String productDevice;
@Schema(description = "主板平台")
@JsonProperty("board_platform")
private String boardPlatform;
@Schema(description = "设备类型phone/tablet/tv 等)")
@JsonProperty("device_type")
private String deviceType;
@Schema(description = "是否平板0否 1是")
@JsonProperty("is_tablet")
private Integer isTablet;
@Schema(description = "Android 发布版本号")
@JsonProperty("release_version")
private String releaseVersion;
@Schema(description = "显示版本号")
@JsonProperty("display_version")
private String displayVersion;
@Schema(description = "Bootloader 版本")
@JsonProperty("bootloader")
private String bootloader;
@Schema(description = "基带版本")
@JsonProperty("baseband_version")
private String basebandVersion;
@Schema(description = "Radio 版本")
@JsonProperty("radio_version")
private String radioVersion;
@Schema(description = "屏幕尺寸(英寸,文本)")
@JsonProperty("screen_size")
private String screenSize;
@Schema(description = "屏幕尺寸(数值,英寸)")
@JsonProperty("screen_inch")
private BigDecimal screenInch;
@Schema(description = "屏幕刷新率Hz")
@JsonProperty("refresh_rate")
private Integer refreshRate;
@Schema(description = "操作系统类型")
@JsonProperty("os_type")
private String osType;
@Schema(description = "操作系统版本")
@JsonProperty("os_version")
private String osVersion;
@Schema(description = "固件版本")
@JsonProperty("firmware_version")
private String firmwareVersion;
}