138 lines
3.8 KiB
Markdown
138 lines
3.8 KiB
Markdown
# 自动到期检测功能使用说明
|
||
|
||
## 功能概述
|
||
|
||
自动到期检测功能是一个智能的到期时间监控系统,能够自动检测数据库中各种表格的到期时间字段,并提供到期提醒功能。
|
||
|
||
## 主要特性
|
||
|
||
1. **自动检测**: 系统会自动扫描配置的表格,检测其中的到期时间字段
|
||
2. **灵活配置**: 可以配置任意表格的到期检测规则
|
||
3. **智能提醒**: 支持提前提醒天数配置
|
||
4. **状态管理**: 自动计算剩余天数并设置状态(正常/即将到期/已到期)
|
||
5. **定时执行**: 每天凌晨2点自动执行检测任务
|
||
|
||
## 数据库表结构
|
||
|
||
### 1. 自动到期检测配置表 (auto_expiration_config)
|
||
|
||
| 字段名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| config_id | varchar(64) | 配置ID |
|
||
| table_name | varchar(100) | 表名 |
|
||
| table_desc | varchar(200) | 表描述 |
|
||
| primary_key_field | varchar(100) | 主键字段 |
|
||
| expire_date_field | varchar(100) | 到期时间字段 |
|
||
| user_id_field | varchar(100) | 关联用户字段 |
|
||
| user_name_field | varchar(100) | 用户姓名字段 |
|
||
| business_name_field | varchar(100) | 业务名称字段 |
|
||
| remind_days | int | 提前提醒天数 |
|
||
| enabled | varchar(1) | 是否启用(0-禁用,1-启用) |
|
||
|
||
### 2. 到期检测结果表 (expiration_result)
|
||
|
||
| 字段名 | 类型 | 说明 |
|
||
|--------|------|------|
|
||
| result_id | varchar(64) | 结果ID |
|
||
| table_name | varchar(100) | 表名 |
|
||
| business_id | varchar(64) | 业务ID |
|
||
| business_name | varchar(200) | 业务名称 |
|
||
| user_id | varchar(64) | 关联用户ID |
|
||
| user_name | varchar(100) | 关联用户姓名 |
|
||
| expire_date | date | 到期日期 |
|
||
| remaining_days | int | 剩余天数 |
|
||
| status | varchar(1) | 状态(0-正常,1-即将到期,2-已到期) |
|
||
|
||
## API接口
|
||
|
||
### 1. 手动执行到期检测
|
||
```
|
||
POST /auto-expiration/execute
|
||
```
|
||
|
||
### 2. 获取到期检测结果
|
||
```
|
||
GET /auto-expiration/results?status=1
|
||
```
|
||
参数说明:
|
||
- status: 状态筛选(0-正常,1-即将到期,2-已到期)
|
||
|
||
### 3. 获取统计信息
|
||
```
|
||
GET /auto-expiration/statistics
|
||
```
|
||
|
||
### 4. 检测指定表
|
||
```
|
||
POST /auto-expiration/check-table/{tableName}
|
||
```
|
||
|
||
### 5. 保存配置
|
||
```
|
||
POST /auto-expiration/config
|
||
```
|
||
|
||
### 6. 获取所有配置
|
||
```
|
||
GET /auto-expiration/configs
|
||
```
|
||
|
||
### 7. 删除配置
|
||
```
|
||
DELETE /auto-expiration/config/{configId}
|
||
```
|
||
|
||
## 配置示例
|
||
|
||
### 人员资质证书检测配置
|
||
```json
|
||
{
|
||
"tableName": "certification",
|
||
"tableDesc": "人员资质证书",
|
||
"primaryKeyField": "certification_id",
|
||
"expireDateField": "validity_date_end",
|
||
"userIdField": "user_id",
|
||
"businessNameField": "certification_name",
|
||
"remindDays": 30,
|
||
"enabled": "1"
|
||
}
|
||
```
|
||
|
||
### 人员保险检测配置
|
||
```json
|
||
{
|
||
"tableName": "insurance_info",
|
||
"tableDesc": "人员保险",
|
||
"primaryKeyField": "insurance_info_id",
|
||
"expireDateField": "expire_date",
|
||
"userIdField": "user_id",
|
||
"userNameField": "name",
|
||
"businessNameField": "insurance_type_name",
|
||
"remindDays": 30,
|
||
"enabled": "1"
|
||
}
|
||
```
|
||
|
||
## 使用步骤
|
||
|
||
1. **创建数据库表**: 执行 `auto_expiration_tables.sql` 创建必要的表结构
|
||
2. **配置检测规则**: 通过API或直接插入数据配置需要检测的表格
|
||
3. **启动定时任务**: 系统会自动在每天凌晨2点执行检测
|
||
4. **查看检测结果**: 通过API接口查看检测结果和统计信息
|
||
|
||
## 扩展说明
|
||
|
||
系统支持检测任意表格的到期时间字段,只需要在配置表中添加相应的配置即可。支持的字段类型包括:
|
||
- LocalDate
|
||
- LocalDateTime
|
||
- Date
|
||
- Timestamp
|
||
|
||
系统会自动识别并处理这些日期类型。
|
||
|
||
## 注意事项
|
||
|
||
1. 确保配置的字段名在目标表中存在
|
||
2. 到期时间字段不能为空
|
||
3. 建议为检测结果表添加适当的索引以提高查询性能
|
||
4. 可以根据业务需要调整提前提醒天数 |