96 lines
4.1 KiB
TypeScript
96 lines
4.1 KiB
TypeScript
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();
|