打印条码,代码逻辑调整
This commit is contained in:
@@ -42,11 +42,11 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 需求数量
|
/// 需求数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int pr_qty { get; set; }
|
public decimal? pr_qty { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 实际入库数量
|
/// 实际入库数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int qty { get; set; }
|
public decimal? qty { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 不含税单价
|
/// 不含税单价
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -66,7 +66,7 @@ namespace Tnb.WarehouseMgr.Entities.Dto
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 已打印数量
|
/// 已打印数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int print_qty { get; set; }
|
public decimal? print_qty { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 扫描数量
|
/// 扫描数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -52,12 +52,12 @@ public partial class WmsInstockD : BaseEntity<string>
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 入库需求数量
|
/// 入库需求数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int pr_qty { get; set; }
|
public decimal? pr_qty { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 实际入库数量
|
/// 实际入库数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int qty { get; set; }
|
public decimal qty { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 原因
|
/// 原因
|
||||||
@@ -132,7 +132,7 @@ public partial class WmsInstockD : BaseEntity<string>
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 已打印数量
|
/// 已打印数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int print_qty { get; set; }
|
public decimal print_qty { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 扫描数量
|
/// 扫描数量
|
||||||
|
|||||||
@@ -42,7 +42,7 @@ public partial class WmsTempCode : BaseEntity<string>
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 条码数量
|
/// 条码数量
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int? codeqty { get; set; }
|
public decimal? codeqty { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 单位ID
|
/// 单位ID
|
||||||
|
|||||||
@@ -3,10 +3,12 @@ using System.Collections.Generic;
|
|||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
|
using Aop.Api.Domain;
|
||||||
using JNPF.Common.Core.Manager;
|
using JNPF.Common.Core.Manager;
|
||||||
using JNPF.Systems.Interfaces.System;
|
using JNPF.Systems.Interfaces.System;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Minio.DataModel;
|
using Minio.DataModel;
|
||||||
|
using NPOI.SS.Formula.Functions;
|
||||||
using SqlSugar;
|
using SqlSugar;
|
||||||
using Tnb.BasicData.Entities;
|
using Tnb.BasicData.Entities;
|
||||||
using Tnb.WarehouseMgr.Entities;
|
using Tnb.WarehouseMgr.Entities;
|
||||||
@@ -70,22 +72,47 @@ namespace Tnb.WarehouseMgr
|
|||||||
List<WmsTempCode> wmsTempCodes = new();
|
List<WmsTempCode> wmsTempCodes = new();
|
||||||
for (int i = 0; i < inStockDetails.Count; i++)
|
for (int i = 0; i < inStockDetails.Count; i++)
|
||||||
{
|
{
|
||||||
WmsTempCode barCode = new();
|
if (inStockDetails[i] is null) continue;
|
||||||
barCode.org_id = inStockDetails[i].org_id;
|
var minPacking = (await _db.Queryable<BasMaterial>().FirstAsync(it => it.id == inStockDetails[i].material_id))?.minpacking;
|
||||||
barCode.material_id = inStockDetails[i].material_id;
|
var codeNum = 0;
|
||||||
barCode.material_code = inStockDetails[i].material_code;
|
|
||||||
var code = $"{inStockDetails[i].material_code}{inStockDetails[i].code_batch}{(i + 1).ToString().PadLeft(4, '0')}";
|
if (inStockDetails[i].pr_qty.HasValue && minPacking.HasValue && minPacking.Value > 0)
|
||||||
barCode.barcode = code;
|
{
|
||||||
barCode.code_batch = inStockDetails[i].code_batch;
|
var mod = (int)(inStockDetails[i].pr_qty.Value % minPacking.Value);
|
||||||
barCode.codeqty = (int?)(await _db.Queryable<BasMaterial>().FirstAsync(it => it.id == inStockDetails[i].material_id))?.minpacking;
|
codeNum = (int)(mod > 0 ? inStockDetails[i].pr_qty / minPacking.Value + 1 : inStockDetails[i].pr_qty / minPacking.Value);
|
||||||
barCode.unit_id = inStockDetails[i].unit_id;
|
if (inStockDetails[i].pr_qty.Value > minPacking.Value)
|
||||||
barCode.is_lock = 0;
|
{
|
||||||
barCode.is_end = "0";
|
for (int j = 0; j < codeNum; j++)
|
||||||
barCode.require_id = input.BillIds[i];
|
{
|
||||||
barCode.require_code = (await _db.Queryable<WmsInstockH>().SingleAsync(it => it.id == input.BillIds[i])).bill_code;
|
var index = j + 1;
|
||||||
barCode.create_id = _userManager.UserId;
|
WmsTempCode barCode = await CreateInstock(inStockDetails[i], index);
|
||||||
barCode.create_time = DateTime.Now;
|
if (minPacking.HasValue)
|
||||||
wmsTempCodes.Add(barCode);
|
{
|
||||||
|
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();
|
var row = await _db.Insertable(wmsTempCodes).ExecuteCommandAsync();
|
||||||
if (row > 0)
|
if (row > 0)
|
||||||
@@ -96,17 +123,39 @@ namespace Tnb.WarehouseMgr
|
|||||||
|
|
||||||
await _db.Ado.CommitTranAsync();
|
await _db.Ado.CommitTranAsync();
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
await _db.Ado.RollbackTranAsync();
|
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>
|
||||||
/// 扫码入库
|
/// 扫码入库
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
[HttpPost]
|
[HttpPost]
|
||||||
public async Task SacnBarCodeInStock()
|
public async Task SacnBarCodeInStock()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user