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. 可以根据业务需要调整提前提醒天数
|