package com.muchinfo.mtp3century.service;

import com.muchinfo.mtp3century.utils.AjaxResult;
import com.muchinfo.mtp3common.vo.PageResult;
import com.muchinfo.mtp3pojos.vo.common.OrganSelectResult;
import com.muchinfo.mtp3pojos.vo.query.accounttransaction.AccountTransactionQueryParam;
import com.muchinfo.mtp3pojos.vo.query.accounttransaction.AccountTransactionQueryResult;
import com.muchinfo.mtp3pojos.vo.query.commission.CommissionSheetParam;
import com.muchinfo.mtp3pojos.vo.query.commission.CommissionSheetResult;
import com.muchinfo.mtp3pojos.vo.query.commission.CommissionSheetResultDetail;
import com.muchinfo.mtp3pojos.vo.query.contract.ContractSheetParam;
import com.muchinfo.mtp3pojos.vo.query.contract.ContractSheetResult;
import com.muchinfo.mtp3pojos.vo.query.contract.ContractSheetResultDetail;
import com.muchinfo.mtp3pojos.vo.query.deliveryorder.*;
import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryParam;
import com.muchinfo.mtp3pojos.vo.query.goodstrade.GoodsTradeQueryResult;
import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryParam;
import com.muchinfo.mtp3pojos.vo.query.investorsum.InvestorSumQueryResult;
import com.muchinfo.mtp3pojos.vo.query.other.*;
import com.muchinfo.mtp3pojos.vo.query.position.*;
import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryParam;
import com.muchinfo.mtp3pojos.vo.query.tradesum.TradeSumQueryResult;
import com.muchinfo.mtp3pojos.vo.query.warehouse.*;

import javax.servlet.http.HttpServletRequest;

public interface IQueryService {
    PageResult<CommissionSheetResult> commissionSheetQuery(CommissionSheetParam commissionSheetParam, HttpServletRequest request);

    AjaxResult commissionExport(CommissionSheetParam commissionSheetParam, HttpServletRequest request);

    AjaxResult<CommissionSheetResultDetail> commissionSheetQueryDetail(String orderId, Integer isHis, String tradeDate, HttpServletRequest request);

    PageResult<ContractSheetResult> contractSheetQuery(ContractSheetParam contractSheetParam, HttpServletRequest request);

    AjaxResult contractExport(ContractSheetParam contractSheetParam, HttpServletRequest request);

    AjaxResult<ContractSheetResultDetail> contractSheetQueryDetail(String tradeid, Integer buyorsell, Integer ishis, HttpServletRequest request);

    PageResult<PositionSheetResult> positionSheetQuery(PositionSheetParam positionSheetParam, HttpServletRequest request);

    AjaxResult positionExport(PositionSheetParam positionSheetParam, HttpServletRequest request);

    AjaxResult<PositionSheetResultDetail> positionSheetDetail(String tradeid, Integer buyorsell, Integer ishis, String histradedate, HttpServletRequest request);

    PageResult<PositionSumSheetResult> positionSumSheet(PositionSumSheetParam param, HttpServletRequest request);

    AjaxResult positionSumSheetExport(PositionSumSheetParam param, HttpServletRequest request);

    PageResult<WarehouseCommissionResult> warehouseQuery(WarehouseCommissionParam param, HttpServletRequest request);

    AjaxResult warehouseExport(WarehouseCommissionParam param, HttpServletRequest request);

    AjaxResult<WarehouseCommissionResultDetail> tradeOrderView(Long wrtradeorderid, Integer ishis, HttpServletRequest request);

    PageResult<WarehouseContractResult> queryTradeOrder(WarehouseContractParam param, HttpServletRequest request);

    AjaxResult tradeOrderExport(WarehouseContractParam param, HttpServletRequest request);

    AjaxResult<WarehouseContractDetailParam> tradeTradedView(Long wrtradeorderid, Integer ishis, Integer wrtradetype, HttpServletRequest request);

    AjaxResult<WarehouseInitResult> initWarehouse(HttpServletRequest request);

    PageResult<WarehouseSumResult> warehouseSum(WarehouseSumParam param, HttpServletRequest request);

    PageResult<WarehouseSumDetailResult> summaryQueryDetail(WarehouseSumDetailParam param, HttpServletRequest request);

    PageResult<AccountTransactionQueryResult> accountTransactions(AccountTransactionQueryParam param, HttpServletRequest request);

    AjaxResult accountExport(AccountTransactionQueryParam param, HttpServletRequest request);

    PageResult<InvestorSumQueryResult> queryInvestorSum(InvestorSumQueryParam param, HttpServletRequest request);

    PageResult<GoodsTradeQueryResult> queryGoodsTrade(GoodsTradeQueryParam param, HttpServletRequest request);

    AjaxResult queryGoodsTradeExport(GoodsTradeQueryParam param, HttpServletRequest request);

    AjaxResult<OrganSelectResult> summaryQueryInit(HttpServletRequest request);

    PageResult<TradeSumQueryResult> queryTradeSum(TradeSumQueryParam param, HttpServletRequest request);

    AjaxResult exportTradeSum(TradeSumQueryParam param, HttpServletRequest request);

    PageResult<DeliveryOrderEntrustResult> queryDeliveryOrder(DeliveryOrderEntrustParam param, HttpServletRequest request);

    AjaxResult<DeliveryOrderWrsResult> queryWRStandard(DeliveryOrderWrsParam param, HttpServletRequest request);

    AjaxResult<DeliveryOrderDetailResult> deliveryOrderDetail(String deliveryorderid, String histradedate, HttpServletRequest request);

    PageResult<SettlementDealResult> querySettlementDeal(SettlementDealParam param, HttpServletRequest request);

    AjaxResult<SettlementDealDetailResult> settlementDealDetail(SettlementDealDetailParam param, HttpServletRequest request);

    AjaxResult<ApplyOrderDetailResult> applyOrderDetail(String deliveryorderid, String histradedate, HttpServletRequest request);

    PageResult<OfflineDeliveryResult> queryoffline(OfflineDeliveryParam param, HttpServletRequest request);

    AjaxResult<OfflineDeliveryDetailResult> offlineDetail(String deliveryorderid, HttpServletRequest request);

    AjaxResult offlineclose(String deliveryorderid,Long marketid,  HttpServletRequest request);

    AjaxResult offlinefail(String deliveryorderid, Long marketid, String auditremark, HttpServletRequest request);

    AjaxResult offlineexport(OfflineDeliveryParam param, HttpServletRequest request);

    PageResult<EsignrecordQueryResult> queryesignrecord(EsignrecordQueryParam param, HttpServletRequest request);

    AjaxResult changeStatus(Long recordid,Integer newStatus, HttpServletRequest request);

    PageResult<InvestorQueryResult> queryinvestor(InvestorQueryParam param, HttpServletRequest request);

    PageResult<PositionSumSheetResult> queryinvestortradeposition(PositionSumSheetParam param, HttpServletRequest request);

    AjaxResult sellGoods(String deliveryorderid, Long marketid, HttpServletRequest request);

    PageResult<HoldtransferQueryResult> holdtransferquery(HoldtransferQueryParam param, HttpServletRequest request);
}
