package com.youchain.businessdata.service;

import com.youchain.annotation.Log;
import com.youchain.basicdata.domain.Point;
import com.youchain.businessdata.domain.Inventory;
import com.youchain.businessdata.domain.Task;
import com.youchain.businessdata.inputJson.*;
import io.swagger.annotations.ApiOperation;

import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutionException;

/**
 * MLS接口
 */
public interface MlsService {

    /**
     * 获取ToKen
     * @return
     */
    String getToKen();

    /**
     * 获取送货单JSON
     * @return
     */
    String getOrderJson(OrderInfo orderInfo);

    /**
     * 获取送货单信息
     * @return
     */
    void getOrderInfo(String resultJson);


    /**
     * 获取MO票JSON
     * @return
     */
    String getMoJson(MoInfo moInfo);

    /**
     * 获取MO票信息
     * @return 返回出库单头
     */
    String getMoInfo(String resultJson);
    MoInfo getMoInfo(Date date);

    /**
     * 获取叫料指令
     * @return
     */
    void getIssueInfo(IssueInfo issueInfo);
    /**
     * 光电直接叫料
     * @return
     */
    void getIssueInfo(List<String> itemCodes, Point endPoint);

    /**
     * 回传MO票
     * @return
     */
    String returnMo(ReturnMoInfo returnMoInfo);

    /**
     * 叫料结果回传
     * @return
     */
    String returnIssue(ReturnIssueInfo returnIssueInfo);

    Task getCreateTasks(Point endPoint, Inventory inv, String reqCode);
}
