From bdd84cc48ba7b2527584c44d174da8e7d20c5375 Mon Sep 17 00:00:00 2001
From: zhaowc <526854230@qq.com>
Date: 星期三, 18 九月 2024 16:37:13 +0800
Subject: [PATCH] 增加对申请入库时对平库库位的校验

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

diff --git a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
index de3e6a4..2c65e4c 100644
--- a/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
+++ b/Wms/WMS.BLL/BllPdaServer/PdaSoServer.cs
@@ -86,7 +86,7 @@
         {
             if (type == "1")//骞冲簱鍑哄簱鑾峰彇鍗曟嵁
             {
-                var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && m.Status == "1" ).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
+                var allotList = await Db.Queryable<BllExportAllot>().Where(m => m.IsDel == "0" && (m.Status == "1" || m.Status =="0")).Select(m => m.SONo).Distinct().Where(m => !string.IsNullOrWhiteSpace(m)).ToListAsync();
                 return allotList;
             }
             //鑾峰彇鐘舵�佷负寰呮嫞璐ф垨鑰呴儴鍒嗘嫞璐х殑鍑哄簱鍗�
@@ -978,6 +978,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
 
@@ -1193,18 +1194,64 @@
         //鑾峰彇骞冲簱鎵樼洏淇℃伅
         public async Task<List<BoxInfo>> GetPingKuInfoByPallet(string soNo, string palletNo)
         {
-            var info = Db.Queryable<BllExportAllot>().Where(m => m.SONo == soNo && m.PalletNo == palletNo && m.IsDel == "0");
-            if (await info.CountAsync() == 0)
-            {
-                throw Oops.Bah("鏈煡璇㈠埌鎵樼洏鍒嗛厤涓嬪彂鐨勪俊鎭�");
-            }
 
-            var data = await info.GroupBy(m => new { m.SkuNo, m.SkuName, m.LotNo }).Select(m => new BoxInfo()
-            {
-                SkuNo = m.SkuNo,
-                SkuName = m.SkuName,
-                LotNo = m.LotNo
-            }).ToListAsync();
+            var info = Db.Queryable<BllExportAllot>()
+                .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo)
+                .Where(a=>a.IsDel == "0" && (a.Status == "0"||a.Status =="1") && a.SONo == soNo)
+                .GroupBy((a,b) => new { a.SkuNo, a.SkuName, a.LotNo}).Select((a,b) => new BoxInfo()
+                {
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    LotNo = a.LotNo
+                }).ToListAsync();
+            var data = await info;
+
+            /*v var info = Db.Queryable<BllExportAllot>()
+                .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo)
+                .Where(a=>a.IsDel == "0" && (a.Status == "0"||a.Status =="1") && a.SONo == soNo)
+                .GroupBy((a,b) => new { a.SkuNo, a.SkuName, a.LotNo, a.PalletNo,b.LocatNo }).Select((a,b) => new BoxInfo()
+                {
+                    PalletNo = a.PalletNo,
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    LotNo = a.LotNo,
+                    LocatNo =  b.LocatNo
+                }).ToListAsync();
+            var data = await info;*/
+
+            return data;
+        }
+
+        //鑾峰彇骞冲簱鍗曟嵁涓墭鐩樹綅缃俊鎭�
+        public async Task<List<BoxInfo>> GetPingKuLocationInfo(string soNo,string skuno,string lotno)
+        {
+
+            var info = Db.Queryable<BllExportAllot>()
+                .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo)
+                .LeftJoin<SysWareHouse>((a,b,c)=>b.WareHouseNo == c.WareHouseNo)
+                .LeftJoin<SysStorageArea>((a,b,c,d)=>b.AreaNo == d.AreaNo)
+                .Where(a => a.IsDel == "0" && (a.Status == "0" || a.Status == "1") && a.SONo == soNo && a.SkuNo == skuno && a.LotNo == lotno)
+                .GroupBy((a, b,c,d) => new { a.PalletNo, b.LocatNo,c.WareHouseName,d.AreaName }).Select((a, b,c,d) => new BoxInfo()
+                {
+                    PalletNo = a.PalletNo,
+                    LocatNo = b.LocatNo,
+                    WareHouseName = c.WareHouseName,
+                    AreaName = d.AreaName
+                }).ToListAsync();
+            var data = await info;
+
+            /*v var info = Db.Queryable<BllExportAllot>()
+                .LeftJoin<DataStockDetail>((a, b) => a.PalletNo == b.PalletNo)
+                .Where(a=>a.IsDel == "0" && (a.Status == "0"||a.Status =="1") && a.SONo == soNo)
+                .GroupBy((a,b) => new { a.SkuNo, a.SkuName, a.LotNo, a.PalletNo,b.LocatNo }).Select((a,b) => new BoxInfo()
+                {
+                    PalletNo = a.PalletNo,
+                    SkuNo = a.SkuNo,
+                    SkuName = a.SkuName,
+                    LotNo = a.LotNo,
+                    LocatNo =  b.LocatNo
+                }).ToListAsync();
+            var data = await info;*/
 
             return data;
         }
@@ -1346,6 +1393,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
 
@@ -1403,7 +1451,8 @@
         }
 
         //鍙栨牱鍑哄簱鎷h揣(鏍囩)
-        public async Task SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, string pickQty1, string asnNo, int userId)
+        public async Task SampleSoSetPick(string soType, string soNo, string soDetailId, string palletNo, string boxNo, string boxNo3, 
+            string pickQty1, string asnNo, int userId)
         {
             Db.BeginTran();
             try
@@ -2043,6 +2092,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
 
@@ -2515,6 +2565,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
 
@@ -3050,6 +3101,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
         /// <summary>
@@ -3363,6 +3415,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
         #endregion
@@ -3407,7 +3460,7 @@
             var samplingQty = await Db.Queryable<BllSamplingDetails>().Where(m => m.IsDel == "0" && m.QcNo == qcNo).SumAsync(m => m.CompleteQty);
 
             data.QcNo = qcNo;
-            data.Sku = inspectionRequest.SkuNo;
+            data.Sku = inspectionRequest.SkuNo + "-" + inspectionRequest.SkuName;
             data.LotNo = inspectionRequest.LotNo;
             data.Qty = inspectionRequest.SamplingQty.ToString();
             data.SamplingQty = samplingQty == null ? "0" : samplingQty.ToString();
@@ -3873,6 +3926,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
 
@@ -3917,14 +3971,20 @@
                     throw Oops.Bah("璇烽獙鍗曠姸鎬侀敊璇紝璇锋牳瀹�");
                 }
                 //搴撳瓨鏄庣粏淇℃伅
-                var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo);
+                var stockDetail = await Db.Queryable<DataStockDetail>().FirstAsync(m => m.IsDel == "0" && m.PalletNo == palletNo 
+                && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo);
                 if (stockDetail == null)
                 {
                     throw Oops.Bah("鏈湪搴撳瓨涓煡璇㈠嚭褰撳墠鎵樼洏淇℃伅");
                 }
+                // 鍒ゆ柇鎵樼洏鏄惁鍦ㄥ簱鍐�
                 if (!string.IsNullOrWhiteSpace(stockDetail.LocatNo))
                 {
-                    throw Oops.Bah("褰撳墠鎵樼洏涓嶆槸搴撳鎵樼洏锛岃鏍稿疄");
+                    var wareHouseData = await Db.Queryable<SysWareHouse>().FirstAsync(m => m.IsDel == "0" && m.WareHouseNo == stockDetail.WareHouseNo);
+                    if (wareHouseData.Type != "2") 
+                    {
+                        throw Oops.Bah("褰撳墠鎵樼洏涓嶆槸搴撳鎵樼洏锛岃鏍稿疄");
+                    }
                 }
                 //搴撳瓨鎬昏〃
                 var stock = await Db.Queryable<DataStock>().FirstAsync(m => m.IsDel == "0" && m.SkuNo == inspecd.SkuNo && m.LotNo == inspecd.LotNo);
@@ -4051,8 +4111,6 @@
                 await Db.Updateable(inspecd).ExecuteCommandAsync();
                 #endregion
 
-
-
                 //娣诲姞鎿嶄綔鏃ュ織璁板綍
                 var k = new OperationSOServer().AddLogOperationSo("PDA妯″潡", "鍙栨牱鎷h揣", qcNo, "鎷h揣", $"鍦≒DA涓婂璇烽獙鍗曞彿涓猴細{qcNo}鐨勬墭鐩樼爜涓猴細{palletNo}鐨勬嫞璐ф搷浣�", userId);
                 Db.CommitTran();
@@ -4060,6 +4118,7 @@
             catch (Exception e)
             {
                 Db.RollbackTran();
+                throw e;
             }
         }
 

--
Gitblit v1.8.0