完美呈現 AI 成果

This commit is contained in:
2025-09-23 23:25:18 +08:00
parent 7bfedc4162
commit 69c9323038
6 changed files with 24 additions and 5 deletions

View File

@@ -338,8 +338,19 @@ export async function POST(request: NextRequest) {
// 為每個 criteria 添加 strengths 和 improvements
for (const criteriaData of fullData.criteria) {
const criteriaItem = criteria.find(c => c.name === criteriaData.name);
if (!criteriaItem) continue;
// 使用清理後的名稱進行匹配
const cleanCriteriaDataName = criteriaData.name.trim().replace(/[\u200B-\u200D\uFEFF]/g, '');
const criteriaItem = criteria.find(c => {
const cleanCriteriaName = c.name.trim().replace(/[\u200B-\u200D\uFEFF]/g, '');
return cleanCriteriaName === cleanCriteriaDataName;
});
if (!criteriaItem) {
console.warn(`⚠️ 找不到對應的評分標準: "${criteriaData.name}" (清理後: "${cleanCriteriaDataName}")`);
continue;
}
console.log(`🔍 處理 criteria: "${criteriaData.name}" -> 匹配到: "${criteriaItem.name}" (ID: ${criteriaItem.id})`);
// 添加 strengths
if (criteriaData.strengths && criteriaData.strengths.length > 0) {

View File

@@ -52,7 +52,7 @@ const criteriaNameToId: Record<string, number> = {
"創新性": 53,
"成效與效益": 54,
"擴散與可複用性": 55,
"簡報與表達": 56
"簡報與表達": 56 // 注意:資料庫中的名稱末尾有零寬度空格,但這裡使用清理後的名稱
};
export class EvaluationUploadService {
@@ -178,8 +178,16 @@ export class EvaluationUploadService {
// 2. 各項標準的反饋
for (const criteria of aiResult.criteria) {
const criteriaItemId = criteriaNameToId[criteria.name];
if (!criteriaItemId) continue;
// 清理名稱中的特殊字符,包括零寬度空格
const cleanName = criteria.name.replace(/[\u200B-\u200D\uFEFF]/g, '').trim();
const criteriaItemId = criteriaNameToId[cleanName];
console.log(`🔍 處理 criteria: "${criteria.name}" -> 清理後: "${cleanName}" -> ID: ${criteriaItemId}`);
if (!criteriaItemId) {
console.warn(`⚠️ 找不到 criteria_item_id for: "${cleanName}"`);
continue;
}
// 標準反饋
await query(sql, [

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.