From a960900364d19bbf0ad7923a57989609e7fce798 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期二, 29 四月 2025 11:15:16 +0800
Subject: [PATCH] 设置当前物料的默认储位

---
 Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs |  263 +++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 197 insertions(+), 66 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 ba35d1e..3974b58 100644
--- a/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
+++ b/Tiger.Business.WMS/Transaction/Yada/In_BIZ_U9_RECEIPT.cs
@@ -21,6 +21,7 @@
     /// </summary>
     public class In_BIZ_U9_RECEIPT : WmsTask, IIn_BIZ_U9_RECEIPT
     {
+
         public IIn_BIZ_U9_RECEIPT Init(string id, string userCode, string apiHost, string orgCode)
         {
             base.Init(id, userCode, apiHost, orgCode);
@@ -29,7 +30,7 @@
         }
 
         #region Propertys & Variables
-        
+        public BIZ_U9_RECEIPT CurOrder { get; set; }
         #endregion
 
         #region Functions
@@ -41,33 +42,85 @@
             var action = new ApiAction<ScanOutput>(new ScanOutput());
             try
             {
-                if (input.SN.IsNullOrEmpty())
+                if (input.Command == "ScanOrder")
                 {
-                    action.IsSuccessed = false;
-                    //action.LocaleMsg = Biz.L("鏉$爜涓嶈兘涓虹┖");
-                    action.LocaleMsg = Biz.L("WMS.Default.ScanItem.SnEmptyFailure");
-                    return SetOutPutMqttMsg(action, input.Locale);
+                    var inputOrder = new BaseInput<BIZ_U9_RECEIPT>(input);
+                    if (inputOrder.Data?.ORDER_NO == null)
+                    {
+                        action.IsSuccessed = false;
+                        //action.LocaleMsg = Biz.L("閫夋嫨鐨勫崟鍙蜂笉鑳戒负绌�");
+                        action.LocaleMsg = Biz.L("WMS.Default.ScanOrder.OrderNoEmptyFailure");
+                        return SetOutPutMqttMsg(action, input.Locale);
+                    }
+                    action = await ScanOrder(inputOrder);
                 }
-                //鍒ゆ柇鎵弿鐨勬槸鍚﹁揣鏋�
-                var whUnit = await MainDB.Queryable<V_WH_UNIT>().Where(t => (t.SHELF_CODE.ToUpper() == input.SN || t.LOCATION_CODE.ToUpper() == input.SN) && t.AUTH_ORG == OrgCode).IncludesAllFirstLayer().FirstAsync();
-                //if (string.IsNullOrEmpty(CurScanShelf?.ShelfCode))
-                if (!whUnit.IsNullOrEmpty() || string.IsNullOrEmpty(CurScanShelf?.ShelfCode))
+                else
                 {
-                    action = await ScanShelf(input.SN, whUnit);
-                }
-                else//鎵弿鐗╂枡骞跺鏍�
-                {
-                    action = await ScanItem(input);
+                    if (CurOrder.IsNullOrEmpty())
+                    {
+                        action.IsSuccessed = false;
+                        //action.LocaleMsg = Biz.L("涓婃灦鍓嶈鍏堥�夋嫨闇�瑕佷笂鏋剁殑鏀惰揣鍗�");
+                        action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.NoScanOrder");
+                        action.Data.Command = "ScanOrder";
+                        return SetOutPutMqttMsg(action, input.Locale);
+                    }
+                    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 whUnit = await MainDB.Queryable<V_WH_UNIT>().Where(t => (t.SHELF_CODE.ToUpper() == input.SN || t.LOCATION_CODE.ToUpper() == input.SN) && t.AUTH_ORG == OrgCode).IncludesAllFirstLayer().FirstAsync();
+                    //if (string.IsNullOrEmpty(CurScanShelf?.ShelfCode))
+                    if (!whUnit.IsNullOrEmpty() || string.IsNullOrEmpty(CurScanShelf?.ShelfCode))
+                    {
+                        action = await ScanShelf(input.SN, whUnit);
+                    }
+                    else//鎵弿鐗╂枡骞跺鏍�
+                    {
+                        action = await ScanItem(input);
+                    }
                 }
             }
             catch (Exception ex)
             {
                 //鍙栨秷褰撳墠鎿嶄綔
-                ResetScan();
+                ResetTrans();
                 //action.CatchExceptionWithLog(ex, $"鎵弿[{input.SN}]寮傚父");
                 action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.Scan.ScanException", input.SN));
             }
             return SetOutPutMqttMsg(action, input.Locale);
+        }
+
+        /// <summary>
+        /// 鎵弿涓嬫灦鍗曟嵁鍙风爜
+        /// </summary>
+        public async Task<ApiAction<ScanOutput>> ScanOrder(BaseInput<BIZ_U9_RECEIPT> input)
+        {
+            var action = new ApiAction<ScanOutput>(new ScanOutput());
+            try
+            {
+                var receipt = await MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => q.ORDER_NO == input.Data.ORDER_NO).Includes(q => q.Details, d => d._ItemInfos).IncludesAllFirstLayer().FirstAsync();
+                if (receipt.IsNullOrEmpty())
+                {
+                    action.IsSuccessed = false;
+                    //action.LocaleMsg = Biz.L("鎵句笉鍒版敹璐у崟[{0}]鐨勪俊鎭紝璇烽噸鏂伴�夋嫨姝g‘鐨勬敹璐у崟");
+                    action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanOrder.ReceiptNotExists", input.Data.ORDER_NO);
+                    return SetOutPutMqttMsg(action, input.Locale);
+                }
+                action.Data.Command = "Normal";
+                action.Data.Data = CurOrder = receipt;
+            }
+            catch (Exception ex)
+            {
+                //鍙栨秷褰撳墠鎿嶄綔
+                ResetTrans();
+                //action.CatchExceptionWithLog(ex, $"閫夋嫨鏀惰揣鍗曞紓甯�(Data: {0})");
+                action.CatchExceptionWithLog(ex, Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanOrderException", input?.Data));
+            }
+            return action;
         }
 
         /// <summary>
@@ -106,17 +159,26 @@
                         action.LocaleMsg = Biz.L("WMS.Default.ScanItem.ItemCodeNotExistsOrNotActive", inv.ItemInfo.ITEM_CODE.IsNullOrEmpty(inv.Barcode.ItemCode));
                         return SetOutPutMqttMsg(action, input.Locale);
                     }
+                    //榛樿鍌ㄤ綅楠岃瘉
+                    if (!inv.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty() && inv.ItemInfo.DEFAULT_LOCATION != CurScanShelf.LocationCode)
+                    {
+	                    action.IsSuccessed = false;
+	                    //action.LocaleMsg = Biz.L("鐗╂枡[{0}]鍙厑璁镐笂鏋跺埌鍌ㄤ綅[{1}]锛岃閲嶆柊鎵弿鍌ㄤ綅");
+	                    action.LocaleMsg = Biz.L("WMS.Default.ScanItem.DefaultLocationError", inv.ItemInfo.ITEM_CODE, inv.ItemInfo.DEFAULT_LOCATION);
+	                    return SetOutPutMqttMsg(action, input.Locale);
+                    }
+                    //鍒ゆ柇褰撳墠鏉$爜鏄惁灞炰簬褰撳墠鏀惰揣鍗�
+                    if (inv.Items.First().TRANS_NO != CurOrder.ORDER_NO)
+                    {
+                        action.IsSuccessed = false;
+                        //action.LocaleMsg = Biz.L("鏉$爜鎵�灞炵殑鍗曟嵁[{0}]涓嶆槸閫夋嫨鐨勬敹璐у崟[{1}]锛岃閲嶆柊鎵弿姝g‘鐨勬潯鐮佹垨閫夋嫨鍏朵粬鏀惰揣鍗�");
+                        action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.NotCurOrder", CurInvItem.Items.First().TRANS_NO, CurOrder.ORDER_NO);
+                        return SetOutPutMqttMsg(action, input.Locale);
+                    }
                     CurInvItem = inv;
                 }
 
-                var receipt = await MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => q.ORDER_NO == CurInvItem.Items.First().TRANS_NO).IncludesAllFirstLayer().FirstAsync();
-                if (receipt.IsNullOrEmpty())
-                {
-                    action.IsSuccessed = false;
-                    //action.LocaleMsg = Biz.L("鏀惰揣鍗曚腑鎵句笉鍒版潯鐮佹墍灞炵殑鍗曟嵁[{0}]淇℃伅锛岃閲嶆柊鎵弿鏀惰揣鍗曠殑鏉$爜鎴栭�夋嫨姝g‘鐨勫姛鑳戒笂鏋�");
-                    action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.ReceiptNotExists", CurInvItem.Items.First().TRANS_NO);
-                    return SetOutPutMqttMsg(action, input.Locale);
-                }
+                var receipt = await MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => q.ORDER_NO == CurOrder.ORDER_NO).Includes(q => q.Details, d => d._ItemInfos).IncludesAllFirstLayer().FirstAsync();
                 var receiptDtl = receipt.Details.First(q => q.LINE_NO == CurInvItem.Items.First().TRANS_LINE);
                 if (receiptDtl.STATUS > BIZ_U9_RECEIPT.STATUSs.Storing.GetValue())
                 {
@@ -135,11 +197,21 @@
                 }
                 //浠嶶9鑾峰彇鏀惰揣鍗曡淇℃伅
                 var u9Dtl = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(x => x.RcvId == receipt.ID.ToDouble() && x.DocLineNo == receiptDtl.LINE_NO.ToDouble() && x.SplitFlag != 1).First();
+                //鏀惰揣鍗曠殑鐘舵�佸垽鏂槸鍚﹀凡鎻愪氦IQC瀹℃牳锛屾湭閫氳繃IQC涓嶈兘涓婃灦
+                if (!u9Dtl.IsNullOrEmpty() && u9Dtl.Status != 3)
+                {
+                    action.IsSuccessed = false;
+                    //action.LocaleMsg = Biz.L("鏀惰揣鍗曡鐘舵�乕{0}]寮傚父锛岃鍏堟彁浜QC妫�楠岀粨鏋�");
+                    action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanItem.U9StatusException", u9Dtl.StatusName);
+                    return SetOutPutMqttMsg(action, input.Locale);
+                }
                 if (!u9Dtl.IsNullOrEmpty() && u9Dtl.RcvQtyTU != receiptDtl.QTY_OK)
                 {
                     receiptDtl.ID = u9Dtl.RcvLineId.ToString();
                     receiptDtl.QTY_OK = u9Dtl.RcvQtyTU;
                     receiptDtl.QTY_NG = receiptDtl.QTY - receiptDtl.QTY_OK;
+                    receiptDtl.ERP_STATUS_CODE = u9Dtl.Status.ToString();
+                    receiptDtl.ERP_STATUS_NAME = u9Dtl.StatusName;
                 }
 
                 var nLocation = new WMS_LOCATION();
@@ -171,6 +243,7 @@
                         action.LocaleMsg = Biz.L($"WMS.Default.ScanShelf.ItemAlreadyExistsInLocation", nLocation.LOCATION_CODE, locationData.SN);
                         return SetOutPutMqttMsg(action, input.Locale);
                     }
+                    CurScanShelf.Location = nLocation;
                     CurScanShelf.LocationCode = nLocation.LOCATION_CODE;
                 }
                 else
@@ -192,9 +265,11 @@
                     action.IsSuccessed = false;
                     //action.LocaleMsg = Biz.L("鍌ㄤ綅[{0}]鍙兘瀛樻斁涓�涓墿鏂�");
                     action.LocaleMsg = Biz.L("WMS.Default.ScanItem.LocationSingleFailure", nLocation.LOCATION_CODE);
-                    ResetScan();
+                    ResetTrans();
                     return SetOutPutMqttMsg(action, input.Locale);
                 }
+
+                CurOrder = receipt;
 
                 //鎵ц涓婃灦鏁版嵁澶勭悊
                 foreach (var item in CurInvItem.Items)
@@ -223,7 +298,7 @@
                 {
                     action.IsSuccessed = false;
                     action.LocaleMsg = putonResult.LocaleMsg;
-                    ResetScan();
+                    ResetTrans();
                     return SetOutPutMqttMsg(action, input.Locale);
                 }
 
@@ -233,54 +308,57 @@
                     sn.STATUS = WMS_ITEM.STATUSs.InStore.GetValue();
                     sn.IS_IN = "Y";
                 }
+                //璁剧疆褰撳墠鐗╂枡鐨勯粯璁ゅ偍浣�
+                if (CurInvItem.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty())
+                {
+                    SetDefaultLocation(MainDB, CurInvItem.ItemInfo, nLocation, receiptDtl.ID.ToInt64());
+                }
                 //濡傛灉褰撳墠琛屼笂鏋跺畬鎴愭爣璁颁负寰呭鏍�
-                Action approveAction = null;
                 receiptDtl.QTY_IN = receipt.SnList.Where(q => q.LINE_NO == receiptDtl.LINE_NO && q.STATUS == WMS_ITEM.STATUSs.InStore.GetValue()).Sum(q => q.QTY);
                 if (receiptDtl.QTY_IN == receiptDtl.QTY_OK)
                 {
                     receiptDtl.STATUS = BIZ_U9_RECEIPT.STATUSs.Review.GetValue();
-                    //褰撳墠鍗曟嵁鏄庣粏宸茬粡鍏ㄩ儴涓婃灦瀹屾垚锛屽彲浠ヨ皟鐢║9琛屽鎺ュ彛
-                    approveAction = () =>
+                    //褰撳墠鍗曟嵁鏄庣粏琛屽凡缁忓叏閮ㄤ笂鏋跺畬鎴愶紝鍙互璋冪敤U9琛屽鎺ュ彛锛屽鏋滆瀹″け璐ュ垯鎶ラ敊锛屾渶鍚庝竴涓笂鏋跺け璐�
+                    var iInput = new SubmitLineInput
                     {
-                        var iInput = new SubmitLineInput
+                        userId = UserCode,
+                        IsLogin = true,
+                        param = new()
                         {
-                            userId = UserCode,
-                            IsLogin = true,
-                            param = new()
-                            {
-                                RcvLineID = receiptDtl.ID,
-                                RcvDocNo = receiptDtl.ORDER_NO,
-                                DocLineNo = receiptDtl.LINE_NO,
-                                OrgCode = receiptDtl.AUTH_ORG,
-                            }
-                        };
-                        var result = DI.Resolve<IWMS_U9C>().ReceivementApproveLine(iInput).Result;
-                        if (!result.IsSuccessed)
-                        {
-                            throw new Exception(Biz.T(result.LocaleMsg, input.Locale));
-                        }
-                        else
-                        {
-                            //鏇存柊鍗曟嵁淇℃伅
-                            MainDB.Updateable<BIZ_U9_RECEIPT_DTL>().SetColumns(q => q.STATUS == BIZ_U9_RECEIPT.STATUSs.Finished.GetValue()).Where(q => q.ID == receiptDtl.ID).ExecuteCommand();
-                            if (!MainDB.Queryable<BIZ_U9_RECEIPT_DTL>().Any(q => q.STATUS < BIZ_U9_RECEIPT.STATUSs.Finished.GetValue() && q.ORDER_NO == receipt.ORDER_NO))
-                            {
-                                MainDB.Updateable<BIZ_U9_RECEIPT>().SetColumns(q => q.STATUS == BIZ_U9_RECEIPT.STATUSs.Finished.GetValue()).Where(q => q.ID == receipt.ID).ExecuteCommand();
-                            }
+                            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 SetOutPutMqttMsg(action, input.Locale);
+                    }
+                    else
+                    {
+                        receiptDtl.STATUS = BIZ_U9_RECEIPT.STATUSs.Finished.GetValue();
+                    }
                 }
                 else
                 {
                     receiptDtl.STATUS = BIZ_U9_RECEIPT.STATUSs.Storing.GetValue();
                 }
+                //鏇存柊鍗曟嵁鐘舵��
                 if (receipt.Details.Any(q => q.STATUS < BIZ_U9_RECEIPT.STATUSs.Review.GetValue()))
                 {
                     receipt.STATUS = BIZ_U9_RECEIPT.STATUSs.Storing.GetValue();
                 }
-                else
+                else if (receipt.Details.Any(q => q.STATUS < BIZ_U9_RECEIPT.STATUSs.Finished.GetValue()))
                 {
                     receipt.STATUS = BIZ_U9_RECEIPT.STATUSs.Review.GetValue();
+                }
+                else
+                {
+                    receipt.STATUS = BIZ_U9_RECEIPT.STATUSs.Finished.GetValue();
                 }
 
                 //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊�
@@ -291,17 +369,30 @@
                     var db = GetCommitDB();
                     //鏁版嵁淇濆瓨閫昏緫
                     db.Updateable(receipt, UserCode).UpdateColumns(q => new { q.STATUS, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
-                    db.Updateable(receiptDtl, UserCode).UpdateColumns(q => new { q.ID, q.STATUS, q.QTY_IN, q.QTY_OK, q.QTY_NG, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();
+                    db.Updateable(receiptDtl, UserCode).UpdateColumns(q => new { q.ID, q.STATUS, q.QTY_IN, q.QTY_OK, q.QTY_NG, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME, 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();
                 });
 
                 //瀹屾垚鎵�鏈夊鐞嗗悗浣跨敤浜嬪姟淇濆瓨鏁版嵁
-                action = DoIfFinish(action, input.Locale, approveAction);
+                action = DoIfFinish(action, input.Locale
+                    //, () =>
+                    //{
+                    //    //璁剧疆褰撳墠鐗╂枡鐨勯粯璁ゅ偍浣�
+                    //    if (CurInvItem.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty())
+                    //    {
+                    //        SetDefaultLocation(MainDB, CurInvItem.ItemInfo, nLocation, receiptDtl.ID.ToInt64());
+                    //    }
+                    //}
+                 );
+                //if (!action.Data.Data.IsNullOrEmpty() && action.Data.Data is DefaultInStoreOutput)
+                //{
+                //    (action.Data.Data as DefaultInStoreOutput).OrderInfo = receipt;
+                //}
             }
             catch (Exception ex)
             {
                 //鍙栨秷褰撳墠鎿嶄綔
-                ResetScan();
+                ResetTrans();
                 //action.CatchExceptionWithLog(ex, $"鎵弿鏉$爜[{input.SN}]澶嶆牳寮傚父");
                 action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanItem.ScanException", input.SN));
             }
@@ -321,6 +412,13 @@
                     action.IsSuccessed = false;
                     //action.LocaleMsg = Biz.L("璇疯緭鍏ユ垨鎵弿鏈夋晥鐨勮揣鏋�/鍌ㄤ綅鐮�");
                     action.LocaleMsg = Biz.L("WMS.Default.ScanShelf.ShelfCanNotEmpty");
+                    return action;
+                }
+                if (!CurOrder.Details.Any(q => q.ItemInfo.DEFAULT_LOCATION.IsNullOrEmpty() || q.ItemInfo.DEFAULT_LOCATION == Code))
+                {
+                    action.IsSuccessed = false;
+                    //action.LocaleMsg = Biz.L("褰撳墠鍌ㄤ綅[{0}]涓嶅湪鏀惰揣鍗曢渶瑕佷笂鏋剁殑鍌ㄤ綅鍒楄〃涓細{1}");
+                    action.LocaleMsg = Biz.L("WMS.In_BIZ_U9_RECEIPT.ScanShelf.NoContainLocation", Code, string.Join(", ", CurOrder.Details.Select(q => q.ItemInfo.DEFAULT_LOCATION)));
                     return action;
                 }
 
@@ -392,7 +490,7 @@
             catch (Exception ex)
             {
                 //鍙栨秷褰撳墠鎿嶄綔
-                ResetScan();
+                ResetTrans();
                 //action.CatchExceptionWithLog(ex, $"鎵弿璐ф灦/鍌ㄤ綅[{0}]寮傚父");
                 action.CatchExceptionWithLog(ex, Biz.L("WMS.Default.ScanShelf.ScanException", Code));
             }
@@ -433,29 +531,62 @@
             action.LocaleMsg = Biz.L("WMS.Default.ScanItem.PutOnSucceeded", CurInvItem.SN, CurInvItem.Location.LOCATION_CODE);
 
             //閲嶇疆宸ュ簭
-            ResetScanInfo();
+            ResetScan();
             return SetOutPutMqttMsg(action, locale);
+        }
+
+        /// <summary>
+        ///  鑾峰彇闇�瑕佷笂鏋剁殑鏀惰揣鍗曞垪琛紙甯﹀垎椤碉級
+        /// </summary>
+        /// <returns></returns>
+        public async Task<ApiAction<PageAble<BIZ_U9_RECEIPT>>> GetOrderList(BaseInputWithPage input)
+        {
+            var action = new ApiAction<PageAble<BIZ_U9_RECEIPT>>();
+            var query = Biz.DataSource["YadaU9C"].Client.Queryable<mes_ReturnedDocInfo>().Where(q => q.Status == 3)
+                                    .WhereIF(!input.OrderNo.IsNullOrEmpty(), q => q.DocNo.Contains(input.OrderNo) || SqlFunc.Subqueryable<mes_AsnDocInfo>().Where(a => a.AsnId == q.SrcASNDocId && q.DocNo.Contains(input.OrderNo)).Any())
+                                    .OrderBy(q => q.DocNo).Select(q => new { q.DocNo, q.Status, q.StatusName }).Distinct().ToList();
+
+            action.Data = await MainDB.Queryable<BIZ_U9_RECEIPT>().Where(q => query.Select(o => o.DocNo).Contains(q.ORDER_NO)).ToPageAsync(input.pageIndex, input.pageSize);
+            foreach (var order in action.Data.data)
+            {
+                order.ERP_STATUS_CODE = query.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.Status.ToString();
+                order.ERP_STATUS_NAME = query.FirstOrDefault(q => q.DocNo == order.ORDER_NO)?.StatusName;
+            }
+            MainDB.Updateable(action.Data.data, UserCode).UpdateColumns(q => new { q.UPDATE_TIME, q.UPDATE_USER, q.ERP_STATUS_CODE, q.ERP_STATUS_NAME }).ExecuteCommand();
+            return action;
+        }
+
+        /// <summary>
+        ///  鑾峰彇褰撳墠鏀惰揣鍗曚俊鎭�
+        /// </summary>
+        /// <returns></returns>
+        public async Task<ApiAction<BIZ_U9_RECEIPT>> GetCurOrder()
+        {
+            var action = new ApiAction<BIZ_U9_RECEIPT>();
+            action.Data = CurOrder;
+            return action;
         }
 
         #endregion
 
         /// <summary>
-        /// 閲嶇疆褰撳墠鎿嶄綔锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉�
+        /// 閲嶇疆浜嬪姟鏁版嵁锛屾湁闇�瑕佸垯閲嶅啓姝ゆ柟娉�
         /// </summary>
-        public override void ResetScan()
+        public override void ResetTrans()
         {
-            base.ResetScan();
-            ResetScanInfo();
+            ResetScan();
             CurScanShelf = null;
+            base.ResetTrans();
         }
 
         /// <summary>
-        /// 閲嶇疆鎵爜淇℃伅
+        /// 閲嶇疆鏈鎵爜淇℃伅
         /// </summary>
-        public void ResetScanInfo()
+        public override void ResetScan()
         {
-            Command = null;
+            Command = "Normal";
             CurInvItem = null;
+            base.ResetScan();
         }
 
         public override bool Close(bool needSaveHistoryLog = false)

--
Gitblit v1.9.3