fix(home): count completed review statistics
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user