package com.engine.salary.mapper.siaccount;

import com.engine.salary.entity.siaccount.param.InsuranceAccountBatchParam;
import com.engine.salary.entity.siaccount.po.InsuranceAccountBatchPO;
import com.engine.salary.entity.siarchives.po.InsuranceArchivesOtherSchemePO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author weaver_cl
 * 
 * @Date 2022/4/11
 * @Version V1.0
 **/
public interface InsuranceAccountBatchMapper {

    /**
     * 查询福利台账列表
     * @param queryParam
     * @return
     */
    List<InsuranceAccountBatchPO> list(@Param("param")InsuranceAccountBatchParam queryParam);

    /**
     * 根据账单月份查询
     * @param billMonth
     * @return
     */
    InsuranceAccountBatchPO getByBillMonth(@Param("billMonth") String billMonth,@Param("paymentOrganization") Long paymentOrganization);

    /**
     * 插入
     * @param insuranceAccountBatchPO
     */
    void insert(InsuranceAccountBatchPO insuranceAccountBatchPO);



    /**
     * 根据主键删除
     * @param id
     */
    void deleteById(@Param("id") Long id);


    /**
     * 更新
     * @param pos
     */
    void updateById(InsuranceAccountBatchPO pos);

    InsuranceAccountBatchPO getById(@Param("id") Long id);


    /**
     *
     * @param billMonth
     * @param billStatus
     * @return
     */
    InsuranceAccountBatchPO getByBillStatus(@Param("billMonth") String billMonth,@Param("billStatus")Integer billStatus, @Param("paymentOrganization") Long paymentOrganization);


    List<InsuranceAccountBatchPO> listByTimeRange(@Param("minDate") String minDate, @Param("maxDate") String maxDate);

    List<InsuranceAccountBatchPO> listAll();

    int batchUpdate(@Param("collection") List<InsuranceAccountBatchPO> pos);
}
