Skip to content

设备实体模型设计

**本文档引用的文件** - [device.sql](file://docs/ddl/device.sql) - [DeviceMainDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/device/DeviceMainDo.java) - [basicInfo.vue](file://app/devicemate-app/modules/equipment/basicInfo.vue) - [equipment.js](file://app/devicemate-app/store/modules/equipment.js) - [DeviceTypeApi.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-common/src/main/java/com/lenovo/lemes/service/dm/device/api/DeviceTypeApi.java)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构概览
  5. 详细组件分析
  6. 依赖分析
  7. 性能考虑
  8. 故障排除指南
  9. 结论

简介

本文件系统性梳理设备实体模型的设计与实现,围绕设备主数据表(device)、设备台账表(equipment)、设备分类表(device_class)等核心实体,详细解析字段定义、数据类型、约束条件与业务规则,并阐明实体间关联关系、外键约束与数据完整性保障机制。同时,结合前端展示与后端接口,完整呈现设备生命周期管理的数据流转过程与业务逻辑。

项目结构

设备实体模型涉及三层协同:

  • 数据层:PostgreSQL DDL 定义的设备相关表结构
  • 业务层:Java 实体模型与接口定义
  • 表现层:前端页面与状态管理

图表来源

章节来源

核心组件

本节聚焦设备实体模型的关键表与字段,结合DDL注释与Java实体映射,给出字段字典与业务规则说明。

  • 设备主数据表(device)

    • 字段要点
      • 设备唯一标识:设备编号(device_no)、设备编码(device_code)、设备名称(device_name)
      • 设备状态:设备状态字段用于标识设备运行、停机、维修等状态
      • 设备位置:设备所在产线(line_no/line_code)、产品线(product_line_no/product_line_name)
      • 设备分类:设备分类字段(device_classify)与分类名称(device_classify_name)
      • 关键属性:重要程度(is_important)、设备种类代号(device_type_no)
    • 约束与完整性
      • 主键:自增ID
      • 逻辑删除:is_delete 标识
      • 外键:与产线(line)、产品线(product_line)、设备分类(device_class)等关联
    • 业务规则
      • 设备编码与编号需满足唯一性与可追溯性
      • 设备状态变更需遵循工作流或审批流程
      • 设备位置与产线绑定,确保资产定位准确
  • 设备台账表(equipment)

    • 字段要点
      • 资产编号(asset_number)、初始价值(asset_init_value)、折旧年限(depreciable_life)、折旧截止日期(depreciable_end_date)
      • 责任人信息(asset_person_name)
      • 生产日期(date_of_production)、制造商(device_manufacturer)、最后CPK(last_cpk)
    • 约束与完整性
      • 与设备主数据(device)建立一对一或一对多关联
      • 资产字段支持财务折旧计算与资产管理
    • 业务规则
      • 资产信息与设备物理信息分离,便于独立维护
      • 折旧年限与价值影响后续折旧策略与报表
  • 设备分类表(device_class)

    • 字段要点
      • 分类编号(class_no)、分类名称(class_name)、父级分类(parent_class_no)
      • 有效标志(valid_flag)、创建/更新时间(create_time/update_time)
    • 约束与完整性
      • 层级结构通过parent_class_no维护
      • 逻辑删除与有效性控制
    • 业务规则
      • 支持多级分类,便于设备检索与统计分析
  • 相关辅助表

    • 产线(line):包含工厂代号(factory_no)、产线编码(line_code)、产线名称(line_name)、有效标志(valid_flag)
    • 产品线(product_line):包含工厂代号、产品线代号、编码、名称、有效标志
    • 设备类型(device_type):与物料(part_main)关联,用于设备种类查询

章节来源

架构概览

设备实体模型贯穿数据层、业务层与表现层,形成“数据定义—实体映射—接口暴露—前端展示”的完整链路。

图表来源

详细组件分析

设备主数据表(device)字段字典

  • 设备唯一标识
    • 设备编号(device_no):设备在企业内的唯一识别码,用于业务操作与报表
    • 设备编码(device_code):设备的标准编码,便于系统间对接与扫描识别
    • 设备名称(device_name):设备显示名称,便于人工识别
  • 设备状态
    • 设备状态字段:标识设备当前状态(运行、停机、维修、报废等),驱动工作流与权限控制
  • 设备位置
    • 产线信息:line_no/line_code/product_line_no/product_line_name,明确设备所属产线与产品线
  • 设备分类
    • 设备分类字段(device_classify)与分类名称(device_classify_name),支撑分类统计与检索
  • 关键属性
    • 重要程度(is_important):区分关键设备与一般设备,影响维护策略与监控强度
    • 设备种类代号(device_type_no):与物料关联,用于设备类型查询与配置

章节来源

设备台账表(equipment)字段字典

  • 资产信息
    • 资产编号(asset_number)、初始价值(asset_init_value)、折旧年限(depreciable_life)、折旧截止日期(depreciable_end_date)
    • 责任人信息(asset_person_name)
  • 设备属性
    • 生产日期(date_of_production)、制造商(device_manufacturer)、最后CPK(last_cpk)

章节来源

设备分类表(device_class)字段字典

  • 分类信息
    • 分类编号(class_no)、分类名称(class_name)、父级分类(parent_class_no)
  • 控制字段
    • 有效标志(valid_flag)、创建/更新时间(create_time/update_time)

章节来源

Java实体模型(DeviceMainDo)

  • 字段映射
    • 设备编码(deviceCode)、设备编号(deviceNo)、设备名称(deviceName)
    • 产品线名称(productLineName)、产品线代号(productLineNo)
    • 产线代号(lineNo)、产线名称(lineName)、产线编码(lineCode)
    • 设备分类名称(deviceClassifyName)、设备分类(deviceClassify)
    • 重要程度(isImportant)、设备种类代号(deviceTypeNo)

章节来源

前端展示与状态管理

  • 页面展示
    • 基础信息页(basicInfo.vue)展示设备来源、生产日期、制造商、最后CPK等信息
  • 状态管理
    • 设备状态模块(equipment.js)维护设备编码、设备编号、图片URL等状态,供页面与接口调用

章节来源

接口与数据流转

  • 设备类型查询接口(DeviceTypeApi)
    • 功能:根据关联物料(partNo)查询设备种类
    • 参数:partNo(必填)
    • 返回:设备类型VO封装结果
  • 数据流转
    • 前端设置设备编码/编号到状态管理
    • 调用接口获取设备类型信息
    • 后端实体模型组装返回数据
    • 前端渲染设备基础信息

章节来源

依赖分析

设备实体模型的依赖关系体现在表间外键与业务实体间的关联。

图表来源

章节来源

性能考虑

  • 索引与唯一性
    • 设备编码与编号需建立唯一索引,确保查询与去重效率
    • 产线、产品线、设备分类等维度字段建议建立索引,提升关联查询性能
  • 逻辑删除
    • 使用is_delete进行软删除,避免全表扫描,但需在查询中显式过滤
  • 分页与缓存
    • 设备列表查询建议分页,结合Redis缓存热点设备信息
  • 关联查询优化
    • 设备主数据与台账、分类、产线等表的关联查询应使用JOIN并限制返回字段

故障排除指南

  • 设备状态异常
    • 现象:设备状态不随工作流变化
    • 排查:检查设备状态字段更新逻辑与审批流程触发点
  • 设备位置错配
    • 现象:设备归属产线/产品线错误
    • 排查:核对line_no、product_line_no字段一致性,检查产线/产品线有效性(valid_flag)
  • 设备分类缺失
    • 现象:设备分类字段为空或无效
    • 排查:确认DEVICE_CLASS表数据完整性与外键关联
  • 前端显示异常
    • 现象:设备基础信息不显示或为空
    • 排查:检查equipment.js状态更新逻辑与DeviceTypeApi接口返回值

章节来源

结论

设备实体模型通过清晰的表结构设计、严格的字段约束与业务规则,实现了设备从主数据到台账、从分类到位置的全生命周期管理。前后端协同与接口化设计,确保了设备信息的准确性与可追溯性。建议持续完善索引策略与缓存机制,以进一步提升系统性能与用户体验。