feat: pos model关联查询所属组织信息
This commit is contained in:
+29
-1
@@ -4,6 +4,7 @@ from pydantic import computed_field
|
|||||||
from sqlmodel import Field, Relationship
|
from sqlmodel import Field, Relationship
|
||||||
|
|
||||||
from app.model.BasicModel import BasicModel
|
from app.model.BasicModel import BasicModel
|
||||||
|
from app.model.OrgModel import OrgModel
|
||||||
from app.utils.create_module_service import create_model_service
|
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="职位名称")
|
name: str = Field(default=None, description="职位名称")
|
||||||
code: str = Field(default=None, description="职位编码")
|
code: str = Field(default=None, description="职位编码")
|
||||||
# parent_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="备注信息")
|
remarks: str = Field(default=None, description="备注信息")
|
||||||
|
|
||||||
|
# /*---------------------------------------parent_code-------------------------------------------*/
|
||||||
|
|
||||||
parent_code: str = Field(
|
parent_code: str = Field(
|
||||||
default=None,
|
default=None,
|
||||||
description="职位编码",
|
description="职位编码",
|
||||||
@@ -40,5 +43,30 @@ class PosModel(BasicModel, table=True):
|
|||||||
def parent_name(self, value: Optional[str]) -> None:
|
def parent_name(self, value: Optional[str]) -> None:
|
||||||
pass
|
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)
|
PosService = create_model_service(PosModel)
|
||||||
|
|||||||
Reference in New Issue
Block a user