Skip to content

维护计划数据架构

**本文档引用的文件** - [MaintenancePlansDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/device/MaintenancePlansDo.java) - [MaintenanceTasksDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/device/MaintenanceTasksDo.java) - [MaintenanceStandardsDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/device/MaintenanceStandardsDo.java) - [MaintenanceWorkOrdersDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/device/MaintenanceWorkOrdersDo.java) - [MaintenancePlansMapper.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/mapper/device/MaintenancePlansMapper.java) - [MaintenanceStandardsMapper.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/mapper/device/MaintenanceStandardsMapper.java) - [MaintenanceWorkOrdersMapper.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/mapper/device/MaintenanceWorkOrdersMapper.java) - [MaintenancePlansServiceImpl.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/service/device/impl/MaintenancePlansServiceImpl.java) - [MaintenanceStandardsService.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/service/device/MaintenanceStandardsService.java) - [MaintenanceStandardsServiceImpl.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/service/device/impl/MaintenanceStandardsServiceImpl.java) - [MaintenanceWorkOrdersService.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/service/device/MaintenanceWorkOrdersService.java) - [MpCreatWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/MpCreatWotJob.java) - [SpCreatWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/SpCreatWotJob.java) - [HjSpCreatWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/HjSpCreatWotJob.java) - [MpLevelCloseWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/MpLevelCloseWotJob.java) - [DeviceEnum.java](file://lemes-job-devicemate/lemes-job-devicemate-common/src/main/java/com/lenovo/lemes/job/devicemate/common/enums/DeviceEnum.java) - [device.sql](file://docs/ddl/device.sql) - [maintenance.vue](file://app/devicemate-app/modules/equipment/maintenance.vue)

目录

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

引言

本文件面向维护计划模块的数据架构,围绕核心表 maintenance_plans(维护计划)、maintenance_tasks(维护任务)、maintenance_standards(维护标准)、maintenance_work_orders(维护工单)进行系统化梳理,明确各表的关键字段、业务含义、数据约束与相互关系;阐述维护计划的周期设置、类型、内容、负责人、状态等维度;解释计划到任务再到工单的生成与执行闭环,并给出创建、修改、执行、完成的全生命周期数据流转示例与最佳实践。

项目结构

维护计划相关的核心代码位于 lemes-job-devicemate 子模块,采用分层架构:

  • 实体层:对应数据库表的 DO 类,定义字段与注解
  • Mapper 层:MyBatis-Plus 接口,声明数据访问
  • Service 层:业务服务接口与实现,封装业务规则
  • Handler 层:定时/调度处理器,负责计划生成工单
  • 枚举与常量:DeviceEnum 定义计划类型、等级、生成方式等枚举值

图表来源

章节来源

核心组件

  • 维护计划表(maintenance_plans)
    • 关键字段:计划编号、名称、描述、计划类型、线体信息、生成方式、维保等级、优先级、周期计划(类型+数值)、提醒/预警配置、首次执行时间、是否需确认、状态、部门信息、负责人信息、业务类型等
    • 业务含义:定义保养/巡检计划的模板与策略,决定后续任务生成与工单创建的规则
  • 维护任务表(maintenance_tasks)
    • 关键字段:任务编号、计划编号、设备数量、已完成设备数、任务生成/完成时间、计划信息、周期/提醒/预警、是否需确认、部门编号等
    • 业务含义:承载某次具体任务批次,连接计划与工单,跟踪任务执行进度
  • 维护标准表(maintenance_standards)
    • 关键字段:工厂代号、标准编号、名称、机型/制程/工位、维保等级、设备分类/种类、描述、状态、设备型号、标准类型(保养/巡检)、父标准编号等
    • 业务含义:提供标准化的保养/巡检作业内容与要求,作为工单生成与检查清单的基础
  • 维护工单表(maintenance_work_orders)
    • 关键字段:任务编号、工单编号、设备编号、工单状态、执行人/时间、说明、备注、优先级、标准编号、起止时间、确认人/时间、预警标记、业务类型、产品线信息等
    • 业务含义:最小可执行单元,承载实际执行动作与结果,支持优先级冲突关闭与状态追踪

章节来源

架构总览

维护计划从“计划”到“任务”再到“工单”的全链路如下:

图表来源

详细组件分析

维护计划表(maintenance_plans)

  • 字段与业务含义
    • 计划编号/名称/描述:唯一识别与说明
    • 计划类型:线体/设备两类
    • 线体信息:lineNo/lineName
    • 生成方式:与上次间隔、固定周期、上次结束立刻生成
    • 维保等级:日点检/日保养/周保养/月保养/年保养/不定期
    • 优先级:用于同设备多工单场景的冲突处理
    • 周期计划:periodPlan(时间单位)+ periodPlanValue(数值)
    • 提醒/预警:aheadAlert/aheadAlertValue、overdueWarn/overdueWarnValue
    • 首次执行时间:firstExecuteTime
    • 是否需确认:needConfirm
    • 状态:planStatus(可用/不可用)
    • 部门信息:deptNo/deptName
    • 负责人信息:excutorNo/excutorName
    • 业务类型:bussinessType
  • 数据约束
    • 逻辑删除:isDelete
    • 主键:BaseEntity(通常为自增ID)
    • 生成方式与周期共同决定任务生成策略
  • 复杂度与性能
    • 查询:按业务类型、状态过滤,批量生成任务
    • 更新:周期到期后重算下一批次

图表来源

章节来源

维护任务表(maintenance_tasks)

  • 字段与业务含义
    • 任务编号、计划编号:关联关系
    • 设备数量/已完成数量:任务进度
    • 任务生成/完成时间:生命周期节点
    • 计划信息:名称、描述、类型、线体、等级、优先级
    • 周期/提醒/预警:periodPlan/periodPlanValue、aheadAlert/aheadAlertValue、overdueWarn/overdueWarnValue
    • 是否需确认:needConfirm
    • 部门编号:deptNo
  • 数据约束
    • 逻辑删除:isDelete
    • 进度字段:completedDeviceCount ≤ deviceCount
    • 完成条件:两者相等时写入taskCompletedTime

图表来源

章节来源

维护标准表(maintenance_standards)

  • 字段与业务含义
    • 工厂代号、标准编号/名称:唯一性与归属
    • 机型/制程/工位:适用范围
    • 维保等级:与计划等级一致
    • 设备分类/种类/型号:设备维度
    • 描述、状态:标准有效性与说明
    • 标准类型:保养/巡点检
    • 父标准编号:继承关系
  • 数据约束
    • 逻辑删除:isDelete
    • 标准状态:仅启用标准参与计划

图表来源

章节来源

维护工单表(maintenance_work_orders)

  • 字段与业务含义
    • 任务编号、工单编号:关联关系
    • 设备编号:具体执行对象
    • 工单状态:执行中/完成/关闭等
    • 执行人/时间、说明、备注:执行记录
    • 优先级:用于同设备多工单冲突处理
    • 标准编号:作业依据
    • 起止时间:执行窗口
    • 确认人/时间:领导确认
    • 预警标记:isOverdueWarn/isAheadAlert
    • 业务类型、产品线信息:业务域与产线维度
  • 数据约束
    • 逻辑删除:isDelete
    • 与任务联动:completedDeviceCount+1,任务完成时间在最后设备完成后写入

图表来源

章节来源

计划生成与任务/工单创建机制

  • 生成方式与规则
    • 固定周期(PLAN_GENERATE_OF_FIXED):以固定周期时间推进
    • 上次间隔(PLAN_GENERATE_OF_LAST):以上次执行周期推进
    • 上次结束立刻(PLAN_GENERATE_OF_LAST_END):上次完成后立即生成
  • 生成流程
    • 读取有效计划列表(按业务类型、状态过滤)
    • 按生成方式分类处理
    • 生成任务批次(含设备数量、周期、提醒/预警)
    • 为每台设备生成工单(含起止时间、执行人、优先级)
    • 写入任务完成时间与进度更新

图表来源

章节来源

优先级冲突与工单关闭

  • 场景:同一设备出现相同维保等级的多个工单
  • 规则:比较优先级,高优先级保留,低优先级自动关闭并更新任务完成计数
  • 影响:确保执行效率与资源最优分配

图表来源

章节来源

全生命周期数据流示例

  • 创建
    • 新建维护计划(设定生成方式、周期、等级、提醒/预警、负责人、状态)
    • 关联维护标准(选择适用的标准编号)
  • 修改
    • 调整周期/等级/优先级/提醒/预警
    • 变更负责人/部门信息
  • 执行
    • 定时器触发生成任务
    • 逐台设备生成工单,写入起止时间与执行人
  • 完成
    • 工单完成,更新工单状态与确认信息
    • 任务完成计数+1,全部完成后写入任务完成时间

章节来源

依赖分析

  • 组件耦合
    • MaintenancePlansServiceImpl 依赖 MaintenanceStandardsService 与枚举 DeviceEnum
    • Handler 依赖 Service 完成计划筛选与工单生成
    • 工单与任务通过外键关联,形成强一致性
  • 外部依赖
    • MyBatis-Plus 动态数据源注解 DS("mes_devicemate_device") 指向设备域库
    • Redis 序列号生成(用于工单号)

图表来源

章节来源

性能考虑

  • 查询优化
    • 对计划查询增加业务类型与状态过滤,减少扫描范围
    • 周期计算与生成方式分类处理,避免全表遍历
  • 写入优化
    • 批量生成任务与工单,减少事务开销
    • 任务完成计数与时间写入采用原子更新
  • 缓存与序列
    • 工单号通过 Redis 序列号生成,降低数据库压力

故障排查指南

  • 常见问题
    • 工单未生成:检查计划状态与生成方式是否正确,确认定时任务是否触发
    • 工单冲突:检查同设备同等级工单优先级,确认是否被自动关闭
    • 任务未完成:核对 completedDeviceCount 与 deviceCount 是否一致,确认任务完成时间是否写入
  • 排查步骤
    • 核对计划表字段(周期、等级、生成方式、状态)
    • 核对任务表进度与完成时间
    • 核对工单表状态与优先级
    • 查看 Handler 日志与 Service 事务边界

章节来源

结论

维护计划模块通过“计划—任务—工单”的三层结构实现了从策略到执行的完整闭环。计划表定义策略,任务表承载批次,工单表落地执行。结合生成方式、周期、等级与优先级等维度,系统能够高效、有序地组织保养与巡检工作,并通过自动关闭与进度追踪保障执行质量与资源利用效率。

附录

  • 字段与枚举对照参考
    • 计划类型:线体/设备
    • 维保等级:日点检/日保养/周保养/月保养/年保养/不定期
    • 生成方式:与上次间隔/固定周期/上次结束立刻
    • 时间单位:分钟/小时/天/月/年
    • 设备状态:正常/带病运行/故障
    • 使用状态:在用/出租

章节来源