场景01:车辆年检到期提醒
当前阶段: 🔍 探索中 | 行业: 交通运输 | 关键词: 车辆年检、营运车辆、年检提醒、车辆禁用 | 返回交通场景 →
一、需求探索
1.1 痛点时刻
具体场景:
周一早上8点,物流公司的一辆货车(车牌号:京A12345)在配送途中被交警拦下检查。交警发现该车年检已过期15天,当场扣车并罚款2000元。
车队长老张接到电话后才发现,这辆车的年检日期是上个月15号,但因为最近业务繁忙,完全忘记了这事。现在车被扣了,当天的配送任务无法完成,客户投诉,还要支付罚款和拖车费,总损失超过5000元。
业务背景:
- 车队规模:中型物流公司,车辆50-200辆
- 年检要求:营运车辆每年年检一次,非营运车辆每两年年检一次
- 办理周期:营运车辆年检需要提前预约,办理周期7-15天
- 管理难点:车辆多、年检日期不统一、车队长靠记忆或Excel表格管理,容易遗漏
1.2 核心痛点
问题1:年检日期难记忆
- 50-200辆车,每辆车年检日期不同
- 车队长靠Excel表格或纸质台账管理,容易遗漏
- 没有自动提醒机制,发现过期时已经被罚款
问题2:营运车辆办理周期长
- 营运车辆年检需要提前预约,办理周期7-15天
- 如果临近到期才发现,来不及办理,车辆被迫停运
- 影响配送任务,造成经济损失
问题3:过期车辆仍在使用
- 年检过期后,系统没有自动禁用车辆
- 调度员不知道车辆已过期,继续派单
- 被交警查到,罚款2000元,扣车,影响业务
1.3 业务规则(行业标准)
《道路交通安全法》:
- 机动车应当从注册登记之日起,按照规定期限进行安全技术检验(第13条)
- 未按规定进行安全技术检验的,由公安机关交通管理部门处警告或者200元以下罚款(第90条)
- 上道路行驶的机动车未放置检验合格标志的,扣留机动车,罚款200元,记1分(第95条)
《道路运输车辆技术管理规定》:
- 道路运输车辆应当按照国家有关规定进行定期检验检测(第18条)
- 道路运输经营者应当建立车辆技术档案(第19条)
实际业务规则(基于行业调研):
- 预警规则:
- 营运车辆:到期前60天 → 预警(办理周期长)
- 普通车辆:到期前30天 → 预警
- 报警规则:
- 营运车辆:到期前15天 → 报警
- 普通车辆:到期前7天 → 报警
- 禁用规则:
- 年检过期 → 车辆自动禁用,停止派单
- 必须完成年检后才能解除禁用
成本测算:
- 过期成本:罚款2000元 + 扣车拖车费500元 + 配送延误损失2000-5000元 = 4500-7500元/次
- 提醒成本:短信0.1元/条,人工核查10分钟/次,约20元/次
- 平衡点:宁可多提醒,不可漏检
二、方案设计
2.1 业务规则设计
规则1:年检到期判定
typescript
// 年检到期判定
interface VehicleInspectionExpiry {
// 车辆信息
vehicleId: string;
plateNumber: string; // 车牌号
vehicleType: 'COMMERCIAL' | 'NON_COMMERCIAL'; // 营运/非营运
// 年检信息
lastInspectionDate: Date; // 上次年检日期
nextInspectionDate: Date; // 下次年检日期
inspectionCycle: number; // 年检周期(月):12或24
// 时间信息
currentDate: Date; // 当前日期
daysUntilExpiry: number; // 距离到期天数
// 判定结果
status: 'NORMAL' | 'WARNING' | 'ALERT' | 'EXPIRED';
}
// 判定逻辑
function checkInspectionExpiry(
vehicle: Vehicle,
currentDate: Date
): VehicleInspectionExpiry {
const daysUntilExpiry = Math.floor(
(vehicle.nextInspectionDate.getTime() - currentDate.getTime()) / (1000 * 3600 * 24)
);
// 已过期
if (daysUntilExpiry < 0) {
return {
...vehicle,
daysUntilExpiry,
status: 'EXPIRED'
};
}
// 营运车辆:60天预警,15天报警
if (vehicle.vehicleType === 'COMMERCIAL') {
if (daysUntilExpiry <= 15) {
return { status: 'ALERT', daysUntilExpiry };
} else if (daysUntilExpiry <= 60) {
return { status: 'WARNING', daysUntilExpiry };
}
}
// 普通车辆:30天预警,7天报警
if (vehicle.vehicleType === 'NON_COMMERCIAL') {
if (daysUntilExpiry <= 7) {
return { status: 'ALERT', daysUntilExpiry };
} else if (daysUntilExpiry <= 30) {
return { status: 'WARNING', daysUntilExpiry };
}
}
return { status: 'NORMAL', daysUntilExpiry };
}规则2:分级提醒规则
typescript
// 分级提醒规则
interface AlertRule {
// 预警级别(营运车辆60天,普通车辆30天)
warning: {
condition: '营运车辆到期前60天,普通车辆到期前30天';
notifyTo: ['车队长', '车辆驾驶员'];
channels: ['手机APP推送', '短信'];
message: '【预警】车辆{plateNumber}年检将于{days}天后到期,请提前安排办理';
};
// 报警级别(营运车辆15天,普通车辆7天)
alert: {
condition: '营运车辆到期前15天,普通车辆到期前7天';
notifyTo: ['车队长', '车辆驾驶员', '调度主管'];
channels: ['手机APP推送', '短信', '语音电话'];
message: '【报警】车辆{plateNumber}年检将于{days}天后到期,请立即办理';
};
// 过期禁用
expired: {
condition: '年检过期';
notifyTo: ['车队长', '车辆驾驶员', '调度主管', '安全总监'];
channels: ['手机APP推送', '短信', '语音电话'];
message: '【紧急】车辆{plateNumber}年检已过期,已自动禁用,禁止派单';
autoActions: [
'车辆状态标记为"禁用"',
'停止该车辆的所有派单',
'通知调度员调整配送计划',
'记录到车辆档案'
];
};
}规则3:车辆禁用规则
typescript
// 车辆禁用规则
interface VehicleDisableRule {
// 步骤1:自动禁用(必须)
step1_disable: {
trigger: '年检过期当天';
action: '车辆状态自动变更为"禁用"';
effect: [
'调度系统无法选择该车辆',
'正在执行的任务不受影响',
'新任务无法派给该车辆'
];
};
// 步骤2:通知相关人员(必须)
step2_notify: {
notifyTo: ['车队长', '调度员', '驾驶员'];
message: '车辆{plateNumber}年检已过期,已自动禁用';
channels: ['APP推送', '短信', '语音电话'];
};
// 步骤3:解除禁用(手动)
step3_enable: {
condition: '完成年检并上传年检合格证';
action: '车队长审核通过后,手动解除禁用';
mustRecord: [
'年检日期',
'下次年检日期',
'年检合格证照片',
'解除禁用时间',
'操作人员'
];
};
}2.2 技术方案
技术架构
车辆档案库 → 定时扫描(每天) → 规则引擎 → 分级推送
↓
年检记录库(历史数据)
↓
可视化看板 + 移动端核心技术点
1. 车辆档案管理
- 车辆信息:车牌号、车辆类型(营运/非营运)、年检周期
- 年检信息:上次年检日期、下次年检日期、年检合格证
- 车辆状态:正常、预警、报警、禁用
2. 到期检测
- 定时扫描:每天凌晨扫描所有车辆
- 到期判定:当前日期 + 预警天数 > 年检日期 → 触发提醒
- 特殊处理:营运车辆提前60天预警(办理周期长)
3. 规则引擎
- 基于时间窗口的规则判断
- 支持规则配置(预警/报警阈值可调整)
- 支持特殊规则(营运车辆提前预警)
4. 分级推送
- 多通道推送:APP、短信、语音电话
- 分级推送:预警(车队长)、报警(调度主管)
- 推送确认:必须确认收到,否则升级
5. 车辆禁用
- 自动禁用:年检过期 → 车辆状态变更为"禁用"
- 派单拦截:调度系统无法选择禁用车辆
- 手动解除:完成年检后,车队长审核解除禁用
数据模型
typescript
// 车辆档案
interface Vehicle {
id: string;
plateNumber: string; // 车牌号
vehicleType: 'COMMERCIAL' | 'NON_COMMERCIAL'; // 营运/非营运
// 年检信息
lastInspectionDate: Date; // 上次年检日期
nextInspectionDate: Date; // 下次年检日期
inspectionCycle: number; // 年检周期(月):12或24
inspectionCertificate: string; // 年检合格证照片
// 车辆状态
status: 'ACTIVE' | 'WARNING' | 'ALERT' | 'DISABLED';
// 责任人
driver: string; // 驾驶员ID
driverName: string; // 驾驶员姓名
fleetManager: string; // 车队长ID
}
// 年检记录
interface InspectionRecord {
id: string;
vehicleId: string;
inspectionDate: Date; // 年检日期
nextInspectionDate: Date; // 下次年检日期
inspectionResult: 'PASS' | 'FAIL'; // 年检结果
certificate: string; // 年检合格证照片
remarks: string; // 备注
operator: string; // 操作人
}
// 提醒记录
interface AlertRecord {
id: string;
vehicleId: string;
alertType: 'WARNING' | 'ALERT' | 'EXPIRED';
alertTime: Date;
daysUntilExpiry: number; // 距离到期天数
notifiedTo: string[]; // 通知对象
confirmed: boolean; // 是否确认
confirmedAt: Date; // 确认时间
}三、AI辅助开发方案
3.1 技术迁移分析
复用已有资产:通用场景的"资质到期提醒"规则
相似点:
- 都是基于时间的到期检测
- 都需要分级提醒(预警 → 报警)
- 都需要过期后自动禁用
差异点:
| 维度 | 资质到期提醒 | 车辆年检提醒 |
|---|---|---|
| 检查对象 | 人员资质证书 | 车辆年检合格证 |
| 提醒周期 | 统一30天预警 | 营运车辆60天,普通车辆30天 |
| 过期处理 | 人员禁止上岗 | 车辆禁用,停止派单 |
| 解除条件 | 上传新证书 | 完成年检并上传合格证 |
技术复用度:95%
- 规则引擎逻辑:100%复用
- 分级推送逻辑:100%复用
- 到期检测逻辑:95%复用(需增加营运车辆特殊规则)
- 禁用解除逻辑:90%复用(调整禁用对象:人员 → 车辆)
3.2 Cursor Skill设计
Skill名称: qualification-expiry-alert.md
Skill内容: 复用已有的资质到期提醒规则,调整为车辆年检场景
3.3 PROMPT模板
PROMPT 1:生成年检到期检测代码
你是一个业务逻辑开发专家。请根据以下业务规则,生成车辆年检到期检测的代码。
## 业务场景
物流公司的车辆需要定期年检,营运车辆每年一次,非营运车辆每两年一次。年检过期需要自动提醒并禁用车辆。
## 业务规则
1. 到期判定:当前日期 + 预警天数 > 年检日期 → 触发提醒
2. 分级提醒:
- 营运车辆:到期前60天预警,15天报警
- 普通车辆:到期前30天预警,7天报警
3. 过期禁用:年检过期 → 车辆自动禁用,停止派单
4. 解除禁用:完成年检并上传合格证 → 车队长审核解除
## 数据模型
- Vehicle:车辆档案(plateNumber, vehicleType, nextInspectionDate)
- InspectionRecord:年检记录(inspectionDate, nextInspectionDate, certificate)
- AlertRecord:提醒记录(alertType, alertTime, daysUntilExpiry)
## 技术要求
- 使用TypeScript
- 定时扫描(每天凌晨检查一次)
- 支持规则配置(预警/报警阈值可调整)
- 记录所有提醒和年检过程
请生成完整的代码实现。PROMPT 2:生成车辆禁用逻辑
你是一个业务逻辑开发专家。请根据以下业务规则,生成车辆年检过期自动禁用的代码。
## 业务场景
车辆年检过期后,需要自动禁用车辆,停止派单,防止违规上路。
## 业务规则
1. 自动禁用:年检过期当天 → 车辆状态变更为"禁用"
2. 派单拦截:调度系统无法选择禁用车辆
3. 通知相关人员:车队长、调度员、驾驶员
4. 解除禁用:完成年检并上传合格证 → 车队长审核解除
## 技术要求
- 自动禁用:定时任务检测过期车辆,自动变更状态
- 派单拦截:调度系统查询可用车辆时,过滤禁用车辆
- 通知推送:多通道推送(APP、短信、语音)
- 审核流程:车队长审核年检合格证,手动解除禁用
请生成完整的代码实现。3.4 开发周期预估
基于已有资产(资质到期提醒):
原型验证:1天
- Day 1:复用规则引擎,调整判定条件,测试提醒场景
首版上线:3-5天
- Day 2:实现车辆禁用逻辑(自动禁用 + 派单拦截)
- Day 3:实现解除禁用流程(审核 + 解除)
- Day 4:对接推送系统、测试
- Day 5:部署上线
迭代优化:根据实际使用反馈调整阈值、优化推送策略
四、开发资产
4.1 Cursor Skill
文件名: qualification-expiry-alert.md(复用已有资产)
调整内容:
- 检查对象:人员资质 → 车辆年检
- 提醒周期:统一30天 → 营运车辆60天,普通车辆30天
- 禁用对象:人员 → 车辆
- 解除条件:上传新证书 → 完成年检并上传合格证
4.2 技术迁移说明
可复用的已有资产:
建筑场景:资质到期提醒规则
- 复用:规则引擎框架、分级推送逻辑、到期检测逻辑
- 调整:检查对象(人员 → 车辆)、提醒周期(增加营运车辆特殊规则)
- 复用度:95%
医废场景:超期预警规则
- 复用:时间窗口判断、升级机制
- 调整:阈值(46/47/48小时 → 30/60天)
- 复用度:85%
需要新开发的部分:
- 营运车辆特殊规则(提前60天预警)(3%)
- 车辆禁用 + 派单拦截逻辑(2%)
4.3 实施指南
步骤1:准备环境
bash
# 安装依赖
npm install
# 配置车辆档案
# 编辑 config/vehicles.json步骤2:使用Cursor Skill
1. 将 qualification-expiry-alert.md 保存到 .cursor/rules/
2. 在Cursor中告诉AI:
"参考 qualification-expiry-alert.md 中的业务规则,
实现车辆年检到期提醒功能,
注意营运车辆需要提前60天预警"
3. AI会基于规则生成代码步骤3:调整配置
typescript
// config/alert-rules.ts
export const ALERT_CONFIG = {
commercial: {
warningDays: 60, // 营运车辆预警天数
alertDays: 15, // 营运车辆报警天数
},
nonCommercial: {
warningDays: 30, // 普通车辆预警天数
alertDays: 7, // 普通车辆报警天数
},
autoDisable: true, // 过期自动禁用
confirmTimeout: 30, // 确认超时(分钟)
};步骤4:测试验证
bash
# 运行测试
npm test
# 模拟过期场景
npm run simulate:expiry五、下一步行动
如果您对这个场景感兴趣
- 快速验证:我们可以用1天时间,基于模拟数据做原型演示
- 技术对接:提供车辆档案配置模板,评估对接工作量
- 成本预估:根据车队规模、车辆数量,给出详细报价
相关场景
- 场景02:道路桥梁巡检漏检 - 道路养护管理
- 场景03:驾驶员资质到期提醒 - 人员资质管理

