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/BllCheckServer/StockCheckServer.cs |  147 ++++++++++++++++++++++++++-----------------------
 1 files changed, 78 insertions(+), 69 deletions(-)

diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
index 22739af..eb93eca 100644
--- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
+++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs
@@ -1686,90 +1686,99 @@
             try
             {
                 //褰撳墠浠诲姟淇℃伅
-                var task = await Db.Queryable<LogTask>().FirstAsync(m => m.TaskNo == taskNo && m.IsDel == "0");
+                var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0");
                 if (task == null)
                 {
-                    throw Oops.Bah($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
+                    throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅");
                 }
                 if (task.Status == "2")
                 {
-                    throw Oops.Bah("褰撳墠浠诲姟宸插畬鎴�");
+                    throw new Exception("褰撳墠浠诲姟宸插畬鎴�");
                 }
                 Db.BeginTran();
                 //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅
-                var stockDetail = await Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToListAsync();
-                var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault();
-
-                //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅
-                var locate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == locateNo);
-
-                //鏇存敼浠诲姟
-                task.Status = "2";//浠诲姟鐘舵��
-                task.IsSend = 0;
-                task.IsCancel = 0;
-                task.IsFinish = 0;
-                task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
-                Db.Updateable(task).ExecuteCommand();
-                // 鏇存敼褰撳墠浠诲姟涓殑鍌ㄤ綅鐘舵�侊紙鏀逛负0绌哄偍浣嶏級
-                locate.Status = "0";
-                Db.Updateable(locate).ExecuteCommand();
-
-                //鐩爣鍌ㄤ綅淇℃伅
-                var endLocate = await Db.Queryable<SysStorageLocat>().FirstAsync(m => m.LocatNo == task.EndLocat);
-                if (endLocate != null)
+                var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList();
+                //褰撳墠浠诲姟涓殑鐩爣鍌ㄤ綅淇℃伅
+                //褰撳墠浠诲姟涓殑鍘熷偍浣�
+                var locate = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.StartLocat);
+                if (locate == null)
                 {
-                    if (endLocate.Status != "0")
+                    throw new Exception($"WMS绯荤粺涓病鏈夎{task.StartLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�");
+                }
+                var locate2 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat);
+                if (locate2 == null)
+                {
+                    throw new Exception($"WMS绯荤粺涓病鏈夎{task.EndLocat}鍌ㄤ綅瀵瑰簲鐨勪俊鎭�");
+                }
+                //骞冲簱涓偍浣嶉泦鍚�
+                var pingKuLocate = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0").ToList();
+                //杞﹂棿鏆傚瓨鍖�
+                var pingKuLocate2 = Db.Queryable<SysStorageLocat>().Where(m => m.WareHouseNo == "W04" && m.IsDel == "0" && (m.AreaNo == "B06" || m.AreaNo == "B07")).ToList();
+                var pingKuList = pingKuLocate.Select(m => m.LocatNo).ToList();
+                try
+                {
+
+                    task.Status = "2";//浠诲姟鐘舵��
+                    //鍒ゆ柇璧峰鐩爣浣嶇疆閮芥槸骞冲簱  
+                    if (pingKuList.Contains(task.StartLocat) && pingKuList.Contains(task.EndLocat))
                     {
-                        throw Oops.Bah("鐩爣鍌ㄤ綅鐘舵�侀潪绌哄偍浣�");
+                        task.Status = "5";
                     }
-                }
-                //鏇存敼搴撳瓨鏄庣粏
-                foreach (var item in stockDetail)
-                {
-                    item.Status = "0";//寰呭垎閰�
-                    item.LockQty = 0;//閿佸畾鏁伴噺鏀逛负0
-                    if (endLocate != null)//鏈夌洰鏍囧偍浣嶈鏄庣Щ鍒板叾浠栧尯鍩熷偍浣�
-                    {
-                        item.LocatNo = endLocate.LocatNo;//鍌ㄤ綅鏇存敼
-                        item.WareHouseNo = endLocate.WareHouseNo;//鎵�灞炰粨搴撴洿鏀�
-                        item.RoadwayNo = endLocate.RoadwayNo;//鎵�灞炲贩閬撴洿鏀�
-                        item.AreaNo = endLocate.AreaNo;//鎵�灞炲尯鍩熸洿鏀�
-                    }
-                    else//娌℃湁鐩爣鍌ㄤ綅璇存槑绉诲埌鍏ュ簱鍙�
-                    {
-                        item.LocatNo = "";//鍌ㄤ綅鏇存敼锛堟敼涓虹┖锛�
-                        item.WareHouseNo = "";//鎵�灞炰粨搴撴洿鏀癸紙鏀逛负绌猴級
-                        item.RoadwayNo = "";//鎵�灞炲贩閬撴洿鏀癸紙鏀逛负绌猴級
-                        item.AreaNo = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級
-                    }
-                    await Db.Updateable(item).ExecuteCommandAsync();
 
-                    //鏇存敼搴撳瓨鎬昏〃
-                    var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
-                    stock.LockQty -= (decimal)item.Qty;
-                    await Db.Updateable(stock).ExecuteCommandAsync();
-                }
-                if (endLocate != null)
-                {
-                    //鏇存敼鐩爣鍌ㄤ綅鐘舵��
-                    endLocate.Status = "1";//鏈夌墿鍝�
-                    await Db.Updateable(endLocate).ExecuteCommandAsync();
-                }
+                    task.IsSend = 0;
+                    task.IsCancel = 0;
+                    task.IsFinish = 0;
+                    task.FinishDate = DateTime.Now;//瀹屾垚鏃堕棿
+                    Db.Updateable(task).ExecuteCommand();
 
-                if (_userManager.UserId != 0)
-                {
-                    //娣诲姞鎿嶄綔鏃ュ織璁板綍
-                    //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
-                    await _operation.AddLogOperationCr(new OperationInputVm()
+                    #region 淇敼鍌ㄤ綅鐘舵��
+
+                    if (!pingKuList.Contains(task.StartLocat))
                     {
-                        ParentName = "搴撳唴浣滀笟",
-                        MenuName = "搴撳唴鏃ュ織",
-                        FkNo = taskNo,
-                        TypeName = "瀹屾垚",
-                        Msg = $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�"
-                    });
+                        //鍘熷偍浣嶆敼涓虹┖鍌ㄤ綅 0
+                        locate.Status = "0";
+                        Db.Updateable(locate).ExecuteCommand();
+                    }
+
+
+                    //鐩爣鍌ㄤ綅鏀逛负鏈夎揣鐗� 1
+                    locate2.Status = "1";
+                    Db.Updateable(locate2).ExecuteCommand();
+                    //鍒ゆ柇鐩爣浣嶇疆濡傛灉涓嶆槸鏄溅闂存殏瀛樺尯  骞朵笖鏄钩搴撳偍浣� 鏇存敼搴撳瓨浣嶇疆
+                    if (pingKuLocate2.Count(m=>m.LocatNo == task.EndLocat)<=0 && pingKuList.Contains(task.EndLocat))
+                    {
+                        foreach (var item in stockDetail)
+                        {
+                            item.WareHouseNo = locate2.WareHouseNo;
+                            item.AreaNo = locate2.AreaNo;
+                            item.RoadwayNo = locate2.RoadwayNo;
+                            item.LocatNo = locate2.LocatNo;
+                        }
+                        Db.Updateable(stockDetail).ExecuteCommand();
+                    }
+
+
+                    #endregion
+                    if (_userManager.UserId != 0)
+                    {
+                        //娣诲姞鎿嶄綔鏃ュ織璁板綍
+                        //var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�", userId);
+                        await _operation.AddLogOperationCr(new OperationInputVm()
+                        {
+                            ParentName = "搴撳唴浣滀笟",
+                            MenuName = "搴撳唴鏃ュ織",
+                            FkNo = taskNo,
+                            TypeName = "瀹屾垚",
+                            Msg = $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{taskNo}鐨勪换鍔�"
+                        });
+                    }
+                    Db.CommitTran();
                 }
-                Db.CommitTran();
+                catch (Exception ex)
+                {
+                    Db.RollbackTran();
+                    throw new Exception(ex.Message);
+                }
 
             }
             catch (Exception ex)

--
Gitblit v1.8.0