Skip to content

场景03:设备巡检漏检预警

当前阶段: 🔍 探索中 | 行业: 矿山安全 | 关键词: 设备巡检、超期预警、计划任务 | 返回矿山场景 →


一、需求探索

1.1 痛点时刻

具体场景:

周一上午10点,机电科发现:

  • 3号主通风机应该在9:00完成巡检,但巡检记录显示"未执行"
  • 巡检员李四说:"早上有个紧急故障,先去处理了,忘记巡检通风机了"
  • 此时已经超期1小时,但系统没有任何提醒

主通风机是井下通风的核心设备,如果故障会导致全矿停产。按规定每天必须巡检,不能漏检。

业务背景:

  • 设备规模:井下有200-500台设备需要定期巡检(通风机、水泵、提升机等)
  • 巡检频率:日检、周检、月检、季检,不同设备频率不同
  • 巡检内容:检查设备运行状态、记录参数、发现隐患
  • 人员配置:机电科10-20人,每人负责多台设备

1.2 核心痛点

问题1:漏检难发现

  • 巡检计划在纸上或Excel表格中,容易遗漏
  • 巡检员可能因为其他紧急任务忘记巡检
  • 管理人员不知道哪些设备漏检了,只能事后发现

问题2:责任不清

  • 不知道是巡检员忘记了,还是设备无法巡检(如正在维修)
  • 不知道漏检多长时间了,是否需要补检
  • 事后追责困难,容易扯皮

问题3:风险高

  • 重点设备(如主通风机)漏检,可能导致重大安全事故
  • 普通设备漏检,可能导致设备故障、影响生产
  • 没有预警机制,只能靠人工盯

1.3 业务规则(行业标准)

《煤矿安全规程》相关要求:

  • 主要通风机必须每天检查一次(第133条)
  • 排水设备必须每天检查一次(第289条)
  • 提升设备必须每天检查一次(第407条)

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

  • 到期+30分钟预警:巡检到期后30分钟未执行 → 黄色预警,提醒巡检员
  • 到期+2小时报警:巡检到期后2小时未执行 → 红色报警,通知管理层
  • 重点设备立即报警:主通风机、提升机等重点设备,到期未执行 → 立即报警
  • 补检规则:漏检后必须补检,并记录漏检原因

成本测算:

  • 漏检成本:设备故障导致停产,损失约10万元/天
  • 预警成本:系统开发 + 运维,约5万元/年
  • 投资回报:避免一次重大设备故障,即可收回成本

二、方案设计

2.1 业务规则设计

规则1:巡检到期判定规则

typescript
// 巡检到期判定
interface InspectionOverdue {
  // 判定条件
  equipment: Equipment;         // 设备信息
  scheduledTime: Date;          // 计划巡检时间
  currentTime: Date;            // 当前时间
  lastInspectionTime?: Date;    // 最后巡检时间

  // 判定结果
  isOverdue: boolean;           // 是否超期
  overdueDuration: number;      // 超期时长(分钟)
  severity: 'warning' | 'alarm' | 'critical';
}

// 判定逻辑
function checkInspectionOverdue(
  equipment: Equipment,
  scheduledTime: Date,
  currentTime: Date
): InspectionOverdue {
  const overdueDuration = (currentTime.getTime() - scheduledTime.getTime()) / 1000 / 60;

  if (overdueDuration <= 0) {
    return { isOverdue: false };
  }

  // 重点设备:到期立即报警
  if (equipment.isCritical) {
    return {
      equipment,
      scheduledTime,
      currentTime,
      isOverdue: true,
      overdueDuration,
      severity: 'critical'
    };
  }

  // 普通设备:到期+30分钟预警,+2小时报警
  if (overdueDuration > 120) {  // 2小时
    return {
      equipment,
      scheduledTime,
      currentTime,
      isOverdue: true,
      overdueDuration,
      severity: 'alarm'
    };
  } else if (overdueDuration > 30) {  // 30分钟
    return {
      equipment,
      scheduledTime,
      currentTime,
      isOverdue: true,
      overdueDuration,
      severity: 'warning'
    };
  }

  return { isOverdue: false };
}

规则2:自动响应规则

typescript
// 自动响应动作
interface AutoResponse {
  // 黄色预警(普通设备,到期+30分钟)
  warning: {
    alert: {
      channels: ['巡检员手机'];
      message: '3号水泵巡检超期30分钟,请尽快完成';
    };
    autoActions: [
      '推送提醒给巡检员',
      '记录预警事件'
    ];
  };

  // 红色报警(普通设备,到期+2小时)
  alarm: {
    alert: {
      channels: ['巡检员手机', '班组长手机', '机电科长手机'];
      message: '3号水泵巡检超期2小时,请立即处理';
    };
    autoActions: [
      '推送报警给管理层',
      '记录报警事件',
      '要求说明原因'
    ];
  };

  // 强制报警(重点设备,到期立即报警)
  critical: {
    alert: {
      channels: ['巡检员手机', '班组长手机', '机电科长', '值班矿长'];
      sound: '高优先级报警音';
      message: '3号主通风机巡检超期,请立即处理';
    };
    autoActions: [
      '推送报警给所有相关人员',
      '记录报警事件',
      '启动应急预案(如设备异常)'
    ];
  };
}

规则3:补检规则

typescript
// 补检规则
interface MakeUpInspection {
  // 补检要求
  required: boolean;            // 是否需要补检
  deadline: Date;               // 补检截止时间
  mustRecordReason: boolean;    // 是否必须记录漏检原因

  // 补检流程
  steps: [
    {
      step: 1;
      action: '巡检员完成补检';
      timeLimit: 4;  // 4小时内完成
    },
    {
      step: 2;
      action: '记录漏检原因';
      mustRecord: ['原因类型', '详细说明', '责任人'];
    },
    {
      step: 3;
      action: '班组长审核';
      mustApprove: true;
    }
  ];
}

// 补检逻辑
async function handleMakeUpInspection(overdue: InspectionOverdue) {
  // 创建补检任务
  const makeUpTask = await createMakeUpTask({
    equipmentId: overdue.equipment.id,
    originalScheduledTime: overdue.scheduledTime,
    overdueDetectedAt: overdue.currentTime,
    deadline: new Date(overdue.currentTime.getTime() + 4 * 60 * 60 * 1000),  // 4小时后
    assignedTo: overdue.equipment.inspector
  });

  // 推送补检通知
  await notifyInspector({
    inspector: overdue.equipment.inspector,
    message: `${overdue.equipment.name}巡检超期,请在4小时内完成补检并说明原因`,
    task: makeUpTask
  });

  return makeUpTask;
}

2.2 技术方案

技术架构

巡检计划 → 定时任务 → 规则引擎 → 报警推送

        巡检记录存储

        可视化大屏 + 移动端

核心技术点

1. 巡检计划管理

  • 支持多种巡检频率:日检、周检、月检、季检
  • 自动生成巡检任务(如每天9:00生成当天的巡检任务)
  • 支持计划调整(如设备维修期间暂停巡检)

2. 超期检测

  • 定时任务:每10分钟检查一次所有巡检任务
  • 超期判定:当前时间 > 计划时间 + 容忍时间
  • 分级判断:重点设备 vs 普通设备

3. 规则引擎

  • 基于时间窗口的规则判断
  • 支持规则配置(容忍时间、报警级别可调整)
  • 支持规则测试(模拟超期场景)

4. 报警推送

  • 分级推送:黄色预警、红色报警、强制报警
  • 多通道推送:手机APP、短信、语音电话
  • 推送确认:必须确认收到,否则持续推送

数据模型

typescript
// 设备信息
interface Equipment {
  id: string;
  name: string;               // 设备名称(如"3号主通风机")
  type: string;               // 设备类型
  location: string;           // 位置
  isCritical: boolean;        // 是否重点设备
  inspector: string;          // 负责巡检的人员
  inspectionFrequency: 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY';
}

// 巡检任务
interface InspectionTask {
  id: string;
  equipmentId: string;
  equipmentName: string;
  scheduledTime: Date;        // 计划巡检时间
  status: 'PENDING' | 'COMPLETED' | 'OVERDUE';
  assignedTo: string;         // 巡检员

  // 执行记录
  execution?: {
    completedAt: Date;
    completedBy: string;
    result: 'NORMAL' | 'ABNORMAL';
    notes: string;            // 巡检备注
    photos: string[];         // 巡检照片
  };

  // 超期记录
  overdue?: {
    detectedAt: Date;
    overdueDuration: number;
    alertLevel: 'warning' | 'alarm' | 'critical';
    reason: string;           // 漏检原因
    madeUpAt?: Date;          // 补检时间
  };
}

// 超期事件记录
interface OverdueEvent {
  id: string;
  taskId: string;
  equipmentId: string;
  equipmentName: string;
  scheduledTime: Date;
  detectedAt: Date;
  overdueDuration: number;
  alertLevel: 'warning' | 'alarm' | 'critical';

  // 处置记录
  disposal: {
    notifiedTo: string[];     // 通知人员
    acknowledgedBy: string;   // 确认人
    acknowledgedAt: Date;
    madeUpAt?: Date;          // 补检时间
    reason: string;           // 漏检原因
    resolvedAt: Date;
  };
}

三、AI辅助开发方案

3.1 技术迁移分析

复用已有资产:生鲜场景的"冷库巡检"规则 + 医废场景的"超期预警"规则

相似点:

  • 都是基于计划任务的超期监测
  • 都需要判断是否超期 + 自动报警
  • 都需要记录执行情况 + 事后追溯

差异点:

维度生鲜场景医废场景矿山场景
监测对象冷库巡检医废转运设备巡检
超期判断到期+2小时到期+46/47/48小时到期+30分钟/2小时
分级规则46/47/48小时分级重点设备 vs 普通设备
响应动作推送提醒推送报警推送报警 + 补检流程

技术复用度:90%

  • 规则引擎逻辑:100%复用(超期判断 + 分级报警)
  • 报警推送逻辑:100%复用
  • 补检流程:需要新开发(10%)

3.2 Cursor Skill设计

Skill名称: inspection-overdue-alert.md

Skill内容: (见下一节"开发资产")

3.3 PROMPT模板

PROMPT 1:生成超期检测代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成巡检超期检测的代码。

## 业务场景
矿山设备需要定期巡检,巡检到期未执行需要自动预警,重点设备立即报警。

## 业务规则
1. 超期判定:
   - 重点设备:到期立即报警
   - 普通设备:到期+30分钟预警,+2小时报警

2. 自动响应:
   - 黄色预警:推送给巡检员
   - 红色报警:推送给巡检员 + 管理层
   - 强制报警:推送给所有相关人员

3. 补检流程:
   - 创建补检任务,4小时内完成
   - 记录漏检原因
   - 班组长审核

## 数据模型
- Equipment:设备信息(id, name, isCritical, inspector)
- InspectionTask:巡检任务(equipmentId, scheduledTime, status)
- OverdueEvent:超期事件记录(taskId, detectedAt, disposal)

## 技术要求
- 使用TypeScript
- 定时检测(每10分钟检查一次)
- 支持规则配置(容忍时间可调整)
- 记录所有超期事件和处置过程

请生成完整的代码实现。

PROMPT 2:生成补检流程代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成巡检补检流程的代码。

## 业务场景
巡检超期后,需要创建补检任务,并记录漏检原因。

## 业务规则
1. 创建补检任务:
   - 分配给原巡检员
   - 4小时内完成
   - 必须记录漏检原因

2. 补检流程:
   - 步骤1:巡检员完成补检
   - 步骤2:记录漏检原因(原因类型、详细说明、责任人)
   - 步骤3:班组长审核

3. 补检通知:
   - 推送给巡检员
   - 推送给班组长
   - 超时未完成 → 升级报警

## 技术要求
- 使用TypeScript
- 支持补检任务管理
- 支持原因记录和审核
- 记录补检全流程

请生成完整的代码实现。

3.4 开发周期预估

基于已有资产(生鲜 + 医废场景):

  • 原型验证:1天

    • Day 1:复用超期检测规则,调整阈值和分级逻辑
  • 首版上线:3-4天

    • Day 2:开发补检流程
    • Day 3:对接巡检系统、测试
    • Day 4:部署上线
  • 迭代优化:根据实际使用反馈调整容忍时间、优化报警策略


四、开发资产

4.1 Cursor Skill

文件名: inspection-overdue-alert.md

内容:

markdown
# 巡检超期预警规则

## 业务场景
矿山、工厂、物业等场景中,需要定期巡检设备或场所,发现超期未执行时自动报警。

## 核心业务规则

### 1. 超期判定规则

**规则一:超期检测**
```typescript
// 检测巡检任务是否超期
function checkInspectionOverdue(
  task: InspectionTask,
  currentTime: Date,
  toleranceMinutes: number = 30  // 容忍时间(分钟)
): boolean {
  if (task.status === 'COMPLETED') {
    return false;
  }

  const overdueDuration = (currentTime.getTime() - task.scheduledTime.getTime()) / 1000 / 60;
  return overdueDuration > toleranceMinutes;
}

规则二:分级判断

typescript
// 判断超期严重程度
function getOverdueSeverity(
  equipment: Equipment,
  overdueDuration: number
): 'warning' | 'alarm' | 'critical' {
  // 重点设备:到期立即报警
  if (equipment.isCritical) {
    return 'critical';
  }

  // 普通设备:分级判断
  if (overdueDuration > 120) {  // 2小时
    return 'alarm';
  } else if (overdueDuration > 30) {  // 30分钟
    return 'warning';
  }

  return 'warning';
}

2. 自动响应规则

规则一:分级报警

typescript
async function triggerOverdueAlert(
  task: InspectionTask,
  severity: 'warning' | 'alarm' | 'critical'
) {
  const alertConfig = {
    warning: {
      channels: ['巡检员手机'],
      priority: 'MEDIUM',
      message: `${task.equipmentName}巡检超期,请尽快完成`
    },
    alarm: {
      channels: ['巡检员手机', '班组长手机', '管理层手机'],
      priority: 'HIGH',
      message: `${task.equipmentName}巡检超期2小时,请立即处理`
    },
    critical: {
      channels: ['巡检员手机', '班组长手机', '管理层手机', '值班领导'],
      priority: 'CRITICAL',
      message: `${task.equipmentName}(重点设备)巡检超期,请立即处理`
    }
  };

  const config = alertConfig[severity];

  await alertService.push({
    channels: config.channels,
    priority: config.priority,
    message: config.message,
    data: {
      task,
      equipment: task.equipment,
      overdueDuration: task.overdueDuration
    }
  });
}

3. 补检流程规则

规则一:创建补检任务

typescript
async function createMakeUpTask(overdue: OverdueEvent): Promise<MakeUpTask> {
  const makeUpTask = {
    id: generateId(),
    originalTaskId: overdue.taskId,
    equipmentId: overdue.equipmentId,
    equipmentName: overdue.equipmentName,
    assignedTo: overdue.task.assignedTo,
    deadline: new Date(Date.now() + 4 * 60 * 60 * 1000),  // 4小时后
    status: 'PENDING',
    mustRecordReason: true
  };

  await db.makeUpTasks.insert(makeUpTask);

  // 推送补检通知
  await notifyInspector({
    inspector: makeUpTask.assignedTo,
    message: `${makeUpTask.equipmentName}巡检超期,请在4小时内完成补检并说明原因`,
    task: makeUpTask
  });

  return makeUpTask;
}

规则二:补检流程

typescript
interface MakeUpProcess {
  step1: {
    action: '巡检员完成补检';
    timeLimit: 240;  // 4小时
    recordRequired: ['巡检结果', '设备状态', '巡检照片'];
  };
  step2: {
    action: '记录漏检原因';
    mustRecord: ['原因类型', '详细说明', '责任人'];
    reasonTypes: [
      '紧急故障处理',
      '人员调配',
      '设备维修中',
      '其他'
    ];
  };
  step3: {
    action: '班组长审核';
    mustApprove: true;
    approveFields: ['补检结果', '漏检原因', '责任认定'];
  };
}

数据模型

设备信息

typescript
interface Equipment {
  id: string;
  name: string;
  type: string;
  location: string;
  isCritical: boolean;        // 是否重点设备
  inspector: string;          // 负责巡检的人员
  inspectionFrequency: 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'QUARTERLY';
}

巡检任务

typescript
interface InspectionTask {
  id: string;
  equipmentId: string;
  equipmentName: string;
  scheduledTime: Date;
  status: 'PENDING' | 'COMPLETED' | 'OVERDUE';
  assignedTo: string;
  execution?: {
    completedAt: Date;
    completedBy: string;
    result: 'NORMAL' | 'ABNORMAL';
    notes: string;
    photos: string[];
  };
  overdue?: {
    detectedAt: Date;
    overdueDuration: number;
    alertLevel: 'warning' | 'alarm' | 'critical';
    reason: string;
    madeUpAt?: Date;
  };
}

超期事件记录

typescript
interface OverdueEvent {
  id: string;
  taskId: string;
  equipmentId: string;
  equipmentName: string;
  scheduledTime: Date;
  detectedAt: Date;
  overdueDuration: number;
  alertLevel: 'warning' | 'alarm' | 'critical';
  disposal: {
    notifiedTo: string[];
    acknowledgedBy: string;
    acknowledgedAt: Date;
    madeUpAt?: Date;
    reason: string;
    resolvedAt: Date;
  };
}

关键处理流程

  1. 定时检测 → 每10分钟检查所有巡检任务
  2. 超期判定 → 当前时间 > 计划时间 + 容忍时间
  3. 分级报警 → 重点设备 vs 普通设备
  4. 创建补检任务 → 4小时内完成 + 记录原因
  5. 处置闭环 → 记录补检过程 + 审核 + 归档

开发注意事项

  1. 容忍时间可配置:不要硬编码30分钟,支持运营人员配置
  2. 重点设备标识:支持动态调整重点设备列表
  3. 推送确认:必须确认收到,否则持续推送
  4. 数据留痕:所有超期事件和补检过程必须记录

相似场景复用

这个规则可以复用到:

  • 冷链物流:冷库巡检超期预警
  • 物业管理:设施巡检超期预警
  • 工厂生产:设备点检超期预警
  • 医院管理:医疗设备巡检超期预警

### 4.2 技术迁移说明

**可复用的已有资产:**

1. **生鲜场景:冷库巡检规则**
   - 复用:超期检测逻辑、报警推送
   - 调整:容忍时间(2小时 → 30分钟/2小时)
   - 复用度:90%

2. **医废场景:超期预警规则**
   - 复用:时间窗口判断、分级报警
   - 调整:阈值(46/47/48小时 → 30分钟/2小时)
   - 复用度:90%

**需要新开发的部分:**
- 补检流程管理(10%)
- 原因记录和审核功能

### 4.3 实施指南

**步骤1:准备环境**
```bash
# 安装依赖
npm install

# 配置巡检计划
# 编辑 config/inspection-config.json

步骤2:使用Cursor Skill

1. 将 inspection-overdue-alert.md 保存到 .cursor/rules/
2. 在Cursor中告诉AI:
   "参考 inspection-overdue-alert.md 中的业务规则,
   实现设备巡检超期预警功能"
3. AI会基于规则生成代码

步骤3:调整配置

typescript
// config/overdue-rules.ts
export const OVERDUE_CONFIG = {
  tolerance: {
    critical: 0,      // 重点设备:到期立即报警
    normal: 30        // 普通设备:到期+30分钟预警
  },
  escalation: {
    alarm: 120        // 到期+2小时报警
  },
  makeUp: {
    deadline: 240     // 补检截止时间(4小时)
  }
};

步骤4:测试验证

bash
# 运行测试
npm test

# 模拟超期场景
npm run simulate:overdue

五、下一步行动

如果您对这个场景感兴趣

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

相关场景

相关资产


← 返回矿山场景 | 联系合作 →

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