优化同步

This commit is contained in:
tongfei
2024-04-24 17:57:04 +08:00
parent 7a2e1b8c53
commit d0026a57a7
7 changed files with 56 additions and 9 deletions

View File

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

View File

@@ -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>

View File

@@ -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:单据查询-采购入库单

View File

@@ -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>

View File

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

View File

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

View File

@@ -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>