You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

129 lines
4.3 KiB
C#

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
{
/// <summary>
/// 出库业务逻辑
/// </summary>
public interface IOutStoreBusiness
{
/// <summary>
/// 根据箱体码获取物料规格信息
/// </summary>
/// <param name="boxCode"></param>
/// <returns></returns>
Task<BaseMaterialInfo> GetMaterialInfo(string boxCode);
/// <summary>
/// 判断堆垛机状态
/// </summary>
/// <param name="baseMaterialInfo"></param>
/// <returns></returns>
List<PilerStatusDTO> EstimatePilerStatus();
/// <summary>
/// 判断物料所在库位
/// </summary>
/// <param name="baseMaterialInfo"></param>
/// <returns></returns>
Task<List<BaseLocationInfo>> EstimateMaterialLocation(BaseMaterialInfo baseMaterialInfo);
/// <summary>
/// 选取最优库位
/// </summary>
/// <param name="pilerStatusDTOs"></param>
/// <param name="baseMaterialStore"></param>
/// <returns></returns>
BaseLocationInfo FiltrateLocation(List<PilerStatusDTO> pilerStatusDTOs, List<BaseLocationInfo> baseLocationInfos);
/// <summary>
/// 筛选最佳库位
/// </summary>
/// <param name="baseLocationInfos"></param>
/// <returns></returns>
BaseLocationInfo FiltrateBestlocation(List<BaseLocationInfo> baseLocationInfos);
/// <summary>
/// 创建出库任务
/// </summary>
/// <param name="baseLocationInfo"></param>
/// <param name="pilerStatusDTOs"></param>
/// <param name="baseMaterialInfo"></param>
/// <returns></returns>
Task<TaskDTO> CreateOutStoreTask(BaseLocationInfo baseLocationInfo, List<PilerStatusDTO> pilerStatusDTOs, BaseMaterialInfo baseMaterialInfo);
/// <summary>
/// 创建出库任务
/// </summary>
/// <param name="baseLocationInfo"></param>
/// <param name="baseMaterialInfo"></param>
/// <returns></returns>
Task<TaskDTO> CreateTask(BaseLocationInfo baseLocationInfo, BaseMaterialInfo baseMaterialInfo, OperationType operationType);
/// <summary>
/// 创建待出库
/// </summary>
/// <param name="taskDTO"></param>
/// <returns></returns>
Task<int> CreatePrepareOutStore(TaskDTO taskDTO);
/// <summary>
/// 修改库位状态
/// </summary>
/// <param name="baseLocationInfo"></param>
/// <param name="locationStatus"></param>
/// <returns></returns>
Task<bool> updateLocationStatus(TaskDTO task, LocationStatus locationStatus);
/// <summary>
/// 修改出库任务状态
/// </summary>
/// <param name="prepareOutStoreInfo"></param>
/// <returns></returns>
Task<bool> UpdateOutStoreStatus(TaskDTO taskDTO);
/// <summary>
/// 修改待出库记录状态
/// </summary>
/// <param name="taskDTO"></param>
/// <returns></returns>
Task<bool> UpdatePrePareOutStoreStatus(TaskDTO taskDTO);
/// <summary>
/// 创建出库记录
/// </summary>
/// <param name="recordOutStore"></param>
/// <returns></returns>
Task<int> SaveOutStoreRecord(TaskDTO taskDTO);
/// <summary>
/// 清楚物料与库位绑定记录
/// </summary>
/// <param name="taskDTO"></param>
/// <returns></returns>
Task<bool> DeleteMaterialLocation(TaskDTO taskDTO);
/// <summary>
/// 更新库存
/// </summary>
/// <param name="baseMaterialInfo"></param>
Task<int> UpdateStock(BaseMaterialInfo baseMaterialInfo);
/// <summary>
/// 保存出库操作指令记录
/// </summary>
/// <param name="recordDirectiveOperation"></param>
/// <returns></returns>
Task<int> SaveOutStoreDirecticeOperation(RecordDirectiveOperation recordDirectiveOperation);
bool SaveBarCode(string P_Bar_Code, string P_Device_Code);
}
}