From 5b6a0b390fc0ca7a5519ad6fb9a27bbca80e3cad Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期四, 29 五月 2025 17:29:28 +0800
Subject: [PATCH] 空托修改

---
 core/Monitor.cs |  185 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 182 insertions(+), 3 deletions(-)

diff --git a/core/Monitor.cs b/core/Monitor.cs
index c67890c..0301f28 100644
--- a/core/Monitor.cs
+++ b/core/Monitor.cs
@@ -8,6 +8,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Reflection;
 using System.Text;
 using System.Threading;
 using System.Threading.Tasks;
@@ -53,7 +54,7 @@
 
 
 
-                if (tasks.Count >1 && tasks.Count(p => p.N_B_STATE == 3) == 1)
+                if (tasks.Count > 1 && tasks.Count(p => p.N_B_STATE == 3) == 1)
                 {
                     operation.S_B_STATE = "瀹屾垚涓�崐";
                     operation.T_MODIFY = DateTime.Now;
@@ -66,8 +67,8 @@
                     operation.S_B_STATE = "瀹屾垚";
                     operation.T_MODIFY = DateTime.Now;
                     operation.T_END_TIME = DateTime.Now;
-                    db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE,it.T_MODIFY,it.T_END_TIME }).ExecuteCommand();
-                  
+                    db.Updateable(operation).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_MODIFY, it.T_END_TIME }).ExecuteCommand();
+
                 }
                 else if (tasks.Count(p => p.N_B_STATE == 5) > 0)
                 {
@@ -89,5 +90,183 @@
 
 
         }
+
+        /// <summary>
+        /// 鑷姩鍑哄簱绌烘墭
+        /// </summary>
+        public static void ktAuto() {
+            var db = new SqlHelper<object>().GetInstance();
+
+            try
+            {
+                var ktTaskList = db.Queryable<MesKtTask>().Where(a => a.Status == "N" ).ToList();
+                foreach (var kt in ktTaskList)
+                {
+                    if (DateTime.Now.Subtract(kt.CreateDate).TotalMinutes < 1)
+                    {
+                        continue;
+                    }
+
+                    var workFlow = TaskHelper.selectWorkFlowByType(kt.BUSI_TYPE, kt.TOOLS_TPYE);
+
+
+                    if (workFlow == null)
+                    {
+                        LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂澶辫触锛屾祦绋嬬紪鍙�{kt.BUSI_TYPE},宸ヨ绫诲瀷{kt.TOOLS_TPYE},娌℃壘鍒板搴斾綔涓氭祦绋�, "绌烘墭鍑哄簱");
+                        throw new Exception($"BUSI_TYpe:{kt.BUSI_TYPE},娌℃壘鍒板搴斾綔涓氭祦绋�);
+                    }
+                    else
+                    {
+                        LogHelper.Info($"绌烘墭鍑哄簱浣滀笟娴佺▼淇℃伅" + JsonConvert.SerializeObject(workFlow), "绌烘墭鍑哄簱");
+                    }
+
+
+
+                    //鍑哄簱浠诲姟
+
+                    //鎺ラ┏浣�+                    var connection = "";
+
+                    //鎺ラ┏浣嶅簱鍖�+                    var connectionArea = "";
+
+
+                    //鏌ユ壘缁欏畾缁堢偣
+                    var end = LocationHelper.GetLoc(kt.Location_To);
+                    LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂缁堢偣淇℃伅" + JsonConvert.SerializeObject(end), "绌烘墭鍑哄簱");
+
+
+                    if (end == null)
+                    {
+                        LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂澶辫触锛岀粓鐐�{kt.Location_To},娌℃壘鍒�, "绌烘墭鍑哄簱");
+                        throw new Exception($"缁堢偣:{kt.Location_To},娌℃壘鍒�);
+                    }
+
+
+
+
+
+                    //鏌ユ壘璧风偣
+                    List<Location> strrtList;
+
+                    Location start = null;
+
+
+                    if (!string.IsNullOrEmpty(workFlow.ZONECODE))
+                    {
+                        strrtList = LocationHelper.GetZoneLoc(workFlow.ZONECODE);
+                    }
+                    else
+                    {
+                        strrtList = LocationHelper.GetAllLocList2(workFlow.STARTAREA);
+                    }
+
+
+
+
+                    //瀵绘壘绔嬪簱鍖虹┖鎵�+                    start = LocationHelper.FindStartcolByLoclistAndcntr(strrtList, workFlow.STARTAREA);
+
+
+                    LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂璧风偣淇℃伅" + JsonConvert.SerializeObject(start), "绌烘墭鍑哄簱");
+
+                    if (start == null)
+                    {
+                        LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂澶辫触锛岃捣鐐瑰簱鍖簕workFlow.STARTAREA},娌℃壘鍒拌捣鐐�, "绌烘墭鍑哄簱");
+                        throw new Exception($"璧风偣搴撳尯{workFlow.STARTAREA},娌℃壘鍒拌捣鐐�);
+                    }
+
+
+
+
+                    //鑾峰彇鎵樼洏鐮�+                    var cntrCode = LocationHelper.GetLocCntrCode(start.S_CODE);
+
+                    if (workFlow.SENDWCS == "Y")
+                    {
+
+                        //姝e紡浠g爜锛岃皟鐢ㄦ帴鍙e鎵惧彲鐢ㄦ帴椹充綅
+                        var connectionList = LocationHelper.GetConnectionList(workFlow.CONNECTION);
+
+                        var balanceConnectionList = LocationHelper.GetBalanceConnectionList(connectionList);
+                        foreach (var item in balanceConnectionList)
+                        {
+                            if (item.loc.N_CURRENT_NUM < 2)
+                            {
+                                connection = item.loc.S_CODE;
+                                connectionArea = item.loc.S_AREA_Name;
+                                LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "绌烘墭鍑哄簱");
+                                break;
+                            }
+                        }
+
+                        if (connection == "")
+                        {
+                            LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�, "Mes浠荤┖鎵樺嚭搴撳姟涓嬪彂");
+                            throw new Exception($"绌烘墭鍑哄簱浠诲姟涓嬪彂瀵绘壘鎺ラ┏浣嶅け璐�);
+                        }
+                    }
+
+
+                    //璧风偣缁堢偣鏌ユ壘鎴愬姛锛屽垱寤轰綔涓�+
+                    var taskType = int.Parse(workFlow.FLOWCODE);
+
+                    var operation = new WmsWork
+                    {
+                        // 浣滀笟鍙�+                        S_CODE = kt.task_no,
+                        // 浣滀笟绫诲瀷
+                        N_TYPE = taskType,
+                        // 浣滀笟绫诲瀷
+                        S_TYPE = workFlow.FLOWNAME,
+                        // 璧风偣璐т綅
+                        S_START_LOC = start.S_CODE,
+                        // 璧风偣搴撳尯缂栫爜
+                        S_START_AREA = start.S_AREA_CODE,
+                        //鎺ラ┏浣�+                        CONNECTION = connection,
+                        // 缁堢偣璐т綅
+                        S_END_LOC = end.S_CODE,
+                        // 缁堢偣搴撳尯缂栫爜
+                        S_END_AREA = end.S_AREA_CODE,
+                        // 瀹瑰櫒缂栫爜
+                        S_CNTR_CODE = cntrCode,
+                        // 浣滀笟瀹氫箟鍚嶇О
+                        S_OP_DEF_NAME = workFlow.FLOWNAME,
+                        //浼樺厛绾�+                        N_PRIORITY = kt.Priority,
+                        //宸ヨ绫诲瀷
+                        TOOLSTYPE = kt.TOOLS_TPYE,
+                        //璧风偣搴撳尯鍚嶇О
+                        S_START_AREA_NAME = start.S_AREA_Name,
+                        //璧风偣搴撳尯鍚嶇О
+                        S_END_AREA_NAME = end.S_AREA_Name,
+                        //璧风偣搴撳尯鍚嶇О
+                        CONNECTION_AREA = connectionArea
+                    };
+
+                    //鍒涘缓浣滀笟
+                    if (WMSHelper.CreateWmsWork(operation) && TaskHelper.ChangeMesKtTask(kt))
+                    {
+                        
+                        LogHelper.Info($"绌烘墭鍑哄簱浣滀笟鍒涘缓鎴愬姛{operation.S_CODE}", "绌烘墭鍑哄簱");
+                    }
+                    else
+                    {
+                        LogHelper.Info($"绌烘墭鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触", "绌烘墭鍑哄簱");
+                        throw new Exception($"绌烘墭鍑哄簱浠诲姟涓嬪彂鍒涘缓浣滀笟澶辫触");
+                    }
+
+                }
+               
+    
+            }
+            catch (Exception ex)
+            {
+
+                LogHelper.Info($"绌烘墭鍑哄簱寮傚父淇℃伅" + ex.Message, "绌烘墭鍑哄簱");
+            }
+        }
     }
 }

--
Gitblit v1.9.1