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