using SqlSugar;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using WIDESEA_Core.BaseServices;
|
using WIDESEA_Core.Enums;
|
using WIDESEA_Core.Helper;
|
using WIDESEA_IOutboundRepository;
|
using WIDESEA_Model.Models;
|
|
namespace WIDESEA_IOutboundService
|
{
|
public partial class OutStockLockInfoService : ServiceBase<Dt_OutStockLockInfo, IOutStockLockInfoRepository>, IOutStockLockInfoService
|
{
|
public IOutStockLockInfoRepository Repository => BaseDal;
|
|
public OutStockLockInfoService(IOutStockLockInfoRepository BaseDal) : base(BaseDal)
|
{
|
}
|
/// <summary>
|
/// 添加出库详情
|
/// </summary>
|
/// <param name="outboundOrder"></param>
|
/// <param name="outboundOrderDetail"></param>
|
/// <param name="outStocks"></param>
|
/// <param name="taskNum"></param>
|
/// <returns></returns>
|
public List<Dt_OutStockLockInfo> GetOutStockLockInfos(Dt_OutboundOrder outboundOrder, Dt_OutboundOrderDetail outboundOrderDetail, List<Dt_StockInfo> outStocks, int? taskNum = null)
|
{
|
List<Dt_OutStockLockInfo> outStockLockInfos = new List<Dt_OutStockLockInfo>();
|
var OutStockLockInfos = GetByOrderDetailId(outboundOrderDetail.Id);
|
foreach (var item in outStocks)
|
{
|
Dt_OutStockLockInfo outStockLockInfo = OutStockLockInfos.FirstOrDefault(x => x.StockId == item.Id && x.OrderDetailId == outboundOrderDetail.Id);
|
if (outStockLockInfo == null)
|
{
|
outStockLockInfo = new Dt_OutStockLockInfo()
|
{
|
PalletCode = item.PalletCode,
|
AssignQuantity = item.Details.Where(x => x.MaterielCode == outboundOrderDetail.MaterielCode).Sum(x => x.OutboundQuantity),
|
MaterielCode = outboundOrderDetail.MaterielCode,
|
BatchNo = item.Details.Select(x => x.BatchNo).FirstOrDefault(),
|
//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
|
};
|
}
|
outStockLockInfo.Status = taskNum == null ? OutStockStatus.已分配.ObjToInt() : OutStockStatus.出库中.ObjToInt();
|
outStockLockInfos.Add(outStockLockInfo);
|
}
|
|
return outStockLockInfos;
|
}
|
/// <summary>
|
/// 获取出库详情
|
/// </summary>
|
/// <param name="orderDetailId"></param>
|
/// <returns></returns>
|
public List<Dt_OutStockLockInfo> GetByOrderDetailId(int orderDetailId)
|
{
|
return BaseDal.QueryData(x => x.OrderDetailId == orderDetailId);
|
}
|
|
public List<Dt_OutStockLockInfo> GetByOrderDetailId(int orderDetailId, OutStockStatus outStockStatus)
|
{
|
return BaseDal.QueryData(x => x.OrderDetailId == orderDetailId && x.Status == outStockStatus.ObjToInt());
|
}
|
}
|
}
|