From 8741f7e84dc7c0a1150c92758ebb2cf4b7d18c73 Mon Sep 17 00:00:00 2001 From: pulg <plg@Haninfo> Date: 星期五, 18 七月 2025 14:49:30 +0800 Subject: [PATCH] 1 --- HH.WCS.QingXiNongfu/wms/TaskHelper.cs | 16 ++++++++ HH.WCS.QingXiNongfu/process/DeviceProcess.cs | 19 ++++++++- HH.WCS.QingXiNongfu/core/Monitor.cs | 62 +++++++++++++++++-------------- HH.WCS.QingXiNongfu/process/TaskProcess.cs | 17 +++++--- 4 files changed, 76 insertions(+), 38 deletions(-) diff --git a/HH.WCS.QingXiNongfu/core/Monitor.cs b/HH.WCS.QingXiNongfu/core/Monitor.cs index 29f31af..e578a4a 100644 --- a/HH.WCS.QingXiNongfu/core/Monitor.cs +++ b/HH.WCS.QingXiNongfu/core/Monitor.cs @@ -1470,11 +1470,10 @@ { // var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "鏃犺弻鏍囩鍑哄簱" && x.WorkType == 6 && x.SQL_State == "鎵ц涓�).FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10).OrderBy(x => x.TagOverTime).ToList(); var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "鏃犺弻鏍囩鍑哄簱" && x.WorkType == 6 && x.SQL_State == "鎵ц涓�).FindAll(x => x.OutNum > 0).OrderBy(x => x.TagOverTime).ToList(); - if (LocLock(WJ_BQ.RK_BBHJQ)) - { - //鏍囩鍏ュ簱 - YwlBQ_CreInwork(locsFirst, WJ_BQ.RK_BQDDQ, WJ_BQ.RK_BBHJQ); - } + + //鏍囩鍏ュ簱 + YwlBQ_CreInwork(locsFirst, WJ_BQ.RK_BQDDQ, WJ_BQ.RK_BBHJQ); + if (yuworders.Any()) { LogHelper.Info($" 鏃犺弻鍑哄簱 宸ュ崟寮�惎涓�"); @@ -1494,11 +1493,10 @@ { // var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "鏃犺弻鏍囩鍑哄簱" && x.WorkType == 6 && x.SQL_State == "鎵ц涓�).FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10).OrderBy(x => x.TagOverTime).ToList(); var yuworders = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == "涓按鏍囩鍑哄簱" && x.WorkType == 6 && x.SQL_State == "鎵ц涓�).FindAll(x => x.OutNum > 0).OrderBy(x => x.TagOverTime).ToList(); - if (LocLock(SX_BQ.RK_BBHJQ)) - { - //姘存爣鍏ュ簱 - YwlBQ_CreInwork(SblocsFirst, SX_BQ.RK_BQDDQ, SX_BQ.RK_BBHJQ); - } + + //姘存爣鍏ュ簱 + YwlBQ_CreInwork(SblocsFirst, SX_BQ.RK_BQDDQ, SX_BQ.RK_BBHJQ); + if (yuworders.Any()) { LogHelper.Info($" 鏃犺弻鍑哄簱 宸ュ崟寮�惎涓�"); @@ -2001,18 +1999,26 @@ var cir = cirs.OrderByDescending(x => x.T_CREATE).FirstOrDefault(); if (CNTR.FirstOrDefault().S_TYPE == BQ_PRA.B) { - var s_type = ContainerHelper.GetCntrItemRel(CNTR.FirstOrDefault().S_CNTR_CODE).FirstOrDefault()?.N_BQ_TRAY_TYPE ?? 0; - Location Endbit = null; - //if (area == area/* WJ_BQ.RK_BQJBQ*/) - //{ - var hjs = LocationHelper.GetAreaNormalLocList(WJ_BQ.RK_BBHJQ, false, false); - var Type = s_type == .5 ? 1 : (s_type == .75 ? 2 : 3); - Endbit = hjs.FindAll(x => x.N_CURRENT_NUM == 0 && x.N_LAYER == Type).OrderBy(x => x.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault(); - if (Endbit != null) + if (cirs.FirstOrDefault().S_ITEM_NAME.Contains("绌烘"))//绌烘 閫�埌绌烘缂撳瓨鍖� { - var re = TaskProcess.CreateTransport("", lastfull.S_LOC_CODE.Trim(), Endbit.S_LOC_CODE, "鏍囩鍙夎繍-绾胯竟鏍囩閫�簱", CNTR.Select(x => x.S_CNTR_CODE).ToList(), 1, 1, 1, 62); - LogHelper.CSucessLog($"from {lastfull.S_LOC_CODE} to {Endbit.S_LOC_CODE} 鏍囩鍙夎繍-鎺ラ┏鏍囩閫�簱 锛屽垱寤簕re}"); + var hjs = LocationHelper.GetAreaNormalLocList(WJ_BQ.RK_BBHJQ, false, false); } + else + { + var s_type = ContainerHelper.GetCntrItemRel(CNTR.FirstOrDefault().S_CNTR_CODE).FirstOrDefault()?.N_BQ_TRAY_TYPE ?? 0; + Location Endbit = null; + //if (area == area/* WJ_BQ.RK_BQJBQ*/) + //{ + var hjs = LocationHelper.GetAreaNormalLocList(WJ_BQ.RK_BBHJQ, false, false); + var Type = s_type == .5 ? 1 : (s_type == .75 ? 2 : 3); + Endbit = hjs.FindAll(x => x.N_CURRENT_NUM == 0 && x.N_LAYER == Type).OrderBy(x => x.N_ROW).ThenBy(x => x.N_COL).FirstOrDefault(); + if (Endbit != null) + { + var re = TaskProcess.CreateTransport("", lastfull.S_LOC_CODE.Trim(), Endbit.S_LOC_CODE, "鏍囩鍙夎繍-绾胯竟鏍囩閫�簱", CNTR.Select(x => x.S_CNTR_CODE).ToList(), 1, 1, 1, 62); + LogHelper.CSucessLog($"from {lastfull.S_LOC_CODE} to {Endbit.S_LOC_CODE} 鏍囩鍙夎繍-鎺ラ┏鏍囩閫�簱 锛屽垱寤簕re}"); + } + } + // } //else @@ -4573,7 +4579,7 @@ if (PLC.deviceName.Contains("T2")) pline = "T2鎻愬崌鏈�绾哥"; - var orkOrd = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == pline && x.WorkType == 6 && x.SQL_State == "鎵ц涓�); + var orkOrd = LocationHelper.GetList<YWLWorkOrder>(x => x.SQL_PLineNo == pline && x.WorkType == 6 && x.SQL_State == "鎵ц涓�).ToList(); bool can = false; if (orkOrd.Any()) { @@ -4586,10 +4592,10 @@ can = true; } - orkOrd = orkOrd.FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10); + orkOrd = orkOrd.FindAll(x => x.OutNum > 0 && DateTime.Now.Subtract(x.SQL_Modify_TIme ?? DateTime.Now).TotalSeconds > 10).ToList(); ReadCCK = can; if (orkOrd.Any()) - foreach (var od in orkOrd.OrderBy(x => x.TagOverTime).ThenBy(x => x.OutNum)) + foreach (var od in orkOrd.OrderBy(x => x.TagOverTime).ThenBy(x => x.OutNum).ToList()) //foreach (var od in od2.ToList()) { var l2 = new List<string>() { "YWLAQWJ", "YWLBQWJ" };//, "YWLCQSX", "YWLDQWJ" }; @@ -4778,11 +4784,11 @@ var db = new SqlHelper<object>().GetInstance(); od.TagOverTime = DateTime.Now; od.TagOver = StartBit.S_AREA_CODE; - if (od.OutNum >= StartBit.N_CURRENT_NUM) - { - od.OutNum = od.OutNum - StartBit.N_CURRENT_NUM; - } - var ggf = db.Updateable(od).UpdateColumns(it => new { it.TagOverTime, it.TagOver, it.OutNum }).ExecuteCommand(); + //if (od.OutNum >= StartBit.N_CURRENT_NUM) + //{ + // od.OutNum = od.OutNum - StartBit.N_CURRENT_NUM; + //} + var ggf = db.Updateable(od).UpdateColumns(it => new { it.TagOverTime, it.TagOver }).ExecuteCommand(); LogHelper.Info($"涓婃彁鍗囨満浠诲姟 鏇存柊宸ュ崟鐨勬椂闂村奖鍝嶈鏁� {ggf}"); // var r = new RowLock { S_LOCK_SRC = od.SQL_ItemCode, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "鍑哄簱閿�, S_AREA_CODE = StartBit.S_AREA_CODE, N_ROW = StartBit.N_ROW }; diff --git a/HH.WCS.QingXiNongfu/process/DeviceProcess.cs b/HH.WCS.QingXiNongfu/process/DeviceProcess.cs index f85d37e..67f3ffa 100644 --- a/HH.WCS.QingXiNongfu/process/DeviceProcess.cs +++ b/HH.WCS.QingXiNongfu/process/DeviceProcess.cs @@ -334,7 +334,7 @@ } else { - if (DateTime.Now.Subtract(_clrel0.T_CREATE).TotalSeconds < 3 || !string.IsNullOrEmpty(_clrel0.S_TYPE)) + if (!string.IsNullOrEmpty(_clrel0.S_TYPE)) goto ballll; } } @@ -2312,7 +2312,7 @@ } //鑾峰彇鎸囧畾搴撳尯 鎸囧畾鎺�婊$殑璐т綅 鐒跺悗鎺掗櫎 姣旀渶澶у垪杩樺皬鐨勭┖璐т綅 - var Mhw = locationInLock.FindAll(e => e.N_CURRENT_NUM > 0).ToList(); + var Mhw = locationInLock.FindAll(e => e.N_CURRENT_NUM > 0 && e.S_LOCK_STATE == "鏃�).ToList(); if (Mhw.Count() > 0) { var RowLis = Mhw.GroupBy(e => e.N_ROW).Select(f => f.First()).ToList(); @@ -4219,6 +4219,13 @@ } if (hojs.N_CURRENT_NUM == 0)//涓婃墭鐩�鍚﹀垯涓嬫墭鐩� { + List<string> TaskState = new List<string>() { "瀹屾垚", "鍙栨秷" }; + var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_START_LOC == location && !TaskState.Contains(x.S_B_STATE)); + if (TaskListNum.Count() > 0) + { + throw new Exception("鍙兘鐢熸垚涓�釜浠诲姟 杩涘嚭"); + } + //涓婃墭鐩�婊℃墭 var jcjykk = bcpList.FindAll(e => e.S_CNTR_TYPE == "婊℃墭").OrderByDescending(g => g.N_PRI).ToList(); var AreaList = jcjykk.Select(e => e.S_AREA_CODE).Distinct().ToList(); @@ -4277,11 +4284,17 @@ { var time = LocationHelper.GetT_FULL_TIME(location); LogHelper.Info(location + "锛氭墭鐩樻斁缃椂闂�(" + time + ") 璐т綅鎵樼洏鏁伴噺(" + hojs.N_CURRENT_NUM + ")"); - if (DateTime.Now.Subtract(time ?? DateTime.Now).TotalMinutes < 1) + if (DateTime.Now.Subtract(time ?? DateTime.Now).TotalSeconds < 10) { PlcHelper.SendHex(plc.address, "3F00110D0A"); return false; } + List<string> TaskState = new List<string>() { "瀹屾垚", "鍙栨秷", "鎺ㄩ�寮傚父" }; + var TaskListNum = LocationHelper.GetList<WMSTask>(x => x.S_END_LOC == location && !TaskState.Contains(x.S_B_STATE)); + if (TaskListNum.Count() > 0) + { + throw new Exception("鍙兘鐢熸垚涓�釜浠诲姟 杩涘嚭"); + } LocCntrRel _clrel = LocationHelper.GetLocCntrRel(hojs.S_LOC_CODE).FirstOrDefault(); //涓嬫墭鐩�绌烘 var jcjykk = bcpList.FindAll(e => e.S_CNTR_TYPE == "绌烘墭").OrderByDescending(g => g.N_PRI).ToList(); diff --git a/HH.WCS.QingXiNongfu/process/TaskProcess.cs b/HH.WCS.QingXiNongfu/process/TaskProcess.cs index a058a04..1382812 100644 --- a/HH.WCS.QingXiNongfu/process/TaskProcess.cs +++ b/HH.WCS.QingXiNongfu/process/TaskProcess.cs @@ -433,9 +433,11 @@ && mst.S_TYPE.Trim() != "闈掓邯绾哥鎼繍鐗╂枡" && !mst.S_TYPE.Trim().Contains("鑷敱鐐瑰鐐�)) { - CacheBitUpdate(mst, load: false, mst.S_NOTE); + if (mst.S_END_LOC != "YWLT1TSJ") + { + CacheBitUpdate(mst, load: false, mst.S_NOTE); + } } - if (mst.S_TYPE.Trim().Contains("鎴愬搧-绌烘墭涓婄嚎")) { @@ -479,7 +481,8 @@ { // to.AlQty += mst.S_CNTRS.Split(',').Length;// mst.S_CNTRS.Substring(1).Split('v').Length; to.OutNum -= mst.S_CNTRS.Split(',').Length; - db.Updateable(to).UpdateColumns(it => new { it.OutNum }).ExecuteCommand(); + var ggi = db.Updateable(to).UpdateColumns(it => new { it.OutNum }).ExecuteCommand(); + LogHelper.Info($"鏇存柊 鎻愬崌鏈轰笂鏂欏伐鍗曡〃鏁伴噺涓�{to.OutNum} 褰卞搷琛屾暟涓�{ggi}"); } } @@ -1353,18 +1356,18 @@ else return false; } } - else if (taskType.Contains("鐡跺澂缈绘枟鏈虹┖鎵�) && mst.S_END_LAREA == "QXPPXXQ") + else if (taskType.Contains("鐡跺澂缈绘枟鏈虹┖鎵�)) { start = LocationHelper.GetAgvSite(mst.S_START_LOC); end = LocationHelper.GetAgvSite(mst.S_END_LOC, "2"); - LogHelper.Info($"鐡跺澂鏈轰换鍔�璧风偣缁堢偣瀵瑰簲鐨刟gv绔欑偣 start {start} end {end} 浠诲姟:" + mst.S_TASK_NO); + LogHelper.Info($"鐡跺澂鏈虹炕鏂楁満浠诲姟 璧风偣缁堢偣瀵瑰簲鐨刟gv绔欑偣 start {start} end {end} 浠诲姟:" + mst.S_TASK_NO); } - else if (taskType.Contains("鐡跺澂缈绘枟鏈烘弧鎵�) && mst.S_START_LAREA == "QXPPXXQ") + else if (taskType.Contains("鐡跺澂缈绘枟鏈烘弧鎵�)) { start = LocationHelper.GetAgvSite(mst.S_START_LOC, "2"); end = LocationHelper.GetAgvSite(mst.S_END_LOC); - LogHelper.Info($"鐡跺澂鏈轰换鍔�璧风偣缁堢偣瀵瑰簲鐨刟gv绔欑偣 start {start} end {end} 浠诲姟:" + mst.S_TASK_NO); + LogHelper.Info($"鐡跺澂鏈虹炕鏂楁満浠诲姟 璧风偣缁堢偣瀵瑰簲鐨刟gv绔欑偣 start {start} end {end} 浠诲姟:" + mst.S_TASK_NO); } //else if (taskType.Contains("鏀剁缉鑶滃弶杩�鍏ュ簱") || taskType.Contains("鏀剁缉鑶滃弶杩�鍏ュ簱") || taskType.Contains("鏀剁缉鑶滃弶杩�璐ф灦鍑烘彁鍗囨満")) //{ diff --git a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs index fb28716..cae6c27 100644 --- a/HH.WCS.QingXiNongfu/wms/TaskHelper.cs +++ b/HH.WCS.QingXiNongfu/wms/TaskHelper.cs @@ -1,4 +1,5 @@ 锘縰sing HH.WCS.QingXigongchang.dispatch; +using HH.WCS.QingXigongchang.process; using HH.WCS.QingXigongchang.util; using Newtonsoft.Json; using SqlSugar; @@ -241,6 +242,21 @@ { var db = new SqlHelper<object>().GetInstance(); + if (task.S_START_LOC == "YWLT1TSJCD-1" && task.N_START_LAYER == 2) + { + var _clrel = LocationHelper.GetLocCntrRel(task.S_START_LOC); + + if (_clrel != null) + { + var sta = db.Queryable<Location>().Where(l => l.S_LOC_CODE == task.S_START_LOC).First(); + if (sta.N_CURRENT_NUM > 0 && sta.S_LOCK_STATE == "鏃�) + { + var sign = Settings.GetTimeStamp(); + var res = TaskProcess.CreateTransport(sign, task.S_START_LOC, task.S_END_LOC, "鍘熺墿鏂欐惉杩�绾哥", new List<string> { _clrel.FirstOrDefault().S_CNTR_CODE }, sta.N_CURRENT_NUM, 1, 1, 60); + } + } + } + if (task.S_END_LAREA == "YWLYLTKQ" || task.S_END_LAREA == "YWLTKKTQ") { //鏌ヨ鍑哄簱閿乊WLWJJB -- Gitblit v1.9.1