添加银行后端接口,前端代码
This commit is contained in:
200
bank-backend/scripts/seed-projects.js
Normal file
200
bank-backend/scripts/seed-projects.js
Normal file
@@ -0,0 +1,200 @@
|
||||
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;
|
||||
261
bank-backend/scripts/seed-supervision-tasks.js
Normal file
261
bank-backend/scripts/seed-supervision-tasks.js
Normal file
@@ -0,0 +1,261 @@
|
||||
/**
|
||||
* 监管任务测试数据种子文件
|
||||
* @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;
|
||||
60
bank-backend/scripts/setup-projects-simple.js
Normal file
60
bank-backend/scripts/setup-projects-simple.js
Normal file
@@ -0,0 +1,60 @@
|
||||
const { sequelize } = require('../config/database');
|
||||
const { Project } = require('../models');
|
||||
const seedProjects = require('./seed-projects');
|
||||
|
||||
async function setupProjectsSimple() {
|
||||
try {
|
||||
console.log('🚀 开始设置项目清单功能...\n');
|
||||
|
||||
// 1. 测试数据库连接
|
||||
console.log('1️⃣ 测试数据库连接...');
|
||||
await sequelize.authenticate();
|
||||
console.log('✅ 数据库连接成功\n');
|
||||
|
||||
// 2. 同步项目模型(创建表)
|
||||
console.log('2️⃣ 创建项目表...');
|
||||
await Project.sync({ force: false }); // force: false 表示如果表已存在则不删除
|
||||
console.log('✅ 项目表创建成功\n');
|
||||
|
||||
// 3. 创建项目测试数据
|
||||
console.log('3️⃣ 创建项目测试数据...');
|
||||
await seedProjects();
|
||||
console.log('✅ 项目测试数据创建完成\n');
|
||||
|
||||
// 4. 验证数据
|
||||
console.log('4️⃣ 验证项目数据...');
|
||||
const projectCount = await Project.count();
|
||||
const supervisionCount = await Project.count({ where: { status: 'supervision' } });
|
||||
const completedCount = await Project.count({ where: { status: 'completed' } });
|
||||
|
||||
console.log(` 总项目数: ${projectCount}`);
|
||||
console.log(` 监管中项目: ${supervisionCount}`);
|
||||
console.log(` 已结项项目: ${completedCount}`);
|
||||
console.log('✅ 项目数据验证完成\n');
|
||||
|
||||
console.log('🎉 项目清单功能设置完成!');
|
||||
console.log('📝 接下来可以:');
|
||||
console.log(' 1. 启动后端服务器: npm start');
|
||||
console.log(' 2. 运行API测试: node test-projects-api.js');
|
||||
console.log(' 3. 在前端访问项目清单页面');
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ 设置项目清单功能失败:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
// 如果直接运行此脚本
|
||||
if (require.main === module) {
|
||||
setupProjectsSimple()
|
||||
.then(() => {
|
||||
console.log('✅ 脚本执行完成');
|
||||
process.exit(0);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('❌ 脚本执行失败:', error);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = setupProjectsSimple;
|
||||
79
bank-backend/scripts/setup-projects.js
Normal file
79
bank-backend/scripts/setup-projects.js
Normal file
@@ -0,0 +1,79 @@
|
||||
const { sequelize } = require('../config/database');
|
||||
const seedProjects = require('./seed-projects');
|
||||
|
||||
async function setupProjects() {
|
||||
try {
|
||||
console.log('🚀 开始设置项目清单功能...\n');
|
||||
|
||||
// 1. 测试数据库连接
|
||||
console.log('1️⃣ 测试数据库连接...');
|
||||
await sequelize.authenticate();
|
||||
console.log('✅ 数据库连接成功\n');
|
||||
|
||||
// 2. 运行项目表迁移
|
||||
console.log('2️⃣ 运行项目表迁移...');
|
||||
try {
|
||||
const { QueryInterface } = require('sequelize');
|
||||
const queryInterface = sequelize.getQueryInterface();
|
||||
|
||||
// 检查表是否已存在
|
||||
const tableExists = await queryInterface.showAllTables().then(tables =>
|
||||
tables.includes('projects')
|
||||
);
|
||||
|
||||
if (!tableExists) {
|
||||
// 运行迁移
|
||||
const migration = require('../migrations/20241220000002-create-projects');
|
||||
await migration.up(queryInterface, sequelize);
|
||||
console.log('✅ 项目表创建成功\n');
|
||||
} else {
|
||||
console.log('✅ 项目表已存在\n');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('❌ 项目表迁移失败:', error.message);
|
||||
throw error;
|
||||
}
|
||||
|
||||
// 3. 创建项目测试数据
|
||||
console.log('3️⃣ 创建项目测试数据...');
|
||||
await seedProjects();
|
||||
console.log('✅ 项目测试数据创建完成\n');
|
||||
|
||||
// 4. 验证数据
|
||||
console.log('4️⃣ 验证项目数据...');
|
||||
const { Project } = require('../models');
|
||||
const projectCount = await Project.count();
|
||||
const supervisionCount = await Project.count({ where: { status: 'supervision' } });
|
||||
const completedCount = await Project.count({ where: { status: 'completed' } });
|
||||
|
||||
console.log(` 总项目数: ${projectCount}`);
|
||||
console.log(` 监管中项目: ${supervisionCount}`);
|
||||
console.log(` 已结项项目: ${completedCount}`);
|
||||
console.log('✅ 项目数据验证完成\n');
|
||||
|
||||
console.log('🎉 项目清单功能设置完成!');
|
||||
console.log('📝 接下来可以:');
|
||||
console.log(' 1. 启动后端服务器: npm start');
|
||||
console.log(' 2. 运行API测试: node test-projects-api.js');
|
||||
console.log(' 3. 在前端访问项目清单页面');
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ 设置项目清单功能失败:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
// 如果直接运行此脚本
|
||||
if (require.main === module) {
|
||||
setupProjects()
|
||||
.then(() => {
|
||||
console.log('✅ 脚本执行完成');
|
||||
process.exit(0);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('❌ 脚本执行失败:', error);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = setupProjects;
|
||||
43
bank-backend/scripts/setup-supervision-tasks.js
Normal file
43
bank-backend/scripts/setup-supervision-tasks.js
Normal file
@@ -0,0 +1,43 @@
|
||||
/**
|
||||
* 监管任务设置脚本
|
||||
* @file setup-supervision-tasks.js
|
||||
* @description 创建监管任务表并添加测试数据
|
||||
*/
|
||||
const { sequelize, SupervisionTask } = require('../models');
|
||||
const seedSupervisionTasks = require('./seed-supervision-tasks');
|
||||
|
||||
async function setupSupervisionTasks() {
|
||||
try {
|
||||
console.log('🚀 开始设置监管任务...');
|
||||
|
||||
// 测试数据库连接
|
||||
await sequelize.authenticate();
|
||||
console.log('✅ 数据库连接成功');
|
||||
|
||||
// 同步监管任务模型(创建表)
|
||||
await sequelize.sync({ force: false });
|
||||
console.log('✅ 数据库表同步完成');
|
||||
|
||||
// 添加测试数据
|
||||
await seedSupervisionTasks();
|
||||
|
||||
console.log('🎉 监管任务设置完成!');
|
||||
|
||||
} catch (error) {
|
||||
console.error('❌ 监管任务设置失败:', error);
|
||||
throw error;
|
||||
} finally {
|
||||
await sequelize.close();
|
||||
}
|
||||
}
|
||||
|
||||
// 运行设置
|
||||
setupSupervisionTasks()
|
||||
.then(() => {
|
||||
console.log('✅ 所有操作完成');
|
||||
process.exit(0);
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('💥 操作失败:', error);
|
||||
process.exit(1);
|
||||
});
|
||||
Reference in New Issue
Block a user