From a2a4de941a59e1ec4b64fa6693fdee08c29f41e4 Mon Sep 17 00:00:00 2001
From: wxw <Administrator@DESKTOP-5BIMHQ3>
Date: 星期二, 05 八月 2025 18:35:46 +0800
Subject: [PATCH] 修改PDA组托功能

---
 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs |   52 +++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 41 insertions(+), 11 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index 60b594c..72de3a2 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -111,7 +111,15 @@
                     throw new Exception("鏈煡璇㈠埌鎵樼洏淇℃伅锛岃鏍稿疄锛�");
                 }
                 //楠岃瘉鍏ュ簱鍗曟槑缁嗘槸鍚﹀瓨鍦�
-                var detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
+                var detail = new BllArrivalNoticeDetail();
+                if (string.IsNullOrEmpty(model.LotNo))
+                {
+                    detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo);
+                }
+                else
+                {
+                    detail = Db.Queryable<BllArrivalNoticeDetail>().First(m => m.IsDel == "0" && m.Id == model.AsnDetailId && m.ASNNo == model.AsnNo && m.LotNo.Contains(model.LotNo));
+                }
                 if (detail == null)
                 {
                     throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!");
@@ -133,13 +141,20 @@
                 #region 鍖呰 
 
                 var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo);
-                var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo);
-
+                if (sku == null)
+                {
+                    throw new Exception("褰撳墠鐗╂枡淇℃伅涓嶅瓨鍦紝璇锋牳瀹�!");
+                }                
+                var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo);
+                if (pack == null)
+                {
+                    throw new Exception("褰撳墠鐗╂枡鍖呰淇℃伅涓嶅瓨鍦紝璇锋牳瀹�!");
+                }
                 var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 
                 var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 
 
                 //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
-                new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum);
+                new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
 
                 #endregion
 
@@ -188,9 +203,9 @@
                 //缁戝畾绠辨�绘暟閲�
                 //model.SkuQty = boxInfoList.Sum(s => s.Qty);
                 //鍜岄�夋嫨鐨勬壒娆″悓鎵规鐨勭鐮佷俊鎭�
-                var sameBoxInfoList = boxInfoList.Where(w => w.LotNo == model.LotNo && w.Status == "0").ToList();
+                var sameBoxInfoList = boxInfoList.Where(w => (w.LotNo ?? "") == model.LotNo && w.Status == "0").ToList();
                 //鍜岄�夋嫨鐨勬壒娆′笉鍚屾壒娆$殑绠辩爜淇℃伅锛堟嫾绠辨壒娆★級
-                var notBoxInfoList = boxInfoList.Where(w => w.LotNo != model.LotNo).ToList();
+                var notBoxInfoList = boxInfoList.Where(w => (w.LotNo ?? "") != model.LotNo).ToList();
                 #endregion
 
                 if (sameBoxInfoList.Count <= 0)
@@ -301,7 +316,7 @@
                             InspectMark = bind.InspectMark,
                             InspectStatus = sku.IsInspect,
                             BitPalletMark = bind.BitPalletMark,
-                            PackagNo = detail.PackagNo,                    //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮�       
+                            PackagNo = sku.PackagNo,                    
                             IsBale = bind.IsBale,
                             IsBelt = bind.IsBelt,
 
@@ -360,7 +375,7 @@
                                 continue;
                             }
                             //绠卞唴鐗╂枡鎵规涓庡崟鎹槑缁嗕笉绗﹀悎
-                            if (box.SkuNo != detail.SkuNo || box.LotNo != model.LotNo)
+                            if (box.SkuNo != detail.SkuNo || (box.LotNo ?? "") != model.LotNo)
                             {
                                 throw new Exception($"-1:{box.BoxNo}绠卞唴鐗╂枡鍙婃壒娆′笌鍗曟嵁涓嶄竴鑷达紝璇锋牳瀹�!");
                             }
@@ -1178,12 +1193,20 @@
                 #region 鍖呰
 
                 var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == detail.SkuNo);
-                //var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == detail.PackagNo);    // liudl 鐢盨ku鍖呰缂栧彿鍙樻洿涓哄叆搴撳崟鏄庣粏鍖呰缂栧彿
+                if (sku == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌璇ョ墿鏂欎俊鎭紝璇锋牳瀹烇紒");
+                }
+                var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo);
+                if (pack == null)
+                {
+                    throw new Exception("鏈煡璇㈠埌璇ョ墿鏂欏寘瑁呬俊鎭紝璇锋牳瀹烇紒");
+                }
 
                 var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 
                 var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 
                 //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
-                new Common().GetPackQtyInfo(detail.PackagNo, ref pNum, ref bNum);
+                new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
                  
 
                 #endregion
@@ -1340,7 +1363,7 @@
                         InspectMark = bind.InspectMark,
                         InspectStatus = inspectStatusStr,
                         BitPalletMark = bind.BitPalletMark,
-                        PackagNo = detail.PackagNo,                    //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮�       
+                        PackagNo = sku.PackagNo,                    //liudl 鐢眘ku鐨勫寘瑁呯紪鍙峰彉涓哄叆搴撳崟鏄庣粏鐨勫寘瑁呯紪鐮�       
                         IsBale = bind.IsBale,
                         IsBelt = bind.IsBelt,
 
@@ -1348,6 +1371,13 @@
                         CreateUser = 0,
                         CreateTime = comTime
                     };
+                    if (stockDetail != null)
+                    {
+                        sd1.WareHouseNo = stockDetail.WareHouseNo;
+                        sd1.AreaNo = stockDetail.AreaNo;
+                        sd1.RoadwayNo = stockDetail.RoadwayNo;
+                        sd1.LocatNo = stockDetail.LocatNo;
+                    }
 
                     //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� //0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱
                     if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")

--
Gitblit v1.8.0