262 lines
8.3 KiB
JavaScript
262 lines
8.3 KiB
JavaScript
/**
|
|
* 监管任务测试数据种子文件
|
|
* @file seed-supervision-tasks.js
|
|
* @description 为监管任务表添加测试数据
|
|
*/
|
|
const { sequelize, SupervisionTask, User } = require('../models');
|
|
|
|
async function seedSupervisionTasks() {
|
|
try {
|
|
console.log('🌱 开始添加监管任务测试数据...');
|
|
|
|
// 检查是否已有数据
|
|
const existingCount = await SupervisionTask.count();
|
|
if (existingCount > 0) {
|
|
console.log(`⚠️ 监管任务表已有 ${existingCount} 条数据,跳过种子数据添加`);
|
|
return;
|
|
}
|
|
|
|
// 获取管理员用户ID
|
|
const adminUser = await User.findOne({ where: { username: 'admin' } });
|
|
if (!adminUser) {
|
|
console.log('❌ 未找到管理员用户,请先运行用户种子数据');
|
|
return;
|
|
}
|
|
|
|
const adminId = adminUser.id;
|
|
|
|
// 监管任务测试数据
|
|
const supervisionTasks = [
|
|
{
|
|
applicationNumber: 'APP001',
|
|
contractNumber: 'CONTRACT001',
|
|
productName: '农业贷款产品A',
|
|
customerName: '张三',
|
|
idType: 'id_card',
|
|
idNumber: '110101199001011234',
|
|
assetType: 'cattle',
|
|
assetQuantity: 10,
|
|
supervisionStatus: 'supervising',
|
|
importTime: new Date('2024-01-15 10:30:00'),
|
|
startTime: '2024-01-15',
|
|
endTime: '2024-12-15',
|
|
loanAmount: 500000.00,
|
|
interestRate: 0.0650,
|
|
loanTerm: 12,
|
|
supervisorName: '李监管员',
|
|
supervisorPhone: '13800138001',
|
|
farmAddress: '北京市朝阳区某某养殖场',
|
|
remarks: '重点监管项目,需要定期检查',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
},
|
|
{
|
|
applicationNumber: 'APP002',
|
|
contractNumber: 'CONTRACT002',
|
|
productName: '农业贷款产品B',
|
|
customerName: '李四',
|
|
idType: 'id_card',
|
|
idNumber: '110101199002021234',
|
|
assetType: 'sheep',
|
|
assetQuantity: 20,
|
|
supervisionStatus: 'pending',
|
|
importTime: new Date('2024-01-16 14:20:00'),
|
|
startTime: '2024-01-16',
|
|
endTime: '2024-12-16',
|
|
loanAmount: 300000.00,
|
|
interestRate: 0.0600,
|
|
loanTerm: 12,
|
|
supervisorName: '王监管员',
|
|
supervisorPhone: '13800138002',
|
|
farmAddress: '北京市海淀区某某农场',
|
|
remarks: '新申请项目,待开始监管',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
},
|
|
{
|
|
applicationNumber: 'APP003',
|
|
contractNumber: 'CONTRACT003',
|
|
productName: '农业贷款产品C',
|
|
customerName: '王五',
|
|
idType: 'id_card',
|
|
idNumber: '110101199003031234',
|
|
assetType: 'pig',
|
|
assetQuantity: 15,
|
|
supervisionStatus: 'completed',
|
|
importTime: new Date('2024-01-10 09:15:00'),
|
|
startTime: '2024-01-10',
|
|
endTime: '2024-01-20',
|
|
loanAmount: 200000.00,
|
|
interestRate: 0.0550,
|
|
loanTerm: 6,
|
|
supervisorName: '赵监管员',
|
|
supervisorPhone: '13800138003',
|
|
farmAddress: '北京市丰台区某某猪场',
|
|
remarks: '监管任务已完成,客户还款正常',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
},
|
|
{
|
|
applicationNumber: 'APP004',
|
|
contractNumber: 'CONTRACT004',
|
|
productName: '农业贷款产品D',
|
|
customerName: '赵六',
|
|
idType: 'id_card',
|
|
idNumber: '110101199004041234',
|
|
assetType: 'poultry',
|
|
assetQuantity: 50,
|
|
supervisionStatus: 'supervising',
|
|
importTime: new Date('2024-01-20 11:45:00'),
|
|
startTime: '2024-01-20',
|
|
endTime: '2024-06-20',
|
|
loanAmount: 150000.00,
|
|
interestRate: 0.0700,
|
|
loanTerm: 6,
|
|
supervisorName: '孙监管员',
|
|
supervisorPhone: '13800138004',
|
|
farmAddress: '北京市通州区某某鸡场',
|
|
remarks: '家禽养殖项目,需要特别关注防疫情况',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
},
|
|
{
|
|
applicationNumber: 'APP005',
|
|
contractNumber: 'CONTRACT005',
|
|
productName: '农业贷款产品E',
|
|
customerName: '孙七',
|
|
idType: 'id_card',
|
|
idNumber: '110101199005051234',
|
|
assetType: 'cattle',
|
|
assetQuantity: 25,
|
|
supervisionStatus: 'suspended',
|
|
importTime: new Date('2024-01-25 16:30:00'),
|
|
startTime: '2024-01-25',
|
|
endTime: '2024-12-25',
|
|
loanAmount: 800000.00,
|
|
interestRate: 0.0625,
|
|
loanTerm: 18,
|
|
supervisorName: '周监管员',
|
|
supervisorPhone: '13800138005',
|
|
farmAddress: '北京市昌平区某某牧场',
|
|
remarks: '因客户原因暂停监管,等待进一步通知',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
},
|
|
{
|
|
applicationNumber: 'APP006',
|
|
contractNumber: 'CONTRACT006',
|
|
productName: '农业贷款产品F',
|
|
customerName: '周八',
|
|
idType: 'passport',
|
|
idNumber: 'P123456789',
|
|
assetType: 'other',
|
|
assetQuantity: 30,
|
|
supervisionStatus: 'supervising',
|
|
importTime: new Date('2024-02-01 08:20:00'),
|
|
startTime: '2024-02-01',
|
|
endTime: '2024-08-01',
|
|
loanAmount: 400000.00,
|
|
interestRate: 0.0680,
|
|
loanTerm: 6,
|
|
supervisorName: '吴监管员',
|
|
supervisorPhone: '13800138006',
|
|
farmAddress: '北京市顺义区某某特种养殖场',
|
|
remarks: '特种养殖项目,需要专业监管',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
},
|
|
{
|
|
applicationNumber: 'APP007',
|
|
contractNumber: 'CONTRACT007',
|
|
productName: '农业贷款产品G',
|
|
customerName: '吴九',
|
|
idType: 'id_card',
|
|
idNumber: '110101199007071234',
|
|
assetType: 'sheep',
|
|
assetQuantity: 40,
|
|
supervisionStatus: 'pending',
|
|
importTime: new Date('2024-02-05 13:10:00'),
|
|
startTime: '2024-02-05',
|
|
endTime: '2024-12-05',
|
|
loanAmount: 600000.00,
|
|
interestRate: 0.0590,
|
|
loanTerm: 12,
|
|
supervisorName: '郑监管员',
|
|
supervisorPhone: '13800138007',
|
|
farmAddress: '北京市房山区某某羊场',
|
|
remarks: '大规模羊群养殖,需要加强监管',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
},
|
|
{
|
|
applicationNumber: 'APP008',
|
|
contractNumber: 'CONTRACT008',
|
|
productName: '农业贷款产品H',
|
|
customerName: '郑十',
|
|
idType: 'id_card',
|
|
idNumber: '110101199008081234',
|
|
assetType: 'pig',
|
|
assetQuantity: 35,
|
|
supervisionStatus: 'completed',
|
|
importTime: new Date('2024-01-05 15:45:00'),
|
|
startTime: '2024-01-05',
|
|
endTime: '2024-03-05',
|
|
loanAmount: 350000.00,
|
|
interestRate: 0.0575,
|
|
loanTerm: 3,
|
|
supervisorName: '冯监管员',
|
|
supervisorPhone: '13800138008',
|
|
farmAddress: '北京市大兴区某某养猪场',
|
|
remarks: '短期养殖项目,已顺利完成监管',
|
|
createdBy: adminId,
|
|
updatedBy: adminId
|
|
}
|
|
];
|
|
|
|
// 批量创建监管任务
|
|
await SupervisionTask.bulkCreate(supervisionTasks);
|
|
|
|
console.log(`✅ 成功添加 ${supervisionTasks.length} 条监管任务测试数据`);
|
|
|
|
// 显示统计信息
|
|
const stats = await SupervisionTask.findAll({
|
|
attributes: [
|
|
'supervisionStatus',
|
|
[sequelize.fn('COUNT', sequelize.col('id')), 'count']
|
|
],
|
|
group: ['supervisionStatus'],
|
|
raw: true
|
|
});
|
|
|
|
console.log('📊 监管任务状态统计:');
|
|
stats.forEach(stat => {
|
|
const statusNames = {
|
|
'pending': '待监管',
|
|
'supervising': '监管中',
|
|
'completed': '已完成',
|
|
'suspended': '已暂停'
|
|
};
|
|
console.log(` ${statusNames[stat.supervisionStatus] || stat.supervisionStatus}: ${stat.count} 条`);
|
|
});
|
|
|
|
} catch (error) {
|
|
console.error('❌ 添加监管任务测试数据失败:', error);
|
|
throw error;
|
|
}
|
|
}
|
|
|
|
// 如果直接运行此文件
|
|
if (require.main === module) {
|
|
seedSupervisionTasks()
|
|
.then(() => {
|
|
console.log('🎉 监管任务种子数据添加完成');
|
|
process.exit(0);
|
|
})
|
|
.catch((error) => {
|
|
console.error('💥 监管任务种子数据添加失败:', error);
|
|
process.exit(1);
|
|
});
|
|
}
|
|
|
|
module.exports = seedSupervisionTasks;
|