Appearance
维护计划数据架构
**本文档引用的文件** - [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)目录
引言
本文件面向维护计划模块的数据架构,围绕核心表 maintenance_plans(维护计划)、maintenance_tasks(维护任务)、maintenance_standards(维护标准)、maintenance_work_orders(维护工单)进行系统化梳理,明确各表的关键字段、业务含义、数据约束与相互关系;阐述维护计划的周期设置、类型、内容、负责人、状态等维度;解释计划到任务再到工单的生成与执行闭环,并给出创建、修改、执行、完成的全生命周期数据流转示例与最佳实践。
项目结构
维护计划相关的核心代码位于 lemes-job-devicemate 子模块,采用分层架构:
- 实体层:对应数据库表的 DO 类,定义字段与注解
- Mapper 层:MyBatis-Plus 接口,声明数据访问
- Service 层:业务服务接口与实现,封装业务规则
- Handler 层:定时/调度处理器,负责计划生成工单
- 枚举与常量:DeviceEnum 定义计划类型、等级、生成方式等枚举值
图表来源
- MaintenancePlansDo.java:1-77
- MaintenanceTasksDo.java:1-103
- MaintenanceStandardsDo.java:1-85
- MaintenanceWorkOrdersDo.java:1-122
- MaintenancePlansMapper.java:1-16
- MaintenanceStandardsMapper.java:1-16
- MaintenanceWorkOrdersMapper.java:1-16
- MaintenancePlansServiceImpl.java:70-84
- MaintenanceStandardsService.java:1-8
- MaintenanceWorkOrdersService.java:1-23
- MpCreatWotJob.java:61-85
- SpCreatWotJob.java:60-84
- HjSpCreatWotJob.java:59-83
- MpLevelCloseWotJob.java:51-71
- DeviceEnum.java:1-69
章节来源
- MaintenancePlansDo.java:1-77
- MaintenanceTasksDo.java:1-103
- MaintenanceStandardsDo.java:1-85
- MaintenanceWorkOrdersDo.java:1-122
核心组件
- 维护计划表(maintenance_plans)
- 关键字段:计划编号、名称、描述、计划类型、线体信息、生成方式、维保等级、优先级、周期计划(类型+数值)、提醒/预警配置、首次执行时间、是否需确认、状态、部门信息、负责人信息、业务类型等
- 业务含义:定义保养/巡检计划的模板与策略,决定后续任务生成与工单创建的规则
- 维护任务表(maintenance_tasks)
- 关键字段:任务编号、计划编号、设备数量、已完成设备数、任务生成/完成时间、计划信息、周期/提醒/预警、是否需确认、部门编号等
- 业务含义:承载某次具体任务批次,连接计划与工单,跟踪任务执行进度
- 维护标准表(maintenance_standards)
- 关键字段:工厂代号、标准编号、名称、机型/制程/工位、维保等级、设备分类/种类、描述、状态、设备型号、标准类型(保养/巡检)、父标准编号等
- 业务含义:提供标准化的保养/巡检作业内容与要求,作为工单生成与检查清单的基础
- 维护工单表(maintenance_work_orders)
- 关键字段:任务编号、工单编号、设备编号、工单状态、执行人/时间、说明、备注、优先级、标准编号、起止时间、确认人/时间、预警标记、业务类型、产品线信息等
- 业务含义:最小可执行单元,承载实际执行动作与结果,支持优先级冲突关闭与状态追踪
章节来源
- MaintenancePlansDo.java:24-77
- MaintenanceTasksDo.java:19-103
- MaintenanceStandardsDo.java:17-85
- MaintenanceWorkOrdersDo.java:16-122
架构总览
维护计划从“计划”到“任务”再到“工单”的全链路如下:
图表来源
- MpCreatWotJob.java:61-85
- SpCreatWotJob.java:60-84
- HjSpCreatWotJob.java:59-83
- MaintenancePlansDo.java:36-59
- MaintenanceTasksDo.java:22-42
- MaintenanceStandardsDo.java:24-85
- MaintenanceWorkOrdersDo.java:19-81
详细组件分析
维护计划表(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):上次完成后立即生成
- 生成流程
- 读取有效计划列表(按业务类型、状态过滤)
- 按生成方式分类处理
- 生成任务批次(含设备数量、周期、提醒/预警)
- 为每台设备生成工单(含起止时间、执行人、优先级)
- 写入任务完成时间与进度更新
图表来源
- MpCreatWotJob.java:61-85
- SpCreatWotJob.java:60-84
- HjSpCreatWotJob.java:59-83
- MaintenancePlansDo.java:36-59
- MaintenanceTasksDo.java:22-42
- MaintenanceWorkOrdersDo.java:19-81
章节来源
- MpCreatWotJob.java:61-85
- SpCreatWotJob.java:60-84
- HjSpCreatWotJob.java:59-83
- MaintenancePlansServiceImpl.java:70-84
优先级冲突与工单关闭
- 场景:同一设备出现相同维保等级的多个工单
- 规则:比较优先级,高优先级保留,低优先级自动关闭并更新任务完成计数
- 影响:确保执行效率与资源最优分配
图表来源
章节来源
全生命周期数据流示例
- 创建
- 新建维护计划(设定生成方式、周期、等级、提醒/预警、负责人、状态)
- 关联维护标准(选择适用的标准编号)
- 修改
- 调整周期/等级/优先级/提醒/预警
- 变更负责人/部门信息
- 执行
- 定时器触发生成任务
- 逐台设备生成工单,写入起止时间与执行人
- 完成
- 工单完成,更新工单状态与确认信息
- 任务完成计数+1,全部完成后写入任务完成时间
章节来源
- MaintenancePlansDo.java:36-59
- MaintenanceStandardsDo.java:24-85
- MaintenanceTasksDo.java:30-42
- MaintenanceWorkOrdersDo.java:31-81
依赖分析
- 组件耦合
- MaintenancePlansServiceImpl 依赖 MaintenanceStandardsService 与枚举 DeviceEnum
- Handler 依赖 Service 完成计划筛选与工单生成
- 工单与任务通过外键关联,形成强一致性
- 外部依赖
- MyBatis-Plus 动态数据源注解 DS("mes_devicemate_device") 指向设备域库
- Redis 序列号生成(用于工单号)
图表来源
- MaintenancePlansServiceImpl.java:70-84
- MaintenanceStandardsServiceImpl.java:14-21
- MpCreatWotJob.java:61-85
- MaintenanceWorkOrdersDo.java:106-122
- MaintenanceTasksDo.java:22-42
- MaintenancePlansDo.java:36-59
章节来源
- MaintenancePlansMapper.java:13-16
- MaintenanceStandardsMapper.java:13-16
- MaintenanceWorkOrdersMapper.java:13-16
性能考虑
- 查询优化
- 对计划查询增加业务类型与状态过滤,减少扫描范围
- 周期计算与生成方式分类处理,避免全表遍历
- 写入优化
- 批量生成任务与工单,减少事务开销
- 任务完成计数与时间写入采用原子更新
- 缓存与序列
- 工单号通过 Redis 序列号生成,降低数据库压力
故障排查指南
- 常见问题
- 工单未生成:检查计划状态与生成方式是否正确,确认定时任务是否触发
- 工单冲突:检查同设备同等级工单优先级,确认是否被自动关闭
- 任务未完成:核对 completedDeviceCount 与 deviceCount 是否一致,确认任务完成时间是否写入
- 排查步骤
- 核对计划表字段(周期、等级、生成方式、状态)
- 核对任务表进度与完成时间
- 核对工单表状态与优先级
- 查看 Handler 日志与 Service 事务边界
章节来源
结论
维护计划模块通过“计划—任务—工单”的三层结构实现了从策略到执行的完整闭环。计划表定义策略,任务表承载批次,工单表落地执行。结合生成方式、周期、等级与优先级等维度,系统能够高效、有序地组织保养与巡检工作,并通过自动关闭与进度追踪保障执行质量与资源利用效率。
附录
- 字段与枚举对照参考
- 计划类型:线体/设备
- 维保等级:日点检/日保养/周保养/月保养/年保养/不定期
- 生成方式:与上次间隔/固定周期/上次结束立刻
- 时间单位:分钟/小时/天/月/年
- 设备状态:正常/带病运行/故障
- 使用状态:在用/出租
章节来源