From 92e3a7f9d5cab057732d1f512d46a63d09576ac1 Mon Sep 17 00:00:00 2001 From: git_rabbit Date: Tue, 18 Nov 2025 10:48:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E5=85=A5=E5=BA=93=E5=8D=95):=20=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=85=A5=E5=BA=93=E5=8D=95=E5=8F=B7=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8F=8A=E7=AE=B1=E6=95=B0=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 为HD和GP12类型的入库单实现自动生成单号功能,格式为类型前缀+日期+4位流水号。同时添加箱数统计逻辑,从相关扫描记录中获取实际箱数。移除硬编码的默认值,使入库单信息更准确。 --- ZR.Service/mes/qc/backend/QcBackEndService.cs | 36 ++++++++++++++++- ZR.Service/mes/qc/gp12/QcGp12Service.cs | 40 +++++++++++++++++-- 2 files changed, 71 insertions(+), 5 deletions(-) diff --git a/ZR.Service/mes/qc/backend/QcBackEndService.cs b/ZR.Service/mes/qc/backend/QcBackEndService.cs index 87075c3d..6d7ad975 100644 --- a/ZR.Service/mes/qc/backend/QcBackEndService.cs +++ b/ZR.Service/mes/qc/backend/QcBackEndService.cs @@ -1239,9 +1239,41 @@ namespace ZR.Service.Business _ = Task.Run(() => { ProFinishedProductReceiptService proFinishedProductReceiptService = new ProFinishedProductReceiptService(); + + // 生成ReceiptNo:GP+日期YYYYMMDD+0001顺序递增 + string today = nowTime.ToString("yyyyMMdd"); + string receiptNoPrefix = $"HD{today}"; + + // 查询今天已存在的最大单号 + var lastReceipt = Context + .Queryable() + .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().Where(it => it.WorkOrder == qcBackEndWorkorder.WorkOrder).Where(it => it.LabelType == 1).Count(); ProFinishedProductReceipt newModel = new() { - ReceiptNo = "1", + ReceiptNo = newReceiptNo, SiteNo = qcBackEndWorkorder.SiteNo, WorkOrder = qcBackEndWorkorder.WorkOrder, WarehouseCode = "LS", @@ -1259,7 +1291,7 @@ namespace ZR.Service.Business BatchCode = nowTime.ToString("yyyyMMdd"), Unit = "个", PackageCode = qcBackEndWorkorder.WorkOrder, - PackageCount = 1, + PackageCount = _packageCount, PackageNum = qcBackEndWorkorder.QualifiedNumber, LabelCode = "", LabelPrintStatus = "未打印", diff --git a/ZR.Service/mes/qc/gp12/QcGp12Service.cs b/ZR.Service/mes/qc/gp12/QcGp12Service.cs index 7bffc1c3..3561b31a 100644 --- a/ZR.Service/mes/qc/gp12/QcGp12Service.cs +++ b/ZR.Service/mes/qc/gp12/QcGp12Service.cs @@ -738,8 +738,42 @@ namespace ZR.Service.Business _ = Task.Run(() => { ProFinishedProductReceiptService proFinishedProductReceiptService = new ProFinishedProductReceiptService(); + + // 生成ReceiptNo:GP+日期YYYYMMDD+0001顺序递增 + string today = nowTime.ToString("yyyyMMdd"); + string receiptNoPrefix = $"GP{today}"; + + // 查询今天已存在的最大单号 + var lastReceipt = Context + .Queryable() + .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().Where(it=>it.WorkOrder == qcGp12Workorder.WorkOrder).Where(it => it.LabelType == 1).Count(); + + ProFinishedProductReceipt newModel = new() { - ReceiptNo = "1", + ReceiptNo = newReceiptNo, SiteNo = qcGp12Workorder.SiteNo, WorkOrder = qcGp12Workorder.WorkOrder, WarehouseCode = "LS", @@ -757,9 +791,9 @@ namespace ZR.Service.Business BatchCode = nowTime.ToString("yyyyMMdd"), Unit = "个", PackageCode = qcGp12Workorder.WorkOrder, - PackageCount = 1, + PackageCount = _packageCount, PackageNum = qcGp12Workorder.QualifiedNumber, - LabelCode = "", + LabelCode = $"LabelType=FPR^ReceiptNo={qcGp12Workorder.WorkOrder}^WorkOrder={qcGp12Workorder.WorkOrder}^PartNumber={qcGp12Workorder.PartNumber}^LabelFrom=GP12", LabelPrintStatus = "未打印", StorageLocation = "LS", QcStatus = "待检验",