场景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;
}关键处理流程
- 定时扫描 → 每小时扫描所有检查任务
- 到期判定 → 当前时间 > 应检时间 → 触发预警
- 分级推送 → 根据超期时长和工程类型分级推送
- 推送确认 → 必须确认收到,30分钟未确认 → 升级
- 检查记录 → 记录检查过程 + 自动生成整改单
开发注意事项
- 阈值可配置:不要硬编码4小时/1天,支持运营人员配置
- 特殊规则优先:危险性较大工程到期立即报警,不等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天时间,基于模拟数据做原型演示
- 技术对接:提供检查任务配置模板,评估对接工作量
- 成本预估:根据工地规模、检查任务数量,给出详细报价
相关场景
- 场景02:资质到期提醒 - 人员资质管理
- 场景03:整改闭环跟踪 - 隐患整改管理

