From 8a7312105f5e3d543d2be50835c4216f285a62ea Mon Sep 17 00:00:00 2001 From: martsforever Date: Sat, 23 Aug 2025 09:50:59 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20pos=20model=E5=85=B3=E8=81=94=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=89=80=E5=B1=9E=E7=BB=84=E7=BB=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/model/PosModel.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/app/model/PosModel.py b/app/model/PosModel.py index 0446b40..64ce63d 100644 --- a/app/model/PosModel.py +++ b/app/model/PosModel.py @@ -4,6 +4,7 @@ from pydantic import computed_field from sqlmodel import Field, Relationship from app.model.BasicModel import BasicModel +from app.model.OrgModel import OrgModel from app.utils.create_module_service import create_model_service @@ -13,9 +14,11 @@ class PosModel(BasicModel, table=True): name: str = Field(default=None, description="职位名称") code: str = Field(default=None, description="职位编码") # parent_code: str = Field(default=None, description="父职位编码") - organization_code: str = Field(default=None, description="所属组织编码") + # organization_code: str = Field(default=None, description="所属组织编码") remarks: str = Field(default=None, description="备注信息") + # /*---------------------------------------parent_code-------------------------------------------*/ + parent_code: str = Field( default=None, description="职位编码", @@ -40,5 +43,30 @@ class PosModel(BasicModel, table=True): def parent_name(self, value: Optional[str]) -> None: pass + # /*---------------------------------------organization_code-------------------------------------------*/ + + organization_code: str = Field( + default=None, + description="所属组织编码", + foreign_key="pl_org.code", # 添加外键约束 + nullable=True + ) + + organization: Optional["OrgModel"] = Relationship( + sa_relationship_kwargs={ + "foreign_keys": "PosModel.organization_code", + "remote_side": "OrgModel.code", + "uselist": False + } + ) + + @computed_field + @property + def organization_name(self) -> Optional[str]: + return self.organization.name if self.organization else None + + @organization_name.setter + def organization_name(self, value: Optional[str]) -> None: + pass PosService = create_model_service(PosModel)