修复bug

This commit is contained in:
18942506660
2024-03-18 13:40:36 +08:00
parent af52ea3d3f
commit 542da53fa2

View File

@@ -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
{
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>