| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- from datetime import datetime
- from typing import Optional, List
- from pydantic import BaseModel, ConfigDict, Field
- class DepartmentCreateSchema(BaseModel):
- """创建部门请求"""
-
- enterprise_id: str = Field(..., description="企业ID")
- department_name: str = Field(..., description="部门名称")
- department_code: Optional[str] = Field(default=None, description="部门编码")
- parent_department_id: Optional[str] = Field(default=None, description="上级部门ID")
- sort_order: Optional[int] = Field(default=None, description="排序值")
- leader_employee_id: Optional[str] = Field(default=None, description="部门负责人ID")
- leader_employee_name: Optional[str] = Field(default=None, description="部门负责人姓名")
- class DepartmentUpdateSchema(BaseModel):
- """更新部门请求"""
-
- department_name: Optional[str] = Field(default=None, description="部门名称")
- department_code: Optional[str] = Field(default=None, description="部门编码")
- parent_department_id: Optional[str] = Field(default=None, description="上级部门ID")
- sort_order: Optional[int] = Field(default=None, description="排序值")
- leader_employee_id: Optional[str] = Field(default=None, description="部门负责人ID")
- leader_employee_name: Optional[str] = Field(default=None, description="部门负责人姓名")
- class DepartmentOutSchema(BaseModel):
- """部门响应模型"""
-
- model_config = ConfigDict(from_attributes=True)
-
- # id: int = Field(description="主键ID")
- department_id: str = Field(description="部门ID")
- department_name: str = Field(description="部门名称")
- department_code: Optional[str] = Field(default=None, description="部门编码")
- parent_department_id: Optional[str] = Field(default=None, description="上级部门ID")
- enterprise_id: str = Field(description="企业ID")
- status: str = Field(description="状态")
- sort_order: Optional[int] = Field(default=None, description="排序值")
- leader_employee_id: Optional[str] = Field(default=None, description="部门负责人ID")
- leader_employee_name: Optional[str] = Field(default=None, description="部门负责人姓名")
- # created_time: datetime = Field(description="创建时间")
- # updated_time: datetime = Field(description="更新时间")
- # tenant_id: int = Field(description="租户ID")
- class DepartmentListOutSchema(BaseModel):
- """部门列表响应"""
-
- model_config = ConfigDict(from_attributes=True)
-
- id: int = Field(description="主键ID")
- department_id: str = Field(description="部门ID")
- department_name: str = Field(description="部门名称")
- department_code: Optional[str] = Field(default=None, description="部门编码")
- parent_department_id: Optional[str] = Field(default=None, description="上级部门ID")
- enterprise_id: str = Field(description="企业ID")
- status: str = Field(description="状态")
- sort_order: Optional[int] = Field(default=None, description="排序值")
- leader_employee_name: Optional[str] = Field(default=None, description="部门负责人姓名")
- created_time: datetime = Field(description="创建时间")
- class DepartmentDetailOutSchema(BaseModel):
- """部门详情响应"""
-
- model_config = ConfigDict(from_attributes=True)
-
- department: DepartmentOutSchema = Field(description="部门信息")
- sub_departments: List[DepartmentOutSchema] = Field(default_factory=list, description="子部门列表")
- class DepartmentPageQuery(BaseModel):
- """部门分页查询参数"""
-
- page_no: int = Field(default=1, description="页码")
- page_size: int = Field(default=20, description="每页数量")
- enterprise_id: Optional[str] = Field(default=None, description="企业ID")
- department_name: Optional[str] = Field(default=None, description="部门名称")
- department_code: Optional[str] = Field(default=None, description="部门编码")
- parent_department_id: Optional[str] = Field(default=None, description="上级部门ID")
- status: Optional[str] = Field(default=None, description="状态")
- class DepartmentOperationOutSchema(BaseModel):
- """部门操作响应"""
-
- department_id: str = Field(description="部门ID")
- department_name: str = Field(description="部门名称")
- class DepartmentTreeOutSchema(BaseModel):
- """部门树形结构响应"""
-
- model_config = ConfigDict(from_attributes=True)
-
- # id: int = Field(description="主键ID")
- department_id: str = Field(description="部门ID")
- department_name: str = Field(description="部门名称")
- department_code: Optional[str] = Field(default=None, description="部门编码")
- parent_department_id: Optional[str] = Field(default=None, description="上级部门ID")
- status: str = Field(description="状态")
- sort_order: Optional[int] = Field(default=None, description="排序值")
- leader_employee_name: Optional[str] = Field(default=None, description="部门负责人姓名")
- children: List["DepartmentTreeOutSchema"] = Field(default_factory=list, description="子部门列表")
- # 递归更新类型提示
- DepartmentTreeOutSchema.model_rebuild()
- # 部门状态常量
- DEPARTMENT_STATUS = {
- "NORMAL": "正常",
- "DISABLED": "禁用"
- }
- # 部门状态标签类型
- DEPARTMENT_STATUS_TAG_TYPE = {
- "NORMAL": "success",
- "DISABLED": "warning"
- }
- # 部门状态标签
- DEPARTMENT_STATUS_LABEL = {
- "NORMAL": "正常",
- "DISABLED": "禁用"
- }
|