feat(contract):add report
This commit is contained in:
@@ -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 []
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
Reference in New Issue
Block a user