From 265e2fa111ae3e6b3ff242d2478d3facc06f7d6b Mon Sep 17 00:00:00 2001
From: pulg <plg@Haninfo>
Date: 星期三, 02 七月 2025 18:01:14 +0800
Subject: [PATCH] 1

---
 HH.WCS.QingXiNongfu/settings.xml           |    4 +-
 HH.WCS.QingXiNongfu/Program.cs             |    5 +-
 HH.WCS.QingXiNongfu/bin/Debug/settings.xml |    4 +-
 HH.WCS.QingXiNongfu/core/Monitor.cs        |   99 ++++++++++++++++++++++++++++++++++++-------------
 HH.WCS.QingXiNongfu/wms/WCSModel.cs        |    1 
 5 files changed, 79 insertions(+), 34 deletions(-)

diff --git a/HH.WCS.QingXiNongfu/Program.cs b/HH.WCS.QingXiNongfu/Program.cs
index 82bd5f6..7a98936 100644
--- a/HH.WCS.QingXiNongfu/Program.cs
+++ b/HH.WCS.QingXiNongfu/Program.cs
@@ -19,7 +19,6 @@
 using System.Threading;
 using System.Threading.Tasks;
 using Topshelf;
-using static System.Net.Mime.MediaTypeNames;
 using Monitor = HH.WCS.QingXigongchang.core.Monitor;
 
 namespace HH.WCS.QingXigongchang
@@ -755,8 +754,8 @@
                     //鍘熸潗鏂�鑷姩涓浆 - 灞曠ず娴佺▼銆�鍓嶆湡娴嬭瘯鐢ㄧ殑
                     //GetTask(Monitor.AutoRun),
                     GetTask(Monitor.YwlTKPEBQ_Auto),//鏍囩鏃犺弻姘寸嚎鍑哄叆搴撱�
-                    //鍘熸潗鏂欑殑 鏂颁腑杞祦绋嬨� 
-                    GetTask(Monitor.YWL_ZX_Turn),
+                    //鍘熸潗鏂欑殑 鏂颁腑杞祦绋嬨�
+                    GetTask(Monitor.YWL_ZX_Turn),//--绉诲簱
                     GetTask(Monitor.BottTask),// 绾哥鑷姩涓浆
                     GetTask(Monitor.AutoRunABD),
                     GetTask(Monitor.AutoRun13TSJ),
diff --git a/HH.WCS.QingXiNongfu/bin/Debug/settings.xml b/HH.WCS.QingXiNongfu/bin/Debug/settings.xml
index c20275e..a0d5f42 100644
--- a/HH.WCS.QingXiNongfu/bin/Debug/settings.xml
+++ b/HH.WCS.QingXiNongfu/bin/Debug/settings.xml
@@ -127,8 +127,8 @@
 
 	{"address":"10.140.3.187","deviceName":"鐡剁洊5L缈绘枟鏈�,"deviceNo":["","187"],"location":["SXFDJ-1"],"deviceType":10,"areaPriy":["PGMKCK"],"enable":1},
 	
-	{"address":"10.140.3.170","deviceName":"T2鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
-	{"address":"10.140.9.167","deviceName":"T1鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
+	{"address":"10.140.9.167","deviceName":"T2鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
+	{"address":"10.140.9.168","deviceName":"T1鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
 	
     ]]]>
 	
diff --git a/HH.WCS.QingXiNongfu/core/Monitor.cs b/HH.WCS.QingXiNongfu/core/Monitor.cs
index ec2cd39..3b7bdac 100644
--- a/HH.WCS.QingXiNongfu/core/Monitor.cs
+++ b/HH.WCS.QingXiNongfu/core/Monitor.cs
@@ -1470,7 +1470,7 @@
                 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 && 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 (!yuworders.Any())
                     {
                         YwlBQ_CreInwork(locsFirst, WJ_BQ.RK_BQDDQ, WJ_BQ.RK_BBHJQ);
@@ -2292,12 +2292,12 @@
             if (order != null)
             {
                 var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO);
-                if (Porder == null)
-                {
-                    LogHelper.CErrorLog("SX鏍囩鍑哄簱锛� + (order.SQL_LinkLineNO) + "娌℃湁銆愭墽琛屼腑銆戠殑宸ュ崟");
-                    yuworders.Remove(order);
-                    goto retuse;
-                }
+                //if (Porder == null)
+                //{
+                //    LogHelper.CErrorLog("SX鏍囩鍑哄簱锛� + (order.SQL_LinkLineNO) + "娌℃湁銆愭墽琛屼腑銆戠殑宸ュ崟");
+                //    yuworders.Remove(order);
+                //    goto retuse;
+                //}
                 var oto = new List<string>();
                 //if (!string.IsNullOrEmpty(order.TagOver))
                 //    oto = order.TagOver.Split(',').ToList();
@@ -2786,12 +2786,12 @@
             if (order != null)
             {
                 var Porder = WCSHelper.GetWorkOrder(order.SQL_LinkLineNO);
-                if (Porder == null)
-                {
-                    LogHelper.CErrorLog("鏃犺弻鏍囩鍑哄簱锛� + (order.SQL_LinkLineNO) + "娌℃湁銆愭墽琛屼腑銆戠殑宸ュ崟");
-                    yuworders.Remove(order);
-                    goto retuse;
-                }
+                //if (Porder == null)
+                //{
+                //    LogHelper.CErrorLog("鏃犺弻鏍囩鍑哄簱锛� + (order.SQL_LinkLineNO) + "娌℃湁銆愭墽琛屼腑銆戠殑宸ュ崟");
+                //    yuworders.Remove(order);
+                //    goto retuse;
+                //}
 
                 var oto = new List<string>();
                 //if (!string.IsNullOrEmpty(order.TagOver))
@@ -4345,6 +4345,8 @@
         /// </summary>
         internal static void YWL_ZX_Turn()
         {
+            var dbcd = new SqlHelper<object>().GetInstance();
+
             foreach (var ODs in LocationHelper.GetList<YWLZXtake>(X => X.S_ZX_STATE == "鎵ц").GroupBy(x => x.S_START_AREA))
             {
                 var locS = LocationHelper.GetAreaNormalLocList(ODs.Key);
@@ -4380,6 +4382,26 @@
                         }
                         else
                         {
+                            if (od.N_END_ROW > 0)
+                            {
+                                var EndRow = dbcd.Queryable<Location>().Where(l => l.S_AREA_CODE == od.S_END_AREA && l.N_ROW == od.N_END_ROW && l.N_CURRENT_NUM == 0).ToList();
+                                if (EndRow.Count() == 0)
+                                {
+                                    //缃负瀹屾垚銆�
+                                    od.S_ZX_STATE = "瀹屾垚";
+                                    WCSHelper.Do(db => db.Updateable(od).UpdateColumns(x => new { x.S_ZX_STATE }).ExecuteCommand());
+                                }
+                            }
+                            else
+                            {
+                                var EndRow = dbcd.Queryable<Location>().Where(l => l.S_AREA_CODE == od.S_END_AREA && l.N_CURRENT_NUM == 0).ToList();
+                                if (EndRow.Count() == 0)
+                                {
+                                    //缃负瀹屾垚銆�
+                                    od.S_ZX_STATE = "瀹屾垚";
+                                    WCSHelper.Do(db => db.Updateable(od).UpdateColumns(x => new { x.S_ZX_STATE }).ExecuteCommand());
+                                }
+                            }
                             var lastful = rows.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault();
                             if (lastful != null)
                             {
@@ -4410,27 +4432,49 @@
                                 string nextarea = !string.IsNullOrEmpty(od.S_ZZ_AREA) ? od.S_ZZ_AREA : od.S_END_AREA;
                                 var zzlocs = LocationHelper.GetAreaNormalLocList(nextarea);
                                 Location Endbit = null;
-                                foreach (var zzrs in zzlocs.GroupBy(x => x.N_ROW).OrderBy(x => x.Key))
+                                if (od.N_END_ROW == 0 && zzlocs.Any())
                                 {
-                                    var zzrloclist = zzrs.ToList();
-                                    var _cl2 = zzrloclist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault();
-                                    if (_cl2 != null)
+                                    foreach (var zzrs in zzlocs.GroupBy(x => x.N_ROW).OrderBy(x => x.Key))
                                     {
-                                        var rel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE);
-                                        var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault();
-                                        if (cntrrel == null)
-                                            continue;
-                                        if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME)
+                                        var zzrloclist = zzrs.ToList();
+                                        var _cl2 = zzrloclist.FindAll(x => x.N_CURRENT_NUM > 0).OrderBy(x => x.N_COL).LastOrDefault();
+                                        if (_cl2 != null)
                                         {
+                                            var rel = LocationHelper.GetLocCntrRel(_cl2.S_LOC_CODE);
+                                            var cntrrel = ContainerHelper.GetCntrItemRel(rel.FirstOrDefault()?.S_CNTR_CODE).FirstOrDefault();
+                                            if (cntrrel == null)
+                                                continue;
+                                            if (cntrrel.S_ITEM_CODE == cir1.S_ITEM_CODE && cntrrel.S_ITEM_NAME == cir1.S_ITEM_NAME && cntrrel.S_CJ_NAME == cir1.S_CJ_NAME)
+                                            {
+                                                Endbit = zzrloclist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0));
+                                            }
+                                        }
+                                        else
                                             Endbit = zzrloclist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0));
+                                        if (Endbit != null)
+                                        {
+                                            LogHelper.Info($"鍏ヤ腑杞尯{nextarea}浣跨敤{Endbit.S_LOC_CODE}");
+                                            break;
                                         }
                                     }
-                                    else
-                                        Endbit = zzrloclist.Find(x => x.N_COL > (_cl2?.N_COL ?? 0));
-                                    if (Endbit != null)
+                                }
+                                else
+                                {
+                                    if (zzlocs.Any() && od.N_END_ROW > 0)//鐢ㄤ簬搴撳唴 姣斿A搴撴煇鎺掔Щ鍒癆搴撶殑鍙︿竴鎺�                                     {
-                                        LogHelper.Info($"鍏ヤ腑杞尯{nextarea}浣跨敤{Endbit.S_LOC_CODE}");
-                                        break;
+                                        zzlocs = zzlocs.FindAll(e => e.N_ROW == od.N_END_ROW);
+                                        //
+                                        var EndMt = dbcd.Queryable<Location>().Where(l => l.S_AREA_CODE == od.S_END_AREA && l.N_ROW == od.N_END_ROW && l.N_CURRENT_NUM > 0).ToList();
+                                        if (EndMt.Any())
+                                        {
+                                            var ggh = EndMt.OrderByDescending(e => e.N_COL).FirstOrDefault();
+                                            zzlocs = zzlocs.FindAll(e => e.N_COL > ggh.N_COL).ToList();
+                                        }
+                                        if (zzlocs.Any())
+                                        {
+                                            Endbit = zzlocs.OrderBy(e => e.N_COL).FirstOrDefault();
+                                        }
+
                                     }
                                 }
                                 LogHelper.Info($"YWL_ZX_Turn from{od.S_START_AREA} mid:{od.S_ZZ_AREA} to{od.S_END_AREA} 鎵惧埌绉诲簱缁堢偣銆媨Endbit?.S_LOC_CODE}");
@@ -4445,6 +4489,7 @@
                             }
                         }
                     }
+
                 }
             }
         }
diff --git a/HH.WCS.QingXiNongfu/settings.xml b/HH.WCS.QingXiNongfu/settings.xml
index c20275e..a0d5f42 100644
--- a/HH.WCS.QingXiNongfu/settings.xml
+++ b/HH.WCS.QingXiNongfu/settings.xml
@@ -127,8 +127,8 @@
 
 	{"address":"10.140.3.187","deviceName":"鐡剁洊5L缈绘枟鏈�,"deviceNo":["","187"],"location":["SXFDJ-1"],"deviceType":10,"areaPriy":["PGMKCK"],"enable":1},
 	
-	{"address":"10.140.3.170","deviceName":"T2鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
-	{"address":"10.140.9.167","deviceName":"T1鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
+	{"address":"10.140.9.167","deviceName":"T2鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT2TSJ"],"areaPriy":["YWLT2TSJCD"],"deviceType":13,"enable":1},
+	{"address":"10.140.9.168","deviceName":"T1鎻愬崌鏈�,"deviceNo":[""],"taskPri":50,"location":["YWLT1TSJ"],"areaPriy":["YWLT1TSJCD"],"deviceType":13,"enable":1},
 	
     ]]]>
 	
diff --git a/HH.WCS.QingXiNongfu/wms/WCSModel.cs b/HH.WCS.QingXiNongfu/wms/WCSModel.cs
index 5ac2008..7ce11e3 100644
--- a/HH.WCS.QingXiNongfu/wms/WCSModel.cs
+++ b/HH.WCS.QingXiNongfu/wms/WCSModel.cs
@@ -507,6 +507,7 @@
         public string SQL_WorkNo { get; set; }
         public string S_START_AREA { get; set; }
         public int N_START_ROW { get; set; }
+        public int N_END_ROW { get; set; }
         public string S_ZZ_AREA { get; set; }
         public string S_END_AREA { get; set; }
         public string S_ZX_STATE { get; set; }

--
Gitblit v1.9.1