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.

123 lines
4.0 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 IInStoreBusiness
{
/// <summary>
/// 保存物料信息
/// </summary>
/// <param name="baseMaterial"></param>
/// <returns></returns>
Task<int> SaveMaterialInfo(BaseMaterialDTO baseMaterial);
/// <summary>
/// 判断是否有无空库位
/// </summary>
/// <param name="baseMaterialInfo">物料信息</param>
/// <returns></returns>
Task<List<BaseLocationInfo>> IsOrNotEmptyLocation(BaseMaterialDTO baseMaterialDTO);
/// <summary>
/// 筛选最佳入库库位
/// </summary>
/// <param name="baseLocationInfos"></param>
/// <param name="baseMaterialInfo"></param>
/// <returns></returns>
BaseLocationInfo FiltrateLocation(List<BaseLocationInfo> baseLocationInfos);
/// <summary>
/// 创建入库任务
/// </summary>
/// <param name="baseLocationInfos"></param>
/// <param name="baseMaterialDTO"></param>
/// <returns></returns>
Task<TaskDTO> CreateInStoreTask(BaseLocationInfo baseLocationInfo, BaseMaterialDTO baseMaterialDTO, OperationType operationType);
/// <summary>
/// 创建待入库
/// </summary>
/// <param name="prepareInstoreInfo"></param>
/// <returns></returns>
Task<int> CreatePrepareInStore(TaskDTO taskDTO);
/// <summary>
/// 修改库位状态
/// </summary>
/// <param name="baseLocationInfo"></param>
/// <param name="locationStatus"></param>
/// <returns></returns>
Task<bool> updateLocationStatus(LocationStatus locationStatus,TaskDTO task);
/// <summary>
/// 查询当前库位状态是否锁库
/// </summary>
/// <param name="locationArea"></param>
/// <param name="locationcode"></param>
/// <returns></returns>
Task<bool> selectLocationStatus(string locationArea, string locationcode);
/// <summary>
/// 修改入库任务状态
/// </summary>
/// <param name="prepareInstoreInfo"></param>
/// <returns></returns>
Task<bool> UpdateInStoreTaskStatus(TaskDTO taskDTO);
/// <summary>
/// 修改库位状态
/// </summary>
/// <param name="locationArea"></param>
/// <param name="locationcode"></param>
/// <returns></returns>
Task<bool> updateLocationState(string locationArea, string locationcode,LocationStatus locationStatus);
/// <summary>
/// 修改待入库记录状态
/// </summary>
/// <param name="taskDTO"></param>
/// <returns></returns>
Task<bool> UpdatePrePareInStoreStatus(TaskDTO taskDTO);
/// <summary>
/// 创建入库记录
/// </summary>
/// <param name="recordInStore"></param>
/// <returns></returns>
Task<int> SaveInStoreRecord(TaskDTO taskDTO);
/// <summary>
/// 更新库存
/// </summary>
/// <param name="baseMaterialInfo"></param>
Task<int> UpdateStock(BaseMaterialDTO baseMaterial);
/// <summary>
/// 记录物料与库位绑定记录
/// </summary>
/// <param name="taskDTO"></param>
/// <returns></returns>
Task<int> SaveMaterialLocation(TaskDTO taskDTO);
/// <summary>
/// 保存入库操作指令记录
/// </summary>
/// <param name="recordDirectiveOperation"></param>
/// <returns></returns>
Task<int> SaveInStoreDirecticeOperation(RecordDirectiveOperation recordDirectiveOperation);
Task<bool> updateLocationStateInfo(BaseLocationInfo location);
}
}