using Kean.Application.Command.ViewModels;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Kean.Application.Command.Interfaces
{
///
/// 表示库存命令服务
///
public interface IStockService
{
///
/// 入库
///
/// 库存视图
/// 是否满载
/// 目标位置
/// 失败信息
Task Inbound(Stock stock, bool? full, int? destination);
///
/// 出库
///
/// 库存视图
/// 失败信息
Task Outbound(Stock stock);
///
/// 更新
///
/// 库存视图
/// 失败信息
Task Update(Stock stock);
///
/// 合并
///
/// 库存视图
/// 是否满载
/// 目标位置
/// 失败信息
Task Combine(Stock stock, bool? full, int? destination);
///
/// 盘点
///
/// 库存视图
/// 失败信息
Task Inventory(Stock stock);
////////////////////////
///
/// 扫描入库
///
/// 库存视图
/// 是否满载
/// 目标位置
/// 失败信息
Task<(string Device, Failure Failure)> ScanInbound(Stock stock, bool? full, int? destination);
///
/// 空托盘入库
///
/// 库存视图
/// 是否满载
/// 目标位置
/// 失败信息
Task PalletIn(Stock stock, bool? full, int? destination);
///
/// AGV申请入库
///
/// 库存视图
/// 是否满载
/// 目标位置
/// 失败信息
Task<(string Device, Failure Failure)> AgvApplyIn(
string requestNo,
string barcode,
string postUser,
string targetNo,
IEnumerable batchs);
///
/// 设置极片卷上传结果
///
Task SetRollResult(string batchNo,
string code,
string message,
int @operator);
///
/// 申请入库
///
/// 库存视图
/// 是否满载
/// 目标位置
/// 失败信息
Task<(string Device, Failure Failure)> ApplyIn(Stock stock, bool? full, int? destination);
///
/// 冻结、解冻
///
/// 库存视图
/// 是否满载
/// 目标位置
/// 失败信息
Task<(int barcodeCount, Failure Failure)> SetQcStatus(
int @operator,
string operation,
int? code,
string batch,
DateTime? mfgFrom,
DateTime? mfgTo,
DateTime? inboundTimeFrom,
DateTime? inboundTimeTo,
string barcode,
string supplier,
string[] barcodes);
///
/// 属性更改,包括冻结/解冻
///
Task ChangeStorageProperty(
string requestNo,
Batch batch,
string freezenStatus);
///
/// 批量重新反馈
///
Task BatchReFeedback(int[] id);
}
}