feat: 查询报销单呃时候,一并把关联的审批单查出来

This commit is contained in:
martsforever
2025-08-24 10:57:04 +08:00
parent a57d3ba250
commit 3c9153d9f6
+31
View File
@@ -6,6 +6,7 @@ from pydantic import computed_field
from sqlalchemy.orm import selectinload from sqlalchemy.orm import selectinload
from sqlmodel import Field, Relationship, select from sqlmodel import Field, Relationship, select
from app.model.ApproveModel import ApproveModel
from app.model.BasicModel import BasicModel from app.model.BasicModel import BasicModel
from app.model.ProjectModel import ProjectModel from app.model.ProjectModel import ProjectModel
from app.model.ReimburseOtherModel import ReimburseOtherModel from app.model.ReimburseOtherModel import ReimburseOtherModel
@@ -98,6 +99,32 @@ class ReimburseModel(BasicModel, table=True):
def amount(self, value: decimal) -> None: def amount(self, value: decimal) -> None:
pass 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( ReimburseService = create_model_service(
Cls=ReimburseModel, Cls=ReimburseModel,
@@ -108,5 +135,9 @@ ReimburseService = create_model_service(
selectinload(ReimburseModel.travel_list_rel), selectinload(ReimburseModel.travel_list_rel),
selectinload(ReimburseModel.other_list_rel), selectinload(ReimburseModel.other_list_rel),
selectinload(ReimburseModel.approve_rel).
selectinload(ApproveModel.proj_rel).
selectinload(ProjectModel.leader),
) )
) )