完善文档预览的效果修改
This commit is contained in:
@@ -69,6 +69,10 @@ export interface ReviewFileUI {
|
||||
message: string;
|
||||
}>;
|
||||
createdBy: string;
|
||||
passCount: number;
|
||||
warningCount: number;
|
||||
failCount: number;
|
||||
manualCount: number;
|
||||
}
|
||||
|
||||
// 文件列表搜索参数
|
||||
@@ -109,6 +113,10 @@ interface EvaluationPoint {
|
||||
interface DocumentReviewResult {
|
||||
status: number;
|
||||
issueCount: number;
|
||||
passCount: number;
|
||||
warningCount: number;
|
||||
failCount: number;
|
||||
manualCount: number;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -177,6 +185,7 @@ export function getFileExtension(fileName: string): string {
|
||||
* @returns UI文件对象
|
||||
*/
|
||||
export function convertToReviewFileUI(document: Document, documentTypeName: string): ReviewFileUI {
|
||||
// 将评查状态转换为UI状态(这个评查状态后续可能不需要,这里先预留)
|
||||
const reviewStatus = mapReviewStatusToUI(document.evaluations_status);
|
||||
|
||||
const reviewFileUI: ReviewFileUI = {
|
||||
@@ -195,7 +204,11 @@ export function convertToReviewFileUI(document: Document, documentTypeName: stri
|
||||
score: 0,
|
||||
auditStatus: document.audit_status,
|
||||
issues: [],
|
||||
createdBy: document.user_id?.toString() || '系统'
|
||||
createdBy: document.user_id?.toString() || '系统',
|
||||
passCount: 0,
|
||||
warningCount: 0,
|
||||
failCount: 0,
|
||||
manualCount: 0
|
||||
};
|
||||
|
||||
// console.log('reviewFileUI-----',reviewFileUI);
|
||||
@@ -396,6 +409,9 @@ export async function getReviewFiles(searchParams: DocumentSearchParams = {}): P
|
||||
let totalScore = 0;
|
||||
let totalPoints = 0;
|
||||
let totalPassPoints = 0;
|
||||
let totalWarningPoints = 0;
|
||||
let totalFailPoints = 0;
|
||||
let totalManualPoints = 0;
|
||||
|
||||
// 存储该文档的问题消息
|
||||
const issuesList: Array<{severity: 'info' | 'warning' | 'error' | 'critical', message: string}> = [];
|
||||
@@ -406,9 +422,10 @@ export async function getReviewFiles(searchParams: DocumentSearchParams = {}): P
|
||||
const pointId = result.evaluation_point_id;
|
||||
const point = pointsMap.get(pointId);
|
||||
|
||||
// 检查是否需要人工审核
|
||||
if (resultValue === false && point && point.post_action === 'manual') {
|
||||
// 统计需要人工审核的评查点
|
||||
if (point && point.post_action === 'manual') {
|
||||
hasManualReviewPoint = true;
|
||||
totalManualPoints++;
|
||||
}
|
||||
|
||||
// 检查是否有不通过的结果
|
||||
@@ -422,6 +439,14 @@ export async function getReviewFiles(searchParams: DocumentSearchParams = {}): P
|
||||
message: evaluatedResults.message as string
|
||||
});
|
||||
}
|
||||
|
||||
// 统计不通过而且评查点是警告的评查点
|
||||
if (point && point.suggestion_message_type === 'warning') {
|
||||
totalWarningPoints++;
|
||||
}else if (point && point.suggestion_message_type === 'error') {
|
||||
totalFailPoints++;
|
||||
}
|
||||
|
||||
}else{
|
||||
totalPassPoints++;
|
||||
}
|
||||
@@ -464,14 +489,20 @@ export async function getReviewFiles(searchParams: DocumentSearchParams = {}): P
|
||||
|
||||
documentStatusMap.set(docId, {
|
||||
status,
|
||||
passCount: totalPassPoints,
|
||||
warningCount: totalWarningPoints,
|
||||
failCount: totalFailPoints,
|
||||
manualCount: totalManualPoints,
|
||||
issueCount: results.filter(r => r.evaluated_results?.result === false).length
|
||||
});
|
||||
});
|
||||
|
||||
// console.log("documentStatusMap-----",documentStatusMap);
|
||||
|
||||
// 将文档数据转换为UI文件对象,同时应用评查状态
|
||||
const reviewFiles = extractedDocuments.map(doc => {
|
||||
const typeName = typeNameMap[doc.type_id] || '未知类型';
|
||||
const reviewResult = documentStatusMap.get(doc.id) || { status: doc.evaluations_status || 0, issueCount: 0 };
|
||||
const reviewResult = documentStatusMap.get(doc.id) || { status: doc.evaluations_status || 0, issueCount: 0, passCount: 0, warningCount: 0, failCount: 0, manualCount: 0 };
|
||||
const issues = documentIssuesMap.get(doc.id) || [];
|
||||
const score = documentScoreMap.get(doc.id) || 100; // 获取计算后的分数,默认为100
|
||||
|
||||
@@ -490,14 +521,20 @@ export async function getReviewFiles(searchParams: DocumentSearchParams = {}): P
|
||||
reviewFile.reviewStatusCode = reviewResult.status;
|
||||
reviewFile.reviewStatus = mapReviewStatusToUI(reviewResult.status);
|
||||
reviewFile.issueCount = reviewResult.issueCount;
|
||||
|
||||
reviewFile.passCount = reviewResult.passCount;
|
||||
reviewFile.warningCount = reviewResult.warningCount;
|
||||
reviewFile.failCount = reviewResult.failCount;
|
||||
reviewFile.manualCount = reviewResult.manualCount;
|
||||
|
||||
reviewFile.score = score; // 添加分数
|
||||
// 添加问题列表
|
||||
reviewFile.issues = issues;
|
||||
|
||||
|
||||
return reviewFile;
|
||||
});
|
||||
|
||||
console.log('reviewFiles-----',reviewFiles);
|
||||
// console.log('reviewFiles-----',reviewFiles);
|
||||
return {
|
||||
data: {
|
||||
files: reviewFiles,
|
||||
@@ -519,51 +556,51 @@ export async function getReviewFiles(searchParams: DocumentSearchParams = {}): P
|
||||
* @param status 评查状态
|
||||
* @returns 更新后的文件信息
|
||||
*/
|
||||
export async function updateReviewStatus(id: string, status: string): Promise<{
|
||||
data?: ReviewFileUI;
|
||||
error?: string;
|
||||
status?: number;
|
||||
}> {
|
||||
try {
|
||||
if (!id) {
|
||||
return { error: '文件ID不能为空', status: 400 };
|
||||
}
|
||||
// export async function updateReviewStatus(id: string, status: string): Promise<{
|
||||
// data?: ReviewFileUI;
|
||||
// error?: string;
|
||||
// status?: number;
|
||||
// }> {
|
||||
// try {
|
||||
// if (!id) {
|
||||
// return { error: '文件ID不能为空', status: 400 };
|
||||
// }
|
||||
|
||||
const statusValue = mapUIToReviewStatus(status);
|
||||
// const statusValue = mapUIToReviewStatus(status);
|
||||
|
||||
const response = await postgrestPut<Document, Partial<Document>>(
|
||||
'documents',
|
||||
{ evaluations_status: statusValue },
|
||||
{ id: parseInt(id) }
|
||||
);
|
||||
// const response = await postgrestPut<Document, Partial<Document>>(
|
||||
// 'documents',
|
||||
// { evaluations_status: statusValue },
|
||||
// { id: parseInt(id) }
|
||||
// );
|
||||
|
||||
if (response.error) {
|
||||
return { error: response.error, status: response.status };
|
||||
}
|
||||
// if (response.error) {
|
||||
// return { error: response.error, status: response.status };
|
||||
// }
|
||||
|
||||
const extractedData = extractApiData<Document>(response.data);
|
||||
// const extractedData = extractApiData<Document>(response.data);
|
||||
|
||||
if (!extractedData) {
|
||||
return { error: '更新评查状态失败', status: 500 };
|
||||
}
|
||||
// if (!extractedData) {
|
||||
// return { error: '更新评查状态失败', status: 500 };
|
||||
// }
|
||||
|
||||
// 获取文档类型,用于查找文档类型名称
|
||||
const documentTypesResponse = await getDocumentTypes({pageSize: 500});
|
||||
const documentTypes = documentTypesResponse.data?.types || [];
|
||||
// // 获取文档类型,用于查找文档类型名称
|
||||
// const documentTypesResponse = await getDocumentTypes({pageSize: 500});
|
||||
// const documentTypes = documentTypesResponse.data?.types || [];
|
||||
|
||||
// 查找文档类型名称
|
||||
const docType = documentTypes.find((type: DocumentTypeUI) => type.id === extractedData.type_id);
|
||||
const typeName = docType ? docType.name : '未知类型';
|
||||
// // 查找文档类型名称
|
||||
// const docType = documentTypes.find((type: DocumentTypeUI) => type.id === extractedData.type_id);
|
||||
// const typeName = docType ? docType.name : '未知类型';
|
||||
|
||||
return { data: convertToReviewFileUI(extractedData, typeName) };
|
||||
} catch (error) {
|
||||
console.error('更新评查状态失败:', error);
|
||||
return {
|
||||
error: error instanceof Error ? error.message : '更新评查状态失败',
|
||||
status: 500
|
||||
};
|
||||
}
|
||||
}
|
||||
// return { data: convertToReviewFileUI(extractedData, typeName) };
|
||||
// } catch (error) {
|
||||
// console.error('更新评查状态失败:', error);
|
||||
// return {
|
||||
// error: error instanceof Error ? error.message : '更新评查状态失败',
|
||||
// status: 500
|
||||
// };
|
||||
// }
|
||||
// }
|
||||
|
||||
/**
|
||||
* 更新文件的审核状态
|
||||
|
||||
Reference in New Issue
Block a user