Files
nxxmdata/bank-backend/scripts/seed-loan-contracts.js
2025-09-24 17:49:32 +08:00

290 lines
9.7 KiB
JavaScript
Raw Permalink 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.

/**
* 贷款合同测试数据脚本
* @file seed-loan-contracts.js
* @description 为银行系统添加贷款合同测试数据
*/
const { sequelize, LoanContract, User } = require('../models');
async function seedLoanContracts() {
try {
console.log('开始添加贷款合同测试数据...');
// 获取admin用户作为创建人
const adminUser = await User.findOne({ where: { username: 'admin' } });
if (!adminUser) {
console.log('❌ 未找到admin用户请先创建用户');
return;
}
// 清空现有数据
await LoanContract.destroy({ where: {} });
console.log('✅ 清空现有贷款合同数据');
// 创建贷款合同测试数据(参考图片中的数据结构)
const contracts = [
{
contractNumber: 'HT20231131123456789',
applicationNumber: '20231131123456789',
productName: '中国农业银行扎旗支行"畜禽活体抵押"',
farmerName: '敖日布仁琴',
borrowerName: '敖日布仁琴',
borrowerIdNumber: '150***********4856',
assetType: '牛',
applicationQuantity: '36头',
amount: 500000.00,
paidAmount: 0,
status: 'active',
type: 'livestock_collateral',
term: 24,
interestRate: 4.20,
phone: '13800138000',
purpose: '养殖贷款',
remark: '畜禽活体抵押贷款',
contractTime: new Date('2023-11-31 12:34:56'),
disbursementTime: new Date('2023-12-01 10:00:00'),
maturityTime: new Date('2025-12-01 10:00:00'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231201123456790',
applicationNumber: '20231201123456790',
productName: '中国工商银行扎旗支行"畜禽活体抵押"',
farmerName: '张伟',
borrowerName: '张伟',
borrowerIdNumber: '150***********4857',
assetType: '牛',
applicationQuantity: '25头',
amount: 350000.00,
paidAmount: 50000.00,
status: 'active',
type: 'livestock_collateral',
term: 18,
interestRate: 4.50,
phone: '13900139000',
purpose: '扩大养殖规模',
remark: '工商银行畜禽活体抵押',
contractTime: new Date('2023-12-01 14:20:30'),
disbursementTime: new Date('2023-12-02 09:30:00'),
maturityTime: new Date('2025-06-02 09:30:00'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231202123456791',
applicationNumber: '20231202123456791',
productName: '惠农贷',
farmerName: '李明',
borrowerName: '李明',
borrowerIdNumber: '150***********4858',
assetType: '牛',
applicationQuantity: '20头',
amount: 280000.00,
paidAmount: 0,
status: 'pending',
type: 'farmer_loan',
term: 12,
interestRate: 3.90,
phone: '13700137000',
purpose: '惠农贷款',
remark: '惠农贷产品',
contractTime: new Date('2023-12-02 16:45:12'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231203123456792',
applicationNumber: '20231203123456792',
productName: '中国农业银行扎旗支行"畜禽活体抵押"',
farmerName: '王强',
borrowerName: '王强',
borrowerIdNumber: '150***********4859',
assetType: '牛',
applicationQuantity: '30头',
amount: 420000.00,
paidAmount: 420000.00,
status: 'completed',
type: 'livestock_collateral',
term: 24,
interestRate: 4.20,
phone: '13600136000',
purpose: '养殖贷款',
remark: '已完成还款',
contractTime: new Date('2023-12-03 11:20:45'),
disbursementTime: new Date('2023-12-04 08:00:00'),
maturityTime: new Date('2025-12-04 08:00:00'),
completedTime: new Date('2024-11-15 14:30:00'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231204123456793',
applicationNumber: '20231204123456793',
productName: '中国工商银行扎旗支行"畜禽活体抵押"',
farmerName: '赵敏',
borrowerName: '赵敏',
borrowerIdNumber: '150***********4860',
assetType: '牛',
applicationQuantity: '15头',
amount: 200000.00,
paidAmount: 0,
status: 'defaulted',
type: 'livestock_collateral',
term: 18,
interestRate: 4.50,
phone: '13500135000',
purpose: '养殖贷款',
remark: '违约状态',
contractTime: new Date('2023-12-04 13:15:30'),
disbursementTime: new Date('2023-12-05 10:00:00'),
maturityTime: new Date('2025-06-05 10:00:00'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231205123456794',
applicationNumber: '20231205123456794',
productName: '惠农贷',
farmerName: '刘超',
borrowerName: '刘超',
borrowerIdNumber: '150***********4861',
assetType: '牛',
applicationQuantity: '22头',
amount: 320000.00,
paidAmount: 80000.00,
status: 'active',
type: 'farmer_loan',
term: 24,
interestRate: 3.90,
phone: '13400134000',
purpose: '惠农贷款',
remark: '惠农贷产品',
contractTime: new Date('2023-12-05 15:30:20'),
disbursementTime: new Date('2023-12-06 09:00:00'),
maturityTime: new Date('2025-12-06 09:00:00'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231206123456795',
applicationNumber: '20231206123456795',
productName: '中国农业银行扎旗支行"畜禽活体抵押"',
farmerName: '陈华',
borrowerName: '陈华',
borrowerIdNumber: '150***********4862',
assetType: '牛',
applicationQuantity: '28头',
amount: 380000.00,
paidAmount: 0,
status: 'active',
type: 'livestock_collateral',
term: 30,
interestRate: 4.20,
phone: '13300133000',
purpose: '养殖贷款',
remark: '长期贷款',
contractTime: new Date('2023-12-06 10:45:15'),
disbursementTime: new Date('2023-12-07 11:00:00'),
maturityTime: new Date('2026-06-07 11:00:00'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231207123456796',
applicationNumber: '20231207123456796',
productName: '中国工商银行扎旗支行"畜禽活体抵押"',
farmerName: '孙丽',
borrowerName: '孙丽',
borrowerIdNumber: '150***********4863',
assetType: '牛',
applicationQuantity: '18头',
amount: 250000.00,
paidAmount: 250000.00,
status: 'completed',
type: 'livestock_collateral',
term: 12,
interestRate: 4.50,
phone: '13200132000',
purpose: '养殖贷款',
remark: '短期贷款已完成',
contractTime: new Date('2023-12-07 14:20:10'),
disbursementTime: new Date('2023-12-08 08:30:00'),
maturityTime: new Date('2024-12-08 08:30:00'),
completedTime: new Date('2024-10-15 16:45:00'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231208123456797',
applicationNumber: '20231208123456797',
productName: '惠农贷',
farmerName: '周杰',
borrowerName: '周杰',
borrowerIdNumber: '150***********4864',
assetType: '牛',
applicationQuantity: '24头',
amount: 360000.00,
paidAmount: 0,
status: 'cancelled',
type: 'farmer_loan',
term: 18,
interestRate: 3.90,
phone: '13100131000',
purpose: '惠农贷款',
remark: '已取消',
contractTime: new Date('2023-12-08 16:10:25'),
createdBy: adminUser.id
},
{
contractNumber: 'HT20231209123456798',
applicationNumber: '20231209123456798',
productName: '中国农业银行扎旗支行"畜禽活体抵押"',
farmerName: '吴刚',
borrowerName: '吴刚',
borrowerIdNumber: '150***********4865',
assetType: '牛',
applicationQuantity: '32头',
amount: 450000.00,
paidAmount: 150000.00,
status: 'active',
type: 'livestock_collateral',
term: 36,
interestRate: 4.20,
phone: '13000130000',
purpose: '养殖贷款',
remark: '长期贷款',
contractTime: new Date('2023-12-09 12:30:40'),
disbursementTime: new Date('2023-12-10 10:15:00'),
maturityTime: new Date('2026-12-10 10:15:00'),
createdBy: adminUser.id
}
];
// 批量创建合同
const createdContracts = await LoanContract.bulkCreate(contracts);
console.log(`✅ 成功创建${createdContracts.length}个贷款合同`);
console.log('\n📊 贷款合同数据统计:');
console.log('- 已放款6个合同');
console.log('- 待放款1个合同');
console.log('- 已完成2个合同');
console.log('- 违约1个合同');
console.log('- 已取消1个合同');
console.log('- 总合同金额3,410,000.00元');
console.log('- 已还款金额520,000.00元');
console.log('- 剩余还款金额2,890,000.00元');
console.log('\n🎉 贷款合同测试数据添加完成!');
} catch (error) {
console.error('❌ 添加贷款合同测试数据失败:', error);
throw error;
}
}
// 如果直接运行此文件
if (require.main === module) {
seedLoanContracts()
.then(() => {
console.log('✅ 脚本执行完成');
process.exit(0);
})
.catch((error) => {
console.error('❌ 脚本执行失败:', error);
process.exit(1);
});
}
module.exports = seedLoanContracts;