package com.tofly.feesapi.bjgl.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.tofly.feesapi.bjgl.entity.YhCbkxx;
import com.tofly.feesapi.bjgl.entity.YhCbkxx2;
import com.tofly.feesapi.bjgl.entity.YhDaCbkxxSelect;
import com.tofly.feesapi.bjgl.entity.dto.YhCbkxxFilter;
import com.tofly.feesapi.bjgl.entity.dto.YhCbkxxSync;
import com.tofly.feesapi.bjgl.entity.vo.YhCbkxxSelect;
import com.tofly.feesapi.bjgl.entity.vo.YhCbkxxSelect2;
import com.tofly.feesapi.bjgl.entity.vo.YhCbkxxSelectSbfl;
import com.tofly.feesapi.common.core.dto.PageDto;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface YhCbkxxMapper extends BaseMapper<YhCbkxx> {
    List<YhCbkxxSelect> getList(@Param("yhbh") String yhbh);

    //YhCbkxxView getViewById(@Param("yhbh") String yhbh);

    PageDto<YhCbkxxSelect2> getPage(PageDto pageDto, @Param("filter") YhCbkxxFilter filter, @Param("sblbs") List<String> sblbs);

    //根据用户编号，表卡号，查询水表档案信息
    YhCbkxx2 SelectYhcbkxx(String yhbh, String cbkh);

    //换表查看-根据用户编号，表卡号，查询水表档案信息
    YhDaCbkxxSelect SelectYhdaSbda(String yhbh, String cbkh);

    int selectExistYhbh(String yhbh, String cbkh);

    Page<YhDaCbkxxSelect> getYhdaSbdaPage(@Param("page") Page<YhDaCbkxxSelect> page,
                                          String ssgs, String sscbpq, String sscbb, String searchText,
                                          Date startDate, Date endDate
    );

    int getMaxCbxh(@Param("sscbb") String sscbb);

    int getNextCbxh(@Param("sscbb") String sscbb, @Param("cbxh") Integer cbxh);

    int getCbkxxSbbh(@Param("yhbh") String yhbh, @Param("sbbh") String sbbh);

    YhCbkxx getUp(@Param("sscbb") String sscbb, @Param("cbxh") int cbxh);

    YhCbkxx getDown(@Param("sscbb") String sscbb, @Param("cbxh") int cbxh);

    void lockTable();

    List<YhCbkxxSync> getBySbsccj(@Param("sbsccj") String sbsccj);

    List<YhCbkxxSelectSbfl> sblbtj(@Param("ysxz") String ysxz, @Param("sbkj") String sbkj);

    boolean updatecbxh(@Param("cbkids") List<String> cbkids);
}
