package com.engine.salary.mapper.datacollection;

import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionListDTO;
import com.engine.salary.entity.datacollection.dto.SpecialAddDeductionRecordDTO;
import com.engine.salary.entity.datacollection.param.SpecialAddDeductionQueryParam;
import com.engine.salary.entity.datacollection.po.SpecialAddDeductionPO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface SpecialAddDeductionMapper {
    int insertSelective(SpecialAddDeductionPO record);

    int updateByPrimaryKeySelective(SpecialAddDeductionPO record);

    SpecialAddDeductionPO getById(Long id);

    int updateBatchSelective(@Param("list") List<SpecialAddDeductionPO> list);

    int batchInsert(@Param("list") List<SpecialAddDeductionPO> list);

    List<SpecialAddDeductionRecordDTO> listDtoByParam(@Param("param") SpecialAddDeductionQueryParam param);

    List<SpecialAddDeductionPO> listByTaxAgentIds(@Param("taxAgentIds") List<Long> taxAgentIds);

    List<SpecialAddDeductionListDTO> listByParam(@Param("param") SpecialAddDeductionQueryParam param);

    int deleteByIds(@Param("ids")List<Long> id);


    List<SpecialAddDeductionPO> getByEmployeeIds(@Param("employeeIds") List<Long> employeeIds,
                                                 @Param("taxAgentId") Long taxAgentId);

    List<SpecialAddDeductionPO> listAll();

    List<SpecialAddDeductionPO> listSome(SpecialAddDeductionPO specialAddDeduction);
}