Appearance
设备管理数据库架构
**本文档引用的文件** - [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)目录
简介
本文件面向设备管理模块的数据库架构,系统性梳理设备台账、维护计划、工单流程、点检与巡检等核心业务实体的表结构设计、字段定义、约束与索引策略,并阐述表间外键关系、联表查询优化与数据完整性保障机制。同时提供完整的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
图表来源
- DeviceMainMapper.java:1-40
- DeviceMeasurePlanMapper.java:1-16
- MaintenanceWorkOrdersMapper.java:1-16
- device.sql:1-3132
- workflow.sql:1-564
章节来源
核心组件
本节聚焦设备管理的关键表与实体,包括:
- 设备主数据表(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、节点索引、申请时间建立索引,支撑流程追踪与统计。
章节来源
前端执行页面与后端接口交互
- 巡检/点检执行页面通过HTTP请求获取工单详情并展示,体现工单与设备信息的关联关系。
- 页面路径参考:
章节来源
依赖分析
- 表间依赖:
- 设备主数据(device_main)是多表的上游主数据,被维护任务、工单、点检计划等引用
- 维护任务(maintenance_tasks)作为计划到执行的桥梁,连接计量计划(device_measure_plan)与工单(maintenance_work_orders)
- 工单(maintenance_work_orders)与工作流审计(flow_audit_log)形成审批闭环
- Mapper与实体依赖:
- DeviceMainMapper、DeviceMeasurePlanMapper分别映射设备与计量计划的查询与分页能力
- MaintenanceWorkOrdersMapper支撑工单的持久化操作
- 前后端依赖:
- 前端执行页面通过后端接口获取工单详情,体现工单与设备信息的关联
图表来源
- DeviceMainDo.java:1-196
- DeviceMeasurePlanDo.java:1-90
- DeviceMainMapper.java:1-40
- DeviceMeasurePlanMapper.java:1-16
- MaintenanceWorkOrdersMapper.java:1-16
- device.sql:1-3132
- workflow.sql:1-564
性能考虑
- 索引优化
- 对设备编号(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缓存,降低数据库压力
- 批处理
- 工单批量生成与状态更新采用事务批处理,减少锁竞争
故障排查指南
- 常见问题
- 设备编号重复:检查设备主数据唯一性约束与插入逻辑
- 工单状态异常:核查工作流审批日志(flow_audit_log),定位审批节点与状态变更
- 计量提醒未触发:核对device_measure_plan的计划日期、提醒单位与值、责任人字段
- 排查步骤
- 确认实体类与表结构映射一致(如DeviceMainDo、DeviceMeasurePlanDo)
- 核对Mapper接口与SQL映射,确保查询条件与排序字段正确
- 查看DDL中索引与约束定义,确认查询路径是否命中索引
- 参考路径
结论
设备管理数据库以设备主数据为核心,通过维护任务与工单承接计划执行,配合点检/巡检与工作流审批形成闭环。通过合理的索引策略、查询优化与实体映射,能够有效支撑移动端与后台系统的高并发访问与稳定运行。建议持续完善索引覆盖与缓存策略,确保在设备规模扩大时仍保持良好性能。
附录
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
设备生命周期管理数据流
[本图为概念流程示意,无需图表来源]