using AUCMA.STORE.Entity.DAO;
using AUCMA.STORE.Entity.DTO;
using AUCMA.STORE.Entity.Enums;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace AUCMA.STORE.Business.Interface
{
///
/// 入库业务逻辑接口
///
public interface IInStoreBusiness
{
///
/// 保存物料信息
///
///
///
Task SaveMaterialInfo(BaseMaterialDTO baseMaterial);
///
/// 判断是否有无空库位
///
/// 物料信息
///
Task> IsOrNotEmptyLocation(BaseMaterialDTO baseMaterialDTO);
///
/// 筛选最佳入库库位
///
///
///
///
BaseLocationInfo FiltrateLocation(List baseLocationInfos);
///
/// 创建入库任务
///
///
///
///
Task CreateInStoreTask(BaseLocationInfo baseLocationInfo, BaseMaterialDTO baseMaterialDTO, OperationType operationType);
///
/// 创建待入库
///
///
///
Task CreatePrepareInStore(TaskDTO taskDTO);
///
/// 修改库位状态
///
///
///
///
Task updateLocationStatus(LocationStatus locationStatus,TaskDTO task);
///
/// 查询当前库位状态是否锁库
///
///
///
///
Task selectLocationStatus(string locationArea, string locationcode);
///
/// 修改入库任务状态
///
///
///
Task UpdateInStoreTaskStatus(TaskDTO taskDTO);
///
/// 修改库位状态
///
///
///
///
Task updateLocationState(string locationArea, string locationcode,LocationStatus locationStatus);
///
/// 修改待入库记录状态
///
///
///
Task UpdatePrePareInStoreStatus(TaskDTO taskDTO);
///
/// 创建入库记录
///
///
///
Task SaveInStoreRecord(TaskDTO taskDTO);
///
/// 更新库存
///
///
Task UpdateStock(BaseMaterialDTO baseMaterial);
///
/// 记录物料与库位绑定记录
///
///
///
Task SaveMaterialLocation(TaskDTO taskDTO);
///
/// 保存入库操作指令记录
///
///
///
Task SaveInStoreDirecticeOperation(RecordDirectiveOperation recordDirectiveOperation);
Task updateLocationStateInfo(BaseLocationInfo location);
}
}