package com.engine.salary.mapper.salarybill;

import com.engine.salary.entity.salaryBill.dto.SalarySendListDTO;
import com.engine.salary.entity.salaryBill.param.SalarySendQueryParam;
import com.engine.salary.entity.salaryBill.po.SalarySendPO;
import org.apache.ibatis.annotations.Param;

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

/**
 * @Description: 工资单发放
 * @Author: wangxiangzhong
 * @Date: 2021-12-11 11:28
 */

public interface SalarySendMapper {

    /**
     * 查询工资单发放列表
     * @param param
     * @return
     */
    List<SalarySendListDTO> list(@Param("param") SalarySendQueryParam param);

    /**
     * 分页查询工资单发放列表
     * @param page
     * @param param
     * @param tenantKey
     * @return
     */
//    IPage<SalarySendListDTO> list(Page<SalarySendListDTO> page, @Param("param") SalarySendQueryParam param, @Param("tenantKey") String tenantKey);

    /**
     * 根据主键id获取工资单发放
     * @param id
     * @return
     */
    SalarySendPO getById(@Param("id") Long id);


    /**
     * 根据id更新
     * @param po
     */
    void updateIgnoreNull(SalarySendPO po);

    List<SalarySendPO> listSomeWithCondition(@Param("param")Map<String, Object> condition);

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

    void insertIgnoreNull(SalarySendPO salarySend);

    void batchHandleSendStatusHistory();

    void batchHandleSalaryAcctTypeHistory();

    void deleteBySalaryAcctRecordIds(@Param("salaryAcctRecordId") Collection<Long> ids);

    List<SalarySendPO> getNeedSendListBySalarySobIds(@Param("salarySobIds")List<Long> salarySobIds);

    List<SalarySendPO> getByIds(@Param("ids") List<Long> salarySendId);
}