package com.ruoyi.web.controller.plugin;

import com.ruoyi.ccb.domain.*;
import com.ruoyi.ccb.domain.basic.Page;
import com.ruoyi.ccb.service.CcbHttpService;
import lombok.AllArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * CCB接口
 *
 * @author s
 */
@AllArgsConstructor
@RestController
@RequestMapping("/ccb")
public class CcbController {

//    private final CcbHttpService ccbHttpService;
    @Autowired
    private CcbHttpService ccbHttpService;

    /**
     * 查询保管凭证号
     *
     * @param voucher 报文
     * @return 结果
     */
    @PostMapping("/takeVoucherIsExist")
    public VoucherR takeVoucherIsExist(@RequestBody Voucher voucher) {
        return ccbHttpService.takeVoucherIsExist(voucher);
    }

    /**
     * 保管凭证号详情
     *
     * @param voucher 报文
     * @return 结果
     */
    @PostMapping("/takeVoucherDetail")
    public VoucherDetailR takeVoucherDetail(@RequestBody Voucher voucher) {
        return ccbHttpService.takeVoucherDetail(voucher);
    }

    /**
     * 同步出质
     *
     * @param pledge 报文
     * @return 结果
     */
    @PostMapping("/cargoPledge")
    public PledgeR cargoPledge(@RequestBody Pledge pledge) {
        return ccbHttpService.cargoPledge(pledge);
    }

    /**
     * 同步提货
     *
     * @param pledge 报文
     * @return 结果
     */
    @PostMapping("/cargoPledgeOut")
    public PledgeR cargoPledgeOut(@RequestBody Pledge pledge) {
        return ccbHttpService.cargoPledgeOut(pledge);
    }

    /**
     * 入库请求
     *
     * @param inOutCargo 报文
     * @return 结果
     */
    @PostMapping("/inCargoReq")
    public InOutCargoR inCargoReq(@RequestBody InOutCargo inOutCargo) {
        return ccbHttpService.inCargoReq(inOutCargo);
    }

    /**
     * 出库请求
     *
     * @param inOutCargo 报文
     * @return 结果
     */
    @PostMapping("/outCargoReq")
    public InOutCargoR outCargoReq(@RequestBody InOutCargo inOutCargo) {
        return ccbHttpService.outCargoReq(inOutCargo);
    }

    /**
     * 同步用户信息
     *
     * @param syncOrg 报文
     * @return 结果
     */
    @PostMapping("/syncOrg")
    public Page syncOrg(@RequestBody SyncOrg syncOrg) {
        return ccbHttpService.syncOrg(syncOrg);
    }

    /**
     * 生成仓单编号
     *
     * @param pledge 报文
     * @return 结果
     */
    @PostMapping("/generateWrNumber")
    public PledgeR generateWrNumber(@RequestBody Pledge pledge) {
        return ccbHttpService.generateWrNumber(pledge);
    }

    /**
     * 作废仓单编号指令
     *
     * @param pledge 报文
     * @return 结果
     */
    @PostMapping("/cancelWrNumber")
    public PledgeR cancelWrNumber(@RequestBody Pledge pledge) {
        return ccbHttpService.cancelWrNumber(pledge);
    }

    /**
     * 提单号
     *
     * @param mblno 报文
     * @return 结果
     */
    @PostMapping("/blNumberIsExist")
    public MblnoR blNumberIsExist(@RequestBody Mblno mblno) {
        return ccbHttpService.blNumberIsExist(mblno);
    }

    /**
     * 提单号详情
     *
     * @param mblno 报文
     * @return 结果
     */
    @PostMapping("/blNumberDetile")
    public MblnoDetailR blNumberDetail(@RequestBody Mblno mblno) {
        return ccbHttpService.blNumberDetail(mblno);
    }

}
