From 663ffc09a8fc33eb7d2346e6ed10c08679f0006c Mon Sep 17 00:00:00 2001
From: lss <Lss@HanInfo>
Date: 星期一, 16 六月 2025 17:25:10 +0800
Subject: [PATCH] 新增任务推送限制

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs |   34 ++++++++++++++++++++++++++++++----
 1 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
index 3721af6..d6064c0 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
@@ -2,6 +2,7 @@
 using HH.WCS.JiaTong.core;
 using HH.WCS.JiaTong.device;
 using HH.WCS.JiaTong.dispatch;
+using HH.WCS.JiaTong.LISTA.models;
 using HH.WCS.JiaTong.LISTA.process;
 using HH.WCS.JiaTong.util;
 using HH.WCS.JiaTong.wms;
@@ -133,7 +134,11 @@
                             }
                             else
                             {
-                                ModbusHelper.WriteSingleRegister(40089, EndLoc.N_LAYER, device.address, 1024);
+                                int layerValue = 0;
+                                if (EndLoc.N_LAYER == 1) layerValue = 1;
+                                else if (EndLoc.N_LAYER == 2) layerValue = 3;
+                                else if (EndLoc.N_LAYER == 3) layerValue = 5;
+                                ModbusHelper.WriteSingleRegister(40089, layerValue, device.address, 1024);
                                 ModbusHelper.WriteSingleRegister(40101, 2, device.address, 1024);
                                 ModbusHelper.WriteSingleRegister(40003, 2, device.address, 1024);
                                 ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024);
@@ -249,9 +254,13 @@
                             }
                             else
                             {
+                                int layerValue = 0;
+                                if (startloc.N_LAYER == 1) layerValue = 1;
+                                else if (startloc.N_LAYER == 2) layerValue = 3;
+                                else if (startloc.N_LAYER == 3) layerValue = 5;
                                 ModbusHelper.WriteSingleRegister(40101, 2, device.address, 1024);
                                 ModbusHelper.WriteSingleRegister(40003, 2, device.address, 1024);
-                                ModbusHelper.WriteSingleRegister(40089, startloc.N_LAYER, device.address, 1024);
+                                ModbusHelper.WriteSingleRegister(40089, layerValue, device.address, 1024);
                                 ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024);
                             }
 
@@ -294,7 +303,11 @@
                                 {
                                     LogHelper.Info($"鏍规嵁浠诲姟缁堢偣:{mstbyEqno.S_END_LOC},鏈壘鍒板搴旇揣浣�);
                                 }
-                                ModbusHelper.WriteSingleRegister(40089, Endloc.N_LAYER, device.address, 1024);
+                                int value = 0;
+                                if (Endloc.N_LAYER == 1) value = 1;
+                                else if (Endloc.N_LAYER == 2) value = 3;
+                                else if (Endloc.N_LAYER == 3) value = 5;
+                                ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024);
                                 ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024);
 
                             }
@@ -430,6 +443,14 @@
         {
             var result = true;
             var db = new SqlHelper<object>().GetInstance();
+            //鏍规嵁璧风偣浠撳簱缂栫爜鍒ゆ柇鏄惁鍙互鎺ㄩ�
+            var taskLimit = db.Queryable<TASK_LIMIT>().Where(a => a.S_WH_CODE == mst.S_START_WH && a.OPEN == "1").First();
+            if (taskLimit != null)
+            {
+                Console.WriteLine($"浠诲姟锛歿mst.S_CODE},璧风偣浠撳簱锛歿mst.S_START_WH}宸茬粡绂佺敤鎺ㄩ�");
+                return false;
+            }
+
             var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO == mst.S_EQ_NO).ToList();
             if (mstbyEqno.Count() == 1)
             {
@@ -582,7 +603,12 @@
                         {
                             LogHelper.Info($"鏍规嵁浠诲姟璧风偣:{mst.S_START_LOC},鏈壘鍒板搴旇揣浣�);
                         }
-                        ModbusHelper.WriteSingleRegister(40089, loc.N_LAYER, device.address, 1024);
+                        int value = 0;
+                        if (loc.N_LAYER == 1) value = 1;
+                        else if (loc.N_LAYER == 2) value = 3;
+                        else if (loc.N_LAYER == 3) value = 5;
+
+                        ModbusHelper.WriteSingleRegister(40089, value, device.address, 1024);
                         ModbusHelper.WriteSingleRegister(40102, 1, device.address, 1024);
 
 

--
Gitblit v1.9.1