From 77da8b9247b9df926678cfb7e4af0f0900f3a084 Mon Sep 17 00:00:00 2001
From: Rodney Chen <rodney.chen@hotmail.com>
Date: 星期二, 13 五月 2025 18:32:52 +0800
Subject: [PATCH] 修复了一些已知问题

---
 Tiger.Business.WMS/Common/WmsTask.cs |   62 +++++++++++++++++-------------
 1 files changed, 35 insertions(+), 27 deletions(-)

diff --git a/Tiger.Business.WMS/Common/WmsTask.cs b/Tiger.Business.WMS/Common/WmsTask.cs
index 518fb91..7e3432d 100644
--- a/Tiger.Business.WMS/Common/WmsTask.cs
+++ b/Tiger.Business.WMS/Common/WmsTask.cs
@@ -358,9 +358,9 @@
                                             //濡傛灉鏈変紶鍏ヨ揣鏋讹紝鍒欏彧鍏佽璐ф灦鐨勭墿鏂�
                                             .WhereIF(!option.ShelfID.IsNullOrEmpty(), (q, p, w, r, s, l) => q.SHELF_ID == option.ShelfID && q.AUTH_ORG == auth.CurOrg)
                                             //浼樺厛浣跨敤搴撳瓨姹犱腑鐨勭墿鏂�
-                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IsNullOrEmpty(p.ID))
+                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IIF(SqlFunc.IsNullOrEmpty(p.ID), 1, 0))
                                             //浼樺厛浣跨敤灏炬暟鐗╂枡(鎴枡鎴栬�呴��鏂欎箣鍚庣殑鐗╂枡)
-                                            //.OrderByDescending((q, p, w, r, s, l) => q.SN.Contains("_C") || q.SN.Contains("_T"))
+                                            //.OrderByDescending((q, p, w, r, s, l) => SqlFunc.IIF(q.SN.Contains("_C") || q.SN.Contains("_T"), 1, 0))
                                             //澶囨枡绛栫暐锛氭寜鐢熶骇鏃ユ湡鍏堣繘鍏堝嚭
                                             .OrderByIF(option.Strategy.HasFlag(WMS_ITEM_POOL.STRATEGYs.FIFO), (q, p, w, r, s, l) => q.PROD_DATE)
                                             //鎸夌敓浜ф棩鏈熷厛杩涘厛鍑猴紝鍐嶆寜鐗╂枡鏁伴噺浠庡皬鍒板ぇ锛�
@@ -392,11 +392,11 @@
                     result.Flag = Result.Flags.Warning;
                     result.LocaleMsg = new("WMS.WmsItem.Suggest.Warning", total);
                 }
-                //if (total == 0)
-                //{
-                //    result.Flag = Result.Flags.Failed;
-                //    result.LocaleMsg = new("WMS.WmsItem.Suggest.Failed");
-                //}
+                if (total == 0)
+                {
+                    result.Flag = Result.Flags.Failed;
+                    result.LocaleMsg = new("WMS.WmsItem.Suggest.Failed");
+                }
             }
             catch (Exception ex)
             {
@@ -444,9 +444,9 @@
                                             //濡傛灉鏈変紶鍏ヨ揣鏋讹紝鍒欏彧鍏佽璐ф灦鐨勭墿鏂�
                                             .WhereIF(!option.ShelfID.IsNullOrEmpty(), (q, p, w, r, s, l) => q.SHELF_ID == option.ShelfID && q.AUTH_ORG == auth.CurOrg)
                                             //浼樺厛浣跨敤搴撳瓨姹犱腑鐨勭墿鏂�
-                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IsNullOrEmpty(p.ID))
+                                            .OrderBy((q, p, w, r, s, l) => SqlFunc.IIF(SqlFunc.IsNullOrEmpty(p.ID), 1, 0))
                                             //浼樺厛浣跨敤灏炬暟鐗╂枡(鎴枡鎴栬�呴��鏂欎箣鍚庣殑鐗╂枡)
-                                            //.OrderByDescending((q, p, w, r, s, l) => q.SN.Contains("_C") || q.SN.Contains("_T"))
+                                            //.OrderByDescending((q, p, w, r, s, l) => SqlFunc.IIF(q.SN.Contains("_C") || q.SN.Contains("_T"), 1, 0))
                                             //澶囨枡绛栫暐锛氭寜鐢熶骇鏃ユ湡鍏堣繘鍏堝嚭
                                             .OrderByIF(option.Strategy.HasFlag(WMS_ITEM_POOL.STRATEGYs.FIFO), (q, p, w, r, s, l) => q.PROD_DATE)
                                             //鎸夌敓浜ф棩鏈熷厛杩涘厛鍑猴紝鍐嶆寜鐗╂枡鏁伴噺浠庡皬鍒板ぇ锛�
@@ -513,11 +513,12 @@
                     result.Flag = Result.Flags.Warning;
                     result.LocaleMsg = new("WMS.WmsItem.Suggest.Warning", totalQty);
                 }
-                //if (totalQty == 0)
-                //{
-                //    result.Flag = Result.Flags.Failed;
-                //    result.LocaleMsg = new("WMS.WmsItem.Suggest.Failed");
-                //}
+                if (totalQty == 0)
+                {
+                    result.Flag = Result.Flags.Failed;
+                    //result.LocaleMsg = new("鐗╂枡涓嬫灦鎺ㄨ崘澶辫触锛氬簱瀛樹腑鎵句笉鍒板彲浠ヤ笅鏋剁殑鐗╂枡");
+                    result.LocaleMsg = new("WMS.WmsItem.Suggest.Failed");
+                }
             }
             catch (Exception ex)
             {
@@ -620,6 +621,7 @@
             var result = new Result(Result.Flags.Success);
             try
             {
+                var newItems = new List<WMS_ITEM>();
                 foreach (var item in CurInvItem.Items)
                 {
                     var sn = snList.First(q => q.SN == item.SN);
@@ -662,7 +664,7 @@
                             META_SN = newItem.SN,
                         });
 
-                        CurInvItem.Items.Add(newItem);
+                        newItems.Add(newItem);
                         CurInvItem.History.Add(his);
                         CurInvItem.Packages.Add(newPkg);
                     }
@@ -685,6 +687,7 @@
                         CurInvItem.History.Add(new WMS_ITEM_HIS(item, $"鏉$爜[{CurInvItem.SN}]浠庡偍浣峓{CurInvItem?.Location?.LOCATION_CODE}]鍙戞枡涓嬫灦鎴愬姛锛岀姸鎬乕{item.STATUS.GetEnumDesc<WMS_ITEM.STATUSs>()}]锛屾搷浣滃崟鎹甗{item.TRANS_NO}]"));
                     }
                 }
+                CurInvItem.Items.AddRange(newItems);
                 CurInvItem.Packages = WMS_ITEM_PKG.UpdateQty(CurInvItem.Packages);
 
                 //鍒涘缓鍙橀噺鍏嬮殕瀵硅薄鐢ㄤ簬浼犲叆DBSubmitAction涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊�
@@ -769,22 +772,27 @@
         /// <summary>
         /// 璁剧疆褰撳墠鐗╂枡鐨勯粯璁ゅ偍浣�
         /// </summary>
-        public ApiAction<ScanOutput> SetDefaultLocation(DbClient db, BAS_ITEM Item, WMS_LOCATION location)
+        public ApiAction<ScanOutput> SetDefaultLocation(DbClient db, BAS_ITEM Item, WMS_LOCATION location, long RcvLineId)
         {
             var action = new ApiAction<ScanOutput>(new ScanOutput());
 
             //璋冪敤璁剧疆榛樿鍌ㄤ綅鎺ュ彛
-            //var iInput = new CreateRcvLineLocationInput
-            //{
-
-            //};
-            //var result = await DI.Resolve<IWMS_U9C>().CreateRcvLineLocation(iInput);
-            //if (!result.IsSuccessed)
-            //{
-            //    action.IsSuccessed = false;
-            //    action.LocaleMsg = result.LocaleMsg;
-            //}
-            //else
+            var iInput = new CreateRcvLineLocationInput
+            {
+                IsLogin = true,
+                RcvLineLocationParam = new()
+                {
+                    RcvLineId = RcvLineId,
+                    BinCode = location.LOCATION_CODE,
+                }
+            };
+            var result =  DI.Resolve<IWMS_U9C>().CreateRcvLineLocation(iInput).Result;
+            if (!result.IsSuccessed)
+            {
+                action.IsSuccessed = false;
+                action.LocaleMsg = result.LocaleMsg;
+            }
+            else
             {
                 Item.DEFAULT_LOCATION = location.LOCATION_CODE;
                 db.Updateable(Item, UserCode).UpdateColumns(q => new { q.DEFAULT_LOCATION, q.UPDATE_TIME, q.UPDATE_USER }).ExecuteCommand();

--
Gitblit v1.9.3