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/core/Monitor.cs |  149 +++++++++++++++++++++++++------------------------
 1 files changed, 77 insertions(+), 72 deletions(-)

diff --git a/HH.WCS.QingXiNongfu/core/Monitor.cs b/HH.WCS.QingXiNongfu/core/Monitor.cs
index 972758d..e578a4a 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(() =>
@@ -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
@@ -4574,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())
                 {
@@ -4587,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" };
@@ -4716,21 +4721,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 +4784,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