Skip to content

场景01:施工安全检查漏检预警

当前阶段: 🔍 探索中 | 行业: 建筑施工 | 关键词: 安全检查、高支模、深基坑、漏检预警 | 返回建筑场景 →


一、需求探索

1.1 痛点时刻

具体场景:

周五下午5点,项目经理突然发现:3号楼的高支模已经2天没有检查记录了。按规定应该每天检查,但安全员小李这两天忙着处理其他事情,把这事给忘了。

此时高支模已经浇筑混凝土48小时,正处于关键养护期。如果支撑系统有问题,可能导致坍塌事故。项目经理立即安排人员去检查,发现有2根立杆松动,差点酿成大祸。

业务背景:

  • 工程规模:大型工地同时有10-30个危险性较大的分部分项工程
  • 检查要求:高支模、深基坑每天检查,脚手架每周检查,塔吊每月检查
  • 人员配置:1-2名专职安全员,负责整个工地的安全检查
  • 时间特点:工期紧张,安全员经常被其他事情打断,容易遗漏

1.2 核心痛点

问题1:检查任务多,容易遗漏

  • 一个工地有几十项检查任务,频率不同(每天/每周/每月)
  • 安全员靠记忆或纸质台账,容易漏检
  • 没有自动提醒机制,发现漏检时已经超期好几天

问题2:危险性较大工程风险高

  • 高支模、深基坑一旦出问题,后果严重(坍塌、伤亡)
  • 但检查频率高(每天),安全员压力大
  • 漏检后没有及时发现,风险持续累积

问题3:责任追溯困难

  • 出事后才发现漏检,但不知道是谁的责任
  • 没有检查提醒记录,无法证明是否通知过安全员
  • 安全员说"没人提醒我",项目经理说"你应该知道"

1.3 业务规则(行业标准)

《危险性较大的分部分项工程安全管理规定》(住建部37号令):

  • 危险性较大工程应当进行施工监测和安全巡视(第21条)
  • 发现异常情况应当立即报告并采取应急措施(第22条)

《建筑施工安全检查标准》(JGJ 59-2011):

  • 高支模:每天检查(第4.3.5条)
  • 深基坑:每天检查(第5.2.6条)
  • 脚手架:每周检查(第6.1.8条)
  • 塔吊:每月检查(第7.2.3条)

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

  • 预警规则:到期 + 4小时 → 预警(给安全员留缓冲时间)
  • 报警规则:到期 + 1天 → 报警(升级到项目经理)
  • 特殊规则:危险性较大工程(高支模、深基坑)→ 到期立即报警

成本测算:

  • 漏检成本:高支模坍塌事故,可能造成重大伤亡(无法估量)
  • 误报成本:安全员多检查一次,耗时30分钟,人工成本约50元/次
  • 平衡点:宁可多提醒,不可漏检

二、方案设计

2.1 业务规则设计

规则1:检查任务到期判定

typescript
// 检查任务到期判定
interface InspectionOverdue {
  // 任务信息
  taskId: string;
  taskName: string;              // 如"3号楼高支模日检"
  projectName: string;           // 工程名称
  inspectionType: string;        // 检查类型:高支模、深基坑、脚手架、塔吊
  frequency: 'DAILY' | 'WEEKLY' | 'MONTHLY';  // 检查频率

  // 时间信息
  lastInspectionTime: Date;      // 上次检查时间
  nextDueTime: Date;             // 下次应检时间
  currentTime: Date;             // 当前时间
  overdueDuration: number;       // 超期时长(小时)

  // 判定结果
  status: 'NORMAL' | 'WARNING' | 'ALERT';
  isDangerous: boolean;          // 是否危险性较大工程
}

// 判定逻辑
function checkInspectionOverdue(
  task: InspectionTask,
  currentTime: Date
): InspectionOverdue {
  const overdueDuration = (currentTime.getTime() - task.nextDueTime.getTime()) / (1000 * 3600);

  // 危险性较大工程:到期立即报警
  if (task.isDangerous && overdueDuration > 0) {
    return {
      ...task,
      overdueDuration,
      status: 'ALERT',
      isDangerous: true
    };
  }

  // 普通工程:到期+4小时预警,+1天报警
  if (overdueDuration > 24) {
    return { status: 'ALERT', overdueDuration };
  } else if (overdueDuration > 4) {
    return { status: 'WARNING', overdueDuration };
  }

  return { status: 'NORMAL', overdueDuration: 0 };
}

规则2:分级预警规则

typescript
// 分级预警规则
interface AlertRule {
  // 预警级别(到期+4小时)
  warning: {
    condition: '到期 + 4小时';
    notifyTo: ['安全员'];
    channels: ['手机APP推送', '短信'];
    message: '【预警】3号楼高支模日检已超期4小时,请尽快检查';
  };

  // 报警级别(到期+1天)
  alert: {
    condition: '到期 + 1天';
    notifyTo: ['安全员', '项目经理', '安全总监'];
    channels: ['手机APP推送', '短信', '语音电话'];
    message: '【报警】3号楼高支模日检已超期1天,请立即检查';
  };

  // 危险性较大工程特殊规则
  dangerous: {
    condition: '到期立即报警';
    notifyTo: ['安全员', '项目经理', '安全总监'];
    channels: ['手机APP推送', '短信', '语音电话'];
    message: '【紧急】3号楼高支模(危险性较大工程)日检已到期,请立即检查';
    autoActions: [
      '标记为高风险状态',
      '禁止该区域施工作业',
      '记录到安全台账'
    ];
  };
}

规则3:检查闭环规则

typescript
// 检查闭环规则
interface InspectionClosedLoop {
  // 步骤1:接收提醒(必须)
  step1_receive: {
    action: '安全员确认收到提醒';
    timeLimit: 30;  // 30分钟内确认
    notConfirmed: '升级到项目经理';
  };

  // 步骤2:完成检查(必须)
  step2_inspect: {
    action: '现场检查并拍照记录';
    timeLimit: 4;  // 4小时内完成(预警级别)
    mustRecord: [
      '检查时间',
      '检查人员',
      '检查结果(合格/不合格)',
      '现场照片(至少3张)',
      '发现问题及整改措施'
    ];
  };

  // 步骤3:结果归档(自动)
  step3_archive: {
    action: '自动归档到安全台账';
    autoGenerate: [
      '检查记录表',
      '问题整改单(如有问题)',
      '统计报表(检查率、合格率)'
    ];
  };
}

2.2 技术方案

技术架构

检查任务库 → 定时扫描(每小时) → 规则引擎 → 分级推送

          检查记录库(历史数据)

          可视化看板 + 移动端

核心技术点

1. 检查任务管理

  • 任务配置:工程名称、检查类型、检查频率、责任人
  • 自动生成:根据频率自动生成下次检查任务
  • 任务状态:待检查、已检查、已超期

2. 到期检测

  • 定时扫描:每小时扫描一次所有检查任务
  • 到期判定:当前时间 > 应检时间 → 触发预警/报警
  • 特殊处理:危险性较大工程到期立即报警

3. 规则引擎

  • 基于时间窗口的规则判断
  • 支持规则配置(预警/报警阈值可调整)
  • 支持特殊规则(危险性较大工程)

4. 分级推送

  • 多通道推送:APP、短信、语音电话
  • 分级推送:预警(安全员)、报警(项目经理)
  • 推送确认:必须确认收到,否则升级

数据模型

typescript
// 检查任务
interface InspectionTask {
  id: string;
  projectId: string;           // 工程ID
  projectName: string;         // 工程名称(如"3号楼高支模")
  inspectionType: string;      // 检查类型
  frequency: 'DAILY' | 'WEEKLY' | 'MONTHLY';
  isDangerous: boolean;        // 是否危险性较大工程

  // 时间信息
  lastInspectionTime: Date;    // 上次检查时间
  nextDueTime: Date;           // 下次应检时间

  // 责任人
  assignedTo: string;          // 安全员ID
  assignedName: string;        // 安全员姓名

  // 状态
  status: 'PENDING' | 'COMPLETED' | 'OVERDUE';
}

// 检查记录
interface InspectionRecord {
  id: string;
  taskId: string;
  inspectionTime: Date;
  inspector: string;           // 检查人
  result: 'PASS' | 'FAIL';     // 检查结果
  photos: string[];            // 现场照片
  issues: string[];            // 发现问题
  actions: string[];           // 整改措施
  remarks: string;             // 备注
}

// 预警记录
interface AlertRecord {
  id: string;
  taskId: string;
  alertType: 'WARNING' | 'ALERT';
  alertTime: Date;
  overdueDuration: number;     // 超期时长(小时)
  notifiedTo: string[];        // 通知对象
  confirmed: boolean;          // 是否确认
  confirmedAt: Date;           // 确认时间
}

三、AI辅助开发方案

3.1 技术迁移分析

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

相似点:

  • 都是基于时间的到期检测
  • 都需要分级预警(预警 → 报警)
  • 都需要记录检查过程 + 闭环管理

差异点:

维度矿山场景建筑场景
检查对象设备(皮带机、提升机)工程(高支模、深基坑)
检查频率每周/每月每天/每周/每月
特殊规则关键设备优先危险性较大工程立即报警
检查内容设备运行状态工程安全状态 + 现场照片

技术复用度:90%

  • 规则引擎逻辑:100%复用
  • 分级推送逻辑:100%复用
  • 检查记录管理:95%复用(需增加照片上传)
  • 特殊规则处理:80%复用(调整判定条件)

3.2 Cursor Skill设计

Skill名称: inspection-overdue-alert.md

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

3.3 PROMPT模板

PROMPT 1:生成到期检测代码

你是一个业务逻辑开发专家。请根据以下业务规则,生成施工安全检查到期检测的代码。

## 业务场景
建筑工地的高支模、深基坑等危险性较大工程需要每天检查,超期未检查需要自动预警和报警。

## 业务规则
1. 到期判定:当前时间 > 应检时间 → 触发检测
2. 分级预警:
   - 到期 + 4小时 → 预警(通知安全员)
   - 到期 + 1天 → 报警(通知项目经理)
3. 特殊规则:危险性较大工程(高支模、深基坑)→ 到期立即报警
4. 检查频率:每天/每周/每月(根据工程类型)

## 数据模型
- InspectionTask:检查任务(projectName, inspectionType, frequency, nextDueTime)
- InspectionRecord:检查记录(inspectionTime, inspector, result, photos)
- AlertRecord:预警记录(alertType, alertTime, overdueDuration)

## 技术要求
- 使用TypeScript
- 定时扫描(每小时检查一次)
- 支持规则配置(预警/报警阈值可调整)
- 记录所有预警和检查过程

请生成完整的代码实现。

PROMPT 2:生成分级推送逻辑

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

## 业务场景
施工安全检查超期需要分级推送,预警通知安全员,报警通知项目经理。

## 业务规则
1. 预警级别(到期+4小时):
   - 推送到:安全员
   - 推送方式:APP推送 + 短信
   - 推送内容:工程名称、超期时长、检查要求

2. 报警级别(到期+1天):
   - 推送到:安全员、项目经理、安全总监
   - 推送方式:APP推送 + 短信 + 语音电话
   - 推送内容:工程名称、超期时长、风险提示

3. 危险性较大工程(到期立即报警):
   - 推送到:安全员、项目经理、安全总监
   - 推送方式:APP推送 + 短信 + 语音电话
   - 自动动作:标记高风险、禁止施工、记录台账

## 技术要求
- 支持多通道推送(APP、短信、语音)
- 推送确认机制(必须确认收到)
- 推送失败重试(最多3次)
- 升级机制(30分钟未确认 → 升级)

请生成完整的代码实现。

3.4 开发周期预估

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

  • 原型验证:1天

    • Day 1:复用规则引擎,调整判定条件,测试预警场景
  • 首版上线:3-5天

    • Day 2-3:完善检查记录管理(增加照片上传)
    • Day 4:对接推送系统、测试
    • Day 5:部署上线
  • 迭代优化:根据实际使用反馈调整阈值、优化推送策略


四、开发资产

4.1 Cursor Skill

文件名: inspection-overdue-alert.md

内容:

markdown
# 施工安全检查到期预警规则

## 业务场景
建筑施工、矿山生产等场景中,需要定期检查设备或工程的安全状态,超期未检查需要自动预警和报警。

## 核心业务规则

### 1. 到期判定规则

**规则一:到期检测**
```typescript
// 检测检查任务是否到期
function checkOverdue(
  task: InspectionTask,
  currentTime: Date
): boolean {
  return currentTime.getTime() > task.nextDueTime.getTime();
}

规则二:超期时长计算

typescript
// 计算超期时长(小时)
function getOverdueDuration(
  task: InspectionTask,
  currentTime: Date
): number {
  const duration = (currentTime.getTime() - task.nextDueTime.getTime()) / (1000 * 3600);
  return Math.max(0, duration);
}

2. 分级预警规则

规则一:预警级别(到期+4小时)

typescript
async function triggerWarning(task: InspectionTask, overdueDuration: number) {
  if (overdueDuration > 4 && overdueDuration <= 24) {
    await alertService.push({
      level: 'WARNING',
      notifyTo: [task.assignedTo],
      channels: ['APP', '短信'],
      message: `【预警】${task.projectName}检查已超期${overdueDuration.toFixed(1)}小时,请尽快检查`
    });
  }
}

规则二:报警级别(到期+1天)

typescript
async function triggerAlert(task: InspectionTask, overdueDuration: number) {
  if (overdueDuration > 24) {
    await alertService.push({
      level: 'ALERT',
      notifyTo: [task.assignedTo, task.projectManager, task.safetyDirector],
      channels: ['APP', '短信', '语音电话'],
      message: `【报警】${task.projectName}检查已超期${overdueDuration.toFixed(1)}小时,请立即检查`
    });
  }
}

规则三:危险性较大工程特殊规则

typescript
async function triggerDangerousAlert(task: InspectionTask) {
  if (task.isDangerous && checkOverdue(task, new Date())) {
    await alertService.push({
      level: 'CRITICAL',
      notifyTo: [task.assignedTo, task.projectManager, task.safetyDirector],
      channels: ['APP', '短信', '语音电话'],
      message: `【紧急】${task.projectName}(危险性较大工程)检查已到期,请立即检查`
    });

    // 自动动作
    await autoActions.execute([
      '标记为高风险状态',
      '禁止该区域施工作业',
      '记录到安全台账'
    ]);
  }
}

3. 检查闭环规则

规则一:推送确认

typescript
async function confirmAlert(alertId: string, userId: string) {
  const alert = await alertService.getById(alertId);

  // 记录确认
  await alertService.update(alertId, {
    confirmed: true,
    confirmedBy: userId,
    confirmedAt: new Date()
  });

  // 30分钟未确认 → 升级
  setTimeout(async () => {
    const updated = await alertService.getById(alertId);
    if (!updated.confirmed) {
      await escalateAlert(updated);
    }
  }, 30 * 60 * 1000);
}

规则二:检查记录

typescript
async function recordInspection(record: InspectionRecord) {
  // 保存检查记录
  await inspectionService.create(record);

  // 更新任务状态
  await taskService.update(record.taskId, {
    status: 'COMPLETED',
    lastInspectionTime: record.inspectionTime,
    nextDueTime: calculateNextDueTime(record.task)
  });

  // 如果发现问题,自动生成整改单
  if (record.result === 'FAIL') {
    await rectificationService.create({
      taskId: record.taskId,
      issues: record.issues,
      actions: record.actions,
      deadline: calculateRectificationDeadline(record.issues)
    });
  }
}

数据模型

检查任务

typescript
interface InspectionTask {
  id: string;
  projectId: string;
  projectName: string;
  inspectionType: string;
  frequency: 'DAILY' | 'WEEKLY' | 'MONTHLY';
  isDangerous: boolean;
  lastInspectionTime: Date;
  nextDueTime: Date;
  assignedTo: string;
  assignedName: string;
  status: 'PENDING' | 'COMPLETED' | 'OVERDUE';
}

检查记录

typescript
interface InspectionRecord {
  id: string;
  taskId: string;
  inspectionTime: Date;
  inspector: string;
  result: 'PASS' | 'FAIL';
  photos: string[];
  issues: string[];
  actions: string[];
  remarks: string;
}

预警记录

typescript
interface AlertRecord {
  id: string;
  taskId: string;
  alertType: 'WARNING' | 'ALERT' | 'CRITICAL';
  alertTime: Date;
  overdueDuration: number;
  notifiedTo: string[];
  confirmed: boolean;
  confirmedBy: string;
  confirmedAt: Date;
}

关键处理流程

  1. 定时扫描 → 每小时扫描所有检查任务
  2. 到期判定 → 当前时间 > 应检时间 → 触发预警
  3. 分级推送 → 根据超期时长和工程类型分级推送
  4. 推送确认 → 必须确认收到,30分钟未确认 → 升级
  5. 检查记录 → 记录检查过程 + 自动生成整改单

开发注意事项

  1. 阈值可配置:不要硬编码4小时/1天,支持运营人员配置
  2. 特殊规则优先:危险性较大工程到期立即报警,不等4小时
  3. 推送确认机制:必须确认收到,否则持续推送并升级
  4. 数据留痕:所有预警和检查过程必须记录

相似场景复用

这个规则可以复用到:

  • 设备巡检:设备定期巡检到期预警
  • 资质管理:人员资质到期提醒
  • 合同管理:合同到期提醒

### 4.2 技术迁移说明

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

1. **矿山场景:设备巡检到期预警规则**
   - 复用:规则引擎框架、分级推送逻辑、检查记录管理
   - 调整:检查对象(设备 → 工程)、特殊规则(关键设备 → 危险性较大工程)
   - 复用度:90%

2. **医废场景:超期预警规则**
   - 复用:时间窗口判断、升级机制
   - 调整:阈值(46/47/48小时 → 4小时/1天)
   - 复用度:85%

**需要新开发的部分:**
- 照片上传功能(5%)
- 危险性较大工程特殊规则(5%)

### 4.3 实施指南

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

# 配置检查任务
# 编辑 config/inspection-tasks.json

步骤2:使用Cursor Skill

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

步骤3:调整配置

typescript
// config/alert-rules.ts
export const ALERT_CONFIG = {
  warningThreshold: 4,           // 预警阈值(小时)
  alertThreshold: 24,            // 报警阈值(小时)
  dangerousImmediate: true,      // 危险性较大工程立即报警
  confirmTimeout: 30,            // 确认超时(分钟)
};

步骤4:测试验证

bash
# 运行测试
npm test

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

五、下一步行动

如果您对这个场景感兴趣

  1. 快速验证:我们可以用1天时间,基于模拟数据做原型演示
  2. 技术对接:提供检查任务配置模板,评估对接工作量
  3. 成本预估:根据工地规模、检查任务数量,给出详细报价

相关场景

相关资产


← 返回建筑场景 | 联系合作 →

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