From ee94d6b5b5719159370c5e0055957d2dffb3f815 Mon Sep 17 00:00:00 2001
From: Zhang-Hong-Lin <a3219986988@163.com>
Date: 星期五, 07 三月 2025 09:49:49 +0800
Subject: [PATCH] 天车移动

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json        |  170 ++++++---------
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs          |    1 
 项目资料/通信协议/~$有色WMS与天车交互协议.docx                                                   |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs            |   44 +++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs                       |  220 ++++++++++++++-----
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json |  124 ++++++++++-
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs                       |   47 +++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs           |    9 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs         |   21 +
 项目资料/通信协议/~$机组通信协议.doc                                                          |    0 
 10 files changed, 447 insertions(+), 189 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
index f335002..62cadf8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -3,6 +3,34 @@
   "WorkspaceRootPath": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\zxj\\zxjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\zxj\\zxjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\locationenum\\locationenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\locationenum\\locationenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
       "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\outstockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\outstockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
@@ -25,10 +53,6 @@
     {
       "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -42,7 +66,85 @@
           "Children": [
             {
               "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "TaskTypeEnum.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ViewState": "AgIAABQAAAAAAAAAAAAIwCYAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T06:43:37.389Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "TaskStatusEnum.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "ViewState": "AgIAADgAAAAAAAAAAAAIwCQAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T06:13:39.322Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "GZJJob.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "ViewState": "AgIAAEwAAAAAAAAAAAAQwDUBAAAgAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T05:57:13.072Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "ZXJJob.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "ViewState": "AgIAACgAAAAAAAAAAAAQwDoAAAA0AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T05:57:04.98Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
               "DocumentIndex": 1,
+              "Title": "OHTJob.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ViewState": "AgIAACcAAAAAAAAAAAAawIAAAAA7AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T05:56:59.413Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "LocationEnum.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
+              "ViewState": "AgIAAAsAAAAAAAAAAAAQwBkAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T05:34:17.056Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
               "Title": "dt_outstockinfoService.cs",
               "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_outstockinfoService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_outstockinfoService.cs",
@@ -55,7 +157,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 2,
+              "DocumentIndex": 9,
               "Title": "Idt_OutstockinfoService.cs",
               "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\Idt_OutstockinfoService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\Idt_OutstockinfoService.cs",
@@ -68,7 +170,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 0,
+              "DocumentIndex": 7,
               "Title": "OutStockController.cs",
               "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\OutStockController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\OutStockController.cs",
@@ -81,7 +183,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 5,
+              "DocumentIndex": 12,
               "Title": "dt_batchinfoService.cs",
               "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
@@ -94,7 +196,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 10,
               "Title": "BatchController.cs",
               "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
@@ -107,20 +209,20 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
+              "DocumentIndex": 5,
               "Title": "Program.cs",
               "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
               "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
               "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
-              "ViewState": "AgIAAIUAAAAAAAAAAAAAAJUAAAAAAAAAAAAAAA==",
+              "ViewState": "AgIAAIUAAAAAAAAAAAAAAJYAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2025-03-04T03:07:05.622Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 11,
               "Title": "dt_stationinfoService.cs",
               "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_stationinfoService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_stationinfoService.cs",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
index b9eed6b..1ee3197 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -3,36 +3,28 @@
   "WorkspaceRootPath": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\locationenum\\locationenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\locationenum\\locationenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\tasktypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\outstockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\outstockcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\dt_outstockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\dt_outstockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\idt_outstockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\idt_outstockinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\batchcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\batchcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\zxj\\zxjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\zxj\\zxjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\dt_stationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\dt_stationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\gzj\\gzjjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -42,110 +34,84 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 0,
+          "SelectedChildIndex": 1,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "LocationEnum.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
-              "RelativeToolTip": "WIDESEAWCS_Common\\LocationEnum\\LocationEnum.cs",
-              "ViewState": "AgIAAA4AAAAAAAAAAAAIwCAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-06T05:34:17.056Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 2,
-              "Title": "dt_outstockinfoService.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_outstockinfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_outstockinfoService.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_outstockinfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\dt_outstockinfoService.cs",
-              "ViewState": "AgIAACAAAAAAAAAAAAAswD4AAABKAAAAAAAAAA==",
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs*",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs*",
+              "ViewState": "AgIAAOwAAAAAAAAAAAAswP8AAABgAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-06T04:57:44.582Z",
+              "WhenOpened": "2025-03-06T08:14:42.09Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "Idt_OutstockinfoService.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\Idt_OutstockinfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\Idt_OutstockinfoService.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\Idt_OutstockinfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\Idt_OutstockinfoService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAmAAAAAAAAAA==",
+              "DocumentIndex": 0,
+              "Title": "TaskTypeEnum.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ViewState": "AgIAADkAAAAAAAAAAAA0wDYAAAAZAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-06T04:57:37.321Z",
+              "WhenOpened": "2025-03-06T06:43:37.389Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 1,
-              "Title": "OutStockController.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\OutStockController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\OutStockController.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\OutStockController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\OutStockController.cs",
-              "ViewState": "AgIAAA0AAAAAAAAAAAAzwCMAAAAtAAAAAAAAAA==",
+              "Title": "TaskStatusEnum.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-05T08:53:43.728Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
-              "Title": "dt_batchinfoService.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
-              "ViewState": "AgIAAEcAAAAAAAAAAAAAAGMAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-05T08:44:48.823Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "BatchController.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAwDAAAAA3AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-05T04:42:23.345Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "Program.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
-              "ViewState": "AgIAAIUAAAAAAAAAAAAAAJUAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-04T03:07:05.622Z",
+              "WhenOpened": "2025-03-06T06:13:39.322Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 5,
-              "Title": "dt_stationinfoService.cs",
-              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_stationinfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_stationinfoService.cs",
-              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_stationinfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\dt_stationinfoService.cs",
-              "ViewState": "AgIAAAoAAAAAAAAAAAAowBYAAAAIAAAAAAAAAA==",
+              "Title": "GZJJob.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "ViewState": "AgIAAE8BAAAAAAAAAAAAAFoBAAA4AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-03T13:10:11.273Z",
+              "WhenOpened": "2025-03-06T05:57:13.072Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "ZXJJob.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
+              "ViewState": "AgIAAKgAAAAAAAAAAAApwMAAAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T05:57:04.98Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "OHTJob.cs",
+              "DocumentMoniker": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ToolTip": "F:\\\u4E34\u65F6\u5B58\u653E\\\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ViewState": "AgIAAOwAAAAAAAAAAAAswPcAAAAZAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T05:56:59.413Z",
               "EditorCaption": ""
             }
           ]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
index fc426f4..f7fcdb3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
@@ -64,6 +64,27 @@
         InException = 299,
     }
 
+    public enum TaskMoveStatusEnum
+    {
+        /// <summary>
+        /// 鏂板缓绉诲姩浠诲姟
+        /// </summary>
+        [Description("鏂板缓绉诲姩浠诲姟")]
+        OutNewMove = 101,
+
+        /// <summary>
+        /// 澶╄溅绉诲姩瀹屾垚
+        /// </summary>
+        [Description("澶╄溅绉诲姩瀹屾垚")]
+        MoveFinish = 101,
+
+        /// <summary>
+        /// 澶╄溅绉诲姩涓�
+        /// </summary>
+        [Description("澶╄溅绉诲姩涓�")]
+        Line_OutMove =102
+    }
+
     public enum TaskOutStatusEnum
     {
         /// <summary>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
index 37b0eae..0d4a85e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -73,4 +73,13 @@
     {
 
     }
+
+    public enum TaskMoveEnum
+    {
+        /// <summary>
+        /// 澶╄溅绉诲姩
+        /// </summary>
+        [Description("澶╄溅绉诲姩")]
+        Mowe = 100,
+    }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 43097ed..ac732f2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -209,5 +209,6 @@
         /// <param name="taskNum">浠诲姟鍙�</param>
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
         WebResponseContent RollbackTaskStatusToLast(int taskNum);
+        Dt_Task QueryTaskState();
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index d1d6bf7..b89f4b0 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -185,6 +185,17 @@
         }
 
         /// <summary>
+        /// 鏍规嵁浠诲姟鐘舵�佹煡璇换鍔�
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        public Dt_Task QueryTaskState()
+        {
+            return BaseDal.QueryFirst(x => x.TaskState== (int)TaskInStatusEnum.InNew );
+        }
+
+        /// <summary>
         /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
         /// </summary>
         /// <param name="deviceNo">璁惧缂栧彿</param>
@@ -252,19 +263,30 @@
                     //浼樺厛杩斿洖鎵ц鍒颁竴鍗婄殑浠诲姟缁х画鎵ц
                     return task;
                 }
+                else {
+                    //鏌ヨ澶╄溅绉诲姩浠诲姟
+                    task = BaseDal.QueryFirst(v => v.TaskType == (int)TaskMoveEnum.Mowe && v.TaskState == (int)TaskMoveStatusEnum.OutNewMove);
+                    if (task!=null)
+                    {
+                        return task;
+                    }
+                }
                 //鏌ヨ褰撳墠浠诲姟姹犱腑鏄惁瀛樺湪鐘舵�佷负闈炴柊寤虹殑
                 //task= BaseDal.QueryFirst(v => v.TaskState != (int)TaskInStatusEnum.InNew || v.TaskState != (int)TaskOutStatusEnum.OutNew);
                 //if (task != null)
                 //{
                 //    throw new Exception($"褰撳墠浠诲姟姹犱腑瀛樺湪鎵ц涓殑浠诲姟,浠诲姟鍙�:銆恵task.TaskNum}銆�");
                 //}
-                if (workTpe.Equals("In"))
+                if (task.TaskState!= (int)TaskMoveStatusEnum.OutNewMove)
                 {
-                    task = BaseDal.QueryData(v=>v.TaskType==(int)TaskInboundTypeEnum.Inbound && v.TaskState==(int)TaskInStatusEnum.InNew).OrderByDescending(v=>v.Grade) .OrderBy(v=>v.CreateDate).First();
-                }
-                else if (workTpe.Equals("Out"))
-                {
-                    task = BaseDal.QueryData(v => (v.TaskType == (int)TaskOutboundTypeEnum.Outbound || v.TaskType == (int)TaskOutboundTypeEnum.OutInventory) && v.TaskState == (int)TaskOutStatusEnum.OutNew).OrderBy(v => v.CreateDate).First();
+                    if (workTpe.Equals("In"))
+                    {
+                        task = BaseDal.QueryData(v => v.TaskType == (int)TaskInboundTypeEnum.Inbound && v.TaskState == (int)TaskInStatusEnum.InNew).OrderByDescending(v => v.Grade).OrderBy(v => v.CreateDate).First();
+                    }
+                    else if (workTpe.Equals("Out"))
+                    {
+                        task = BaseDal.QueryData(v => (v.TaskType == (int)TaskOutboundTypeEnum.Outbound || v.TaskType == (int)TaskOutboundTypeEnum.OutInventory) && v.TaskState == (int)TaskOutStatusEnum.OutNew).OrderBy(v => v.CreateDate).First();
+                    }
                 }
             }
             catch (Exception)
@@ -426,6 +448,10 @@
                 else if (status == 3 && task.TaskType == (int)TaskOutboundTypeEnum.Outbound || task.TaskType == (int)TaskOutboundTypeEnum.OutInventory)
                 {
                     task.TaskState = (int)TaskOutStatusEnum.Line_OutWownExecuting;
+                }
+                else if(status == 4 && task.TaskType == (int)TaskMoveEnum.Mowe)
+                {
+                    task.TaskState = (int)TaskMoveStatusEnum.Line_OutMove;
                 }
                 task.ModifyDate = DateTime.Now;
                 BaseDal.UpdateData(task);
@@ -674,7 +700,7 @@
                     //鎻愪氦浜嬪姟
                     _unitOfWorkManage.CommitTran();
                 }
-                else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.OutInventory)
+                else if (nawtask.TaskType == (int)TaskOutboundTypeEnum.OutInventory || nawtask.TaskType == (int)TaskMoveEnum.Mowe)
                 {
                     //澶勭悊浠诲姟淇℃伅
                     Dt_Task_hty taskhty = new Dt_Task_hty();
@@ -691,8 +717,12 @@
                     taskhty.PalletCode = nawtask.PalletCode;
                     taskhty.NextAddress = nawtask.NextAddress;
                     taskhty.CurrentAddress = nawtask.CurrentAddress;
+                    //寮�濮嬫暟鎹簱浜嬪姟
+                    _unitOfWorkManage.BeginTran();
                     _taskhtyRepository.AddData(taskhty);
                     BaseDal.DeleteData(nawtask);
+                    //鎻愪氦浜嬪姟
+                    _unitOfWorkManage.CommitTran();
                 }
                 content = WebResponseContent.Instance.OK();
             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs"
index 8326550..a680bba 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs"
@@ -96,84 +96,150 @@
                         var storagemode = _storagemodeRepository.QueryFirst(v => v.Id == 1);
                         if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_DK_isready)//RGV涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
+                            
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-
-                            task.Grade = 1;
-                            task.Remark = (int)MateTypeEnum.ZiChan;
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (oldhtytask !=null) 
+                            {
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                task.Grade = 1;
+                                task.Remark = (int)MateTypeEnum.ZiChan;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
+                            }
                         }
-                        else if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
+                        if (OHTJob.oHTReadData.R_RGVMode && OHTJob.oHTReadData.R_XK_isready)//RGV涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-                            var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙");
-                            string address = DKstation.Row + "-" + DKstation.Column + "-1";
-                            var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address);
-                            if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew)
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (oldhtytask!=null)
                             {
-                                task.Grade = 2;
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                var DKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙");
+                                string address = DKstation.Row + "-" + DKstation.Column + "-1";
+                                var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address);
+                                if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew)
+                                {
+                                    task.Grade = 2;
+                                }
+                                else
+                                {
+                                    task.Grade = 1;
+                                }
+                                task.Remark = (int)MateTypeEnum.ZiChan;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
                             }
-                            else
-                            {
-                                task.Grade = 1;
-                            }
-                            task.Remark = (int)MateTypeEnum.ZiChan;
                         }
-                        else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
+                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_XK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖瑗胯法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-                            task.Grade = 1;
-                            task.Remark = (int)MateTypeEnum.WaiGou;
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (oldhtytask!=null)
+                            {
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                task.Grade = 1;
+                                task.Remark = (int)MateTypeEnum.WaiGou;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
+                            }
                         }
-                        else if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙�
+                        if (OHTJob.oHTReadData.R_CCMode && OHTJob.oHTReadData.R_DK_isready)//浜哄伐鍙夎溅涓婃枡妯″紡锛屼笖涓滆法鏋跺瓙鏈変笂鏂欎俊鍙�
                         {
                             var station = _dt_stationInfoRepository.QueryFirst(v => v.msg == "涓滆法鏋跺瓙");
                             task.SourceAddress = station.Row + "-" + station.Column + "-1";
-                            task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
-                            var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙");
-                            string address = XKstation.Row + "-" + XKstation.Column + "-1";
-                            var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address);
-                            if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew)
+                            var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
+                            if (true)
                             {
-                                task.Grade = 2;
+                                task.TargetAddress = _locationInfoService.GetInLocation(storagemode.storagemode).LocationCode;
+                                var XKstation = _dt_stationInfoRepository.QueryFirst(v => v.msg == "瑗胯法鏋跺瓙");
+                                string address = XKstation.Row + "-" + XKstation.Column + "-1";
+                                var oldtask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == address);
+                                if (oldtask != null && oldtask.TaskState == (int)TaskInStatusEnum.InNew)
+                                {
+                                    task.Grade = 2;
+                                }
+                                else
+                                {
+                                    task.Grade = 1;
+                                }
+                                task.Remark = (int)MateTypeEnum.WaiGou;
+                                //鏌ユ壘鐩搁偦鐨勫簱浣�
+                                Dt_LocationInfo Towlocation = new Dt_LocationInfo();
+                                var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
+                                if (Onelocation.Depth == 1)
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
+                                }
+                                else
+                                {
+                                    Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
+                                }
+                                task.NextAddress = Towlocation.LocationCode;
+                                task.Roadway = "TC01";
+                                task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                                task.TaskState = (int)TaskInStatusEnum.InNew;
+                                task.PalletCode = "text";
+                                task.CurrentAddress = "text";
+                                task.WMSId = 3;
+                                _dt_taskRepositiry.AddData(task);
                             }
-                            else
-                            {
-                                task.Grade = 1;
-                            }
-                            task.Remark = (int)MateTypeEnum.WaiGou;
                         }
-                        else
-                        {
-                            throw new Exception($"瑙勬暣鏈哄綋鍓嶄俊鍙蜂笉婊¤冻鍏ュ簱浠诲姟鐢熸垚鏉′欢");
-                        }
-                        //鏌ユ壘鐩搁偦鐨勫簱浣�
-                        Dt_LocationInfo Towlocation = new Dt_LocationInfo();
-                        var Onelocation = _LocationInfoRepository.QueryFirst(v => v.LocationCode == task.TargetAddress);
-                        if (Onelocation.Depth == 1)
-                        {
-                            Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2);
-                        }
-                        else
-                        {
-                            Towlocation = _LocationInfoRepository.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1);
-                        }
-                        task.NextAddress = Towlocation.LocationCode;
-                        task.Roadway = "TC01";
-                        task.TaskType = (int)TaskInboundTypeEnum.Inbound;
-                        task.TaskState = (int)TaskInStatusEnum.InNew;
-                        task.PalletCode = "text";
-                        task.CurrentAddress = "text";
-                        task.WMSId = 3;
-                        var oldhtytask = _dt_taskRepositiry.QueryFirst(v => v.SourceAddress == task.SourceAddress);
-                        if (oldhtytask == null)
-                        {
-                            _dt_taskRepositiry.AddData(task);
-                        }
+                        
                     }
                     else if(Inisout.InOut == 2)
                     {
@@ -220,7 +286,6 @@
                             _dt_taskRepositiry.AddData(outtask);
                         }
                     }
-                    
                     #endregion
                 }
                 catch (Exception ex)
@@ -307,6 +372,41 @@
                     _unitOfWorkManage.RollbackTran();
                     _ErrormsginfoService.UpdateErrorMsg(ex.Message, 3);
                 }
+
+                
+                try
+                {
+                    #region 鐢熸垚澶╄溅绉诲姩浠诲姟
+                    if (!OHTJob.oHTReadData.R_ZXJ_isWork || !OHTJob.oHTReadData.R_HC_isReady)
+                    {
+                        throw new Exception($"鏁村舰鏈烘姇鍏ヤ娇鐢ㄤ俊鍙蜂负false鎴栬�呰杞﹀彲鍑嗗鍙栨澘涓篺alse");
+                    }
+                    //鏌ヨ褰撳墠闇�瑕佸嚭搴撶殑鎵规鍙凤紝浠ュ強鍑哄簱鐗╂枡绫诲瀷
+                    var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1);
+                    //鏌ヨ搴撳瓨鐗╂枡搴撳瓨淇℃伅
+                    var stocks = _StockInfoRepository.QueryData(v => v.Remark == batch.materType && v.BatchNo == batch.OutBatch && v.StockStatus == 0)
+                        .OrderBy(v => v.CreateDate).ToList();
+                    
+                    //寮�濮嬪垱寤轰换鍔�
+                    Dt_Task outtask = new Dt_Task();
+                    outtask.Roadway = "TC01";
+                    outtask.TaskType = (int)TaskMoveEnum.Mowe;
+                    outtask.TaskState = (int)TaskMoveStatusEnum.OutNewMove;
+                    outtask.SourceAddress = "text";
+                    outtask.TargetAddress = stocks[0].LocationCode;
+                    outtask.NextAddress = "text";
+                    outtask.Grade = 1;
+                    outtask.WMSId = 3;
+                    outtask.Remark = batch.materType;
+                    outtask.PalletCode = "text";
+                    outtask.CurrentAddress = "text";
+                    _dt_taskRepositiry.AddData(outtask);
+                    #endregion
+                }
+                catch (Exception ex)
+                {
+                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 4);
+                }
             }
             return Task.CompletedTask;
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs"
index 07f4c0a..e2590a8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs"
@@ -37,7 +37,7 @@
         private readonly ITaskService _taskService;
         private readonly Idt_ErrormsginfoService _ErrormsginfoService;
         WebSocketServer _webSocketServer;
-        public OHTJob(ITaskService taskService, WebSocketServer webSocketServer,Idt_ErrormsginfoService errormsginfoService)
+        public OHTJob(ITaskService taskService, WebSocketServer webSocketServer, Idt_ErrormsginfoService errormsginfoService)
         {
             _taskService = taskService;//娉ㄥ叆
             _webSocketServer = webSocketServer;
@@ -54,10 +54,10 @@
                 var ZXJdevice = Storage.Devices.Find(v => v.DeviceName == "闃虫瀬鏁村舰鏈�");
                 //瑙勬暣鏈篜LC瀵硅薄
                 var GZJevice = Storage.Devices.Find(v => v.DeviceName == "闃虫瀬瑙勬暣鏈�");
-                //if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected)
-                //{
-                //    return Task.CompletedTask;
-                //}
+                if (!device.Communicator.IsConnected || !ZXJdevice.Communicator.IsConnected || !GZJevice.Communicator.IsConnected)
+                {
+                    return Task.CompletedTask;
+                }
                 try
                 {
                     #region 澶╄溅瀹屾垚浠诲姟閫昏緫
@@ -115,10 +115,20 @@
                         }
                         return Task.CompletedTask;
                     }
+                    else if (oHTReadData.R_RunState == (int)RunStateEnum.MoveCompleted && oHTReadData.R_TaskState == (int)TaskStateEnum.TaskComplete)
+                    {
+                        //澶╄溅绉诲姩瀹屾垚
+                        WebResponseContent result = _taskService.StackCraneTaskCompleted(oHTReadData.R_TaskNumber, oHTReadData.weight);
+                        if (result.Status)
+                        {
+                            device.SetValue(DeviceDBName.W_ConfirmSignal, 3);
+                        }
+                        return Task.CompletedTask;
+                    }
                     #endregion
 
                     #region 澶╄溅鍙戦�佷换鍔¢�昏緫
-                    if (oHTReadData.R_RunMode == (int)RunModeEnum.Automatic )
+                    if (oHTReadData.R_RunMode == (int)RunModeEnum.Automatic)
                     {
                         if (oHTReadData.R_RunState == (int)RunStateEnum.Standby)
                         {
@@ -159,7 +169,7 @@
                 }
                 catch (Exception ex)
                 {
-                    _ErrormsginfoService.UpdateErrorMsg(ex.Message,1);
+                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 1);
                 }
             }
             return Task.CompletedTask;
@@ -176,7 +186,7 @@
         {
             OHTTaskCommand oHtTaskCommand = new OHTTaskCommand();
 
-            if (task.TaskState==(int)TaskInStatusEnum.InNew || task.TaskState == (int)TaskOutStatusEnum.OutNew)
+            if (task.TaskState == (int)TaskInStatusEnum.InNew || task.TaskState == (int)TaskOutStatusEnum.OutNew)
             {
                 oHtTaskCommand.W_Task_Type = 2;
                 string[] SourceCodes = task.SourceAddress.Split("-");
@@ -185,7 +195,7 @@
                     oHtTaskCommand.W_Pick_Line = Convert.ToInt16(SourceCodes[0]);
                     oHtTaskCommand.W_Pick_Column = Convert.ToInt16(SourceCodes[1]);
                     oHtTaskCommand.W_Put_Line = 0;
-                    oHtTaskCommand.W_Put_Column = 0;
+                    oHtTaskCommand.W_Put_Column = 0; 
                 }
                 else
                 {
@@ -214,6 +224,25 @@
                 }
                 oHtTaskCommand.W_CheckValue = 3 + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
             }
+            else if(task.TaskState == (int)TaskMoveStatusEnum.OutNewMove )
+            {
+                oHtTaskCommand.W_Task_Type = 4;
+                string[] SourceCodes = task.TargetAddress.Split("-");
+                if (SourceCodes.Length == 3)
+                {
+                    oHtTaskCommand.W_Pick_Line = 0;
+                    oHtTaskCommand.W_Pick_Column = 0;
+                    oHtTaskCommand.W_Put_Line = Convert.ToInt16(SourceCodes[0]);
+                    oHtTaskCommand.W_Put_Column = Convert.ToInt16(SourceCodes[1]);
+                }
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"浠诲姟婧愬湴鍧�閰嶇疆閿欒锛�");
+                    return null;
+                }
+                oHtTaskCommand.W_CheckValue = 4 + Convert.ToInt16(SourceCodes[0]) + Convert.ToInt16(SourceCodes[1]);
+            }
             
             if (task.WMSId==1)
             {
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\234\211\350\211\262WMS\344\270\216\345\244\251\350\275\246\344\272\244\344\272\222\345\215\217\350\256\256.docx" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\234\211\350\211\262WMS\344\270\216\345\244\251\350\275\246\344\272\244\344\272\222\345\215\217\350\256\256.docx"
new file mode 100644
index 0000000..fcd42e3
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\234\211\350\211\262WMS\344\270\216\345\244\251\350\275\246\344\272\244\344\272\222\345\215\217\350\256\256.docx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\234\272\347\273\204\351\200\232\344\277\241\345\215\217\350\256\256.doc" "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\234\272\347\273\204\351\200\232\344\277\241\345\215\217\350\256\256.doc"
new file mode 100644
index 0000000..fcd42e3
--- /dev/null
+++ "b/\351\241\271\347\233\256\350\265\204\346\226\231/\351\200\232\344\277\241\345\215\217\350\256\256/~$\346\234\272\347\273\204\351\200\232\344\277\241\345\215\217\350\256\256.doc"
Binary files differ

--
Gitblit v1.9.3