Files
LCXiaoguan/外键类型修复说明.md
Admin 9f5a484689 feat: 首付分期功能实现 - 项目初始化提交
- 添加首付分期功能相关表结构和数据
- 实现首付分期策略管理
- 添加首付分期支付详情管理
- 完善项目相关功能模块
- 修复外键类型问题
- 添加相关初始化脚本和文档
2025-09-11 17:03:58 +08:00

57 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 分期方案保存时付款明细外键类型修复说明
## 问题描述
在保存分期方案时,需要同时保存调整的分期政策付款明细相关信息,但发现外键类型不一致的问题:
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. 编辑和删除功能正常