From 88faaead38486c9c6b43a550707dceb8e826e60e Mon Sep 17 00:00:00 2001
From: admin <qiutairan163@163.com>
Date: 星期四, 13 十一月 2025 15:51:33 +0800
Subject: [PATCH] pda库存查询

---
 Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs |  132 ++++++++++++++++++++++++++++---------------
 1 files changed, 86 insertions(+), 46 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
index 657aebb..2bbd99e 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs
@@ -126,11 +126,11 @@
                     throw new Exception("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!");
                 }
                 //鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱澶�
-                var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo);
-                if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo))
-                {
-                    throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝涓嶅彲缁勬墭锛岃鏍稿疄锛�");
-                }
+                //var stockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo);
+                //if (stockDetail != null && !string.IsNullOrEmpty(stockDetail.WareHouseNo))
+                //{
+                //    throw new Exception("璇ユ墭鐩樺凡鏈夊偍浣嶄俊鎭紝涓嶅彲缁勬墭锛岃鏍稿疄锛�");
+                //}
 
                 #endregion
 
@@ -151,8 +151,8 @@
                 {
                     throw new Exception("褰撳墠鐗╂枡鍖呰淇℃伅涓嶅瓨鍦紝璇锋牳瀹�!");
                 }
-                var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 
-                var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 
+                var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺 
+                var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺 
 
                 //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
                 new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
@@ -272,20 +272,9 @@
                     }
 
                     // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�  
-                    var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo);
+                    var sd1 = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && m.LotNo == detail.LotNo && m.SkuNo == detail.SkuNo);// && m.ASNDetailNo == bind.ASNDetailNo
                     var sdId1 = 0;
-                    if (sd1 != null)
-                    {
-                        sdId1 = sd1.Id;
-                        // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
-                        sd1.Qty = bind.Qty;
-                        sd1.CompleteTime = comTime;
-                        sd1.UpdateUser = userId;
-                        sd1.UpdateTime = comTime;
-
-                        Db.Updateable(sd1).ExecuteCommand();
-                    }
-                    else
+                    if (sd1 == null)
                     {
                         // 搴撳瓨涓嶅瓨鍦� 鎻掑叆鏁版嵁
                         sd1 = new DataStockDetail()
@@ -296,7 +285,7 @@
                             SkuNo = sku.SkuNo,
                             SkuName = sku.SkuName,
                             Standard = sku.Standard,
-                            Qty = bind.Qty,
+                            Qty = 0,
                             LockQty = 0,
                             FrozenQty = 0,
                             InspectQty = 0,
@@ -317,7 +306,7 @@
                             InspectMark = bind.InspectMark,
                             InspectStatus = sku.IsInspect,
                             BitPalletMark = bind.BitPalletMark,
-                            PackagNo = sku.PackagNo,                    
+                            PackagNo = sku.PackagNo,
                             IsBale = bind.IsBale,
                             IsBelt = bind.IsBelt,
 
@@ -325,6 +314,22 @@
                             CreateUser = 0,
                             CreateTime = comTime
                         };
+                        if (!string.IsNullOrEmpty(detail.Lot1))
+                        {
+                            sd1.ProductionTime = Convert.ToDateTime(detail.Lot1);//鐢熶骇鏃ユ湡
+                        }
+                        if (!string.IsNullOrEmpty(detail.Lot2))
+                        {
+                            sd1.ExpirationTime = Convert.ToDateTime(detail.Lot2);//鍒版湡鏃ユ湡
+                        }
+                        var palletData = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == sd1.PalletNo && !string.IsNullOrEmpty(w.LocatNo));
+                        if (palletData != null)
+                        {
+                            sd1.WareHouseNo = palletData.WareHouseNo;
+                            sd1.RoadwayNo = palletData.RoadwayNo;
+                            sd1.AreaNo = palletData.AreaNo;
+                            sd1.LocatNo = palletData.LocatNo;
+                        }
 
                         //缁存姢搴撳瓨鏄庣粏璐т富/渚涘簲鍟嗕俊鎭� //0:鎴愬搧鍏ュ簱锛�2:涓棿鍝佸叆搴�,4:杞﹂棿浣欐枡鍏ュ簱,6:浠e偍鍏ュ簱,7:瀵勫瓨鍏ュ簱
                         if (notice.Type == "0" || notice.Type == "2" || notice.Type == "4" || notice.Type == "6" || notice.Type == "7")
@@ -342,20 +347,19 @@
                             //淇敼鍚堟牸涓嶅悎鏍兼暟閲�
                             if (quality.IsQualified == "1") //鍚堟牸
                             {
-                                //澧炲姞鍚堟牸鏁伴噺
-                                quality.PassQty += bind.Qty;
                                 sd1.InspectStatus = "1";
                             }
                             else if (quality.IsQualified == "0") //涓嶅悎鏍�
                             {
-                                //澧炲姞涓嶅悎鏍兼暟閲�
-                                quality.FailQty += bind.Qty;
                                 sd1.InspectStatus = "2";
                             }
-                            Db.Updateable(quality).ExecuteCommand(); //淇敼璐ㄦ淇℃伅
                         }
                         //娣诲姞搴撳瓨鏄庣粏
                         sdId1 = Db.Insertable(sd1).ExecuteReturnIdentity();
+                    }
+                    else
+                    {
+                        sdId1 = sd1.Id;
                     }
                     #endregion
 
@@ -484,6 +488,10 @@
                     }
                     detail.UpdateUser = userId;
                     detail.UpdateTime = comTime;
+                    if (notice.Type == "4" || notice.Type == "8")
+                    {
+                        detail.InspectStatus = "1";//杞﹂棿閫�鏂欓粯璁ゆ楠屽悎鏍�
+                    }
                     //鏇存柊鍏ュ簱鍗曟槑缁�
                     Db.Updateable(detail).ExecuteCommand();
 
@@ -504,7 +512,13 @@
                     #endregion
 
                     #region 搴撳瓨鏄庣粏
-                    sd1.Qty = bind.Qty;
+                    
+                    // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
+                    sd1.Qty += bind.Qty;
+                    sd1.CompleteTime = comTime;
+                    sd1.UpdateUser = userId;
+                    sd1.UpdateTime = comTime;
+
                     //鏇存敼搴撳瓨鏄庣粏鏁伴噺
                     Db.Updateable(sd1).Where(m => m.Id == sdId1).ExecuteCommand();
                     #endregion
@@ -1173,7 +1187,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("褰撳墠鐗╂枡鍙婃壒娆′笌鍗曟嵁鏃犲叧鑱旓紝璇锋牳瀹�!");
@@ -1204,8 +1226,8 @@
                     throw new Exception("鏈煡璇㈠埌璇ョ墿鏂欏寘瑁呬俊鎭紝璇锋牳瀹烇紒");
                 }
 
-                var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 
-                var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 
+                var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺 
+                var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺 
                 //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
                 new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
                  
@@ -1312,14 +1334,23 @@
                     throw new Exception("褰撳墠鎵樼洏鍚湁璐存爣鐗╂枡淇℃伅锛屼笉鑳界粍鎵�");
                 }
                 // 鍒ゆ柇搴撳瓨鏄庣粏鏄惁宸叉湁姝ゆ墭鐩樹俊鎭�  
-                var sd1 = Db.Queryable<DataStockDetail>()
-                    .First(m => m.IsDel == "0" && m.ASNDetailNo == bind.ASNDetailNo && m.PalletNo == model.PalletNo && m.SkuNo == detail.SkuNo && m.LotNo == bind.LotNo);
+                var sd1 = new DataStockDetail();
+                if (!string.IsNullOrEmpty(bind.LotNo))
+                {
+                    sd1 = Db.Queryable<DataStockDetail>()
+                    .First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && m.SkuNo == detail.SkuNo && m.LotNo == bind.LotNo);//&& m.ASNDetailNo == bind.ASNDetailNo
+                }
+                else
+                {
+                    sd1 = Db.Queryable<DataStockDetail>()
+                    .First(m => m.IsDel == "0" && m.PalletNo == model.PalletNo && m.SkuNo == detail.SkuNo);// && m.ASNDetailNo == bind.ASNDetailNo
+                }
                 var sdId1 = 0;
                 if (sd1 != null)
                 {
                     sdId1 = sd1.Id;
                     // 搴撳瓨宸插瓨鍦� 鏇存柊鏁版嵁
-                    sd1.Qty = bind.Qty;
+                    sd1.Qty += bind.Qty;
                     sd1.CompleteTime = comTime;
                     sd1.UpdateUser = userId;
                     sd1.UpdateTime = comTime;
@@ -1822,7 +1853,7 @@
 
                     }
                 }
-                else if (notice.Type == "1" || notice.Type == "4") //閲囪喘鍏ュ簱
+                else if (notice.Type == "1" || notice.Type == "4" || notice.Type == "8") //閲囪喘鍏ュ簱
                 {
                     string sqlString = $@"SELECT 
                                             ASNNo,
@@ -1946,8 +1977,8 @@
                         var addComBox = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allotId).ToList();
                         var addComList = addComBox.GroupBy(m => m.BoxNo).ToList();
                         var sku = Db.Queryable<SysMaterials>().First(m => m.SkuNo == addComBox.First().SkuNo);
-                        var pNum = 0;
-                        var bNum = 0;
+                        var pNum = 0m;
+                        var bNum = 0m;
                         new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
                         var boxList = new List<BllBoxInfo>();
                         foreach (var com in addComList)
@@ -2221,8 +2252,8 @@
                     throw new Exception($"鏈煡璇㈠埌鐗╂枡{obj.Data.SkuNo}淇℃伅");
                 }
 
-                var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 
-                var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 
+                var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺 
+                var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺 
                 //鑾峰彇鍖呰淇℃伅
                 new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
                 if (pNum == 0 || bNum == 0)
@@ -2652,8 +2683,8 @@
                 var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == boxInfoOne.SkuNo);
                 var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == sku.PackagNo);
 
-                var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 
-                var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 
+                var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺 
+                var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺 
 
                 //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
                 new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
@@ -2726,7 +2757,7 @@
                         ExpirationTime = boxInfoOne.ExpirationTime,
                         Status = "0",
                         InspectMark = boxInfoOne.InspectMark,
-                        InspectStatus = sku.IsInspect,
+                        InspectStatus = "1",//sku.IsInspect,//浠庤溅闂村叆搴撶殑璐ㄦ鐘舵�侀粯璁ゅ悎鏍�
                         BitPalletMark = "1",
                         PackagNo = sku.PackagNo,
 
@@ -2918,8 +2949,8 @@
                  
                 var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo);
 
-                var pNum = 0;//鎵樼洏鐗╁搧鏁伴噺 
-                var bNum = 0;//绠辩爜鐗╁搧鏁伴噺 
+                var pNum = 0m;//鎵樼洏鐗╁搧鏁伴噺 
+                var bNum = 0m;//绠辩爜鐗╁搧鏁伴噺 
 
                 //鍏叡鏂规硶鑾峰彇鍖呰鏁伴噺
                 new Common().GetPackQtyInfo(pack.PackagNo, ref pNum, ref bNum);
@@ -3265,8 +3296,8 @@
                 }
                 //鑾峰彇鎵樼洏淇℃伅
                 var sku = Db.Queryable<SysMaterials>().First(m => m.IsDel == "0" && m.SkuNo == "100099");
-                var pNum = 0;
-                var bNum = 0;
+                var pNum = 0m;
+                var bNum = 0m;
 
                 new Common().GetPackQtyInfo(sku.PackagNo, ref pNum, ref bNum);
 
@@ -6257,6 +6288,10 @@
                 {
                     throw new Exception("鍌ㄤ綅淇℃伅涓嶅瓨锛岃鏍告煡!");
                 }
+                if (storageLocat.WareHouseNo != "W04")
+                {
+                    throw new Exception("璇ュ偍浣嶄笉鏄钩搴撳偍浣嶏紝璇锋鏌�!");
+                }
                 if (storageLocat.Status != "0")
                 { 
                     var detailInfo=Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.LocatNo == storageLocat.LocatNo);
@@ -6264,6 +6299,11 @@
                     {
                         throw new Exception("鍌ㄤ綅涓嶆槸绌洪棽鐘舵�侊紝璇锋牳鏌�!");
                     }
+                    var logIng = Db.Queryable<LogTask>().First(w => w.IsDel == "0" && w.EndLocat == storageLocat.LocatNo && w.Status == "1" && w.PalletNo != model.PalletNo);
+                    if (logIng != null)
+                    {
+                        throw new Exception("璇ュ偍浣嶆湁姝e湪鎵ц鐨勫叆搴撲换鍔★紝璇锋牳鏌�!");
+                    }
                 }
                 #endregion
 

--
Gitblit v1.8.0