feat: 首付分期功能实现 - 项目初始化提交

- 添加首付分期功能相关表结构和数据
- 实现首付分期策略管理
- 添加首付分期支付详情管理
- 完善项目相关功能模块
- 修复外键类型问题
- 添加相关初始化脚本和文档
This commit is contained in:
Admin
2025-09-11 17:03:58 +08:00
commit 9f5a484689
1221 changed files with 114835 additions and 0 deletions

View 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. 编辑和删除功能正常