using SqlSugar.Extensions; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Common.StockEnum; using WIDESEA_Core.BaseRepository; using WIDESEA_Core.BaseServices; using WIDESEA_IOutboundRepository; using WIDESEA_IOutboundService; using WIDESEA_Model.Models; namespace WIDESEA_OutboundService { public partial class OutProStockInfoService : ServiceBase, IOutProStockInfoService { private readonly IUnitOfWorkManage _unitOfWorkManage; public IOutProStockInfoRepository Repository => BaseDal; public OutProStockInfoService(IOutProStockInfoRepository BaseDal,IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) { _unitOfWorkManage = unitOfWorkManage; } public Dt_OutProStockInfo GetOutStockLockInfo(Dt_ProOutOrder proOutOrder, Dt_ProOutOrderDetail proOutOrderDetail, Dt_ProStockInfo proStockInfo, float assignQty, int? taskNum = null) { Dt_OutProStockInfo outProStockInfo = new Dt_OutProStockInfo() { OrderNo = proOutOrder.ProOutOrderNo, OrderDetailId = proOutOrderDetail.Id, OrderType = proOutOrder.ProOrderType, BatchNo = proOutOrderDetail.PLot, SaleOrder = proOutOrderDetail.SaleOrder, Customer = proOutOrderDetail.Customer, PCode = proOutOrderDetail.PCode, PVer = proOutOrderDetail.PVer, PLot = proStockInfo.proStockInfoDetails.FirstOrDefault()?.LotNumber ?? "", DateCode = proStockInfo.proStockInfoDetails.FirstOrDefault()?.DateCode ?? "", StockId = proStockInfo.Id, OrderQuantity = proOutOrderDetail.QtyPcs, OriginalQuantity = proStockInfo.proStockInfoDetails.Sum(x => x.StockPcsQty), AssignQuantity = assignQty, LocationCode = proStockInfo.LocationCode, PalletCode = proStockInfo.PalletCode, Unit = proOutOrderDetail.Unit, TaskNum = taskNum, Status = taskNum == null ? OutLockStockStatusEnum.已分配.ObjToInt() : OutLockStockStatusEnum.出库中.ObjToInt() }; return outProStockInfo; } public Dt_OutProStockInfo GetOutStockLockInfo(Dt_MesRworkOutboundOrder mesOutboundOrder, Dt_ProStockInfo outStock, float assignQuantity, int? taskNum = null) { Dt_OutProStockInfo outProStockInfo = new Dt_OutProStockInfo() { OrderNo = mesOutboundOrder.OrderNo, OrderDetailId = mesOutboundOrder.Id, OrderType = mesOutboundOrder.OrderType, BatchNo = outStock.proStockInfoDetails.FirstOrDefault()?.LotNumber, SaleOrder = mesOutboundOrder.SaleOrder, Customer = "", PCode = mesOutboundOrder.ProductCode, PVer = mesOutboundOrder.ProductVersion, PLot = outStock.proStockInfoDetails.FirstOrDefault()?.LotNumber, DateCode = mesOutboundOrder.DateCode, StockId = outStock.Id, OrderQuantity = mesOutboundOrder.RequiredQuantity, OriginalQuantity = outStock.proStockInfoDetails.Sum(x => x.StockPcsQty), AssignQuantity = assignQuantity, LocationCode = outStock.LocationCode, PalletCode = outStock.PalletCode, Unit = "PCS", TaskNum = taskNum, Status = taskNum == null ? OutLockStockStatusEnum.已分配.ObjToInt() : OutLockStockStatusEnum.出库中.ObjToInt() }; return outProStockInfo; } public List GetByOrderDetailId(int orderDetailId, OutLockStockStatusEnum? outStockStatus) { return BaseDal.QueryData(x => x.OrderDetailId == orderDetailId && outStockStatus == null ? true : x.Status == outStockStatus.ObjToInt()); } } }