From 611b793a87d3a0d6a2edacbf99318a678df3ad3f Mon Sep 17 00:00:00 2001
From: admin <qiutairan163@163.com>
Date: 星期五, 12 十二月 2025 10:11:55 +0800
Subject: [PATCH] 关单CloseExportNotice增加校验库存信息并修改

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |   60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 55 insertions(+), 5 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index e5a8e05..75b2736 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -1920,8 +1920,8 @@
                 {
                     throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚鎴栬鍗曞叧闂�");
                 }
-                //鎬诲簱瀛樹俊鎭�
-                var stockList = Db.Queryable<DataStock>().ToList();
+                ////鎬诲簱瀛樹俊鎭�
+                //var stockList = Db.Queryable<DataStock>().ToList();
                 //鍑哄簱鍗曟槑缁�
                 var noticeDetail = Db.Queryable<BllExportNoticeDetail>().Where(m => m.IsDel == "0" && m.SONo == notice.SONo).ToList();
 
@@ -1934,11 +1934,14 @@
                     notice.UpdateTime = DateTime.Now;
                     Db.Updateable(notice).ExecuteCommand();
 
-                    var skuList = noticeDetail.Select(d => d.SkuNo).ToList();
-                    var stocks = stockList.Where(s => skuList.Contains(s.SkuNo)).ToList();
+                    //var skuList = noticeDetail.Select(d => d.SkuNo).ToList();
+                    //var stocks = stockList.Where(s => skuList.Contains(s.SkuNo)).ToList();
+
+                    List<string> sqlList = new List<string>();
 
                     foreach (var d in noticeDetail)
                     {
+                        #region MyRegion
                         //鏇存敼搴撳瓨鏄庣粏閿佸畾鏁伴噺
                         //var orders = dataContext.WmsExportOrder.Where(o => o.ExportDetailId == d.Id
                         //                && o.ExportExecuteFlag != "4" && o.ExportExecuteFlag == "3" && o.pickingType == 0).ToList();
@@ -1970,7 +1973,8 @@
                         //{
                         //    throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄");
                         //}
-                        #region 搴撳瓨琛ㄥ噺鍘婚攣瀹氭暟閲忎笌鎬绘暟閲�(PDA鎷h揣鐨勬椂鍊欏凡缁忓噺鍘绘暟閲忎簡)
+
+                        //搴撳瓨琛ㄥ噺鍘婚攣瀹氭暟閲忎笌鎬绘暟閲�(PDA鎷h揣鐨勬椂鍊欏凡缁忓噺鍘绘暟閲忎簡)
                         /*var sq = stocks.Where(s => s.SkuNo == d.SkuNo);
                         if (!string.IsNullOrWhiteSpace(d.LotNo))
                         {
@@ -1997,7 +2001,53 @@
                             Db.Updateable(st).UpdateColumns(it => new { it.Qty, it.LockQty }).ExecuteCommand();
                         }*/
                         #endregion
+                        //瀹為檯鎷h揣琛�
+                        string completeSql = $@"select PalletNo,Qty-CompleteQty as lessQty
+	from BllExportAllot
+	where IsDel='0' and SONo='{d.SONo}' and SkuNo='{d.SkuNo}' and LotNo='{d.LotNo}'";
+                        DataTable completeDt = Db.Ado.GetDataTable(completeSql);
+                        //淇敼鎵樼洏鏄庣粏鐨勯攣瀹氭暟閲�
+                        foreach (DataRow dr in completeDt.Rows)
+                        {
+                            decimal lessQty = Convert.ToDecimal(dr["lessQty"]);
+                            if (lessQty > 0)
+                            {
+                                //鏌ョ湅搴撳瓨鏄庣粏閿佸畾鏁伴噺-lessQty
+                                string stockDetailSql = $@"select LockQty-{lessQty} as morelockQty from DataStockDetail where IsDel='0' and SkuNo='{d.SkuNo}' and LotNo='{d.LotNo}' and PalletNo='{dr["PalletNo"] + ""}'";
+                                decimal morelockQty = Db.Ado.GetDecimal(stockDetailSql);
+
+                                if (morelockQty >= 0)
+                                {
+                                    sqlList.Add($@"update DataStockDetail set LockQty=LockQty-{morelockQty} where IsDel='0' and SkuNo='{d.SkuNo}' and LotNo='{d.LotNo}' and PalletNo='{dr["PalletNo"] + ""}'");
+                                }
+                            }
+
+                        }
                     }
+
+                    //淇敼搴撳瓨鎬昏〃
+                    string exportDetailSql = $@"select SkuNo,LotNo,sum(Qty)-sum(CompleteQty) as lessQty
+	from BllExportNoticeDetail
+	where IsDel='0' and SONo='{notice.SONo}'
+	group by SkuNo,LotNo";
+                    DataTable exportDetailDt = Db.Ado.GetDataTable(exportDetailSql);
+
+                    foreach (DataRow dr in exportDetailDt.Rows)
+                    {
+                        decimal lessQty = Convert.ToDecimal(dr["lessQty"]);
+                        if (lessQty > 0)
+                        {
+                            //鏌ョ湅搴撳瓨閿佸畾鏁伴噺-lessQty
+                            string stockDetailSql = $@"select LockQty-{lessQty} as morelockQty from DataStock where IsDel='0' and SkuNo='{dr["SkuNo"] + ""}' and LotNo='{dr["LotNo"] + ""}'";
+                            decimal morelockQty = Db.Ado.GetDecimal(stockDetailSql);
+
+                            if (morelockQty >= 0)
+                            {
+                                sqlList.Add($@"update DataStock set LockQty=LockQty-{morelockQty} where IsDel='0' and SkuNo='{dr["SkuNo"] + ""}' and LotNo='{dr["LotNo"] + ""}'");
+                            }
+                        }
+                    }
+
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
                     var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "鍏冲崟", $"鍏抽棴浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
 

--
Gitblit v1.8.0