Files
nxxmdata/bank-backend/scripts/seed-projects.js

201 lines
5.3 KiB
JavaScript

const { Project, User } = require('../models');
const { sequelize } = require('../config/database');
// 项目测试数据
const projectsData = [
{
name: '张洪彬',
status: 'completed',
farmName: '大数据中心',
supervisionObject: '牛',
supervisionQuantity: 10,
supervisionPeriod: '23天',
supervisionAmount: 10000.00,
startTime: '2024-02-21',
endTime: '2024-03-15',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: 'mapleaf',
description: '大数据中心养殖项目'
},
{
name: '田小平',
status: 'completed',
farmName: '139****5685_养殖场',
supervisionObject: '牛',
supervisionQuantity: 0,
supervisionPeriod: '0天',
supervisionAmount: 0.00,
startTime: '2022-12-12',
endTime: '2023-12-12',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: '',
description: '田小平养殖场项目'
},
{
name: '杜宝民',
status: 'completed',
farmName: '杜宝民养殖场',
supervisionObject: '牛',
supervisionQuantity: 1,
supervisionPeriod: '20天',
supervisionAmount: 1000000.00,
startTime: '2023-05-08',
endTime: '2028-05-08',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: 'mapleaf',
description: '杜宝民养殖场长期项目'
},
{
name: '满良',
status: 'completed',
farmName: '满良养殖场',
supervisionObject: '牛',
supervisionQuantity: 30,
supervisionPeriod: '365天',
supervisionAmount: 420000.00,
startTime: '2023-01-01',
endTime: '2024-01-01',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: 'mapleaf',
description: '满良养殖场年度项目'
},
{
name: '敖日布仁琴',
status: 'supervision',
farmName: '敖日布仁琴养殖场',
supervisionObject: '牛',
supervisionQuantity: 38,
supervisionPeriod: '1827天',
supervisionAmount: 530000.00,
startTime: '2019-01-01',
endTime: '2024-01-01',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: 'mapleaf',
description: '敖日布仁琴养殖场长期监管项目'
},
{
name: '那顺乌日图',
status: 'supervision',
farmName: '那顺乌日图养殖场',
supervisionObject: '牛',
supervisionQuantity: 36,
supervisionPeriod: '1827天',
supervisionAmount: 500000.00,
startTime: '2019-01-01',
endTime: '2024-01-01',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: 'mapleaf',
description: '那顺乌日图养殖场长期监管项目'
},
{
name: '巴特尔',
status: 'supervision',
farmName: '巴特尔养殖场',
supervisionObject: '牛',
supervisionQuantity: 41,
supervisionPeriod: '1827天',
supervisionAmount: 570000.00,
startTime: '2019-01-01',
endTime: '2024-01-01',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: 'mapleaf',
description: '巴特尔养殖场长期监管项目'
},
{
name: '王五',
status: 'completed',
farmName: '王五养殖场',
supervisionObject: '牛',
supervisionQuantity: 50,
supervisionPeriod: '365天',
supervisionAmount: 700000.00,
startTime: '2023-01-01',
endTime: '2024-01-01',
earTag: 0,
collar: 0,
host: 0,
loanOfficer: 'mapleaf',
description: '王五养殖场年度项目'
}
];
async function seedProjects() {
try {
console.log('开始创建项目测试数据...');
// 测试数据库连接
await sequelize.authenticate();
console.log('✅ 数据库连接成功');
// 查找管理员用户作为创建人
const adminUser = await User.findOne({ where: { username: 'admin' } });
const createdBy = adminUser ? adminUser.id : null;
// 清空现有项目数据
await Project.destroy({ where: {} });
console.log('✅ 清空现有项目数据');
// 创建项目数据
for (const projectData of projectsData) {
await Project.create({
...projectData,
createdBy: createdBy,
updatedBy: createdBy
});
}
console.log(`✅ 成功创建 ${projectsData.length} 个项目`);
// 验证数据
const projectCount = await Project.count();
console.log(`📊 数据库中现有项目数量: ${projectCount}`);
// 显示统计信息
const supervisionCount = await Project.count({ where: { status: 'supervision' } });
const completedCount = await Project.count({ where: { status: 'completed' } });
const totalAmount = await Project.sum('supervisionAmount');
const totalQuantity = await Project.sum('supervisionQuantity');
console.log('\n📈 项目统计信息:');
console.log(` 监管中项目: ${supervisionCount}`);
console.log(` 已结项项目: ${completedCount}`);
console.log(` 总监管金额: ${totalAmount?.toFixed(2) || 0}`);
console.log(` 总监管数量: ${totalQuantity || 0}`);
console.log('\n🎉 项目数据创建完成!');
} catch (error) {
console.error('❌ 创建项目数据失败:', error);
throw error;
}
}
// 如果直接运行此脚本
if (require.main === module) {
seedProjects()
.then(() => {
console.log('✅ 脚本执行完成');
process.exit(0);
})
.catch((error) => {
console.error('❌ 脚本执行失败:', error);
process.exit(1);
});
}
module.exports = seedProjects;