package com.yifu.cloud.plus.v1.csp.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistration;
import com.yifu.cloud.plus.v1.csp.entity.EmployeeRegistrationLeave;
import com.yifu.cloud.plus.v1.csp.vo.*;
import com.yifu.cloud.plus.v1.yifu.archives.entity.TEmployeeProjectBelongDept;
import com.yifu.cloud.plus.v1.yifu.archives.vo.TEmployeeProjectBelongDeptSearchCspVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 入离职登记表
 *
 * @author huych
 * @date 2025-02-25 14:48:11
 */
@Mapper
public interface EmployeeRegistrationMapper extends BaseMapper<EmployeeRegistration> {
    /**
     * 入离职登记表简单分页查询
     * @param employeeRegistration 入离职登记表
     * @return
     */
    IPage<EmployeeRegistration> getEmployeeRegistrationPage(Page<EmployeeRegistration> page, @Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	List<EmployeeRegistration> getHrConfirmIdcardList(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	List<EmployeeRegistration> getEmployeeRegistrationList(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	long selectExportCount(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	List<EmployeeRegistrationExportVo> selectExportList(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	List<EmployeeRegistrationHrExportVo> selectHrExportList(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	List<EmployeeRegistrationHrPreExportVo> selectHrPreExportList(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	// 获取已接收的入离职申请，同步所属部门到项目档案里
	List<TEmployeeProjectBelongDept> getZeroRegistrationByIdCard(@Param("searchCspVo") TEmployeeProjectBelongDeptSearchCspVo searchCspVo);

	// 将数据处理为已处理
	int updateTwoRegistrationByIdCard(@Param("searchCspVo") TEmployeeProjectBelongDeptSearchCspVo searchCspVo);

	List<EmployeeRegistrationHrAutoExportVo> selectHrAutoExportList(@Param("employeeRegistration") EmployeeRegistrationSearchVo employeeRegistration);

	List<EmployeeRegistration> selectRegistrationListBySure(@Param("idList") List<String> idList);

	// 查询是否有处理中的离职信息，如果有，不允许再次登记入离职
	int getEmployeeRegistrationLeavingCount(@Param("idCard") String idCard, @Param("deptNo") String deptNo);


}
