This commit is contained in:
alex
2023-06-21 14:01:54 +08:00
parent ceed112536
commit fcb3a321ae

View File

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