1
This commit is contained in:
@@ -26,6 +26,7 @@ namespace Tnb.WarehouseMgr
|
||||
private readonly ISqlSugarClient _db;
|
||||
private readonly IDictionaryDataService _dictionaryDataService;
|
||||
private readonly IUserManager _userManager;
|
||||
private static Dictionary<string, object> _dicBillCodes = new();
|
||||
public WmsInStockService(ISqlSugarRepository<WmsInstockH> repository, IDictionaryDataService dictionaryDataService, IUserManager userManager)
|
||||
{
|
||||
_db = repository.AsSugarClient();
|
||||
@@ -66,6 +67,11 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
if (_dicBillCodes.Count < 1)
|
||||
{
|
||||
_dicBillCodes = await _db.Queryable<WmsInstockH>().ToDictionaryAsync(x => x.id, x => x.bill_code);
|
||||
}
|
||||
|
||||
var inStockDetails = await _db.Queryable<WmsInstockD>().Where(it => input.BillIds.Contains(it.bill_id)).ToListAsync();
|
||||
if (inStockDetails?.Count > 0)
|
||||
{
|
||||
@@ -78,9 +84,9 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
if (inStockDetails[i].pr_qty.HasValue && minPacking.HasValue && minPacking.Value > 0)
|
||||
{
|
||||
var mod = (int)(inStockDetails[i].pr_qty.Value % minPacking.Value);
|
||||
codeNum = (int)(mod > 0 ? inStockDetails[i].pr_qty / minPacking.Value + 1 : inStockDetails[i].pr_qty / minPacking.Value);
|
||||
if (inStockDetails[i].pr_qty.Value > minPacking.Value)
|
||||
var mod = (int)(inStockDetails[i].pr_qty!.Value % minPacking.Value);
|
||||
codeNum = (int)(mod > 0 ? inStockDetails[i].pr_qty!.Value / minPacking.Value + 1 : inStockDetails[i].pr_qty!.Value / minPacking.Value);
|
||||
if (inStockDetails[i].pr_qty!.Value > minPacking.Value)
|
||||
{
|
||||
for (int j = 0; j < codeNum; j++)
|
||||
{
|
||||
@@ -101,7 +107,7 @@ namespace Tnb.WarehouseMgr
|
||||
wmsTempCodes.Add(barCode);
|
||||
}
|
||||
}
|
||||
else if (inStockDetails[i].pr_qty.Value <= minPacking.Value)
|
||||
else if (inStockDetails[i].pr_qty!.Value <= minPacking.Value)
|
||||
{
|
||||
WmsTempCode barCode = await CreateInstock(inStockDetails[i], i + 1);
|
||||
wmsTempCodes.Add(barCode);
|
||||
@@ -131,7 +137,6 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
private async Task<WmsTempCode> CreateInstock(WmsInstockD detail, int no)
|
||||
{
|
||||
var instock = await _db.Queryable<WmsInstockH>().SingleAsync(it => it.id == detail.bill_id);
|
||||
WmsTempCode barCode = new();
|
||||
barCode.org_id = detail.org_id;
|
||||
barCode.material_id = detail.material_id;
|
||||
@@ -139,12 +144,12 @@ namespace Tnb.WarehouseMgr
|
||||
var code = $"{detail.material_code}{detail.code_batch}{no.ToString().PadLeft(4, '0')}";
|
||||
barCode.barcode = code;
|
||||
barCode.code_batch = detail.code_batch;
|
||||
barCode.codeqty = detail.pr_qty.Value;
|
||||
barCode.codeqty = detail.pr_qty!.Value;
|
||||
barCode.unit_id = detail.unit_id;
|
||||
barCode.is_lock = 0;
|
||||
barCode.is_end = "0";
|
||||
barCode.require_id = detail.bill_id;
|
||||
barCode.require_code = instock?.bill_code;
|
||||
barCode.require_code = _dicBillCodes.ContainsKey(detail.bill_id) ? _dicBillCodes[detail.bill_id]?.ToString() : "";
|
||||
barCode.create_id = _userManager.UserId;
|
||||
barCode.create_time = DateTime.Now;
|
||||
return barCode;
|
||||
|
||||
Reference in New Issue
Block a user