修复bug
This commit is contained in:
@@ -101,16 +101,18 @@ namespace WMS.Web.Domain.Services
|
||||
var erp_removeList = new List<ErpDeliveryNoticeOutStockResultDto>();
|
||||
var SourceBillNo_list = erp_list.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList();
|
||||
var data_list = await _outStockTaskRepositories.GetListBySourceBillNo(SourceBillNo_list);
|
||||
List<int> update_ids = new List<int>();
|
||||
if (data_list.Count != 0)
|
||||
{
|
||||
//2.1提取出wms任务单明细信息
|
||||
foreach (var outStockTask in data_list)
|
||||
{
|
||||
bool isUpdate = false;
|
||||
var sourcNos = outStockTask.Details.SelectMany(s => s.ErpDetails).Select(s => s.SourceBillNo).ToList();
|
||||
//仓库不同 拆分成不同的任务单
|
||||
var erps = erp_list.Where(w => sourcNos.Contains(w.SourceBillNo) && w.StockCode.Equals(outStockTask.StockCode)).ToList();
|
||||
//比对数据
|
||||
SsynDateComparison(outStockTask, erps);
|
||||
isUpdate = SsynDateComparison(outStockTask, erps);
|
||||
foreach (var erp in erps)
|
||||
{
|
||||
//仓库不同 拆分成不同的
|
||||
@@ -122,6 +124,7 @@ namespace WMS.Web.Domain.Services
|
||||
var erpDetail = _mapper.Map<OutStockTaskErpDetails>(erp);
|
||||
detail.ErpDetails.Add(erpDetail);
|
||||
outStockTask.Details.Add(detail);
|
||||
isUpdate = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -131,21 +134,31 @@ namespace WMS.Web.Domain.Services
|
||||
{
|
||||
erpDetail = _mapper.Map<OutStockTaskErpDetails>(erp);
|
||||
detail.ErpDetails.Add(erpDetail);
|
||||
isUpdate = true;
|
||||
}
|
||||
else
|
||||
erpDetail.AccruedQty = erp.AccruedQty;
|
||||
{
|
||||
if (erpDetail.AccruedQty != erp.AccruedQty)
|
||||
{
|
||||
isUpdate = true;
|
||||
erpDetail.AccruedQty = erp.AccruedQty;
|
||||
}
|
||||
}
|
||||
|
||||
detail.AccruedQty = detail.ErpDetails.Sum(s => s.AccruedQty);
|
||||
}
|
||||
//操作完后剔除
|
||||
erp_removeList.Add(erp);
|
||||
}
|
||||
if (isUpdate)
|
||||
update_ids.Add(outStockTask.Id);
|
||||
//执行完后重新计算一下状态
|
||||
outStockTask.GenerateStatus();
|
||||
}
|
||||
}
|
||||
var update_date_list = data_list.Where(w => update_ids.Contains(w.Id)).ToList();
|
||||
//2.2.提交修改
|
||||
var isSuccess = await _outStockTaskRepositories.EditEntityList(data_list, isTransaction);
|
||||
var isSuccess = await _outStockTaskRepositories.EditEntityList(update_date_list, isTransaction);
|
||||
if (!isSuccess)
|
||||
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||
|
||||
@@ -194,8 +207,9 @@ namespace WMS.Web.Domain.Services
|
||||
/// 金蝶单据明细行删除后wms明细数量调整为0
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public Result SsynDateComparison(OutStockTask outStockTask, List<ErpDeliveryNoticeOutStockResultDto> erp_list)
|
||||
public bool SsynDateComparison(OutStockTask outStockTask, List<ErpDeliveryNoticeOutStockResultDto> erp_list)
|
||||
{
|
||||
bool isUpdate = false;
|
||||
var erpDetails = outStockTask.Details.SelectMany(s => s.ErpDetails).ToList().Clone();
|
||||
foreach (var d in outStockTask.Details)
|
||||
{
|
||||
@@ -211,10 +225,11 @@ namespace WMS.Web.Domain.Services
|
||||
//金蝶删除明细数据后 wms对应数据修改为0
|
||||
ed.AccruedQty = 0;
|
||||
d.AccruedQty = d.ErpDetails.Sum(s => s.AccruedQty);
|
||||
isUpdate = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return Result.ReSuccess();
|
||||
return isUpdate;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user