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 |   33 ++++++++++++++++++---------------
 1 files changed, 18 insertions(+), 15 deletions(-)

diff --git a/Tiger.Business.WMS/Common/WmsTask.cs b/Tiger.Business.WMS/Common/WmsTask.cs
index 3b052c8..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涓繚瀛樺綋鍓嶉渶瑕佹殏瀛樼殑鏁版嵁鍊�

--
Gitblit v1.9.3