From 5ce969ed34e91c931cce38e2feb5d2c208633a96 Mon Sep 17 00:00:00 2001
From: chengsc <Demo@DESKTOP-CPA90BF>
Date: 星期日, 03 十一月 2024 18:34:53 +0800
Subject: [PATCH] 修改问题

---
 Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs |  137 +++++++++++++++++++++++++--------------------
 1 files changed, 76 insertions(+), 61 deletions(-)

diff --git a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
index bccc202..1a22d15 100644
--- a/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
+++ b/Wms/WMS.BLL/BllSoServer/ExportNoticeServer.cs
@@ -262,10 +262,22 @@
         }
 
         //鍥炰紶鍑哄簱鍗�
-        public bool FinishSo(int id, string url, int userId)
+        public bool FinishSo(int id, string url, string userNo, string pwd, int userId)
         {
             try
             {
+                var loginPwd = Md5Tools.CalcMd5(pwd);
+                var date = Db.Queryable<SysUserInfor>().First(m => m.IsDel == "0" && m.UserName == userNo && m.PassWord == loginPwd);
+
+                if (date == null) //璐﹀彿瀵嗙爜鏄惁姝g‘
+                {
+                    throw new Exception("璐﹀彿瀵嗙爜涓嶆纭垨娌℃湁姝よ处鍙�");
+                }
+                if (date.Status != "0") //褰撳墠璐﹀彿鏄惁姝e父鍚敤
+                {
+                    throw new Exception("褰撳墠璐﹀彿闈炲惎鐢ㄧ姸鎬�");
+                }
+
                 var notice = Db.Queryable<BllExportNotice>().First(m => m.Id == id && m.IsDel == "0");
                 if (notice == null)
                 {
@@ -280,7 +292,7 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍗曟嵁鏄庣粏淇℃伅");
                 }
-                if (userId == notice.UpdateUser)
+                if (date.Id == notice.UpdateUser)
                 {
                     throw new Exception("澶嶆牳澶辫触锛屽鏍镐汉鍛樺拰鍏抽棴璁㈠崟浜哄憳涓嶈兘鐩稿悓锛�");
                 }
@@ -315,10 +327,10 @@
 
                 notice.Status = "6";
                 notice.CheckTime = DateTime.Now;
-                notice.CheckUser = userId;
+                notice.CheckUser = date.Id;
                 Db.Updateable(notice).ExecuteCommand();
 
-                new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "澶嶆牳", $"澶嶆牳浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
+                new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "澶嶆牳", $"{date.RealName}澶嶆牳浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
                 return true;
             }
             catch (Exception e)
@@ -438,7 +450,7 @@
                         break;
                     case "5"://涓棿鍝佸嚭搴�
                         skuType = "(4)";
-                        inspectStatus = "1";
+                        inspectStatus = "0,1";
                         break;
                     case "6"://浠e偍鍑哄簱
                         skuType = "(0,1,2,3,4)";
@@ -1231,9 +1243,9 @@
                 {
                     throw new Exception("鏈煡璇㈠埌鍑哄簱鍗曟嵁淇℃伅");
                 }
-                if (notice.Status != "4")
+                if (notice.Status != "4" && notice.Status != "3")
                 {
-                    throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负鎵ц瀹屾垚鎴栬鍗曞叧闂�");
+                    throw new Exception("鍙傛暟寮傚父,璇锋鏌ョ姸鎬佹槸鍚︿负姝e湪鎵ц鎴栨墽琛屽畬鎴�");
                 }
                 //鎬诲簱瀛樹俊鎭�
                 var stockList = Db.Queryable<DataStock>().ToList();
@@ -1254,64 +1266,67 @@
 
                     foreach (var d in noticeDetail)
                     {
-                        //鏇存敼搴撳瓨鏄庣粏閿佸畾鏁伴噺
-                        //var orders = dataContext.WmsExportOrder.Where(o => o.ExportDetailId == d.Id
-                        //                && o.ExportExecuteFlag != "4" && o.ExportExecuteFlag == "3" && o.pickingType == 0).ToList();
-                        //foreach (var o in orders)
-                        //{
-                        //    if (o.ExportQuantity > o.PickedNum) //鍒ゆ柇鎷h揣鏄惁宸叉嫞瀹�
-                        //    {
-                        //        var pq = dataContext.WmsStockTray.Where(t => t.StockGoodId == o.ExportGoodsCode && t.StockStockCode == o.ExportStockCode);
-
-                        //        if (string.IsNullOrWhiteSpace(o.ExportLotNo))
-                        //        {
-                        //            pq = pq.Where(t => t.StockLotNo == null || t.StockLotNo == "");
-                        //        }
-                        //        else
-                        //        {
-                        //            pq = pq.Where(t => t.StockLotNo == o.ExportLotNo);
-                        //        }
-                        //        var pallet = pq.FirstOrDefault();
-                        //        //搴撳瓨鎵樼洏淇℃伅閿佸畾鏁伴噺杩樺師涓烘湭閿佸畾
-                        //        if (pq != null)
-                        //        {
-                        //            pallet.LockQuantity -= o.ExportQuantity.Value - o.PickedNum;
-                        //            pallet.StockQuantity += o.ExportQuantity.Value - o.PickedNum;
-                        //        }
-                        //    }
-                        //}
-
-                        if (d.Qty != d.CompleteQty)
+                        if (notice.Type == "0")//鎴愬搧鍑哄簱
                         {
-                            throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄");
-                        }
-                        #region 搴撳瓨琛ㄥ噺鍘婚攣瀹氭暟閲忎笌鎬绘暟閲�(PDA鎷h揣鐨勬椂鍊欏凡缁忓噺鍘绘暟閲忎簡)
-                        /*var sq = stocks.Where(s => s.SkuNo == d.SkuNo);
-                        if (!string.IsNullOrWhiteSpace(d.LotNo))
-                        {
-                            sq = sq.Where(s => s.LotNo == d.LotNo);
-                        }
-                        else
-                        {
-                            sq = sq.Where(s => string.IsNullOrWhiteSpace(s.LotNo));
-                        }
-                        var st = sq.FirstOrDefault();
-                        if (st != null)
-                        {
-                            if (d.CompleteQty <= d.Qty)
+                            if (d.Qty != d.CompleteQty)
                             {
-                                st.Qty += d.Qty - d.CompleteQty.Value;
+                                throw new Exception("褰撳墠鍗曟嵁鏄庣粏涓鍒掓暟閲忎笌鎷h揣鏁伴噺涓嶇锛岃鏍稿疄");
+                            }
+                        }
+                        if (d.Qty < d.CompleteQty)
+                        {
+                            //鏇存敼搴撳瓨鏄庣粏閿佸畾鏁伴噺
+                            var allotList = Db.Queryable<BllExportAllot>().Where(o => o.SODetailNo == d.Id && o.Status == "3" && o.IsDel == "0").ToList();
+                            foreach (var o in allotList)
+                            {
+                                if (o.Qty > o.CompleteQty) //鍒ゆ柇鎷h揣鏄惁宸叉嫞瀹�
+                                {
+                                    var pq = Db.Queryable<DataStockDetail>().Where(t => t.IsDel == "0" && t.Id == o.StockId && t.SkuNo == o.SkuNo);
+
+                                    if (string.IsNullOrWhiteSpace(o.LotNo))
+                                    {
+                                        pq = pq.Where(t => string.IsNullOrWhiteSpace(t.LotNo));
+                                    }
+                                    else
+                                    {
+                                        pq = pq.Where(t => t.LotNo == o.LotNo);
+                                    }
+                                    var pallet = pq.First();
+                                    //搴撳瓨鎵樼洏淇℃伅閿佸畾鏁伴噺杩樺師涓烘湭閿佸畾
+                                    if (pq != null)
+                                    {
+                                        //pallet.Qty -= o.CompleteQty.Value - o.Qty;
+                                        pallet.LockQty -= o.Qty - o.CompleteQty.Value;
+                                        Db.Updateable(pallet).UpdateColumns(it => new { it.LockQty }).ExecuteCommand();
+                                    }
+                                }
+                            }
+
+
+                            #region 搴撳瓨琛ㄥ噺鍘婚攣瀹氭暟閲忎笌鎬绘暟閲�(PDA鎷h揣鐨勬椂鍊欏凡缁忓噺鍘绘暟閲忎簡)
+                            var sq = stocks.Where(s => s.SkuNo == d.SkuNo);
+                            if (!string.IsNullOrWhiteSpace(d.LotNo))
+                            {
+                                sq = sq.Where(s => s.LotNo == d.LotNo);
                             }
                             else
                             {
-                                st.Qty -= d.CompleteQty.Value - d.Qty;
+                                sq = sq.Where(s => string.IsNullOrWhiteSpace(s.LotNo));
                             }
-                            st.LockQty -= d.Qty;
-                            st.Qty -= d.Qty;
-                            //淇敼鎬诲簱瀛樿〃
-                            Db.Updateable(st).UpdateColumns(it => new { it.Qty, it.LockQty }).ExecuteCommand();
-                        }*/
-                        #endregion
+                            if (notice.Type == "6")//浠e偍
+                            {
+                                sq = sq.Where(s => s.OwnerNo == notice.CustomerNo);
+                            }
+                            var st = sq.FirstOrDefault();
+                            if (st != null)
+                            {
+                                st.LockQty -= d.Qty - d.CompleteQty.Value;
+                                //淇敼鎬诲簱瀛樿〃
+                                Db.Updateable(st).UpdateColumns(it => new { it.LockQty }).ExecuteCommand();
+                            }
+                            #endregion
+                        }
+
                     }
                     //娣诲姞鎿嶄綔鏃ュ織璁板綍
                     var k = new OperationSOServer().AddLogOperationSo("鍑哄簱浣滀笟", "鍑哄簱鍗曟嵁", notice.SONo, "鍏冲崟", $"鍏抽棴浜嗗崟鎹彿涓簕notice.SONo}鐨勫崟鎹俊鎭�", userId);
@@ -3342,9 +3357,9 @@
                     var needQty = detail.Qty - detail.AllotQty;
                     //鍒嗛厤鐨勫嚭搴撴暟閲�
                     var outQty = model.StockList.Select(s => s.Qty).ToList().Sum();
-                    if (outQty != needQty)
+                    if (outQty < needQty)
                     {
-                        throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笌璁″垝鏁伴噺涓嶄竴鑷达紒");
+                        throw new Exception("鎿嶄綔澶辫触锛屽嚭搴撴暟閲忎笉鑳藉ぇ浜庤鍒掓暟閲忥紒");
                     }
                 }
                 

--
Gitblit v1.8.0