package com.ruoyi.ccb.service;

import com.ruoyi.ccb.domain.*;
import com.ruoyi.ccb.domain.basic.Page;

/**
 * CCB-HTTP接口
 *
 * @author s
 */
public interface CcbHttpService {

    /**
     * 查询保管凭证号
     *
     * @param voucher 报文
     * @return 结果
     */
    VoucherR takeVoucherIsExist(Voucher voucher);

    /**
     * 保管凭证号详情
     *
     * @param voucher 报文
     * @return 结果
     */
    VoucherDetailR takeVoucherDetail(Voucher voucher);

    /**
     * 同步出质
     *
     * @param pledge 报文
     * @return 结果
     */
    PledgeR cargoPledge(Pledge pledge);

    /**
     * 同步提货
     *
     * @param pledge 报文
     * @return 结果
     */
    PledgeR cargoPledgeOut(Pledge pledge);

    /**
     * 入库请求
     *
     * @param inOutCargo 报文
     * @return 结果
     */
    InOutCargoR inCargoReq(InOutCargo inOutCargo);

    /**
     * 出库请求
     *
     * @param inOutCargo 报文
     * @return 结果
     */
    InOutCargoR outCargoReq(InOutCargo inOutCargo);

    /**
     * 同步用户信息
     *
     * @param syncOrg 报文
     * @return 结果
     */
    Page syncOrg(SyncOrg syncOrg);

    /**
     * 生成仓单编号
     *
     * @param pledge 报文
     * @return 结果
     */
    PledgeR generateWrNumber(Pledge pledge);

    /**
     * 作废仓单编号指令
     *
     * @param pledge 报文
     * @return 结果
     */
    PledgeR cancelWrNumber(Pledge pledge);


    /**
     * 查询提单号
     *
     * @param mblno 报文
     * @return 结果
     */
    MblnoR blNumberIsExist(Mblno mblno);

    /**
     * 提单号详情
     * @param mblno
     * @return
     */
    MblnoDetailR blNumberDetail(Mblno mblno);
}
