优化
This commit is contained in:
@@ -134,7 +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.同步金蝶
|
||||||
return await _inStockTaskService.Sysn(sourcesBillNos);
|
await _inStockTaskService.Sysn(sourcesBillNos);
|
||||||
|
|
||||||
|
//再刷新3天内所有的
|
||||||
|
return await _inStockTaskService.Sysn(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -4531,7 +4531,15 @@
|
|||||||
</member>
|
</member>
|
||||||
<member name="M:WMS.Web.Domain.Services.InStockTaskService.SysnData(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.ErpInStockResultDto},System.Boolean)">
|
<member name="M:WMS.Web.Domain.Services.InStockTaskService.SysnData(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.ErpInStockResultDto},System.Boolean)">
|
||||||
<summary>
|
<summary>
|
||||||
ERP数据同步到WMS数据库
|
ERP数据同步到WMS数据库-旧代码
|
||||||
|
</summary>
|
||||||
|
<param name="erp_list"></param>
|
||||||
|
<param name="isTransaction"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:WMS.Web.Domain.Services.InStockTaskService.SysnDataNew(System.Collections.Generic.List{WMS.Web.Core.Dto.Erp.ErpInStockResultDto},System.Boolean)">
|
||||||
|
<summary>
|
||||||
|
ERP数据同步到WMS数据库-新代码
|
||||||
</summary>
|
</summary>
|
||||||
<param name="erp_list"></param>
|
<param name="erp_list"></param>
|
||||||
<param name="isTransaction"></param>
|
<param name="isTransaction"></param>
|
||||||
|
|||||||
@@ -1140,8 +1140,8 @@ namespace WMS.Web.Domain.Services
|
|||||||
var isAllNoInventory = update_entity.Details.All(x => x.Qty == 0);
|
var isAllNoInventory = update_entity.Details.All(x => x.Qty == 0);
|
||||||
if (isAllNoInventory)
|
if (isAllNoInventory)
|
||||||
{
|
{
|
||||||
//给改箱服务用:按箱的话,就要把明细里的数量修改为0
|
//给改箱服务用:按箱的话,就要把明细里的数量修改为0;备注:当数量为0后就不要改箱了
|
||||||
changeBox_inventoryList.Add(GenerateBoxInventory(update_entity.Clone()));
|
//changeBox_inventoryList.Add(GenerateBoxInventory(update_entity.Clone()));
|
||||||
|
|
||||||
delete_ids.Add(update_entity.Id);
|
delete_ids.Add(update_entity.Id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
||||||
var erp_list = erp_result.Data;
|
var erp_list = erp_result.Data;
|
||||||
|
|
||||||
return await this.SysnData(erp_list.ToList(), isTransaction);
|
return await this.SysnDataNew(erp_list.ToList(), isTransaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -131,7 +131,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
||||||
var erp_list = erp_result.Data;
|
var erp_list = erp_result.Data;
|
||||||
|
|
||||||
return await this.SysnData(erp_list.ToList(), isTransaction);
|
return await this.SysnDataNew(erp_list.ToList(), isTransaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -148,7 +148,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
||||||
var erp_list = erp_result.Data;
|
var erp_list = erp_result.Data;
|
||||||
|
|
||||||
return await this.SysnData(erp_list.ToList(), isTransaction);
|
return await this.SysnDataNew(erp_list.ToList(), isTransaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -164,7 +164,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
if (!erp_result.IsSuccess)
|
if (!erp_result.IsSuccess)
|
||||||
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
return Result.ReFailure(erp_result.Message, erp_result.Status);
|
||||||
var erp_list = erp_result.Data;
|
var erp_list = erp_result.Data;
|
||||||
return await this.SysnData(erp_list.ToList(), isTransaction);
|
return await this.SysnDataNew(erp_list.ToList(), isTransaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -190,7 +190,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
var erp_list_disass = erp_result_disass.Data;
|
var erp_list_disass = erp_result_disass.Data;
|
||||||
erp_list.AddRange(erp_list_disass);
|
erp_list.AddRange(erp_list_disass);
|
||||||
|
|
||||||
return await this.SysnData(erp_list, isTransaction);
|
return await this.SysnDataNew(erp_list, isTransaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -223,38 +223,99 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// <param name="billNos"></param>
|
/// <param name="billNos"></param>
|
||||||
/// <param name="isTransaction"></param>
|
/// <param name="isTransaction"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<Result> InStock(List<string> billNos,bool isTransaction)
|
public async Task<Result> InStock(List<string> billNos, bool isTransaction)
|
||||||
|
{
|
||||||
|
if (billNos == null || billNos.Count == 0)
|
||||||
{
|
{
|
||||||
//1.同步数据:采购订单
|
//1.同步数据:采购订单
|
||||||
var purchase_result = await this.SsynPurchaseInStock(billNos, isTransaction);
|
var purchase_result = await this.SsynPurchaseInStock(null, isTransaction);
|
||||||
if (!purchase_result.IsSuccess)
|
if (!purchase_result.IsSuccess)
|
||||||
return Result.ReFailure(purchase_result.Message, purchase_result.Status);
|
return Result.ReFailure(purchase_result.Message, purchase_result.Status);
|
||||||
|
|
||||||
//2.同步数据:其他入库单
|
//2.同步数据:其他入库单
|
||||||
var miscellaneou_result = await this.SysnMiscellaneous(billNos, isTransaction);
|
var miscellaneou_result = await this.SysnMiscellaneous(null, isTransaction);
|
||||||
if (!miscellaneou_result.IsSuccess)
|
if (!miscellaneou_result.IsSuccess)
|
||||||
return Result.ReFailure(miscellaneou_result.Message, miscellaneou_result.Status);
|
return Result.ReFailure(miscellaneou_result.Message, miscellaneou_result.Status);
|
||||||
|
|
||||||
//3.同步数据:直接调拨入库单
|
//3.同步数据:直接调拨入库单
|
||||||
var TransferDirect_result = await this.SysnTransferDirect(billNos, isTransaction);
|
var TransferDirect_result = await this.SysnTransferDirect(null, isTransaction);
|
||||||
if (!TransferDirect_result.IsSuccess)
|
if (!TransferDirect_result.IsSuccess)
|
||||||
return Result.ReFailure(TransferDirect_result.Message, TransferDirect_result.Status);
|
return Result.ReFailure(TransferDirect_result.Message, TransferDirect_result.Status);
|
||||||
|
|
||||||
//4.同步数据:分步式入库单
|
//4.同步数据:分步式入库单
|
||||||
var Transferin_result = await this.SysnTransferin(billNos, isTransaction);
|
var Transferin_result = await this.SysnTransferin(null, isTransaction);
|
||||||
if (!Transferin_result.IsSuccess)
|
if (!Transferin_result.IsSuccess)
|
||||||
return Result.ReFailure(Transferin_result.Message, Transferin_result.Status);
|
return Result.ReFailure(Transferin_result.Message, Transferin_result.Status);
|
||||||
|
|
||||||
//5.同步数据:组装拆卸单
|
//5.同步数据:组装拆卸单
|
||||||
var AssembledApp_result = await this.SysnAssembledApp(billNos, isTransaction);
|
var AssembledApp_result = await this.SysnAssembledApp(null, isTransaction);
|
||||||
if (!AssembledApp_result.IsSuccess)
|
if (!AssembledApp_result.IsSuccess)
|
||||||
return Result.ReFailure(AssembledApp_result.Message, AssembledApp_result.Status);
|
return Result.ReFailure(AssembledApp_result.Message, AssembledApp_result.Status);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
List<string> Instock_sourceBillNos = new List<string>();
|
||||||
|
List<string> Miscellaneous_sourceBillNos = new List<string>();
|
||||||
|
List<string> TransferDirect_sourceBillNos = new List<string>();
|
||||||
|
List<string> Transferin_sourceBillNos = new List<string>();
|
||||||
|
List<string> AssembledApp_sourceBillNos = new List<string>();
|
||||||
|
|
||||||
|
var taskList = await _inStockTaskRepositories.GetListBy(billNos);
|
||||||
|
foreach (var entity in taskList)
|
||||||
|
{
|
||||||
|
if (entity.Type == InstockType.Purchase)
|
||||||
|
Instock_sourceBillNos.Add(entity.SourceBillNo);
|
||||||
|
else if (entity.Type == InstockType.Stkdirecttransfers)
|
||||||
|
TransferDirect_sourceBillNos.Add(entity.SourceBillNo);
|
||||||
|
else if (entity.Type == InstockType.StktransferInst)
|
||||||
|
Transferin_sourceBillNos.Add(entity.SourceBillNo);
|
||||||
|
else if (entity.Type == InstockType.Assembled)
|
||||||
|
AssembledApp_sourceBillNos.Add(entity.SourceBillNo);
|
||||||
|
else if (entity.Type == InstockType.Miscellaneous)
|
||||||
|
Miscellaneous_sourceBillNos.Add(entity.SourceBillNo);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Instock_sourceBillNos.Count() > 0)
|
||||||
|
{
|
||||||
|
//1.同步数据:采购订单
|
||||||
|
var purchase_result = await this.SsynPurchaseInStock(Instock_sourceBillNos, isTransaction);
|
||||||
|
if (!purchase_result.IsSuccess)
|
||||||
|
return Result.ReFailure(purchase_result.Message, purchase_result.Status);
|
||||||
|
}
|
||||||
|
if (Miscellaneous_sourceBillNos.Count() > 0)
|
||||||
|
{
|
||||||
|
//2.同步数据:其他入库单
|
||||||
|
var miscellaneou_result = await this.SysnMiscellaneous(Miscellaneous_sourceBillNos, isTransaction);
|
||||||
|
if (!miscellaneou_result.IsSuccess)
|
||||||
|
return Result.ReFailure(miscellaneou_result.Message, miscellaneou_result.Status);
|
||||||
|
}
|
||||||
|
if (TransferDirect_sourceBillNos.Count() > 0)
|
||||||
|
{
|
||||||
|
//3.同步数据:直接调拨入库单
|
||||||
|
var TransferDirect_result = await this.SysnTransferDirect(TransferDirect_sourceBillNos, isTransaction);
|
||||||
|
if (!TransferDirect_result.IsSuccess)
|
||||||
|
return Result.ReFailure(TransferDirect_result.Message, TransferDirect_result.Status);
|
||||||
|
}
|
||||||
|
if (Transferin_sourceBillNos.Count() > 0)
|
||||||
|
{
|
||||||
|
//4.同步数据:分步式入库单
|
||||||
|
var Transferin_result = await this.SysnTransferin(Transferin_sourceBillNos, isTransaction);
|
||||||
|
if (!Transferin_result.IsSuccess)
|
||||||
|
return Result.ReFailure(Transferin_result.Message, Transferin_result.Status);
|
||||||
|
}
|
||||||
|
if (AssembledApp_sourceBillNos.Count() > 0)
|
||||||
|
{
|
||||||
|
//5.同步数据:组装拆卸单
|
||||||
|
var AssembledApp_result = await this.SysnAssembledApp(AssembledApp_sourceBillNos, isTransaction);
|
||||||
|
if (!AssembledApp_result.IsSuccess)
|
||||||
|
return Result.ReFailure(AssembledApp_result.Message, AssembledApp_result.Status);
|
||||||
|
}
|
||||||
|
}
|
||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// ERP数据同步到WMS数据库
|
/// ERP数据同步到WMS数据库-旧代码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="erp_list"></param>
|
/// <param name="erp_list"></param>
|
||||||
/// <param name="isTransaction"></param>
|
/// <param name="isTransaction"></param>
|
||||||
@@ -273,12 +334,12 @@ namespace WMS.Web.Domain.Services
|
|||||||
{
|
{
|
||||||
data_list.ForEach(x =>
|
data_list.ForEach(x =>
|
||||||
{
|
{
|
||||||
var erp_list_dets= erp_list.Where(t => t.BillNo == x.SourceBillNo).ToList();
|
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)
|
if (erp_list_dets != null && erp_list_dets.Count != 0 && erp_list_dets.Count > x.Details.Count)
|
||||||
{
|
{
|
||||||
var xd_detids=x.Details.Select(xd => xd.ErpDetailId).ToList();
|
var xd_detids = x.Details.Select(xd => xd.ErpDetailId).ToList();
|
||||||
var task_no_materials= erp_list_dets.Where(ed => !xd_detids.Contains(ed.ErpDetailId)).ToList();
|
var task_no_materials = erp_list_dets.Where(ed => !xd_detids.Contains(ed.ErpDetailId)).ToList();
|
||||||
var Add_task_no_materials= _mapper.Map<List<InStockTaskDetails>>(task_no_materials);
|
var Add_task_no_materials = _mapper.Map<List<InStockTaskDetails>>(task_no_materials);
|
||||||
x.Details.AddRange(Add_task_no_materials);
|
x.Details.AddRange(Add_task_no_materials);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -292,13 +353,13 @@ namespace WMS.Web.Domain.Services
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
//2.1.1对比erp的物料信息
|
//2.1.1对比erp的物料信息
|
||||||
var erp_data = erp_list.Where(x =>x.ErpDetailId==item.ErpDetailId).FirstOrDefault();
|
var erp_data = erp_list.Where(x => x.ErpDetailId == item.ErpDetailId).FirstOrDefault();
|
||||||
if (erp_data != null)
|
if (erp_data != null)
|
||||||
{
|
{
|
||||||
//2.1.2修改数量
|
//2.1.2修改数量
|
||||||
if (erp_data.Qty > item.AccruedQty && (erp_data.Qty>item.RealityQty && item.RealityQty!=0))
|
if (erp_data.Qty > item.AccruedQty && (erp_data.Qty > item.RealityQty && item.RealityQty != 0))
|
||||||
data.Status = InstockStatus.Part;
|
data.Status = InstockStatus.Part;
|
||||||
else if(erp_data.Qty<=item.AccruedQty && erp_data.Qty<=item.RealityQty)
|
else if (erp_data.Qty <= item.AccruedQty && erp_data.Qty <= item.RealityQty)
|
||||||
data.Status = InstockStatus.Already;
|
data.Status = InstockStatus.Already;
|
||||||
item.Remark = erp_data.Remark;
|
item.Remark = erp_data.Remark;
|
||||||
item.AccruedQty = erp_data.Qty;
|
item.AccruedQty = erp_data.Qty;
|
||||||
@@ -324,7 +385,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
x.AccruedQty = 0;
|
x.AccruedQty = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if(erp_data==null)
|
else if (erp_data == null)
|
||||||
{
|
{
|
||||||
x.AccruedQty = 0;
|
x.AccruedQty = 0;
|
||||||
}
|
}
|
||||||
@@ -336,9 +397,9 @@ namespace WMS.Web.Domain.Services
|
|||||||
if (local_data_order != null)
|
if (local_data_order != null)
|
||||||
{
|
{
|
||||||
var local_data = data_list_details_new.Where(t => t.ErpDetailId == item.ErpDetailId).ToList();
|
var local_data = data_list_details_new.Where(t => t.ErpDetailId == item.ErpDetailId).ToList();
|
||||||
if (local_data != null && local_data.Count!=0)
|
if (local_data != null && local_data.Count != 0)
|
||||||
{
|
{
|
||||||
var isHaveMater_detail= local_data.Where(t => t.MaterialId == item.MaterialId).Any();
|
var isHaveMater_detail = local_data.Where(t => t.MaterialId == item.MaterialId).Any();
|
||||||
if (!isHaveMater_detail)
|
if (!isHaveMater_detail)
|
||||||
{
|
{
|
||||||
//明细的物料改变了:新的物料重新添加一条明细
|
//明细的物料改变了:新的物料重新添加一条明细
|
||||||
@@ -364,7 +425,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
|
|
||||||
//要剔除的来源单据编号:去重
|
//要剔除的来源单据编号:去重
|
||||||
erp_remove_billNo= erp_remove_billNo.GroupBy(x => x).Select(x => x.Key).ToList();
|
erp_remove_billNo = erp_remove_billNo.GroupBy(x => x).Select(x => x.Key).ToList();
|
||||||
//2.3剔除:已修改的单据
|
//2.3剔除:已修改的单据
|
||||||
foreach (var item in erp_remove_billNo)
|
foreach (var item in erp_remove_billNo)
|
||||||
{
|
{
|
||||||
@@ -386,7 +447,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
|
|
||||||
foreach (var item in current_billNos)
|
foreach (var item in current_billNos)
|
||||||
{
|
{
|
||||||
var current_order= erp_list.Where(x => x.BillNo == item).FirstOrDefault();
|
var current_order = erp_list.Where(x => x.BillNo == item).FirstOrDefault();
|
||||||
var dto = new InStockTask();
|
var dto = new InStockTask();
|
||||||
dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime);
|
dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime);
|
||||||
|
|
||||||
@@ -405,6 +466,118 @@ namespace WMS.Web.Domain.Services
|
|||||||
return Result.ReSuccess();
|
return Result.ReSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// ERP数据同步到WMS数据库-新代码
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="erp_list"></param>
|
||||||
|
/// <param name="isTransaction"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<Result> SysnDataNew(List<ErpInStockResultDto> erp_list, bool isTransaction)
|
||||||
|
{
|
||||||
|
|
||||||
|
//1.通过单据编号找到wms系统现有的任务单;并修改
|
||||||
|
var erp_removeList = new List<ErpInStockResultDto>();
|
||||||
|
var SourceBillNo_list = erp_list.GroupBy(x => x.BillNo).Select(x => x.Key).ToList();
|
||||||
|
var data_list = await _inStockTaskRepositories.GetListBy(SourceBillNo_list);
|
||||||
|
|
||||||
|
//要新增的明细
|
||||||
|
var erp_addDetailsList = new List<ErpInStockResultDto>();
|
||||||
|
//2.遍历已有的任务单
|
||||||
|
if (data_list.Count != 0)
|
||||||
|
{
|
||||||
|
//2.1遍历任务单明细:改变已有的值和要添加的明细
|
||||||
|
data_list.SelectMany(s => s.Details).ToList().ForEach(det =>
|
||||||
|
{
|
||||||
|
//2.1去当前erp的明细
|
||||||
|
var erp_data = erp_list.Where(x => x.ErpDetailId == det.ErpDetailId).FirstOrDefault();
|
||||||
|
if (erp_data != null)
|
||||||
|
{
|
||||||
|
//2.1.1当物料相同,仓库不同或者物料不同,就新增一条明细
|
||||||
|
//2.1.2物料相同的,就改变数值
|
||||||
|
if (det.MaterialId != erp_data.MaterialId || (det.MaterialId == erp_data.MaterialId && det.StockCode != erp_data.StockCode))
|
||||||
|
{
|
||||||
|
//老物料,应收数量修改为0
|
||||||
|
det.AccruedQty = 0;
|
||||||
|
//当物料相同,仓库不同或者物料不同,就新增一条明细
|
||||||
|
erp_addDetailsList.Add(erp_data);
|
||||||
|
}
|
||||||
|
else if (det.MaterialId == erp_data.MaterialId)
|
||||||
|
{
|
||||||
|
//物料相同的,就改变数值
|
||||||
|
det.Remark = erp_data.Remark;
|
||||||
|
det.AccruedQty = erp_data.Qty;
|
||||||
|
det.FactoryPrice = erp_data.FactoryPrice;
|
||||||
|
det.DeliveredQty = erp_data.DeliveredQty;
|
||||||
|
}
|
||||||
|
//操作完后剔除
|
||||||
|
erp_removeList.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遍历任务单:改变任务单的状态
|
||||||
|
data_list.ForEach(order =>
|
||||||
|
{
|
||||||
|
//当应入库数量大于实际入库数量:状态就部分入库
|
||||||
|
//当应入库数量小于等于实际入库数量:状态就已入库
|
||||||
|
var AccruedQtyTotal = order.Details.Sum(x => x.AccruedQty);
|
||||||
|
var RealityQtyTotal = order.Details.Sum(x => x.RealityQty);
|
||||||
|
if(AccruedQtyTotal> RealityQtyTotal)
|
||||||
|
order.Status = InstockStatus.Part;
|
||||||
|
else if(AccruedQtyTotal<= RealityQtyTotal)
|
||||||
|
order.Status = InstockStatus.Already;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
//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)
|
||||||
|
erp_list.Remove(item);
|
||||||
|
|
||||||
|
//3.wms任务单的来源单据编号不存在于erp中,那么就新增
|
||||||
|
if (erp_list.Count != 0)
|
||||||
|
{
|
||||||
|
var add_entitys = new List<InStockTask>();
|
||||||
|
var current_billNos = erp_list.GroupBy(x => x.BillNo).Select(x => x.Key).ToList();
|
||||||
|
|
||||||
|
foreach (var item in current_billNos)
|
||||||
|
{
|
||||||
|
var current_order = erp_list.Where(x => x.BillNo == item).FirstOrDefault();
|
||||||
|
var dto = new InStockTask();
|
||||||
|
dto.Create((InstockType)current_order.Type, current_order.BillNo, current_order.CreateTime);
|
||||||
|
|
||||||
|
//找到当前对应来源单据编号的集合数据
|
||||||
|
var current_erp_details = erp_list.Where(x => x.BillNo == item).ToList();
|
||||||
|
//给到dto的实体明细中
|
||||||
|
dto.Details = _mapper.Map<List<InStockTaskDetails>>(current_erp_details);
|
||||||
|
add_entitys.Add(dto);
|
||||||
|
}
|
||||||
|
//3.1提交新增
|
||||||
|
isSuccess = await _inStockTaskRepositories.AddRange(add_entitys, isTransaction);
|
||||||
|
if (!isSuccess)
|
||||||
|
return Result.ReFailure(ResultCodes.DateWriteError);
|
||||||
|
}
|
||||||
|
|
||||||
|
return Result.ReSuccess();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 作废
|
/// 作废
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -432,9 +605,9 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// <param name="totalCount"></param>
|
/// <param name="totalCount"></param>
|
||||||
/// <param name="updateCount"></param>
|
/// <param name="updateCount"></param>
|
||||||
/// <param name="addCount"></param>
|
/// <param name="addCount"></param>
|
||||||
public void LogInfomation(InstockType type, int totalCount,int updateCount,int addCount)
|
public void LogInfomation(InstockType type, int totalCount, int updateCount, int addCount)
|
||||||
{
|
{
|
||||||
_logger.LogInformation($"《{type.GetRemark()}总条数:" + totalCount+",修改条数:"+updateCount+",新增条数:"+addCount+"》");
|
_logger.LogInformation($"《{type.GetRemark()}总条数:" + totalCount + ",修改条数:" + updateCount + ",新增条数:" + addCount + "》");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user