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();