This commit is contained in:
tongfei
2024-03-14 14:05:19 +08:00
parent 9d5f5d3cc7
commit 2bf441733c

View File

@@ -485,55 +485,88 @@ namespace WMS.Web.Domain.Services
//2.遍历已有的任务单 //2.遍历已有的任务单
if (data_list.Count != 0) if (data_list.Count != 0)
{ {
//2.1遍历任务单明细:改变已有的值和要添加的明细
foreach (var data_item in data_list) foreach (var b in data_list)
{ {
foreach (var det in data_item.Details) foreach (var a in erp_list.Where(a => a.BillNo == b.BillNo))
{ {
var erp_data = erp_list.FirstOrDefault(a => a.ErpDetailId == det.ErpDetailId && a.BillNo==data_item.SourceBillNo); var matchingC = b.Details.FirstOrDefault(c => c.ErpDetailId == a.ErpDetailId && c.MaterialId == a.MaterialId);
if (erp_data != null) if (matchingC != null)
{ {
if (erp_data.MaterialId == det.MaterialId) //物料相同的,就改变数值
{ matchingC.Remark = a.Remark;
//物料相同的,就改变数值 matchingC.AccruedQty = a.Qty;
det.Remark = erp_data.Remark; matchingC.FactoryPrice = a.FactoryPrice;
det.AccruedQty = erp_data.Qty; matchingC.DeliveredQty = a.DeliveredQty;
det.FactoryPrice = erp_data.FactoryPrice; }
det.DeliveredQty = erp_data.DeliveredQty; else
} {
else var addDetails = _mapper.Map<InStockTaskDetails>(a);
{ b.Details.Add(addDetails);
//老物料应收数量修改为0
det.AccruedQty = 0;
}
//操作完后剔除
erp_removeList.Add(erp_data);
} }
} }
}
//2.1.1当物料相同,仓库不同或者物料不同,就新增一条明细 foreach (var c in b.Details)
foreach (var erp_data in erp_list)
{
// if (det.MaterialId != erp_data.MaterialId || (det.MaterialId == erp_data.MaterialId && det.StockCode != erp_data.StockCode))
var IsHaveNewMaterial = data_list.SelectMany(s => s.Details).Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId==x.MaterialId).Any();
if(!IsHaveNewMaterial)
//当物料相同,仓库不同或者物料不同,就新增一条明细
erp_addDetailsList.Add(erp_data);
}
//2.2遍历任务单:添加新的明细
data_list.ForEach(order =>
{
//2.1.任务单添加明细
var addErpDetails= erp_addDetailsList.Where(x => x.BillNo == order.SourceBillNo).ToList();
if (addErpDetails.Count != 0)
{ {
var addDetails = _mapper.Map<List<InStockTaskDetails>>(addErpDetails); var matchingA = erp_list.FirstOrDefault(a => a.BillNo == b.BillNo && a.ErpDetailId == c.ErpDetailId && a.MaterialId == c.MaterialId);
order.Details.AddRange(addDetails); if (matchingA == null)
{
c.AccruedQty = 0;
}
} }
});
// 移除已操作的 A 集合数据
erp_list.RemoveAll(a => a.BillNo == b.BillNo);
}
////2.1遍历任务单明细:改变已有的值和要添加的明细
//foreach (var data_item in data_list)
//{
// foreach (var det in data_item.Details)
// {
// var erp_data = erp_list.FirstOrDefault(a => a.ErpDetailId == det.ErpDetailId && a.BillNo==data_item.SourceBillNo);
// if (erp_data != null)
// {
// if (erp_data.MaterialId == det.MaterialId)
// {
// //物料相同的,就改变数值
// det.Remark = erp_data.Remark;
// det.AccruedQty = erp_data.Qty;
// det.FactoryPrice = erp_data.FactoryPrice;
// det.DeliveredQty = erp_data.DeliveredQty;
// }
// else
// {
// //老物料应收数量修改为0
// det.AccruedQty = 0;
// }
// //操作完后剔除
// erp_removeList.Add(erp_data);
// }
// }
//}
////2.1.1当物料相同,仓库不同或者物料不同,就新增一条明细
//foreach (var erp_data in erp_list)
//{
// // if (det.MaterialId != erp_data.MaterialId || (det.MaterialId == erp_data.MaterialId && det.StockCode != erp_data.StockCode))
// var IsHaveNewMaterial = data_list.SelectMany(s => s.Details).Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId==x.MaterialId).Any();
// if(!IsHaveNewMaterial)
// //当物料相同,仓库不同或者物料不同,就新增一条明细
// erp_addDetailsList.Add(erp_data);
//}
////2.2遍历任务单:添加新的明细
//data_list.ForEach(order =>
//{
// //2.1.任务单添加明细
// var addErpDetails= erp_addDetailsList.Where(x => x.BillNo == order.SourceBillNo).ToList();
// if (addErpDetails.Count != 0)
// {
// var addDetails = _mapper.Map<List<InStockTaskDetails>>(addErpDetails);
// order.Details.AddRange(addDetails);
// }
//});
//2.3遍历任务单:改变任务单的状态 //2.3遍历任务单:改变任务单的状态
data_list.ForEach(order => data_list.ForEach(order =>
@@ -559,9 +592,9 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReFailure(ResultCodes.DateWriteError);
//2.4剔除:已修改的单据 ////2.4剔除:已修改的单据
foreach (var item in erp_removeList.Distinct().ToList()) //foreach (var item in erp_removeList.Distinct().ToList())
erp_list.Remove(item); // erp_list.Remove(item);
//3.wms任务单的来源单据编号不存在于erp中那么就新增 //3.wms任务单的来源单据编号不存在于erp中那么就新增
if (erp_list.Count != 0) if (erp_list.Count != 0)