From fc2b395e10c968f4bcf540613538265655b7a15e Mon Sep 17 00:00:00 2001 From: chengsc <11752@DESKTOP-DS49RCP> Date: 星期四, 08 五月 2025 16:47:07 +0800 Subject: [PATCH] 修改问题 --- Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 167 insertions(+), 0 deletions(-) diff --git a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs index 57367dd..c5960a5 100644 --- a/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs +++ b/Wms/WMS.BLL/BllPdaServer/PdaAsnServer.cs @@ -21,6 +21,7 @@ using Model.ModelDto.DataDto; using System.Xml.Schema; using ZXing.OneD; +using System.Threading.Tasks; namespace WMS.BLL.BllPdaServer { @@ -1897,6 +1898,172 @@ } } + /// <summary> + /// 淇濆瓨鎸囧畾鐨勫偍浣� + /// </summary> + /// <param name="palletNo"></param> + /// <param name="locateNo"></param> + /// <param name="userId"></param> + /// <exception cref="Exception"></exception> + public void SaveAppointLocate(string palletNo, string locateNo, int userId) + { + try + { + //鎵樼洏搴撳瓨淇℃伅 + var stockDetailList = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == palletNo).ToList(); + if (stockDetailList.Count(m=> string.IsNullOrWhiteSpace(m.LocatNo)) > 0) + { + throw new Exception("鎵樼洏娌℃湁鍦ㄥ钩搴撳偍浣嶄笂"); + } + //鍒ゆ柇鎵樼洏鐨勫偍浣嶆槸鍚︽槸骞冲簱 + var stockDetail = stockDetailList.First(); + var oldLocate = stockDetail.LocatNo; + var pingAreaStr = Db.Queryable<SysStorageArea>().Where(m => m.IsDel == "0" && m.WareHouseNo == "W04" && m.AreaNo != "B06" && m.AreaNo != "B07").Select(m => m.AreaNo).ToList(); + var pingLocateInfo = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == oldLocate && pingAreaStr.Contains(m.AreaNo) && m.IsDel == "0"); + if (pingLocateInfo == null) + { + throw new Exception("褰撳墠鎵樼洏鎵�鍦ㄧ殑鍌ㄤ綅娌℃湁鍦ㄧ郴缁熶腑鎵惧埌淇℃伅"); + } + + var skuList = Db.Queryable<SysMaterials>().Where(m => m.IsDel == "0").ToList(); + //楠岃瘉鐗╂枡鏄惁鏈夋垚鍝� + foreach (var item in stockDetailList) + { + var skuItem = skuList.First(m => m.SkuNo == item.SkuNo); + if (skuItem.Type == "2") + { + throw new Exception("鎴愬搧鐗╂枡璇峰叆鎴愬搧搴�"); + } + } + //鍌ㄤ綅 + var locate = Db.Queryable<SysStorageLocat>().First(m => m.IsDel == "0" && m.LocatNo == locateNo); + if (locate == null) + { + throw new Exception("鏈煡璇㈠埌鍌ㄤ綅鐨勪俊鎭�"); + } + if (locate.WareHouseNo != "W02") + { + throw new Exception("鍙兘鎸囧畾绔嬪簱鐨勫偍浣�"); + } + if (locate.Status != "0" || locate.Flag != "0") + { + throw new Exception("璇ュ偍浣嶇姸鎬佷笉鏄┖鍌ㄤ綅鎴栨爣蹇椾笉鏄甯哥殑"); + } + + + Db.BeginTran(); + try + { + var time = DateTime.Now; + //鍒ゆ柇褰撳墠鎵樼洏鏄惁瀛樺湪缁戝畾淇℃伅 + var task = Db.Queryable<LogTask>().First(m=> m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1") && m.OrderType == "0" && m.Type == "0"); + + var upShelf = Db.Queryable<BllPalletUpShelf>().First(m => m.IsDel == "0" && m.PalletNo == palletNo && (m.Status == "0" || m.Status == "1")); + if (task != null) + { + if (task.Status == "1") + { + throw new Exception("鎵樼洏姝e湪鎵ц浠诲姟锛屼笉鍙寚瀹氬偍浣�"); + } + if (task.Status == "0") + { + if (upShelf != null) + { + if (upShelf.Status == "1") + { + throw new Exception("鎵樼洏姝e湪鎵ц涓婃灦浠诲姟锛屼笉鍙寚瀹氬偍浣�"); + } + if (upShelf.Status == "0") + { + if (locate.LocatNo == task.EndLocat) + { + throw new Exception("宸叉寚瀹氬偍浣嶏紝鏃犻渶閲嶅鎸囧畾"); + } + //閲嶆柊鎸囧畾鍌ㄤ綅 + task.EndLocat = locate.LocatNo; + task.EndRoadway = locate.RoadwayNo; + upShelf.LocatNo = locate.LocatNo; + upShelf.RoadwayNo = locate.RoadwayNo; + Db.Updateable(task).ExecuteCommand(); + Db.Updateable(upShelf).ExecuteCommand(); + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎸囧畾鍌ㄤ綅", palletNo, "缂栬緫", $"鎸囧畾浜嗗偍浣嶏細{locate.LocatNo}銆佹墭鐩樼爜锛歿palletNo}鐨勪俊鎭�", userId); + Db.CommitTran(); + return; + } + } + else + { + throw new Exception("鏌ヨ鍑轰换鍔′絾娌℃湁涓婃灦璁板綍锛屼俊鎭敊璇�"); + } + } + } + + // 娣诲姞鍏ュ簱鏃ュ織璁板綍 + var taskNo = new Common().GetMaxNo("TK"); + var addTask = new LogTask //鍏ュ簱浠诲姟 + { + TaskNo = taskNo, + Sender = "WMS", + Receiver = "WCS", + IsSuccess = 1, //鏄惁涓嬪彂鎴愬姛 0澶辫触 1鎴愬姛 + SendDate = DateTime.Now, //鍙戦�佹椂闂� + //BackDate = DateTime.Now, //杩斿洖鏃堕棿 + StartRoadway = "", // 璧峰宸烽亾 + StartLocat = oldLocate,//璧峰浣嶇疆 + EndLocat = locate.LocatNo,//鐩爣浣嶇疆 + EndRoadway = locate.RoadwayNo, // 鐩爣宸烽亾 + PalletNo = palletNo,//鎵樼洏鐮� + IsSend = 1,//鏄惁鍙啀娆′笅鍙� + IsCancel = 1,//鏄惁鍙彇娑� + IsFinish = 1,//鏄惁鍙畬鎴� + Type = "0",//浠诲姟绫诲瀷 0 鍏ュ簱浠诲姟 1 鍑哄簱浠诲姟 2 绉诲簱浠诲姟 + Status = "0",//浠诲姟鐘舵��0锛氱瓑寰呮墽琛�1姝e湪鎵ц2鎵ц瀹屾垚 + OrderType = "0",//0 鍏ュ簱鍗� 1 鍑哄簱鍗� 2 鐩樼偣鍗� 3 绉诲簱鍗� + Msg = $"{oldLocate}鍒�=>>{locate.LocatNo}鐨勫叆搴撲换鍔�", //鍏抽敭淇℃伅 + + }; + Db.Insertable(addTask).ExecuteCommand(); + + //娣诲姞鎵樼洏涓婃灦璁板綍 + var upShelfAdd = new BllPalletUpShelf() + { + TaskNo = addTask.TaskNo, + TraceNo = "", + PalletNo = palletNo, + SkuNo = stockDetail.SkuNo, + SkuName = stockDetail.SkuName, + LotNo = stockDetail.LotNo, + Status = "0", + + WareHouseNo = locate.WareHouseNo, + RoadwayNo = locate.RoadwayNo, + AreaNo = locate.AreaNo, + LocatNo = locate.LocatNo, + + CreateUser = 0, + }; + Db.Insertable(upShelfAdd).ExecuteCommand(); + + locate.Status = "2"; + + Db.Updateable(locate).ExecuteCommand(); + + new OperationASNServer().AddLogOperationAsn("PDA妯″潡", "鎸囧畾鍌ㄤ綅", palletNo, "缂栬緫", $"鎸囧畾浜嗗偍浣嶏細{locate.LocatNo}銆佹墭鐩樼爜锛歿palletNo}鐨勪俊鎭�", userId); + Db.CommitTran(); + } + catch (Exception e) + { + Db.RollbackTran(); + throw new Exception(e.Message); + } + + } + catch (Exception e) + { + throw new Exception(e.Message); + } + } + #endregion -- Gitblit v1.8.0