From f703b278956736aa14c12d1d25c8e8f23b822760 Mon Sep 17 00:00:00 2001
From: kazelee <1847801760@qq.com>
Date: 星期四, 26 六月 2025 17:27:32 +0800
Subject: [PATCH] 优化国自辅助调度和任务推送逻辑

---
 process/TaskProcess.cs |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index e600622..19c469f 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -109,6 +109,19 @@
         /// <param name="mst"></param>
         internal static bool SendTask(TN_Task mst) {
             var result = false;
+            switch (mst.N_SCHEDULE_TYPE) {
+                case 1: //閫氳繃NDC锛宧osttoagv璋冨害璁惧
+                    return SendNDCTask(mst);
+                case 5: //閫氳繃鏉ゥ璋冨害璁惧 
+                    return SendHanAoTask(mst);
+                case 3: //閫氳繃鍥借嚜璋冨害璁惧
+                    return SendGZTask(mst);
+            }
+            return result;
+        }
+
+        public static bool SendNDCTask(TN_Task mst) {
+            var result = false;
             var start = "0"; var end = "0";
             var taskType = mst.S_TYPE.Trim();
 
@@ -142,6 +155,57 @@
             }
             return result;
         }
+
+        public static bool SendGZTask(TN_Task mst) {
+            var db = new SqlHelper<object>().GetInstance();
+            var result = false;
+            var start = "0"; var end = "0";
+            var taskType = mst.S_TYPE.Trim();
+
+            if (mst.N_B_STATE == 0) {
+                //var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p");
+                start = LocationHelper.GetAgvSite(mst.S_START_LOC);
+                end = LocationHelper.GetAgvSite(mst.S_END_LOC);
+
+                var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = start, dst = end }), "p2pdst", "pgapi");
+
+                if (code > 0) {
+                    //鏇存柊浠诲姟鐘舵�
+                    mst.N_B_STATE = 1;
+                    mst.S_B_STATE = TN_Task.GetStateStr(1);
+                    mst.S_EQ_TASK_CODE = code.ToString();
+                    WCSHelper.UpdateStatus(mst);
+                    WCSHelper.UpdateEQNo(mst);
+                    LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC);
+                }
+                else {
+                    LogHelper.Info($"鍥借嚜鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(mst));
+                }
+            }
+            return result;
+        }
+
+        public static bool SendHanAoTask(TN_Task mst) {
+            var result = false;
+            //璋冪涓夋柟鎺ュ彛
+            var model = new HanAo.TaskInfoModel {
+                requestPk = mst.S_CODE,
+                frmPos = mst.S_START_LOC,
+                toPos = mst.S_END_LOC,
+                trkType = mst.S_OP_NAME == "鍏ュ簱" ? "1" : "2",
+                contNo = mst.S_CNTR_CODE
+            };
+            if (HanAo.CreateOrder(model)) {
+                mst.N_B_STATE = 1;
+                WCSHelper.UpdateStatus(mst);
+                LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟鎴愬姛 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos);
+                return true;
+            }
+            else {
+                LogHelper.Info($"鏉ゥ鎺ㄩ�浠诲姟澶辫触 {mst.S_CODE};" + JsonConvert.SerializeObject(model));
+            }
+            return result;
+        }
         #endregion
     }
 }

--
Gitblit v1.9.1