| using System; | 
| using System.Collections.Generic; | 
| using System.Linq; | 
| using System.Reflection; | 
| using System.Text; | 
| using System.Threading.Tasks; | 
| using WIDESEA_Common.LocationEnum; | 
| using WIDESEA_Core; | 
| using WIDESEA_Core.BaseServices; | 
| using WIDESEA_Core.Enums; | 
| using WIDESEA_DTO.Stock; | 
| using WIDESEA_IOutboundRepository; | 
| using WIDESEA_Model.Models; | 
|   | 
| namespace WIDESEA_IOutboundService | 
| { | 
|     public interface IOutboundOrderDetailService : IService<Dt_OutboundOrderDetail> | 
|     { | 
|         IOutboundOrderDetailRepository Repository { get; } | 
|         WebResponseContent GetOutboundOrderDetails(SaveModel saveModel); | 
|         /// <summary> | 
|         /// 锁定出库库存 | 
|         /// </summary> | 
|         /// <param name="orderDetailId">出库单明细Id</param> | 
|         /// <returns></returns> | 
|         WebResponseContent LockOutboundStock(int orderDetailId); | 
|   | 
|         /// <summary> | 
|         /// 分配库存出库逻辑 | 
|         /// </summary> | 
|         /// <param name="outboundOrderDetail">出库单明细</param> | 
|         /// <param name="stockSelectViews">人工选择的库存</param> | 
|         /// <returns></returns> | 
|         (List<Dt_StockInfo>, Dt_OutboundOrderDetail, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) AssignStockOutbound(Dt_OutboundOrderDetail outboundOrderDetail, List<StockSelectViewDTO> stockSelectViews); | 
|   | 
|         /// <summary> | 
|         /// 分配库存出库逻辑 | 
|         /// </summary> | 
|         /// <param name="outboundOrderDetails"></param> | 
|         /// <returns></returns> | 
|         (List<Dt_StockInfo>, List<Dt_OutboundOrderDetail>, List<Dt_OutStockLockInfo>, List<Dt_LocationInfo>) AssignStockOutbound(List<Dt_OutboundOrderDetail> outboundOrderDetails); | 
|   | 
|         /// <summary> | 
|         /// 锁定出库库存 | 
|         /// </summary> | 
|         /// <param name="orderDetailId">出库单明细Id</param> | 
|         /// <param name="stockSelectViews">人工选择的库存</param> | 
|         /// <returns></returns> | 
|         WebResponseContent LockOutboundStock(int orderDetailId, List<StockSelectViewDTO> stockSelectViews); | 
|   | 
|         /// <summary> | 
|         /// 锁定出库库存(多明细) | 
|         /// </summary> | 
|         /// <param name="keys"></param> | 
|         /// <returns></returns> | 
|         WebResponseContent LockOutboundStock(int[] keys); | 
|   | 
|         /// <summary> | 
|         /// 锁定出库库存(修改数据) | 
|         /// </summary> | 
|         /// <param name="stockInfos">库存明细集合</param> | 
|         /// <param name="outboundOrderDetails">出库单明细集合</param> | 
|         /// <param name="outStockLockInfos">出库锁定明细集合</param> | 
|         /// <param name="locationInfos">货位结合</param> | 
|         /// <param name="locationStatus">货位状态修改的值</param> | 
|         /// <param name="tasks">任务信息</param> | 
|         /// <returns></returns> | 
|         WebResponseContent LockOutboundStockDataUpdate(List<Dt_StockInfo> stockInfos, List<Dt_OutboundOrderDetail> outboundOrderDetails, List<Dt_OutStockLockInfo> outStockLockInfos, List<Dt_LocationInfo> locationInfos, LocationStatusEnum locationStatus = LocationStatusEnum.Lock, List<Dt_Task>? tasks = null); | 
|   | 
|         /// <summary> | 
|         /// 撤销锁定出库库存 | 
|         /// </summary> | 
|         /// <param name="orderDetailId">出库单明细主键</param> | 
|         /// <returns></returns> | 
|         WebResponseContent RevokeLockOutboundStock(int orderDetailId); | 
|     } | 
| } |