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