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.sys.notify.SysNotify;
import cn.superdesk.uniorder.dao.entity.thirdpart.jd.AccountingUnifiedSupplierOrderJd;
import cn.superdesk.uniorder.dto.param.thirdpart.jd.*;
import cn.superdesk.uniorder.dto.vo.thirdpart.jd.AccountingUnifiedSupplierOrderJdDetailStatisticsVo;
import cn.superdesk.uniorder.dto.vo.thirdpart.jd.AccountingUnifiedSupplierOrderJdListItemVo;
import cn.superdesk.uniorder.dto.vo.thirdpart.jd.AccountingUnifiedSupplierOrderJdUpperLevelsStatisticsVo;
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-12 11:29:24
 * @UpdateUser: linjinyu
 * @UpdateDate: 2021-10-12 11:29:24
 * @UpdateRemark: 修改内容
 * @Version: 1.0
 */
public interface DubboAccountingUnifiedSupplierOrderJdService {

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

    @Deprecated
    void addObj(AccountingUnifiedSupplierOrderJdParam param);

    @Deprecated
    void updateObj(AccountingUnifiedSupplierOrderJdParam param);

    @Deprecated
    void deleteObj(Long id);

    @Deprecated
    AccountingUnifiedSupplierOrderJd findById(Long id);

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

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

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


    void addAccountingUnifiedSupplierOrderJd(AccountingUnifiedSupplierOrderJdParam param);

    void updateAccountingUnifiedSupplierOrderJd(AccountingUnifiedSupplierOrderJdParam param);

    void deleteAccountingUnifiedSupplierOrderJd(Long id);

    AccountingUnifiedSupplierOrderJd findAccountingUnifiedSupplierOrderJdById(Long id);

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

    R<List<AccountingUnifiedSupplierOrderJdListItemVo>> pageQueryGenericParam(
            AccountingUnifiedSupplierOrderJdQueryCriteria criteria,
            LoginSysUser loginSysUser);

    List<AccountingUnifiedSupplierOrderJdListItemVo> queryGenericParam(
            AccountingUnifiedSupplierOrderJdQueryCriteria queryCriteria,
            LoginSysUser loginSysUser);

    AccountingUnifiedSupplierOrderJdDetailStatisticsVo pageQueryHeadGenericParam(
            AccountingUnifiedSupplierOrderJdQueryCriteria queryCriteria,
            LoginSysUser loginSysUser);

    AccountingUnifiedSupplierOrderJdUpperLevelsStatisticsVo statisticsQuantityDimOrderNormalOrException(
            AccountingUnifiedSupplierOrderJdQueryCriteria queryCriteria,
            LoginSysUser loginSysUser);

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

    String exportExcelJdImportRecord(AccountingUnifiedSupplierOrderJdQueryCriteria queryCriteria, LoginSysUser loginSysUser);

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


    /****************************************** excel import start ******************************************/

    SysNotify opExcelImportFullVersion(SysQuartzScheduleTaskStatementOfAccountJdRunExcelImportForm form, LoginSysUser loginSysUser);

    SysNotify opExcelImportLiteVersion(SysQuartzScheduleTaskStatementOfAccountJdRunExcelImportForm form, LoginSysUser loginSysUser);

    void saveOrUpdate4ThirdPartJdReconciliationScheduleFullVersionExcelRow(AccountingUnifiedSupplierOrderJdImportFullVersionExcelRow excelRow, LoginSysUser loginSysUser);

    void saveOrUpdate4ThirdPartJdReconciliationScheduleFullVersionExcelRowList(List<AccountingUnifiedSupplierOrderJdImportFullVersionExcelRow> excelRowList, LoginSysUser loginSysUser);

    void saveOrUpdate4ThirdPartJdReconciliationScheduleLiteVersionExcelRow(AccountingUnifiedSupplierOrderJdImportLiteVersionExcelRow excelRow, LoginSysUser loginSysUser);

    void saveOrUpdate4ThirdPartJdReconciliationScheduleLiteVersionExcelRowList(List<AccountingUnifiedSupplierOrderJdImportLiteVersionExcelRow> excelRowList, LoginSysUser loginSysUser);

    /****************************************** excel import   end ******************************************/


}
