package com.dxhy.sign.service.elec;

import java.io.File;
import java.util.List;

import com.alibaba.fastjson.JSONObject;
import com.dxhy.common.vo.UserInfo;
import com.dxhy.sign.model.ElecInvoiceRespVO;
import com.dxhy.sign.model.ElecQueryReqVO;

/**
 * @author peipei.li
 * @date 2019-04-29 电票管理相关service
 */
public interface SignElecInvoiceService {

    /**
     * 电票查询
     *
     * @param reqVO
     *            请求参数
     * @return 返回结果 @ 异常
     */
    String listPageElecInvoice(ElecQueryReqVO reqVO);

    /**
     * 电票上传
     *
     * @param pdffiles
     *            zip
     * @param ofdfiles
     *            保存路径
     * @param userInfo
     *            用户信息
     * @param businessName
     *            业务单元编码
     * @param businessCode
     *            业务单元名称
     * @param pdfFileName
     *            文件名
     * @param tempPath
     *            文件路径
     * @return 返回结果
     * @throws Exception
     *             异常
     */
    JSONObject saveUploadElecFile(List<File> pdffiles, List<File> ofdfiles, UserInfo userInfo, String pdfFileName,
        String tempPath, String businessName, String businessCode) throws Exception;

    /**
     * 电子发票手工录入保存
     *
     * @param reqVO
     *            请求参数
     * @param userInfo
     *            用户信息
     * @return 返回结果 @ 异常
     */
    JSONObject saveManualElec(ElecInvoiceRespVO reqVO, UserInfo userInfo);

    /**
     * 根据uuid获取电票图片地址
     *
     * @param uuid
     *            唯一标识
     * @param userInfo
     *            用户信息
     * @param localPath
     *            本地路径
     * @return 返回结果
     * @throws Exception
     *             异常
     */
    String getImgByUuid(String uuid, UserInfo userInfo, String localPath) throws Exception;

    /**
     * 修改名
     *
     * @param path
     *            路径
     * @param newname
     *            新文件名
     * @return 返回结果
     */
    boolean reName(String path, String newname);

    /**
     * 电票删除
     *
     * @param scanIds
     *            扫描id
     * @param dbName
     *            数据源
     * @return 返回结果
     */
    boolean deleteElec(String scanIds, String dbName);

    /**
     * 获取文件名
     *
     * @param filename
     *            文件名
     * @return 返回结果
     */
    String getOriginalFilename(String filename);

    /**
     * 创建文件夹
     *
     * @param tempPath
     *            路径
     */
    void createFileDir(String tempPath);

    /**
     * 查找文件
     *
     * @param scanId
     *            扫描id
     * @param imgOrFile
     *            文件
     * @param userInfo
     *            用户信息
     * @param localPath
     *            本地路径
     * @return 返回结果
     * @throws Exception
     *             异常
     */
    Object getFileByScanId(String scanId, String imgOrFile, UserInfo userInfo, String localPath) throws Exception;
    /**
     * 签收查询发票删除
     *
     * @param scanIds
     *            扫描id
     * @param dbName
     *            数据源
     * @return 返回结果
     */
    boolean deleteElecByID(String scanIds, String dbName);
}
