From 3c9153d9f6f6ab3c126af2845c8f30f1d8a457d6 Mon Sep 17 00:00:00 2001 From: martsforever Date: Sun, 24 Aug 2025 10:57:04 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9F=A5=E8=AF=A2=E6=8A=A5=E9=94=80?= =?UTF-8?q?=E5=8D=95=E5=91=83=E6=97=B6=E5=80=99=EF=BC=8C=E4=B8=80=E5=B9=B6?= =?UTF-8?q?=E6=8A=8A=E5=85=B3=E8=81=94=E7=9A=84=E5=AE=A1=E6=89=B9=E5=8D=95?= =?UTF-8?q?=E6=9F=A5=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/model/ReimburseModel.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/app/model/ReimburseModel.py b/app/model/ReimburseModel.py index 47d3f15..b85f213 100644 --- a/app/model/ReimburseModel.py +++ b/app/model/ReimburseModel.py @@ -6,6 +6,7 @@ from pydantic import computed_field from sqlalchemy.orm import selectinload from sqlmodel import Field, Relationship, select +from app.model.ApproveModel import ApproveModel from app.model.BasicModel import BasicModel from app.model.ProjectModel import ProjectModel from app.model.ReimburseOtherModel import ReimburseOtherModel @@ -98,6 +99,32 @@ class ReimburseModel(BasicModel, table=True): def amount(self, value: decimal) -> None: pass + # /*---------------------------------------approve_id-------------------------------------------*/ + + approve_id: str = Field( + default=None, + description="关联审批单的ID", + foreign_key="pl_approve.id", # 添加外键约束 + nullable=True + ) + + approve_rel: Optional["ApproveModel"] = Relationship( + sa_relationship_kwargs={ + "foreign_keys": "ReimburseModel.approve_id", + "remote_side": "ApproveModel.id", + "uselist": False + } + ) + + @computed_field + @property + def approve(self) -> Optional[ApproveModel]: + return self.approve_rel + + @approve.setter + def approve(self, value: Optional[ApproveModel]) -> None: + pass + ReimburseService = create_model_service( Cls=ReimburseModel, @@ -108,5 +135,9 @@ ReimburseService = create_model_service( selectinload(ReimburseModel.travel_list_rel), selectinload(ReimburseModel.other_list_rel), + + selectinload(ReimburseModel.approve_rel). + selectinload(ApproveModel.proj_rel). + selectinload(ProjectModel.leader), ) )