From 64d2bad5e5d8440a40a80baad0ab41d7a65e8675 Mon Sep 17 00:00:00 2001
From: cjs <2216046164@qq.com>
Date: 星期二, 29 七月 2025 17:30:45 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs  |   22 ++++++++++++++--------
 HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs |    1 +
 HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs  |   35 +++++++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+), 8 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
index 0310ee8..23010cb 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/core/Monitor.cs
@@ -106,6 +106,7 @@
             #endregion
         }
 
+        public static bool B_FLAGE = false;
         /// <summary>
         /// 鐡跺澂缈绘枟鏈洪潪鍗充骇婊℃鍖鸿ˉ婊℃墭
         /// </summary>
@@ -121,19 +122,24 @@
                     string areaName = a.S_PLineNo.Split('-')[1].Substring(0, 1) + "鍙风摱鍧炕鏂楁満闈炲嵆浜ф弧妗�;
                     LogHelper.Info($"PPFDFullIn area:{areaName}");
                     var areaInfo = Settings.areaInfos.Where(b => b.areaName == areaName && b.enable == 1).FirstOrDefault();
-                    if(areaInfo != null)
+                    if (areaInfo != null)
                     {
                         var locInfo = db.Queryable<Location>().Where(b => b.S_AREA_CODE == areaInfo.areaCode && b.N_CURRENT_NUM == 0 && b.S_LOCK_STATE == "鏃�).First();
-                        if(locInfo != null)
+                        if (locInfo != null)
                         {
-                            //鐢熸垚浠诲姟
-                            Location location = TaskProcess.BCPInOrOutTwo(db, "鐡跺澂搴撳尯", a.S_ItemCode);
-                            if(location != null)
+                            if (!B_FLAGE)
                             {
-                                string cntrCode = getCntrCode(db,location);
-                                //鍒涘缓浣滀笟
-                                WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ婊℃", cntrCode, "鐡跺澂");
+                                B_FLAGE = true;
+                                //鐢熸垚浠诲姟
+                                Location location = TaskProcess.BCPInOrOutTwo(db, "鐡跺澂搴撳尯", a.S_ItemCode);
+                                if (location != null)
+                                {
+                                    string cntrCode = getCntrCode(db, location);
+                                    //鍒涘缓浣滀笟
+                                    WMSHelper.CreateOpTask(location.S_CODE, locInfo.S_CODE, "鍏ュ簱", "鐡跺澂闈炲嵆浜цˉ婊℃", cntrCode, "鐡跺澂");
+                                }
                             }
+                            B_FLAGE = false;
                         }
                     }
                     else
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
index 35ed15e..7d9d484 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
@@ -51,6 +51,37 @@
                 {
                     try
                     {
+                        if(a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴�)
+                        {
+                            if (!Monitor.B_FLAGE)
+                            {
+                                Monitor.B_FLAGE = true;
+                                //鍒ゆ柇褰撳墠鏄惁鏈夌瓑寰呮垨鑰呴敊璇殑鎺ラ┏浣嶅叆搴撲换鍔★紝骞朵笖璧风偣璐т綅鍦ㄥ綋鍓嶈揣浣嶇殑澶栭潰
+                                var taskList = db.Queryable<WMSTask>().Where(b => b.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴� && b.S_ID != a.S_ID && (b.N_B_STATE == 0 || b.N_B_STATE == 3)).ToList();
+                                if(taskList.Count > 0)
+                                {
+                                    bool task_flage = false;
+                                    foreach(var x in taskList)
+                                    {
+                                        var startLocInfo = db.Queryable<Location>().Where(y => y.S_CODE == x.S_START_LOC).First();
+                                        var startLocInfoTwo = db.Queryable<Location>().Where(y => y.S_CODE == a.S_START_LOC).First();
+                                        if(startLocInfo.N_ROW == startLocInfoTwo.N_ROW && startLocInfo.N_COL > startLocInfoTwo.N_COL)
+                                        {
+                                            task_flage = true;
+                                            break;
+                                        }
+                                    }
+                                    if (task_flage)
+                                    {
+                                        continue;
+                                    }
+                                }
+                            }
+                            else
+                            {
+                                continue;
+                            }
+                        }
                         if (a.N_TYPE == 1)
                         {
                             //鏌ヨ鎵樼洏鎵�湪浣嶇疆
@@ -153,6 +184,10 @@
                                 LogHelper.Info($"浣滀笟{a.S_CODE} 鑾峰彇缁堢偣澶辫触");
                             }
                         }
+                        if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴�)
+                        {
+                            Monitor.B_FLAGE = false;
+                        }
                     }
                     catch (Exception ex)
                     {
diff --git a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
index 05ce7d5..1d50612 100644
--- a/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
+++ b/HH.WCS.Mobox3.NongFuLinZhi/wms/WMSHelper.cs
@@ -719,6 +719,7 @@
                         {
                             string areaName = a.S_NOTE.Split('-')[1];
                             result = TaskProcess.BCPInOrOut(db, true, areaName, itemCode);
+                            //鏌ヨ缁堢偣璐т綅锛屾槸鐢卞惁鐩稿悓鎺掔殑浣滀笟
                         }
                         else
                         {

--
Gitblit v1.9.1