From f0d4bb3d0d6fe09c49a23bcfdac17fb9386eb346 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期三, 03 九月 2025 16:13:55 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs |   78 ++++++++++++++++++++++++++------------
 1 files changed, 53 insertions(+), 25 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index c7c6021..9cfa5f7 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -273,7 +273,7 @@
                     await Db.Insertable(comList).ExecuteCommandAsync();
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += pickQty;
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                     allot.UpdateTime = DateTime.Now;
                     await Db.Updateable(allot).ExecuteCommandAsync();
 
@@ -396,7 +396,7 @@
                     await Db.Insertable(comList).ExecuteCommandAsync();
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += pickQty;
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                     allot.UpdateTime = DateTime.Now;
                     
                     await Db.Updateable(allot).ExecuteCommandAsync();
@@ -405,6 +405,10 @@
                     stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
                     stockDetail.Qty -= pickQty;
                     stockDetail.LockQty -= pickQty;
+                    if (stockDetail.LockQty < 0)
+                    {
+                        stockDetail.LockQty = 0;
+                    }
                     stockDetail.UDF5 = "1";
                     if (stockDetail.Qty == stockDetail.LockQty)
                     {
@@ -731,7 +735,7 @@
 
                 //淇敼鍑哄簱鍒嗛厤淇℃伅
                 allot.CompleteQty += int.Parse(PickQty);
-                allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                 allot.UpdateTime = DateTime.Now;
                 await Db.Updateable(allot).ExecuteCommandAsync();
 
@@ -2196,7 +2200,7 @@
                 }
                 //鍑哄簱鍒嗛厤淇℃伅
                 var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m =>
-                    m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo &&
+                    m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.SONo == soNo &&
                     m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
                 if (allot == null)
                 {
@@ -2278,7 +2282,7 @@
                     await Db.Insertable(comList).ExecuteCommandAsync();
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += pickQty;
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                     allot.UpdateTime = DateTime.Now;
                     await Db.Updateable(allot).ExecuteCommandAsync();
                     //鍒犻櫎搴撳瓨鏄庣粏
@@ -2286,6 +2290,10 @@
                     //鍒犻櫎鎴栦慨鏀瑰簱瀛�
                     stock.Qty -= pickQty;
                     stock.LockQty -= pickQty;
+                    if (stock.LockQty < 0)
+                    {
+                        stock.LockQty = 0;
+                    }
                     if (stock.Qty <= 0)
                     {
                         await Db.Deleteable(stock).ExecuteCommandAsync();
@@ -2367,10 +2375,10 @@
                             throw Oops.Bah("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
                         }
                         var boxQty = boxInfos.First().Qty;
-                        if (boxQty > needQty)
-                        {
-                            throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
-                        }
+                        //if (boxQty > needQty)
+                        //{
+                        //    throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+                        //}
 
                         foreach (var item in boxInfos)
                         {
@@ -2393,10 +2401,10 @@
                         {
                             throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鏁伴噺");
                         }
-                        if (Convert.ToInt32(pickQty1) > needQty)
-                        {
-                            throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
-                        }
+                        //if (Convert.ToInt32(pickQty1) > needQty)
+                        //{
+                        //    throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
+                        //}
 
                         biaoShi = "2";
                     }
@@ -2488,7 +2496,7 @@
                     await Db.Insertable(comList).ExecuteCommandAsync();
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += pickQty;
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                     allot.UpdateTime = DateTime.Now;
                     if (allot.Status == "5")
                     {
@@ -2500,6 +2508,10 @@
                     stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
                     stockDetail.Qty -= pickQty;
                     stockDetail.LockQty -= pickQty;
+                    if (stockDetail.LockQty < 0)
+                    {
+                        stockDetail.LockQty = 0;
+                    }
                     if (stockDetail.Qty == stockDetail.LockQty)
                     {
                         stockDetail.Status = "2";
@@ -2523,6 +2535,10 @@
                     }
                     stock.Qty -= pickQty;
                     stock.LockQty -= pickQty;
+                    if (stock.LockQty < 0)
+                    {
+                        stock.LockQty = 0;
+                    }
                     if (stock.Qty <= 0)
                     {
                         await Db.Deleteable(stock).ExecuteCommandAsync();
@@ -2576,10 +2592,10 @@
                 var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鎷h揣鍑哄簱", soNo, "鎷h揣", $"鍦≒DA涓婂鍑哄簱鍗曞彿涓猴細{soNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
                 Db.CommitTran();
             }
-            catch (AppFriendlyException e)
-            {
-                Db.RollbackTran();
-            }
+            //catch (AppFriendlyException e)
+            //{
+            //    Db.RollbackTran();
+            //}
             catch (Exception e)
             {
                 Db.RollbackTran();
@@ -2627,7 +2643,7 @@
                 }
                 //鍑哄簱鍒嗛厤淇℃伅
                 var allot = await Db.Queryable<BllExportAllot>().FirstAsync(m =>
-                    m.IsDel == "0" && (m.Status == "2" || m.Status == "3") && m.SONo == soNo &&
+                    m.IsDel == "0" && (m.Status == "2" || m.Status == "3" || m.Status == "5") && m.SONo == soNo &&
                     m.SODetailNo == int.Parse(soDetailId) && m.PalletNo == palletNo);
                 if (allot == null)
                 {
@@ -2707,7 +2723,7 @@
 
                 //淇敼鍑哄簱鍒嗛厤淇℃伅
                 allot.CompleteQty += int.Parse(PickQty);
-                allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                 allot.UpdateTime = DateTime.Now;
                 await Db.Updateable(allot).ExecuteCommandAsync();
 
@@ -2717,6 +2733,10 @@
                 stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
                 stockDetail.Qty -= int.Parse(PickQty);
                 stockDetail.LockQty -= int.Parse(PickQty);
+                if (stockDetail.LockQty < 0)
+                {
+                    stockDetail.LockQty = 0;
+                }
                 if (stockDetail.Qty == stockDetail.LockQty)
                 {
                     stockDetail.Status = "2";
@@ -3859,7 +3879,7 @@
                     await Db.Insertable(comList).ExecuteCommandAsync();
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += pickQty;
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                     allot.UpdateTime = DateTime.Now;
                     if (allot.Status == "5")
                     {
@@ -3872,6 +3892,10 @@
                     stockDetail.InspectMark = "1"; //鎶芥鎵樻爣璇�
                     stockDetail.Qty -= pickQty;
                     stockDetail.LockQty -= pickQty;
+                    if (stockDetail.LockQty < 0)
+                    {
+                        stockDetail.LockQty = 0;
+                    }
                     if (stockDetail.Qty == stockDetail.LockQty)
                     {
                         stockDetail.Status = "2";
@@ -3895,6 +3919,10 @@
                     }
                     stock.Qty -= pickQty;
                     stock.LockQty -= pickQty;
+                    if (stock.LockQty < 0)
+                    {
+                        stock.LockQty = 0;
+                    }
                     stock.IsSampling = "1";
                     if (stock.Qty <= 0)
                     {
@@ -4327,7 +4355,7 @@
 
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += int.Parse(PickQty);
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
 
                     allot.UpdateTime = DateTime.Now;
                     await Db.Updateable(allot).ExecuteCommandAsync();
@@ -4652,7 +4680,7 @@
                     await Db.Insertable(comList).ExecuteCommandAsync();
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += pickQty;
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                     allot.UpdateTime = DateTime.Now;
                     await Db.Updateable(allot).ExecuteCommandAsync();
 
@@ -4863,7 +4891,7 @@
                     await Db.Insertable(comList).ExecuteCommandAsync();
                     //淇敼鍑哄簱鍒嗛厤淇℃伅
                     allot.CompleteQty += pickQty;
-                    allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                    allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                     allot.UpdateTime = DateTime.Now;
                     if (allot.Status == "5")
                     {
@@ -5187,7 +5215,7 @@
 
                 //淇敼鍑哄簱鍒嗛厤淇℃伅
                 allot.CompleteQty += int.Parse(PickQty);
-                allot.Status = allot.Qty == allot.CompleteQty ? "5" : "3";
+                allot.Status = allot.Qty <= allot.CompleteQty ? "5" : "3";
                 allot.UpdateTime = DateTime.Now;
                 await Db.Updateable(allot).ExecuteCommandAsync();
 

--
Gitblit v1.8.0