feat(report):add status agreement
This commit is contained in:
@@ -19,5 +19,6 @@ class TaskEnv:
|
||||
CLN_PROJECT_STS = 'project_sts'
|
||||
CLN_PROJECT = 'project'
|
||||
CLN_PROJECT_PRICE_REPORT = 'price_report'
|
||||
CLN_PROJECT_AGREEMENT = 'project_agreement'
|
||||
|
||||
|
||||
|
||||
@@ -141,5 +141,10 @@ class ProjectPriceReport(BaseModel):
|
||||
amount_adjust: Optional[int] = Field(description='مبلغ تعدیل')
|
||||
first_amount: Optional[int] = Field(description=' مبلغ اولیه پیمان')
|
||||
|
||||
class ProjectStatusAgreement(BaseModel):
|
||||
id: Optional[uuid.UUID] = Field(alias='_id')
|
||||
project_id: Optional[uuid.UUID] = Field(description="کد شناسایی پروژه در این فیلد قرار می گیرد")
|
||||
status:str
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ import requests
|
||||
from fastapi import HTTPException
|
||||
|
||||
from app.config import TaskEnv
|
||||
from app.models.project import ProjectModel, UpdateSts, ProjectSts, Design
|
||||
from app.models.project import ProjectModel, UpdateSts, ProjectSts, Design, ProjectStatusAgreement
|
||||
from core.repositories.base import BaseRepository
|
||||
from core.service.mongo_db import use_collection
|
||||
from core.utils.table_engine import TableEngineRequestType, TableEngineExport
|
||||
@@ -66,6 +66,13 @@ class ProjectRepository(BaseRepository[ProjectModel]):
|
||||
coding.has_monitor = False
|
||||
|
||||
await use_collection(COLLECTION).insert_one(coding.mongo_dict())
|
||||
if coding.design.status_agreement:
|
||||
_model=ProjectStatusAgreement(
|
||||
project_id= coding.id,
|
||||
status= coding.design.status_agreement
|
||||
).init_id().cu_at()
|
||||
await use_collection(TaskEnv.CLN_PROJECT_AGREEMENT).insert_one(_model.mongo_dict())
|
||||
|
||||
return await self.get(coding.id)
|
||||
|
||||
|
||||
@@ -83,9 +90,14 @@ class ProjectRepository(BaseRepository[ProjectModel]):
|
||||
if update.monitor:
|
||||
update.has_monitor = True
|
||||
await self.update_report_price(update)
|
||||
|
||||
update.u_at()
|
||||
await use_collection(COLLECTION).update_one({"_id":_id},{"$set":update.mongo_dict()})
|
||||
if old_project.design.status_agreement != update.design.status_agreement:
|
||||
_model = ProjectStatusAgreement(
|
||||
project_id=_id,
|
||||
status=update.design.status_agreement
|
||||
).init_id().cu_at()
|
||||
await use_collection(TaskEnv.CLN_PROJECT_AGREEMENT).insert_one(_model.mongo_dict())
|
||||
return await self.get(_id)
|
||||
|
||||
async def update_design_sts(self, _id: UUID, update: UpdateSts):
|
||||
|
||||
@@ -433,4 +433,18 @@ class ReportRepository():
|
||||
]).to_list(None)
|
||||
return result
|
||||
|
||||
async def design_sts(self):
|
||||
result = await use_collection(TaskEnv.CLN_PROJECT).aggregate([
|
||||
{"$group":{"_id":'$design.sts','count':{'$sum':1},"projectIds": {"$addToSet": "$_id"}}}
|
||||
])
|
||||
return result
|
||||
|
||||
async def status_agreement(self):
|
||||
result = await use_collection(TaskEnv.CLN_PROJECT).aggregate([
|
||||
{"$group":{"_id":'$design.status_agreement','count':{'$sum':1},"projectIds": {"$addToSet": "$_id"}}}
|
||||
])
|
||||
return result
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -117,4 +117,9 @@ def design_progress_status():
|
||||
def design_progress_status_state():
|
||||
pass
|
||||
|
||||
@router.get('/status_agreement/donut', tags=_tag_base)
|
||||
@shrink(repo.status_agreement)
|
||||
def status_agreement():
|
||||
pass
|
||||
|
||||
app.include_router(router)
|
||||
Reference in New Issue
Block a user