From 92a558e9ebfdf05d2536aa6b3fa93b1bd7f08e30 Mon Sep 17 00:00:00 2001
From: czw <selecti@yeah.net>
Date: 星期二, 22 七月 2025 17:53:15 +0800
Subject: [PATCH] 清溪瓶坯翻斗机光栅信号缓存和 安全交互处理。1101-4

---
 HH.WCS.QingXiNongfu/process/DeviceProcess.cs |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/HH.WCS.QingXiNongfu/process/DeviceProcess.cs b/HH.WCS.QingXiNongfu/process/DeviceProcess.cs
index f85d37e..1548aa8 100644
--- a/HH.WCS.QingXiNongfu/process/DeviceProcess.cs
+++ b/HH.WCS.QingXiNongfu/process/DeviceProcess.cs
@@ -98,7 +98,22 @@
                         //缈绘枟鏈�-  鐡跺澂
                         else if (plc.deviceType == 5)
                         {
-
+                            var info = data.Length > 2 ? data.Substring(0, 2) : "12";
+                            info += data.Length > 5 ? data.Substring(4, 2) : "01";
+                            if (doorStatus.ContainsKey(plc.location[0]))
+                            {
+                                doorStatus[plc.location[0]].info = info;
+                                doorStatus[plc.location[0]].modify = DateTime.Now;
+                            }
+                            else
+                            {
+                                doorStatus.Add(plc.location[0], new signalInfo
+                                {
+                                    info = info,
+                                    modify = DateTime.Now
+                                });
+                            }
+                            data = data.Substring(0, 2);
                             PpFdjData(data, plc);
                             // AnalysisBottleCapTipper(data, plc);
                         }
@@ -334,7 +349,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 +2327,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 +4234,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 +4299,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();

--
Gitblit v1.9.1