From 04eed9fb0fdb0a4c09c482f78d4449f941cfaadb Mon Sep 17 00:00:00 2001
From: 海波 张 <2956280567@qq.com>
Date: 星期三, 14 五月 2025 17:24:06 +0800
Subject: [PATCH] 金坛bug修改

---
 wms/WMSModel.cs                                         |   41 +++
 wms/TaskHelper.cs                                       |   85 ++++++-
 Program.cs                                              |    2 
 core/Monitor.cs                                         |    8 
 core/TaskCore.cs                                        |   15 +
 .vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json |  189 +++++++++++++++-
 dispatch/WcsTask.cs                                     |   91 ++-----
 .vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json        |  141 ++++++++++--
 process/TaskProcess.cs                                  |   40 ++
 9 files changed, 475 insertions(+), 137 deletions(-)

diff --git a/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json b/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json
index ab5dcdd..7934030 100644
--- a/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json
+++ b/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.backup.json
@@ -3,24 +3,60 @@
   "WorkspaceRootPath": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\wms\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\core\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     }
   ],
   "DocumentGroupContainers": [
@@ -30,11 +66,128 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 2,
+          "SelectedChildIndex": 16,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 3,
+              "Title": "Program.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
+              "RelativeDocumentMoniker": "Program.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
+              "RelativeToolTip": "Program.cs",
+              "ViewState": "AgIAAEcAAAAAAAAAAAA3wF4AAAAvAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T08:30:12.949Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "WcsModel.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
+              "RelativeDocumentMoniker": "wms\\WcsModel.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
+              "RelativeToolTip": "wms\\WcsModel.cs",
+              "ViewState": "AgIAADAAAAAAAAAAAAAkwEEAAAAaAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T06:24:55.849Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "ApiModel.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
+              "RelativeDocumentMoniker": "api\\ApiModel.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
+              "RelativeToolTip": "api\\ApiModel.cs",
+              "ViewState": "AgIAAAsDAAAAAAAAAAAAwBwDAAAaAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T02:39:17.635Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "TaskHelper.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
+              "RelativeDocumentMoniker": "wms\\TaskHelper.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
+              "RelativeToolTip": "wms\\TaskHelper.cs",
+              "ViewState": "AgIAACkCAAAAAAAAAAAAAD0CAAAzAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T02:35:57.671Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "Monitor.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
+              "RelativeDocumentMoniker": "core\\Monitor.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
+              "RelativeToolTip": "core\\Monitor.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAACEAAAAiAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T02:11:55.478Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "DeviceProcess.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
+              "RelativeDocumentMoniker": "process\\DeviceProcess.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
+              "RelativeToolTip": "process\\DeviceProcess.cs",
+              "ViewState": "AgIAAGwBAAAAAAAAAAAmwIwBAAAtAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T09:22:54.115Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "WcsTask.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
+              "RelativeDocumentMoniker": "dispatch\\WcsTask.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
+              "RelativeToolTip": "dispatch\\WcsTask.cs",
+              "ViewState": "AgIAANUCAAAAAAAAAAAswHIAAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T09:19:48.409Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "LocationHelper.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
+              "RelativeDocumentMoniker": "wms\\LocationHelper.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
+              "RelativeToolTip": "wms\\LocationHelper.cs",
+              "ViewState": "AgIAADIAAAAAAAAAAAAcwEMAAAAjAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T09:13:15.283Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "AgvController.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\AgvController.cs",
+              "RelativeDocumentMoniker": "api\\AgvController.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\AgvController.cs",
+              "RelativeToolTip": "api\\AgvController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxoAAAAjAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T03:17:31.542Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
               "Title": "config.json",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
               "RelativeDocumentMoniker": "config\\config.json",
@@ -47,26 +200,26 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 2,
               "Title": "TaskCore.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
               "RelativeDocumentMoniker": "core\\TaskCore.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
               "RelativeToolTip": "core\\TaskCore.cs",
-              "ViewState": "AgIAAEcAAAAAAAAAAAAIwF0AAAAgAAAAAAAAAA==",
+              "ViewState": "AgIAAF0AAAAAAAAAAAAAwHUAAAApAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-13T01:45:08.835Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 9,
               "Title": "TaskProcess.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
               "RelativeDocumentMoniker": "process\\TaskProcess.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
               "RelativeToolTip": "process\\TaskProcess.cs",
-              "ViewState": "AgIAAFUAAAAAAAAAAADwv2EAAAAmAAAAAAAAAA==",
+              "ViewState": "AgIAAKwEAAAAAAAAAAAmwJsEAAAjAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-13T00:45:23.095Z",
               "EditorCaption": ""
@@ -85,26 +238,26 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 5,
               "Title": "WmsController.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
               "RelativeDocumentMoniker": "api\\WmsController.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
               "RelativeToolTip": "api\\WmsController.cs",
-              "ViewState": "AgIAAB8AAAAAAAAAAAAUwD4AAAAlAAAAAAAAAA==",
+              "ViewState": "AgIAAIAAAAAAAAAAAAAgwJQAAAAeAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-12T09:36:08.931Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 0,
               "Title": "WMSModel.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
               "RelativeDocumentMoniker": "wms\\WMSModel.cs",
-              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
-              "RelativeToolTip": "wms\\WMSModel.cs",
-              "ViewState": "AgIAABcEAAAAAAAAAAAiwCMEAAARAAAAAAAAAA==",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs*",
+              "RelativeToolTip": "wms\\WMSModel.cs*",
+              "ViewState": "AgIAAIEFAAAAAAAAAAAowJUFAAAGAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-12T09:36:05.064Z",
               "EditorCaption": ""
diff --git a/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json b/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json
index 8645c60..f7eea0e 100644
--- a/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json
+++ b/.vs/HH.WCS.ZhongCeJinTan/v17/DocumentLayout.json
@@ -3,24 +3,48 @@
   "WorkspaceRootPath": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\wms\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\taskhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\core\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\monitor.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\wmscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:core\\taskcore.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:dispatch\\wcstask.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:api\\apimodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wcsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\taskprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:process\\deviceprocess.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\wms\\locationhelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -33,10 +57,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|c:\\users\\29562\\source\\repos\\hh-0129_zhongcejintan\\config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
       "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:config\\config.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{8E589C0D-7D65-474D-8CED-E34E081926A1}|HH.WCS.ZhongCeJinTan.csproj|solutionrelative:wms\\wmsmodel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -46,50 +66,115 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 0,
+          "SelectedChildIndex": 3,
           "Children": [
             {
               "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "Program.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
+              "RelativeDocumentMoniker": "Program.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\Program.cs",
+              "RelativeToolTip": "Program.cs",
+              "ViewState": "AgIAAEcAAAAAAAAAAAA3wF4AAAAvAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T08:30:12.949Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "WcsModel.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
+              "RelativeDocumentMoniker": "wms\\WcsModel.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WcsModel.cs",
+              "RelativeToolTip": "wms\\WcsModel.cs",
+              "ViewState": "AgIAADAAAAAAAAAAAAAkwEEAAAAaAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T06:24:55.849Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "ApiModel.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
+              "RelativeDocumentMoniker": "api\\ApiModel.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\ApiModel.cs",
+              "RelativeToolTip": "api\\ApiModel.cs",
+              "ViewState": "AgIAAAsDAAAAAAAAAAAAwBwDAAAaAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T02:39:17.635Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
               "DocumentIndex": 0,
+              "Title": "TaskHelper.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs",
+              "RelativeDocumentMoniker": "wms\\TaskHelper.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\TaskHelper.cs*",
+              "RelativeToolTip": "wms\\TaskHelper.cs*",
+              "ViewState": "AgIAACkCAAAAAAAAAAAgwEQCAAAfAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T02:35:57.671Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "Monitor.cs",
+              "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
+              "RelativeDocumentMoniker": "core\\Monitor.cs",
+              "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\Monitor.cs",
+              "RelativeToolTip": "core\\Monitor.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAACEAAAAiAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-14T02:11:55.478Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
               "Title": "DeviceProcess.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
               "RelativeDocumentMoniker": "process\\DeviceProcess.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\DeviceProcess.cs",
               "RelativeToolTip": "process\\DeviceProcess.cs",
-              "ViewState": "AgIAANcAAAAAAAAAAAAiwOsAAABMAAAAAAAAAA==",
+              "ViewState": "AgIAAGwBAAAAAAAAAAAmwIwBAAAtAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-13T09:22:54.115Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 1,
+              "DocumentIndex": 6,
               "Title": "WcsTask.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
               "RelativeDocumentMoniker": "dispatch\\WcsTask.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\dispatch\\WcsTask.cs",
               "RelativeToolTip": "dispatch\\WcsTask.cs",
-              "ViewState": "AgIAAJUDAAAAAAAAAAAiwLYDAAARAAAAAAAAAA==",
+              "ViewState": "AgIAANUCAAAAAAAAAAAswHIAAAAbAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-13T09:19:48.409Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 11,
               "Title": "LocationHelper.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
               "RelativeDocumentMoniker": "wms\\LocationHelper.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\LocationHelper.cs",
               "RelativeToolTip": "wms\\LocationHelper.cs",
-              "ViewState": "AgIAADIAAAAAAAAAAAAcwFkAAABjAAAAAAAAAA==",
+              "ViewState": "AgIAADIAAAAAAAAAAAAcwEMAAAAjAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-13T09:13:15.283Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 12,
               "Title": "AgvController.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\AgvController.cs",
               "RelativeDocumentMoniker": "api\\AgvController.cs",
@@ -102,7 +187,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 13,
               "Title": "config.json",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\config\\config.json",
               "RelativeDocumentMoniker": "config\\config.json",
@@ -115,26 +200,26 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 2,
               "Title": "TaskCore.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
               "RelativeDocumentMoniker": "core\\TaskCore.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\core\\TaskCore.cs",
               "RelativeToolTip": "core\\TaskCore.cs",
-              "ViewState": "AgIAADgAAAAAAAAAAAAAwF0AAAAnAAAAAAAAAA==",
+              "ViewState": "AgIAAF0AAAAAAAAAAAAAwHUAAAApAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-13T01:45:08.835Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 9,
               "Title": "TaskProcess.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
               "RelativeDocumentMoniker": "process\\TaskProcess.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\process\\TaskProcess.cs",
               "RelativeToolTip": "process\\TaskProcess.cs",
-              "ViewState": "AgIAAFgAAAAAAAAAAADwv2EAAAAnAAAAAAAAAA==",
+              "ViewState": "AgIAAKwEAAAAAAAAAAAmwJsEAAAjAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-13T00:45:23.095Z",
               "EditorCaption": ""
@@ -153,26 +238,26 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 5,
               "Title": "WmsController.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
               "RelativeDocumentMoniker": "api\\WmsController.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\api\\WmsController.cs",
               "RelativeToolTip": "api\\WmsController.cs",
-              "ViewState": "AgIAAJUAAAAAAAAAAAAuwLAAAAAlAAAAAAAAAA==",
+              "ViewState": "AgIAAIAAAAAAAAAAAAAgwJQAAAAeAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-12T09:36:08.931Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 8,
+              "DocumentIndex": 1,
               "Title": "WMSModel.cs",
               "DocumentMoniker": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
               "RelativeDocumentMoniker": "wms\\WMSModel.cs",
               "ToolTip": "C:\\Users\\29562\\source\\repos\\HH-0129_ZhongCeJinTan\\wms\\WMSModel.cs",
               "RelativeToolTip": "wms\\WMSModel.cs",
-              "ViewState": "AgIAABcEAAAAAAAAAAAiwCMEAAARAAAAAAAAAA==",
+              "ViewState": "AgIAAIEFAAAAAAAAAAAowJMFAAAhAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-05-12T09:36:05.064Z",
               "EditorCaption": ""
diff --git a/Program.cs b/Program.cs
index b713413..1e57a87 100644
--- a/Program.cs
+++ b/Program.cs
@@ -89,6 +89,8 @@
                 StartTcp();
 
                 List<Task> tasks = new List<Task>();
+
+
                 //娣诲姞agv浠诲姟鎺ㄩ�绾跨▼
                 tasks.Add(GetTask(TaskCore.Dispatch));
 
diff --git a/core/Monitor.cs b/core/Monitor.cs
index 0cf5ad4..a739122 100644
--- a/core/Monitor.cs
+++ b/core/Monitor.cs
@@ -51,6 +51,14 @@
                 var tasks = db.Queryable<WMSTask>().Where(p => p.S_OP_CODE == operation.S_CODE).ToList();
 
 
+
+                if (tasks.Count >1 && tasks.Count(p => p.N_B_STATE == 3) == 1)
+                {
+                    operation.S_B_STATE = "瀹屾垚涓�崐";
+                    operation.T_MODIFY = DateTime.Now;
+                    db.Updateable(operation).UpdateColumns(it => new { it.S_B_STATE, it.T_MODIFY }).ExecuteCommand();
+                }
+
                 if (tasks.Count == tasks.Count(p => p.N_B_STATE == 3))
                 {
                     operation.N_B_STATE = 2;
diff --git a/core/TaskCore.cs b/core/TaskCore.cs
index ed22626..c4fd023 100644
--- a/core/TaskCore.cs
+++ b/core/TaskCore.cs
@@ -33,7 +33,7 @@
                         switch (model.state)
                         {
                             case 1:
-                                TaskHelper.Begin(wmsTask);
+                                TaskHelper.Begin(wmsTask,model.forklift_no);
                                 //鑳庨潰浜や簰
                                 TaskHelper.TmSafety(wmsTask);
                                 break;
@@ -65,6 +65,10 @@
                                 TaskHelper.End(wmsTask); 
                             break;
                             case 7:
+                                //agv鎵ц閫氱煡
+                                WcsTask.WcsCallback(wmsTask, model.state, model.forklift_no);
+
+
                                 TaskHelper.Fail(wmsTask);
                                 TaskProcess.OperateStatus(wmsTask, 7);
                                 //鍏ュ簱鎴栬�鍥炲簱浠诲姟鍙栨秷鍒犻櫎鎵樼洏鐗╂枡
@@ -85,8 +89,7 @@
 
                         }
                          TaskHelper.AddActionRecord(wmsTask.S_CODE, model.state, model.forklift_no, model.ext_data);
-                        //agv鎵ц閫氱煡
-                        //WcsTask.WcsCallback(wmsTask, model.state, model.forklift_no);
+                        
                 }
                 else
                 {
@@ -111,7 +114,11 @@
             var list = TaskHelper.GetTaskListByState("鏈墽琛�, "agv");
             if (list.Count > 0) {
                 list.ForEach(task => {
+                    //浠诲姟鎷︽埅
+                    if (TaskHelper.Intercept())
+                    {
                         TaskProcess.SendTask(task);
+                    }
                 });     
             }
         }
@@ -127,7 +134,7 @@
             if (list.Count > 0)
             {
                 list.ForEach(task => {
-                    WcsTask.WcsTaskEntity(task);
+                        WcsTask.WcsTaskEntity(task);
                 });
             }
         }
diff --git a/dispatch/WcsTask.cs b/dispatch/WcsTask.cs
index 89a5593..8ddd933 100644
--- a/dispatch/WcsTask.cs
+++ b/dispatch/WcsTask.cs
@@ -397,8 +397,8 @@
                         ContainerHelper.CreateCntrItem(rel);
 
 
-                    //娣诲姞鎵樼洏
-                    if (model.code == "1" || model.contNo == "99") {
+                    //娣诲姞鎵樼洏 寮傚父鎵樼洏涓嶆坊鍔�+                    if (!(model.code == "1" || model.contNo == "99")) {
                         Container cntr1 = new Container();
                         cntr1.S_CODE = model.contNo;
                         cntr1.C_ENABLE = "Y";
@@ -635,11 +635,12 @@
                                     TaskHelper.Fail(transportTask);
                                     TaskProcess.OperateStatus(transportTask, 7);
 
-                                    var agvTask = newDb.Queryable<WMSTask>().Where(e => e.S_CODE == transportTask.S_OP_CODE+"_1")?.First();
+                                    var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv");
+
                                     if (agvTask == null)
                                     {
-                                        LogHelper.Info($"RFID鏍¢獙澶辫触锛屾病鎵惧埌瀵瑰簲{transportTask.S_OP_CODE+"_1"}浠诲姟", "Wcs浠诲姟鎵ц閫氱煡");
-                                        throw new Exception($"RFID鏍¢獙澶辫触,娌℃壘鍒板搴攞transportTask.S_OP_CODE + "_1"}浠诲姟");
+                                        LogHelper.Info($"RFID鏍¢獙澶辫触锛屾病鎵惧埌瀵瑰簲{transportTask.S_OP_CODE}鐨刟gv浠诲姟", "Wcs浠诲姟鎵ц閫氱煡");
+                                        throw new Exception($"RFID鏍¢獙澶辫触,娌℃壘鍒板搴攞transportTask.S_OP_CODE }鐨刟gv浠诲姟");
                                     }
                                     var workFlow = TaskHelper.selectWorkFlowByType(agvTask.N_TYPE.ToString(), agvTask.TOOLSTYPE);
                                   
@@ -695,7 +696,7 @@
                             TaskHelper.Fail(transportTask);
                             TaskProcess.OperateStatus(transportTask, 7);
                             LocationHelper.updateLocLock(transportTask.S_START_LOC, 4, "寮傚父閿�);
-                            var agvTask = TaskHelper.GetTask(transportTask.S_OP_CODE + "_1");
+                            var agvTask = TaskHelper.GetTaskByWorkNo(transportTask.S_OP_CODE, "agv");
                             if (agvTask!=null)
                             {
                                 TaskHelper.Fail(agvTask);
@@ -927,63 +928,35 @@
                 LogHelper.Info("鏌ヨ鍒板畨鍏ㄨ姹備俊鍙疯褰曡〃宸茬粡瀛樺湪鏁版嵁,姝ゆ淇″彿涓嶄笅杈剧粰绔嬪簱", "agv鎵ц閫氱煡");
                 return true;
             }
-
-            if (mst.S_TYPE.Contains("鍏ュ簱"))
+            switch (state)
             {
-                 Type = "2";
-                 bit = mst.S_END_LOC;
-                if (state == 1103)
-                {
-                    Meshod = "AgvRequest";
-                    bit = mst.S_END_LOC;
-                }
-                else if (state == 7)
-                {
-                    Type = "3";
-                    Meshod = "AgvRequestCancel";
-                }
-                else if (state == 4)
-                {
-                    //鐢宠鍑洪棬
-                    Type = "4";
-                    Meshod = "AgvRequest";
-                    bit = mst.S_END_LOC;
-                }
-                else
-                {
-                    Meshod = "Complete";
-                }
-            }
-            else if (mst.S_TYPE.Contains("鍑哄簱"))
-            {
-                Type = "1";
-                bit = mst.S_START_LOC;
-                if (state == 1101)
-                {
-                    Meshod = "AgvRequest";
-                }
-                else if (state == 7)
-                {
-                    Type = "3";
-                    Meshod = "AgvRequestCancel";
-                }
-                else if (state == 3)
-                {
-                    //鐢宠杩涢棬
-                    Type = "3";
-                    Meshod = "AgvRequest";
+                case 1101:
+                    Type = "1";
                     bit = mst.S_START_LOC;
-                }
-                else
-                {
+                    Meshod = "AgvRequest";
+                    break;
+                case 1102:
+                    Type = "1";
+                    bit = mst.S_START_LOC;
                     Meshod = "Complete";
-                }
+                    break;
+                case 1103:
+                    Type = "2";
+                    bit = mst.S_END_LOC;
+                    Meshod = "AgvRequest";
+                    break;
+                case 1104:
+                    Type = "5";
+                    bit = mst.S_END_LOC;
+                    Meshod = "Complete";
+                    break;
+                case 7:
+                    Type = "2";
+                    bit = "";
+                    Meshod = "AgvRequestCancel";
+                    break;
             }
-            else
-            {
-                LogHelper.Info("闄や簡鍑哄叆搴撳叾浣欎笉闇�瀹夊叏璇锋眰", "agv鎵ц閫氱煡");
-                return true;
-            }
+
 
 
 
diff --git a/process/TaskProcess.cs b/process/TaskProcess.cs
index 72934f9..34cc6df 100644
--- a/process/TaskProcess.cs
+++ b/process/TaskProcess.cs
@@ -124,10 +124,10 @@
                     return;
                 }
 
-                var wcsTask = TaskHelper.GetTask(mst.S_OP_CODE + "_2");
+                var wcsTask = TaskHelper.GetTaskByWorkNo(mst.S_OP_CODE,"wcs");
                 if (wcsTask == null)
                 {
-                    LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤澶辫触锛屾病鎵惧埌瀵瑰簲{mst.S_OP_CODE + "_2"}浠诲姟", "鏀归亾瀹夊叏浜や簰");
+                    LogHelper.Info($"鍒ゆ柇宸烽亾鍙敤澶辫触锛屾病鎵惧埌瀵瑰簲{mst.S_OP_CODE}鐨剋cs浠诲姟", "鏀归亾瀹夊叏浜や簰");
                     return;
                 }
                 //鍒ゆ柇绌烘墭缂撳瓨銆佹帴椹充綅鍜屽贩閬撴槸鍚﹀彲鐢�涓嶅彲鐢ㄩ渶瑕佹敼閬�@@ -138,7 +138,7 @@
                 //寮�叧鍏抽棬鐢宠
                 DeviceProcess.Door(mst, forkliftNo, state);
             }
-            else if (state == 1013) {
+            else if (state == 1002) {
                 LogHelper.Info($"绛夊緟浜や簰锛屼换鍔″彿={mst.S_CODE}锛屽嵏璐т氦绠℃垚鍔燂紝淇敼鍙傛暟", "瀹夊叏浜や簰");
 
                 //绛夊緟rfid鏍¢獙
@@ -791,8 +791,8 @@
 
             try
             {
-                var task = TaskHelper.GetTask(model.task_no + "_1");
-                var wcsTask = TaskHelper.GetTask(model.task_no + "_2");
+                var task = TaskHelper.GetTaskByWorkNo(model.task_no, "agv");
+                var wcsTask = TaskHelper.GetTaskByWorkNo(model.task_no,"wcs");
                 if (task != null && wcsTask != null)
                 {
                     if (task.S_B_STATE.Trim() == "鏈墽琛�)
@@ -856,7 +856,7 @@
                 else
                 {
                     result.errCode = 1;
-                    result.errMsg = "浠诲姟涓嶅瓨鍦�;
+                    result.errMsg = $"{model.task_no}浠诲姟涓嶅瓨鍦�;
                     result.success = false;
                 }
             }
@@ -1280,6 +1280,9 @@
                     //鎺ラ┏浣�                     var connection = "";
 
+                    //鎺ラ┏浣嶅簱鍖哄悕绉�+                    var connectionArea = "";
+
                     //濡傛灉闇�涓嬪彂wcs绔嬪簱锛屽垯闇�瀵绘壘鍙敤鎺ラ┏浣�                     if (workFlow.SENDWCS == "Y") {
 
@@ -1311,6 +1314,7 @@
                                 if (con.N_CURRENT_NUM < 2 && con.C_ENABLE == "Y")
                                 {
                                     connection = con.S_CODE;
+                                    connectionArea = con.S_AREA_Name;
                                     LogHelper.Info($"ZCSendTask鍏ュ簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
                                 }
                             }
@@ -1482,8 +1486,13 @@
                         //浼樺厛绾�                         N_PRIORITY = model.Priority,
                         //宸ヨ绫诲瀷
-                        TOOLSTYPE = TOOLSTYPE
-
+                        TOOLSTYPE = TOOLSTYPE,
+                        //璧风偣搴撳尯鍚嶇О
+                        S_START_AREA_NAME = start.S_AREA_Name,
+                        //璧风偣搴撳尯鍚嶇О
+                        S_END_AREA_NAME = end.S_AREA_Name,
+                        //璧风偣搴撳尯鍚嶇О
+                        CONNECTION_AREA = connectionArea,
                     };
 
                     //鍒涘缓浣滀笟
@@ -1508,6 +1517,10 @@
 
                     //鎺ラ┏浣�                     var connection = "";
+
+                    //鎺ラ┏浣嶅簱鍖�+                    var connectionArea = "";
+                    
 
                     //鏌ユ壘缁欏畾缁堢偣
                     var end = LocationHelper.GetLoc(model.Location_To);
@@ -1619,9 +1632,10 @@
                             foreach (var item in usableConnectionList.available)
                             {
                                 var con = LocationHelper.GetLoc(item);
-                                if (con.S_LOCK_STATE == "鏃� && con.N_CURRENT_NUM < 2)
+                                if (con.C_ENABLE == "Y" && con.N_CURRENT_NUM < 2)
                                 {
                                     connection = con.S_CODE;
+                                    connectionArea = con.S_AREA_Name;
                                     LogHelper.Info($"ZCSendTask鍑哄簱浠诲姟涓嬪彂瀵绘壘鍒板彲鐢ㄦ帴椹充綅{connection}", "Mes浠诲姟涓嬪彂");
                                 }
                             }
@@ -1669,7 +1683,13 @@
                         //浼樺厛绾�                         N_PRIORITY = model.Priority,
                         //宸ヨ绫诲瀷
-                        TOOLSTYPE = TOOLSTYPE
+                        TOOLSTYPE = TOOLSTYPE,
+                        //璧风偣搴撳尯鍚嶇О
+                        S_START_AREA_NAME = start.S_AREA_Name,
+                        //璧风偣搴撳尯鍚嶇О
+                        S_END_AREA_NAME = end.S_AREA_Name,
+                        //璧风偣搴撳尯鍚嶇О
+                        CONNECTION_AREA = connectionArea
                     };
 
                     //鍒涘缓浣滀笟
diff --git a/wms/TaskHelper.cs b/wms/TaskHelper.cs
index cc450d3..5dddfea 100644
--- a/wms/TaskHelper.cs
+++ b/wms/TaskHelper.cs
@@ -49,6 +49,14 @@
             return task;
         }
 
+        //鏌ユ壘WCS绔嬪簱浠诲姟 鍙傛暟浣滀笟缂栫爜,璋冨害绫诲瀷 agv/wcs
+        internal static WMSTask GetTaskByWorkNo(string no,string type)
+        {
+            var db = new SqlHelper<WMSTask>().GetInstance();
+            var task = db.Queryable<WMSTask>().Where(a => a.S_OP_CODE == no && a.S_SCHEDULE_TYPE== type).First();
+            return task;
+        }
+
 
         internal static WMSTask GetTaskByCntrCode(string cntrCode)
         {
@@ -241,7 +249,7 @@
                 // 浣滀笟缂栫爜
                 S_OP_CODE = operation.S_CODE,
                 // 浠诲姟鍙�-                S_CODE = GenerateTaskNo(),
+                S_CODE = operation.S_CODE + "_1",
                 // 浠诲姟绫诲瀷
                 N_TYPE = operation.N_TYPE,
                 // 浠诲姟绫诲瀷
@@ -250,6 +258,10 @@
                 S_START_LOC = operation.S_START_LOC,
                 // 璧风偣搴撳尯
                 S_START_AREA = operation.S_START_AREA,
+                //璧风偣搴撳尯鍚嶇О
+                S_START_AREA_NAME = operation.S_START_AREA_NAME,
+                //缁堢偣搴撳尯鍚嶇О
+                S_END_AREA_NAME = operation.S_END_AREA_NAME,
                 // 缁堢偣璐т綅
                 S_END_LOC = operation.S_END_LOC,
                 // 缁堢偣搴撳尯
@@ -335,6 +347,10 @@
                 N_PRIORITY = operation.N_PRIORITY,
                 //宸ヨ绫诲瀷
                 TOOLSTYPE = operation.TOOLSTYPE,
+                //璧风偣搴撳尯鍚嶇О
+                S_START_AREA_NAME = operation.S_START_AREA_NAME,
+                //缁堢偣搴撳尯鍚嶇О
+                S_END_AREA_NAME = operation.CONNECTION_AREA,
 
             };
 
@@ -369,6 +385,10 @@
                 N_PRIORITY = operation.N_PRIORITY,
                 //宸ヨ绫诲瀷
                 TOOLSTYPE = operation.TOOLSTYPE,
+                //璧风偣搴撳尯鍚嶇О
+                S_START_AREA_NAME = operation.CONNECTION_AREA,
+                //缁堢偣搴撳尯鍚嶇О
+                S_END_AREA_NAME = operation.S_END_AREA_NAME,
             };
 
             try
@@ -411,7 +431,7 @@
                 // 浣滀笟缂栫爜
                 S_OP_CODE = operation.S_CODE,
                 // 浠诲姟鍙�-                S_CODE = operation.S_CODE + "_2",
+                S_CODE = operation.S_CODE + "_1",
                 // 浠诲姟绫诲瀷
                 N_TYPE = operation.N_TYPE,
                 // 浠诲姟绫诲瀷
@@ -436,6 +456,10 @@
                 N_PRIORITY = operation.N_PRIORITY,
                 //宸ヨ绫诲瀷
                 TOOLSTYPE = operation.TOOLSTYPE,
+                //璧风偣搴撳尯鍚嶇О
+                S_START_AREA_NAME = operation.S_START_AREA_NAME,
+                //缁堢偣搴撳尯鍚嶇О
+                S_END_AREA_NAME = operation.CONNECTION_AREA,
             };
 
             // 浠诲姟2
@@ -444,7 +468,7 @@
                 // 浣滀笟缂栫爜
                 S_OP_CODE = operation.S_CODE,
                 // 浠诲姟鍙�-                S_CODE = operation.S_CODE + "_1",
+                S_CODE = operation.S_CODE + "_2",
                 // 浠诲姟绫诲瀷
                 N_TYPE = operation.N_TYPE,
                 // 浠诲姟绫诲瀷
@@ -469,6 +493,10 @@
                 N_PRIORITY = operation.N_PRIORITY,
                 //宸ヨ绫诲瀷
                 TOOLSTYPE = operation.TOOLSTYPE,
+                //璧风偣搴撳尯鍚嶇О
+                S_START_AREA_NAME = operation.CONNECTION_AREA,
+                //缁堢偣搴撳尯鍚嶇О
+                S_END_AREA_NAME = operation.S_END_AREA_NAME,
             };
 
             try
@@ -534,7 +562,26 @@
             return ac;
         }
 
-      
+        /// <summary>
+        /// 浠诲姟鎷︽埅
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        internal static bool Intercept()
+        {
+                var db = new SqlHelper<object>().GetInstance();
+              
+                var model = db.Queryable<ManualTaskSwitch>().First();
+                if (model != null && model.State == "Y")
+                {
+                    return false;
+                }
+                else
+                {
+                    return true;
+                }
+            
+        }
 
 
         internal static bool WcsAddActionRecord(string no, string state, string forkliftNo, string extData = "0")
@@ -558,18 +605,18 @@
             var db = new SqlHelper<WmsTaskAction>().GetInstance();
             return db.Queryable<WmsTaskAction>().Count(a => a.S_TASK_CODE.Trim() == no.Trim() && a.S_ACTION == code) > 0;
         }
-        internal static void Begin(WMSTask task,string avgNo) {
-            var db = new SqlHelper<WMSTask>().GetInstance();
-            if (task != null) {
-                if (task.S_B_STATE.Trim() == "宸叉帹閫�) {
-                    task.S_B_STATE = "鎵ц涓�;
-                    task.T_START_TIME = DateTime.Now;
-                    task.S_EQ_NO = avgNo;
-                    db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_START_TIME,it.S_EQ_NO }).ExecuteCommand();
-                }
+        //internal static void Begin(WMSTask task,string avgNo) {
+        //    var db = new SqlHelper<WMSTask>().GetInstance();
+        //    if (task != null) {
+        //        if (task.S_B_STATE.Trim() == "宸叉帹閫�) {
+        //            task.S_B_STATE = "鎵ц涓�;
+        //            task.T_START_TIME = DateTime.Now;
+        //            task.S_EQ_NO = avgNo;
+        //            db.Updateable(task).UpdateColumns(it => new { it.S_B_STATE, it.T_START_TIME,it.S_EQ_NO }).ExecuteCommand();
+        //        }
 
-            }
-        }
+        //    }
+        //}
 
 
         internal static WcsRfidCheckoutEntitys GetRfid(string TaskCode) {
@@ -581,7 +628,7 @@
 
 
 
-        internal static void Begin(WMSTask task)
+        internal static void Begin(WMSTask task, string avgNo="")
         {
             var db = new SqlHelper<WMSTask>().GetInstance();
             if (task != null)
@@ -590,8 +637,9 @@
                 {
                     task.N_B_STATE = 2;
                     task.S_B_STATE = WMSTask.GetStateStr(task.N_B_STATE);
+                    task.S_EQ_NO = avgNo;
                     task.T_START_TIME = DateTime.Now;
-                    db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME }).ExecuteCommand();
+                    db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE, it.T_START_TIME,it.S_EQ_NO }).ExecuteCommand();
                 }
             }
         }
@@ -680,7 +728,8 @@
             {
                 task.N_B_STATE = 5;
                 task.S_B_STATE = WMSTask.GetStateStr(task.N_B_STATE);
-                db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE }).ExecuteCommand();
+                task.T_END_TIME = DateTime.Now;
+                db.Updateable(task).UpdateColumns(it => new { it.N_B_STATE, it.S_B_STATE,it.T_END_TIME}).ExecuteCommand();
             }
         }
 
diff --git a/wms/WMSModel.cs b/wms/WMSModel.cs
index 9f5cbb7..5e44794 100644
--- a/wms/WMSModel.cs
+++ b/wms/WMSModel.cs
@@ -98,6 +98,11 @@
         public string S_AREA_CODE { get; set; }
 
         /// <summary>
+        /// 搴撳尯涓枃鍚嶇О
+        /// </summary>
+        public string S_AREA_Name { get; set; }
+
+        /// <summary>
         /// 宸烽亾
         /// </summary>
         public int N_ROADWAY { get; set; }
@@ -517,6 +522,19 @@
 
 
         /// <summary>
+        /// 璧风偣搴撳尯鍚嶇О
+        /// </summary>
+        public string S_START_AREA_NAME { get; set; }
+        /// <summary>
+        /// 缁堢偣搴撳尯鍚嶇О
+        /// </summary>
+        public string S_END_AREA_NAME { get; set; }
+        /// <summary>
+        /// 鎺ラ┏浣嶅簱鍖哄悕绉�+        /// </summary>
+        public string CONNECTION_AREA { get; set; }
+
+        /// <summary>
         /// 浣滀笟浼樺厛绾�         /// </summary>
         public int N_PRIORITY { get; set; }
@@ -673,6 +691,16 @@
         /// 璧峰搴撳尯缂栧彿
         /// </summary>
         public string S_START_AREA { get; set; }
+
+        /// <summary>
+        /// 璧峰搴撳尯缂栧彿
+        /// </summary>
+        public string S_START_AREA_NAME { get; set; }
+
+        /// <summary>
+        /// 鐩殑搴撳尯缂栧彿
+        /// </summary>
+        public string S_END_AREA_NAME { get; set; }
 
         /// <summary>
         /// 璧风偣
@@ -1392,4 +1420,17 @@
         /// </summary>
         public string AgvErrorMsg { get; set; }
     }
+
+    /// <summary>
+    /// 浠诲姟鎷︽埅琛�+    /// </summary>
+    [ST("浠诲姟鎷︽埅琛�)]
+    public class ManualTaskSwitch : BaseModel
+    {
+      
+        /// <summary>
+        /// 浠诲姟鎷︽埅寮�叧  Y/N   Y琛ㄧず鎷︽埅浠诲姟鎺ㄩ�
+        /// </summary>
+        public string State { get; set; }
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.1