using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Common.StockEnum; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Enums; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_IOutboundRepository; using WIDESEAWCS_IOutboundService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_OutboundService { public partial class OutStockLockInfoService : ServiceBase, IOutStockLockInfoService { public IOutStockLockInfoRepository Repository => BaseDal; public OutStockLockInfoService(IOutStockLockInfoRepository BaseDal) : base(BaseDal) { } public List GetOutStockLockInfos(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outboundOrderDetail, List outStocks, int? taskNum = null) { List outStockLockInfos = new List(); foreach (var item in outStocks) { Dt_OutStockLockInfo outStockLockInfo = new Dt_OutStockLockInfo() { PalletCode = item.PalletCode, AssignQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.OutboundQuantity), MaterielCode = outboundOrderDetail.MaterielCode, BatchNo = outboundOrderDetail.BatchNo, LocationCode = item.LocationCode, MaterielName = outboundOrderDetail.MaterielName, OrderDetailId = outboundOrderDetail.Id, OrderNo = outboundOrder.OrderNo, OrderType = outboundOrder.OrderType, OriginalQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.StockQuantity), Status = taskNum == null ? OutStockStatus.已分配.ObjToInt() : OutStockStatus.出库中.ObjToInt(), StockId = item.Id, TaskNum = taskNum }; outStockLockInfos.Add(outStockLockInfo); } return outStockLockInfos; } public List GetByOrderDetailId(int orderDetailId) { return BaseDal.QueryData(x => x.OrderDetailId == orderDetailId); } public List GetByOrderDetailId(int orderDetailId, OutStockStatus outStockStatus) { return BaseDal.QueryData(x => x.OrderDetailId == orderDetailId && x.Status == outStockStatus.ObjToInt()); } } }