From 19e95f4acc328bbf62a0427fe658d00268019e66 Mon Sep 17 00:00:00 2001 From: zhaowc <526854230@qq.com> Date: 星期一, 07 四月 2025 10:14:34 +0800 Subject: [PATCH] 修改IIS配置 --- Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs | 538 ++++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 440 insertions(+), 98 deletions(-) diff --git a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs index 65bb133..ed8af5e 100644 --- a/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs +++ b/Wms/WMS.BLL/BllCheckServer/StockCheckServer.cs @@ -11,8 +11,10 @@ using Model.ModelVm.BllCheckVm; using Newtonsoft.Json; using SqlSugar; +using SqlSugar.Extensions; using Utility.Tools; using WMS.BLL.LogServer; +using WMS.BLL.SysServer; using WMS.DAL; using WMS.Entity.BllAsnEntity; using WMS.Entity.BllCheckEntity; @@ -107,7 +109,7 @@ try { var total = 0; - var list = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel =="0" && m.CRNo == crNo) + var list = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && m.CRNo == crNo) .LeftJoin<SysUserInfor>((a, b) => a.CreateUser == b.Id) .LeftJoin<SysUserInfor>((a, b, c) => a.UpdateUser == c.Id) .Select((a, b, c) => new StockCheckDetailDto() @@ -199,7 +201,7 @@ LotNo = m.LotNo, LotText = m.LotText, SupplierLot = m.SupplierLot, - Qty = (int)m.Qty, + Qty = m.Qty, PalletNo = m.PalletNo }).ToList(); @@ -234,7 +236,7 @@ if (string.IsNullOrWhiteSpace(model.CrNo)) { var num = Db.Queryable<BllStockCheck>().Count(m => m.IsDel == "0" && (m.Status == 0 || m.Status == 1)); - if (num>0) + if (num > 0) { throw new Exception("宸叉湁绛夊緟鎵ц鐨勭洏鐐瑰崟鎹鍏堝畬鎴愭垨鍒犻櫎"); } @@ -339,7 +341,7 @@ CreateTime = time }; list.Add(detail); - var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel =="0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0").ToList(); + var sd = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo && m.Status == "0").ToList(); foreach (var s in sd) { s.Status = "3"; @@ -356,7 +358,7 @@ } - if (list.Count>0) + if (list.Count > 0) { Db.Insertable(list).ExecuteCommand(); } @@ -397,7 +399,7 @@ d.IsDel = "1"; d.UpdateTime = time; d.UpdateUser = userId; - var item = Db.Queryable<DataStockDetail>().Where(m => m.IsDel =="0" && m.PalletNo == d.PalletNo && m.SkuNo ==d.SkuNo && m.LotNo == d.LotNo && m.Status == "3").ToList(); + var item = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo && m.Status == "3").ToList(); foreach (var i in item) { i.Status = "0"; @@ -543,80 +545,129 @@ //寰幆鐩樼偣璁板綍 foreach (var l in demo) { + var sku = Db.Queryable<SysMaterials>().First(a => a.IsDel == "0" && a.SkuNo == l.SkuNo); if (l.CheckResult == 0)//姝e父 { - var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); - if (de3 == null) + if (sku.Type != "4") { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); + var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); + if (de3 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); + } + var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); + } + de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤 + Db.Updateable(de2).ExecuteCommand(); } - var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); - if (de2 == null) + else { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); + var de2 = stockDetail.First(m => m.PalletNo == l.PalletNo && m.SkuNo == l.SkuNo); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅"); + } + de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤 + Db.Updateable(de2).ExecuteCommand(); } - de2.Status = "0";//灏嗗簱瀛樻槑缁嗙姸鎬佹敼涓哄緟鍒嗛厤 - Db.Updateable(de2).ExecuteCommand(); + } else if (l.CheckResult == 1)//鐩樹簭 { - var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); - if (de3 == null) + if (sku.Type != "4") { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); - } + var de3 = stockBox.First(m => m.BoxNo == l.BoxNo && m.BoxNo3 == l.BoxNo3); + if (de3 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨绠辩爜鐨勪俊鎭�"); + } - var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); - if (de2 == null) - { - throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); - } - de2.Status = "0"; - de2.Qty -= de3.Qty; - var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); - if (de == null) - { - throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅"); - } - de.Qty -= de3.Qty; + var de2 = stockDetail.First(m => m.Id == de3.StockDetailId); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鏄庣粏鐨勪俊鎭�"); + } + de2.Status = "0"; + de2.Qty -= de3.Qty; + var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); + if (de == null) + { + throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅"); + } + de.Qty -= de3.Qty; - Db.Updateable(de).ExecuteCommand(); - Db.Updateable(de2).ExecuteCommand(); - Db.Deleteable(de3).ExecuteCommand(); + Db.Updateable(de).ExecuteCommand(); + Db.Updateable(de2).ExecuteCommand(); + Db.Deleteable(de3).ExecuteCommand(); + } + else + { + var de2 = stockDetail.First(m => m.PalletNo == l.PalletNo && m.SkuNo == l.SkuNo); + if (de2 == null) + { + throw new Exception($"鏈煡璇㈠埌{l.PalletNo}鐨勫簱瀛樻槑缁嗙殑淇℃伅"); + } + de2.Status = "0"; + de2.Qty = l.RealQty; + var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); + if (de == null) + { + throw new Exception($"鏈煡璇㈠埌鐗╂枡{l.SkuNo}鎵规{l.LotNo}鐨勬�诲簱瀛樼殑淇℃伅"); + } + de.Qty -= Convert.ToDecimal(l.Qty - l.RealQty); + + Db.Updateable(de).ExecuteCommand(); + Db.Updateable(de2).ExecuteCommand(); + } } else if (l.CheckResult == 2)//鐩樼泩 - { - var stockDetailInfo = stockDetail.First(m => m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo);//搴撳瓨鏄庣粏 - var stockBoxInfo = stockBox.First(m => m.StockDetailId == stockDetailInfo.Id);//搴撳瓨绠辨敮鏄庣粏 - var boxInfo = boxQtyList.First(m => m.boxNo == l.BoxNo);//鎵惧埌瀵瑰簲绠卞瓙鏄惁闆剁 - //娣诲姞搴撳瓨绠辨敮淇℃伅 - var databox = new DataBoxInfo - { - StockDetailId = stockDetailInfo.Id, - BindNo= stockBoxInfo.BindNo, - BoxNo = l.BoxNo, - BoxNo2 = l.BoxNo2, - BoxNo3 = l.BoxNo3, - PalletNo = l.PalletNo, - Qty = (int)l.RealQty, - FullQty = stockBoxInfo.FullQty,//婊$鏁伴噺 - Status = "2", - SkuNo = l.SkuNo, - SkuName = l.SkuName, - LotNo = l.LotNo, - LotText = l.LotText, - Standard = l.Standard, - SupplierLot = l.SupplierLot, + { - InspectMark = stockBoxInfo.InspectMark, - InspectStatus = stockBoxInfo.InspectStatus, - ProductionTime = stockBoxInfo.ProductionTime, - BitBoxMark = boxInfo.bitBoxMark, - }; - Db.Insertable<DataBoxInfo>(databox).ExecuteCommand(); - //搴撳瓨鏄庣粏澧炲姞鏁伴噺 - stockDetailInfo.Qty += (int)l.RealQty; + var stockDetailInfo = stockDetail.First(m => m.PalletNo == d.PalletNo && m.SkuNo == d.SkuNo && m.LotNo == d.LotNo);//搴撳瓨鏄庣粏 + + if (sku.Type != "4") + { + var stockBoxInfo = stockBox.First(m => m.StockDetailId == stockDetailInfo.Id);//搴撳瓨绠辨敮鏄庣粏 + var boxInfo = boxQtyList.First(m => m.boxNo == l.BoxNo);//鎵惧埌瀵瑰簲绠卞瓙鏄惁闆剁 + //娣诲姞搴撳瓨绠辨敮淇℃伅 + var databox = new DataBoxInfo + { + StockDetailId = stockDetailInfo.Id, + BindNo = stockBoxInfo.BindNo, + BoxNo = l.BoxNo, + BoxNo2 = l.BoxNo2, + BoxNo3 = l.BoxNo3, + PalletNo = l.PalletNo, + Qty = (decimal)l.RealQty, + FullQty = stockBoxInfo.FullQty,//婊$鏁伴噺 + Status = "2", + SkuNo = l.SkuNo, + SkuName = l.SkuName, + LotNo = l.LotNo, + LotText = l.LotText, + Standard = l.Standard, + SupplierLot = l.SupplierLot, + + InspectMark = stockBoxInfo.InspectMark, + InspectStatus = stockBoxInfo.InspectStatus, + ProductionTime = stockBoxInfo.ProductionTime, + BitBoxMark = boxInfo.bitBoxMark, + }; + Db.Insertable<DataBoxInfo>(databox).ExecuteCommand(); + //搴撳瓨鏄庣粏澧炲姞鏁伴噺 + stockDetailInfo.Qty += (int)l.RealQty; + } + else + { + //搴撳瓨鏄庣粏澧炲姞鏁伴噺 + stockDetailInfo.Qty = (int)l.RealQty; + } + stockDetailInfo.Status = "0"; + Db.Updateable(stockDetailInfo).ExecuteCommand(); //搴撳瓨澧炲姞鏁伴噺 var de = stock.First(m => m.SkuNo == l.SkuNo && m.LotNo == l.LotNo); @@ -624,7 +675,15 @@ { throw new Exception($"鏈煡璇㈠埌{l.BoxNo}绠变腑{l.BoxNo3}搴撳瓨鐨勪俊鎭�"); } - de.Qty += (int)l.RealQty; + if (sku.Type != "4") + { + de.Qty += (int)l.RealQty; + } + else + { + de.Qty += (int)(l.RealQty - l.Qty); + } + Db.Updateable(de).ExecuteCommand(); } } @@ -636,7 +695,7 @@ if (d.Qty == d.RealQty) { d.CheckResult = 0; - if (demo.Count(m=>m.CheckResult == 1 || m.CheckResult == 2)>0) + if (demo.Count(m => m.CheckResult == 1 || m.CheckResult == 2) > 0) { d.CheckResult = 3; } @@ -650,7 +709,7 @@ d.CheckResult = 1; } Db.Updateable(d).ExecuteCommand(); - + #region 娣诲姞鍒ゆ柇鐩樼偣瀹屾墭鐩樻槸鍚︽槸闆舵墭 var material = materialList.FirstOrDefault(m => m.SkuNo == d.SkuNo); if (material == null) @@ -708,13 +767,13 @@ Db.Updateable(notice).ExecuteCommand(); //娣诲姞鎿嶄綔鏃ュ織璁板綍 var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "鐩樼偣鍗曟嵁", notice.CRNo, "璋冩暣鍗曟嵁", $"璋冩暣浜嗗崟鎹彿涓簕notice.CRNo}鐨勭洏鐐瑰崟淇℃伅", userId); - + //鎻愪氦浜嬪姟 Db.CommitTran(); return true; } catch (Exception e) - { + { //鍥炴粴浜嬪姟 Db.RollbackTran(); throw new Exception(e.Message); @@ -868,6 +927,8 @@ //瑕佸嚭搴撶殑鏄庣粏闆嗗悎 var outStockDetail = Db.Queryable<DataStockDetail>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList(); var outStockBox = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && outLpnList.Contains(m.PalletNo)).ToList(); + //鑾峰彇鐗╂枡淇℃伅 + var skuNo = Db.Queryable<SysMaterials>().Where(a => a.IsDel == "0" && a.Type == "4").Select(a => a.SkuNo).ToList(); var time = DateTime.Now; Db.BeginTran(); try @@ -877,33 +938,64 @@ { if (item.Status == 0) { - var de = outStockDetail.Where(m => - m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList(); - var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList(); var logList = new List<BllStockCheckLog>(); - foreach (var b in bo) + //鍒ゆ柇鏄惁涓烘棤鐮佺墿鏂� + if (skuNo.Contains(item.SkuNo)) { + var de = outStockDetail.First(m => m.IsDel == "0" && + m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo); + var checkLog = new BllStockCheckLog() { CRNo = item.CRNo, PalletNo = item.PalletNo, - BoxNo = b.BoxNo, - BoxNo2 = b.BoxNo2, - BoxNo3 = b.BoxNo3, - Qty = b.Qty, - SkuNo = b.SkuNo, - SkuName = b.SkuName, - Standard = b.Standard, - LotNo = b.LotNo, - LotText = b.LotText, - SupplierLot = b.SupplierLot, + BoxNo = "", + BoxNo2 = "", + BoxNo3 = "", + Qty = (int?)de.Qty, + SkuNo = de.SkuNo, + SkuName = de.SkuName, + Standard = de.Standard, + LotNo = de.LotNo, + LotText = de.LotText, + SupplierLot = de.SupplierLot, CreateUser = userId, CreateTime = time }; logList.Add(checkLog); - } - //鐢熸垚鐩樼偣璁板綍 + + } + else + { + var de = outStockDetail.Where(m => + m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo).Select(m => m.Id).ToList(); + var bo = outStockBox.Where(m => de.Contains(m.StockDetailId)).ToList(); + foreach (var b in bo) + { + var checkLog = new BllStockCheckLog() + { + CRNo = item.CRNo, + PalletNo = item.PalletNo, + BoxNo = b.BoxNo, + BoxNo2 = b.BoxNo2, + BoxNo3 = b.BoxNo3, + Qty = b.Qty, + SkuNo = b.SkuNo, + SkuName = b.SkuName, + Standard = b.Standard, + LotNo = b.LotNo, + LotText = b.LotText, + SupplierLot = b.SupplierLot, + + CreateUser = userId, + CreateTime = time + }; + logList.Add(checkLog); + } + } + + //鐢熸垚鐩樼偣璁板綍 Db.Insertable(logList).ExecuteCommand(); } // 鍌ㄤ綅鍙� @@ -915,10 +1007,10 @@ { var de = outStockDetail.First(m => m.SkuNo == item.SkuNo && m.LotNo == item.LotNo && m.PalletNo == item.PalletNo); //鍒ゆ柇鏄惁鏄浂绠卞簱锛屽綋鍓嶆槑缁嗕俊鎭洿鎺ユ洿鏂板嚭搴撳畬鎴� - if (de!= null && de.WareHouseNo=="W02") + if (de != null && de.WareHouseNo == "W02") { //鐩樼偣鏄庣粏鐘舵�佹敼涓哄緟鐩樼偣 - item.Status = 2; + item.Status = 2; Db.Updateable(item).ExecuteCommand(); //鐩樼偣淇℃伅淇敼 if (notice.Status == 0) @@ -985,7 +1077,7 @@ #region 娣诲姞鍑哄簱浠诲姟 var taskNo = new Common().GetMaxNo("TK"); //娣诲姞鍑哄簱浠诲姟 - var exTask = new LogTask + var exTask = new LogTask { TaskNo = taskNo, Sender = "WMS", @@ -1104,16 +1196,16 @@ try { var time1 = DateTime.Now;//鍙戦�佹椂闂� .ToString("yyyy-MM-dd HH:mm:ss") - response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); + response = HttpHelper.DoPost(url, jsonData, "涓嬪彂缁橶CS鍑哄簱鍛戒护", "WCS"); //姝e紡鐗堟湰鏀惧紑 var time2 = DateTime.Now;//杩斿洖鏃堕棿 .ToString("yyyy-MM-dd HH:mm:ss") - ////瑙f瀽杩斿洖鏁版嵁 + //瑙f瀽杩斿洖鏁版嵁 var wcsModel = JsonConvert.DeserializeObject<WcsModel>(response); if (wcsModel.StatusCode == 0) { - // //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// + //鏇存敼浠诲姟鐨勫彂閫佽繑鍥炴椂闂�// new TaskServer().EditTaskIssueOk(list2, time1, time2); - str += "涓嬪彂鎴愬姛"; + str += "涓嬪彂鎴愬姛"; } if (wcsModel.StatusCode == -1) { @@ -1146,11 +1238,19 @@ { try { + //鍑哄簱浠诲姟鍙锋洿鏀癸紝濡傛灉鐢盤LC鍑哄簱锛屽垯PLC鍥炰紶浠诲姟鍙蜂负锛氫换鍔″彿+瀹為檯鍑哄簱鍙� + var TtaskNo = taskNo; + var outLine = ""; + if (taskNo.Length == 18) + { + TtaskNo = taskNo.Substring(0, taskNo.Length - 3); + outLine = taskNo.Substring(taskNo.Length - 3, 3); + } //褰撳墠浠诲姟淇℃伅 - var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == TtaskNo && m.IsDel == "0"); if (task == null) { - throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹TtaskNo}鈥欑殑浠诲姟淇℃伅"); } if (task.Status == "2") { @@ -1180,7 +1280,7 @@ Db.Updateable(item).ExecuteCommand(); } //鐩樼偣鏄庣粏锛堟洿鏀圭姸鎬侊級 - var checkDetails = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && (m.TaskNo == taskNo || (m.Status == 1 && m.PalletNo == task.PalletNo))).ToList(); + var checkDetails = Db.Queryable<BllStockCheckDetail>().Where(m => m.IsDel == "0" && (m.TaskNo == TtaskNo || (m.Status == 1 && m.PalletNo == task.PalletNo))).ToList(); foreach (var item in checkDetails) { @@ -1188,6 +1288,180 @@ Db.Updateable(item).ExecuteCommand(); } + if (userId != 0) + { + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", TtaskNo, "瀹屾垚", $"鐐瑰嚮瀹屾垚鎸夐挳銆佸畬鎴愪换鍔″彿涓猴細{TtaskNo}鐨勪换鍔�", userId); + } + Db.CommitTran(); + + } + catch (Exception ex) + { + Db.RollbackTran(); + throw new Exception("瀹屾垚鍙嶉澶辫触锛�" + ex.Message); + } + } + + //AGV绉诲簱瀹屾垚 + public void MoveSuccess(string taskNo,string mesTokenUrl, string mesUrl, int userId) + { + try + { + //褰撳墠浠诲姟淇℃伅 + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + if (task == null) + { + throw new Exception($"鏈煡璇㈠埌浠诲姟鍙蜂负锛氣�榹taskNo}鈥欑殑浠诲姟淇℃伅"); + } + if (task.Status == "2") + { + throw new Exception("褰撳墠浠诲姟宸插畬鎴�"); + } + Db.BeginTran(); + //搴撳瓨涓綋鍓嶆墭鐩樼殑淇℃伅 + var stockDetail = Db.Queryable<DataStockDetail>().Where(m => m.PalletNo == task.PalletNo).ToList(); + var locateNo = stockDetail.Select(m => m.LocatNo).Distinct().FirstOrDefault(); + + //褰撳墠浠诲姟涓殑鍌ㄤ綅淇℃伅 + var locate = Db.Queryable<SysStorageLocat>().First(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 = Db.Queryable<SysStorageLocat>().First(m => m.LocatNo == task.EndLocat); + if (endLocate != null) + { + if (endLocate.Status != "4") + { + throw new Exception("鐩爣鍌ㄤ綅鐘舵�侀潪绉诲叆涓�"); + } + } + var data = new List<RequertBeiliaoInfoModel>(); + //鏇存敼搴撳瓨鏄庣粏 + 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 = "";//鎵�灞炲尯鍩熸洿鏀癸紙鏀逛负绌猴級 + } + if (item.Qty == item.LockQty && item.LockQty>0) + { + item.Status = "2"; + } + else if (item.Qty > item.LockQty && item.LockQty > 0) + { + item.Status = "1"; + } + else if (item.Qty > item.LockQty && item.LockQty == 0) + { + item.Status = "0"; + } + Db.Updateable(item).ExecuteCommand(); + + + + + if (endLocate != null && endLocate.AreaNo == "B12") //鏄惁鏄�3妤肩紦瀛樺尯 鏄細鍒犻櫎搴撳瓨 + { + if (string.IsNullOrWhiteSpace(item.SONo)) + { + throw new Exception("褰撳墠鎵樼洏涓嶆槸鎷兼墭鍑哄簱鎵樼洏"); + } + //璁板綍鎵樼洏涓婁俊鎭粰MES + var boxInfo = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.StockDetailId == item.Id).ToList(); + if (boxInfo.Count == 0) + { + throw new Exception("鎵樼洏涓婄墿鏂欑鐮佷俊鎭笉瀛樺湪,璇锋鏌�!"); + } + foreach (var item2 in boxInfo) + { + data.Add(new RequertBeiliaoInfoModel() + { + no = item2.BoxNo, + materiel_no = item.SkuNo, + materiel_name = item.SkuName, + qty = item.Qty, + batch = item.LotNo, + producttime = item2.ProductionTime.ToString().Substring(1, 8), + expiry = item2.ExpirationTime.ToString().Substring(1, 8) + + }); + } + //搴撳瓨绠辩爜鏄庣粏鍒犻櫎 + Db.Deleteable(boxInfo).ExecuteCommand(); + //鍒犻櫎搴撳瓨鎵樼洏淇℃伅 + Db.Deleteable(item).ExecuteCommand(); + //鏇存敼搴撳瓨鎬昏〃 + var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo); + stock.LockQty -= (decimal)item.Qty; + stock.Qty -= (decimal)item.Qty; + Db.Updateable(stock).ExecuteCommand(); + //鏇存敼鎵樼洏鐘舵�� + var pallet = Db.Queryable<SysPallets>().First(m=>m.IsDel =="0" && m.PalletNo == task.PalletNo); + if (pallet != null) + { + pallet.Status = "0"; + Db.Updateable(pallet).ExecuteCommand(); + } + } + } + if (endLocate != null) + { + //鏇存敼鐩爣鍌ㄤ綅鐘舵�� + endLocate.Status = "1";//鏈夌墿鍝� + Db.Updateable(endLocate).ExecuteCommand(); + + } + //姝e紡杩愯绋嬪簭鏀惧紑 + if (endLocate != null && endLocate.AreaNo == "B12") + { + //鑾峰彇浠ょ墝 + var token = new Token().GetMesToken(mesTokenUrl); + Dictionary<string, string> mesDic = new Dictionary<string, string>() + { + {"Authorization",token } + }; + var mesData = new RequertBeiliaoModel() + { + morder_no = stockDetail.First().SONo, + pallet = stockDetail.First().PalletNo, + layer_no = endLocate.LocatNo, + items = data + }; + var jsonData = JsonConvert.SerializeObject(mesData); + //璋冪敤鎺ュ彛 + var response = HttpHelper.DoPost(mesUrl, jsonData, "澶囨枡瀹屾垚杩愯嚦缂撳瓨鍖哄弽棣堣嚦MES", "MES", mesDic); + + var obj = JsonConvert.DeserializeObject<MesModel>(response);//瑙f瀽杩斿洖鏁版嵁 + if (obj.status != "0") + { + throw new Exception("澶囨枡鍚屾MES澶辫触锛�" + obj.message); + } + + } if (userId != 0) { //娣诲姞鎿嶄綔鏃ュ織璁板綍 @@ -1238,7 +1512,7 @@ PalletNo = task.PalletNo,//鎵樼洏鍙� StartLocate = locateNo, // 璧峰浣嶇疆 StartRoadway = locate.RoadwayNo, - EndLocate = "", // 鐩爣浣嶇疆 + EndLocate = task.EndLocat, // 鐩爣浣嶇疆 TaskNo = task.TaskNo, // 浠诲姟鍙� TaskType = "1",// 浠诲姟绫诲瀷 (鍑哄簱) OutMode = "", //鐩爣鍦板潃 @@ -1326,7 +1600,7 @@ checkLog.IsDel = "1"; Db.Updateable(checkLog).ExecuteCommand(); //淇敼鍌ㄤ綅淇℃伅 - var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W01" && a.LocatNo == task.StartLocat); + var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.StartLocat); if (locat == null) { throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�"); @@ -1346,6 +1620,74 @@ } catch (Exception e) { + throw new Exception(e.Message); + } + } + + //鍙栨秷AGV绉诲簱浠诲姟 + public void CancelMoveTask(string taskNo, int userId) + { + try + { + Db.BeginTran(); + + var task = Db.Queryable<LogTask>().First(m => m.TaskNo == taskNo && m.IsDel == "0"); + if (task == null) + { + throw new Exception("鏈煡璇㈠埌浠诲姟淇℃伅"); + } + //淇敼浠诲姟 + task.IsSuccess = 0; + task.IsSend = 0; + task.IsCancel = 0; + task.IsFinish = 0; + task.Status = "4"; + task.CancelDate = DateTime.Now; + Db.Updateable(task).ExecuteCommand(); + + //淇敼璧峰鍌ㄤ綅淇℃伅 + var locat = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.StartLocat); + if (locat == null) + { + throw new Exception("鏈煡璇㈠埌鍌ㄤ綅淇℃伅锛岃鏍稿疄锛�"); + } + locat.Status = "1"; //鏈夌墿鍝� + Db.Updateable(locat).ExecuteCommand(); + + //淇敼鐩爣鍌ㄤ綅淇℃伅 + var locatEnd = Db.Queryable<SysStorageLocat>().First(a => a.IsDel == "0" && a.WareHouseNo == "W02" && a.LocatNo == task.EndLocat); + if (locatEnd != null) + { + locatEnd.Status = "0"; //绌哄偍浣� + Db.Updateable(locatEnd).ExecuteCommand(); + } + + //淇敼搴撳瓨鏄庣粏 + var stockDetail = Db.Queryable<DataStockDetail>().First(w => w.IsDel == "0" && w.PalletNo == task.PalletNo); + if (stockDetail == null) + { + throw new Exception("鎵樼洏涓婄墿鏂欏簱瀛樻槑缁嗕俊鎭笉瀛樺湪,璇锋鏌�!"); + } + stockDetail.Status = "0";//寰呭垎閰� + stockDetail.LockQty = 0;//閿佸畾鏁伴噺 + Db.Updateable(stockDetail).ExecuteCommand(); + + //淇敼搴撳瓨 + var stock = Db.Queryable<DataStock>().First(w => w.IsDel == "0" && w.SkuNo == stockDetail.SkuNo && w.LotNo == stockDetail.LotNo); + if (stock == null) + { + throw new Exception("鎵樼洏涓婄墿鏂欏簱瀛樹俊鎭笉瀛樺湪,璇锋鏌�!"); + } + stock.LockQty -= (decimal)stockDetail.Qty; + Db.Updateable(stock).ExecuteCommand(); + + //娣诲姞鎿嶄綔鏃ュ織璁板綍 + var k = new OperationCrServer().AddLogOperationCr("搴撳唴浣滀笟", "搴撳唴鏃ュ織", taskNo, "鍙栨秷", $"鐐瑰嚮鍙栨秷鎸夐挳銆佸彇娑堜簡浠诲姟鍙蜂负锛歿taskNo}鐨勪换鍔�", userId); + Db.CommitTran(); + } + catch (Exception e) + { + Db.RollbackTran(); throw new Exception(e.Message); } } @@ -1383,5 +1725,5 @@ } #endregion - } + } } -- Gitblit v1.8.0