批号管理
This commit is contained in:
@@ -734,6 +734,7 @@ namespace WMS.Web.Domain.Services
|
||||
//要下推的明细
|
||||
var erpDetails = new List<InStockErpDetails>();
|
||||
var sc_erpService = scope.ServiceProvider.GetRequiredService<IErpService>();
|
||||
var sc_inStockRepositories = scope.ServiceProvider.GetRequiredService<IInStockRepositories>();
|
||||
|
||||
//找到金蝶最新的采购订单数据
|
||||
var erp_purchase_result = await sc_erpService.BillQueryForPurchaseInStock(entity.ErpDetails.GroupBy(x => x.SourceBillNo).Select(x => x.Key).ToList());
|
||||
@@ -760,7 +761,7 @@ namespace WMS.Web.Domain.Services
|
||||
IsDraftWhenSaveFail = true
|
||||
};
|
||||
//下推金蝶
|
||||
var res = await this.Push(erpDto, s, entity.BillNo, sc_erpService);
|
||||
var res = await this.Push(erpDto, s, entity.BillNo, sc_erpService, sc_inStockRepositories);
|
||||
if (res.result.IsSuccess)
|
||||
entity.SyncSuccess(s.ErpDetailId, loginInfo?.UserInfo?.StaffId ?? 0, res.erpBillNo);
|
||||
else
|
||||
@@ -779,7 +780,7 @@ namespace WMS.Web.Domain.Services
|
||||
/// <param name="erpDetail"></param>
|
||||
/// <param name="billNo"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService)
|
||||
private async Task<(Result result, SyncStatus syncStatus, string erpBillNo)> Push(ErpPushDto dto, InStockErpDetails erpDetail, string billNo, IErpService sc_erpService, IInStockRepositories sc_inStockRepositories)
|
||||
{
|
||||
try
|
||||
{
|
||||
@@ -794,8 +795,27 @@ namespace WMS.Web.Domain.Services
|
||||
var resPurchaseInStock = await sc_erpService.BillQueryForPurchaseInStock(id);
|
||||
var purchaseInStock = resPurchaseInStock.Data;
|
||||
purchaseInStock.Details[0].Qty = erpDetail.Qty;
|
||||
if (!string.IsNullOrEmpty(erpDetail.BatchBillNo))
|
||||
|
||||
|
||||
if (string.IsNullOrEmpty(erpDetail.BatchBillNo))
|
||||
{
|
||||
var current_erp_material = await sc_erpService.BillQueryForMaterialByNumber(erpDetail.MaterialNumber);
|
||||
if (current_erp_material != null && current_erp_material.IsBatchManage == true)
|
||||
{
|
||||
//1.获取最新的erp明细信息
|
||||
var billNo_new = await sc_inStockRepositories.GetLastBillNo();
|
||||
//erp明细:生成批号
|
||||
int new_firstBillNo = billNo_new == null ? 0 : (billNo_new.FirstBillNo.HasValue ? billNo_new.FirstBillNo.Value : 0);
|
||||
int new_lastBillNo = billNo_new == null ? 0 : (billNo_new.LastBillNo.HasValue ? billNo_new.LastBillNo.Value : 0);
|
||||
|
||||
erpDetail.GenerateBatchBillNo(new_firstBillNo, new_lastBillNo, current_erp_material.IsBatchManage);
|
||||
if (!string.IsNullOrEmpty(erpDetail.BatchBillNo))
|
||||
purchaseInStock.Details[0].Lot = erpDetail.BatchBillNo;
|
||||
}
|
||||
}
|
||||
else
|
||||
purchaseInStock.Details[0].Lot = erpDetail.BatchBillNo;
|
||||
|
||||
string formId = dto.TargetFormId.ToString();
|
||||
_logger.LogInformation($"入库单->开始同步金蝶 单号:{billNo} erp明细Id:{erpDetail.ErpDetailId} 数据: {JsonConvert.SerializeObject(dto)}");
|
||||
var res_s = await sc_erpService.Save<ErpPurchaseInStockSaveDto>(purchaseInStock, formId);
|
||||
|
||||
Reference in New Issue
Block a user