diff --git a/app/model/ReimburseModel.py b/app/model/ReimburseModel.py index 505e796..7795928 100644 --- a/app/model/ReimburseModel.py +++ b/app/model/ReimburseModel.py @@ -11,6 +11,7 @@ from app.model.BasicModel import BasicModel from app.model.ProjectModel import ProjectModel from app.model.ReimburseOtherModel import ReimburseOtherModel from app.model.ReimburseTravelModel import ReimburseTravelModel +from app.model.UserModel import UserModel, UserServiceModel from app.utils.create_module_service import create_model_service @@ -20,7 +21,7 @@ class ReimburseModel(BasicModel, table=True): title: str = Field(default=None, description="标题") remarks: str = Field(default=None, description="备注信息") - # /*---------------------------------------project-------------------------------------------*/ + # /*---------------------------------------project:报销单所属项目-------------------------------------------*/ proj_id: str = Field( default=None, @@ -49,7 +50,7 @@ class ReimburseModel(BasicModel, table=True): def project(self, value: Optional[ProjectModel]) -> None: pass - # /*---------------------------------------travel_list-------------------------------------------*/ + # /*---------------------------------------travel_list:报销单子表差旅费用-------------------------------------------*/ # 新增:与ReimburseTravelModel的一对多关系 travel_list_rel: Optional[List["ReimburseTravelModel"]] = Relationship( @@ -71,7 +72,7 @@ class ReimburseModel(BasicModel, table=True): def travel_list(self, value: Optional[List["ReimburseTravelModel"]]) -> None: pass - # /*---------------------------------------other_list-------------------------------------------*/ + # /*---------------------------------------other_list:报销单子表其他费用-------------------------------------------*/ other_list_rel: Optional[List["ReimburseOtherModel"]] = Relationship( sa_relationship_kwargs={ @@ -92,7 +93,7 @@ class ReimburseModel(BasicModel, table=True): def other_list(self, value: Optional[List["ReimburseOtherModel"]]) -> None: pass - # /*---------------------------------------amount-------------------------------------------*/ + # /*---------------------------------------amount:报销单花费金额-------------------------------------------*/ @computed_field @property @@ -108,7 +109,7 @@ class ReimburseModel(BasicModel, table=True): def amount(self, value: decimal) -> None: pass - # /*---------------------------------------approve_id-------------------------------------------*/ + # /*---------------------------------------approve_id:报销单所关联的审批单-------------------------------------------*/ approve_id: str = Field( default=None, @@ -137,6 +138,35 @@ class ReimburseModel(BasicModel, table=True): def approve(self, value: Optional[ApproveModel]) -> None: pass + # /*---------------------------------------user_id:报销单申请人-------------------------------------------*/ + + user_id: str = Field( + default=None, + description="项目成员id", + foreign_key="pl_user.id", # 添加外键约束 + nullable=True + ) + + user_rel: Optional["UserServiceModel"] = Relationship( + sa_relationship_kwargs={ + "foreign_keys": "ReimburseModel.user_id", + "remote_side": "UserServiceModel.id", + "uselist": False + } + ) + + @computed_field + @property + def user(self) -> Optional[UserServiceModel]: + try: + return self.user_rel + except: + return None + + @user.setter + def user(self, value: Optional[UserServiceModel]) -> None: + pass + ReimburseService = create_model_service( Cls=ReimburseModel, @@ -147,6 +177,7 @@ ReimburseService = create_model_service( selectinload(ReimburseModel.travel_list_rel), selectinload(ReimburseModel.other_list_rel), - selectinload(ReimburseModel.approve_rel) + selectinload(ReimburseModel.approve_rel), + selectinload(ReimburseModel.user_rel), ) )