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

1.9 KiB
Raw Blame History

分期方案保存时付款明细外键类型修复说明

问题描述

在保存分期方案时,需要同时保存调整的分期政策付款明细相关信息,但发现外键类型不一致的问题:

  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值作为字符串处理
  • 调整数值精度处理方式

执行步骤

数据库执行

-- 执行修复脚本
source script/sql/fix_foreign_key_types.sql

后端重启

重启后端服务以应用实体类变更

前端验证

  1. 访问 http://localhost:81/
  2. 创建新的分期方案
  3. 添加分期政策和付款明细
  4. 保存并验证数据完整性

数据兼容性

  • 现有数据需要迁移处理(如有需要可创建数据迁移脚本)
  • 新系统将使用UUID字符串作为主键
  • 所有外键引用将保持一致性

验证要点

  1. 分期方案创建成功
  2. 分期政策与分期方案正确关联
  3. 付款明细与分期政策正确关联
  4. 数据查询和展示正常
  5. 编辑和删除功能正常