优化同步
This commit is contained in:
@@ -421,7 +421,7 @@ namespace WMS.Web.Api.Controllers
|
||||
[Route("lst3")]
|
||||
public async Task<bool> lst3()
|
||||
{
|
||||
var data=await _erpService.BillQueryForPurchaseInStockBy("1541693");
|
||||
var data=await _erpService.BillQueryForPurchaseInStockBy("1541693",null);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2866,6 +2866,13 @@
|
||||
<param name="ids"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Infrastructure.IInStockRepositories.GetErpDetails(System.Collections.Generic.List{System.String})">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
<param name="sourceBillNo"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Infrastructure.IInStockRepositories.UpdateRange(System.Collections.Generic.List{WMS.Web.Domain.Entitys.InStockDetails},System.Boolean)">
|
||||
<summary>
|
||||
|
||||
@@ -3917,7 +3924,7 @@
|
||||
<param name="id"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForPurchaseInStockBy(System.String)">
|
||||
<member name="M:WMS.Web.Domain.IService.Public.IErpService.BillQueryForPurchaseInStockBy(System.String,System.Collections.Generic.List{System.String})">
|
||||
<summary>
|
||||
|
||||
</summary>
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace WMS.Web.Domain.IService.Public
|
||||
/// </summary>
|
||||
/// <param name="purchaseDetailId"></param>
|
||||
/// <returns></returns>
|
||||
Task<Result<List<ErpPurchaseInStockDetailsDto>>> BillQueryForPurchaseInStockBy(string purchaseDetailId);
|
||||
Task<Result<List<ErpPurchaseInStockDetailsDto>>> BillQueryForPurchaseInStockBy(string purchaseDetailId, List<string> sourceBillNos);
|
||||
|
||||
/// <summary>
|
||||
/// erp:单据查询-采购入库单
|
||||
|
||||
@@ -108,6 +108,14 @@ namespace WMS.Web.Domain.Infrastructure
|
||||
/// <returns></returns>
|
||||
Task<List<InStockDetails>> GetDetailsList(List<int> ids);
|
||||
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNo"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<InStockErpDetails>> GetErpDetails(List<string> sourceBillNos);
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
@@ -854,11 +854,12 @@ namespace WMS.Web.Domain.Services
|
||||
erpDetails.Add(item);
|
||||
}
|
||||
|
||||
var sourceBillNos= entity.ErpDetails.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList();
|
||||
var erp_InStockErpDetails = await sc_inStockRepositories.GetErpDetails(sourceBillNos);
|
||||
|
||||
|
||||
foreach (var det in erpDetails)
|
||||
{
|
||||
var erp_details = entity.ErpDetails
|
||||
.Where(w => w.SourceBillNo.Equals(det)).Select(t => t.ErpDetailId).ToList();
|
||||
{
|
||||
var erpDto = new ErpPushDto()
|
||||
{
|
||||
RuleId = "PUR_PurchaseOrder-STK_InStock",//转换规则内码 采购订单下推采购入库单
|
||||
@@ -868,13 +869,14 @@ namespace WMS.Web.Domain.Services
|
||||
IsDraftWhenSaveFail = true//是否需要暂存
|
||||
};
|
||||
|
||||
var erp_InStockBillNos = erp_InStockErpDetails.Where(x => x.SourceBillNo == det.SourceBillNo).Select(x => x.ErpSyncBillNo).ToList();
|
||||
List<ErpPurchaseInStockDetailsDto> details = new List<ErpPurchaseInStockDetailsDto>();
|
||||
var resPurchaseInStockDetails_result = await sc_erpService.BillQueryForPurchaseInStockBy(det.ErpDetailId.ToString());
|
||||
var resPurchaseInStockDetails_result = await sc_erpService.BillQueryForPurchaseInStockBy(det.ErpDetailId.ToString(), erp_InStockBillNos);
|
||||
if (resPurchaseInStockDetails_result.IsSuccess)
|
||||
details = resPurchaseInStockDetails_result.Data;
|
||||
|
||||
//金蝶已有的单;进行金蝶不同操作处理:保存,提交,审核
|
||||
var currentDet = details.Where(x => x.Qty == det.Qty && x.OrderBillNo!=det.ErpSyncBillNo).FirstOrDefault();
|
||||
var currentDet = details.Where(x => x.Qty == det.Qty).FirstOrDefault();
|
||||
if (currentDet != null)
|
||||
{
|
||||
var res = await this.QueryFirst(currentDet, erpDto.TargetFormId, entity.BillNo, det, sc_erpService);
|
||||
|
||||
@@ -2510,7 +2510,7 @@ namespace WMS.Web.Domain.Services.Public
|
||||
}
|
||||
}
|
||||
|
||||
public async Task<Result<List<ErpPurchaseInStockDetailsDto>>> BillQueryForPurchaseInStockBy(string purchaseDetailId)
|
||||
public async Task<Result<List<ErpPurchaseInStockDetailsDto>>> BillQueryForPurchaseInStockBy(string purchaseDetailId,List<string> sourceBillNos)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -2527,6 +2527,25 @@ namespace WMS.Web.Domain.Services.Public
|
||||
param.Limit = 10000;
|
||||
param.FilterString = $"FPOORDERENTRYID={purchaseDetailId}";
|
||||
|
||||
//根据原订单号查询
|
||||
if (sourceBillNos != null && sourceBillNos.Count() > 0)
|
||||
{
|
||||
param.FilterString = param.FilterString + " and FBillNo not in (";
|
||||
|
||||
var bill_str = "";
|
||||
int bill_index = 0;
|
||||
//var srt_b = JsonConvert.SerializeObject(sourceBillNos);
|
||||
foreach (var bill in sourceBillNos)
|
||||
{
|
||||
bill_index++;
|
||||
if (bill_index == sourceBillNos.Count)
|
||||
bill_str = bill_str + $"'{bill}'";
|
||||
else
|
||||
bill_str = bill_str + $"'{bill}'" + ",";
|
||||
}
|
||||
param.FilterString = param.FilterString + bill_str + ")";
|
||||
}
|
||||
|
||||
query.Data = JsonConvert.SerializeObject(param);
|
||||
var json = JsonConvert.SerializeObject(query);
|
||||
|
||||
|
||||
@@ -414,6 +414,17 @@ namespace WMS.Web.Repositories
|
||||
return entity;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="sourceBillNo"></param>
|
||||
/// <returns></returns>
|
||||
public async Task<List<InStockErpDetails>> GetErpDetails(List<string> sourceBillNos)
|
||||
{
|
||||
var entity = await _context.InStockErpDetails.Where(x => sourceBillNos.Contains(x.SourceBillNo) && x.SuccessSync == SyncStatus.Success).ToListAsync();
|
||||
return entity.Clone() ;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
|
||||
Reference in New Issue
Block a user