| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- # -*- coding: utf-8 -*-
- # @Author : YY
- from typing import List, Literal, Optional
- from ruoyi_common.constant import UserConstants
- from ruoyi_common.exception import ServiceException
- from ruoyi_system.domain.entity import SysPost
- from ruoyi_system.domain.po import SysPostPo
- from ruoyi_system.mapper.sys_post import SysPostMapper
- from ruoyi_system.mapper.sys_user_post import SysUserPostMapper
- class SysPostService:
- @classmethod
- def select_post_list(cls, query:SysPost) -> List[SysPost]:
- """
- 查询岗位信息列表
-
- Args:
- query(SysPost): 包含查询条件的传输对象
-
- Returns:
- List[SysPost]: 岗位信息列表
- """
- return SysPostMapper.select_post_list(query)
- @classmethod
- def select_post_all(cls) -> List[SysPost]:
- """
- 查询所有岗位
-
- Returns:
- List[SysPost]: 所有岗位信息列表
- """
- return SysPostMapper.select_post_all()
- @classmethod
- def select_post_by_id(cls, id:int) -> Optional[SysPost]:
- """
- 通过岗位ID,查询岗位信息
-
- Args:
- id(int): 岗位ID
-
- Returns:
- Optional[SysPost]: 岗位信息
- """
- return SysPostMapper.select_post_by_id(id)
- @classmethod
- def select_post_list_by_user_id(cls, user_id:int) -> List[int]:
- """
- 根据用户ID,查询岗位选择框
-
- Args:
- user_id(int): 用户ID
-
- Returns:
- List[int]: 岗位ID列表
- """
- return SysPostMapper.select_post_list_by_user_id(user_id)
- @classmethod
- def check_post_name_unique(cls, body:SysPost) -> Literal["0","1"]:
- """
- 校验岗位名称是否唯一
-
- Args:
- body(SysPost): 包含岗位名称的传输对象
-
- Returns:
- str: 唯一或不唯一, 0-唯一, 1-不唯一
- """
- post_id = -1 if body.post_id is None else body.post_id
- eo:SysPost = SysPostMapper.check_post_name_unique(body.post_name)
- if eo is not None and eo.post_id != post_id:
- return UserConstants.NOT_UNIQUE
- return UserConstants.UNIQUE
- @classmethod
- def check_post_code_unique(cls, body:SysPost) -> Literal["0","1"]:
- """
- 校验岗位编码是否唯一
-
- Args:
- body(SysPost): 包含岗位编码的传输对象
-
- Returns:
- str: 唯一或不唯一, 0-唯一, 1-不唯一
- """
- post_code = -1 if body.post_code is None else body.post_code
- eo:SysPostPo = SysPostMapper.check_post_code_unique(body.post_code)
- if eo is not None and eo.post_code != post_code:
- return UserConstants.NOT_UNIQUE
- return UserConstants.UNIQUE
- @classmethod
- def count_user_post_by_id(cls, id:int) -> int:
- """
- 根据岗位ID,查询岗位使用数量
-
- Args:
- id(int): 岗位ID
-
- Returns:
- int: 岗位使用数量
- """
- return SysUserPostMapper.count_user_post_by_id(id)
- @classmethod
- def delete_post_by_id(cls, id:int) -> int:
- """
- 删除岗位信息
-
- Args:
- id(int): 岗位ID
-
- Returns:
- int: 删除的数量
- """
- return SysPostMapper.delete_post_by_id(id)
- @classmethod
- def delete_post_by_ids(cls, ids:List[int]) -> int:
- """
- 批量删除岗位信息
-
- Args:
- ids(List[int]): 岗位ID列表
-
- Returns:
- int: 删除的数量
- """
- for id in ids:
- po:SysPostPo = cls.select_post_by_id(id)
- if cls.count_user_post_by_id(id) > 0:
- raise ServiceException(f"{po.post_name}已分配,不能删除")
- return SysPostMapper.delete_post_by_ids(ids)
- @classmethod
- def insert_post(cls, body:SysPost) -> int:
- """
- 新增岗位信息
-
- Args:
- body(SysPost): 包含岗位信息的传输对象
-
- Returns:
- int: 新增的岗位ID
- """
- return SysPostMapper.insert_post(body)
- @classmethod
- def update_post(cls, body:SysPost) -> int:
- """
- 修改岗位信息
-
- Args:
- body(SysPost): 包含岗位信息的传输对象
-
- Returns:
- int: 修改的数量
- """
- return SysPostMapper.update_post(body)
|