package com.ruoyi.dpc.service;

import com.ruoyi.dpc.domain.DpcEmployee;
import com.ruoyi.dpc.domain.dto.DpcEmployeeAddDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeEditDTO;
import com.ruoyi.dpc.domain.dto.DpcEmployeeQueryDTO;
import com.ruoyi.dpc.domain.vo.DpcEmployeeVO;

import java.util.List;

/**
 * 员工信息 服务层
 *
 * @author ruoyi
 * @date 2026-01-28
 */
public interface IDpcEmployeeService {

    /**
     * 查询员工列表
     *
     * @param queryDTO 查询条件
     * @return 员工VO集合
     */
    List<DpcEmployeeVO> selectEmployeeList(DpcEmployeeQueryDTO queryDTO);

    /**
     * 查询员工列表（用于导出）
     *
     * @param queryDTO 查询条件
     * @return 员工实体集合
     */
    List<DpcEmployee> selectEmployeeListForExport(DpcEmployeeQueryDTO queryDTO);

    /**
     * 查询员工详情
     *
     * @param employeeId 员工ID
     * @return 员工VO
     */
    DpcEmployeeVO selectEmployeeById(Long employeeId);

    /**
     * 新增员工
     *
     * @param addDTO 新增DTO
     * @return 结果
     */
    int insertEmployee(DpcEmployeeAddDTO addDTO);

    /**
     * 修改员工
     *
     * @param editDTO 编辑DTO
     * @return 结果
     */
    int updateEmployee(DpcEmployeeEditDTO editDTO);

    /**
     * 批量删除员工
     *
     * @param employeeIds 需要删除的员工ID
     * @return 结果
     */
    int deleteEmployeeByIds(Long[] employeeIds);

    /**
     * 导入员工数据
     *
     * @param addDTOList    新增DTO列表
     * @param isUpdateSupport 是否更新支持
     * @return 结果
     */
    String importEmployee(List<DpcEmployeeAddDTO> addDTOList, Boolean isUpdateSupport);
}
