feat(report):change report sts
This commit is contained in:
@@ -8,6 +8,7 @@ class StatusReport(pydantic.BaseModel):
|
|||||||
state: Optional[str]
|
state: Optional[str]
|
||||||
type_id: Optional[int] = Field(description='کد شناسایی نوع پروژه در این فیلد قرار می گیرد')
|
type_id: Optional[int] = Field(description='کد شناسایی نوع پروژه در این فیلد قرار می گیرد')
|
||||||
nature_id: Optional[int] = Field(description='کد شناسایی ماهبت در این فیلد قرار می گیرد')
|
nature_id: Optional[int] = Field(description='کد شناسایی ماهبت در این فیلد قرار می گیرد')
|
||||||
|
monitor_type: Optional[int]
|
||||||
|
|
||||||
class ReportCountry(pydantic.BaseModel):
|
class ReportCountry(pydantic.BaseModel):
|
||||||
type_id: int = Field(description='کد شناسایی نوع پروژه در این فیلد قرار می گیرد')
|
type_id: int = Field(description='کد شناسایی نوع پروژه در این فیلد قرار می گیرد')
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ class ReportRepository():
|
|||||||
match.update({'design.type_id': _inp.type_id})
|
match.update({'design.type_id': _inp.type_id})
|
||||||
if _inp.nature_id:
|
if _inp.nature_id:
|
||||||
match.update({'design.nature_id': _inp.nature_id})
|
match.update({'design.nature_id': _inp.nature_id})
|
||||||
|
if type == 'monitor' and _inp.monitor_type:
|
||||||
|
match.update({'monitor.base_information.type': _inp.monitor_type})
|
||||||
report = await use_collection(TaskEnv.CLN_PROJECT).aggregate([
|
report = await use_collection(TaskEnv.CLN_PROJECT).aggregate([
|
||||||
{
|
{
|
||||||
"$match": match
|
"$match": match
|
||||||
@@ -66,16 +68,24 @@ class ReportRepository():
|
|||||||
# return {'count_nature':count_nature,'count_type':count_type,'count_monitor_type':count_monitor_type}
|
# return {'count_nature':count_nature,'count_type':count_type,'count_monitor_type':count_monitor_type}
|
||||||
return report
|
return report
|
||||||
|
|
||||||
async def exist_project_state(self):
|
async def exist_project_state(self,_inp: StatusReport):
|
||||||
report = await use_collection(TaskEnv.CLN_PROJECT).aggregate([
|
match ={}
|
||||||
{
|
aggregate = []
|
||||||
'$group': {
|
if _inp.type_id:
|
||||||
'_id': "$design.state",
|
match.update({'design.type_id': _inp.type_id})
|
||||||
'count': {'$sum': 1}
|
if _inp.nature_id:
|
||||||
}
|
match.update({'design.nature_id': _inp.nature_id})
|
||||||
|
if _inp.monitor_type:
|
||||||
|
match.update({'monitor.base_information.type': _inp.monitor_type})
|
||||||
|
if match:
|
||||||
|
aggregate.append({"$match": match})
|
||||||
|
aggregate.append({
|
||||||
|
'$group': {
|
||||||
|
'_id': "$design.state",
|
||||||
|
'count': {'$sum': 1}
|
||||||
}
|
}
|
||||||
]).to_list(None)
|
})
|
||||||
|
report = await use_collection(TaskEnv.CLN_PROJECT).aggregate(aggregate).to_list(None)
|
||||||
return report
|
return report
|
||||||
|
|
||||||
async def donut(self, _select: int):
|
async def donut(self, _select: int):
|
||||||
|
|||||||
+3
-2
@@ -25,9 +25,10 @@ def project_status_monitor(_inp: StatusReport):
|
|||||||
def report_country(_inp: ReportCountry):
|
def report_country(_inp: ReportCountry):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@router.get('/exist_state', tags=_tag_base)
|
# نمایش تعداد پروژه ها در هر شهر بر اساس فیلترهای انتخاب شده
|
||||||
|
@router.post('/exist_state', tags=_tag_base)
|
||||||
@shrink(repo.exist_project_state)
|
@shrink(repo.exist_project_state)
|
||||||
def exist_project_state():
|
def exist_project_state(_inp: StatusReport):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@router.get('/donut/delay', tags=_tag_base)
|
@router.get('/donut/delay', tags=_tag_base)
|
||||||
|
|||||||
Reference in New Issue
Block a user