优化
This commit is contained in:
@@ -134,10 +134,10 @@ namespace WMS.Web.Api.Controllers
|
|||||||
var sourcesBillNos = tasks.Select(x => x.SourceBillNo).ToList();
|
var sourcesBillNos = tasks.Select(x => x.SourceBillNo).ToList();
|
||||||
|
|
||||||
//2.同步金蝶
|
//2.同步金蝶
|
||||||
await _inStockTaskService.Sysn(sourcesBillNos);
|
return await _inStockTaskService.Sysn(sourcesBillNos);
|
||||||
|
|
||||||
//再刷新3天内所有的
|
////再刷新3天内所有的
|
||||||
return await _inStockTaskService.Sysn(null);
|
//return await _inStockTaskService.Sysn(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -486,87 +486,87 @@ namespace WMS.Web.Domain.Services
|
|||||||
if (data_list.Count != 0)
|
if (data_list.Count != 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
foreach (var b in data_list)
|
//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遍历任务单明细:改变已有的值和要添加的明细
|
|
||||||
//foreach (var data_item 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 =>
|
||||||
@@ -592,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)
|
||||||
|
|||||||
Reference in New Issue
Block a user