修复bug

This commit is contained in:
18942506660
2023-11-16 14:20:27 +08:00
parent 2989739e30
commit d980cdb6a6
4 changed files with 54 additions and 20 deletions

View File

@@ -54,30 +54,40 @@ namespace WMS.Web.Domain.Services
public async Task<Result> Save(SaveOutStockRequest dto, LoginInDto loginInfo)
{
var outStockTask = await _outStockTaskRepositories.Get(dto.TaskId);
if(outStockTask.Status== OutStockStatus.Already)
if (outStockTask.Status == OutStockStatus.Already)
return Result.ReFailure(ResultCodes.OutStockTaskAlready);
if (outStockTask.Status == OutStockStatus.Repeal)
return Result.ReFailure(ResultCodes.OutStockTaskRepeal);
//上传的物料在任务单里没有找到不能出库
var ex = dto.Details.Select(s=>s.MaterialId).Except(outStockTask.Details.Select(s=>s.MaterialId)).ToList();
var ex = dto.Details.Select(s => s.MaterialId).Except(outStockTask.Details.Select(s => s.MaterialId)).ToList();
if (ex.Count() > 0)
return Result.ReFailure(ResultCodes.OutStockMaterialError);
var mIds = dto.Details.GroupBy(g => g.MaterialId).Select(s => s.Key).ToList();
OutStock entity = new OutStock();
entity.Create(loginInfo.UserInfo.StaffId, outStockTask);
foreach (var d in dto.Details)
foreach (var mid in mIds)
{
//任务单明细
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == d.MaterialId);
var tDetail = outStockTask.Details.FirstOrDefault(f => f.MaterialId == mid);
var dtoDetails = dto.Details.Where(w => w.MaterialId == mid);
var qty = dtoDetails.Sum(s => s.Qty);
if (tDetail == null) continue;
var res = outStockTask.OutStock(d.MaterialId, d.Qty);
var res = outStockTask.OutStock(mid, qty);
if (!res.IsSuccess) return res;
var outd = _mapper.Map<OutStockDetails>(tDetail);
outd.Qty = d.Qty;
outd.SerialNumbers = d.SerialNumbers;
//循环添加erp同步明细
foreach (var c in res.Data)
{
var tErpDetail = tDetail.ErpDetails.FirstOrDefault(f => f.SourceBillNo.Equals(c.sourceBillNo));
var oErpDetail = _mapper.Map<OutStockErpDetails>(tErpDetail);
oErpDetail.Qty = c.qty;
outd.ErpDetails.Add(oErpDetail);
}
outd.Qty = qty;
outd.SerialNumbers.AddRange(dtoDetails.SelectMany(s => s.SerialNumbers));
entity.Details.Add(outd);
}
@@ -114,7 +124,7 @@ namespace WMS.Web.Domain.Services
{
//下推金蝶
var res = await _erpService.Push(new Core.Dto.Erp.ErpPushDto() { });
entity.Sync(new List<string>(),res.IsSuccess, loginInfo.UserInfo.StaffId, res.Message);
entity.Sync(new List<string>(), res.IsSuccess, loginInfo.UserInfo.StaffId, res.Message);
}
var isSuccess = await _outStockRepositories.EditEntityList(list, true);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);