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 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),
)
)