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