From 5b529126898f79c90062020389b56702a92bd490 Mon Sep 17 00:00:00 2001
From: yuyou_x <2336760928@qq.com>
Date: 星期六, 23 三月 2024 15:01:40 +0800
Subject: [PATCH] Merge branch 'yyk'

---
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs |  115 +++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 82 insertions(+), 33 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 28f183a..42f39e2 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -67,6 +67,11 @@
                 {
                     throw new Exception("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜");
                 }
+                var palletInfo = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == palletNo);
+                if (!string.IsNullOrEmpty(palletInfo.WareHouseNo))
+                {
+                    throw new Exception("璇ユ墭鐩樿繕鏈嚭搴�");
+                }
                 if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁
                 {
                     var allotList = Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToList();
@@ -242,7 +247,19 @@
                         {
                             foreach (var demo in list)
                             {
-                                var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 == demo.BoxNo);
+                                //if (!string.IsNullOrWhiteSpace(boxNo3))
+                                //{
+                                //    var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 == demo.BoxNo);
+                                //}
+                                //else if (!string.IsNullOrWhiteSpace(boxNo))
+                                //{
+                                //    if (expr)
+                                //    {
+                                        
+                                //    }
+                                    
+                                //}
+                                var com = comInfo.FirstOrDefault(m => m.IsDel == "0" && m.BoxNo3 != null && m.BoxNo3 == demo.BoxNo);
                                 if (com != null)
                                 {
                                     demo.PickedQty = com.CompleteQty;
@@ -296,24 +313,30 @@
                 {
                     throw new Exception($"{palletNo}鎵樼洏涓婂瓨鍦ㄧ鐮佷俊鎭紝鏃犳硶鍦ㄦ暟閲忔嫞璐ц繘琛屾搷浣滐紒");
                 }
-                //鍑哄簱鍗曟槑缁�
-                var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(a => a.Id == int.Parse(soDetailId) && a.IsDel == "0");
-                if (noticeDetail == null)
+
+                BllExportAllot allot = null;
+                if (!string.IsNullOrWhiteSpace(soDetailId))
                 {
-                    throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟槑缁嗕俊鎭紝璇锋牳瀹烇紒");
+                    //鍑哄簱鍗曟槑缁�
+                    var noticeDetail = Db.Queryable<BllExportNoticeDetail>().First(a => a.Id == int.Parse(soDetailId) && a.IsDel == "0");
+                    if (noticeDetail == null)
+                    {
+                        throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟槑缁嗕俊鎭紝璇锋牳瀹烇紒");
+                    }
+                    //鍑哄簱鍗曟�诲崟
+                    var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == noticeDetail.SONo);
+                    if (notice == null)
+                    {
+                        throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟�诲崟淇℃伅锛岃鏍稿疄锛�");
+                    }
+                    //鍒嗛厤淇℃伅
+                    allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && (a.Status == "2" || a.Status == "3"));
+                    if (allot == null)
+                    {
+                        throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍒嗛厤淇℃伅锛岃鏍稿疄锛�");
+                    }
                 }
-                //鍑哄簱鍗曟�诲崟
-                var notice = Db.Queryable<BllExportNotice>().First(a => a.IsDel == "0" && a.SONo == noticeDetail.SONo);
-                if (notice == null)
-                {
-                    throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍑哄簱鍗曟�诲崟淇℃伅锛岃鏍稿疄锛�");
-                }
-                //鍒嗛厤淇℃伅
-                var allot = Db.Queryable<BllExportAllot>().First(a => a.IsDel == "0" && a.SONo == notice.SONo && a.SODetailNo == noticeDetail.Id && a.PalletNo == palletNo && a.Status == "2" || a.Status == "3");
-                if (allot == null)
-                {
-                    throw new Exception($"鏈煡璇㈠埌瀵瑰簲鍒嗛厤淇℃伅锛岃鏍稿疄锛�");
-                }
+                
                 //搴撳瓨鏄庣粏
                 var detail = Db.Queryable<DataStockDetail>().First(a => a.IsDel == "0" && a.PalletNo == palletNo);
                 if (detail == null)
@@ -329,8 +352,8 @@
                 {
                     SkuNo = detail.SkuNo,
                     BoxNo = detail.SkuNo,
-                    Qty = (int)allot.Qty,
-                    PickedQty = (int)allot.CompleteQty,
+                    Qty = allot == null ? (int)(detail.Qty-detail.LockQty) : (int)allot.Qty,
+                    PickedQty = allot == null ? 0 : (int)allot.CompleteQty,
                 };
 
                 pdaInfo.Add(info);
@@ -1541,7 +1564,7 @@
                         throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
                     }
                     boxInfos = boxInfo.ToList();
-
+                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot2.Id && m.PalletNo == palletNo).ToList();
                     if (!string.IsNullOrWhiteSpace(boxNo3)) //鏁f敮鎷h揣
                     {
                         boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList();
@@ -1559,7 +1582,13 @@
                         {
                             throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
                         }
-
+                        foreach (var item in boxInfos)
+                        {
+                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+                            {
+                                throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+                            }
+                        }
                         biaoShi = "1";
                     }
                     else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
@@ -1586,17 +1615,23 @@
                         {
                             throw new Exception("璇ユ墭鐩樹笌绠辩爜娌℃湁缁戝畾鍏崇郴");
                         }
-                        
+                        foreach (var item in boxInfos)
+                        {
+                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo == item.BoxNo))
+                            {
+                                throw new Exception($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+                            }
+                        }
                     }
                     var pickQty = 0;//鎷h揣鐨勬暟閲�
-                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot2.Id && m.PalletNo == palletNo).ToList();
+                    
                     var comList = new List<BllCompleteDetail>();
                     foreach (var item in boxInfos)
                     {
-                        if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
-                        {
-                            throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
-                        }
+                        //if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+                        //{
+                        //    throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+                        //}
                         //娣诲姞鎷h揣鏄庣粏
                         var completeDetail = new BllCompleteDetail()
                         {
@@ -1778,6 +1813,7 @@
                         throw new Exception("鏈煡璇㈠埌璇ョ鐮佸強杩芥函鐮佺殑淇℃伅");
                     }
                     boxInfos = boxInfo.ToList();
+                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
                     if (!string.IsNullOrWhiteSpace(boxNo3)) //鏁f敮鎷h揣
                     {
                         boxInfos = boxInfos.Where(m => m.BoxNo3 == boxNo3).ToList();
@@ -1800,7 +1836,13 @@
                         {
                             throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬鍓╀綑寰呮嫞鏁伴噺");
                         }
-
+                        foreach (var item in boxInfos)
+                        {
+                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+                            {
+                                throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+                            }
+                        }
                         biaoShi = "1";
                     }
                     else if (!string.IsNullOrEmpty(pickQty1) && int.Parse(pickQty1) > 0)//鏁伴噺鎷h揣
@@ -1836,16 +1878,23 @@
                         {
                             throw new Exception("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
                         }
+                        foreach (var item in boxInfos)
+                        {
+                            if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo == item.BoxNo))
+                            {
+                                throw new Exception($"褰撳墠{item.BoxNo}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+                            }
+                        }
                     }
                     var pickQty = 0;//鎷h揣鐨勬暟閲�
-                    var comDetailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToList();
+                   
                     var comList = new List<BllCompleteDetail>();
                     foreach (var item in boxInfos)
                     {
-                        if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
-                        {
-                            throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
-                        }
+                        //if (biaoShi != "2" && comDetailList.Any(m => m.BoxNo3 == item.BoxNo3))
+                        //{
+                        //    throw new Exception($"褰撳墠{item.BoxNo}涓瓄item.BoxNo3}宸叉嫞璐у畬鎴愶紝璇峰嬁閲嶅鎷h揣");
+                        //}
                         //娣诲姞鎷h揣鏄庣粏
                         var completeDetail = new BllCompleteDetail()
                         {

--
Gitblit v1.8.0