package com.microservices.pms.enterprise.mapper;

import com.microservices.pms.enterprise.domain.PmsEnterprise;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 项目管理企业Mapper接口
 * 
 * @author otto
 * @date 2023-10-10
 */
@Mapper
public interface PmsEnterpriseMapper
{
    /**
     * 查询项目管理企业
     * 
     * @param id 项目管理企业主键
     * @return 项目管理企业
     */
    public PmsEnterprise selectPmsEnterpriseById(Long id);

    /**
     * 查询项目管理企业列表
     *
     * @param pmsEnterprise 项目管理企业
     * @param deptIdList
     * @return 项目管理企业集合
     */
    public List<PmsEnterprise> selectPmsEnterpriseList(@Param("pmsEnterprise") PmsEnterprise pmsEnterprise, @Param("deptIdList") List<Long> deptIdList);

    /**
     * 新增项目管理企业
     * 
     * @param pmsEnterprise 项目管理企业
     * @return 结果
     */
    public int insertPmsEnterprise(PmsEnterprise pmsEnterprise);

    /**
     * 修改项目管理企业
     * 
     * @param pmsEnterprise 项目管理企业
     * @return 结果
     */
    public int updatePmsEnterprise(PmsEnterprise pmsEnterprise);

    /**
     * 删除项目管理企业
     * 
     * @param id 项目管理企业主键
     * @return 结果
     */
    public int deletePmsEnterpriseById(Long id);

    /**
     * 批量删除项目管理企业
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePmsEnterpriseByIds(Long[] ids);

    /**
     * 根据标识查找企业
     * @param identifier 企业标识
     * @return 企业
     */
    PmsEnterprise selectPmsEnterpriseByIdentifier(String identifier);

    /**
     * 根据名称查找企业
     *
     * @param enterpriseName 企业名称
     * @return 企业对象
     */
    PmsEnterprise selectPmsEnterpriseByName(String enterpriseName);

    /**
     * 根据组织Id查找企业
     *
     * @param deptId 组织Id
     * @return 企业信息
     */
    PmsEnterprise selectPmsEnterpriseByDeptId(Long deptId);

    /**
     * 根据Gitlink组织Id查找企业
     *
     * @param gitlinkOrgId Gitlink组织Id
     * @return 企业信息
     */
    PmsEnterprise selectPmsEnterpriseByGitlinkOrgId(@Param("gitlinkOrgId") Long gitlinkOrgId);
}
