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.repositories.base import BaseRepository
|
||||||
from core.service.mongo_db import use_collection
|
from core.service.mongo_db import use_collection
|
||||||
from core.utils import get_time
|
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):
|
class ContractRepository(BaseRepository):
|
||||||
@@ -66,3 +71,21 @@ class ContractRepository(BaseRepository):
|
|||||||
{"project_id": project_id}
|
{"project_id": project_id}
|
||||||
).to_list(None)
|
).to_list(None)
|
||||||
return contract
|
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:
|
if coding.monitor:
|
||||||
coding.monitor.code = 'S'+code
|
coding.monitor.code = 'S'+code
|
||||||
coding.has_monitor = True
|
coding.has_monitor = True
|
||||||
|
else:
|
||||||
|
coding.has_monitor = False
|
||||||
coding.init_id().cu_at()
|
coding.init_id().cu_at()
|
||||||
await use_collection(COLLECTION).insert_one(coding.mongo_dict())
|
await use_collection(COLLECTION).insert_one(coding.mongo_dict())
|
||||||
return await self.get(coding.id)
|
return await self.get(coding.id)
|
||||||
|
|||||||
@@ -66,4 +66,9 @@ def delete(_id: UUID):
|
|||||||
def fetch(body: TableEngineRequestType = Body(...)):
|
def fetch(body: TableEngineRequestType = Body(...)):
|
||||||
pass
|
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)
|
app.include_router(router)
|
||||||
Reference in New Issue
Block a user