package com.dxhy.jxpt.baseService.ncpInvoice.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.service.IService;
import com.dxhy.api.model.config.UserInfo;
import com.dxhy.api.model.ncp.ncpInvoice.ncpDkInvoice.NcpDkInvoiceLrReq;
import com.dxhy.api.model.ncp.ncpInvoice.ncpDkInvoice.NcpDkInvoiceReqExcel;
import com.dxhy.api.model.ncp.ncpInvoice.ncpXsInvoice.NcpXsQrInvoiceReq;
import com.dxhy.api.model.ncp.ncpInvoice.ncpXsInvoice.NcpXsQrInvoiceReqExcel;
import com.dxhy.api.model.ncp.ncpInvoice.ncpXsInvoice.NcpXsQrInvoiceReqExcelSave;
import com.dxhy.api.model.invoice.TDxRecordInvoice;

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

/**
* @Description 农产品页面功能业务
* @Return
* @Author wangruwei
* @Date 2023/9/21 16:17
**/
public interface NcpInvoiceService extends IService<TDxRecordInvoice> {

    /**
    * @Description 农产品销售
    * @Author wangruwei
    * @Date 2023/10/9 17:05
    **/
    Object ncpXsInvoice(Map<String, Object> pramsMap, int curr, int size);


    /**
    * @Description 农产品销售发票确认
    * @Author wangruwei
    * @Date 2023/10/10 17:53
    **/
    String ncpXsInvoiceQr(NcpXsQrInvoiceReq req, UserInfo userInfo);

    /**
     * @Description 农产品销售发票确认-excel导入
     * @Author wangruwei
     * @Date 2023/10/11 9:29
     **/
    Object ncpXsInvoiceQrExcel(List<NcpXsQrInvoiceReqExcel> reqExcelList, List<String> gfshAll);

    /**
     * @Description 农产品销售发票确认-excel导入-入库
     * @Author wangruwei
     * @Date 2023/10/11 9:29
     **/
    Object ncpXsInvoiceQrExcelSave(List<NcpXsQrInvoiceReqExcelSave> reqExcelList, List<String> gfshAll, UserInfo userInfo);
    /**
     * @Description 农产品3%专票确认-excel导入-展示给前端数据
     * @Author wangruwei
     * @Date 2023/10/11 9:29
     **/
    Object ncpZpInvoiceQrExcel(List<NcpXsQrInvoiceReqExcel> reqExcelList, List<String> gfshAll);

    /**
     * @Description 通过代码号码找到底账表数据
     * @Author wangruwei
     * @Date 2023/10/13 14:55
     **/
    JSONObject selRecordInvoiceByDmHm(Map<String, String> pramsMap);

    /**
     * @Description 代开农产品录入保存
     * @Author wangruwei
     * @Date 2023/10/13 15:44
     **/
    JSONObject dkNcpInvoiceLr(List<NcpDkInvoiceLrReq> list, List<String> gfshAll, UserInfo userInfo);
    /**
     * @Description 代开农产品确认-excel导入-展示给前端数据
     * @Author wangruwei
     * @Date 2023/10/11 9:29
     **/
    Object ncpDkInvoiceExcel(List<NcpDkInvoiceReqExcel> reqExcelList, List<String> gfshAll);

    /**
     * @Description 代开农产品批量修改
     * @Author wangruwei
     * @Date 2023/10/16 11:29
     **/
    Object ncpDkInvoiceBatchUpdate(List<NcpDkInvoiceReqExcel> reqExcelList, List<String> gfshAll, UserInfo userInfo);

    /**
     * 批量删除待开农产品发票
     **/
    Object ncpDkInvoiceBatchDel(List<NcpDkInvoiceReqExcel> reqExcelList, List<String> gfshAll);
    /**
    * @Description 筛选出税号里开通了农产品的
    * @param gfshList
    * @Return void
    * @Author wangruwei
    * @Date 2023/10/16 15:43
    **/
    List<String> getGfshNcp(List<String> gfshList);

    /**
     * @Description 筛选出税号里开通了农产品加计扣除的
     * @param gfshList
     * @Return void
     * @Author wangruwei
     * @Date 2023/10/16 15:43
     **/
    List<String> getGfshNcpJjkc(List<String> gfshList);
}
