package com.wms_main.service.business;

import com.wms_main.model.bo.wms.StockConfirmEntity;
import com.wms_main.model.po.TAppStock;

import java.util.List;
import java.util.Map;

/**
 * 库存数据服务
 */
public interface IStockDataService {
    /**
     * 更新库存信息
     * @param stockConfirm 库存确认信息
     * @param standId 站台号
     * @param userName 用户名
     * @param inventoryId 盘点任务号
     */
    void updateStockInfo(StockConfirmEntity stockConfirm, String standId, String userName, String reason, String inventoryId);

    /**
     * 查询库存预警值
     * @return 库存预警值
     */
    int getWarningQty();

    /**
     * 判断当前载具是否是空载具
     * @param vehicleId 载具号
     * @return 是空载具
     */
    boolean isEmptyVehicle(String vehicleId);

    /**
     * 找到目标料号最先入库的库存，剩余可用数量大于0---实现
     * @param goodsId 目标
     * @param allStocks 所有库存
     * @return 库存编号
     */
    String getFirstInStock(String goodsId, List<TAppStock> allStocks);

    /**
     * 获取可以继续放料的map
     * @param goodsIds 物料列表
     * @return 结果map
     */
    Map<String, Map<String, Integer>> getCanPutGoodsMap(List<String> goodsIds);
}
