单据同步数据

This commit is contained in:
tongfei
2023-11-30 12:05:25 +08:00
parent 6d08effb54
commit 904c659d53
2 changed files with 19 additions and 1 deletions

View File

@@ -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.同步金蝶

View File

@@ -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);
} }