This commit is contained in:
陶坤
2024-05-15 18:49:11 +08:00
parent 65bb836721
commit e3d3726cbe
18 changed files with 446 additions and 70 deletions

View File

@ -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 = "")
{