From ec50f98285c1a6eeb0b009b70445cc3ac64737c7 Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期二, 22 七月 2025 18:09:27 +0800 Subject: [PATCH] 1 --- HH.WCS.QingXiNongfu/core/Monitor.cs | 164 ++++++++++++++++++++++++++++-------------------------- 1 files changed, 84 insertions(+), 80 deletions(-) diff --git a/HH.WCS.QingXiNongfu/core/Monitor.cs b/HH.WCS.QingXiNongfu/core/Monitor.cs index 972758d..d0a749b 100644 --- a/HH.WCS.QingXiNongfu/core/Monitor.cs +++ b/HH.WCS.QingXiNongfu/core/Monitor.cs @@ -1294,18 +1294,18 @@ var sign = Settings.GetTimeStamp(); var res = TaskProcess.CreateTransport(sign, _cl.S_LOC_CODE, endbit.S_LOC_CODE, "鍘熺墿鏂欐惉杩�绾哥", _clrel.Select(x => x.S_CNTR_CODE).ToList(), 1, endbit.N_CURRENT_NUM + 1, 1, 50, Last);///, EdnRarea == "YWLYLTKQ" ? _clrel0.S_TYPE : ""); LogHelper.Info($"{r.Key}鍘熺墿鏂欐惉杩�{sign} 浠诲姟 锛屽垱寤簕res} "); - if (CDlist.Contains(endbit.S_AREA_CODE) && res) - { - LogHelper.Info($"娣诲姞鍐呭瓨鎺掗攣"); - var ggf = inlockLis.Find(e => e.S_LOCK_SRC == cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME && e.S_AREA_CODE == endbit.S_AREA_CODE && e.N_ROW == endbit.N_ROW); - LogHelper.Info($"娣诲姞鍐呭瓨鎺掗攣 鏄惁鏌ヨ鍒版暟鎹�{JsonConvert.SerializeObject(ggf)}"); - if (ggf == null) - { - var rrrr = new RowLock { S_LOCK_SRC = cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "鍏ュ簱閿�, S_AREA_CODE = endbit.S_AREA_CODE, N_ROW = endbit.N_ROW }; - inlockLis.Add(rrrr); - LogHelper.Info($"娣诲姞鍐呭瓨鎺掗攣 娣诲姞鏁版嵁鍒板唴瀛樻帓閿佷腑:{JsonConvert.SerializeObject(inlockLis)}"); - } - } + //if (CDlist.Contains(endbit.S_AREA_CODE) && res) + //{ + // LogHelper.Info($"娣诲姞鍐呭瓨鎺掗攣"); + // var ggf = inlockLis.Find(e => e.S_LOCK_SRC == cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME && e.S_AREA_CODE == endbit.S_AREA_CODE && e.N_ROW == endbit.N_ROW); + // LogHelper.Info($"娣诲姞鍐呭瓨鎺掗攣 鏄惁鏌ヨ鍒版暟鎹�{JsonConvert.SerializeObject(ggf)}"); + // if (ggf == null) + // { + // var rrrr = new RowLock { S_LOCK_SRC = cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "鍏ュ簱閿�, S_AREA_CODE = endbit.S_AREA_CODE, N_ROW = endbit.N_ROW }; + // inlockLis.Add(rrrr); + // LogHelper.Info($"娣诲姞鍐呭瓨鎺掗攣 娣诲姞鏁版嵁鍒板唴瀛樻帓閿佷腑:{JsonConvert.SerializeObject(inlockLis)}"); + // } + //} //if (res && inlock == null && isCd) //{ // var rrrr = new RowLock { S_LOCK_SRC = cir1.S_ITEM_CODE + cir1.S_ITEM_NAME + cir1.S_CJ_NAME, T_LOCK_TIME = DateTime.Now, S_LOCK_STATE = "鍏ュ簱閿�, S_AREA_CODE = endbit.S_AREA_CODE, N_ROW = endbit.N_ROW }; @@ -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($" 鏃犺弻鍑哄簱 宸ュ崟寮�惎涓�"); @@ -1490,31 +1489,28 @@ } //}); - var task11 = Task.Run(() => + try { - try + // 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(); + + //姘存爣鍏ュ簱 + YwlBQ_CreInwork(SblocsFirst, SX_BQ.RK_BQDDQ, SX_BQ.RK_BBHJQ); + + if (yuworders.Any()) { - // 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); - } - if (yuworders.Any()) - { - LogHelper.Info($" 鏃犺弻鍑哄簱 宸ュ崟寮�惎涓�"); - // 涓按鏍囩閫�簱銆傝揣鏋剁洿鎺ュ嚭鍒扮嚎杈�- ZsBQ_CreWJOutOrder(); - } - // 涓按鏍囩閫�簱銆� - ZsBQ_CreWJTK(); + LogHelper.Info($" 鏃犺弻鍑哄簱 宸ュ崟寮�惎涓�"); + // 涓按鏍囩閫�簱銆傝揣鏋剁洿鎺ュ嚭鍒扮嚎杈�+ ZsBQ_CreWJOutOrder(); } - catch (Exception ex) - { - LogHelper.Error(ex.Message, ex); - } - }); + // 涓按鏍囩閫�簱銆� + ZsBQ_CreWJTK(); + } + catch (Exception ex) + { + LogHelper.Error(ex.Message, ex); + } + var plc = Settings.GetDeviceInfoList().Where(a => a.deviceName == "T2鎻愬崌鏈�).FirstOrDefault(); var task2 = Task.Run(() => @@ -1715,13 +1711,13 @@ } if (order != null) { - var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO); - if (Porder == null) - { - LogHelper.CErrorLog("灏忔按鍑哄簱锛� + (order.SQL_LinkLineNO) + "娌℃湁銆愭墽琛屼腑銆戠殑宸ュ崟"); - yuworders.Remove(order); - goto retuse; - } + // var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO); + //if (Porder == null) + //{ + // LogHelper.CErrorLog("灏忔按鍑哄簱锛� + (order.SQL_LinkLineNO) + "娌℃湁銆愭墽琛屼腑銆戠殑宸ュ崟"); + // yuworders.Remove(order); + // goto retuse; + //} var oto = new List<string>(); //if (!string.IsNullOrEmpty(order.TagOver)) // oto = order.TagOver.Split(',').ToList(); @@ -2003,17 +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, true, false); - Endbit = hjs.FindAll(x => x.N_CURRENT_NUM == 0 && x.N_LAYER == (s_type == .5 ? 1 : (s_type == .75 ? 2 : 3))).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 @@ -2053,7 +2058,6 @@ //鎵ц閫�簱銆傘�銆� // Console.WriteLine($"{v.FirstOrDefault()?.S_LOC_CODE} 闇�閫�簱-- 鑷姩閫�簱-鏈疄鐜�); } - } private static void YwlPETKOutOrder(string v, string v1, string v2, int v3 = 3) @@ -4574,7 +4578,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()) { @@ -4587,10 +4591,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" }; @@ -4716,21 +4720,21 @@ else { //妫�祴鎸囧畾搴撳尯鐨勭墿鏂欐帓鎬绘暟閲�- if (dsi.TryGetValue(od.S_ROW, out var dictitems1)) - { - //var rows = dictitems1.Select(x => x.Row).Distinct(); - //var loclist = LocationHelper.GetLocList(x => x.S_AREA_CODE == od.S_ROW && rows.Contains(x.N_ROW)); - ////鏌ヨ鍙敤璐т綅鏈夊灏�- //List<string> Ky = new List<string>() { "鏃�, "鍑哄簱閿�, "鍏ュ簱閿� }; - //var loclistK = loclist.FindAll(x => Ky.Contains(x.S_LOCK_STATE)).Count(); - //var count = loclist.FindAll(x => x.N_CURRENT_NUM > 0 && x.S_LOCK_STATE == "鏃�).Sum(x => x.N_CURRENT_NUM); - //LogHelper.Info("AutoRun13TSJ" + $"od.S_ROW 鍑哄簱浣欓噺鍒ゆ柇鏄惁闇�杞繍銆�{count}< 鎬诲叡鑳界敤鐨勮揣浣嶆暟{loclistK} -7"); - //if (count < loclistK - 7) - //{ - // autoTurn = true; - // _sAB娌$墿鏂欐垨鑰呬綑閲忎笉瓒冲紑濮嬭Е鍙戣窡鏍规嵁鑷姩杞繍_鍚嶅瓧瓒婇暱瓒婂ソ(od); - //} - } + //if (dsi.TryGetValue(od.S_ROW, out var dictitems1)) + //{ + // //var rows = dictitems1.Select(x => x.Row).Distinct(); + // //var loclist = LocationHelper.GetLocList(x => x.S_AREA_CODE == od.S_ROW && rows.Contains(x.N_ROW)); + // ////鏌ヨ鍙敤璐т綅鏈夊灏�+ // //List<string> Ky = new List<string>() { "鏃�, "鍑哄簱閿�, "鍏ュ簱閿� }; + // //var loclistK = loclist.FindAll(x => Ky.Contains(x.S_LOCK_STATE)).Count(); + // //var count = loclist.FindAll(x => x.N_CURRENT_NUM > 0 && x.S_LOCK_STATE == "鏃�).Sum(x => x.N_CURRENT_NUM); + // //LogHelper.Info("AutoRun13TSJ" + $"od.S_ROW 鍑哄簱浣欓噺鍒ゆ柇鏄惁闇�杞繍銆�{count}< 鎬诲叡鑳界敤鐨勮揣浣嶆暟{loclistK} -7"); + // //if (count < loclistK - 7) + // //{ + // // autoTurn = true; + // // _sAB娌$墿鏂欐垨鑰呬綑閲忎笉瓒冲紑濮嬭Е鍙戣窡鏍规嵁鑷姩杞繍_鍚嶅瓧瓒婇暱瓒婂ソ(od); + // //} + //} } Location Endbit = null; @@ -4779,14 +4783,14 @@ 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 }; + // 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 }; //缁欑粓鐐归攣瀹氫綇 if (od.S_ROW == "YWLCQSX" || od.S_ROW == "YWLDQWJ") -- Gitblit v1.9.1