单据同步数据
This commit is contained in:
@@ -110,8 +110,11 @@ namespace WMS.Web.Api.Controllers
|
|||||||
[Route("Refresh")]
|
[Route("Refresh")]
|
||||||
public async Task<Result> Refresh([FromBody] OperateRequest dto)
|
public async Task<Result> Refresh([FromBody] OperateRequest dto)
|
||||||
{
|
{
|
||||||
|
//去重
|
||||||
|
var ids = dto.Ids.GroupBy(x => x).Select(x=>x.Key).ToList();
|
||||||
|
|
||||||
//1.先找到任务单-并找到来源单集
|
//1.先找到任务单-并找到来源单集
|
||||||
var tasks= await _inStockTaskRepositories.GetList(dto.Ids);
|
var tasks= await _inStockTaskRepositories.GetList(ids);
|
||||||
var sourcesBillNos = tasks.Select(x => x.SourceBillNo).ToList();
|
var sourcesBillNos = tasks.Select(x => x.SourceBillNo).ToList();
|
||||||
|
|
||||||
//2.同步金蝶
|
//2.同步金蝶
|
||||||
|
|||||||
@@ -266,11 +266,25 @@ namespace WMS.Web.Domain.Services
|
|||||||
var data_list = await _inStockTaskRepositories.GetListBy(SourceBillNo_list);
|
var data_list = await _inStockTaskRepositories.GetListBy(SourceBillNo_list);
|
||||||
if (data_list.Count != 0)
|
if (data_list.Count != 0)
|
||||||
{
|
{
|
||||||
|
data_list.ForEach(x =>
|
||||||
|
{
|
||||||
|
var erp_list_dets= erp_list.Where(t => t.BillNo == x.SourceBillNo).ToList();
|
||||||
|
if (erp_list_dets != null && erp_list_dets.Count != 0 && erp_list_dets.Count > x.Details.Count)
|
||||||
|
{
|
||||||
|
var xd_mids=x.Details.Select(xd => xd.MaterialId).ToList();
|
||||||
|
var task_no_materials= erp_list_dets.Where(ed => !xd_mids.Contains(ed.MaterialId)).ToList();
|
||||||
|
var Add_task_no_materials= _mapper.Map<List<InStockTaskDetails>>(task_no_materials);
|
||||||
|
x.Details.AddRange(Add_task_no_materials);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//2.1提取出wms任务单明细信息
|
//2.1提取出wms任务单明细信息
|
||||||
var data_list_details = data_list.SelectMany(x => x.Details).ToList();
|
var data_list_details = data_list.SelectMany(x => x.Details).ToList();
|
||||||
foreach (var item in data_list_details)
|
foreach (var item in data_list_details)
|
||||||
{
|
{
|
||||||
var data = data_list.Where(x => x.Id == item.Fid).FirstOrDefault();
|
var data = data_list.Where(x => x.Id == item.Fid).FirstOrDefault();
|
||||||
|
if (data == null)
|
||||||
|
continue;
|
||||||
|
|
||||||
//2.1.1对比erp的物料信息
|
//2.1.1对比erp的物料信息
|
||||||
var erp_data = erp_list.Where(x => x.BillNo == data.SourceBillNo && x.MaterialId == item.MaterialId).FirstOrDefault();
|
var erp_data = erp_list.Where(x => x.BillNo == data.SourceBillNo && x.MaterialId == item.MaterialId).FirstOrDefault();
|
||||||
@@ -278,6 +292,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
{
|
{
|
||||||
//2.1.2修改数量
|
//2.1.2修改数量
|
||||||
item.AccruedQty = erp_data.Qty;
|
item.AccruedQty = erp_data.Qty;
|
||||||
|
item.FactoryPrice = erp_data.FactoryPrice;
|
||||||
item.DeliveredQty = erp_data.DeliveredQty> item.DeliveredQty? erp_data.DeliveredQty: item.DeliveredQty;
|
item.DeliveredQty = erp_data.DeliveredQty> item.DeliveredQty? erp_data.DeliveredQty: item.DeliveredQty;
|
||||||
erp_remove_billNo.Add(data.SourceBillNo);
|
erp_remove_billNo.Add(data.SourceBillNo);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user