Skip to content

场景03:设备维护到期提醒

当前阶段: 🔍 探索中 | 行业: 水利行业 | 关键词: 设备维护、到期提醒、超期报警 | 返回水利场景 →


一、需求探索

1.1 痛点时刻

具体场景:

3月15日,1号主泵按计划应进行季度维护保养。但由于调度员工作繁忙,忘记安排维护任务。

4月20日,1号主泵突然出现异常振动,紧急停机检查后发现轴承磨损严重。如果按时维护,这个问题本可以提前发现并处理。

此时正值汛期,1号主泵停机导致排涝能力下降30%,影响防汛安全。维修耗时3天,费用5万元。如果按时维护,只需半天时间,费用5000元。

业务背景:

  • 设备规模:中型水库有50-100台设备(水泵、闸门、启闭机、变压器等)
  • 维护周期:日常巡检(每天)、月度保养(每月)、季度维护(每季度)、年度大修(每年)
  • 维护方式:自有维护团队 + 外包维护公司
  • 管理难点:设备多、周期不同、人员有限、容易遗漏

1.2 核心痛点

问题1:计划管理混乱

  • 维护计划记录在Excel表格中,容易遗漏
  • 不同设备维护周期不同,难以统一管理
  • 人工计算到期时间,容易出错

问题2:提醒不及时

  • 没有自动提醒机制,依赖人工记忆
  • 到期当天才想起来,来不及安排人员和备件
  • 节假日或人员休假时,更容易遗漏

问题3:超期无人知

  • 超期后没有报警机制,可能一直拖延
  • 不知道哪些设备超期最严重,无法优先处理
  • 事后追责困难,责任不清

1.3 业务规则(行业标准)

《水利工程管理条例》相关要求:

  • 水利设备应定期维护保养(第20条)
  • 维护计划应提前制定并严格执行(第21条)
  • 超期未维护应及时报告并处理(第22条)

实际业务规则(基于行业调研):

  • 提前7天预警:到期前7天发送预警,提醒安排维护
  • 到期当天报警:到期当天发送报警,督促立即执行
  • 超期3天紧急:超期3天发送紧急报警,升级到部门负责人
  • 重点设备特殊规则:主泵、主变压器等重点设备提前15天预警

成本测算:

  • 按时维护成本:人工费 + 备件费,约5000元/次
  • 超期维护成本:设备损坏 + 紧急维修 + 影响生产,约5万元/次
  • 成本比:1:10(按时维护可节省90%成本)

二、方案设计

2.1 业务规则设计

规则1:到期提醒规则

typescript
// 到期提醒规则
interface MaintenanceDueReminder {
  // 维护计划
  plan: {
    equipmentId: string;        // 设备ID
    equipmentName: string;      // 设备名称
    maintenanceType: string;    // 维护类型(日常/月度/季度/年度)
    dueDate: Date;              // 到期日期
    lastMaintenanceDate: Date;  // 上次维护日期
  };

  // 提醒级别
  reminderLevel: 'advance' | 'due' | 'overdue' | 'urgent';

  // 提醒时间
  reminderTime: {
    advance: Date;    // 提前7天(或15天)
    due: Date;        // 到期当天
    overdue: Date;    // 超期3天
  };
}

// 判定逻辑
function checkMaintenanceDue(
  plan: MaintenancePlan,
  currentDate: Date,
  isKeyEquipment: boolean = false
): MaintenanceDueReminder {
  const daysUntilDue = Math.floor(
    (plan.dueDate.getTime() - currentDate.getTime()) / (1000 * 60 * 60 * 24)
  );

  // 重点设备提前15天,普通设备提前7天
  const advanceDays = isKeyEquipment ? 15 : 7;

  let reminderLevel: 'advance' | 'due' | 'overdue' | 'urgent';

  if (daysUntilDue < -3) {
    reminderLevel = 'urgent';      // 超期3天以上
  } else if (daysUntilDue < 0) {
    reminderLevel = 'overdue';     // 超期但不到3天
  } else if (daysUntilDue === 0) {
    reminderLevel = 'due';         // 到期当天
  } else if (daysUntilDue <= advanceDays) {
    reminderLevel = 'advance';     // 提前预警
  }

  return {
    plan,
    reminderLevel,
    reminderTime: {
      advance: new Date(plan.dueDate.getTime() - advanceDays * 24 * 60 * 60 * 1000),
      due: plan.dueDate,
      overdue: new Date(plan.dueDate.getTime() + 3 * 24 * 60 * 60 * 1000)
    }
  };
}

规则2:超期升级规则

typescript
// 超期升级规则
interface OverdueEscalation {
  // 超期天数
  overdueDays: number;

  // 升级级别
  escalationLevel: 'normal' | 'warning' | 'urgent';

  // 通知对象
  notifyTo: string[];

  // 自动动作
  autoActions: string[];
}

// 判定逻辑
function checkOverdueEscalation(
  plan: MaintenancePlan,
  currentDate: Date,
  isKeyEquipment: boolean = false
): OverdueEscalation {
  const overdueDays = Math.floor(
    (currentDate.getTime() - plan.dueDate.getTime()) / (1000 * 60 * 60 * 24)
  );

  if (overdueDays <= 0) {
    return { overdueDays: 0, escalationLevel: 'normal', notifyTo: [], autoActions: [] };
  }

  // 重点设备超期1天即升级,普通设备超期3天升级
  const urgentThreshold = isKeyEquipment ? 1 : 3;

  let escalationLevel: 'normal' | 'warning' | 'urgent';
  let notifyTo: string[];
  let autoActions: string[];

  if (overdueDays >= urgentThreshold) {
    escalationLevel = 'urgent';
    notifyTo = ['设备负责人', '部门负责人', '分管领导'];
    autoActions = [
      '标记为紧急任务',
      '自动生成工单',
      '每天发送催办通知',
      '记录到设备台账'
    ];
  } else {
    escalationLevel = 'warning';
    notifyTo = ['设备负责人', '部门负责人'];
    autoActions = [
      '标记为待办任务',
      '发送催办通知'
    ];
  }

  return {
    overdueDays,
    escalationLevel,
    notifyTo,
    autoActions
  };
}

规则3:自动响应规则

typescript
// 自动响应动作
interface AutoResponse {
  // 提前预警(7天或15天)
  advance: {
    alert: {
      channels: ['设备负责人手机', '维护人员手机'];
      message: '1号主泵季度维护到期提醒:到期日期3月15日,还有7天';
    };
    actions: [
      '显示维护计划详情(维护内容、所需备件、预计时长)',
      '显示历史维护记录',
      '提示安排维护人员和备件'
    ];
  };

  // 到期当天报警
  due: {
    alert: {
      channels: ['设备负责人手机', '维护人员手机', '调度室大屏'];
      sound: '普通报警音';
      message: '1号主泵季度维护到期:到期日期今天,请立即安排维护';
    };
    actions: [
      '自动生成维护工单',
      '标记为待办任务',
      '发送到维护人员任务列表'
    ];
  };

  // 超期报警(3天)
  overdue: {
    alert: {
      channels: ['设备负责人手机', '部门负责人手机', '调度室大屏'];
      sound: '高优先级报警音';
      message: '1号主泵季度维护超期:超期3天,请立即处理';
    };
    actions: [
      '标记为紧急任务',
      '升级到部门负责人',
      '每天发送催办通知',
      '记录到设备台账'
    ];
  };

  // 重点设备特殊处理
  keyEquipment: {
    alert: {
      channels: ['设备负责人手机', '部门负责人手机', '分管领导手机'];
      message: '1号主泵(重点设备)季度维护到期提醒:到期日期3月15日,还有15天';
    };
    actions: [
      '提前15天预警',
      '超期1天即升级到分管领导',
      '优先安排维护人员和备件'
    ];
  };
}

2.2 技术方案

技术架构

维护计划数据 → 定时任务 → 规则引擎 → 提醒推送

            到期检查(每天凌晨)

            可视化大屏 + 移动端

核心技术点

1. 维护计划管理

  • 数据来源:从设备台账导入维护计划
  • 计划类型:日常巡检、月度保养、季度维护、年度大修
  • 周期计算:根据上次维护日期 + 维护周期,自动计算下次到期日期

2. 到期检查

  • 定时任务:每天凌晨1点执行
  • 检查逻辑:遍历所有维护计划,计算距离到期日期的天数
  • 触发提醒:根据天数触发不同级别的提醒

3. 规则引擎

  • 支持多条规则并行判断(提前预警 + 到期报警 + 超期升级)
  • 支持规则配置(提前天数、超期天数可调整)
  • 支持重点设备特殊规则

4. 提醒推送

  • 多通道推送:手机APP、短信、邮件
  • 分级推送:不同级别推送给不同人员
  • 推送确认:重要提醒必须确认收到

数据模型

typescript
// 维护计划
interface MaintenancePlan {
  id: string;
  equipmentId: string;          // 设备ID
  equipmentName: string;        // 设备名称
  equipmentType: string;        // 设备类型(水泵/闸门/变压器等)
  isKeyEquipment: boolean;      // 是否重点设备
  maintenanceType: string;      // 维护类型(日常/月度/季度/年度)
  maintenanceCycle: number;     // 维护周期(天)
  lastMaintenanceDate: Date;    // 上次维护日期
  nextDueDate: Date;            // 下次到期日期
  responsiblePerson: string;    // 负责人
  status: 'PENDING' | 'COMPLETED' | 'OVERDUE';
}

// 维护记录
interface MaintenanceRecord {
  id: string;
  planId: string;               // 关联的计划ID
  equipmentId: string;
  equipmentName: string;
  maintenanceType: string;
  maintenanceDate: Date;        // 维护日期
  maintenanceBy: string;        // 维护人
  maintenanceContent: string;   // 维护内容
  findings: string;             // 发现的问题
  actions: string;              // 处理措施
  nextDueDate: Date;            // 下次到期日期
}

// 提醒事件记录
interface ReminderEvent {
  id: string;
  planId: string;               // 关联的计划ID
  equipmentId: string;
  equipmentName: string;
  reminderType: 'ADVANCE' | 'DUE' | 'OVERDUE' | 'URGENT';
  reminderLevel: 'normal' | 'warning' | 'urgent';
  sentAt: Date;                 // 发送时间
  sentTo: string[];             // 发送对象
  confirmedBy: string;          // 确认人
  confirmedAt: Date;            // 确认时间
  status: 'SENT' | 'CONFIRMED' | 'IGNORED';
}

三、AI辅助开发方案

3.1 技术迁移分析

复用已有资产:矿山场景的"设备巡检到期预警"规则

相似点:

  • 都是基于时间的到期提醒
  • 都需要提前预警 + 到期报警 + 超期升级
  • 都需要分级推送 + 处置闭环

差异点:

维度矿山场景(设备巡检)水利场景(设备维护)
计划类型日常巡检日常/月度/季度/年度
提前预警提前1天提前7天(重点设备15天)
超期升级超期1天升级超期3天升级(重点设备1天)
重点设备无特殊规则有特殊规则

技术复用度:90%

  • 规则引擎逻辑:100%复用
  • 提醒推送逻辑:100%复用
  • 到期检查逻辑:需要调整提前天数和超期天数(10%新开发)

3.2 Cursor Skill设计

Skill名称: inspection-overdue-alert.md(已存在,可直接复用)

复用说明:

  • 矿山场景的"设备巡检到期预警"规则可以直接应用到设备维护提醒
  • 只需调整提前天数(1天 → 7天/15天)和超期天数(1天 → 3天/1天)

3.3 PROMPT模板

PROMPT 1:生成到期提醒代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成设备维护到期提醒的代码。

## 业务场景
水利设备需要定期维护保养,到期前需要自动提醒,超期未执行时需要升级报警。

## 业务规则
1. 提前预警:
   - 普通设备:到期前7天发送预警
   - 重点设备:到期前15天发送预警

2. 到期报警:
   - 到期当天发送报警
   - 自动生成维护工单

3. 超期升级:
   - 普通设备:超期3天升级到部门负责人
   - 重点设备:超期1天升级到分管领导
   - 每天发送催办通知

4. 自动响应:
   - 提前预警:提示安排维护人员和备件
   - 到期报警:自动生成工单,标记为待办任务
   - 超期升级:标记为紧急任务,记录到设备台账

## 数据模型
- MaintenancePlan:维护计划(equipmentId, maintenanceType, nextDueDate)
- MaintenanceRecord:维护记录(planId, maintenanceDate, maintenanceBy)
- ReminderEvent:提醒事件记录(reminderType, reminderLevel, sentTo)

## 技术要求
- 使用TypeScript
- 定时任务:每天凌晨1点执行
- 支持规则配置(提前天数、超期天数可调整)
- 记录所有提醒事件和处置过程

请参考 inspection-overdue-alert.md 中的规则,生成完整的代码实现。

PROMPT 2:生成分级推送逻辑

你是一个业务逻辑开发专家。请根据以下业务规则,生成分级推送的代码。

## 业务场景
设备维护到期需要根据提醒级别推送给不同人员,并触发不同的自动动作。

## 业务规则
1. 提前预警(7天或15天):
   - 推送到:设备负责人、维护人员
   - 动作:显示维护计划详情、提示安排人员和备件

2. 到期报警(当天):
   - 推送到:设备负责人、维护人员、调度室大屏
   - 动作:自动生成工单、标记为待办任务

3. 超期报警(3天或1天):
   - 推送到:设备负责人、部门负责人、分管领导
   - 动作:标记为紧急任务、每天催办、记录台账

4. 重点设备特殊处理:
   - 提前15天预警
   - 超期1天即升级到分管领导
   - 优先安排维护

## 技术要求
- 支持多通道推送(APP、短信、邮件)
- 推送确认机制(重要提醒必须确认收到)
- 推送失败重试(最多3次)

请生成完整的代码实现。

3.4 开发周期预估

基于已有资产(矿山场景):

  • 原型验证:1天

    • Day 1:复用规则引擎,调整提前天数和超期天数
  • 首版上线:2-3天

    • Day 2:完善推送逻辑,对接设备台账系统
    • Day 3:测试各种提醒场景,部署上线
  • 迭代优化:根据实际使用反馈调整提前天数、优化推送策略


四、开发资产

4.1 Cursor Skill

文件名: inspection-overdue-alert.md(已存在)

复用说明: 矿山场景的"设备巡检到期预警"规则可以直接应用到设备维护提醒,只需调整以下配置:

typescript
// 到期提醒配置
const DUE_REMINDER_CONFIG = {
  // 矿山场景:设备巡检
  mining: {
    advanceDays: 1,           // 提前1天预警
    overdueDays: 1,           // 超期1天升级
    keyEquipmentRule: false   // 无重点设备特殊规则
  },

  // 水利场景:设备维护
  waterConservancy: {
    advanceDays: 7,           // 提前7天预警
    advanceDaysForKey: 15,    // 重点设备提前15天
    overdueDays: 3,           // 超期3天升级
    overdueDaysForKey: 1,     // 重点设备超期1天升级
    keyEquipmentRule: true    // 有重点设备特殊规则
  }
};

4.2 技术迁移说明

可复用的已有资产:

  1. 矿山场景:设备巡检到期预警规则

    • 复用:规则引擎框架、提醒推送逻辑、分级预警机制
    • 调整:提前天数(1天 → 7天/15天)、超期天数(1天 → 3天/1天)
    • 新增:重点设备特殊规则
    • 复用度:90%
  2. 医废场景:超期预警规则

    • 复用:时间窗口判断、升级机制
    • 调整:时间窗口(46/47/48小时 → 7天/15天)
    • 复用度:80%

需要新开发的部分:

  • 重点设备特殊规则(10%)

4.3 实施指南

步骤1:准备环境

bash
# 安装依赖
npm install

# 配置设备台账系统接口
# 编辑 config/equipment-config.json

步骤2:使用Cursor Skill

1. 确认 inspection-overdue-alert.md 已存在于 .cursor/rules/
2. 在Cursor中告诉AI:
   "参考 inspection-overdue-alert.md 中的业务规则,
   实现设备维护到期提醒功能。普通设备提前7天预警、超期3天升级,
   重点设备提前15天预警、超期1天升级。"
3. AI会基于规则生成代码

步骤3:调整配置

typescript
// config/maintenance-reminder-rules.ts
export const MAINTENANCE_REMINDER_CONFIG = {
  advanceDays: 7,              // 普通设备提前天数
  advanceDaysForKey: 15,       // 重点设备提前天数
  overdueDays: 3,              // 普通设备超期天数
  overdueDaysForKey: 1,        // 重点设备超期天数
  checkTime: '01:00',          // 每天检查时间
  reminderChannels: ['APP', 'SMS', 'EMAIL'],  // 提醒渠道
};

步骤4:测试验证

bash
# 运行测试
npm test

# 模拟到期提醒场景
npm run simulate:maintenance-due-reminder

五、下一步行动

如果您对这个场景感兴趣

  1. 快速验证:我们可以用1天时间,基于模拟数据做原型演示
  2. 技术对接:提供设备台账系统接口文档,评估对接工作量
  3. 成本预估:根据设备数量、维护计划数量,给出详细报价

相关场景

相关资产


← 返回水利场景 | 联系合作 →

基于 AI 辅助开发,快速、灵活、可靠