feat(入库单): 实现入库单号自动生成及箱数统计功能
为HD和GP12类型的入库单实现自动生成单号功能,格式为类型前缀+日期+4位流水号。同时添加箱数统计逻辑,从相关扫描记录中获取实际箱数。移除硬编码的默认值,使入库单信息更准确。
This commit is contained in:
@@ -1239,9 +1239,41 @@ namespace ZR.Service.Business
|
|||||||
_ = Task.Run(() =>
|
_ = Task.Run(() =>
|
||||||
{
|
{
|
||||||
ProFinishedProductReceiptService proFinishedProductReceiptService = new ProFinishedProductReceiptService();
|
ProFinishedProductReceiptService proFinishedProductReceiptService = new ProFinishedProductReceiptService();
|
||||||
|
|
||||||
|
// 生成ReceiptNo:GP+日期YYYYMMDD+0001顺序递增
|
||||||
|
string today = nowTime.ToString("yyyyMMdd");
|
||||||
|
string receiptNoPrefix = $"HD{today}";
|
||||||
|
|
||||||
|
// 查询今天已存在的最大单号
|
||||||
|
var lastReceipt = Context
|
||||||
|
.Queryable<ProFinishedProductReceipt>()
|
||||||
|
.Where(it => it.ReceiptNo.StartsWith(receiptNoPrefix))
|
||||||
|
.OrderBy(it => it.ReceiptNo, OrderByType.Desc)
|
||||||
|
.First();
|
||||||
|
|
||||||
|
string newReceiptNo;
|
||||||
|
if (lastReceipt != null && !string.IsNullOrEmpty(lastReceipt.ReceiptNo))
|
||||||
|
{
|
||||||
|
// 提取流水号并递增
|
||||||
|
string sequenceStr = lastReceipt.ReceiptNo.Substring(receiptNoPrefix.Length);
|
||||||
|
if (int.TryParse(sequenceStr, out int sequence))
|
||||||
|
{
|
||||||
|
newReceiptNo = $"{receiptNoPrefix}{(sequence + 1):D4}";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newReceiptNo = $"{receiptNoPrefix}0001";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newReceiptNo = $"{receiptNoPrefix}0001";
|
||||||
|
}
|
||||||
|
// 箱数
|
||||||
|
int _packageCount = Context.Queryable<QcBackEndRecordLabelScan>().Where(it => it.WorkOrder == qcBackEndWorkorder.WorkOrder).Where(it => it.LabelType == 1).Count();
|
||||||
ProFinishedProductReceipt newModel = new()
|
ProFinishedProductReceipt newModel = new()
|
||||||
{
|
{
|
||||||
ReceiptNo = "1",
|
ReceiptNo = newReceiptNo,
|
||||||
SiteNo = qcBackEndWorkorder.SiteNo,
|
SiteNo = qcBackEndWorkorder.SiteNo,
|
||||||
WorkOrder = qcBackEndWorkorder.WorkOrder,
|
WorkOrder = qcBackEndWorkorder.WorkOrder,
|
||||||
WarehouseCode = "LS",
|
WarehouseCode = "LS",
|
||||||
@@ -1259,7 +1291,7 @@ namespace ZR.Service.Business
|
|||||||
BatchCode = nowTime.ToString("yyyyMMdd"),
|
BatchCode = nowTime.ToString("yyyyMMdd"),
|
||||||
Unit = "个",
|
Unit = "个",
|
||||||
PackageCode = qcBackEndWorkorder.WorkOrder,
|
PackageCode = qcBackEndWorkorder.WorkOrder,
|
||||||
PackageCount = 1,
|
PackageCount = _packageCount,
|
||||||
PackageNum = qcBackEndWorkorder.QualifiedNumber,
|
PackageNum = qcBackEndWorkorder.QualifiedNumber,
|
||||||
LabelCode = "",
|
LabelCode = "",
|
||||||
LabelPrintStatus = "未打印",
|
LabelPrintStatus = "未打印",
|
||||||
|
|||||||
@@ -738,8 +738,42 @@ namespace ZR.Service.Business
|
|||||||
_ = Task.Run(() =>
|
_ = Task.Run(() =>
|
||||||
{
|
{
|
||||||
ProFinishedProductReceiptService proFinishedProductReceiptService = new ProFinishedProductReceiptService();
|
ProFinishedProductReceiptService proFinishedProductReceiptService = new ProFinishedProductReceiptService();
|
||||||
|
|
||||||
|
// 生成ReceiptNo:GP+日期YYYYMMDD+0001顺序递增
|
||||||
|
string today = nowTime.ToString("yyyyMMdd");
|
||||||
|
string receiptNoPrefix = $"GP{today}";
|
||||||
|
|
||||||
|
// 查询今天已存在的最大单号
|
||||||
|
var lastReceipt = Context
|
||||||
|
.Queryable<ProFinishedProductReceipt>()
|
||||||
|
.Where(it => it.ReceiptNo.StartsWith(receiptNoPrefix))
|
||||||
|
.OrderBy(it => it.ReceiptNo, OrderByType.Desc)
|
||||||
|
.First();
|
||||||
|
|
||||||
|
string newReceiptNo;
|
||||||
|
if (lastReceipt != null && !string.IsNullOrEmpty(lastReceipt.ReceiptNo))
|
||||||
|
{
|
||||||
|
// 提取流水号并递增
|
||||||
|
string sequenceStr = lastReceipt.ReceiptNo.Substring(receiptNoPrefix.Length);
|
||||||
|
if (int.TryParse(sequenceStr, out int sequence))
|
||||||
|
{
|
||||||
|
newReceiptNo = $"{receiptNoPrefix}{(sequence + 1):D4}";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newReceiptNo = $"{receiptNoPrefix}0001";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
newReceiptNo = $"{receiptNoPrefix}0001";
|
||||||
|
}
|
||||||
|
// 箱数
|
||||||
|
int _packageCount = Context.Queryable<QcGp12RecordLabelScan>().Where(it=>it.WorkOrder == qcGp12Workorder.WorkOrder).Where(it => it.LabelType == 1).Count();
|
||||||
|
|
||||||
|
|
||||||
ProFinishedProductReceipt newModel = new() {
|
ProFinishedProductReceipt newModel = new() {
|
||||||
ReceiptNo = "1",
|
ReceiptNo = newReceiptNo,
|
||||||
SiteNo = qcGp12Workorder.SiteNo,
|
SiteNo = qcGp12Workorder.SiteNo,
|
||||||
WorkOrder = qcGp12Workorder.WorkOrder,
|
WorkOrder = qcGp12Workorder.WorkOrder,
|
||||||
WarehouseCode = "LS",
|
WarehouseCode = "LS",
|
||||||
@@ -757,9 +791,9 @@ namespace ZR.Service.Business
|
|||||||
BatchCode = nowTime.ToString("yyyyMMdd"),
|
BatchCode = nowTime.ToString("yyyyMMdd"),
|
||||||
Unit = "个",
|
Unit = "个",
|
||||||
PackageCode = qcGp12Workorder.WorkOrder,
|
PackageCode = qcGp12Workorder.WorkOrder,
|
||||||
PackageCount = 1,
|
PackageCount = _packageCount,
|
||||||
PackageNum = qcGp12Workorder.QualifiedNumber,
|
PackageNum = qcGp12Workorder.QualifiedNumber,
|
||||||
LabelCode = "",
|
LabelCode = $"LabelType=FPR^ReceiptNo={qcGp12Workorder.WorkOrder}^WorkOrder={qcGp12Workorder.WorkOrder}^PartNumber={qcGp12Workorder.PartNumber}^LabelFrom=GP12",
|
||||||
LabelPrintStatus = "未打印",
|
LabelPrintStatus = "未打印",
|
||||||
StorageLocation = "LS",
|
StorageLocation = "LS",
|
||||||
QcStatus = "待检验",
|
QcStatus = "待检验",
|
||||||
|
|||||||
Reference in New Issue
Block a user