first commit
This commit is contained in:
95
backend/insert-mock-ai-result.ts
Normal file
95
backend/insert-mock-ai-result.ts
Normal 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();
|
||||
Reference in New Issue
Block a user