From 011d17bc8df981ba31e895873ab0e4a17da8288f Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期四, 26 六月 2025 17:46:13 +0800
Subject: [PATCH] 优化

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/core/WCSCore.cs |   85 +++++++++++++++++++++++-------------------
 1 files changed, 46 insertions(+), 39 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/core/WCSCore.cs
index 2a03bd3..380dfce 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/core/WCSCore.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/core/WCSCore.cs
@@ -27,15 +27,15 @@
                 {
                     if (model.state <= 7)
                     {
-
                         //鏈変换鍔″彿璇锋眰
                         switch (model.state)
                         {
                             case 1:
-                                WCSHelper.Begin(TN_Task);
+                                WCSHelper.Begin(TN_Task, model.forklift_no);
                                 break;
                             #region MyRegion
                             case 3:
+                                WCSHelper.UpdateAgvNo(TN_Task, model.forklift_no);
                                 WCSHelper.UpdateStatus(TN_Task, "寮�鍙栬揣");
                                 break;
                             case 4:
@@ -47,13 +47,19 @@
                                 break;
                             case 6:
                                 WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");
-                                TaskProcess.OperateStatus(TN_Task, 6);
+                                if (!string.IsNullOrEmpty(TN_Task.S_NOTE) && (TN_Task.S_NOTE.Trim() == "鍏ュ簱" || TN_Task.S_NOTE.Trim() == "绌烘墭鍥炲簱"))
+                                {
+                                    LocationHelper.UnlockLoc(TN_Task.S_END_LOC);
+                                }
+                                else
+                                {
+                                    TaskProcess.OperateStatus(TN_Task, 6);
+                                }
                                 break;
                             #endregion
                             case 2:
                                 WCSHelper.End(TN_Task);
-
-                                break; ;
+                                break;
                             case 7:
                                 TaskProcess.OperateStatus(TN_Task, 7);
                                 WCSHelper.Fail(TN_Task);
@@ -63,7 +69,12 @@
                         WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
                         //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級
                         //鐗╂枡鍒颁綅閫氱煡
-                        if ((TN_Task.S_TYPE == "鍑哄钩搴� ||TN_Task.S_TYPE == "浣欐枡杩斿洖" || TN_Task.S_NOTE == "鍑哄簱"|| TN_Task.S_NOTE == "寮傚父搴撳尯鍏ュ簱") && model.state == 2)
+                        if ((TN_Task.S_TYPE == "鍑哄钩搴� || TN_Task.S_TYPE == "浣欐枡杩斿洖") && model.state == 6)
+                        {
+                            string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
+                            TaskProcess.MESIteminfoback(TN_Task, urlitem);
+                        }
+                        if ((TN_Task.S_NOTE == "鍑哄簱" || TN_Task.S_NOTE == "寮傚父搴撳尯鍏ュ簱") && !string.IsNullOrEmpty(TN_Task.S_MES_NO) && model.state == 6)
                         {
                             string urlitem = Settings.tableUrls.Find(a => a.id == 5).url;
                             TaskProcess.MESIteminfoback(TN_Task, urlitem);
@@ -81,10 +92,6 @@
                             {
                                 url = Settings.tableUrls.Find(a => a.id == 1).url;
                             }
-                            else if (TN_Task.Z_TYPE == 2)
-                            {
-                                url = Settings.tableUrls.Find(a => a.id == 7).url;
-                            }
                             else if (TN_Task.Z_TYPE == 3)
                             {
                                 url = Settings.tableUrls.Find(a => a.id == 9).url;
@@ -93,7 +100,7 @@
                             {
                                 url = Settings.tableUrls.Find(a => a.id == 11).url;
                             }
-                            else if (TN_Task.Z_TYPE == 6)
+                            else if (TN_Task.Z_TYPE == 6)//wms瀹ゅ唴鍒拌揣鍥炴姤
                             {
                                 url = Settings.tableUrls.Find(a => a.id == 14).url;
                             }
@@ -101,36 +108,33 @@
                             {
                                 LogHelper.Info($"浠诲姟鍥炴姤锛氫换鍔$被鍨嬮敊璇�);
                             }
+                            if (TN_Task.S_TYPE.Contains("鐢垫"))
+                            {
+                                if (TN_Task.S_TYPE == "鐢垫1")
+                                {
+                                    if (TN_Task.S_CODE == "1" || TN_Task.S_CODE == "3" || TN_Task.S_CODE == "4")
+                                    {
+                                        TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url);
+                                    }
+                                }
+                                else if (TN_Task.S_TYPE == "鐢垫2")
+                                {
+                                    if (TN_Task.S_CODE == "5" || TN_Task.S_CODE == "6" || TN_Task.S_CODE == "2")
+                                    {
+                                        TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url);
+                                    }
+                                }
+                            }
                             //鍘熸潗鏂欐帴鍙i渶瑕佸姞涓妕oken
-                            if (TN_Task.Z_TYPE == 4)
+                            else if (TN_Task.Z_TYPE == 4)
                             {
                                 Console.WriteLine($"鍘熸潗鏂欎换鍔″洖鎶TN_Task.S_EQ_NO}");
                                 var db = new SqlHelper<object>().GetInstance();
 
                                 var mstbyEqno = db.Queryable<WCSTask>().Where(a => a.S_EQ_NO.Trim() == TN_Task.S_EQ_NO).ToList();
                                 //鍒嗘。浠诲姟鍥炴姤,浠诲姟1鍙洖鎶� 3 4 浠诲姟2鍙洖鎶�5 6 2
-                                if (TN_Task.S_TYPE.Contains("鐢垫"))
-                                {
-                                    if (TN_Task.S_TYPE == "鐢垫1")
-                                    {
-                                        if (TN_Task.S_CODE == "1" || TN_Task.S_CODE == "3" || TN_Task.S_CODE == "4")
-                                        {
-                                            TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url);
-                                        }
-                                    }
-                                    else if (TN_Task.S_TYPE == "鐢垫2")
-                                    {
-                                        if (TN_Task.S_CODE == "5" || TN_Task.S_CODE == "6" || TN_Task.S_CODE == "2")
-                                        {
-                                            TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url);
-                                        }
-                                    }
-                                }
-                                else
-                                {
-                                    TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url);
-                                }
 
+                                TaskProcess.Reportbackmobox(TN_Task.S_EQ_NO, TN_Task.S_CODE, model.state, url);
                             }
                             else
                             {
@@ -159,15 +163,18 @@
                     }
                     else
                     {
+                        var db = new SqlHelper<TaskAction>().GetInstance();
+                        var taskAction = db.Queryable<TaskAction>().Where(a => a.S_TASK_CODE == model.task_no && a.N_ACTION_CODE == model.state).First();
+                        if (taskAction == null) 
+                        {
+                            WCSHelper.AddActionRecord(model.task_no, model.state, model.forklift_no, model.ext_data);
+                        }
+
                         //瀹夊叏璇锋眰绛�                         string url = "";
                         if (TN_Task.Z_TYPE == 1)
                         {
                             url = Settings.tableUrls.Find(a => a.id == 2).url;
-                        }
-                        else if (TN_Task.Z_TYPE == 2)
-                        {
-                            url = Settings.tableUrls.Find(a => a.id == 8).url;
                         }
                         else if (TN_Task.Z_TYPE == 3)
                         {
@@ -183,7 +190,7 @@
                         }
                         if (!string.IsNullOrEmpty(url))
                         {
-                            TaskProcess.OperateReq(model,url, TN_Task);
+                            TaskProcess.OperateReq(model, url, TN_Task);
                         }
                         else
                         {
@@ -201,7 +208,7 @@
         {
             //鏌ヨ浠诲姟
             //鑾峰彇鎵�湁绛夊緟鐨勪换鍔�-
+            Console.WriteLine("寮�浠诲姟鎺ㄩ�");
             var list = WCSHelper.GetTaskListByState("绛夊緟");
 
             if (list.Count > 0)

--
Gitblit v1.9.1