Skip to content

设备管理数据库架构

**本文档引用的文件** - [device.sql](file://docs/ddl/device.sql) - [workflow.sql](file://docs/ddl/workflow.sql) - [DeviceMainMapper.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-server/src/main/java/com/lenovo/lemes/service/dm/device/mapper/DeviceMainMapper.java) - [DeviceMeasurePlanMapper.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-server/src/main/java/com/lenovo/lemes/service/dm/device/mapper/DeviceMeasurePlanMapper.java) - [DeviceMainDo.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/client/entity/inner/DeviceMainDo.java) - [DeviceMeasurePlanDo.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/client/entity/inner/DeviceMeasurePlanDo.java) - [MaintenanceWorkOrdersMapper.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/mapper/device/MaintenanceWorkOrdersMapper.java) - [execute.vue(巡检)](file://app/devicemate-app/modules/inspectTasks/execute.vue) - [execute.vue(点检)](file://app/devicemate-app/modules/patrolTasks/execute.vue)

目录

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

简介

本文件面向设备管理模块的数据库架构,系统性梳理设备台账、维护计划、工单流程、点检与巡检等核心业务实体的表结构设计、字段定义、约束与索引策略,并阐述表间外键关系、联表查询优化与数据完整性保障机制。同时提供完整的DDL脚本路径与数据字典说明,覆盖设备生命周期管理的数据流转与业务规则落地。

项目结构

设备管理相关代码与数据结构主要分布在以下位置:

  • DDL脚本:docs/ddl/device.sql、docs/ddl/workflow.sql
  • 后端Mapper与实体:lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-server 与 lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-common
  • 工作流与工单执行:lemes-job-devicemate/lemes-job-devicemate-executor
  • 前端执行页面:app/devicemate-app/modules/inspectTasks/execute.vue、app/devicemate-app/modules/patrolTasks/execute.vue

图表来源

章节来源

核心组件

本节聚焦设备管理的关键表与实体,包括:

  • 设备主数据表(device_main)
  • 维护任务表(maintenance_tasks)
  • 工单表(maintenance_work_orders)
  • 点检计划表(inspection_plans)
  • 计量计划表(device_measure_plan)
  • 工作流审计与流程表(flow_audit_log、flow_business_config等)

章节来源

架构总览

设备管理数据库围绕“设备主数据—维护计划—工单—点检/巡检—工作流”的主线展开,形成从计划到执行再到审计闭环的数据流。

图表来源

详细组件分析

设备主数据表(device_main)

  • 表用途:承载设备全生命周期主数据,包括设备编号、序列号、所属部门/产线、责任人、线体、资产信息、计量标记等。
  • 关键字段与约束:
    • 主键:自增ID(部分表通过序列生成)
    • 唯一性:设备编号与工厂维度唯一性约束(依据实体类注解映射至表名)
    • 字段示例:设备代号、设备编号、设备序列号、设备名称、设备型号、制造商代号、部门代号、线体代号、产品线代号、设备分类、设备状态、启用日期、备注、RFID、创建/更新时间、逻辑删除标识
  • 索引策略:建议对设备编号、设备序列号、部门代号、产品线代号建立常用查询索引,以支撑设备检索与报表统计。
  • 数据完整性:通过NOT NULL与长度限制确保关键字段一致性;逻辑删除字段统一管理。

章节来源

维护任务表(maintenance_tasks)

  • 表用途:维护计划驱动的任务实体,记录任务编号、名称、设备、计划、任务类型、计划开始/结束、任务状态等。
  • 关键字段与约束:
    • 外键:关联设备主数据(device_no)、计量计划(plan_no)、点检计划(plan_no)
    • 状态:任务状态字段用于跟踪任务执行进度
  • 索引策略:对设备编号、计划编号、任务状态建立索引,提升任务查询与调度效率。

章节来源

工单表(maintenance_work_orders)

  • 表用途:具体执行单元,承载工单编号、任务编号、设备信息、执行人、确认人、工单类型、实际开始/结束时间、工单状态等。
  • 关键字段与约束:
    • 主键:自增ID
    • 关联:与任务表、设备表强关联,支持按设备、任务、状态多维检索
  • 索引策略:对工单编号、设备编号、任务编号、执行人、工单状态建立复合或单列索引,满足移动端与后台查询需求。

章节来源

点检计划表(inspection_plans)

  • 表用途:点检/巡检计划的载体,记录计划编号、名称、设备、内容、类型、生效日期、计划状态等。
  • 关键字段与约束:
    • 外键:关联设备主数据(device_no)
    • 状态:计划状态字段用于控制计划启用/停用
  • 索引策略:对设备编号、计划类型、生效日期、计划状态建立索引,便于计划下发与执行。

章节来源

计量计划表(device_measure_plan)

  • 表用途:计量类计划的载体,记录计划编号、名称、说明、计划日期、提醒设置、责任人、审批信息、计划状态、完成状态等。
  • 关键字段与约束:
    • 实体类映射:与表名一致,字段涵盖提醒单位、提醒值、提醒人、审批单号与状态等
  • 索引策略:对计划日期、责任人、计划状态建立索引,支撑提醒与统计。

章节来源

工作流审计与流程表(flow_audit_log、flow_business_config等)

  • 表用途:支撑工单与各类业务的审批流程,记录流程实例、节点、审批人、审批状态、申请时间、业务单号与类型等。
  • 关键字段与约束:
    • 审批日志:记录每个节点的审批动作与时间
    • 流程配置:业务代码与流程图KEY映射、节点数等
  • 索引策略:对业务单号、流程实例ID、节点索引、申请时间建立索引,支撑流程追踪与统计。

章节来源

前端执行页面与后端接口交互

章节来源

依赖分析

  • 表间依赖:
    • 设备主数据(device_main)是多表的上游主数据,被维护任务、工单、点检计划等引用
    • 维护任务(maintenance_tasks)作为计划到执行的桥梁,连接计量计划(device_measure_plan)与工单(maintenance_work_orders)
    • 工单(maintenance_work_orders)与工作流审计(flow_audit_log)形成审批闭环
  • Mapper与实体依赖:
    • DeviceMainMapper、DeviceMeasurePlanMapper分别映射设备与计量计划的查询与分页能力
    • MaintenanceWorkOrdersMapper支撑工单的持久化操作
  • 前后端依赖:
    • 前端执行页面通过后端接口获取工单详情,体现工单与设备信息的关联

图表来源

性能考虑

  • 索引优化
    • 对设备编号(device_no)、设备序列号(device_serial_number)、部门代号(dept_no)、产品线代号(product_line_no)建立索引,提升设备检索与报表统计性能
    • 对工单编号(work_order_no)、任务编号(task_no)、设备编号(device_no)、执行人(excutor_name)、工单状态(work_status)建立索引,支撑移动端与后台查询
    • 对计量计划(plan_date)、责任人(charge_person_no)、计划状态(plan_status)建立索引,支撑提醒与统计
  • 查询优化
    • 分页查询:DeviceMainMapper提供分页查询接口,建议结合索引与LIMIT/OFFSET进行优化
    • 联表查询:优先使用JOIN + WHERE + ORDER BY + LIMIT组合,避免SELECT *
  • 缓存策略
    • 高频查询字段可引入Redis缓存,降低数据库压力
  • 批处理
    • 工单批量生成与状态更新采用事务批处理,减少锁竞争

故障排查指南

结论

设备管理数据库以设备主数据为核心,通过维护任务与工单承接计划执行,配合点检/巡检与工作流审批形成闭环。通过合理的索引策略、查询优化与实体映射,能够有效支撑移动端与后台系统的高并发访问与稳定运行。建议持续完善索引覆盖与缓存策略,确保在设备规模扩大时仍保持良好性能。

附录

DDL脚本与数据字典

  • 设备主数据(device_main)
    • 字段:设备代号、设备编号、设备序列号、设备名称、设备型号、制造商代号、部门代号、线体代号、产品线代号、设备分类、设备状态、启用日期、备注、RFID、创建/更新时间、逻辑删除标识
    • 约束:设备编号+工厂维度唯一性
    • 索引:建议对设备编号、设备序列号、部门代号、产品线代号建立索引
    • 参考路径:device.sql:1-3132
  • 维护任务(maintenance_tasks)
    • 字段:任务编号、任务名称、设备编号、计划编号、任务类型、计划开始/结束、任务状态
    • 约束:外键关联设备主数据与计划表
    • 索引:建议对设备编号、计划编号、任务状态建立索引
    • 参考路径:device.sql:1-3132
  • 工单(maintenance_work_orders)
    • 字段:工单编号、任务编号、设备编号、计划编号、计划名称、设备编码、设备序列号、线体名称、执行人、确认人、工单类型、工单状态、实际开始/结束时间
    • 约束:外键关联任务与设备
    • 索引:建议对工单编号、设备编号、任务编号、执行人、工单状态建立索引
    • 参考路径:device.sql:1-3132
  • 点检计划(inspection_plans)
    • 字段:计划编号、计划名称、设备编号、计划内容、计划类型、生效日期、计划状态
    • 约束:外键关联设备主数据
    • 索引:建议对设备编号、计划类型、生效日期、计划状态建立索引
    • 参考路径:device.sql:1-3132
  • 计量计划(device_measure_plan)
    • 字段:计划编号、计划名称、计划说明、计划日期、提醒单位、提醒值、提醒人、责任人、责任人代号、审批单号、审批状态、计划状态、完成状态
    • 约束:与实体类映射一致
    • 索引:建议对计划日期、责任人、计划状态建立索引
    • 参考路径:DeviceMeasurePlanDo.java:1-90
  • 工作流审计(flow_audit_log)
    • 字段:流程实例ID、业务代码、节点标题、节点下标、审批状态、审批时间、审批人、审批人ID、业务单号、业务类型、任务ID、申请人、申请时间、创建/更新时间、逻辑删除标识
    • 约束:与工单审批流程关联
    • 索引:建议对业务单号、流程实例ID、节点下标、申请时间建立索引
    • 参考路径:workflow.sql:1-564

设备生命周期管理数据流

[本图为概念流程示意,无需图表来源]