package com.jjt.emp.mapper;

import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jjt.emp.domain.TwinEmp;
import com.jjt.emp.domain.TwinEmpDetail;
import org.apache.ibatis.annotations.Options;

/**
 * 员工排班Mapper接口
 *
 * @author wukai
 * @date 2025-01-18
 */
public interface TwinEmpMapper extends BaseMapper<TwinEmp>
{
    /**
     * 查询员工排班
     *
     * @param empId 员工排班主键
     * @return 员工排班
     */
    public TwinEmp selectTwinEmpByEmpId(Long empId);

    /**
     * 查询员工排班列表
     *
     * @param twinEmp 员工排班
     * @return 员工排班集合
     */
    public List<TwinEmp> selectTwinEmpList(TwinEmp twinEmp);

    /**
     * 新增员工排班
     *
     * @param twinEmp 员工排班
     * @return 结果
     */
    @Options(useGeneratedKeys = true, keyProperty = "empId")
    public int insertTwinEmp(TwinEmp twinEmp);

    /**
     * 修改员工排班
     *
     * @param twinEmp 员工排班
     * @return 结果
     */
    public int updateTwinEmp(TwinEmp twinEmp);

    /**
     * 删除员工排班
     *
     * @param empId 员工排班主键
     * @return 结果
     */
    public int deleteTwinEmpByEmpId(Long empId);

    /**
     * 批量删除员工排班
     *
     * @param empIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTwinEmpByEmpIds(Long[] empIds);

    /**
     * 批量删除员工排班明细
     *
     * @param empIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTwinEmpDetailByEmpIds(Long[] empIds);

    /**
     * 批量新增员工排班明细
     *
     * @param twinEmpDetailList 员工排班明细列表
     * @return 结果
     */
    public int batchTwinEmpDetail(List<TwinEmpDetail> twinEmpDetailList);


    /**
     * 通过员工排班主键删除员工排班明细信息
     *
     * @param empId 员工排班ID
     * @return 结果
     */
    public int deleteTwinEmpDetailByEmpId(Long empId);
}
