package com.engine.salary.service;
import com.engine.salary.entity.salarysob.dto.SalarySobRangeListDTO;
import com.engine.salary.entity.salarysob.param.SalarySobRangeImportParam;
import com.engine.salary.entity.salarysob.param.SalarySobRangeQueryParam;
import com.engine.salary.entity.salarysob.param.SalarySobRangeSaveParam;
import com.engine.salary.entity.salarysob.po.SalarySobRangePO;
import com.engine.salary.util.page.PageInfo;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.Collection;
import java.util.List;
import java.util.Map;
/**
* 薪资账套人员范围
*
Copyright: Copyright (c) 2022
* Company: 泛微软件
*
* @author qiantao
* @version 1.0
**/
public interface SalarySobRangeService {
/**
* 根据主键id查询薪资账套的人员范围
*
* @param ids 薪资账套的人员范围的主键id
* @return
*/
List listByIds(Collection ids);
/**
* 根据薪资账套ID和类型查询薪资账套的人员范围
*
* @param salarySobId 薪资账套id
* @param includeType 0-从范围中排除/1-关联人员范围
* @return
*/
List listBySalarySobIdAndIncludeType(Long salarySobId, Integer includeType);
/***
* @description 获取所有的薪资账套的人员范围
* @return List
* @author Harryxzy
* @date 2022/10/8 16:12
*/
List listAllSalarySobRange();
/**
* 根据查询条件查询薪资账套的人员范围
*
* @param queryParam 查询条件
* @param includeType 0-从范围中排除/1-关联人员范围
* @return
*/
PageInfo listPageByParamAndIncludeType(SalarySobRangeQueryParam queryParam, Integer includeType);
/**
* 保存
*
* @param saveParam 保存参数
*/
void save(SalarySobRangeSaveParam saveParam);
void edit(SalarySobRangeSaveParam param);
/**
* 根据主键id删除薪资账套的人员范围
*
* @param ids 主键id
*/
void deleteByIds(Collection ids);
/**
* 根据薪资账套id删除薪资账套的人员范围
*
* @param salarySobIds 薪资账套id
*/
void deleteBySalarySobIds(Collection salarySobIds);
/**
* 更新人员状态从status中存到statuses中
* @param item
*/
void updateEmployeeStatuses(SalarySobRangePO item);
/***
* @description 下载人员范围导入模板
* @return XSSFWorkbook
* @author Harryxzy
* @date 2023/1/9 11:34
*/
XSSFWorkbook downloadTemplateRange();
/***
* @description 人员范围导入预览
* @return Map
* @author Harryxzy
* @date 2023/1/9 13:39
*/
Map preview(SalarySobRangeImportParam importParam);
/**
* @description 导入薪资账套人员范围
* @return Map
* @author Harryxzy
* @date 2023/1/9 14:10
*/
Map importData(SalarySobRangeImportParam importParam);
}