261 lines
8.2 KiB
JavaScript
261 lines
8.2 KiB
JavaScript
|
|
/**
|
|||
|
|
* 贷款申请测试数据脚本
|
|||
|
|
* @file seed-loan-applications.js
|
|||
|
|
* @description 为银行系统添加贷款申请测试数据
|
|||
|
|
*/
|
|||
|
|
const { sequelize, LoanApplication, AuditRecord, User } = require('../models');
|
|||
|
|
|
|||
|
|
async function seedLoanApplications() {
|
|||
|
|
try {
|
|||
|
|
console.log('开始添加贷款申请测试数据...');
|
|||
|
|
|
|||
|
|
// 获取admin用户(作为申请人和审核人)
|
|||
|
|
const adminUser = await User.findOne({ where: { username: 'admin' } });
|
|||
|
|
if (!adminUser) {
|
|||
|
|
console.log('❌ 未找到admin用户,请先创建用户');
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 清空现有数据
|
|||
|
|
await AuditRecord.destroy({ where: {} });
|
|||
|
|
await LoanApplication.destroy({ where: {} });
|
|||
|
|
console.log('✅ 清空现有贷款申请数据');
|
|||
|
|
|
|||
|
|
// 创建贷款申请测试数据(参考前端页面的模拟数据)
|
|||
|
|
const applications = [
|
|||
|
|
{
|
|||
|
|
applicationNumber: '20240325123703784',
|
|||
|
|
productName: '惠农贷',
|
|||
|
|
farmerName: '刘超',
|
|||
|
|
borrowerName: '刘超',
|
|||
|
|
borrowerIdNumber: '511***********3017',
|
|||
|
|
assetType: '牛',
|
|||
|
|
applicationQuantity: '10头',
|
|||
|
|
amount: 100000.00,
|
|||
|
|
status: 'pending_review',
|
|||
|
|
type: 'personal',
|
|||
|
|
term: 12,
|
|||
|
|
interestRate: 3.90,
|
|||
|
|
phone: '13800138000',
|
|||
|
|
purpose: '养殖贷款',
|
|||
|
|
remark: '申请资金用于购买牛只扩大养殖规模',
|
|||
|
|
applicationTime: new Date('2024-03-25 12:37:03'),
|
|||
|
|
applicantId: adminUser.id
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
applicationNumber: '20240229110801968',
|
|||
|
|
productName: '中国工商银行扎旗支行"畜禽活体抵押"',
|
|||
|
|
farmerName: '刘超',
|
|||
|
|
borrowerName: '刘超',
|
|||
|
|
borrowerIdNumber: '511***********3017',
|
|||
|
|
assetType: '牛',
|
|||
|
|
applicationQuantity: '10头',
|
|||
|
|
amount: 100000.00,
|
|||
|
|
status: 'verification_pending',
|
|||
|
|
type: 'mortgage',
|
|||
|
|
term: 24,
|
|||
|
|
interestRate: 4.20,
|
|||
|
|
phone: '13900139000',
|
|||
|
|
purpose: '养殖贷款',
|
|||
|
|
remark: '以畜禽活体作为抵押物申请贷款',
|
|||
|
|
applicationTime: new Date('2024-02-29 11:08:01'),
|
|||
|
|
applicantId: adminUser.id,
|
|||
|
|
approvedBy: adminUser.id,
|
|||
|
|
approvedTime: new Date('2024-03-01 10:15:00')
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
applicationNumber: '20240229105806431',
|
|||
|
|
productName: '惠农贷',
|
|||
|
|
farmerName: '刘超',
|
|||
|
|
borrowerName: '刘超',
|
|||
|
|
borrowerIdNumber: '511***********3017',
|
|||
|
|
assetType: '牛',
|
|||
|
|
applicationQuantity: '10头',
|
|||
|
|
amount: 100000.00,
|
|||
|
|
status: 'pending_binding',
|
|||
|
|
type: 'personal',
|
|||
|
|
term: 18,
|
|||
|
|
interestRate: 3.75,
|
|||
|
|
phone: '13700137000',
|
|||
|
|
purpose: '养殖贷款',
|
|||
|
|
remark: '待绑定相关资产信息',
|
|||
|
|
applicationTime: new Date('2024-02-29 10:58:06'),
|
|||
|
|
applicantId: adminUser.id
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
applicationNumber: '20240315085642123',
|
|||
|
|
productName: '农商银行养殖贷',
|
|||
|
|
farmerName: '张伟',
|
|||
|
|
borrowerName: '张伟',
|
|||
|
|
borrowerIdNumber: '621***********2156',
|
|||
|
|
assetType: '猪',
|
|||
|
|
applicationQuantity: '50头',
|
|||
|
|
amount: 250000.00,
|
|||
|
|
status: 'approved',
|
|||
|
|
type: 'business',
|
|||
|
|
term: 36,
|
|||
|
|
interestRate: 4.50,
|
|||
|
|
phone: '13600136000',
|
|||
|
|
purpose: '扩大养猪规模',
|
|||
|
|
remark: '已审核通过,准备放款',
|
|||
|
|
applicationTime: new Date('2024-03-15 08:56:42'),
|
|||
|
|
applicantId: adminUser.id,
|
|||
|
|
approvedBy: adminUser.id,
|
|||
|
|
approvedTime: new Date('2024-03-16 14:20:00')
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
applicationNumber: '20240310142355789',
|
|||
|
|
productName: '建设银行农户小额贷款',
|
|||
|
|
farmerName: '李明',
|
|||
|
|
borrowerName: '李明',
|
|||
|
|
borrowerIdNumber: '371***********4578',
|
|||
|
|
assetType: '羊',
|
|||
|
|
applicationQuantity: '30只',
|
|||
|
|
amount: 80000.00,
|
|||
|
|
status: 'rejected',
|
|||
|
|
type: 'personal',
|
|||
|
|
term: 12,
|
|||
|
|
interestRate: 4.10,
|
|||
|
|
phone: '13500135000',
|
|||
|
|
purpose: '养羊创业',
|
|||
|
|
remark: '资质不符合要求,已拒绝',
|
|||
|
|
applicationTime: new Date('2024-03-10 14:23:55'),
|
|||
|
|
applicantId: adminUser.id,
|
|||
|
|
rejectedBy: adminUser.id,
|
|||
|
|
rejectedTime: new Date('2024-03-11 09:30:00'),
|
|||
|
|
rejectionReason: '申请人征信记录不良,不符合放款条件'
|
|||
|
|
}
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
// 批量创建申请
|
|||
|
|
const createdApplications = await LoanApplication.bulkCreate(applications);
|
|||
|
|
console.log(`✅ 成功创建${createdApplications.length}个贷款申请`);
|
|||
|
|
|
|||
|
|
// 为每个申请创建审核记录
|
|||
|
|
const auditRecords = [];
|
|||
|
|
|
|||
|
|
// 第一个申请:只有提交记录
|
|||
|
|
auditRecords.push({
|
|||
|
|
applicationId: createdApplications[0].id,
|
|||
|
|
action: 'submit',
|
|||
|
|
auditor: '刘超',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '提交申请',
|
|||
|
|
auditTime: new Date('2024-03-25 12:37:03'),
|
|||
|
|
newStatus: 'pending_review'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 第二个申请:提交 + 审核通过
|
|||
|
|
auditRecords.push(
|
|||
|
|
{
|
|||
|
|
applicationId: createdApplications[1].id,
|
|||
|
|
action: 'submit',
|
|||
|
|
auditor: '刘超',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '提交申请',
|
|||
|
|
auditTime: new Date('2024-02-29 11:08:01'),
|
|||
|
|
newStatus: 'pending_review'
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
applicationId: createdApplications[1].id,
|
|||
|
|
action: 'approve',
|
|||
|
|
auditor: '王经理',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '资料齐全,符合条件,同意放款',
|
|||
|
|
auditTime: new Date('2024-03-01 10:15:00'),
|
|||
|
|
previousStatus: 'pending_review',
|
|||
|
|
newStatus: 'verification_pending'
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// 第三个申请:只有提交记录
|
|||
|
|
auditRecords.push({
|
|||
|
|
applicationId: createdApplications[2].id,
|
|||
|
|
action: 'submit',
|
|||
|
|
auditor: '刘超',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '提交申请',
|
|||
|
|
auditTime: new Date('2024-02-29 10:58:06'),
|
|||
|
|
newStatus: 'pending_review'
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
// 第四个申请:提交 + 审核通过
|
|||
|
|
auditRecords.push(
|
|||
|
|
{
|
|||
|
|
applicationId: createdApplications[3].id,
|
|||
|
|
action: 'submit',
|
|||
|
|
auditor: '张伟',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '提交申请',
|
|||
|
|
auditTime: new Date('2024-03-15 08:56:42'),
|
|||
|
|
newStatus: 'pending_review'
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
applicationId: createdApplications[3].id,
|
|||
|
|
action: 'approve',
|
|||
|
|
auditor: '李总监',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '经营状况良好,养殖经验丰富,批准贷款',
|
|||
|
|
auditTime: new Date('2024-03-16 14:20:00'),
|
|||
|
|
previousStatus: 'pending_review',
|
|||
|
|
newStatus: 'approved'
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// 第五个申请:提交 + 审核拒绝
|
|||
|
|
auditRecords.push(
|
|||
|
|
{
|
|||
|
|
applicationId: createdApplications[4].id,
|
|||
|
|
action: 'submit',
|
|||
|
|
auditor: '李明',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '提交申请',
|
|||
|
|
auditTime: new Date('2024-03-10 14:23:55'),
|
|||
|
|
newStatus: 'pending_review'
|
|||
|
|
},
|
|||
|
|
{
|
|||
|
|
applicationId: createdApplications[4].id,
|
|||
|
|
action: 'reject',
|
|||
|
|
auditor: '风控部门',
|
|||
|
|
auditorId: adminUser.id,
|
|||
|
|
comment: '申请人征信记录不良,不符合放款条件',
|
|||
|
|
auditTime: new Date('2024-03-11 09:30:00'),
|
|||
|
|
previousStatus: 'pending_review',
|
|||
|
|
newStatus: 'rejected'
|
|||
|
|
}
|
|||
|
|
);
|
|||
|
|
|
|||
|
|
// 批量创建审核记录
|
|||
|
|
await AuditRecord.bulkCreate(auditRecords);
|
|||
|
|
console.log(`✅ 成功创建${auditRecords.length}条审核记录`);
|
|||
|
|
|
|||
|
|
console.log('\n📊 贷款申请数据统计:');
|
|||
|
|
console.log('- 待初审:1个申请');
|
|||
|
|
console.log('- 核验待放款:1个申请');
|
|||
|
|
console.log('- 待绑定:1个申请');
|
|||
|
|
console.log('- 已通过:1个申请');
|
|||
|
|
console.log('- 已拒绝:1个申请');
|
|||
|
|
console.log('- 总申请金额:630,000.00元');
|
|||
|
|
|
|||
|
|
console.log('\n🎉 贷款申请测试数据添加完成!');
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error('❌ 添加贷款申请测试数据失败:', error);
|
|||
|
|
throw error;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 如果直接运行此文件
|
|||
|
|
if (require.main === module) {
|
|||
|
|
seedLoanApplications()
|
|||
|
|
.then(() => {
|
|||
|
|
console.log('✅ 脚本执行完成');
|
|||
|
|
process.exit(0);
|
|||
|
|
})
|
|||
|
|
.catch((error) => {
|
|||
|
|
console.error('❌ 脚本执行失败:', error);
|
|||
|
|
process.exit(1);
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
module.exports = seedLoanApplications;
|