From 0b3cbbee78cf76cc2f5cbd5d5f88b869fb29e537 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期三, 19 三月 2025 01:19:43 +0800
Subject: [PATCH] Merge branch 'master' of http://47.115.28.255:8110/r/TigerClouds-Tech/Server/TigerApi6_2024

---
 Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs |   58 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 46 insertions(+), 12 deletions(-)

diff --git a/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs b/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
index 981f686..cc3e82b 100644
--- a/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
+++ b/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
@@ -11,7 +11,7 @@
 using Tiger.IBusiness;
 using Tiger.Model.Sharetronic.Shelf;
 using Tiger.Business.WMS.Sharetronic.Shelf;
-using static IronPython.Modules._ast;
+using Tiger.Model.Entitys.MES.U9C;
 
 namespace Tiger.Business.WMS.Transaction
 {
@@ -22,7 +22,7 @@
     {
         public IIn_BIZ_U9_RECEIPT Init(string id, string userCode, string apiHost, string orgCode)
         {
-            base.Init(id, apiHost, userCode, orgCode);
+            base.Init(id, userCode, apiHost, orgCode);
             Logger.Console.Info($"Start {this.GetType().Name} Transaction[ID: {TransID}]");
             return this;
         }
@@ -124,12 +124,12 @@
                     action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.ReceiptDtlStatusException", receiptDtl.LINE_NO, receiptDtl.STATUS.GetEnumDesc<BIZ_U9_RECEIPT.STATUSs>());
                     return action;
                 }
-                var receiptSn = receipt.SnList.First(q => q.SN == CurInvItem.SN);
-                if (receiptSn.STATUS != WMS_ITEM.STATUSs.WaitIn.GetValue())
+                var receiptSn = receipt.SnList.Where(q => CurInvItem.Items.Any(i => i.SN == q.SN)).ToList();
+                if (receiptSn.Any(q => q.STATUS != WMS_ITEM.STATUSs.WaitIn.GetValue()))
                 {
                     action.IsSuccessed = false;
                     //action.LocaleMsg = Biz.L("鏀惰揣鍗曚腑鏉$爜[{0}]鐘舵�乕{1}]寮傚父锛岃鎵弿姝g‘鐨勬潯鐮�");
-                    action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.ReceiptSnStatusException", receiptSn.SN, receiptSn.STATUS.GetEnumDesc<WMS_ITEM.STATUSs>());
+                    action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.ReceiptSnStatusException", CurInvItem.SN, receiptSn.First(q => q.STATUS != WMS_ITEM.STATUSs.WaitIn.GetValue()).STATUS.GetEnumDesc<WMS_ITEM.STATUSs>());
                     return action;
                 }
 
@@ -190,12 +190,15 @@
                 //鎵ц涓婃灦鏁版嵁澶勭悊
                 foreach (var item in CurInvItem.Items)
                 {
+                    item.IS_LOCKED = "Y";
                     item.SOURCE_CODE = item.TRANS_CODE;
                     item.SOURCE_ORDER = item.TRANS_NO;
                     item.SOURCE_LINE = item.TRANS_LINE;
                     item.TRANS_CODE = nameof(BIZ_U9_RECEIPT);
                     item.TRANS_NO = receipt.ORDER_NO;
                     item.TRANS_LINE = receiptDtl.LINE_NO;
+                    item.PROD_DATE = item.PROD_DATE < new DateTime(2000, 1, 1) ? DateTime.Now : item.PROD_DATE;
+                    item.FIRST_IN_DATE = item.FIRST_IN_DATE < new DateTime(2000, 1, 1) ? DateTime.Now : item.FIRST_IN_DATE;
                 }
                 Result putonResult = PutOn(input.AuthOption, nLocation.LOCATION_CODE);
                 if (!putonResult.IsSuccessed)
@@ -207,13 +210,36 @@
                 }
 
                 //鏇存柊鍗曟嵁淇℃伅
-                receiptSn.STATUS = WMS_ITEM.STATUSs.InStore.GetValue();
-                receiptSn.IS_IN = "Y";
+                foreach(var sn in receiptSn)
+                {
+                    sn.STATUS = WMS_ITEM.STATUSs.InStore.GetValue();
+                    sn.IS_IN = "Y";
+                }
                 //濡傛灉褰撳墠琛屼笂鏋跺畬鎴愭爣璁颁负寰呭鏍�
                 receiptDtl.QTY_IN = receipt.SnList.Where(q => q.LINE_NO == receiptDtl.LINE_NO).Sum(q => q.QTY);
                 if (receiptDtl.QTY_IN == receiptDtl.QTY)
                 {
                     receiptDtl.STATUS = BIZ_U9_RECEIPT.STATUSs.Review.GetValue();
+                    //褰撳墠鍗曟嵁鏄庣粏宸茬粡鍏ㄩ儴涓婃灦瀹屾垚锛屽彲浠ヨ皟鐢║9琛屽鎺ュ彛
+                    var iInput = new SubmitLineInput
+                    {
+                        userId = UserCode,
+                        IsLogin = true,
+                        param = new()
+                        {
+                            RcvLineID = receiptDtl.ID,
+                            RcvDocNo = receiptDtl.ORDER_NO,
+                            DocLineNo = receiptDtl.LINE_NO,
+                            OrgCode = receiptDtl.AUTH_ORG,
+                        }
+                    };
+                    var result = await DI.Resolve<IWMS_U9C>().ReceivementApproveLine(iInput);
+                    if (!result.IsSuccessed)
+                    {
+                        action.IsSuccessed = false;
+                        action.LocaleMsg = result.LocaleMsg;
+                        return action;
+                    }
                 }
                 else
                 {
@@ -236,9 +262,9 @@
                     //浣跨敤缁熶竴鐨勪簨鍔B瀵硅薄
                     var db = GetCommitDB();
                     //鏁版嵁淇濆瓨閫昏緫
-                    db.Storageable(receipt, UserCode).ExecuteCommand();
-                    db.Storageable(receiptDtl, UserCode).ExecuteCommand();
-                    db.Storageable(receiptSn, UserCode).ExecuteCommand();
+                    db.Updateable(receipt, UserCode).UpdateColumns(q => new { q.STATUS, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
+                    db.Updateable(receiptDtl, UserCode).UpdateColumns(q => new { q.STATUS, q.QTY_IN, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
+                    db.Updateable(receiptSn, UserCode).UpdateColumns(q => new { q.STATUS, q.IS_IN, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
                 });
 
                 //瀹屾垚鎵�鏈夊鐞嗗悗浣跨敤浜嬪姟淇濆瓨鏁版嵁
@@ -374,7 +400,7 @@
             action.LocaleMsg = Biz.L("WMS.Default.ScanItem.PutOnSucceeded", CurInvItem.SN, CurInvItem.Location.LOCATION_CODE);
 
             //閲嶇疆宸ュ簭
-            ResetScan();
+            ResetScanInfo();
             return action;
         }
 
@@ -386,9 +412,17 @@
         public override void ResetScan()
         {
             base.ResetScan();
+            ResetScanInfo();
+            CurScanShelf = null;
+        }
+
+        /// <summary>
+        /// 閲嶇疆鎵爜淇℃伅
+        /// </summary>
+        public void ResetScanInfo()
+        {
             Command = null;
             CurInvItem = null;
-            CurScanShelf = null;
         }
 
         public override bool Close(bool needSaveHistoryLog = false)

--
Gitblit v1.9.3