优化同步

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

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