开发资产:矿山安全巡检系统
概述
在开发这个场景的过程中,我们沉淀了以下可复用的开发资产:
- Cursor Skill - 井下人员定位与应急撤离规则
- PROMPT 模板 - 设备异常报警逻辑生成
- 实施指南 - 如何快速复现这个场景
这些资产可以帮助快速复用这个场景的开发经验。
1. Cursor Skill:井下人员定位与应急撤离规则
使用场景
当你需要开发类似的"人员定位/应急撤离"场景时,可以使用这个 Skill 让 AI 理解业务规则。
Skill 内容
markdown
# 井下人员定位与应急撤离规则
## 业务场景
矿山、隧道、地下工程等场景中,需要实时定位井下人员位置,并在紧急情况下快速指导人员撤离。
## 核心业务规则
### 1. 人员定位规则
**定位数据采集:**
- 定位标签每 30 秒上报一次位置
- 定位基站实时接收位置数据
- 数据通过有线/无线网络传输
**定位精度要求:**
- 定位精度:3-5 米
- 定位更新频率:30 秒
- 定位数据保存:至少 30 天
### 2. 异常预警规则
**预警类型:**
- 人员进入危险区域
- 人员超时未出井(超过 8 小时)
- 人员异常聚集
- 人员失联(超过 5 分钟未上报位置)
**预警处理:**
```typescript
async function checkPersonAlerts(personId: string): Promise<Alert[]> {
const person = await getPersonLocation(personId);
const alerts = [];
// 检查是否在危险区域
if (isInDangerZone(person.location)) {
alerts.push({
type: 'DANGER_ZONE',
level: 'critical',
message: `人员 ${person.name} 进入危险区域`
});
}
// 检查是否超时未出井
const undergroundTime = Date.now() - person.enterTime;
if (undergroundTime > 8 * 60 * 60 * 1000) { // 8小时
alerts.push({
type: 'OVERTIME',
level: 'warning',
message: `人员 ${person.name} 超时未出井`
});
}
// 检查是否失联
const lastUpdateTime = Date.now() - person.lastUpdateTime;
if (lastUpdateTime > 5 * 60 * 1000) { // 5分钟
alerts.push({
type: 'MISSING',
level: 'critical',
message: `人员 ${person.name} 失联`
});
}
return alerts;
}3. 应急撤离路线计算
路线计算算法:
typescript
function calculateEvacuationRoute(
personLocation: Location,
emergencyExits: EmergencyExit[],
dangerZones: DangerZone[]
): EvacuationRoute {
// 1. 筛选可用出口(避开危险区域)
const availableExits = emergencyExits.filter(exit =>
!isInDangerZone(exit.location, dangerZones)
);
// 2. 计算到每个出口的距离
const routes = availableExits.map(exit => ({
exit,
distance: calculateDistance(personLocation, exit.location),
path: calculatePath(personLocation, exit.location, dangerZones)
}));
// 3. 选择最短安全路线
routes.sort((a, b) => a.distance - b.distance);
const bestRoute = routes[0];
return {
exit: bestRoute.exit,
distance: bestRoute.distance,
path: bestRoute.path,
estimatedTime: bestRoute.distance / 1.5 // 假设步行速度 1.5 m/s
};
}数据模型
人员定位(PersonLocation)
typescript
interface PersonLocation {
personId: string;
location: { x: number; y: number; z: number };
timestamp: Date;
isInDangerZone: boolean;
}开发注意事项
- 定位精度:井下环境复杂,定位精度可能受影响,需要设置合理的容差
- 通信稳定性:井下信号可能不稳定,需要支持离线缓存
- 应急响应:应急撤离功能必须快速响应,不能有延迟
- 数据安全:人员定位数据涉及隐私,需要加密存储
相似场景复用
这个规则可以复用到:
- 隧道施工人员定位:地铁、公路隧道施工
- 地下工程人员定位:地下商场、地下停车场
- 应急撤离系统:大型建筑、工厂应急撤离
---
## 2. PROMPT 模板:设备异常报警逻辑生成
### 使用场景
当需要快速生成类似的"设备异常报警"代码时,使用这个 PROMPT 模板。
### PROMPT 模板
```text
你是一个业务逻辑开发专家。请根据以下业务规则,生成完整的设备异常报警逻辑代码。
## 业务场景
[描述你的具体场景,例如:矿山设备运行监控]
## 设备监测参数
[列出监测参数,例如:
- 通风机:风量、温度
- 水泵:流量、压力
- 瓦斯监测:浓度
]
## 报警规则
[描述报警规则,例如:
- 风量 <80%:一般报警
- 温度 >80°C:严重报警
- 瓦斯浓度 >1%:严重报警,自动启动应急预案
]
## 输出要求
1. TypeScript 代码实现
2. 包含完整的报警逻辑
3. 包含通知机制
4. 包含单元测试用例
5. 包含注释说明
请生成代码。3. 实施指南
快速复现步骤
如果你需要在新项目中实现类似的场景,按照以下步骤:
步骤 1:需求确认(1 小时)
- [ ] 确认定位技术方案(RFID/蓝牙/UWB)
- [ ] 确认设备监测参数和报警阈值
- [ ] 确认应急撤离流程
- [ ] 确认硬件设备选型
步骤 2:数据库设计(30 分钟)
sql
-- 人员定位表
CREATE TABLE person_locations (
id VARCHAR(50) PRIMARY KEY,
person_id VARCHAR(50),
location_x DECIMAL(10,2),
location_y DECIMAL(10,2),
location_z DECIMAL(10,2),
timestamp TIMESTAMP,
is_in_danger_zone BOOLEAN,
created_at TIMESTAMP
);
-- 设备监控表
CREATE TABLE equipment_monitoring (
id VARCHAR(50) PRIMARY KEY,
equipment_id VARCHAR(50),
parameter_name VARCHAR(50),
parameter_value DECIMAL(10,2),
status VARCHAR(20),
alarm_level VARCHAR(20),
timestamp TIMESTAMP,
created_at TIMESTAMP
);步骤 3:开发定位功能(3 小时)
使用上述 Cursor Skill,快速生成定位逻辑代码。
步骤 4:开发设备监控(3 小时)
使用 PROMPT 模板生成设备监控和报警逻辑。
步骤 5:集成通知(1 小时)
- 短信通知
- 电话通知(紧急情况)
- 系统内消息
步骤 6:测试(2 小时)
- 定位功能测试
- 设备监控测试
- 应急撤离测试
- 边界值测试
总开发时间:约 10-12 小时
下一步
查看 系统落地 → 了解这个场景在完整系统中的实现。

