From c8f338feee0b6003d8f069b1d37fd9b90dd1b7f4 Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期一, 07 七月 2025 17:31:38 +0800
Subject: [PATCH] 印尼佳通优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/TaskProcess.cs |  147 ++++++++++++++++++++++++++++++++----------------
 1 files changed, 98 insertions(+), 49 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/TaskProcess.cs
index 5ad8998..739910e 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.FJJT/process/TaskProcess.cs
@@ -9,6 +9,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Security.Cryptography;
+using static HH.WCS.Mobox3.FJJT.dispatch.XcDispatch;
 
 namespace HH.WCS.Mobox3.FJJT.process {
     internal class TaskProcess {
@@ -62,42 +63,89 @@
         internal static void OperateReq(string no, int state, string forkliftNo, string extData) {
             LogHelper.Info($"寮�瀹夊叏璇锋眰锛屼换鍔″彿:{no},璇锋眰鐮�{state}", "HosttoagvTask");
             var cst = WCSHelper.GetTask(no);
-            var taskAction = WCSHelper.getActionRecord(no, state);
-            if (taskAction != null)
+            if (cst != null) 
             {
-                LogHelper.Info($"鍐嶆瀹夊叏璇锋眰锛屾煡璇㈣澶囨槸鍚﹀弽棣�, "HosttoagvTask");
-                if (taskAction.N_S_STATUS == 1) 
+                var taskAction = WCSHelper.getActionRecord(no, state);
+                if (taskAction != null)
                 {
-                    LogHelper.Info($"鍐嶆瀹夊叏璇锋眰锛岃澶囧凡鍙嶉", "HosttoagvTask");
-                    NDCApi.ChangeOrderParam(no, 8, "1");
+                    LogHelper.Info($"鍐嶆瀹夊叏璇锋眰锛屾煡璇㈣澶囨槸鍚﹀弽棣�, "HosttoagvTask");
+                    if (taskAction.N_S_STATUS == 1)
+                    {
+                        LogHelper.Info($"鍐嶆瀹夊叏璇锋眰锛岃澶囧凡鍙嶉", "HosttoagvTask");
+                        NDCApi.ChangeOrderParam(no, 8, "1");
+                    }
                 }
-            }
-            else 
-            {
-                LogHelper.Info($"棣栨杩涜瀹夊叏璇锋眰锛屼换鍔″彿:{no},璇锋眰鐮�{state}", "HosttoagvTask");
-                bool result = false;
-                if (state == 1101)
+                else
                 {
-                    result = WCSDispatch.safetyInteraction(cst.S_CODE ,cst.S_START_LOC, "1");  //璇锋眰鍙栬揣锛�-                }
-                if (state == 1102)
-                {
-                    result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2");  //璇锋眰杩旇揣
-                }
-                if (state == 1103)
-                {
-                    result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "3");  //鍙栬揣瀹屾垚鍏佽绂诲紑
-                }
-                if (state == 1104)
-                {
-                    result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "4");  //鏀捐揣瀹屾垚鍏佽绂诲紑
-                }
+                    LogHelper.Info($"棣栨杩涜瀹夊叏璇锋眰锛屼换鍔″彿:{no},璇锋眰鐮�{state}", "HosttoagvTask");
+                    bool result = false;
+                    if (state == 1101)
+                    {
+                        if (cst.S_START_AREA == "")
+                        {
+                            result = XcDispatch.CanOut(new SafetyRequest() { stnNo = cst.S_START_LOC, taskNo = cst.S_CODE });
+                            if (result) 
+                            {
+                                NDCApi.ChangeOrderParam(no, 8, "1");
+                            }
+                        }
+                        else 
+                        {
+                            result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "1");  //璇锋眰鍙栬揣锛�+                        }
+                    }
+                    if (state == 1102)
+                    {
+                        if (cst.S_START_AREA == "")
+                        {
+                            result = XcDispatch.CanIn(new SafetyRequest() { stnNo = cst.S_END_LOC, taskNo = cst.S_CODE });
+                            if (result)
+                            {
+                                NDCApi.ChangeOrderParam(no, 8, "1");
+                            }
+                        }
+                        else
+                        {
+                            result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_END_LOC, "2");  //璇锋眰鏀捐揣
+                        }
+                    }
+                    if (state == 1103)
+                    {
+                        if (cst.S_START_AREA == "")
+                        {
+                            result = XcDispatch.loadComplete(new SafetyRequest() { stnNo = cst.S_END_LOC, taskNo = cst.S_CODE });
+                            if (result)
+                            {
+                                NDCApi.ChangeOrderParam(no, 8, "1");
+                            }
+                        }
+                        else 
+                        {
+                            result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "3");  //鍙栬揣瀹屾垚鍏佽绂诲紑
+                        }
+                    }
+                    if (state == 1104)
+                    {
+                        if (cst.S_START_AREA == "")
+                        {
+                            result = XcDispatch.putComplete(new SafetyRequest() { stnNo = cst.S_END_LOC, taskNo = cst.S_CODE });
+                            if (result)
+                            {
+                                NDCApi.ChangeOrderParam(no, 8, "1");
+                            }
+                        }
+                        else 
+                        {
+                            result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_END_LOC, "4");  //鏀捐揣瀹屾垚鍏佽绂诲紑
+                        }
+                    }
 
-                // 瀹夊叏璇锋眰鍙戦�鎴愬姛锛屾坊鍔犱换鍔″姩浣滆褰�-                if (result) 
-                {
-                    WCSHelper.AddActionRecord(no, state, forkliftNo, extData);
-                    LogHelper.Info($"棣栨杩涜瀹夊叏璇锋眰鎴愬姛", "HosttoagvTask");
+                    // 瀹夊叏璇锋眰鍙戦�鎴愬姛锛屾坊鍔犱换鍔″姩浣滆褰�+                    if (result)
+                    {
+                        WCSHelper.AddActionRecord(no, state, forkliftNo, extData);
+                        LogHelper.Info($"棣栨杩涜瀹夊叏璇锋眰鎴愬姛", "HosttoagvTask");
+                    }
                 }
             }
         }
@@ -143,26 +191,28 @@
         /// <param name="mst"></param>
         internal static bool SendTask(WCSTask mst) {
             var result = false;
-            var start = "0"; var end = "0";
             if (mst.N_B_STATE == 0) {
                 if (mst.S_SCHEDULE_TYPE == "NDC") 
                 {
-                    start = LocationHelper.GetAgvSite(mst.S_START_LOC);
-                    end = LocationHelper.GetAgvSite(mst.S_END_LOC);
-
-                    var dic = new List<param>();
-                    dic.Add( new param() { name = "No" , value = ""});
-                    dic.Add( new param() { name = "From", value = ""});
-                    dic.Add( new param() { name = "To", value = ""});
-                    dic.Add( new param() { name = "3" , value = "4"});
-                    dic.Add( new param() { name = "4" , value = "512"});
-                    dic.Add( new param() { name = "5" , value = "0"});
-                    var res = NDCApi.AddOrderNew(1,mst.N_PRIORITY,mst.S_CODE,dic);
-                    if (res != null && res.err_code == 0 ) {
-                        //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇
-                        mst.N_B_STATE = 1;
-                        WCSHelper.UpdateStatus(mst);
-                        result = true;
+                    var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
+                    var endLoc = LocationHelper.GetLoc(mst.S_END_LOC);
+                    if (startLoc != null && endLoc != null) 
+                    {
+                        var dic = new List<param>();
+                        dic.Add(new param() { name = "No", value = mst.S_CODE });
+                        dic.Add(new param() { name = "From", value = mst.S_START_LOC });
+                        dic.Add(new param() { name = "To", value = mst.S_END_LOC });
+                        dic.Add(new param() { name = "3", value = "4" });
+                        dic.Add(new param() { name = "4", value = "512" });
+                        dic.Add(new param() { name = "5", value = "0" });
+                        var res = NDCApi.AddOrderNew(1, mst.N_PRIORITY, mst.S_CODE, dic);
+                        if (res != null && res.err_code == 0)
+                        {
+                            //鎺ㄩ�鎴愬姛锛屼慨鏀逛换鍔′紭鍏堢骇
+                            mst.N_B_STATE = 1;
+                            WCSHelper.UpdateStatus(mst);
+                            result = true;
+                        }
                     }
                 }
                 else if (mst.S_SCHEDULE_TYPE == "WCS") {
@@ -175,7 +225,6 @@
                     mst.N_B_STATE = 1;
                     WCSHelper.UpdateStatus(mst);
                 }
-
             }
             return result;
         }

--
Gitblit v1.9.1