@@ -98,7 +98,7 @@ namespace WMS.Web.Domain.Services
return Result . ReFailure ( ResultCodes . AdjustError ) ;
return Result . ReFailure ( ResultCodes . AdjustError ) ;
return Result . ReSuccess ( ) ;
return Result . ReSuccess ( ) ;
}
}
/// <summary>
/// <summary>
/// 同步:采购入库类型单据
/// 同步:采购入库类型单据
@@ -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>
@@ -123,7 +123,7 @@ 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 > SysnMiscellaneous ( List < string > billNos = null , bool isTransaction = true )
public async Task < Result > SysnMiscellaneous ( List < string > billNos = null , bool isTransaction = true )
{
{
//1.获取金蝶数据:其他入库订单数据
//1.获取金蝶数据:其他入库订单数据
var erp_result = await _erpService . BillQueryForMiscellaneous ( billNos ) ;
var erp_result = await _erpService . BillQueryForMiscellaneous ( billNos ) ;
@@ -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>
@@ -140,7 +140,7 @@ 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 > SysnTransferDirect ( List < string > billNos = null , bool isTransaction = true )
public async Task < Result > SysnTransferDirect ( List < string > billNos = null , bool isTransaction = true )
{
{
//1.获取金蝶数据:直接调拨入库订单数据
//1.获取金蝶数据:直接调拨入库订单数据
var erp_result = await _erpService . BillQueryForTransferDirect ( billNos ) ;
var erp_result = await _erpService . BillQueryForTransferDirect ( billNos ) ;
@@ -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>
@@ -157,14 +157,14 @@ 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 > SysnTransferin ( List < string > billNos = null , bool isTransaction = true )
public async Task < Result > SysnTransferin ( List < string > billNos = null , bool isTransaction = true )
{
{
//1.获取金蝶数据:分步式入库订单数据
//1.获取金蝶数据:分步式入库订单数据
var erp_result = await _erpService . BillQueryForTransferin ( billNos ) ;
var erp_result = await _erpService . BillQueryForTransferin ( billNos ) ;
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>
@@ -173,9 +173,9 @@ 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 > SysnAssembledApp ( List < string > billNos = null , bool isTransaction = true )
public async Task < Result > SysnAssembledApp ( List < string > billNos = null , bool isTransaction = true )
{
{
var erp_list = new List < ErpInStockResultDto > ( ) ;
var erp_list = new List < ErpInStockResultDto > ( ) ;
//1.获取金蝶数据:组装成品入库订单数据
//1.获取金蝶数据:组装成品入库订单数据
var erp_result_ass = await _erpService . BillQueryForAssembledApp_Assembly ( billNos ) ;
var erp_result_ass = await _erpService . BillQueryForAssembledApp_Assembly ( billNos ) ;
@@ -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>
@@ -198,7 +198,7 @@ namespace WMS.Web.Domain.Services
/// </summary>
/// </summary>
/// <param name="billNos"></param>
/// <param name="billNos"></param>
/// <returns></returns>
/// <returns></returns>
public async Task < Result > Sysn ( List < string > billNos = null )
public async Task < Result > Sysn ( List < string > billNos = null )
{
{
//1.事务
//1.事务
IDbContextTransaction _transaction = _basicsRepositories . GetTransaction ( ) ;
IDbContextTransaction _transaction = _basicsRepositories . GetTransaction ( ) ;
@@ -223,43 +223,104 @@ 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 )
{
{
//1.同步数据:采购订单
if ( billNos = = null | | billNos . Count = = 0 )
var purchase_result = await this . SsynPurchaseInStock ( billNos , isTransaction ) ;
{
if ( ! purchase_result . IsSuccess )
//1.同步数据:采购订单
return Result . ReFailure ( purchase_result . Message , purchase_res ult . Status ) ;
var purchase_result = await this . SsynPurchaseInStock ( n ull , isTransaction ) ;
if ( ! purchase_result . IsSuccess )
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>
/// <returns></returns>
/// <returns></returns>
public async Task < Result > SysnData ( List < ErpInStockResultDto > erp_list , bool isTransaction )
public async Task < Result > SysnData ( List < ErpInStockResultDto > erp_list , bool isTransaction )
{
{
var type = ( InstockType ) erp_list . GroupBy ( x = > x . Type ) . Select ( x = > x . Key ) . FirstOrDefault ( ) ;
var type = ( InstockType ) erp_list . GroupBy ( x = > x . Type ) . Select ( x = > x . Key ) . FirstOrDefault ( ) ;
var totalCount = erp_list . Count ;
var totalCount = erp_list . Count ;
@@ -271,14 +332,14 @@ 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 = >
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,18 +353,18 @@ 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 ;
item . FactoryPrice = erp_data . FactoryPrice ;
item . FactoryPrice = erp_data . FactoryPrice ;
item . DeliveredQty = erp_data . DeliveredQty ;
item . DeliveredQty = erp_data . DeliveredQty ;
//打印日志:需要的修改条数
//打印日志:需要的修改条数
totalUpdateCount + + ;
totalUpdateCount + + ;
erp_remove_billNo . Add ( data . SourceBillNo ) ;
erp_remove_billNo . Add ( data . SourceBillNo ) ;
@@ -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 )
{
{
//明细的物料改变了:新的物料重新添加一条明细
//明细的物料改变了:新的物料重新添加一条明细
@@ -362,15 +423,15 @@ namespace WMS.Web.Domain.Services
if ( ! isSuccess )
if ( ! isSuccess )
return Result . ReFailure ( ResultCodes . DateWriteError ) ;
return Result . ReFailure ( ResultCodes . DateWriteError ) ;
//要剔除的来源单据编号:去重
//要剔除的来源单据编号:去重
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 )
{
{
erp_list . RemoveAll ( x = > x . BillNo = = item ) ;
erp_list . RemoveAll ( x = > x . BillNo = = item ) ;
}
}
}
}
//打印日志
//打印日志
@@ -383,10 +444,10 @@ namespace WMS.Web.Domain.Services
{
{
var add_entitys = new List < InStockTask > ( ) ;
var add_entitys = new List < InStockTask > ( ) ;
var current_billNos = erp_list . GroupBy ( x = > x . BillNo ) . Select ( x = > x . Key ) . ToList ( ) ;
var current_billNos = erp_list . GroupBy ( x = > x . BillNo ) . Select ( x = > x . Key ) . ToList ( ) ;
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 + "》" ) ;
}
}
}
}
}
}