package com.wms.service.business;

import com.wms.entity.app.request.TaskInRequest;
import com.wms.entity.app.request.TaskOutRequest;
import com.wms.entity.table.Task;

import java.math.BigDecimal;

/**
 * WMS任务服务接口
 */
public interface IWmsTaskService {
    /**
     * 创建载具入库任务
     * @param taskInRequest 入库请求
     * @return 结果
     */
    String genEmptyInTask(TaskInRequest taskInRequest);

    /**
     * 创建物料入库任务
     * @param taskInRequest 入库请求
     * @param sameVehicleTask 相同载具任务
     * @return 结果
     */
    String genGoodsInTask(TaskInRequest taskInRequest, Task sameVehicleTask);

    /**
     * 创建载具或库位出库任务
     * @param taskOutRequest 出库请求
     * @return 结果
     */
    String genVehicleLocationOutTask(TaskOutRequest taskOutRequest);

    /**
     * 创建物料出库任务
     * @param taskOutRequest 出库请求
     * @return 结果
     */
    String genGoodsOutTask(TaskOutRequest taskOutRequest);

    BigDecimal callGoods(String goodsId, BigDecimal needNum, String workStation);

    BigDecimal callStocks(String goodsId, BigDecimal needNum, String workStation);
}
