打印条码,代码逻辑调整

This commit is contained in:
alex
2023-06-21 13:49:49 +08:00
parent 1183ce5a15
commit dc4b2283c3
4 changed files with 74 additions and 25 deletions

View File

@@ -42,11 +42,11 @@ namespace Tnb.WarehouseMgr.Entities.Dto
/// <summary>
/// 需求数量
/// </summary>
public int pr_qty { get; set; }
public decimal? pr_qty { get; set; }
/// <summary>
/// 实际入库数量
/// </summary>
public int qty { get; set; }
public decimal? qty { get; set; }
/// <summary>
/// 不含税单价
/// </summary>
@@ -66,7 +66,7 @@ namespace Tnb.WarehouseMgr.Entities.Dto
/// <summary>
/// 已打印数量
/// </summary>
public int print_qty { get; set; }
public decimal? print_qty { get; set; }
/// <summary>
/// 扫描数量
/// </summary>

View File

@@ -52,12 +52,12 @@ public partial class WmsInstockD : BaseEntity<string>
/// <summary>
/// 入库需求数量
/// </summary>
public int pr_qty { get; set; }
public decimal? pr_qty { get; set; }
/// <summary>
/// 实际入库数量
/// </summary>
public int qty { get; set; }
public decimal qty { get; set; }
/// <summary>
/// 原因
@@ -132,7 +132,7 @@ public partial class WmsInstockD : BaseEntity<string>
/// <summary>
/// 已打印数量
/// </summary>
public int print_qty { get; set; }
public decimal print_qty { get; set; }
/// <summary>
/// 扫描数量

View File

@@ -42,7 +42,7 @@ public partial class WmsTempCode : BaseEntity<string>
/// <summary>
/// 条码数量
/// </summary>
public int? codeqty { get; set; }
public decimal? codeqty { get; set; }
/// <summary>
/// 单位ID

View File

@@ -3,10 +3,12 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Aop.Api.Domain;
using JNPF.Common.Core.Manager;
using JNPF.Systems.Interfaces.System;
using Microsoft.AspNetCore.Mvc;
using Minio.DataModel;
using NPOI.SS.Formula.Functions;
using SqlSugar;
using Tnb.BasicData.Entities;
using Tnb.WarehouseMgr.Entities;
@@ -70,22 +72,47 @@ namespace Tnb.WarehouseMgr
List<WmsTempCode> wmsTempCodes = new();
for (int i = 0; i < inStockDetails.Count; i++)
{
WmsTempCode barCode = new();
barCode.org_id = inStockDetails[i].org_id;
barCode.material_id = inStockDetails[i].material_id;
barCode.material_code = inStockDetails[i].material_code;
var code = $"{inStockDetails[i].material_code}{inStockDetails[i].code_batch}{(i + 1).ToString().PadLeft(4, '0')}";
barCode.barcode = code;
barCode.code_batch = inStockDetails[i].code_batch;
barCode.codeqty = (int?)(await _db.Queryable<BasMaterial>().FirstAsync(it => it.id == inStockDetails[i].material_id))?.minpacking;
barCode.unit_id = inStockDetails[i].unit_id;
barCode.is_lock = 0;
barCode.is_end = "0";
barCode.require_id = input.BillIds[i];
barCode.require_code = (await _db.Queryable<WmsInstockH>().SingleAsync(it => it.id == input.BillIds[i])).bill_code;
barCode.create_id = _userManager.UserId;
barCode.create_time = DateTime.Now;
wmsTempCodes.Add(barCode);
if (inStockDetails[i] is null) continue;
var minPacking = (await _db.Queryable<BasMaterial>().FirstAsync(it => it.id == inStockDetails[i].material_id))?.minpacking;
var codeNum = 0;
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)
{
for (int j = 0; j < codeNum; j++)
{
var index = j + 1;
WmsTempCode barCode = await CreateInstock(inStockDetails[i], index);
if (minPacking.HasValue)
{
if (index < codeNum)
{
barCode.codeqty = minPacking;
}
else
{
if (mod > 0) barCode.codeqty = mod;
else barCode.codeqty = minPacking;
}
}
wmsTempCodes.Add(barCode);
}
}
else if (inStockDetails[i].pr_qty.Value <= minPacking.Value)
{
WmsTempCode barCode = await CreateInstock(inStockDetails[i], i + 1);
wmsTempCodes.Add(barCode);
}
}
else if (!minPacking.HasValue)
{
WmsTempCode barCode = await CreateInstock(inStockDetails[i], i + 1);
wmsTempCodes.Add(barCode);
}
}
var row = await _db.Insertable(wmsTempCodes).ExecuteCommandAsync();
if (row > 0)
@@ -96,17 +123,39 @@ namespace Tnb.WarehouseMgr
await _db.Ado.CommitTranAsync();
}
catch (Exception)
catch (Exception ex)
{
await _db.Ado.RollbackTranAsync();
}
}
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;
barCode.material_code = detail.material_code;
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.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.create_id = _userManager.UserId;
barCode.create_time = DateTime.Now;
return barCode;
}
/// <summary>
/// 扫码入库
/// </summary>
/// <returns></returns>
[HttpPost]
public async Task SacnBarCodeInStock()
public async Task SacnBarCodeInStock()
{
}