From 5729bfa51a9e8a4781755233324d7e9d002295c0 Mon Sep 17 00:00:00 2001
From: qinchulong <qinchulong@hnkhzn.com>
Date: 星期日, 02 三月 2025 18:58:35 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                 |  130 ++++++----
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs               |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs |   18 +
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs                   |    4 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTReadData.cs                           |   82 ++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/GZJ/GZJJob.cs                                |   98 ++++++-
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs              |   34 ++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_stationinfoService.cs            |   26 ++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs               |    4 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs          |   14 +
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                     |   10 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTJob.cs                                |   56 ---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs                                |   95 ++++++-
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTEnum.cs                               |   98 ++++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs                |    6 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs                  |   15 +
 项目资料/通信协议/~$机组通信协议.doc                                                                   |    0 
 项目资料/通信协议/电控机组通信协议.doc                                                                   |    0 
 18 files changed, 555 insertions(+), 137 deletions(-)

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 9e8e835..dddf4c3 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,20 +3,28 @@
   "WorkspaceRootPath": "F:\\Git\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:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\git\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:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|f:\\git\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|F:\\Git\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:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\dt_errormsginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\dt_errormsginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\git\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:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|f:\\git\u9879\u76EE\\yangjipingku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\idt_errormsginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\idt_errormsginfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|f:\\git\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|f:\\git\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:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\wideseawcs_model\\models\\system\\dt_stationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\dt_stationinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -26,58 +34,84 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 2,
+          "SelectedChildIndex": 3,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "Idt_ErrormsginfoService.cs",
-              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\Idt_ErrormsginfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\Idt_ErrormsginfoService.cs",
-              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\Idt_ErrormsginfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\Idt_ErrormsginfoService.cs",
-              "ViewState": "AQIAAAIAAAAAAAAAAAAhwBIAAAApAAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-01T15:00:45.004Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 1,
-              "Title": "dt_errormsginfoService.cs",
-              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_errormsginfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_errormsginfoService.cs",
-              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_errormsginfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\dt_errormsginfoService.cs",
-              "ViewState": "AQIAABUAAAAAAAAAAIA8wCcAAAAIAAAA",
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ViewState": "AQIAADUCAAAAAAAAAADgv0UCAABCAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-01T14:52:04.164Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "OHTJob.cs",
-              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
-              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
-              "ViewState": "AQIAACMAAAAAAAAAAAAuwCwAAAA5AAAA",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-01T14:47:49.318Z",
+              "WhenOpened": "2025-03-02T07:53:59.024Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 3,
-              "Title": "ZXJJob.cs",
-              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
-              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ZXJ\\ZXJJob.cs",
-              "ViewState": "AQIAACUAAAAAAAAAAAAUwD4AAABAAAAA",
+              "Title": "TaskStatusEnum.cs",
+              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAADwvwkAAAAgAAAA",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-03-01T14:43:53.644Z",
+              "WhenOpened": "2025-03-02T07:50:10.929Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "TaskTypeEnum.cs",
+              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskTypeEnum.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAADwvwkAAAAjAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-02T07:49:15.488Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "GZJJob.cs",
+              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\GZJ\\GZJJob.cs",
+              "ViewState": "AQIAAGYAAAAAAAAAAAAYwHMAAAAZAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-02T07:23:03.899Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "dt_stationInfo.cs",
+              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
+              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\dt_stationInfo.cs",
+              "ViewState": "AQIAAAAAAAAAAAAAAAAAABAAAAAjAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-02T07:08:19.45Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "OHTJob.cs",
+              "DocumentMoniker": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ToolTip": "F:\\Git\u9879\u76EE\\YangJiPingKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ViewState": "AQIAABsAAAAAAAAAAAAtwIYAAAAdAAAA",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-01T14:47:49.318Z",
               "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 3200515..0cbaf20 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"
@@ -120,4 +120,19 @@
         [Description("鍑哄簱浠诲姟寮傚父")]
         OutException = 199,
     }
+
+    public enum MateTypeEnum
+    {
+        /// <summary>
+        /// 鑷骇
+        /// </summary>
+        [Description("鑷骇")]
+        ZiChan,
+
+        /// <summary>
+        /// 澶栬喘
+        /// </summary>
+        [Description("澶栬喘")]
+        WaiGou,
+    }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs"
new file mode 100644
index 0000000..b458cf9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface Idt_StationinfoService : IService<dt_stationInfo>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs"
index 3b720bb..21332dd 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs"
@@ -25,5 +25,11 @@
         /// </summary>
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵规鍙�")]
         public string Batch { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡淇℃伅锛岃嚜浜ф垨澶栬喘
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡淇℃伅锛岃嚜浜ф垨澶栬喘")]
+        public int materType { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs"
new file mode 100644
index 0000000..5e7f39b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs"
@@ -0,0 +1,34 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    public class dt_stationInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+        /// <summary>
+        /// 琛�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "琛�")]
+        public int Row { get; set; }
+        /// <summary>
+        /// 鍒�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "琛�")]
+        public int Column { get; set; }
+        /// <summary>
+        /// 鎻忚堪淇℃伅
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎻忚堪淇℃伅")]
+        public string msg { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
index 889e3a0..47e5d5a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
@@ -146,7 +146,7 @@
         /// </summary>
         [ImporterHeader(Name = "澶囨敞")]
         [ExporterHeader(DisplayName = "澶囨敞")]
-        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "澶囨敞")]
-        public string Remark { get; set; }
+        [SugarColumn(IsNullable = true,  ColumnDescription = "澶囨敞")]
+        public int Remark { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs"
index 873aba8..3a4d14a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs"
@@ -146,7 +146,7 @@
         /// </summary>
         [ImporterHeader(Name = "澶囨敞")]
         [ExporterHeader(DisplayName = "澶囨敞")]
-        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "澶囨敞")]
-        public string Remark { get; set; }
+        [SugarColumn(IsNullable = true,  ColumnDescription = "澶囨敞")]
+        public int Remark { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs"
index fbdbe5f..16d5c1c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs"
@@ -54,7 +54,7 @@
         /// 澶囨敞
         /// </summary>
         [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
-        public string Remark { get; set; }
+        public int Remark { get; set; }
 
         /// <summary>
         /// 搴撳瓨鏄庣粏
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs"
new file mode 100644
index 0000000..29201de
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs"
@@ -0,0 +1,18 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/Station")]
+    [ApiController]
+    public class StationInfoController : ApiBaseController<Idt_StationinfoService, dt_stationInfo>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public StationInfoController(Idt_StationinfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_stationinfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_stationinfoService.cs"
new file mode 100644
index 0000000..f22a1af
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/dt_stationinfoService.cs"
@@ -0,0 +1,26 @@
+锘縰sing AutoMapper;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_SystemServices
+{
+    public class dt_stationinfoService : ServiceBase<dt_stationInfo, IRepository<dt_stationInfo>>, Idt_StationinfoService
+    {
+        private readonly IMapper _mapper;
+        /// <summary>
+        /// 浠撳偍灞�(鏁版嵁搴撹闂�)
+        /// </summary>
+        public IRepository<dt_stationInfo> Repository => BaseDal;
+        public dt_stationinfoService(IRepository<dt_stationInfo> BaseDal, IMapper mapper) : base(BaseDal)
+        {
+            _mapper = mapper;
+        }
+    }
+}
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 6b81fa8..86b0a6c 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"
@@ -259,7 +259,7 @@
                 }
                 if (workTpe.Equals("In"))
                 {
-                    task = BaseDal.QueryData(v=>v.TaskType==(int)TaskInboundTypeEnum.Inbound && v.TaskState==(int)TaskInStatusEnum.InNew).OrderBy(v=>v.CreateDate).First();
+                    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"))
                 {
@@ -579,6 +579,14 @@
                     stock.Weight = (decimal)weight;
                     stock.StockStatus = (int)stockEnum.Lock;
                     stock.BatchNo = batck.Batch;
+                    if (nawtask.Remark== (int)MateTypeEnum.ZiChan)
+                    {
+                        stock.Remark = (int)MateTypeEnum.ZiChan;
+                    }
+                    else
+                    {
+                        stock.Remark = (int)MateTypeEnum.WaiGou;
+                    }
                     //淇敼璐т綅淇℃伅
                     var location = _locationRepository.QueryFirst(v=>v.LocationCode==nawtask.TargetAddress);
                     location.LocationStatus = (int)LocationStatusEnum.InStock;
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 507f500..03eda49 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"
@@ -15,8 +15,11 @@
 using System.Reflection;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Communicator;
+using WIDESEAWCS_Core.BaseRepository;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_ISystemServices;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
@@ -30,11 +33,21 @@
     public class GZJJob : JobBase, IJob
     {
         private readonly ITaskService _taskService;
+        private readonly Idt_ErrormsginfoService _ErrormsginfoService;
+        private readonly IRepository<dt_stationInfo> _dt_stationInfoRepository;
+        private readonly IRepository<Dt_Task> _dt_taskRepositiry;
+
         WebSocketServer _webSocketServer;
-        public GZJJob(ITaskService taskService, WebSocketServer webSocketServer)
+        public GZJJob(ITaskService taskService, WebSocketServer webSocketServer, Idt_ErrormsginfoService errormsginfoService,
+            Idt_StationinfoService stationinfoService,
+            IRepository<dt_stationInfo> dt_stationInfoRepository,
+            IRepository<Dt_Task> dt_taskRepositiry)
         {
             _taskService = taskService;//娉ㄥ叆
             _webSocketServer = webSocketServer;
+            _ErrormsginfoService = errormsginfoService;
+            _dt_stationInfoRepository = dt_stationInfoRepository;
+            _dt_taskRepositiry = dt_taskRepositiry;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -46,25 +59,80 @@
                 OtherDevice device = (OtherDevice)value;
                 try
                 {
-                    //Example
-                    //device.GetValue  璇诲彇
-                    //device.SetValue  鍐欏叆
-                    //_taskService.Repository; //浠撳偍灞傦紝杩涜鏁版嵁搴撹闂�
-                    OHTReadData oHTReadData = new OHTReadData();
-                    //todo:璇诲彇璁惧鏁版嵁锛�
-
-
-                    //todo:璁惧鐘舵�佹暟鎹彂閫佺粰鍓嶇
-                  
-
+                    #region 鐢熸垚鍏ュ簱浠诲姟
+                    if (!OHTJob.oHTReadData.R_GZJ_isWork)
+                    {
+                        throw new Exception($"瑙勬暣鏈烘姇鍏ヤ娇鐢ㄤ俊鍙蜂负false");
+                    }
+                    Dt_Task task = new Dt_Task();
                     
-                    //WriteInfo(device.DeviceName, "infoLog");
+                    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 = "";
+                        task.Grade = 1;
+                        task.Remark = (int)MateTypeEnum.ZiChan;
+                    }
+                    else 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 = "";
+                        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;
+                    }
+                    else 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 = "";
+                        task.Grade = 1;
+                        task.Remark = (int)MateTypeEnum.WaiGou;
+                    }
+                    else 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 = "";
+                        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;
+                    }
+                    else
+                    {
+                        throw new Exception($"瑙勬暣鏈哄綋鍓嶄俊鍙蜂笉婊¤冻鍏ュ簱浠诲姟鐢熸垚鏉′欢");
+                    }
+                    task.Roadway = "TC01";
+                    task.TaskType = (int)TaskInboundTypeEnum.Inbound;
+                    task.TaskState = (int)TaskInStatusEnum.InNew;
 
-                    //WriteDebug(device.DeviceName, "debugLog");
+                    _dt_taskRepositiry.AddData(task);
+
+                    #endregion
                 }
                 catch (Exception ex)
                 {
-                    WriteError(device.DeviceName, "閿欒", ex);
+                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 2);
                 }
             }
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTEnum.cs"
index 9f464ab..e37d536 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTEnum.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTEnum.cs"
@@ -210,4 +210,102 @@
         #endregion
 
     }
+
+    public enum ZXJDBName 
+    {
+        /// <summary>
+        /// 蹇冭烦
+        /// </summary>
+        [Description("蹇冭烦")]
+        R_ZXJ_HeartBeat,
+        /// <summary>
+        /// 鏁村舰鏈烘姇鍏ヤ娇鐢�
+        /// </summary>
+        [Description("鏁村舰鏈烘姇鍏ヤ娇鐢�")]
+        R_ZXJ_isWork,
+        /// <summary>
+        /// 涓婃枡妯″紡杞ㄩ亾杞�
+        /// </summary>
+        [Description("涓婃枡妯″紡杞ㄩ亾杞�")]
+        R_ZXJ_RGVMode,
+        /// <summary>
+        /// 涓婃枡妯″紡琛岃溅
+        /// </summary>
+        [Description("涓婃枡妯″紡琛岃溅")]
+        R_ZXJ_TCMode,
+        /// <summary>
+        /// 鍓旈櫎鏈彲鍙栨澘
+        /// </summary>
+        [Description("鍓旈櫎鏈彲鍙栨澘")]
+        R_ZXJ_TC_isready,
+        /// <summary>
+        /// 鍓旈櫎妯″紡琛岃溅
+        /// </summary>
+        [Description("鍓旈櫎妯″紡琛岃溅")]
+        R_TCMode_TC,
+        /// <summary>
+        /// 鍓旈櫎妯″紡鍙夎溅
+        /// </summary>
+        [Description("鍓旈櫎妯″紡鍙夎溅")]
+        R_TCMode_CC,
+        /// <summary>
+        /// 琛岃溅鍙噯澶囧彇鏉�
+        /// </summary>
+        [Description("琛岃溅鍙噯澶囧彇鏉�")]
+        R_HC_isReady,
+        /// <summary>
+        /// 琛岃溅鍙斁鏉�
+        /// </summary>
+        [Description("琛岃溅鍙斁鏉�")]
+        R_HC_isReadyWork,
+        /// <summary>
+        /// 杩涙枡灏忚溅瀹夊叏浣�
+        /// </summary>
+        [Description("杩涙枡灏忚溅瀹夊叏浣�")]
+        R_issafe,
+    }
+
+    public enum GZJDBName 
+    {
+        /// <summary>
+        /// 璇昏剦鍐插績璺�
+        /// </summary>
+        [Description("璇昏剦鍐插績璺�")]
+        R_GZJ_HeartBeat,
+        /// <summary>
+        /// 瑙勬暣鏈烘姇鍏ヤ娇鐢�
+        /// </summary>
+        [Description("瑙勬暣鏈烘姇鍏ヤ娇鐢�")]
+        R_GZJ_isWork,
+        /// <summary>
+        /// 涓婃枡妯″紡杞ㄩ亾杞�
+        /// </summary>
+        [Description("涓婃枡妯″紡杞ㄩ亾杞�")]
+        R_RGVMode,
+        /// <summary>
+        /// 涓婃枡妯″紡鍙夎溅
+        /// </summary>
+        [Description("涓婃枡妯″紡鍙夎溅")]
+        R_CCMode,
+        /// <summary>
+        /// 鍓旈櫎涓婃枡妯″紡
+        /// </summary>
+        [Description("鍓旈櫎涓婃枡妯″紡")]
+        R_TCMode,
+        /// <summary>
+        /// 涓滆法鏋跺瓙鍙彇鏉�
+        /// </summary>
+        [Description("涓滆法鏋跺瓙鍙彇鏉�")]
+        R_DK_isready,
+        /// <summary>
+        /// 瑗胯法鏋跺瓙鍙彇鏉�
+        /// </summary>
+        [Description("瑗胯法鏋跺瓙鍙彇鏉�")]
+        R_XK_isready,
+        /// <summary>
+        /// 鍓旈櫎鏋跺瓙鍙彇鏉�
+        /// </summary>
+        [Description("鍓旈櫎鏋跺瓙鍙彇鏉�")]
+        R_TC_isready,
+    }
 }
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 c711023..6c11c06 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"
@@ -33,6 +33,7 @@
     public class OHTJob : JobBase, IJob
     {
         public static string InorOut = "In";
+        public static OHTReadData oHTReadData = new OHTReadData();
         private readonly ITaskService _taskService;
         private readonly Idt_ErrormsginfoService _ErrormsginfoService;
         WebSocketServer _webSocketServer;
@@ -48,54 +49,18 @@
             bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
             if (flag && value != null)
             {
-                var ohdevice =Storage.Devices.Find(v=>v.DeviceName== "闃虫瀬鏁村舰鏈�");
+                //澶╄溅PLC瀵硅薄
                 OtherDevice device = (OtherDevice)value;
+                //鏁村舰鏈篜LC瀵硅薄
+                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;
+                }
                 try
                 {
-                    //Example
-                    //device.GetValue  璇诲彇
-                    //device.SetValue  鍐欏叆
-                    //_taskService.Repository; //浠撳偍灞傦紝杩涜鏁版嵁搴撹闂�
-                    OHTReadData oHTReadData = new OHTReadData();
-                    
-                    #region 璇诲彇澶╄溅璁惧鏁版嵁
-                    oHTReadData.R_HeartBeat = device.GetValue<DeviceDBName, bool>(DeviceDBName.R_HeartBeat);
-                    oHTReadData.R_RunMode = device.GetValue<DeviceDBName, short>(DeviceDBName.R_RunMode);
-                    oHTReadData.R_RunState = device.GetValue<DeviceDBName, short>(DeviceDBName.R_RunState);
-                    oHTReadData.R_AlarmCode = device.GetValue<DeviceDBName, short>(DeviceDBName.R_AlarmCode);
-                    oHTReadData.R_TaskState = device.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState);
-                    oHTReadData.R_CurrentLine = device.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentLine);
-                    oHTReadData.R_CurrentColumn = device.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentColumn);
-                    oHTReadData.R_RiseUp_Position = device.GetValue<DeviceDBName, int>(DeviceDBName.R_RiseUp_Position);
-                    oHTReadData.R_TaskNumber = device.GetValue<DeviceDBName, int>(DeviceDBName.R_TaskNumber);
-                    oHTReadData.R_Loaded_1 = device.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_1);
-                    oHTReadData.R_Loaded_2 = device.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_2);
-                    oHTReadData.weight = device.GetValue<DeviceDBName, float>(DeviceDBName.weight);
-                    
-                    #region 娴嬭瘯鐢�
-                    //oHTReadData.R_HeartBeat = 1;
-                    //oHTReadData.R_RunMode = 2;
-                    //oHTReadData.R_RunState = 3;
-                    //oHTReadData.R_AlarmCode = 4;
-                    //oHTReadData.R_TaskState = 5;
-                    //oHTReadData.R_CurrentLine = 6;
-                    //oHTReadData.R_CurrentColumn = 7;
-                    //oHTReadData.R_RiseUp_Position = 8;
-                    //oHTReadData.R_TaskNumber = 9;
-                    //oHTReadData.R_Loaded_1 =10;
-                    //oHTReadData.R_Loaded_2 = 11;
-                    //oHTReadData.R_Code_1 = "12";
-                    //oHTReadData.R_Code_2 = "13";
-                    //oHTReadData.R_Load_Requst_1 =true;
-                    //oHTReadData.R_Load_Requst_2 = false;
-                    #endregion
-
-                    #endregion
-
-                    //鐘舵�佹暟鎹彂閫佺粰鍓嶇
-                    string ohtData = JsonConvert.SerializeObject(oHTReadData);
-                    _webSocketServer.PublishAllClientPayload(ohtData);
-
                     #region 澶╄溅瀹屾垚浠诲姟閫昏緫
                     //鍥犱负澶╃殑浠诲姟闇�瑕佸垎娈靛彂閫侊紝鎵�浠ュ彇璐у畬鎴愪笌鏀捐揣瀹屾垚闇�瑕佸崟鐙仛閫昏緫鎺у埗
                     //鍒ゆ柇澶╄溅褰撳墠鏈夋病鏈夊彇璐у畬鎴愪换鍔′俊鍙�
@@ -186,7 +151,6 @@
                 catch (Exception ex)
                 {
                     _ErrormsginfoService.UpdateErrorMsg(ex.Message,1);
-                    //WriteError(device.DeviceName, "閿欒", ex);
                 }
             }
             return Task.CompletedTask;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTReadData.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTReadData.cs"
index 5b06aa7..e8163ff 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTReadData.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/OHT/OHTReadData.cs"
@@ -64,10 +64,88 @@
         public short R_Loaded_2 { get; set; }
 
         /// <summary>
-        /// 1鍙疯揣鐖壂鐮佺粨鏋�
+        /// 閲嶉噺
         /// </summary>
         public float weight { get; set; }
 
- 
+
+        #region 瑙勬暣鏈篜LC瀹氫箟
+        /// <summary>
+        /// 璇昏剦鍐插績璺�
+        /// </summary>
+        public bool R_GZJ_HeartBeat { get; set; }
+        /// <summary>
+        /// 瑙勬暣鏈烘姇鍏ヤ娇鐢�
+        /// </summary>
+        public bool R_GZJ_isWork { get; set; }
+        /// <summary>
+        /// 涓婃枡妯″紡杞ㄩ亾杞�
+        /// </summary>
+        public bool R_RGVMode { get; set; }
+        /// <summary>
+        /// 涓婃枡妯″紡鍙夎溅
+        /// </summary>
+        public bool R_CCMode { get; set; }
+        /// <summary>
+        /// 鍓旈櫎涓婃枡妯″紡
+        /// </summary>
+        public bool R_TCMode { get; set; }
+        /// <summary>
+        /// 涓滆法鏋跺瓙鍙彇鏉�
+        /// </summary>
+        public bool R_DK_isready { get; set; }
+        /// <summary>
+        /// 瑗胯法鏋跺瓙鍙彇鏉�
+        /// </summary>
+        public bool R_XK_isready { get; set; }
+        /// <summary>
+        /// 鍓旈櫎鏋跺瓙鍙彇鏉�
+        /// </summary>
+        public bool R_TC_isready { get; set; }
+        #endregion
+
+        #region 鏁村舰鏈篜LC瀹氫箟
+        /// <summary>
+        /// 璇昏剦鍐蹭俊鍙�
+        /// </summary>
+        public bool R_ZXJ_HeartBeat { get; set; }
+        /// <summary>
+        /// 鏁村舰鏈烘姇鍏ヤ娇鐢�
+        /// </summary>
+        public bool R_ZXJ_isWork { get; set; }
+        /// <summary>
+        /// 涓婃枡妯″紡杞ㄩ亾杞�
+        /// </summary>
+        public bool R_ZXJ_RGVMode { get; set; }
+        /// <summary>
+        /// 涓婃枡妯″紡琛岃溅
+        /// </summary>
+        public bool R_ZXJ_TCMode { get; set; }
+        /// <summary>
+        /// 鍓旈櫎鏈彲鍙栨澘
+        /// </summary>
+        public bool R_ZXJ_TC_isready { get; set; }
+        /// <summary>
+        /// 鍓旈櫎妯″紡琛岃溅
+        /// </summary>
+        public bool R_TCMode_TC { get; set; }
+        /// <summary>
+        /// 鍓旈櫎妯″紡鍙夎溅
+        /// </summary>
+        public bool R_TCMode_CC { get; set; }
+        /// <summary>
+        /// 琛岃溅鍙噯澶囧彇鏉�
+        /// </summary>
+        public bool R_HC_isReady { get; set; }
+        /// <summary>
+        /// 琛岃溅鍙斁鏉�
+        /// </summary>
+        public bool R_HC_isReadyWork { get; set; }
+        /// <summary>
+        /// 杩涙枡灏忚溅瀹夊叏浣�
+        /// </summary>
+        public bool R_issafe { get; set; }
+        #endregion
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs"
index 4be4e95..c3ffe0e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ZXJ/ZXJJob.cs"
@@ -17,6 +17,7 @@
 using System.Threading.Tasks;
 using WIDESEAWCS_Communicator;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_ISystemServices;
 using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
 using WIDESEAWCS_QuartzJob;
@@ -31,10 +32,12 @@
     {
         private readonly ITaskService _taskService;
         WebSocketServer _webSocketServer;
-        public ZXJJob(ITaskService taskService, WebSocketServer webSocketServer)
+        private readonly Idt_ErrormsginfoService _ErrormsginfoService;
+        public ZXJJob(ITaskService taskService, WebSocketServer webSocketServer,Idt_ErrormsginfoService errormsginfoService)
         {
             _taskService = taskService;//娉ㄥ叆
             _webSocketServer = webSocketServer;
+            _ErrormsginfoService = errormsginfoService;
         }
 
         public Task Execute(IJobExecutionContext context)
@@ -43,32 +46,84 @@
             bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
             if (flag && value != null)
             {
-                OtherDevice device = (OtherDevice)value;
+                
                 try
                 {
-                    //Example
-                    //device.GetValue  璇诲彇
-                    //device.SetValue  鍐欏叆
-                    //_taskService.Repository; //浠撳偍灞傦紝杩涜鏁版嵁搴撹闂�
-                    OHTReadData oHTReadData = new OHTReadData();
-                    //todo:璇诲彇璁惧鏁版嵁锛�
-
-
-                    //todo:璁惧鐘舵�佹暟鎹彂閫佺粰鍓嶇
-                  
-
-                    
-                    //WriteInfo(device.DeviceName, "infoLog");
-
-                    //WriteDebug(device.DeviceName, "debugLog");
+                    //澶╄溅PLC瀵硅薄
+                    OtherDevice TCevice = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "澶╄溅");
+                    if (TCevice.Communicator.IsConnected)
+                    {
+                        #region 璇诲彇澶╄溅璁惧鏁版嵁
+                        OHTJob.oHTReadData.R_HeartBeat = TCevice.GetValue<DeviceDBName, bool>(DeviceDBName.R_HeartBeat);
+                        OHTJob.oHTReadData.R_RunMode = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_RunMode);
+                        OHTJob.oHTReadData.R_RunState = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_RunState);
+                        OHTJob.oHTReadData.R_AlarmCode = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_AlarmCode);
+                        OHTJob.oHTReadData.R_TaskState = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_TaskState);
+                        OHTJob.oHTReadData.R_CurrentLine = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentLine);
+                        OHTJob.oHTReadData.R_CurrentColumn = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_CurrentColumn);
+                        OHTJob.oHTReadData.R_RiseUp_Position = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_RiseUp_Position);
+                        OHTJob.oHTReadData.R_TaskNumber = TCevice.GetValue<DeviceDBName, int>(DeviceDBName.R_TaskNumber);
+                        OHTJob.oHTReadData.R_Loaded_1 = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_1);
+                        OHTJob.oHTReadData.R_Loaded_2 = TCevice.GetValue<DeviceDBName, short>(DeviceDBName.R_Loaded_2);
+                        OHTJob.oHTReadData.weight = TCevice.GetValue<DeviceDBName, float>(DeviceDBName.weight);
+                        #endregion
+                    }
+                    else
+                    {
+                        throw new Exception($"澶╄溅PLC杩炴帴澶辫触");
+                    }
+                    //鏁村舰鏈篜LC瀵硅薄
+                    OtherDevice device = (OtherDevice)value;
+                    if (device.Communicator.IsConnected)
+                    {
+                        #region 璇诲彇鏁村舰鏈鸿澶囨暟鎹�
+                        OHTJob.oHTReadData.R_ZXJ_HeartBeat = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_HeartBeat);
+                        OHTJob.oHTReadData.R_ZXJ_isWork = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_isWork);
+                        OHTJob.oHTReadData.R_ZXJ_RGVMode = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_RGVMode);
+                        OHTJob.oHTReadData.R_ZXJ_TCMode = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_TCMode);
+                        OHTJob.oHTReadData.R_ZXJ_TC_isready = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_ZXJ_TC_isready);
+                        OHTJob.oHTReadData.R_TCMode_TC = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_TCMode_TC);
+                        OHTJob.oHTReadData.R_TCMode_CC = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_TCMode_CC);
+                        OHTJob.oHTReadData.R_HC_isReady = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_HC_isReady);
+                        OHTJob.oHTReadData.R_HC_isReadyWork = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_HC_isReadyWork);
+                        OHTJob.oHTReadData.R_issafe = device.GetValue<ZXJDBName, bool>(ZXJDBName.R_issafe);
+                        #endregion
+                    }
+                    else
+                    {
+                        throw new Exception($"鏁村舰鏈篜LC杩炴帴澶辫触");
+                    }
+                    //瑙勬暣鏈篜LC瀵硅薄
+                    OtherDevice GZJevice = (OtherDevice)Storage.Devices.Find(v => v.DeviceName == "闃虫瀬瑙勬暣鏈�");
+                    if (GZJevice.Communicator.IsConnected)
+                    {
+                        #region 璇诲彇瑙勬暣鏈鸿澶囨暟鎹�
+                        OHTJob.oHTReadData.R_ZXJ_HeartBeat = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_GZJ_HeartBeat);
+                        OHTJob.oHTReadData.R_GZJ_isWork = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_GZJ_isWork);
+                        OHTJob.oHTReadData.R_RGVMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_RGVMode);
+                        OHTJob.oHTReadData.R_CCMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_CCMode);
+                        OHTJob.oHTReadData.R_TCMode = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_TCMode);
+                        OHTJob.oHTReadData.R_DK_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_DK_isready);
+                        OHTJob.oHTReadData.R_XK_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_XK_isready);
+                        OHTJob.oHTReadData.R_TC_isready = GZJevice.GetValue<GZJDBName, bool>(GZJDBName.R_TC_isready);
+                        #endregion
+                    }
+                    else
+                    {
+                        throw new Exception($"瑙勬暣鏈篜LC杩炴帴澶辫触");
+                    }
+                    //鐘舵�佹暟鎹彂閫佺粰鍓嶇
+                    string ohtData = JsonConvert.SerializeObject(OHTJob.oHTReadData);
+                    _webSocketServer.PublishAllClientPayload(ohtData);
                 }
                 catch (Exception ex)
                 {
-                    WriteError(device.DeviceName, "閿欒", ex);
+                    //鐘舵�佹暟鎹彂閫佺粰鍓嶇
+                    string ohtData = JsonConvert.SerializeObject(OHTJob.oHTReadData);
+                    _webSocketServer.PublishAllClientPayload(ohtData);
+                    _ErrormsginfoService.UpdateErrorMsg(ex.Message, 1);
                 }
             }
-
-
             return Task.CompletedTask;
         }
 
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
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/\347\224\265\346\216\247\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/\347\224\265\346\216\247\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..0b4baa4
--- /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/\347\224\265\346\216\247\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