From e4b92180e4336d777ac323c0395a043bde1285d3 Mon Sep 17 00:00:00 2001
From: 杨前锦 <1010338399@qq.com>
Date: 星期五, 30 五月 2025 17:18:13 +0800
Subject: [PATCH] 印尼佳通-胚胎到硫化的出入库功能开发

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs       |   34 +++++
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs |   49 +++----
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs        |  198 ++++++++++++++++++++++----------
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WCSHelper.cs       |    8 +
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/DebugController.cs |    2 
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs   |   33 +++++
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/TaskAction.cs   |    2 
 HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/Program.cs             |    1 
 8 files changed, 226 insertions(+), 101 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/Program.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/Program.cs
index 5d662fc..e17e510 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/Program.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/Program.cs
@@ -23,6 +23,7 @@
     {
         static void Main(string[] args) {
 
+            Settings.Init();
             // 璁剧疆鎺у埗鍙扮紪鐮佷负 UTF-8
             Console.OutputEncoding = Encoding.UTF8;
 
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs
index 3f325f8..834f081 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/ApiHelper.cs
@@ -992,10 +992,9 @@
                                 TaskProcess.OperateStatus(cst, 6);
                                 break;
                             case 7:
-                                WCSHelper.UpdateStatus(cst, "寮傚父鍙栨秷");
+                                WCSHelper.Cancel(cst);
+                                WCSHelper.UpdateStatus(cst, "鍙栨秷");
                                 TaskProcess.OperateStatus(cst, 7);
-                                mst.N_B_STATE = 3;
-                                WMSHelper.UpdateTaskState(mst);
                                 break;
                             case 8:
                                 WCSHelper.UpdateStatus(cst, "寮哄埗瀹屾垚");
@@ -1026,6 +1025,35 @@
         }
 
         /// <summary>
+        /// 璐т綅鐘舵�鍙嶉
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public static bool locStateFeedBack(LocStateFeedBackModel model)
+        {
+            bool result = false;
+            var task = WCSHelper.GetTask(model.req_no);
+            if (task != null)
+            {
+                TaskAction taskAction = null;
+                if (model.type == "1")
+                {
+                    taskAction = WCSHelper.getActionRecord(task.S_CODE, 1101);
+                }
+                if (model.type == "2")
+                {
+                    taskAction = WCSHelper.getActionRecord(task.S_CODE, 1103);
+                }
+                if (taskAction != null)
+                {
+                    taskAction.N_S_STATUS = 1;
+                    result = WCSHelper.updateActionRecord(taskAction);
+                }
+            }
+            return result;
+        }
+
+        /// <summary>
         /// 璇荤爜鍙嶉
         /// </summary>
         /// <param name="model"></param>
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/DebugController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/DebugController.cs
index d540659..02efb6a 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/DebugController.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/DebugController.cs
@@ -41,5 +41,7 @@
             return new SimpleResult();
 
         }
+
+        
     }
 }
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs
index 59b5f2c..1d874e5 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/api/WmsController.cs
@@ -145,20 +145,49 @@
             return result;
         }
 
-        /// <summary>
+        /*/// <summary>
         /// 8.WCS鍏ュ簱璇荤爜鍙嶉
         /// 涓氬姟鍦烘櫙锛歐CS鍦ㄦ墽琛屼换鍔℃椂锛屽洖鎶ヤ换鍔$姸鎬�         /// </summary>
         /// <param name="model"></param>
         /// <returns></returns>
         [HttpPost]
-        /*[Route("notifyTaskStatus")]*/
+        *//*[Route("notifyTaskStatus")]*//*
         public ReturnResult readCodeFeedback(ReadCodeFeedbackModel model)
         {
             LogHelper.Info("銆�.WCS鍏ュ簱璇荤爜鍙嶉銆慠equest锛� + JsonConvert.SerializeObject(model), "WMS");
             var result = ApiHelper.readCodeFeedback(model);
             LogHelper.Info("銆�.WCS鍏ュ簱璇荤爜鍙嶉銆憆esponse锛� + JsonConvert.SerializeObject(result), "WMS");
             return result;
+        }*/
+
+        /// <summary>
+        /// 8.WCS鍙嶉璐т綅鐘舵�
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        [HttpPost]
+        /* [Route("notifyAlarm")]*/
+        public ReturnResult locStateFeedBack(LocStateFeedBackModel model)
+        {
+            LogHelper.Info("locStateFeedBack 鍏ュ弬锛� + JsonConvert.SerializeObject(model), "WMS");
+            ReturnResult result = new ReturnResult();
+            bool bo = ApiHelper.locStateFeedBack(model);
+            if (!bo)
+            {
+                result.ResultCode = 1;
+            }
+            LogHelper.Info("locStateFeedBack 鍑哄弬锛� + JsonConvert.SerializeObject(result), "WMS");
+            return result;
+        }
+
+        public class LocStateFeedBackModel
+        {
+            public string reqId { get; set; }
+            public string reqTime { get; set; }
+            public string loc_code { get; set; } // 绔欏彴缂栫爜
+            public string type { get; set; } // 璇锋眰绫诲瀷 1 鍏佽鍙栬揣 2 鍏佽鏀捐揣
+            public string req_no { get; set; } // 浠诲姟鍙�         }
 
         // ----------------------------------- GT --------------------------------------------------------------
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs
index 41ea36e..d184c8a 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/core/WCSCore.cs
@@ -33,8 +33,8 @@
                     var TN_Task = WCSHelper.GetTask(model.No);
                     if (TN_Task != null)
                     {
-                        bool isExist = WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, model.State);
-                        if (!isExist)
+                        var wmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
+                        if (wmsTask != null && wmsTask.N_B_STATE < 2) 
                         {
                             WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData);
                             if (model.State <= 7)
@@ -43,6 +43,7 @@
                                 switch (model.State)
                                 {
                                     case 1:
+                                        TN_Task.S_EQ_NO = model.ForkliftNo;
                                         WCSHelper.Begin(TN_Task);
                                         break;
                                     #region MyRegion
@@ -59,21 +60,33 @@
                                     case 6:
                                         TaskProcess.OperateStatus(TN_Task, 6);
                                         WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");
+
+                                        // AGV鍗歌揣杈撻�绾匡紝瑙﹀彂鍏ュ簱浠诲姟
+                                        if (TN_Task.S_END_LOC != wmsTask.S_END_LOC)
+                                        {
+                                            LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV鍗歌揣杈撻�绾匡紝瑙﹀彂WCS鍏ュ簱浠诲姟", "AGV");
+                                            Container container = ContainerHelper.GetCntr(TN_Task.S_CNTR_CODE);
+                                            if (container != null)
+                                            {
+                                                WCSCore.createLastTask(TN_Task.S_END_LOC, wmsTask, 1);
+                                            }
+                                        }
                                         break;
                                     #endregion
                                     case 2:
                                         WCSHelper.End(TN_Task);
 
                                         var cntrItemRels = ContainerHelper.GetCntrItemRel(TN_Task.S_CNTR_CODE);
-                                        if (cntrItemRels.Count > 0) 
+                                        if (cntrItemRels.Count > 0)
                                         {
+                                            LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV浠诲姟瀹屾垚锛屼换鍔′俊鎭洖鎶T", "AGV");
                                             string shift = ApiHelper.getShift(DateTime.Now.TimeOfDay);
                                             string ydate_shiftName = "";
                                             if (shift == "III")
                                             {
                                                 ydate_shiftName = DateTime.Now.AddDays(-1).ToString("yy/MM/dd") + "-" + shift;
                                             }
-                                            else 
+                                            else
                                             {
                                                 ydate_shiftName = DateTime.Now.ToString("yy/MM/dd") + "-" + shift;
                                             }
@@ -92,6 +105,7 @@
                                         }
                                         break;
                                     case 7:
+                                        LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV浠诲姟鍙栨秷", "AGV");
                                         //鍒ゆ柇鏄惁鏀跺埌杩囧己鍒跺彇娑堬紝鏈夊氨涓嶅仛浠讳綍澶勭悊
                                         if (!WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 17))
                                         {
@@ -101,28 +115,43 @@
                                         break;
                                 }
                             }
-                            else if (model.State == 1002) 
+                            else if (model.State == 1003)
                             {
-                                //鏌ヨ褰撳墠缁堢偣鏄瓑寰呭尯锛屽垯鏌ヨ鍏ュ簱agv鎺ラ┏浣�+                                LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV灏忚溅杩涘叆绛夊緟浣嶏細{TN_Task.S_END_LOC}", "AGV");
+                                // 鍗歌揣鍓嶇瓑寰�+                                // 鏌ヨ褰撳墠缁堢偣鏄瓑寰呭尯锛屽垯鏌ヨ鍏ュ簱agv鎺ラ┏浣�                                 var waitLoc = Settings.getAgvWaitLoc(TN_Task.S_END_LOC);
                                 if (waitLoc != null)
                                 {
-                                    string endLoc = AGVApplyEndLoc(model.No);
-
-
+                                    var endLoc = AGVApplyEndLoc(model.No);
+                                    LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV灏忚溅鍙樻洿缁堢偣锛歿endLoc.S_CODE}", "AGV");
+                                    // 閫氱煡AGV鏇存敼缁堢偣
+                                    ChangeParamModel paramModel = new ChangeParamModel()
+                                    {
+                                        task_no = model.No,
+                                        param_no = 0,
+                                        param = $"{model.No};{TN_Task.S_START_LOC};{TN_Task.S_END_LOC};0;400;0;2"
+                                    };
+                                    LogHelper.Info($"閫氱煡AGV鏇存敼缁堢偣锛屽弬鏁�{paramModel}", "AGV");
+                                    /* NDCApi.ChangeOrderParam(paramModel);*/
                                 }
-
-                                //濡傛灉涓嶆槸绛夊緟鍖鸿揣浣嶏紝鍒欐煡璇㈢粓鐐硅揣浣嶆槸鍚︽槸鍏ュ簱鎺ラ┏浣�+                            }
+                            else if (model.State == 1004)
+                            {
+                                LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV灏忚溅鍗歌揣鍚庡湪鎺ラ┏浣�{TN_Task.S_END_LOC}绛夊緟", "AGV");
+                                // 鍗歌揣鍚庣瓑寰�+                                // 鏌ヨ缁堢偣璐т綅鏄惁鏄叆搴撴帴椹充綅
                                 var agvJBLoc = Settings.getAgvJBLoc(TN_Task.S_END_LOC);
-                                if (agvJBLoc != null && agvJBLoc.type == 1 && agvJBLoc.action == 1) 
+                                if (agvJBLoc != null && agvJBLoc.type == 1 && agvJBLoc.action == 1)
                                 {
                                     //鏄垯鏌ヨWCS鐨勪换鍔℃墽琛屾儏鍐�-                                    var wcsTask = WCSHelper.GetTaskBySrcNoAndScheduleType(TN_Task.S_OP_CODE ,"WCS");
-                                    if (wcsTask != null) 
+                                    var wcsTask = WCSHelper.GetTaskBySrcNoAndScheduleType(TN_Task.S_OP_CODE, "WCS");
+                                    if (wcsTask != null)
                                     {
                                         bool existAction = WCSHelper.CheckActionRecordExist(wcsTask.S_CODE, 7);
                                         if (existAction)
                                         {
+                                            LogHelper.Info($"涓嬫父浠诲姟锛歿wcsTask.S_CODE}鍙栨秷鍏ュ簱锛宺fid鏍¢獙澶辫触锛岀敓鎴愭柊浠诲姟鍒板紓甯稿尯", "AGV");
                                             //濡傛灉WCS鍙嶉7鍙栨秷浠诲姟锛屽垯rfid鏍¢獙澶辫触锛岀敓鎴愭柊浠诲姟鍒板紓甯稿尯锛屽苟鍙樻洿agv浠诲姟鍙枫�璧风偣銆佺粓鐐�                                             var mst = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
                                             var endLoc = WMSHelper.getErrorBufferAreaLoc();
@@ -132,20 +161,43 @@
                                                 mst.S_END_LOC = endLoc.S_CODE;
                                                 mst.S_END_AREA = endLoc.S_AREA_CODE;
 
-                                                WMSHelper.UpdateTaskEnd(mst);
-                                                WCSCore.createLastTask(TN_Task.S_END_LOC, mst, 2);
+                                                var newWcsTask = WCSCore.createLastTask(TN_Task.S_END_LOC, mst, 2, "鍏ュ簱寮傚父鍖轰换鍔�);
+                                                LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孉GV灏忚溅鏀归亾缁堢偣锛歿newWcsTask.S_END_LOC}", "AGV");
+                                                if (newWcsTask != null)
+                                                {
+                                                    WCSHelper.End(TN_Task);
+
+                                                    // 閫氱煡AGV鏇存敼缁堢偣
+                                                    ChangeParamModel paramModel = new ChangeParamModel()
+                                                    {
+                                                        task_no = model.No,
+                                                        param_no = 0,
+                                                        param = $"{model.No};{newWcsTask.S_START_LOC};{newWcsTask.S_END_LOC};0;0;0;1"
+                                                    };
+                                                    LogHelper.Info($"閫氱煡AGV鏇存敼缁堢偣锛屽弬鏁�{paramModel}", "AGV");
+                                                    /*NDCApi.ChangeOrderParam(paramModel);*/
+                                                }
+                                                return;
                                             }
                                             else
                                             {
-                                                LogHelper.Info("", "AGV");
+                                                LogHelper.Info("寮傚父鍖烘病鏈夌┖璐т綅锛屾棤娉曞叆搴撳紓甯稿尯", "AGV");
                                             }
                                         }
 
                                         existAction = WCSHelper.CheckActionRecordExist(wcsTask.S_CODE, 3);
-                                        if (existAction) 
+                                        if (existAction)
                                         {
-                                            //WCS鍙嶉3宸插彇璐э紝鍒檃gv浠诲姟姝e父缁撴潫
-
+                                            LogHelper.Info($"浠诲姟鍙凤細{TN_Task.S_CODE}锛孯FID妫�祴閫氳繃锛孉GV浠诲姟姝e父瀹屾垚", "AGV");
+                                            //WCS鍙嶉3宸插彇璐э紝鍒檃gv浠诲姟姝e父缁撴潫 锛岄�鐭GV瀹屾垚浠诲姟
+                                            ChangeParamModel paramModel = new ChangeParamModel()
+                                            {
+                                                task_no = model.No,
+                                                param_no = 0,
+                                                param = $"{model.No};{TN_Task.S_START_LOC};{TN_Task.S_END_LOC};0;0;0;1"
+                                            };
+                                            LogHelper.Info($"閫氱煡AGV瀹屾垚浠诲姟锛屽弬鏁�{paramModel}", "AGV");
+                                            /*NDCApi.ChangeOrderParam(paramModel);*/
                                         }
                                     }
                                 }
@@ -172,62 +224,75 @@
         /// <param name="mst"></param>
         /// <param name="actType">1.鍏ュ簱 2.鍑哄簱</param>
         /// <returns></returns>
-        public static bool createLastTask(string startLocCode , WMSTask mst ,int actType) 
+        public static WCSTask createLastTask(string startLocCode , WMSTask mst ,int actType ,string typeName = null) 
         {
-            LogHelper.Info("鍒涘缓涓嬩竴娈典换鍔�, "WMS");
-            var startLoc = LocationHelper.GetLoc(startLocCode);
-            if (startLoc != null) 
+            LogHelper.Info($"浣滀笟鍙凤細{mst.S_CODE}锛屽垱寤轰笅涓�浠诲姟", "WMS");
+            var existTask = WCSHelper.GetTaskByStart(startLocCode);
+            if (existTask == null) 
             {
-                string cntrCode = "";
-                string scheduleType = "";
-                if (actType == 1) 
+                var startLoc = LocationHelper.GetLoc(startLocCode);
+                if (startLoc != null)
                 {
-                    var locCntrRels = LocationHelper.GetLocCntr(startLocCode);
-                    if (locCntrRels.Count > 0)
+                    string cntrCode = "";
+                    string scheduleType = "";
+                    if (actType == 1)
                     {
-                        foreach (var cntr in locCntrRels)
+                        var locCntrRels = LocationHelper.GetLocCntr(startLocCode);
+                        if (locCntrRels.Count > 0)
                         {
-                            cntrCode = cntrCode + ","+ cntr.S_CNTR_CODE;
+                            foreach (var cntr in locCntrRels)
+                            {
+                                cntrCode = cntrCode + "," + cntr.S_CNTR_CODE;
+                            }
+                            cntrCode = cntrCode.Substring(1, cntrCode.Length - 1);
                         }
-                        cntrCode = cntrCode.Substring(1, cntrCode.Length-1);
+                        scheduleType = "WCS";
                     }
-                    scheduleType = "WCS";
-                }
 
-                if (actType == 2)
-                {
-                    cntrCode = mst.S_CNTR_CODE;
-                    scheduleType = "AGV";
-                }
+                    if (actType == 2)
+                    {
+                        cntrCode = mst.S_CNTR_CODE;
+                        scheduleType = "AGV";
+                    }
+                    string type = "";
+                    if (typeName == null)
+                    {
+                        type = mst.S_TYPE + "-2";
+                    }
+                    else
+                    {
+                        type = typeName;
+                    }
 
-                // 鍒涘缓涓�鍏ュ簱浠诲姟
-                WCSTask wcsTask = new WCSTask()
-                {
-                    S_OP_NAME = mst.S_OP_DEF_NAME,
-                    S_OP_CODE = mst.S_CODE,
-                    S_CODE = WCSHelper.GenerateTaskNo(),
-                    S_CNTR_CODE = cntrCode,
-                    S_TYPE = mst.S_TYPE + "-2",
-                    S_START_LOC = startLoc.S_CODE,
-                    S_START_AREA = startLoc.S_AREA_CODE,
-                    S_END_LOC = mst.S_END_LOC,
-                    S_END_AREA = mst.S_END_AREA,
-                    S_SCHEDULE_TYPE = scheduleType,
-                    N_PRIORITY = mst.N_PRIORITY,
-                    T_START_TIME = DateTime.Now,
-                };
+                    // 鍒涘缓涓�鍏ュ簱浠诲姟
+                    WCSTask wcsTask = new WCSTask()
+                    {
+                        S_OP_NAME = mst.S_OP_DEF_NAME,
+                        S_OP_CODE = mst.S_CODE,
+                        S_CODE = WCSHelper.GenerateTaskNo(),
+                        S_CNTR_CODE = cntrCode,
+                        S_TYPE = type,
+                        S_START_LOC = startLoc.S_CODE,
+                        S_START_AREA = startLoc.S_AREA_CODE,
+                        S_END_LOC = mst.S_END_LOC,
+                        S_END_AREA = mst.S_END_AREA,
+                        S_SCHEDULE_TYPE = scheduleType,
+                        N_PRIORITY = mst.N_PRIORITY,
+                        T_START_TIME = DateTime.Now,
+                    };
 
-                if (WCSHelper.CreateTask(wcsTask))
-                {
-                    // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�-                    LocationHelper.LockLoc(wcsTask.S_START_LOC, 2);
-                    LocationHelper.LockLoc(wcsTask.S_END_LOC, 1);
+                    if (WCSHelper.CreateTask(wcsTask))
+                    {
+                        // 璧风偣銆佹帴椹崇偣銆佺粓鐐瑰姞閿�+                        LocationHelper.LockLoc(wcsTask.S_START_LOC, 2);
+                        LocationHelper.LockLoc(wcsTask.S_END_LOC, 1);
 
-                    WMSHelper.UpdateTaskEnd(mst);
-                    return true;
+                        WMSHelper.UpdateTaskEnd(mst);
+                        return wcsTask;
+                    }
                 }
             }
-            return false;
+            return null;
         }
 
         /// <summary>
@@ -256,7 +321,7 @@
         /// agv鐢宠缁堢偣
         /// </summary>
         /// <param name="taskNo"></param>
-        public static string AGVApplyEndLoc(string taskNo) 
+        public static Location AGVApplyEndLoc(string taskNo) 
         {
             LogHelper.Info($"浠诲姟鍙凤細{taskNo},AGV绛夊緟鍖虹敵璇风粓鐐�, "AGV");
             var cst = WCSHelper.GetTask(taskNo);
@@ -280,6 +345,9 @@
                                     agvLoc = LocationHelper.GetLoc(locCode);
                                     if (agvLoc != null && agvLoc.C_ENABLE == "Y")
                                     {
+                                        LogHelper.Info($"妫�祴AGV鎺ラ┏浣�{locCode}璁惧鏄惁鍙敤", "AGV");
+
+
                                         cst.S_END_LOC = agvLoc.S_CODE;
                                         cst.S_END_AREA = agvLoc.S_AREA_CODE;
                                         WCSHelper.UpdateTaskEnd(cst);
@@ -290,7 +358,7 @@
                                         LocationHelper.LockLoc(endLoc.S_CODE, 1);
 
                                         LogHelper.Info($"浠诲姟鍙凤細{taskNo},AGV鐢宠鐨勭粓鐐癸細{agvLoc.S_CODE}", "AGV");
-                                        return agvLoc.S_CODE;
+                                        return agvLoc;
                                     }
                                 }
 
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/TaskAction.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/TaskAction.cs
index 89ba394..a29be8e 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/TaskAction.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/models/TaskAction.cs
@@ -17,7 +17,7 @@
         public string S_VALUE { get; set; }
         public string S_STATE_PRE { get; set; }
         public int N_REVIEW_RESULT { get; set; }
-        public int N_S_STATUS { get; set; } = 0;
+        public int N_S_STATUS { get; set; } = 0;   // 安全交互状态 0.默认 1.允许(取货/卸货)
         public int N_ACTION_CODE { get; set; }
     }
 }
diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs
index 1afcf5a..07d5df7 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs
@@ -42,7 +42,6 @@
         internal static void CacheBitCancelUpdate(WCSTask mst) {
             //浠诲姟鍙栨秷锛屽彇璐у畬鎴愬墠鐨勶紝璧风偣鐨刲oadingCount鍜岀粓鐐箄nLoadingCount閮芥竻闄わ紝鍙栬揣瀹屾垚鐨勫彧澶勭悊缁堢偣
             if (WCSHelper.CheckActionRecordExist(mst.S_CODE, 4) ) {
-                //鏍规嵁瀹㈡埛鐜板満瑕佹眰锛屽鏋滃彇璐у畬鎴愪换鍔″け璐ヤ汉宸ユ媺鍒扮粓鐐癸紝鎴戜滑灏卞綋鍗歌揣瀹屾垚澶勭悊锛涘鏋滄槸浜哄伐鎷夎蛋鍒板叾瀹冨尯鍩燂紝鎴戜滑灏辫В閿佺粓鐐癸紝鍒犻櫎鎵樼洏銆�                 //缁堢偣缁戝畾
                 if (!WCSHelper.CheckActionRecordExist(mst.S_CODE, 5)) {
                     CacheBitUpdate(mst, false);
@@ -53,9 +52,6 @@
                 //璧风偣缁堢偣瑙i攣
                 LocationHelper.UnLockLoc(mst.S_START_LOC);
                 LocationHelper.UnLockLoc(mst.S_END_LOC);
-                //璐т綅瀹瑰櫒瑙g粦
-                LocationHelper.UnBindingLoc(mst.S_START_LOC, new List<string> { mst.S_CNTR_CODE });
-
             }
 
         }
@@ -79,7 +75,7 @@
                 if (taskAction.N_S_STATUS == 1)
                 {
                     LogHelper.Info($"鍐嶆瀹夊叏璇锋眰锛岃澶囧凡鍙嶉", "AGV");
-                    NDCApi.ChangeOrderParam(no, 8, "1");
+                   /* NDCApi.ChangeOrderParam(no, 6, "1");*/
                 }
             }
             else
@@ -88,11 +84,18 @@
                 bool result = false;
                 if (state == 1101)
                 {
-                    result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "1");  //璇锋眰鍙栬揣锛�+                    LogHelper.Info("鍚慦CS鍙戦�鍙栬揣鐢宠淇″彿", "AGV");
+                    /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "1");  //鍙栬揣鐢宠锛�/
+                    result = true;
                 }
                 if (state == 1102)
                 {
-                    //璇锋眰鍗歌揣锛�+                    LogHelper.Info("鍚慦CS鍙戦�鍙栬揣瀹屾垚瀹夊叏閫�嚭淇″彿", "AGV");
+                    /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2");  //鍙栬揣瀹屾垚瀹夊叏閫�嚭*/
+                    result = true;
+                }
+                if (state == 1103)   //鍗歌揣鐢宠锛�+                {
                     var container = ContainerHelper.GetCntr(cst.S_CNTR_CODE);
                     // 鑳庡湀鍏ュ簱锛屼笅鍙戞瘝鎷栧嚭搴撲换鍔�\ 甯樺竷銆佸唴琛叆搴擄紝涓嬪彂鎵樼洏鍥炲簱浠诲姟
                     if (cst.S_TYPE.Contains("鍏ュ簱") && endLoc.N_LOCK_STATE == 0)
@@ -117,10 +120,9 @@
                                 result = true;
                             }
                         }
-
-                        // 鑳庡湀鍏ュ簱
-                        if (container.N_TYPE == 6 )
-                        {
+                        else 
+                        { 
+                            // 鑳庡湀鍏ュ簱
                             if (endLoc.N_CURRENT_NUM == 0) 
                             {
                                 LogHelper.Info("鑳庡湀鍏ュ簱锛屾帴椹充綅缂哄皯姣嶆嫋锛屼笅鍙戞瘝鎷栧嚭搴撲换鍔�, "AGV");
@@ -144,28 +146,17 @@
                     // 璇锋眰WCS鏄惁鍏佽鏀捐揣
                     if (result) 
                     {
-                        result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2"); // 璇锋眰鏀捐揣
-                    }
-
-                    if (result)
-                    {
-                        //鏍规嵁缁堢偣鍒ゆ柇锛屾槸cb02鐨勫叆鍙o紝鍒ゆ柇鍐呭瓨涓姸鎬侊紙瑕佺姸鎬佹椂闂达級锛屽厑璁稿嵏璐э紝閫氱煡agv鏀瑰弬鏁�-                        var dic = new Dictionary<string, string>();
-                        //< Req >< Order No = 'TN2302020002' ParamNo = '18' Param1 = '12' /></ Req >
-                        dic.Add("No", no);
-                        dic.Add("ParamNo", "8");
-                        dic.Add("Param1", "1");
-                        NDC.ChangeOrder(dic);
-                        //鏀瑰畬鍙傛暟杞﹀瓙灏变細鑷繁鍗歌揣
+                        LogHelper.Info("鍚慦CS鍙戦�璇锋眰鏀捐揣淇″彿", "AGV");
+                        /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "3"); // 璇锋眰鏀捐揣*/
+                        result = true;
                     }
                 }
-                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("鍚慦CS鍙戦�鍗歌揣瀹屾垚瀹夊叏閫�嚭淇″彿", "AGV");
+                    /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "4");  //鍗歌揣瀹屾垚瀹夊叏閫�嚭*/
+                    result = true;
                 }
 
                 // 瀹夊叏璇锋眰鍙戦�鎴愬姛锛屾坊鍔犱换鍔″姩浣滆褰�diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WCSHelper.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WCSHelper.cs
index 3e5b098..9d7c258 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WCSHelper.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/wms/WCSHelper.cs
@@ -61,7 +61,7 @@
         internal static WCSTask GetTaskBySrcNoAndScheduleType(string no ,string scheduleType)
         {
             var db = new SqlHelper<WCSTask>().GetInstance();
-            var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == no && a.S_SCHEDULE_TYPE == scheduleType && a.N_B_STATE < 3).First();
+            var task = db.Queryable<WCSTask>().Where(a => a.S_OP_CODE == no && a.S_SCHEDULE_TYPE == scheduleType).First();
             return task;
         }
         internal static List<WCSTask> GetTaskListBySrcNo(string no)
@@ -165,6 +165,12 @@
             return db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == no.Trim() && a.N_ACTION_CODE == code).First();
         }
 
+        internal static bool updateActionRecord(TaskAction taskAction)
+        {
+            var db = new SqlHelper<TaskAction>().GetInstance();
+            return db.Updateable(taskAction).ExecuteCommand() > 0;
+        }
+
         internal static void Begin(WCSTask task) {
             var db = new SqlHelper<WCSTask>().GetInstance();
             if (task != null) {

--
Gitblit v1.9.1