feat: 妥协,只能在数据库中加对应的字段
This commit is contained in:
@@ -16,26 +16,8 @@ class ProjectModel(BasicModel, table=True):
|
|||||||
budget: float = Field(default=None, description="项目预算金额")
|
budget: float = Field(default=None, description="项目预算金额")
|
||||||
version: int = Field(default=None, description="项目版本号")
|
version: int = Field(default=None, description="项目版本号")
|
||||||
|
|
||||||
# 使用 PrivateAttr 声明私有属性
|
spent: Decimal = Field(default=None, description="项目花费金额")
|
||||||
_spent: Optional[Decimal] = PrivateAttr(default=None)
|
balance: Decimal = Field(default=None, description="项目预算余额")
|
||||||
_balance: Optional[Decimal] = PrivateAttr(default=None)
|
|
||||||
|
|
||||||
# 属性访问器
|
|
||||||
@property
|
|
||||||
def spent(self) -> Optional[Decimal]:
|
|
||||||
return self._spent
|
|
||||||
|
|
||||||
@spent.setter
|
|
||||||
def spent(self, value: Optional[Decimal]) -> None:
|
|
||||||
self._spent = value
|
|
||||||
|
|
||||||
@property
|
|
||||||
def balance(self) -> Optional[Decimal]:
|
|
||||||
return self._balance
|
|
||||||
|
|
||||||
@balance.setter
|
|
||||||
def balance(self, value: Optional[Decimal]) -> None:
|
|
||||||
self._balance = value
|
|
||||||
|
|
||||||
# /*---------------------------------------leader_id-------------------------------------------*/
|
# /*---------------------------------------leader_id-------------------------------------------*/
|
||||||
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@ ProjectService = create_model_service(
|
|||||||
after_batch_update=lambda refresh_cls_list, row_dict_list, session: set_list_spent(refresh_cls_list, session),
|
after_batch_update=lambda refresh_cls_list, row_dict_list, session: set_list_spent(refresh_cls_list, session),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
async def set_list_spent(cls_list: List[ProjectModel], session: AsyncSessionDep):
|
async def set_list_spent(cls_list: List[ProjectModel], session: AsyncSessionDep):
|
||||||
project_dict_list, project_dict_map = await query_proj_spent([item.id for item in cls_list], session)
|
project_dict_list, project_dict_map = await query_proj_spent([item.id for item in cls_list], session)
|
||||||
for item in cls_list:
|
for item in cls_list:
|
||||||
@@ -31,12 +30,6 @@ async def set_list_spent(cls_list: List[ProjectModel], session: AsyncSessionDep)
|
|||||||
item.spent = target['spent']
|
item.spent = target['spent']
|
||||||
item.balance = target['balance']
|
item.balance = target['balance']
|
||||||
|
|
||||||
for item in cls_list:
|
|
||||||
print("==============>>>>>>>>>>>>")
|
|
||||||
print(item.id, item.spent, item.balance)
|
|
||||||
dict_val = item.model_dump()
|
|
||||||
print(dict_val.get('spent'), dict_val.get('balance'))
|
|
||||||
|
|
||||||
|
|
||||||
async def set_item_spent(cls: ProjectModel, session: AsyncSessionDep):
|
async def set_item_spent(cls: ProjectModel, session: AsyncSessionDep):
|
||||||
project_dict_list, project_dict_map = await query_proj_spent([cls.id], session)
|
project_dict_list, project_dict_map = await query_proj_spent([cls.id], session)
|
||||||
@@ -61,4 +54,5 @@ async def query_proj_spent(proj_id_list: List[str], session: AsyncSessionDep):
|
|||||||
# 剩余金额
|
# 剩余金额
|
||||||
dict_item['balance'] = Decimal(dict_item['budget']) - Decimal(dict_item['spent'])
|
dict_item['balance'] = Decimal(dict_item['budget']) - Decimal(dict_item['spent'])
|
||||||
project_dict_map = {item['id']: item for item in project_dict_list}
|
project_dict_map = {item['id']: item for item in project_dict_list}
|
||||||
|
|
||||||
return project_dict_list, project_dict_map
|
return project_dict_list, project_dict_map
|
||||||
|
|||||||
Reference in New Issue
Block a user