package com.engine.salary.mapper.salarybill;

import com.engine.salary.entity.salaryBill.dto.SalaryTemplateListDTO;
import com.engine.salary.entity.salaryBill.param.SalaryTemplateQueryParam;
import com.engine.salary.entity.salaryBill.po.SalaryTemplatePO;
import org.apache.ibatis.annotations.Param;

import java.util.Collection;
import java.util.List;

/**
 * @Description: 工资单模板设置
 */

public interface SalaryTemplateMapper {
    /**
     * 查询工资单模板列表
     * @param param
     * @return
     */
    List<SalaryTemplateListDTO> list(@Param("param") SalaryTemplateQueryParam param);

    /**
     * 分页查询工资单模板列表
     * @param page
     * @param param
     * @param tenantKey
     * @return
     */
//    IPage<SalaryTemplateListDTO> list(Page<SalaryTemplateListDTO> page, @Param("param") SalaryTemplateQueryParam param, @Param("tenantKey") String tenantKey);

    /**
     * 根据主键id获取工资单模板
     * @param id
     * @return
     */
    SalaryTemplatePO getById(@Param("id") Long id);

    /**
     * 批量删除工资单模板
     * @param ids
    */
    void deleteByIds(@Param("ids") Collection<Long> ids);

    /**
     * 根据id更新数据
     * @param salaryTemplateNew
     */
    void updateIgnoreNull(SalaryTemplatePO salaryTemplateNew);

    /**
     * 根据现有字段查询
     * @param params
     * @return
     */
    List<SalaryTemplatePO> listSome(SalaryTemplatePO params);

    /**
     * 新增
     * @param salaryTemplatePO
     */
    void insertIgnoreNull(SalaryTemplatePO salaryTemplatePO);

    /**
     * 查询默认模板
     */
    List<SalaryTemplatePO> listDefaultTemplates(@Param("ids")List<Long> ids);

    /**
     * 通过账套修改默认使用状态
     * @param po
     */
    void updateUsetypeBySalarySobId(SalaryTemplatePO po);

    List<SalaryTemplateListDTO> listDTO(SalaryTemplatePO param);
}