package cn.superdesk.uniorder.dubbo.facade.thirdpart.jd;

import cn.superdesk.uniorder.common.rest.response.R;
import cn.superdesk.uniorder.common.security.dto.LoginSysUser;
import cn.superdesk.uniorder.dao.entity.thirdpart.jd.AccountingUnifiedSupplierOrderJdCheckUpReport;
import cn.superdesk.uniorder.dto.param.thirdpart.jd.AccountingUnifiedSupplierOrderJdCheckUpReportParam;
import cn.superdesk.uniorder.dto.param.thirdpart.jd.AccountingUnifiedSupplierOrderJdCheckUpReportQueryCriteria;
import cn.superdesk.uniorder.dto.vo.thirdpart.jd.*;
import com.github.pagehelper.PageInfo;

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

/**
 * @Description: 京东对账单中的订单 算是临时 sheet eg 深圳市侨城汇网络科技有限公司-2021年8月1日集采账单.xlsx
 * @Author: linjinyu
 * @Email linjinyu@avic-s.com
 * @CreateDate: 2021-10-14 17:04:08
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021-10-14 17:04:08
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface DubboAccountingUnifiedSupplierOrderJdCheckUpReportService {

    /****************************************** extends BaseService 部分 start ******************************************/

    @Deprecated
    void addObj(AccountingUnifiedSupplierOrderJdCheckUpReportParam param);

    @Deprecated
    void updateObj(AccountingUnifiedSupplierOrderJdCheckUpReportParam param);

    @Deprecated
    void deleteObj(Long id);

    @Deprecated
    AccountingUnifiedSupplierOrderJdCheckUpReport findById(Long id);

    @Deprecated
    PageInfo<AccountingUnifiedSupplierOrderJdCheckUpReport> findByPaging(Map<String, Object> conditions, Integer pageNun, Integer pageSize);

    @Deprecated
    List<AccountingUnifiedSupplierOrderJdCheckUpReport> findAll(Map<String, Object> queryMap);

    /****************************************** extends BaseService 部分   end ******************************************/


    void addAccountingUnifiedSupplierOrderJdCheckUpReport(AccountingUnifiedSupplierOrderJdCheckUpReportParam param);

    void updateAccountingUnifiedSupplierOrderJdCheckUpReport(AccountingUnifiedSupplierOrderJdCheckUpReportParam param);

    void deleteAccountingUnifiedSupplierOrderJdCheckUpReport(Long id);

    AccountingUnifiedSupplierOrderJdCheckUpReport findAccountingUnifiedSupplierOrderJdCheckUpReportById(Long id);

    R<List<AccountingUnifiedSupplierOrderJdCheckUpReport>> pageQuery(Map<String, Object> conditions, int pageNun, int pageSize);

    R<List<AccountingUnifiedSupplierOrderJdCheckUpReportListItemVo>> pageQueryGenericParam(
            AccountingUnifiedSupplierOrderJdCheckUpReportQueryCriteria queryCriteria,
            LoginSysUser loginSysUser);

    R<List<AccountingUnifiedSupplierOrderJdCheckUpReportListItemVoWoof>> pageQueryGenericWoof(
            AccountingUnifiedSupplierOrderJdCheckUpReportQueryCriteria queryCriteria,
            LoginSysUser loginSysUser);

    AccountingUnifiedSupplierOrderJdCheckUpReportDetailStatisticsVo pageQueryHeadGenericParam(
            AccountingUnifiedSupplierOrderJdCheckUpReportQueryCriteria queryCriteria,
            LoginSysUser loginSysUser);

    List<AccountingUnifiedSupplierOrderJdCheckUpReportListItemVo> queryGenericParam(
            AccountingUnifiedSupplierOrderJdCheckUpReportQueryCriteria criteria,
            LoginSysUser loginSysUser);

    /****************************************** 检查 start ******************************************/

    R<String> checkUpAndReportDimOrder(
            SysQuartzScheduleTaskStatementOfAccountJdListItemVo listItemVo,
            AccountingUnifiedSupplierOrderJdListItemVo entity);

    AccountingUnifiedSupplierOrderJdCheckUpReportSnapshotStruct readSnapshotJson(String batchId, String jdOrderSn);

    /****************************************** 检查   end ******************************************/

    /****************************************** export excel start ******************************************/

    String exportExcelJdCheckUpReportFullVersion(
            AccountingUnifiedSupplierOrderJdCheckUpReportQueryCriteria criteria,
            LoginSysUser loginSysUser);

    String exportExcelJdCheckUpReportLiteVersion(
            AccountingUnifiedSupplierOrderJdCheckUpReportQueryCriteria criteria,
            LoginSysUser loginSysUser);

    /****************************************** export excel   end ******************************************/
}
