This commit is contained in:
tongfei
2024-03-14 18:20:12 +08:00
parent e10055c5a6
commit d7e9bab58a

View File

@@ -487,40 +487,7 @@ namespace WMS.Web.Domain.Services
if (data_list.Count != 0)
{
//foreach (var b in data_list)
//{
// foreach (var a in erp_list.Where(a => a.BillNo == b.BillNo))
// {
// var matchingC = b.Details.FirstOrDefault(c => c.ErpDetailId == a.ErpDetailId && c.MaterialId == a.MaterialId);
// if (matchingC != null)
// {
// //物料相同的,就改变数值
// matchingC.Remark = a.Remark;
// matchingC.AccruedQty = a.Qty;
// matchingC.FactoryPrice = a.FactoryPrice;
// matchingC.DeliveredQty = a.DeliveredQty;
// }
// else
// {
// var addDetails = _mapper.Map<InStockTaskDetails>(a);
// b.Details.Add(addDetails);
// }
// }
// foreach (var c in b.Details)
// {
// var matchingA = erp_list.FirstOrDefault(a => a.BillNo == b.BillNo && a.ErpDetailId == c.ErpDetailId && a.MaterialId == c.MaterialId);
// if (matchingA == null)
// {
// c.AccruedQty = 0;
// }
// }
// // 移除已操作的 A 集合数据
// erp_list.RemoveAll(a => a.BillNo == b.BillNo);
//}
//2.1遍历任务单明细:改变已有的值和要添加的明细
_logger.LogInformation("拉取金蝶数据SysnDataNew1->" + JsonConvert.SerializeObject(data_list));
foreach (var det in data_list.SelectMany(t => t.Details))
{
var order= data_list.Where(o => o.Id == det.Fid).FirstOrDefault();
@@ -531,7 +498,6 @@ namespace WMS.Web.Domain.Services
{
if (erp_data.MaterialId == det.MaterialId)
{
_logger.LogInformation("拉取金蝶数据SysnDataNew2->" + JsonConvert.SerializeObject(erp_data));
//物料相同的,就改变数值
det.Remark = erp_data.Remark;
det.AccruedQty = erp_data.Qty;
@@ -540,7 +506,6 @@ namespace WMS.Web.Domain.Services
}
else
{
_logger.LogInformation("拉取金蝶数据SysnDataNew3->" + JsonConvert.SerializeObject(erp_data));
//老物料应收数量修改为0
det.AccruedQty = 0;
@@ -552,22 +517,24 @@ namespace WMS.Web.Domain.Services
}
//2.1.1当物料相同,仓库不同或者物料不同,就新增一条明细
foreach (var erp_data in erp_list)
{
var IsHaveNewMaterial = data_list.Where(x => x.SourceBillNo == erp_data.BillNo).SelectMany(s => s.Details).Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId == x.MaterialId).Any();
if (!IsHaveNewMaterial)
var order= data_list.Where(x => x.SourceBillNo == erp_data.BillNo).FirstOrDefault();
if (order != null)
{
//当物料相同,仓库不同或者物料不同,就新增一条明细
erp_addDetailsList.Add(erp_data);
//操作完后剔除
erp_removeList.Add(erp_data);
var IsHaveNewMaterial = order.Details.Where(x => x.ErpDetailId == erp_data.ErpDetailId && erp_data.MaterialId == x.MaterialId).Any();
if (!IsHaveNewMaterial)
{
//当物料相同,仓库不同或者物料不同,就新增一条明细
erp_addDetailsList.Add(erp_data);
//操作完后剔除
erp_removeList.Add(erp_data);
}
}
}
//去重
var erp_addDetailsList_group = erp_addDetailsList.Distinct().ToList();
@@ -600,17 +567,12 @@ namespace WMS.Web.Domain.Services
//2.4金蝶删除的明细要把任务单里的明细应入库数量改为0
data_list.SelectMany(x => x.Details).Where(c => !erp_list.Any(a => a.ErpDetailId == c.ErpDetailId)).ToList().ForEach(x => { x.AccruedQty = 0; });
_logger.LogInformation("拉取金蝶数据SysnDataNew4->" + JsonConvert.SerializeObject(data_list));
//2.3.提交任务单的修改
var isSuccess = await _inStockTaskRepositories.UpdateRange(data_list, isTransaction);
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
}
//2.4剔除:已修改的单据
foreach (var item in erp_removeList.Distinct().ToList())
erp_list.Remove(item);