From 16865166b741233bad83756ab30899440ecc0dd3 Mon Sep 17 00:00:00 2001
From: chengsc <11752@DESKTOP-DS49RCP>
Date: 星期六, 19 四月 2025 08:15:30 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs |   95 +++++++++++++++++++++++++++++++----------------
 1 files changed, 63 insertions(+), 32 deletions(-)

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index 5a9d722..512b2d9 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -118,20 +118,20 @@
                 #region 鎷兼墭淇℃伅
                 var sdId = 0;
                 bool isNew = false;
-                var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew);
+                
+                var pinStockDetail = Db.Queryable<DataStockDetail>().First(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo == stockDetail.SkuNo && m.LotNo == stockDetail.LotNo);
+                 
                 if (pinStockDetail != null)
                 {
                     if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐�
                     {
-                        if (pinStockDetail.SONo != notice.SONo)
+                        var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id!= pinStockDetail.Id).ToList();
+                        if (pinStockDetails.Count(m=>m.SONo != notice.SONo) > 0)
                         {
                             throw Oops.Bah("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�");
                         }
-                        if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
-                        {
-                            isNew = true;
-                        }
                     }
+                    
                     sdId = pinStockDetail.Id;
                 }
                 else
@@ -147,6 +147,7 @@
                     newPalletInfo.Status = "1";
                     await Db.Updateable(newPalletInfo).ExecuteCommandAsync();
                 }
+                
                 var sd = new DataStockDetail();
                 if (isNew)
                 {
@@ -189,7 +190,7 @@
                     sd.IsDel = "0";
                     sd.CreateUser = userId;
                     sd.CreateTime = nowDate;
-
+                    sd.UDF5 = "1";
                     //鏂板鎷兼墭搴撳瓨鏄庣粏淇℃伅
                     sdId = await Db.Insertable(sd).ExecuteReturnIdentityAsync();
                 }
@@ -269,6 +270,7 @@
 
                     if (palletNo != palletNoNew)
                     {
+                        var locateStr = stockDetail.LocatNo;
                         //鍒犻櫎鍘熸墭鐩樺簱瀛樻槑缁�
                         await Db.Deleteable(stockDetail).ExecuteCommandAsync();
 
@@ -280,10 +282,19 @@
                         }
                         pallet.Status = "0";
                         await Db.Updateable(pallet).ExecuteCommandAsync();
+
+                        //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+                        var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr);
+                        if (locate != null)
+                        {
+                            locate.Status = "0";
+                            Db.Updateable(locate).ExecuteCommand();
+                        }
                     }
                     else
                     {
                         stockDetail.SONo = soNo;
+                        stockDetail.UDF5 = "1";
                         await Db.Updateable(stockDetail).ExecuteCommandAsync();
                     }
 
@@ -301,14 +312,13 @@
                 }
                 else
                 {
-                    var biaoShi = "0";//0锛氭暣绠辨嫞璐с��1锛氭暎鏀嫞璐с��2锛氭暟閲忔嫞璐�
                     List<DataBoxInfo> boxInfos;
                     var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo);
                     if (await boxInfo.CountAsync() == 0)
                     {
                         throw Oops.Bah("鏈煡璇㈠埌璇ョ鐮佺殑淇℃伅");
                     }
-                    
+                    boxInfos = boxInfo.ToList();
                     var comDetailList = await Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.ExportAllotId == allot.Id && m.PalletNo == palletNo).ToListAsync();
                     
                     //鏁寸鎷h揣
@@ -322,7 +332,7 @@
                     {
                         throw Oops.Bah("鎷h揣鏁伴噺涓嶈兘澶т簬绠卞唴鍓╀綑寰呮嫞鏁伴噺");
                     }
-                    boxInfos = await boxInfo.ToListAsync();
+                    
                     foreach (var item in boxInfos)
                     {
                         if (comDetailList.Any(m => m.BoxNo == item.BoxNo))
@@ -360,9 +370,13 @@
                         comList.Add(completeDetail);
 
                         //淇敼搴撳瓨绠辩爜鏄庣粏
-                        item.StockDetailId = sdId;
-                        item.BindNo = null;//鎵樼洏缁戝畾鍙�
-                        item.PalletNo = palletNoNew;
+                        if (palletNo != palletNoNew)
+                        {
+                            item.StockDetailId = sdId;
+                            item.BindNo = null;//鎵樼洏缁戝畾鍙�
+                            item.PalletNo = palletNoNew;
+                        }
+                        
                         item.Status = "5";//绠辨敮鐘舵�侊紝0锛氭湭缁勬墭  1锛氬凡缁勬墭 2锛氬凡鍏ュ簱 3锛氬凡鍑哄簱 4:宸插垎閰� 5锛氬凡鎷h揣
                         await Db.Updateable(item).ExecuteCommandAsync();
 
@@ -382,6 +396,7 @@
                     stockDetail.BitPalletMark = "1";//淇敼涓洪浂鎵樻爣璇�
                     stockDetail.Qty -= pickQty;
                     stockDetail.LockQty -= pickQty;
+                    stockDetail.UDF5 = "1";
                     if (stockDetail.Qty == stockDetail.LockQty)
                     {
                         stockDetail.Status = "2";
@@ -397,15 +412,9 @@
 
                     if (stockDetail.Qty <= 0)
                     {
+                        var locateStr = stockDetail.LocatNo;
                         await Db.Deleteable(stockDetail).ExecuteCommandAsync();
-                    }
-                    else
-                    {
-                        await Db.Updateable(stockDetail).ExecuteCommandAsync();
-                    }
-                    var num2 = await Db.Queryable<DataStockDetail>().CountAsync(m => m.IsDel == "0" && m.PalletNo == palletNo);
-                    if (num2 <= 0)
-                    {
+
                         //鏀瑰彉鎵樼洏鐘舵��
                         var pallet = await Db.Queryable<SysPallets>().FirstAsync(m => m.PalletNo == palletNo && m.IsDel == "0");
                         if (pallet == null)
@@ -414,7 +423,20 @@
                         }
                         pallet.Status = "0";
                         await Db.Updateable(pallet).ExecuteCommandAsync();
+
+                        //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+                        var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateStr);
+                        if (locate != null)
+                        {
+                            locate.Status = "0";
+                            Db.Updateable(locate).ExecuteCommand();
+                        }
                     }
+                    else
+                    {
+                        await Db.Updateable(stockDetail).ExecuteCommandAsync();
+                    }
+                     
                     //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
                     noticeDetail.CompleteQty += pickQty;
                     await Db.Updateable(noticeDetail).ExecuteCommandAsync();
@@ -542,18 +564,15 @@
 
                 #region 鎷兼墭淇℃伅
                 bool isNew = false;
-                var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew);
+                var pinStockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.SkuNo== stockDetail.SkuNo && m.LotNo == stockDetail.LotNo);
                 if (pinStockDetail != null)
                 {
                     if (palletNo != palletNoNew)//闈炴暣鎵樻嫞璐�
                     {
-                        if (pinStockDetail.SONo != notice.SONo)
+                        var pinStockDetails = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNoNew && m.Id != pinStockDetail.Id).ToList();
+                        if (pinStockDetails.Count(m => m.SONo != notice.SONo) > 0)
                         {
                             throw Oops.Bah("鎷兼墭鎵樼洏涓婂彧鑳芥斁鍚屼竴涓嚭搴撳崟涓嬬殑鐗╂枡锛�");
-                        }
-                        if (pinStockDetail.SkuName != stockDetail.SkuName || pinStockDetail.LotNo != stockDetail.LotNo)
-                        {
-                            isNew = true;
                         }
                     }
                 }
@@ -617,6 +636,7 @@
                     sd.IsDel = "0";
                     sd.CreateUser = userId;
                     sd.CreateTime = nowDate;
+                    sd.UDF5 = "1";
 
                     //鏂板鎷兼墭搴撳瓨鏄庣粏淇℃伅
                     await Db.Insertable(sd).ExecuteReturnIdentityAsync();
@@ -628,11 +648,13 @@
                         //淇敼鎷兼墭鎵樼洏搴撳瓨鏄庣粏
                         pinStockDetail.Qty += int.Parse(PickQty);
                         pinStockDetail.LockQty += int.Parse(PickQty);
+                        pinStockDetail.UDF5 = "1";
                         await Db.Updateable(pinStockDetail).ExecuteCommandAsync();
                     }
                     else
                     {
                         pinStockDetail.SONo = soNo;
+                        pinStockDetail.UDF5 = "1";
                         await Db.Updateable(pinStockDetail).ExecuteCommandAsync();
                     }
                 }
@@ -697,7 +719,7 @@
                 await Db.Updateable(allot).ExecuteCommandAsync();
 
                 int isDel = 0;
-
+                var locateStr = stockDetail.LocatNo;
                 if (palletNo != palletNoNew)
                 {
                     //鍒犻櫎鎴栦慨鏀瑰簱瀛樻槑缁�
@@ -742,6 +764,15 @@
 
                     pallet.Status = "0";
                     await Db.Updateable(pallet).ExecuteCommandAsync();
+
+                    //鏇存敼鍌ㄤ綅鐘舵�佷负绌哄偍浣�
+                    var locate = Db.Queryable<SysStorageLocat>().First(m=>m.IsDel == "0" && m.LocatNo == locateStr);
+                    if (locate!=null)
+                    {
+                        locate.Status = "0";
+                        Db.Updateable(locate).ExecuteCommand();
+                    }
+
                 }
 
                 //淇敼鍑哄簱鍗曟槑缁嗘嫞璐ф暟閲�
@@ -803,10 +834,10 @@
                 throw Oops.Bah("鎵樼洏鐮佷负绌猴紝璇疯緭鍏ユ墭鐩樼爜");
             }
             var palletInfo = await Db.Queryable<DataStockDetail>().FirstAsync(w => w.IsDel == "0" && w.PalletNo == palletNo);
-            if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1")
-            {
-                throw Oops.Bah("璇ユ墭鐩樿繕鏈嚭搴�");
-            }
+            //if (!string.IsNullOrEmpty(palletInfo.WareHouseNo) && type != "1")
+            //{
+            //    throw Oops.Bah("璇ユ墭鐩樿繕鏈嚭搴�");
+            //}
             if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁
             {
                 var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" && m.PalletNo == palletNo).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();

--
Gitblit v1.8.0