From 9e4d2ea113f6d5631f78aa85bbe39481fd701b72 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期四, 27 二月 2025 10:47:39 +0800
Subject: [PATCH] 雅达-扩展和改进半成品入库和打印标签功能

---
 Tiger.Business.WMS/Transaction/PrintSemiProdLabel.cs |   70 +++++++++++++++++++++++++++-------
 1 files changed, 55 insertions(+), 15 deletions(-)

diff --git a/Tiger.Business.WMS/Transaction/PrintSemiProdLabel.cs b/Tiger.Business.WMS/Transaction/PrintSemiProdLabel.cs
index 335588b..d5f772b 100644
--- a/Tiger.Business.WMS/Transaction/PrintSemiProdLabel.cs
+++ b/Tiger.Business.WMS/Transaction/PrintSemiProdLabel.cs
@@ -16,6 +16,8 @@
 using Tiger.Model.MES.Yada;
 using Apache.NMS.ActiveMQ.Commands;
 using System.Diagnostics;
+using static Microsoft.CodeAnalysis.CSharp.SyntaxTokenParser;
+using Tiger.Model.Entitys.MES.U9C;
 
 namespace Tiger.Business.WMS.Transaction
 {
@@ -24,6 +26,7 @@
     /// </summary>
     public class PrintSemiProdLabel : WMSTransactionBase, IPrintSemiProdLabel
     {
+        private readonly IMES_U9C _IMES_U9C = DI.Resolve<IMES_U9C>();
         public IPrintSemiProdLabel Init(string id, string userCode, string apiHost, string orgCode)
         {
             TransID = id;
@@ -59,27 +62,22 @@
                 }
                 var DocLines = Biz.DataSource["YadaU9C"].Client.Ado.SqlQuery<mes_RcvRptDocLine>($"select * from mes_RcvRptDocLine where DocNo = '{input.SN}'");
 
-                var temps = new List<TemplateInput>();
+                var temps = new List<SemiTemplateInput>();
                 foreach (var item in DocLines)
                 {
-                    var temp = new TemplateInput
+                    var temp = new SemiTemplateInput
                     {
-                        custCode="",
-                        itemCode= item.ItemCode,
-                        itemDesc= item.ItemDescription,
-                        sapItemCode= "",
-                        WoBatch = item.LotCode,
-                        batchQty= item.PackQty,
-                        qrCode="",
+                        RcvRptDocId = item.ID.ToString(),
+                        ItemCode= item.ItemCode,
+                        ItemDesc= item.ItemDescription,
+                        SapItemCode= "",
+                        PackQty= item.PackQty.ToDecimal(),
+                        Qty=0,
+                        DocNo= item.DocNo,
+                        WorkOrder= item.Mo
                     };
                     temps.Add(temp);
                 }
-
-                //var y = Biz.Db.Storageable(DocLines, UserCode)
-                //               .WhereColumns(t => new { t.ItemCode, t.LotCode })
-                //               .ToStorage();
-                //y.AsInsertable.ExecuteCommand();
-                //y.AsUpdateable.IgnoreColumns(x => x.ID).ExecuteCommand();
 
                 action.Data.Data = temps;
                 action.LocaleMsg = Biz.L("WMS.PrintSemiProdLabel.Scan.ScanSuccessed");
@@ -92,6 +90,48 @@
             return SetOutPutMqttMsg(action, input.Locale);
         }
 
+        /// <summary>
+        /// 鎵爜鎻愪氦
+        /// </summary>
+        /// <param name="input"></param>
+        /// <returns></returns>
+        public async Task<ApiAction<ScanOutput>> ScanItem(BaseInput input)
+        {
+            var action = new ApiAction<ScanOutput>(new ScanOutput());
+            try
+            {
+                if (input.SN.IsNullOrEmpty())
+                {
+                    action.IsSuccessed = false;
+                    //action.LocaleMsg = Biz.L("鏉$爜涓嶈兘涓虹┖");
+                    action.LocaleMsg = Biz.L("WMS.Default.ScanItem.SnEmptyFailure");
+                    return SetOutPutMqttMsg(action, input.Locale);
+                }
+                var semiTemplate = (input.Data ?? "").JsonToObject<SemiTemplateInput>() ?? new SemiTemplateInput();
+
+                //鐢熸垚鏉$爜
+                BarcodeCreateByAssignQtyInput barcodeCreateInput = new()
+                {
+                    RevDocId = semiTemplate.RcvRptDocId,
+                    userId = input.AuthOption.UserId,
+                    token = "",
+                    IsLogin = true,
+                    CreateBarCodeItemQty = semiTemplate.PackQty,
+                    LabelQty = semiTemplate.Qty,
+                };
+               
+                var snList = await _IMES_U9C.U9CCreateBarCodeByAssignQty(barcodeCreateInput);
+                action.Data.Data = snList;
+            }
+            catch (Exception ex)
+            {
+                //action.CatchExceptionWithLog(ex, $"鎵弿[{input.SN}]鎻愪氦寮傚父");
+                action.CatchExceptionWithLog(ex, Biz.L("WMS.PrintSemiProdLabel.ScanItem.ScanItemException", input.SN));
+
+            }
+            return SetOutPutMqttMsg(action, input.Locale);
+        }
+
         #endregion
 
         public override bool Close(bool needSaveHistoryLog = false)

--
Gitblit v1.9.3