修复bug
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user