feat(report):add status agreement

This commit is contained in:
shahzeydyfah
2025-01-24 13:42:14 +03:30
parent 9039ca0b02
commit 1c256db8c4
3 changed files with 54 additions and 3 deletions
+3 -3
View File
@@ -40,11 +40,11 @@ class RegisterStatusModel(BaseModel):
4.ماقبل قطعی
5.قطعی
""")
number_start: Optional[float] = Field(description="شماره صورت وضعیت")
number_end: Optional[float] = Field(description="شماره صورت وضعیت")
number: Optional[float] = Field(description="شماره صورت وضعیت")
index: Optional[Literal[1,2]] = Field(description="""
1.قطعی
2. علی الحساب
""")
amount: Optional[AmountStatus] = Field(description="مبالغ")
related_to_number:Optional[int] = Field(description="شماره صورت وضعیت مرتبط")
related_to_number_start:Optional[int] = Field(description="شماره صورت وضعیت مرتبط")
related_to_number_end:Optional[int] = Field(description="شماره صورت وضعیت مرتبط")
+41
View File
@@ -402,6 +402,9 @@ class ReportRepository():
from_date = _inp.from_date.combine(_inp.from_date.date(), time.min)
result = await use_collection(TaskEnv.CLN_MONITOR_PYSICAL).aggregate([
{"$match":{"date_at":{"$lte":to_date,"$gte":from_date}}},
{
"$sort": {'date_at': -1}
},
{"$group":
{'_id': {"year": "$year", "month": "$month"},
'avg': {'$avg': "$real"}},
@@ -432,6 +435,23 @@ class ReportRepository():
}
]).to_list(None)
return result
#روند وضعیت پروژه ها
async def design_progress_status_progress(self):
result = await use_collection("design_progress").aggregate([
{'$match':{'complete_at':{"$exists":0},'parent_id':{"$exists":0}}},
{"$group":
{'_id': {"created_at": {
"$dateToString": {
"format": "%Y-%m-%d", # Format to extract date only (YYYY-MM-DD)
"date": "$created_at"
}
},'type':'$type'},
'count': {'$sum': 1},
"projectIds": {"$addToSet": "$project_id"},
},
}
]).to_list(None)
return result
async def design_sts(self):
result = await use_collection(TaskEnv.CLN_PROJECT).aggregate([
@@ -446,6 +466,27 @@ class ReportRepository():
]).to_list(None)
return result
async def status_agreement_progress(self):
result = await use_collection(TaskEnv.CLN_PROJECT_AGREEMENT).aggregate([
{
"$group": {
"_id": {
"created_at": {
"$dateToString": {
"format": "%Y-%m-%d", # Format to extract date only (YYYY-MM-DD)
"date": "$created_at"
}
},
"status": "$status"
},
"count": {"$sum": 1},
"projectIds": {"$addToSet": "$_id"}
}
}
]).to_list(None)
return result
+10
View File
@@ -117,9 +117,19 @@ def design_progress_status():
def design_progress_status_state():
pass
@router.get('/design_progress/status/progress', tags=_tag_base)
@shrink(repo.design_progress_status_progress)
def design_progress_status_progress():
pass
# وضعیت دارا بودن موافقت نامه
@router.get('/status_agreement/donut', tags=_tag_base)
@shrink(repo.status_agreement)
def status_agreement():
pass
#روند وضعیت موافقت نامه ها
@router.get('/status_agreement/progress', tags=_tag_base)
@shrink(repo.status_agreement_progress)
def status_agreement_progress():
pass
app.include_router(router)