1
This commit is contained in:
@ -499,6 +499,98 @@ namespace WCS.BLL.Services.Service
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<ResponseBase> GoInOutstoreSingle(GetOutOrderDetailRequest request)
|
||||
{
|
||||
try
|
||||
{
|
||||
//获取出库单
|
||||
var order = await DbHelp.db.Queryable<OutOrder>()
|
||||
.WhereIF(request.OrderId != 0, t => t.Id == request.OrderId)
|
||||
.WhereIF(!string.IsNullOrEmpty(request.OrderNumber), t => t.OrderNumber == request.OrderNumber)
|
||||
.FirstAsync();
|
||||
if (order == null)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"不存在对应的出库单据{request.OrderNumber}!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
//如果是按物料编码出库 需要计算物料明细、并进行物料锁定
|
||||
if (order.SyncType == SyncTypeEnum.ByMatCode)
|
||||
{
|
||||
var result = CaculateOutOrderMatDetails(order, request.UserName);
|
||||
if (result.Code != 200)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
//获取需要出库的物料明细
|
||||
var outOrderMatDetails = DbHelp.db.Queryable<OutOrderMatDetail>()
|
||||
.Where(t => t.OrderId == order.Id)
|
||||
.Where(t => t.IsSended == false)
|
||||
.Includes(t => t.StoreInfo)
|
||||
.ToList();
|
||||
if (outOrderMatDetails == null || outOrderMatDetails.Count == 0)
|
||||
{
|
||||
return new ResponseCommon()
|
||||
{
|
||||
Code = 201,
|
||||
Message = $"出库单据{request.OrderNumber}物料已全部完成出库!",
|
||||
Data = null
|
||||
};
|
||||
}
|
||||
|
||||
if (request.IsStart)//&& order.OutOrderExeStatus != OutOrderExeStatus.发料完成
|
||||
{
|
||||
order.OutOrderExeStatus = OutOrderExeStatus.开始发料;
|
||||
DbHelp.db.Updateable(order).ExecuteCommand();
|
||||
}
|
||||
//返回需求明细
|
||||
//获取出库需求
|
||||
List<OutOrderDetail> outorderdetal = DbHelp.db.Queryable<OutOrderDetail>()
|
||||
.WhereIF(request.OrderId != 0, t => t.OrderId == request.OrderId)
|
||||
.WhereIF(!string.IsNullOrEmpty(request.OrderNumber), t => t.OrderNumber == request.OrderNumber)
|
||||
.ToList();
|
||||
|
||||
OutResponseCommonSingle orcs = new OutResponseCommonSingle();
|
||||
orcs.Data = new List<OutDetail>();
|
||||
foreach (OutOrderDetail outdetail in outorderdetal)
|
||||
{
|
||||
OutDetail od = new OutDetail();
|
||||
od.OrderId = outdetail.OrderId;
|
||||
od.OrderNumber= outdetail.OrderNumber;
|
||||
od.MatCode=outdetail.MatCode;
|
||||
od.MatBatch=outdetail.MatBatch;
|
||||
od.ReqQty = outdetail.ReqQty;
|
||||
od.CreateTime = outdetail.CreateTime;
|
||||
od.CreateUser = outdetail.CreateUser;
|
||||
od.MatName = outdetail.MatName;
|
||||
od.OutQty = outdetail.OutQty;
|
||||
od.LightColor = "";
|
||||
orcs.Data.Add(od);
|
||||
}
|
||||
|
||||
//返回
|
||||
return new OutResponseCommonSingle()
|
||||
{
|
||||
Code = 200,
|
||||
Message = "Success",
|
||||
Data = orcs.Data
|
||||
};
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
await GoOutOutstore(request);
|
||||
throw ex;
|
||||
}
|
||||
}
|
||||
|
||||
//计算、加锁
|
||||
private ResponseBase CaculateOutOrderMatDetails(OutOrder order, string createUser = "")
|
||||
{
|
||||
|
Reference in New Issue
Block a user