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/WMSCore.cs |   44 +++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 43 insertions(+), 1 deletions(-)

diff --git a/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs b/HH.WCS.Mobox3.NongFuLinZhi/core/WMSCore.cs
index 0938510..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)
                         {
                             //鏌ヨ鎵樼洏鎵�湪浣嶇疆
@@ -63,6 +94,9 @@
                                 LocationHelper.LockLoc(end.S_CODE, 1);
                                 var startinfo = db.Queryable<Location>().Where(it => it.S_CODE == a.S_START_LOC).First();
                                 var endinfo = db.Queryable<Location>().Where(it => it.S_CODE == end.S_CODE).First();
+                                int startLayer = startinfo.N_CURRENT_NUM;
+                                int endlayer = endinfo.N_CURRENT_NUM + 1;
+
                                 var wcsTask = new WCSTask
                                 {
                                     S_OP_CODE = a.S_CODE,
@@ -80,7 +114,11 @@
                                     N_CNTR_COUNT = 1,
                                     S_CNTR_CODE = a.S_CNTR_CODE,
                                     N_START_LAYER = startinfo.N_CURRENT_NUM,
-                                    N_END_LAYER = endinfo.N_CURRENT_NUM + 1
+                                    N_END_LAYER = endinfo.N_CURRENT_NUM + 1,
+                                    S_TRAY_TYPE = a.S_TRAY_TYPE,
+                                    S_WORK_NO = a.S_WORK_NO,
+                                    S_ITEM_CODE = a.S_ITEM_CODE,
+                                    S_NOTE = a.S_NOTE
                                 };
                                 if (WCSHelper.CreateTask(wcsTask))
                                 {
@@ -146,6 +184,10 @@
                                 LogHelper.Info($"浣滀笟{a.S_CODE} 鑾峰彇缁堢偣澶辫触");
                             }
                         }
+                        if (a.S_OP_DEF_NAME == "鎺ラ┏浣嶅叆搴�)
+                        {
+                            Monitor.B_FLAGE = false;
+                        }
                     }
                     catch (Exception ex)
                     {

--
Gitblit v1.9.1