Skip to content

资质到期提醒规则

适用于施工安全、设备合规、人员持证上岗等资质有效期管理场景。

规则文件内容

请复制以下内容,保存为 .cursor/rules/qualification-expiry-alert.mdc

markdown
---
description: 资质到期提醒、状态管控与到期禁用业务规则
globs: src/modules/certificates/**, src/modules/compliance/**, src/modules/alerts/**
---

# 资质到期提醒业务规则

## 1. 核心原则
- **提前预警**:到期前分层提醒,避免临期失控。
- **到期即管控**:到期后自动禁止相关作业或使用。
- **提醒可追踪**:每次提醒必须留痕,避免重复轰炸。

## 2. 资质分类规则
- 人员资质:特种作业证、安全员证等。
- 设备资质:检测报告、使用登记证等。
- 企业资质:施工资质、安全生产许可证等。

## 3. 到期提醒规则

### 3.1 提醒节点
- 提前 `30` 天:第一次提醒
- 提前 `15` 天:第二次提醒
- 提前 `7` 天:第三次提醒
- 到期当天:最终提醒

### 3.2 告警等级
- `days_left <= 7``critical`
- `7 < days_left <= 15``warning`
- `15 < days_left <= 30``notice`

## 4. 到期处理规则
- `days_left < 0`:状态置为 `expired`
- 到期资质对应的人员/设备自动置为不可用(按策略开关控制)
- 已过期资质不允许被派单、审批通过、或用于合规校验

```ts
type ReminderLevel = 'notice' | 'warning' | 'critical';

function getReminderLevel(daysLeft: number): ReminderLevel | null {
  if (daysLeft < 0) return null;
  if (daysLeft <= 7) return 'critical';
  if (daysLeft <= 15) return 'warning';
  if (daysLeft <= 30) return 'notice';
  return null;
}

5. 去重与频控规则

  • 同一证书同一提醒节点只发送一次。
  • 同一负责人每天同类型提醒最多 3 条(可配置)。
  • 短信/邮件失败必须重试并记录失败原因。

6. 数据模型约束

  • certificates 必须包含:owner_type, owner_id, certificate_type, expiry_date, status
  • certificate_reminders 必须包含:certificate_id, reminder_level, sent_at, channel, result
  • compliance_blocks 必须包含:owner_id, block_reason, blocked_at, released_at

7. 实施注意事项

  • 统一时区做日期比较,建议以本地业务时区的 00:00 为边界。
  • 定时任务建议每天 08:00 与 16:00 各运行一次。
  • 证书延期时需自动重置提醒状态,避免历史节点干扰。

## 适用场景

- 建筑施工资质管理
- 设备合规证照管理
- 人员持证上岗校验

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