This commit is contained in:
tongfei
2024-04-24 11:55:24 +08:00
parent b77df1d4c9
commit 4a33a37bc4

View File

@@ -854,53 +854,52 @@ namespace WMS.Web.Domain.Services
erpDetails.Add(item); erpDetails.Add(item);
} }
if (erpDetails.Count != 0)
foreach (var det in erpDetails)
{ {
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()
{ {
var erp_details = entity.ErpDetails RuleId = "PUR_PurchaseOrder-STK_InStock",//转换规则内码 采购订单下推采购入库单
.Where(w => w.SourceBillNo.Equals(det)).Select(t => t.ErpDetailId).ToList(); FormId = FormIdParam.PUR_PurchaseOrder.ToString(),
var erpDto = new ErpPushDto() TargetFormId = FormIdParam.STK_InStock.ToString(),
{ DetailsId = det.ErpDetailId.ToString(),
RuleId = "PUR_PurchaseOrder-STK_InStock",//转换规则内码 采购订单下推采购入库单 IsDraftWhenSaveFail = true//是否需要暂存
FormId = FormIdParam.PUR_PurchaseOrder.ToString(), };
TargetFormId = FormIdParam.STK_InStock.ToString(),
DetailsId = det.ErpDetailId.ToString(),
IsDraftWhenSaveFail = true//是否需要暂存
};
List<ErpPurchaseInStockDetailsDto> details = new List<ErpPurchaseInStockDetailsDto>(); 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());
if (resPurchaseInStockDetails_result.IsSuccess) if (resPurchaseInStockDetails_result.IsSuccess)
details = resPurchaseInStockDetails_result.Data; details = resPurchaseInStockDetails_result.Data;
//金蝶已有的单;进行金蝶不同操作处理:保存,提交,审核 //金蝶已有的单;进行金蝶不同操作处理:保存,提交,审核
var currentDet = details.Where(x => x.Qty == det.Qty).FirstOrDefault(); var currentDet = details.Where(x => x.Qty == det.Qty).FirstOrDefault();
if (currentDet != null) if (currentDet != null)
{ {
var res= await this.QueryFirst(currentDet, erpDto.FormId, entity.BillNo, det, sc_erpService); var res = await this.QueryFirst(currentDet, erpDto.FormId, entity.BillNo, det, sc_erpService);
if (res.result.IsSuccess) if (res.result.IsSuccess)
entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo); entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
else
entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus);
}
else else
{ entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus);
//下推金蝶
var res = await this.Push(erpDto, det, entity.BillNo, sc_erpService, sc_inStockRepositories);
if (res.result.IsSuccess)
entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
else
entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus);
}
} }
else
{
//下推金蝶
var res = await this.Push(erpDto, det, entity.BillNo, sc_erpService, sc_inStockRepositories);
if (res.result.IsSuccess)
entity.SyncSuccess(det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
else
entity.SyncFail(res.result.Message, det.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.syncStatus);
}
} }
else
{ //else
erpDetails_tags.ForEach(x => { x.SuccessSync = SyncStatus.Fail; }); //{
entity.SyncFailAll("同步金蝶失败,该采购单已存在采购入库单", loginInfo?.UserInfo?.StaffId ?? 0); // erpDetails_tags.ForEach(x => { x.SuccessSync = SyncStatus.Fail; });
} // entity.SyncFailAll("同步金蝶失败,该采购单已存在采购入库单", loginInfo?.UserInfo?.StaffId ?? 0);
//}
//最好一条一条执行,否则执行失败 但是金蝶那边又同步成功 就会造成数据比价乱 //最好一条一条执行,否则执行失败 但是金蝶那边又同步成功 就会造成数据比价乱
var isSuccess = await sc_InStockRepositories.Update(entity, true); var isSuccess = await sc_InStockRepositories.Update(entity, true);
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
@@ -1089,7 +1088,7 @@ namespace WMS.Web.Domain.Services
var result = Result.ReFailure(ex.Message, 50001); var result = Result.ReFailure(ex.Message, 50001);
return (result, SyncStatus.Fail, ""); return (result, SyncStatus.Fail, "");
} }
} }
} }