package com.tofly.feesapi.bjgl.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tofly.feesapi.bjgl.entity.YhCbkxx;
import com.tofly.feesapi.bjgl.entity.dto.*;
import com.tofly.feesapi.bjgl.entity.vo.*;
import com.tofly.feesapi.common.core.dto.PageDto;
import com.tofly.feesapi.common.core.vo.PageResult;

import com.tofly.feesapi.yhgl.entity.dto.YhKhjbxxInsert;

import java.math.BigDecimal;
import java.util.List;

/**
 * 用户表计信息
 *
 */
public interface YhCbkxxService extends IService<YhCbkxx> {

    List<YhCbkxxSelect> getList(String yhbh);

    YhCbkxxView getViewById(String yhbh);

    boolean delByIds(List<String> ids);

    boolean delById(String id);

    YhCbkxx save( YhKhjbxxInsert insert, String yhbh);

    boolean update(YhCbkxxUpdate update);

    boolean disable(String yhbh);

    boolean enable(String yhbh);

    boolean updateCbxh(YhCbkxxCbxhUpdate update);

    PageResult<YhCbkxxSelect2> getPage(PageDto pageDto, YhCbkxxFilter filter, List<String> sblbs);

    boolean updateSj(YhCbkxxSjUpdate update);

    boolean cancelCbxh(YhCbkxxCbxhCancel cancel);

    boolean sxydCbxh(YhCbkxxCbxhSxyd sxyd);

    boolean zxtzCbxh(YhCbkxxCbxhZytz zytz);

    void updateSblc(String yhbh, String sblcbm);

    /**
     * 查询抄表卡信息
     */
    List<YhCbkxx> getListByAfterCbkid(String sblb, String sbsccj, String afterCbkid, int limit);

    long count(String sblb, String sbsccj);

    void lockTable();

    void updateLjsl(String cbkid, BigDecimal ljsl);

    void updateSyje(String cbkid, BigDecimal syje);

    void znbSync();

    List<YhCbkxxSync> getBySbsccj(String sbsccj);

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

    void saveLog(YhCbkxx cbkxx, YhCbkxx oldCbkxx, String logCzlx);

    long getCountByYhbh(String yhbh);

    List<YhCbkxx> getListCbkxxByYhbh(List<String> yhbhs);
}
