feat(contract):add report

This commit is contained in:
shahzeydyfah
2025-01-11 00:00:16 +03:30
parent 0630f04690
commit 373f866253
3 changed files with 30 additions and 0 deletions
+23
View File
@@ -7,6 +7,11 @@ from app.models.contract import ContractModel, AddendumModel, ExtensionModel
from core.repositories.base import BaseRepository
from core.service.mongo_db import use_collection
from core.utils import get_time
from core.utils.table_engine import TableEngineRequestType, TableEngineExport
from typing import TypeVar
from core.utils.te import NewTableEngine
T = TypeVar('T')
class ContractRepository(BaseRepository):
@@ -66,3 +71,21 @@ class ContractRepository(BaseRepository):
{"project_id": project_id}
).to_list(None)
return contract
async def fetch_report(self, _input: TableEngineRequestType):
query = await NewTableEngine.mongo(
query_class=use_collection(TaskEnv.CLN_CONTRACT),
soft_deleted=True,
model=ContractModel,
return_query=True,
inputs=_input.te) \
.to_dict()
print(query)
if query:
count = await use_collection(TaskEnv.CLN_CONTRACT).aggregate([
{'$match':query['query']},
{'$group': {"_id": None, 'count': {'$sum': 1},'sum':{"$sum":"$amount"}}}
]).to_list(None)
return count[0]
else:
return []
+2
View File
@@ -38,6 +38,8 @@ class ProjectRepository(BaseRepository[ProjectModel]):
if coding.monitor:
coding.monitor.code = 'S'+code
coding.has_monitor = True
else:
coding.has_monitor = False
coding.init_id().cu_at()
await use_collection(COLLECTION).insert_one(coding.mongo_dict())
return await self.get(coding.id)
+5
View File
@@ -66,4 +66,9 @@ def delete(_id: UUID):
def fetch(body: TableEngineRequestType = Body(...)):
pass
@router.post('/report', response_model=TableEngineExport[ThisModel], tags=_tag_base)
@shrink(repo.fetch_report)
def fetch_report(body: TableEngineRequestType = Body(...)):
pass
app.include_router(router)