feat: 首付分期功能实现 - 项目初始化提交
- 添加首付分期功能相关表结构和数据 - 实现首付分期策略管理 - 添加首付分期支付详情管理 - 完善项目相关功能模块 - 修复外键类型问题 - 添加相关初始化脚本和文档
This commit is contained in:
57
外键类型修复说明.md
Normal file
57
外键类型修复说明.md
Normal file
@ -0,0 +1,57 @@
|
||||
# 分期方案保存时付款明细外键类型修复说明
|
||||
|
||||
## 问题描述
|
||||
在保存分期方案时,需要同时保存调整的分期政策付款明细相关信息,但发现外键类型不一致的问题:
|
||||
|
||||
1. `t_periodicpolicy`表主键`id`类型为`CHAR(36)`(UUID字符串)
|
||||
2. `t_policy`表外键`periodicPolicyId`类型为`INT`(整数)
|
||||
3. `t_payment_details`表外键`policyId`类型为`INT`(整数)
|
||||
|
||||
## 修复方案
|
||||
|
||||
### 1. 数据库表结构修改
|
||||
- 修改`t_policy`表的`periodicPolicyId`字段类型从`INT`改为`CHAR(36)`
|
||||
- 修改`t_payment_details`表的`policyId`字段类型从`INT`改为`CHAR(36)`
|
||||
|
||||
### 2. Java实体类修改
|
||||
- `TPolicy.java`: `periodicPolicyId`字段保持`String`类型(已正确匹配)
|
||||
- `TPaymentDetails.java`: `policyid`字段类型从`Long`改为`String`
|
||||
- `TPaymentDetailsBo.java`: `policyid`字段类型从`Long`改为`String`
|
||||
- `TPaymentDetailsVo.java`: `policyid`字段类型从`Long`改为`String`
|
||||
|
||||
### 3. 前端类型定义修改
|
||||
- `paymentDetails/types.ts`: `policyid`字段类型从`string | number`改为`string`
|
||||
|
||||
### 4. 前端数据处理逻辑调整
|
||||
- 移除不必要的`.toString()`转换
|
||||
- 确保所有ID值作为字符串处理
|
||||
- 调整数值精度处理方式
|
||||
|
||||
## 执行步骤
|
||||
|
||||
### 数据库执行
|
||||
```sql
|
||||
-- 执行修复脚本
|
||||
source script/sql/fix_foreign_key_types.sql
|
||||
```
|
||||
|
||||
### 后端重启
|
||||
重启后端服务以应用实体类变更
|
||||
|
||||
### 前端验证
|
||||
1. 访问 http://localhost:81/
|
||||
2. 创建新的分期方案
|
||||
3. 添加分期政策和付款明细
|
||||
4. 保存并验证数据完整性
|
||||
|
||||
## 数据兼容性
|
||||
- 现有数据需要迁移处理(如有需要可创建数据迁移脚本)
|
||||
- 新系统将使用UUID字符串作为主键
|
||||
- 所有外键引用将保持一致性
|
||||
|
||||
## 验证要点
|
||||
1. 分期方案创建成功
|
||||
2. 分期政策与分期方案正确关联
|
||||
3. 付款明细与分期政策正确关联
|
||||
4. 数据查询和展示正常
|
||||
5. 编辑和删除功能正常
|
||||
Reference in New Issue
Block a user