package com.changhu.mapper;

import com.changhu.common.pojo.vo.SelectNodeVo;
import com.changhu.pojo.dto.SecurityUnitUseStatisticsDTO;
import com.changhu.pojo.dto.SecurityUserRosterDTO;
import com.changhu.pojo.dto.ServiceProjectDTO;
import com.changhu.pojo.params.EnterprisesUnitOrServiceProjectType;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 20252
 * @createTime 2024/11/15 下午2:27
 * @desc OpenApiMapper...
 */
@Mapper
public interface OpenApiMapper {

    /**
     * 根据单位获取企事业单位
     *
     * @param code  代码
     * @param level 等级
     * @return 企事业单位
     */
    List<SelectNodeVo<Long>> getEnterprisesUnit(@Param("code") String code,
                                                @Param("level") Integer level);

    /**
     * 获取企事业单位下的服务项目
     *
     * @param enterprisesUnitId 企事业单位id
     * @return 服务项目列表
     */
    List<ServiceProjectDTO> getServiceProjectByEnterprisesUnitId(@Param("enterprisesUnitId") Long enterprisesUnitId);

    /**
     * 保安单位使用情况统计
     *
     * @param code  代码
     * @param level 等级
     * @return 结果
     */
    List<SecurityUnitUseStatisticsDTO> securityUnitUseStatistics(@Param("code") String code,
                                                                 @Param("level") Integer level);

    /**
     * 获取服务人员花名册
     */
    List<SecurityUserRosterDTO> securityUserRoster(@Param("id") Long id,
                                                   @Param("type") EnterprisesUnitOrServiceProjectType type);

    /**
     * 单位下的服务人员花名册
     */
    List<SecurityUserRosterDTO> unitSecurityUserRoster(String code, Integer level);
}
