fix(home): count completed review statistics

This commit is contained in:
wren
2026-05-25 11:15:39 +08:00
parent 384bf41de4
commit 7ca01bda76
2 changed files with 96 additions and 4 deletions
@@ -417,6 +417,27 @@ class HomeServiceImpl(IHomeService):
except ValueError:
return None
def normalized_document_status(Document: Any) -> tuple[int, int, int, str, str]:
audit_status = int(getattr(Document, "auditStatus", 0) or 0)
passed_count = int(getattr(Document, "passedCount", 0) or 0)
failed_count = int(getattr(Document, "failedCount", 0) or 0)
run_status = str(getattr(Document, "runStatus", "") or "").strip().lower()
result_status = str(getattr(Document, "resultStatus", "") or "").strip().lower()
return audit_status, passed_count, failed_count, run_status, result_status
def is_reviewed_document(Document: Any) -> bool:
audit_status, passed_count, failed_count, run_status, result_status = normalized_document_status(Document)
if audit_status in {-1, 1}:
return True
if passed_count > 0 or failed_count > 0:
return True
if result_status in {"pass", "fail", "partial", "review", "error"}:
return True
return run_status == "completed"
def is_pending_document(Document: Any) -> bool:
return not is_reviewed_document(Document)
def in_range(Document: Any, DateFrom: date, DateTo: date) -> bool:
current_date = document_date(Document)
return current_date is not None and DateFrom <= current_date <= DateTo
@@ -427,15 +448,15 @@ class HomeServiceImpl(IHomeService):
previous_month_documents = [
document for document in documents if in_range(document, previous_month_start, previous_month_end)
]
current_reviewed_documents = [document for document in current_month_documents if int(document.auditStatus or 0) == 1]
previous_reviewed_documents = [document for document in previous_month_documents if int(document.auditStatus or 0) == 1]
current_reviewed_documents = [document for document in current_month_documents if is_reviewed_document(document)]
previous_reviewed_documents = [document for document in previous_month_documents if is_reviewed_document(document)]
current_pass_rate = pass_rate(current_reviewed_documents)
previous_pass_rate = pass_rate(previous_reviewed_documents)
current_issue_count = issue_count(current_reviewed_documents)
previous_issue_count = issue_count(previous_reviewed_documents)
return HomeDashboardStatisticsVO(
todayPendingFiles=len([document for document in today_documents if int(document.auditStatus or 0) != 1]),
todayPendingFiles=len([document for document in today_documents if is_pending_document(document)]),
monthlyReviewedFiles=len(current_reviewed_documents),
monthlyReviewGrowth=growth(len(current_reviewed_documents), len(previous_reviewed_documents)),
monthlyPassRate=current_pass_rate,