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) - [MaintenanceWorkOrdersDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/device/MaintenanceWorkOrdersDo.java) - [MaintenanceStandardsDo.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/model/device/MaintenanceStandardsDo.java) - [MaintenancePlansMapper.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/mapper/device/MaintenancePlansMapper.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) - [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) - [SpCreatWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/SpCreatWotJob.java) - [MpCreatWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/MpCreatWotJob.java) - [HjSpCreatWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/HjSpCreatWotJob.java) - [LpCreatWotJob.java](file://lemes-job-devicemate/lemes-job-devicemate-executor/src/main/java/com/lenovo/lemes/job/devicemate/executor/handler/LpCreatWotJob.java) - [maintain.vue](file://app/devicemate-app/modules/maintain/maintain.vue) - [execute.vue](file://app/devicemate-app/modules/maintain/execute.vue) - [apply.vue](file://app/devicemate-app/modules/maintain/apply.vue) - [maintain.js](file://app/devicemate-app/store/modules/maintain.js) - [device.sql](file://docs/ddl/device.sql)目录
简介
本技术文档围绕“维护计划管理”功能,系统化阐述设备维护计划的制定、执行与监控全生命周期实现。文档覆盖数据模型设计(计划类型、周期设置、执行标准、责任人分配等)、维护任务生成机制(定期、预防性、预测性)、维护标准管理(项目定义、标准工时、所需物料清单)、执行跟踪(派发、记录、完成确认、异常处理)、导入导出(Excel模板与批量处理)以及最佳实践与性能优化建议。目标读者既包括一线工程师,也涵盖对技术细节感兴趣的非技术用户。
项目结构
维护计划管理由三层组成:
- 前端应用层:移动端小程序模块,负责计划查询、工单执行、物料与标准查看、状态变更等交互。
- 后端服务层:基于Spring Boot的服务模块,包含计划、任务、工单、标准等实体与服务实现,以及定时任务处理器。
- 数据层:PostgreSQL数据库,包含维护计划、任务、工单、标准等核心表及序列。
图表来源
- maintain.vue
- execute.vue
- apply.vue
- maintain.js
- MaintenancePlansServiceImpl.java
- MaintenanceWorkOrdersService.java
- MaintenanceStandardsServiceImpl.java
- SpCreatWotJob.java
- MpCreatWotJob.java
- HjSpCreatWotJob.java
- LpCreatWotJob.java
- device.sql
章节来源
- maintain.vue
- execute.vue
- apply.vue
- maintain.js
- MaintenancePlansServiceImpl.java
- MaintenanceWorkOrdersService.java
- MaintenanceStandardsServiceImpl.java
- SpCreatWotJob.java
- MpCreatWotJob.java
- HjSpCreatWotJob.java
- LpCreatWotJob.java
- device.sql
核心组件
- 数据模型
- 维护计划:包含计划编号、名称、描述、计划类型、线体信息、生成方式、维保等级、优先级、周期计划、提醒与预警设置、首次执行时间、是否需确认、状态、部门信息、执行人信息、业务类型等。
- 维护任务:继承计划字段,新增任务编号、设备数量、完成数量、任务生成/完成时间、计划开始时间、提醒与预警用户、业务类型等。
- 维护工单:包含工单编号、任务编号、设备编号、工单状态、执行人/确认人、开始/截止时间、标准编号、超期/提醒标记、产线信息等。
- 维护标准:包含工厂代号、标准编号、名称、机型/制程/工位、维保等级、设备分类/类型、描述、状态、设备型号、标准类型(保养/巡点检)、父级标准等。
- 服务与处理器
- 计划服务:查询计划、生成任务、生成工单、发送提醒邮件、查询设备清单。
- 工单服务:查询超期工单、更新超期提醒状态。
- 标准服务:维护标准的增删改查。
- 定时任务处理器:按固定时间或上次周期推算时间生成工单,支持保养、点检、巡检、逻辑设备等业务类型。
章节来源
- MaintenancePlansDo.java
- MaintenanceTasksDo.java
- MaintenanceWorkOrdersDo.java
- MaintenanceStandardsDo.java
- MaintenancePlansServiceImpl.java
- MaintenanceWorkOrdersService.java
- MaintenanceStandardsServiceImpl.java
- SpCreatWotJob.java
- MpCreatWotJob.java
- HjSpCreatWotJob.java
- LpCreatWotJob.java
架构总览
系统采用前后端分离架构,前端通过HTTP接口调用后端服务;后端以服务层为核心,结合定时任务处理器自动触发工单生成;数据持久化通过MyBatis-Plus映射至PostgreSQL数据库。
图表来源
详细组件分析
数据模型设计
- 维护计划(maintenance_plans)
- 关键字段:计划编号、名称、描述、计划类型、线体代号/名称、生成方式、维保等级、优先级、周期计划(类型+数值)、提醒/预警(类型+数值)、首次执行时间、是否需确认、状态、部门信息、执行人信息、业务类型。
- 用途:作为任务与工单生成的源头,承载周期与提醒策略。
- 维护任务(maintenance_tasks)
- 关键字段:任务编号、关联计划编号、设备数量、完成数量、任务生成/完成时间、计划开始时间、提醒/预警用户、业务类型等。
- 用途:记录一次计划到多台设备的任务聚合,便于后续批量派发与跟踪。
- 维护工单(maintenance_work_orders)
- 关键字段:工单编号、任务编号、设备编号、工单状态、执行人/确认人、开始/截止时间、标准编号、超期/提醒标记、产线信息等。
- 用途:面向具体设备的最小执行单元,承载检查项、物料、工具、安全提示与文件附件。
- 维护标准(maintenance_standards)
- 关键字段:工厂代号、标准编号、名称、机型/制程/工位、维保等级、设备分类/类型、描述、状态、设备型号、标准类型、父级标准等。
- 用途:定义保养/巡点检的标准项、工时、所需物料与工具清单。
图表来源
- MaintenancePlansDo.java
- MaintenanceTasksDo.java
- MaintenanceWorkOrdersDo.java
- MaintenanceStandardsDo.java
- device.sql
章节来源
- MaintenancePlansDo.java
- MaintenanceTasksDo.java
- MaintenanceWorkOrdersDo.java
- MaintenanceStandardsDo.java
- device.sql
维护任务生成机制
- 固定时间生成:当“首次执行时间”到达时,按计划绑定的设备清单生成任务与工单。
- 上次周期推算生成:根据上次任务的完成时间或生成时间,结合周期计划(类型+数值)推算下次生成时间,满足预防性与周期性维护需求。
- 业务类型区分:支持保养(DJ)、点检(XJ)、巡检(HJ)、逻辑设备(BY)等不同业务类型的计划与生成策略。
图表来源
- SpCreatWotJob.java
- MpCreatWotJob.java
- HjSpCreatWotJob.java
- LpCreatWotJob.java
- MaintenancePlansServiceImpl.java
章节来源
- SpCreatWotJob.java
- MpCreatWotJob.java
- HjSpCreatWotJob.java
- LpCreatWotJob.java
- MaintenancePlansServiceImpl.java
维护标准管理
- 标准定义:通过标准编号/名称、机型/制程/工位、维保等级、设备分类/类型、描述、状态、设备型号、标准类型(保养/巡点检)等字段统一管理。
- 工时与清单:标准与工单关联,前端可加载标准对应的检查项、消耗品、工具等清单,支撑执行与成本控制。
- 前端交互:申请/标准查看页面支持按标准编码获取明细,格式化物料/工具列表,支持产线选择与筛选。
章节来源
执行跟踪与异常处理
- 工单执行:前端执行页面支持基本信息、检查项、物料/工具、安全提示、文件附件等模块化展示与编辑。
- 状态流转:支持派发、执行、完成、确认等状态变更;支持领导指定确认人,完成后进行确认。
- 异常处理:超期预警与提前提醒标记,超期工单可通过服务更新状态并通知相关人员;邮件提醒可按业务类型定制模板与链接。
图表来源
章节来源
导入导出与批量处理
- Excel导入导出:前端表格组件具备导出能力,可按字段与数据进行导出;导入场景可参考通用表格组件的字段映射与校验逻辑。
- 批量处理:后端服务层支持批量查询与操作(如批量生成工单、批量状态更新),前端通过分页与筛选提升交互效率。
- 最佳实践:导入前进行字段校验与唯一性检查,导出时保留关键字段与业务含义,避免冗余列影响解析。
章节来源
依赖分析
- 组件耦合
- 计划服务依赖任务服务、工单服务、标准服务、Redis序列号服务、邮件服务等,形成清晰的职责边界。
- 定时任务处理器按业务类型分别处理,降低耦合并提高可扩展性。
- 外部依赖
- MyBatis-Plus用于数据访问;Redis用于序列号生成;邮件服务用于提醒通知。
- 循环依赖
- 当前结构未见循环依赖迹象,服务间通过接口与Mapper解耦。
图表来源
- SpCreatWotJob.java
- MpCreatWotJob.java
- HjSpCreatWotJob.java
- LpCreatWotJob.java
- MaintenancePlansServiceImpl.java
章节来源
- MaintenancePlansServiceImpl.java
- MaintenanceStandardsServiceImpl.java
- MaintenanceWorkOrdersService.java
性能考虑
- 数据访问
- 使用MyBatis-Plus分页查询与条件构造器,避免全表扫描;对常用查询建立索引(如计划状态、业务类型、设备绑定等)。
- 缓存与序列号
- Redis用于生成有序序列号,减少数据库序列争用;合理设置过期策略与并发控制。
- 定时任务
- 按业务类型拆分处理器,避免单点瓶颈;对生成时间窗口进行限流与幂等校验。
- 前端交互
- 分页加载与懒渲染,减少一次性渲染压力;对图片与附件采用延迟加载策略。
故障排查指南
- 工单未生成
- 检查计划状态与生成方式、首次执行时间是否到达;核对设备绑定是否有效。
- 工单状态异常
- 核对状态流转逻辑与前端提交参数;检查超期/提醒标记是否正确更新。
- 邮件提醒失败
- 检查邮件服务配置、收件人邮箱与模板路径;关注业务类型对应的模板名称。
- 数据不一致
- 对事务性操作(生成任务/工单)进行日志追踪与重试;必要时回滚并人工干预。
章节来源
结论
维护计划管理通过清晰的数据模型、完善的任务生成机制、标准化的执行跟踪与丰富的前端交互,实现了从计划制定到工单执行的闭环管理。结合定时任务与邮件提醒,系统能够高效支撑预防性与周期性维护需求。建议在实际部署中完善索引与缓存策略,持续优化前端交互体验,并建立标准化的导入导出流程以提升运维效率。
附录
- 数据库DDL要点
- 维护计划、任务、工单、标准表均包含必要的业务字段与状态字段,建议在生产环境建立合适的索引以提升查询性能。
- 前端模块
- 维护模块提供计划查询与状态管理;执行页面提供工单详情与提交;申请页面提供标准与物料清单查看。
章节来源