first commit

This commit is contained in:
2026-04-11 11:51:54 +08:00
commit b12a84e388
99 changed files with 19620 additions and 0 deletions

View File

@@ -0,0 +1,95 @@
import mysql from 'mysql2/promise';
import dotenv from 'dotenv';
dotenv.config();
async function insertMockAIResult() {
try {
const conn = await mysql.createConnection({
host: process.env.DB_HOST || 'localhost',
port: Number(process.env.DB_PORT) || 3306,
user: process.env.DB_USER || 'root',
password: process.env.DB_PASSWORD || '',
database: process.env.DB_NAME || 'employee_performance',
});
// 为每个已提交的绩效记录创建模拟AI评分
const [perfRecords] = await conn.query(`
SELECT perf_id FROM performance_month WHERE status = 'submitted'
`);
for (const record of perfRecords as any[]) {
const perfId = record.perf_id;
// 模拟AI评分详情
const aiScoreDetail = [
{ itemName: '工作目标完成情况', weight: 15, aiScore: 85, scoreExplanation: '工作目标基本完成,但部分细节需要改进' },
{ itemName: '工作质量', weight: 10, aiScore: 88, scoreExplanation: '工作质量良好,符合标准' },
{ itemName: '工作效率', weight: 10, aiScore: 82, scoreExplanation: '效率有待提升' },
{ itemName: '业务能力', weight: 10, aiScore: 86, scoreExplanation: '业务能力扎实' },
{ itemName: '创新能力', weight: 5, aiScore: 80, scoreExplanation: '有一定创新意识' },
{ itemName: '问题解决能力', weight: 5, aiScore: 84, scoreExplanation: '能够独立解决问题' },
{ itemName: '项目推进能力', weight: 5, aiScore: 83, scoreExplanation: '项目推进较为顺利' },
{ itemName: '客户服务', weight: 5, aiScore: 87, scoreExplanation: '客户反馈良好' },
{ itemName: '成本控制', weight: 5, aiScore: 85, scoreExplanation: '成本控制意识较强' },
{ itemName: '团队协作', weight: 5, aiScore: 89, scoreExplanation: '团队协作能力突出' },
{ itemName: '沟通能力', weight: 5, aiScore: 86, scoreExplanation: '沟通顺畅' },
{ itemName: '学习成长', weight: 5, aiScore: 88, scoreExplanation: '学习态度积极' },
{ itemName: '责任心', weight: 5, aiScore: 90, scoreExplanation: '责任心强' },
{ itemName: '执行力', weight: 5, aiScore: 87, scoreExplanation: '执行力较好' },
{ itemName: '职业素养', weight: 5, aiScore: 89, scoreExplanation: '职业素养良好' },
{ itemName: '工作态度', weight: 5, aiScore: 91, scoreExplanation: '工作态度端正' },
];
const aiTotalScore = 85.5;
const problems = [
'工作效率有待提升,部分任务完成时间较长',
'创新能力需要加强,建议多尝试新方法',
'项目文档记录不够完善,需要改进'
];
const suggestions = [
'建议制定更详细的工作计划,提高时间管理能力',
'多参加技术分享和培训,拓展知识面',
'加强项目文档编写,形成良好的工作习惯',
'主动承担更多挑战性任务,提升综合能力'
];
// 插入AI评分结果
await conn.query(`
INSERT INTO ai_result (perf_id, ai_score_json, ai_total_score, problems, suggestions, api_response)
VALUES (?, ?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE
ai_score_json = VALUES(ai_score_json),
ai_total_score = VALUES(ai_total_score),
problems = VALUES(problems),
suggestions = VALUES(suggestions)
`, [
perfId,
JSON.stringify(aiScoreDetail),
aiTotalScore,
JSON.stringify(problems),
JSON.stringify(suggestions),
'模拟AI评分结果'
]);
// 更新performance_month表的ai_score
await conn.query(`
UPDATE performance_month SET ai_score = ? WHERE perf_id = ?
`, [aiTotalScore, perfId]);
console.log(`✓ 已为绩效记录 ${perfId} 创建模拟AI评分`);
}
console.log('\n✅ 模拟AI评分数据插入完成');
await conn.end();
process.exit(0);
} catch (error: any) {
console.error('错误:', error.message);
process.exit(1);
}
}
insertMockAIResult();