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<Dt_OutProStockInfo, IOutProStockInfoRepository>, 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 = proOutOrderDetail.PLot,
|
DateCode = proOutOrderDetail.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;
|
}
|
}
|
}
|