批号管理

This commit is contained in:
tongfei
2024-04-09 14:19:19 +08:00
parent e719702bae
commit faceb1c4e8
4 changed files with 120 additions and 5 deletions

View File

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