package com.tax.file.service.api;

import com.tax.file.model.TkFile;
import com.tax.file.model.TkFileExample;
import com.tax.file.model.TkTaxUser;
import com.tax.file.model.invoice.FileStatusModel;
import com.yxcheng.token.common.service.BaseServiceI;

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

public interface TkFileService extends BaseServiceI<TkFileExample,TkFile> {


    String queryLastInvDate(TkTaxUser taxUser);

    List<TkFile> queryPastData(TkTaxUser taxUser);

    void saveApplyFileList(String uuidFlag, TkTaxUser taxUser, Map<String, Date> applyDateMap);

    public List<TkFile> queryApplyFileList(TkTaxUser taxUser);

    public void updateApplyInfoByPrimaryKey(TkFile tkFile);

    List<TkFile> queryWaitDownFileList(TkTaxUser taxUser);

    List<TkFile> queryOverMonthFileList(TkTaxUser taxUser);

    public List<Map<String, Object>> countWaitDownFileList(TkTaxUser taxUser);

    public Map<String, Map<String, TkFile>> queryWaitDownFileMap(TkTaxUser taxUser);

    public void saveErrorFileInfo(TkFile tkFile, String errorType);

    List<TkFile> queryResetFileList(TkTaxUser taxUser);

    void updateApplyFileList(List<TkFile> applyFileList);

    List<TkFile> queryExitPastData(TkTaxUser taxUser);

    void deleteFileInfo(TkFile tkFile);

    List<Map<String, Object>> countWaitApplyFileList(TkTaxUser taxUser);

    FileStatusModel getFileStatusModel(String timeFlag, TkTaxUser taxUser);

    public void updateApplyResetFileList(String timeFlag, TkTaxUser taxUser, String overMonth);
}