批号添加
This commit is contained in:
@@ -55,5 +55,51 @@ namespace WMS.Web.Domain.Entitys
|
||||
/// </summary>
|
||||
public string ErpSyncBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 批号
|
||||
/// </summary>
|
||||
public string BatchBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 箱唛编号-首位
|
||||
/// </summary>
|
||||
public int FirstBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 箱唛编号-末尾序号
|
||||
/// </summary>
|
||||
public int LastBillNo { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 生成批号
|
||||
/// </summary>
|
||||
/// <param name="firstBillNo"></param>
|
||||
/// <param name="lastBillNo"></param>
|
||||
public void GenerateBatchBillNo(int firstBillNo,int lastBillNo,bool isBatchManage)
|
||||
{
|
||||
if (isBatchManage)
|
||||
{
|
||||
this.FirstBillNo = Convert.ToInt32(DateTime.Now.ToString("yyMMdd"));
|
||||
if (this.FirstBillNo == firstBillNo)
|
||||
this.LastBillNo = lastBillNo + 1;
|
||||
else
|
||||
this.LastBillNo = 1;
|
||||
|
||||
if (this.LastBillNo.ToString().Length >= 6)
|
||||
{
|
||||
this.BatchBillNo = "W" + this.FirstBillNo + this.LastBillNo;
|
||||
return;
|
||||
}
|
||||
|
||||
string lastStr = this.LastBillNo.ToString();
|
||||
while (true)
|
||||
{
|
||||
lastStr = "0" + lastStr;
|
||||
if (lastStr.Length >= 6) break;
|
||||
}
|
||||
this.BatchBillNo = "W" + this.FirstBillNo + lastStr;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,5 +81,11 @@ namespace WMS.Web.Domain.Infrastructure
|
||||
/// <param name="taskId"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<ReceiveBoxResponse>> GetInstockBox(int taskId);
|
||||
|
||||
/// <summary>
|
||||
/// 获取最新的erp明细
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
Task<InStockErpDetails> GetLastBillNo();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -268,6 +268,12 @@ namespace WMS.Web.Domain.Services
|
||||
}
|
||||
}
|
||||
|
||||
//1.获取物料集合和组织集合和供应商的集合
|
||||
var materials = new List<ErpMaterialDto>();
|
||||
var materials_result = await _erpService.BillQueryForMaterial();
|
||||
if (materials_result.IsSuccess)
|
||||
materials = materials_result.Data.ToList();
|
||||
|
||||
//1.获取来源单
|
||||
var taskIds = dto.Details.GroupBy(x => x.TaskId).Select(x => x.Key).ToList();
|
||||
var tasks = await _inStockTaskRepositories.GetList(taskIds);
|
||||
@@ -302,6 +308,23 @@ namespace WMS.Web.Domain.Services
|
||||
Qty = x.Sum(t => t.Qty)
|
||||
}).ToList();
|
||||
|
||||
//1.获取最新的erp明细信息
|
||||
var billNo_new = await _inStockRepositories.GetLastBillNo();
|
||||
//erp明细:生成批号
|
||||
int new_firstBillNo = billNo_new == null ? 0 : billNo_new.FirstBillNo;
|
||||
int new_lastBillNo = billNo_new == null ? 0 : billNo_new.LastBillNo;
|
||||
entity.ErpDetails.ForEach(x =>
|
||||
{
|
||||
//物料必须是启动了批号管理才生成批号
|
||||
var mat= materials.Where(m => m.MaterialNumber == x.MaterialNumber && m.OrgCode == entity.OrgCode).FirstOrDefault();
|
||||
if (mat != null)
|
||||
{
|
||||
x.GenerateBatchBillNo(new_firstBillNo, new_lastBillNo, mat.IsBatchManage);
|
||||
new_firstBillNo = x.FirstBillNo;
|
||||
new_lastBillNo = x.LastBillNo;
|
||||
}
|
||||
});
|
||||
|
||||
//序列号集:箱里面的
|
||||
var serialNumbers = await _serialNumbersRepositories.GetEntityListByBoxIds(dto.Details.GroupBy(x => x.BoxId).Select(x => x.Key).ToList());
|
||||
|
||||
@@ -766,6 +789,7 @@ namespace WMS.Web.Domain.Services
|
||||
var resPurchaseInStock = await sc_erpService.BillQueryForPurchaseInStock(id);
|
||||
var purchaseInStock = resPurchaseInStock.Data;
|
||||
purchaseInStock.Details[0].Qty = erpDetail.Qty;
|
||||
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