package com.tofly.feesapi.yhgl.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.feesapi.common.core.ResultRespone;
import com.tofly.feesapi.mxcx.entity.dto.YhwjFilter;
import com.tofly.feesapi.mxcx.entity.vo.YhNdjtslSelect;

import com.tofly.feesapi.bjgl.entity.vo.YhCbkxxSelect;
import com.tofly.feesapi.common.core.dto.PageDto;
import com.tofly.feesapi.common.core.vo.PageResult;
import com.tofly.feesapi.mxcx.entity.vo.YhwjSelect;
import com.tofly.feesapi.yhgl.entity.YhKhjbxx;
import com.tofly.feesapi.yhgl.entity.dto.*;
import com.tofly.feesapi.yhgl.entity.vo.*;
import com.tofly.feesapi.znbgl.entity.dto.ZnbYhdaFilter;
import com.tofly.feesapi.znbgl.entity.vo.ZnbYhdaSelect;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 用户基本信息
 */
public interface YhKhjbxxService extends IService<YhKhjbxx> {

    PageResult<YhkhjbxxSelect> getPage(PageDto pageDto, YhkhjbxxFilter query);

    PageResult<YhkhjbxxFfgxzSelect> getFfgxPage(PageDto pageDto, YhkhjbxxFilter filter);

    PageResult<ZnbYhdaSelect> getZnbDaPage(PageDto pageDto, ZnbYhdaFilter query);

    List<YhkhjbxxSelect2> getList(YhkhjbxxFilter filter);

    String getYhbh(String cbpqbm);

    boolean save(YhKhjbxxInsert insert);

    boolean update(YhKhjbxxUpdate update);

    YhKhjbxxView getViewById(String yhbh);

    void batchSave(List<YhKhjbxxInsert> userList);

    List<YhCbkxxSelect> getCbkxxById(String yhbh);

    boolean disable(String yhbh);

    boolean enable(String yhbh);

    boolean delById(String yhbh);

    boolean delByIds(List<String> asList);

    boolean updateSscbb(YhKhjbxxSscbbUpdate update);

    PageResult<YhkhjbxxSelect2> getPage2(PageDto pageDto, YhkhjbxxFilter filter);

    PageResult<YhkhjbxxSelect2> getUserInfoPage(PageDto pageDto, YhkhjbxxFilter filter);

    List<YhKhjbxx> getListByYhbh(List<String> yhbhs);

    PageDto<YhkhjbxxSelect> getPage_cbbwfp(PageDto page, @Param("filter") YhkhjbxxCbbWfpFilter filter);

    PageDto<YhkhjbxxSelect> getPage_cbbyfp(PageDto page, @Param("filter") YhkhjbxxCbbWfpFilter filter);

    PageResult<YhNdjtslSelect> getNdjtslxx(PageDto pageDto, String yhbh);

    List<YhNdjtslSelect> getNdjtslxxlist(String yhbh);

    void saveLog(YhKhjbxx yhKhjbxx, YhKhjbxx oldYhKhjbxx, String logCzlx);

    PageResult<YhwjSelect> getwjPage(PageDto pageDto, YhwjFilter filter);

    List<YhkhjbxxXzyhSelect> xzyhtj(YhkhjbxxXzyhFilter filter);

    /** 通过客户编码查询大户中的主户 */
    YhKhjbxx selectByKhbm(String khbm);

    /** 批量导入建档 */
    ResultRespone pldr(MultipartFile file, ImportDto importDto) throws Exception;

    /** 用户编号查重 */
    boolean yhbhcc(String khbh);
}
