From eaa7c0d999c6dd7901bf4f0de79b861eae38e978 Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <huangxiaoqiang@hnkhzn.com>
Date: 星期三, 08 十月 2025 22:51:28 +0800
Subject: [PATCH] 代码提交

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                               |  158 +++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/AGVTaskService.cs                        |   72 +
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue                         |    5 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-wal      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DeleteLog/CommonDeleteLogJob.cs                            |    3 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerStationCrane.cs       |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskCommand.cs                 |    8 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs                                 |   55 -
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs                                 |   15 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db          |    0 
 项目代码/WCS/WIDESEAWCS_Server/LogLibrary/Log/LogFactory.cs                                                |   58 +
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db     |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                        |  330 ++-----
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-wal |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs              |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Dt_StationManagerService.cs                     |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AgvRespone.cs                                            |   15 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs                   |  524 -------------
 项目代码/WCS/WIDESEAWCS_Server/LogLibrary/LogLibrary.csproj                                                |   15 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs                      |   24 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs                                |   48 -
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj                |    1 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json                               |   19 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db          |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AGVReceiveDTO.cs                                         |   21 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json                        |   66 -
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs                   |  216 +++--
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs                |    2 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/SendTask.cs                                              |   59 +
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-shm      |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs                          |  246 ++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln                                                       |    6 
 /dev/null                                                                                              |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs                      |   37 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db     |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                   |  116 --
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs                        |   13 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs                                |  106 ++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs                              |    8 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RGV/CommonRGV.cs                                       |    2 
 41 files changed, 1,049 insertions(+), 1,205 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db"
index 11f98ef..5c821de 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-shm"
similarity index 81%
copy from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm"
copy to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-shm"
index 793b659..6e0873e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-wal"
new file mode 100644
index 0000000..16bef28
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/CodeChunks.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db"
index cadfb4b..307c3fc 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm"
similarity index 82%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm"
index 793b659..e01d73a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-wal"
new file mode 100644
index 0000000..4bce6a1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.13.441.19478/SemanticSymbols.db-wal"
Binary files differ
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 bdd9821..283f687 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,72 +3,40 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\deletelog\\commondeletelogjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\deletelog\\commondeletelogjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agvjob\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agvjob\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\taskinfo\\dt_task.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\elevatordbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\elevatordbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
       "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\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|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_signalr\\hub\\simplehub.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|solutionrelative:wideseawcs_signalr\\hub\\simplehub.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\common\\commonstackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_signalr\\service\\inoticeservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|solutionrelative:wideseawcs_signalr\\service\\inoticeservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_signalr\\hub\\isimplehub.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|solutionrelative:wideseawcs_signalr\\hub\\isimplehub.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customprofile.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{5777BDEC-4726-4425-85F2-A090524F692D}|WIDESEAWCS_SystemRepository\\WIDESEAWCS_SystemRepository.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_systemrepository\\sys_menurepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{5777BDEC-4726-4425-85F2-A090524F692D}|WIDESEAWCS_SystemRepository\\WIDESEAWCS_SystemRepository.csproj|solutionrelative:wideseawcs_systemrepository\\sys_menurepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_signalr\\globalusing.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{59D26679-7299-4251-A58E-3AC3C6FA717E}|WIDESEAWCS_SignalR\\WIDESEAWCS_SignalR.csproj|solutionrelative:wideseawcs_signalr\\globalusing.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobhostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\jobsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_core\\extensions\\autofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\autofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\sqlsugarsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\models\\dt_deviceinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\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}"
     }
   ],
   "DocumentGroupContainers": [
@@ -78,69 +46,111 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 1,
+          "SelectedChildIndex": 5,
           "Children": [
             {
               "$type": "Document",
               "DocumentIndex": 2,
-              "Title": "Dt_Task.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\TaskInfo\\Dt_Task.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAlAAAAAAAAAA==",
+              "Title": "ElevatorDBName.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "ViewState": "AgIAABUAAAAAAAAAAAAywDMAAAAbAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-24T01:54:03.606Z",
+              "WhenOpened": "2025-10-08T14:21:39.829Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "ConveyorLineDBName.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "ViewState": "AgIAAE8AAAAAAAAAAADwv1kAAAAQAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T14:11:12.19Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "CommonElevatorJob.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvx8AAAAeAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T13:53:47.304Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "TaskController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAABJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T13:27:06.033Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "AGVSignal.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "ViewState": "AgIAABEAAAAAAAAAAAAAABUAAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T12:48:40.39Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
               "DocumentIndex": 0,
-              "Title": "CommonDeleteLogJob.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\DeleteLog\\CommonDeleteLogJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\DeleteLog\\CommonDeleteLogJob.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\DeleteLog\\CommonDeleteLogJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\DeleteLog\\CommonDeleteLogJob.cs",
-              "ViewState": "AgIAABYAAAAAAAAAAAAcwEUAAAAZAAAAAAAAAA==",
+              "Title": "AGVController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "ViewState": "AgIAABAAAAAAAAAAAAAuwCAAAABbAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-24T01:29:52.9Z",
+              "WhenOpened": "2025-10-08T12:45:04.877Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 9,
-              "Title": "CustomProfile.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAADwvxYAAAArAAAAAAAAAA==",
+              "DocumentIndex": 7,
+              "Title": "AGVTaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "ViewState": "AgIAACUAAAAAAAAAAAAcwDQAAAA3AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T09:20:35.273Z"
+              "WhenOpened": "2025-10-08T08:13:55.933Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 10,
-              "Title": "Sys_MenuRepository.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "ViewState": "AgIAAB0AAAAAAAAAAAAAAB4AAABFAAAAAAAAAA==",
+              "DocumentIndex": 8,
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ViewState": "AgIAABwDAAAAAAAAAAAAwCgDAAAhAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T09:17:11.269Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 5,
-              "Title": "SimpleHub.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\Hub\\SimpleHub.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SignalR\\Hub\\SimpleHub.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\Hub\\SimpleHub.cs",
-              "RelativeToolTip": "WIDESEAWCS_SignalR\\Hub\\SimpleHub.cs",
-              "ViewState": "AgIAAA0AAAAAAAAAAAAxwBwAAAATAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T09:15:05.652Z"
+              "WhenOpened": "2025-09-25T03:21:17.498Z",
+              "EditorCaption": ""
             },
             {
               "$type": "Document",
@@ -150,144 +160,10 @@
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ViewState": "AgIAAJoBAAAAAAAAAAAIwE0BAAARAAAAAAAAAA==",
+              "ViewState": "AgIAANwAAAAAAAAAAAAIwP0AAABmAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T08:10:30.228Z",
+              "WhenOpened": "2025-10-08T02:55:34.719Z",
               "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "INoticeService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\Service\\INoticeService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SignalR\\Service\\INoticeService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\Service\\INoticeService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SignalR\\Service\\INoticeService.cs",
-              "ViewState": "AgIAABsAAAAAAAAAAAAiwCwAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T07:42:56.362Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "CommonConveyorLineJob.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ViewState": "AgIAAB4AAAAAAAAAAAAAAC0AAABPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T07:04:33.408Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
-              "Title": "ISimpleHub.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\Hub\\ISimpleHub.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SignalR\\Hub\\ISimpleHub.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\Hub\\ISimpleHub.cs",
-              "RelativeToolTip": "WIDESEAWCS_SignalR\\Hub\\ISimpleHub.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T09:25:19.161Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 14,
-              "Title": "AutofacModuleRegister.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "ViewState": "AgIAAAwAAAAAAAAAAAAAAEQAAAAmAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T07:40:03.34Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "Program.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
-              "ViewState": "AgIAAA8AAAAAAAAAAAAAACoAAAAlAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T07:37:22.784Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
-              "Title": "CommonStackerCrane.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "ViewState": "AgIAANsAAAAAAAAAAAAqwPUAAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T09:27:50.227Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
-              "Title": "QuartzJobHostedService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "ViewState": "AgIAACYAAAAAAAAAAAAowD0AAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T08:04:20.937Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "GlobalUsing.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\GlobalUsing.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SignalR\\GlobalUsing.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SignalR\\GlobalUsing.cs",
-              "RelativeToolTip": "WIDESEAWCS_SignalR\\GlobalUsing.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T09:02:55.551Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 13,
-              "Title": "JobSetup.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAuwCYAAAA5AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T07:07:37.223Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 15,
-              "Title": "SqlsugarSetup.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "ViewState": "AgIAABcAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T07:34:36.863Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 16,
-              "Title": "Dt_DeviceInfo.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "ViewState": "AgIAAGQAAAAAAAAAAAAUwHYAAAAnAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-23T07:03:49.846Z"
             }
           ]
         }
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 530d9d5..39370b6 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,8 +3,40 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\commonconveyorlinejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\agv\\agvcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\task\\taskcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\commonstackercranejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\elevatordbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\elevatordbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\agvjob\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\agvjob\\agvsignal.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\conveyorlinejob\\conveyorlinedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\elevatorjob\\commonelevatorjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\partial\\agvtaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\get\\duiduojiliku\\\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}"
     }
   ],
   "DocumentGroupContainers": [
@@ -14,19 +46,123 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 0,
+          "SelectedChildIndex": 4,
           "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "CommonConveyorLineJob.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ViewState": "AgIAAD4CAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
+              "DocumentIndex": 3,
+              "Title": "ElevatorDBName.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\ElevatorDBName.cs",
+              "ViewState": "AgIAADIAAAAAAAAAAAAswEwAAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-24T05:55:47.05Z",
+              "WhenOpened": "2025-10-08T14:21:39.829Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "CommonElevatorJob.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ElevatorJob\\CommonElevatorJob.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvx8AAAAeAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T13:53:47.304Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "TaskController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAABJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T13:27:06.033Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "AGVSignal.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\AGVJob\\AGVSignal.cs",
+              "ViewState": "AgIAABEAAAAAAAAAAAAAABUAAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T12:48:40.39Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "AGVController.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\AGV\\AGVController.cs",
+              "ViewState": "AgIAABsAAAAAAAAAAADwvzkAAAA2AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T12:45:04.877Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "AGVTaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\Partial\\AGVTaskService.cs",
+              "ViewState": "AgIAACUAAAAAAAAAAAAcwDQAAAA3AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T08:13:55.933Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ViewState": "AgIAABwDAAAAAAAAAAAAwCgDAAAhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-09-25T03:21:17.498Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "CommonStackerCraneJob.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
+              "ViewState": "AgIAANwAAAAAAAAAAAAIwP0AAABhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T02:55:34.719Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "ConveyorLineDBName.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "ViewState": "AgIAAE8AAAAAAAAAAADwv1kAAAAQAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-10-08T14:11:12.19Z",
               "EditorCaption": ""
             }
           ]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/LogLibrary/Log/LogFactory.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/LogLibrary/Log/LogFactory.cs"
new file mode 100644
index 0000000..d3e3564
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/LogLibrary/Log/LogFactory.cs"
@@ -0,0 +1,58 @@
+锘縰sing HslCommunication;
+using System.Text;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.LogHelper;
+
+namespace LogLibrary.Log
+{
+    public class LogFactory
+    {
+        public void WriteDebug(string fileName, string msg)
+        {
+            if (AppSettings.app(new string[] { "LogDeubgEnable" }).ObjToBool())
+            {
+                StringBuilder builder = new StringBuilder(msg);
+                builder.Append(Environment.NewLine);
+                builder.Append(Environment.NewLine);
+                QuartzLogger.WriteLogToFile($"Debug_{fileName}", builder.ToString());
+            }
+        }
+
+        public static void WriteInfo(string fileName, string msg)
+        {
+            StringBuilder builder = new StringBuilder(msg);
+            builder.Append(Environment.NewLine);
+            builder.Append(Environment.NewLine);
+            QuartzLogger.WriteLogToFile($"Info_{fileName}", builder.ToString());
+        }
+        public static void WriteError(string fileName, string msg)
+        {
+            StringBuilder builder = new StringBuilder(msg);
+            builder.Append(Environment.NewLine);
+            builder.Append(Environment.NewLine);
+            QuartzLogger.WriteLogToFile($"Error_{fileName}", builder.ToString());
+        }
+        public static void WriteError(string fileName, string msg, Exception ex)
+        {
+            StringBuilder builder = new StringBuilder(msg);
+            builder.Append(Environment.NewLine);
+            builder.Append(StringResources.Language.ExceptionMessage);
+            builder.Append(ex.Message);
+            builder.Append(Environment.NewLine);
+            builder.Append(StringResources.Language.ExceptionSource);
+            builder.Append(ex.Source);
+            builder.Append(Environment.NewLine);
+            builder.Append(StringResources.Language.ExceptionStackTrace);
+            builder.Append(ex.StackTrace);
+            builder.Append(Environment.NewLine);
+            builder.Append(StringResources.Language.ExceptionType);
+            builder.Append(ex.GetType().ToString());
+            builder.Append(Environment.NewLine);
+            builder.Append(StringResources.Language.ExceptionTargetSite);
+            builder.Append(ex.TargetSite?.ToString());
+            builder.Append(Environment.NewLine);
+            builder.Append(Environment.NewLine);
+            QuartzLogger.WriteLogToFile($"Error_{fileName}", builder.ToString());
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/LogLibrary/LogLibrary.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/LogLibrary/LogLibrary.csproj"
new file mode 100644
index 0000000..d406f1b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/LogLibrary/LogLibrary.csproj"
@@ -0,0 +1,15 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_Core\WIDESEAWCS_Core.csproj" />
+    <ProjectReference Include="..\WIDESEAWCS_QuartzJob\WIDESEAWCS_QuartzJob.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Dt_StationManagerService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Dt_StationManagerService.cs"
index 971dca0..233d651 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Dt_StationManagerService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/Dt_StationManagerService.cs"
@@ -53,7 +53,7 @@
 
         public List<Dt_StationManager> GetAllStationByDeviceCode(string DeviceCode)
         {
-            return BaseDal.QueryData(x => x.stationPLC == DeviceCode && x.stationStatus == "1").ToList();
+            return BaseDal.QueryData(x => x.stationDeviceCode == DeviceCode && x.stationStatus == "1").ToList();
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs"
index 54b30c0..b477a12 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs"
@@ -15,7 +15,7 @@
 
         public const string WCSIP_BASE = "WCSIPAddress";
 
-        public const string MOMIP_BASE = "MOMIP_BASE";
+        public const string AGVIP_BASE = "AGVIPBASE";
 
         /// <summary>
         /// 璇锋眰浠诲姟
@@ -39,52 +39,10 @@
         public const string CompleteTask = "CompleteTask";
 
         /// <summary>
-        /// 璇锋眰绌烘墭鐩樹换鍔�
+        /// AGV浠诲姟涓嬪彂
         /// </summary>
-        public const string RequestTrayInTask = "RequestTrayInTask";
+        public const string SendAGVTask = "SendAGVTask";
 
-        /// <summary>
-        /// 绌烘墭鐩樺疄鐩樺嚭搴撲换鍔�
-        /// </summary>
-        public const string RequestTrayOutTask = "RequestTrayOutTask";
 
-        public const string RequestInTask = "RequestInTask";
-
-        public const string RequestFlow = "RequestFlow";
-
-        /// <summary>
-        /// 鏁寸洏鐢佃姱鑾峰彇
-        /// </summary>
-        public const string TrayCellsStatus = "TrayCellsStatus";
-
-        /// <summary>
-        /// 甯告俯琛ョ┖鎵樼洏鑷冲垎瀹�
-        /// </summary>
-        public const string GetFROutTrayToCW = "GetFROutTrayToCW";
-
-        /// <summary>
-        /// 甯告俯3 鍑哄簱鑷冲寘瑁�
-        /// </summary>
-        public const string RequestOutTaskToBZ = "RequestOutTaskToBZ";
-
-        /// <summary>
-        /// 闈欑疆NG鍏ュ簱
-        /// </summary>
-        public const string RequestInBoundTaskNG = "RequestInBoundTaskNG";
-
-        /// <summary>
-        /// 闈欑疆NG鍏ュ簱绔欏彴
-        /// </summary>
-        public const string JZNGInBoundStation = "JZNGInBoundStation";
-
-        /// <summary>
-        /// 鍒嗗绌烘鍏ュ簱鏀逛负鐩存帴鍑哄簱
-        /// </summary>
-        public const string SetEmptyOutbyInToOutAsync = "SetEmptyOutbyInToOutAsync"; 
-
-        /// <summary>
-        /// 鍒嗗绌烘鍑哄簱鏀逛负鐩存帴鍑哄簱
-        /// </summary>
-        public const string SetEmptyOutbyInToOutOneAsync = "SetEmptyOutbyInToOutOneAsync";
     }
 }
\ No newline at end of file
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 c441160..af2230f 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"
@@ -15,41 +15,71 @@
         [Description("鏂板缓鍏ュ簱浠诲姟")]
         InNew = 200,
 
-        ///// <summary>
-        ///// AGV鍏ュ簱鎵ц涓�
-        ///// </summary>
-        //[Description("AGV鍏ュ簱鎵ц涓�")]
-        //AGV_InExecuting = 210,
+        /// <summary>
+        /// AGV鍏ュ簱鎵ц涓�
+        /// </summary>
+        [Description("AGV鍏ュ簱鎵ц涓�")]
+        AGV_InExecuting = 210,
 
-        ///// <summary>
-        ///// AGV鍏ュ簱瀹屾垚
-        ///// </summary>
-        //[Description("AGV鎼繍瀹屾垚")]
-        //AGV_InFinish = 215,
+        /// <summary>
+        /// AGV鍏ュ簱瀹屾垚
+        /// </summary>
+        [Description("AGV鎼繍瀹屾垚")]
+        AGV_InFinish = 215,
+
+        /// <summary>
+        /// AGV绛夊緟鍙栬揣
+        /// </summary>
+        [Description("鎻愬崌鏈虹瓑寰匒GV鏀捐揣")]
+        Elevator_AGVWaitPut = 220,
+
+        /// <summary>
+        /// 鎻愬崌鏈哄叆搴撴墽琛屼腑
+        /// </summary>
+        [Description("鎻愬崌鏈哄叆搴撴墽琛屼腑")]
+        Elevator_InExecuting = 225,
+
+        /// <summary>
+        /// 鎻愬崌鏈哄叆搴撳畬鎴�
+        /// </summary>
+        [Description("鎻愬崌鏈哄叆搴撳畬鎴�")]
+        Elevator_InFinish = 230,
+
+        /// <summary>
+        /// AGV绛夊緟鍙栬揣
+        /// </summary>
+        [Description("鎻愬崌鏈虹瓑寰匒GV鍙栬揣")]
+        Elevator_AGVWaitPickUp = 235,
+
+        /// <summary>
+        /// AGV绛夊緟鍙栬揣
+        /// </summary>
+        [Description("杈撻�佺嚎绛夊緟AGV鍙栬揣")]
+        Line_AGVWaitPickUp = 240,
 
         /// <summary>
         /// 杈撻�佺嚎鍏ュ簱鎵ц涓�
         /// </summary>
         [Description("杈撻�佺嚎鍏ュ簱鎵ц涓�")]
-        Line_InExecuting = 220,
+        Line_InExecuting = 240,
 
         /// <summary>
         /// 杈撻�佺嚎鍏ュ簱瀹屾垚
         /// </summary>
-        [Description("杈撻�佺嚎杈撻�佸畬鎴�")]
-        Line_InFinish = 225,
+        [Description("杈撻�佺嚎鍏ュ簱瀹屾垚")]
+        Line_InFinish = 245,
 
         /// <summary>
         /// 鍫嗗灈鏈哄叆搴撴墽琛屼腑
         /// </summary>
         [Description("鍫嗗灈鏈哄叆搴撴墽琛屼腑")]
-        SC_InExecuting = 230,
+        SC_InExecuting = 250,
 
         /// <summary>
         /// 鍫嗗灈鏈哄叆搴撳畬鎴�
         /// </summary>
         [Description("鍫嗗灈鏈哄叆搴撳畬鎴�")]
-        SC_InFinish = 235,
+        SC_InFinish = 255,
 
         /// <summary>
         /// 鍏ュ簱浠诲姟瀹屾垚
@@ -105,20 +135,44 @@
         /// <summary>
         /// 杈撻�佺嚎鍑哄簱瀹屾垚
         /// </summary>
-        [Description("杈撻�佺嚎杈撻�佸畬鎴�")]
+        [Description("杈撻�佺嚎鍑哄簱瀹屾垚")]
         Line_OutFinish = 125,
 
-        ///// <summary>
-        ///// AGV鍑哄簱鎵ц涓�
-        ///// </summary>
-        //[Description("AGV鍑哄簱鎵ц涓�")]
-        //AGV_OutExecuting = 130,
+        /// <summary>
+        /// 杈撻�佺嚎绛夊緟AGV鍙栬揣
+        /// </summary>
+        [Description("杈撻�佺嚎绛夊緟AGV鍙栬揣")]
+        Line_AGVWaitPickUp = 130,
 
-        ///// <summary>
-        ///// AGV鍑哄簱瀹屾垚
-        ///// </summary>
-        //[Description("AGV鎼繍瀹屾垚")]
-        //AGV_OutFinish = 135,
+        /// <summary>
+        /// AGV鍑哄簱鎵ц涓�
+        /// </summary>
+        [Description("AGV鍑哄簱鎵ц涓�")]
+        AGV_OutExecuting = 135,
+
+        /// <summary>
+        /// AGV鍑哄簱瀹屾垚
+        /// </summary>
+        [Description("AGV鎼繍瀹屾垚")]
+        AGV_OutFinish = 140,
+
+        /// <summary>
+        /// 鎻愬崌鏈烘墽琛屼腑
+        /// </summary>
+        [Description("鎻愬崌鏈烘墽琛屼腑")]
+        Elevator_OutExecuting = 145,
+
+        /// <summary>
+        /// 鎻愬崌鏈哄畬鎴�
+        /// </summary>
+        [Description("鎻愬崌鏈哄嚭搴撳畬鎴�")]
+        Elevator_OutFinish = 150,
+
+        /// <summary>
+        /// AGV绛夊緟鍙栬揣
+        /// </summary>
+        [Description("鎻愬崌鏈虹瓑寰匒GV鍙栬揣")]
+        Elevator_AGVWaitPickUp = 155,
 
         /// <summary>
         /// 鍑哄簱浠诲姟瀹屾垚
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AGVReceiveDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AGVReceiveDTO.cs"
new file mode 100644
index 0000000..8f7f370
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AGVReceiveDTO.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.AGV
+{
+    public class AGVReceiveDTO
+    {
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        public int TaskNum { get; set; }
+
+        /// <summary>
+        /// 鐘舵�侊細 PutFinish鏀捐揣瀹屾垚銆丳ickUpFinish鍙栬揣瀹屾垚銆丷equestPickUp璇锋眰鍙栬揣銆丷equestPut璇锋眰鏀捐揣
+        /// </summary>
+        public string Status { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AgvRespone.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AgvRespone.cs"
new file mode 100644
index 0000000..03bf861
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/AgvRespone.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.AGV
+{
+    public class AgvRespone
+    {
+        public int code { get; set; }
+        public string data { get; set; }
+        public string desc { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/SendTask.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/SendTask.cs"
new file mode 100644
index 0000000..77d6d93
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/AGV/SendTask.cs"
@@ -0,0 +1,59 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.AGV
+{
+    public class SendTask
+    {
+        /// <summary>
+        /// 浠诲姟妯℃澘
+        /// </summary>
+        public string modelProcessCode { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        public int priority { get; set; }
+
+        /// <summary>
+        /// 鏉ユ簮绯荤粺
+        /// </summary>
+        public string fromSystem { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        public string orderId { get; set; }
+
+        /// <summary>
+        /// 璁㈠崟鏄庣粏
+        /// </summary>
+        public taskOrderDetail orderDetail { get; set; }
+    }
+    public class taskOrderDetail
+    {
+        public string subOrderId { get; set; }
+
+        public string taskPath { get; set; }
+
+        public string shelfNumber { get; set; }
+
+        public string assignRobotIds { get; set; }
+
+        public string releaseRobot { get; set; }
+
+        public string deviceNum { get; set; }
+
+        public string loadType { get; set; }
+
+        public string robotType { get; set; }
+
+        public string extraInfo { get; set; }
+
+        public string shelfModel { get; set; }
+        
+    }
+}
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 58b7bb3..261fc19 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"
@@ -58,51 +58,6 @@
         WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs);
 
         /// <summary>
-        /// 鎺ユ敹WMS浠诲姟淇℃伅
-        /// </summary>
-        /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        WebResponseContent ReceiveByWMSTask([NotNull] WMSTaskDTO taskDTOs);
-
-        /// <summary>
-        /// 鎺ユ敹WMS浠诲姟淇℃伅
-        /// </summary>
-        /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        WebResponseContent ReceiveByWMSGWTask([NotNull] WMSTaskDTO taskDTO);
-
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="sourceAddress">璧峰鍦板潃</param>
-        /// <returns></returns>
-        Task<WebResponseContent> RequestWMSTask(string palletCode, string sourceAddress);
-
-        /// <summary>
-        /// 璇锋眰鍑哄簱鑷冲寘瑁�
-        /// </summary>
-        /// <param name="stationManager"></param>
-        /// <returns></returns>
-        Task<WebResponseContent> RequestOutTaskToBZAsync(Dt_StationManager stationManager);
-
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="sourceAddress">璧峰鍦板潃</param>
-        /// <returns></returns>
-        Task<WebResponseContent> RequestTask(string palletCode, string EquiCodeMOM, string Roadways, string area,string currentChildeCode);
-
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="sourceAddress">璧峰鍦板潃</param>
-        /// <returns></returns>
-        Task<WebResponseContent> RequestTask(string palletCode, Dt_StationManager stationManager);
-
-        /// <summary>
         /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
         /// </summary>
         /// <param name="deviceNo">璁惧缂栧彿</param>
@@ -292,8 +247,6 @@
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
         WebResponseContent StackCraneTaskCompleted(int taskNum);
 
-        WebResponseContent StackCraneTaskCompletedByStation(int taskNum);
-
         /// <summary>
         /// 鎭㈠鎸傝捣浠诲姟
         /// </summary>
@@ -307,14 +260,6 @@
         /// <param name="taskNum">浠诲姟鍙�</param>
         /// <returns>杩斿洖澶勭悊缁撴灉</returns>
         WebResponseContent RollbackTaskStatusToLast(int taskNum);
-
-        /// <summary>
-        /// 
-        /// </summary>
-        /// <param name="palletCode"></param>
-        /// <param name="Roadway"></param>
-        /// <returns></returns>
-        Dt_Task QueryTaskByPalletCode(string palletCode, string Roadway);
 
         /// <summary>
         /// 鏌ヨ褰撳墠璁惧鏄惁鏈夌Щ搴撲换鍔�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs"
index 5e77a0d..c337849 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/BasicInfo/Dt_StationManager.cs"
@@ -33,7 +33,7 @@
         public int stationID { get; set; }
 
         /// <summary>
-        /// 绔欏彴绫诲瀷  1-鍏ュ簱绔欏彴 2-鍑哄簱绔欏彴 3-寮傚父鎺掑嚭绔欏彴 4-NG宸ョ珯鏀炬枡 5-NG宸ョ珯鍙栨枡 6-绌烘鍏ュ簱 7-绌烘鍑哄簱,8-鍏ュ簱绾夸綋鎵爜纭,9-鍏ュ簱绔欏彴纭
+        /// 绔欏彴绫诲瀷
         /// </summary>
         [ImporterHeader(Name = "绔欏彴绫诲瀷")]
         [ExporterHeader(DisplayName = "绔欏彴绫诲瀷")]
@@ -46,7 +46,7 @@
         [ImporterHeader(Name = "鎵�灞濸LC")]
         [ExporterHeader(DisplayName = "鎵�灞濸LC")]
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵�灞濸LC")]
-        public string stationPLC { get; set; }
+        public string stationDeviceCode { get; set; }
 
         /// <summary>
         /// 宸烽亾鍙�
@@ -88,32 +88,23 @@
         [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鍧愭爣鍦板潃")]
         public string stationLocation { get; set; }
 
-        /// <summary>
-        /// MOM璁惧缂栧彿
-        /// </summary>
-        [ImporterHeader(Name = "MOM璁惧缂栧彿")]
-        [ExporterHeader(DisplayName = "MOM璁惧缂栧彿")]
-        [SugarColumn(IsNullable = false, ColumnDescription = "MOM璁惧缂栧彿")]
-        public string stationEquipMOM { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "NG瀛愯澶囩紪鍙�")]
-        public string stationNGChildCode { get; set; }
-
-        /// <summary>
-        /// 
-        /// </summary>
-        [SugarColumn(IsNullable = false, ColumnDescription = "NG瀛愯澶囧潗鏍�")]
-        public string stationNGLocation { get; set; }
         public string remark { get; set; }
 
+        /// <summary>
+        /// 璁惧鐘舵��
+        /// </summary>
+        [ImporterHeader(Name = "璁惧鐘舵��")]
+        [ExporterHeader(DisplayName = "璁惧鐘舵��")]
+        [SugarColumn(IsNullable = false, Length = 255, ColumnDescription = "璁惧鐘舵��")]
         public string stationStatus { get; set; }
 
         /// <summary>
-        /// 浜х嚎
+        /// 妤煎眰
         /// </summary>
-        public string productLine { get; set; }
+        [ImporterHeader(Name = "妤煎眰")]
+        [ExporterHeader(DisplayName = "妤煎眰")]
+        [SugarColumn(IsNullable = false, Length = 255, ColumnDescription = "妤煎眰")]
+        public string stationFloor { 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 d6e99c9..d29e69a 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"
@@ -62,6 +62,14 @@
         public string Roadway { get; set; }
 
         /// <summary>
+        /// 璁惧缂栧彿
+        /// </summary>
+        [ImporterHeader(Name = "璁惧缂栧彿")]
+        [ExporterHeader(DisplayName = "璁惧缂栧彿")]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "璁惧缂栧彿")]
+        public string DeviceCode { get; set; }
+
+        /// <summary>
         /// 浠诲姟绫诲瀷
         /// </summary>
         [ImporterHeader(Name = "浠诲姟绫诲瀷")]
@@ -149,12 +157,5 @@
         [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
 
-        /// <summary>
-        /// 鎵樼洏浜х嚎
-        /// </summary>
-        [ImporterHeader(Name = "鎵樼洏浜х嚎")]
-        [ExporterHeader(DisplayName = "鎵樼洏浜х嚎")]
-        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "鎵樼洏浜х嚎")]
-        public string ProductionLine { get; set; }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RGV/CommonRGV.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RGV/CommonRGV.cs"
index 703dcce..f8acbd5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RGV/CommonRGV.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/RGV/CommonRGV.cs"
@@ -210,7 +210,7 @@
                 {
                     return DeviceStatus.Idle;
                 }
-                else if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.Putting || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUp || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReturnOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReverseOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.Walking || StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted || StackerCraneWorkStatusValue == StackerCraneWorkStatus.InStockStandby)
+                else if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.Puting || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUp || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReturnOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReverseOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.Walking || StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted || StackerCraneWorkStatusValue == StackerCraneWorkStatus.InStockStandby)
                 {
                     return DeviceStatus.Working;
                 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs"
index 52fa4d1..0e34958 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs"
@@ -230,7 +230,7 @@
                 {
                     return DeviceStatus.Idle;
                 }
-                else if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.Putting || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUp || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReturnOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReverseOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.Walking || StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted || StackerCraneWorkStatusValue == StackerCraneWorkStatus.InStockStandby)
+                else if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.Puting || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUp || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReturnOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReverseOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.Walking || StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted || StackerCraneWorkStatusValue == StackerCraneWorkStatus.InStockStandby)
                 {
                     return DeviceStatus.Working;
                 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerStationCrane.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerStationCrane.cs"
index 231083f..5ea64e1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerStationCrane.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerStationCrane.cs"
@@ -231,7 +231,7 @@
                 {
                     return DeviceStatus.Idle;
                 }
-                else if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.Putting || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUp || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReturnOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReverseOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.Walking || StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted || StackerCraneWorkStatusValue == StackerCraneWorkStatus.InStockStandby)
+                else if (StackerCraneWorkStatusValue == StackerCraneWorkStatus.Puting || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUp || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PickUpWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWalk || StackerCraneWorkStatusValue == StackerCraneWorkStatus.PutWait || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReturnOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.ReverseOrigin || StackerCraneWorkStatusValue == StackerCraneWorkStatus.Walking || StackerCraneWorkStatusValue == StackerCraneWorkStatus.WorkCompleted || StackerCraneWorkStatusValue == StackerCraneWorkStatus.InStockStandby)
                 {
                     return DeviceStatus.Working;
                 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs"
index cf4c2d0..6c12de9 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs"
@@ -128,7 +128,7 @@
         /// 鏀捐揣涓�
         /// </summary>
         [Description("鏀捐揣涓�")]
-        Putting,
+        Puting,
 
         /// <summary>
         /// 鍥炲師鐐�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln"
index 968df31..750f408 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln"
@@ -66,6 +66,8 @@
 EndProject
 Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_SignalR", "WIDESEAWCS_SignalR\WIDESEAWCS_SignalR.csproj", "{59D26679-7299-4251-A58E-3AC3C6FA717E}"
 EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LogLibrary", "LogLibrary\LogLibrary.csproj", "{42364781-CE85-43D4-AEB0-CC4D6FE5085D}"
+EndProject
 Global
 	GlobalSection(SolutionConfigurationPlatforms) = preSolution
 		Debug|Any CPU = Debug|Any CPU
@@ -156,6 +158,10 @@
 		{59D26679-7299-4251-A58E-3AC3C6FA717E}.Debug|Any CPU.Build.0 = Debug|Any CPU
 		{59D26679-7299-4251-A58E-3AC3C6FA717E}.Release|Any CPU.ActiveCfg = Release|Any CPU
 		{59D26679-7299-4251-A58E-3AC3C6FA717E}.Release|Any CPU.Build.0 = Release|Any CPU
+		{42364781-CE85-43D4-AEB0-CC4D6FE5085D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{42364781-CE85-43D4-AEB0-CC4D6FE5085D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{42364781-CE85-43D4-AEB0-CC4D6FE5085D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{42364781-CE85-43D4-AEB0-CC4D6FE5085D}.Release|Any CPU.Build.0 = Release|Any CPU
 	EndGlobalSection
 	GlobalSection(SolutionProperties) = preSolution
 		HideSolutionNode = FALSE
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
new file mode 100644
index 0000000..2390e9f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/AGV/AGVController.cs"
@@ -0,0 +1,246 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using System.Reflection;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_DTO.AGV;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_Tasks;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
+using WIDESEAWCS_Tasks.ElevatorJob;
+
+namespace WIDESEAWCS_Server.Controllers.AGV
+{
+    [Route("api/AGV")]
+    [ApiController]
+    public class AGVController : ControllerBase
+    {
+        private readonly ITaskRepository _taskRepository;
+
+        public AGVController(ITaskRepository taskRepository)
+        {
+            _taskRepository = taskRepository;
+        }
+
+        /// <summary>
+        /// AGV鐘舵�佷笂鎶�
+        /// </summary>
+        /// <param name="receiveDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AGVStatusReport"), AllowAnonymous]
+        public WebResponseContent AGVStatusReport(AGVReceiveDTO receiveDTO) => SignalInteraction(receiveDTO);
+
+        #region  AGV涓庤澶囦俊鍙蜂氦浜�
+
+        /// <summary>
+        /// AGV--璁惧浜や簰
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent SignalInteraction(AGVReceiveDTO receiveDTO)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                var task = _taskRepository.QueryFirst(t => t.TaskNum == receiveDTO.TaskNum);
+                if (task == null)
+                {
+                    return content.Error("鏈壘鍒颁换鍔�");
+                }
+                MethodInfo? method = GetType().GetMethod(receiveDTO.Status);
+                if (method != null)
+                {
+                    CommonConveyorLine? commonConveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == task.DeviceCode) as CommonConveyorLine;
+                    CommonElevator? elevator = Storage.Devices.FirstOrDefault(x => x.DeviceCode == task.DeviceCode) as CommonElevator;
+                    if (elevator == null && commonConveyorLine == null)
+                        return content.Error("鏈壘鍒拌澶�");
+                    else
+                        return content = (WebResponseContent)method.Invoke(this, new object[] { task, commonConveyorLine, elevator });
+
+                }
+                else
+                {
+                    throw new Exception($"鏈壘鍒拌鐘舵�亄receiveDTO.Status}瀹氫箟");
+                }
+            }
+            catch (Exception ex)
+            {
+                return content.Error(ex.Message);
+            }
+        }
+
+        /// <summary>
+        /// 鏀捐揣瀹屾垚
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent PutFinish(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                {
+                    elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
+                    elevator.SetValue(ElevatorDBName.StartCommand, 1);
+                    content.OK();
+                }
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                {
+                    if (task.DeviceCode.Contains("TSJ"))
+                    {
+                        elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
+                        elevator.SetValue(ElevatorDBName.StartCommand, 1);
+                        content.OK();
+                    }
+                    else
+                    {
+                        commonConveyorLine.SetValue(ConveyorLineDBName.PutFinish, 1, "101");
+                        commonConveyorLine.SetValue(ConveyorLineDBName.ConveyorLineTaskNum, 9990, "101");
+                    }
+                }
+                else
+                {
+                    throw new Exception("浠诲姟鐘舵�佸紓甯�");
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        /// <summary>
+        /// 鍙栬揣瀹屾垚
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent PickUpFinish(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                {
+                    if (task.DeviceCode.Contains("TSJ"))
+                    {
+                        elevator.SetValue(ElevatorDBName.TwoLayerPutFinish, 1);
+                        elevator.SetValue(ElevatorDBName.StartCommand, 1);
+                        content.OK();
+                    }
+                    else
+                    {
+                        commonConveyorLine.SetValue(ConveyorLineDBName.PutFinish, 1, "101");
+                        content.OK();
+                    }
+
+                }
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                {
+                    if (task.DeviceCode.Contains("TSJ"))
+                    {
+                        elevator.SetValue(ElevatorDBName.OneLayerPutFinish, 1);
+                        elevator.SetValue(ElevatorDBName.StartCommand, 1);
+                        content.OK();
+                    }
+                }
+                else
+                {
+                    throw new Exception("浠诲姟鐘舵�佸紓甯�");
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        /// <summary>
+        /// 璇锋眰鍙栬揣
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent RequestPickUp(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                {
+                    int AllowPickUp = 0;
+                    if (task.DeviceCode.Contains("TSJ"))
+                        AllowPickUp = elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPickUp);
+                    else
+                        AllowPickUp = commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPickUp, "101");
+
+                    content = AllowPickUp == 1 ? content.OK() : content.Error("璁惧涓嶅厑璁稿彇璐�");
+
+                }
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                {
+                    int AllowPickUp = 0;
+                    if (task.DeviceCode.Contains("TSJ"))
+                        AllowPickUp = elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPickUp);
+
+                    content = AllowPickUp == 1 ? content.OK() : content.Error("璁惧涓嶅厑璁稿彇璐�");
+                }
+                else
+                {
+                    throw new Exception("浠诲姟鐘舵�佸紓甯�");
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        /// <summary>
+        /// 璇锋眰鏀捐揣
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent RequestPut(Dt_Task task, CommonConveyorLine commonConveyorLine, CommonElevator elevator)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                {
+                    int AllowPickUp = 0;
+                    if (task.DeviceCode.Contains("TSJ"))
+                        AllowPickUp = elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.OneLayerAllowPut);
+
+                    content = AllowPickUp == 1 ? content.OK() : content.Error("璁惧涓嶅厑璁告斁璐�");
+
+                }
+                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
+                {
+                    int AllowPickUp = 0;
+                    if (task.DeviceCode.Contains("TSJ"))
+                        AllowPickUp = elevator.GetValue<ElevatorDBName, short>(ElevatorDBName.TwoLayerAllowPut);
+                    else
+                        AllowPickUp = commonConveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.AllowPut, "101");
+
+                    content = AllowPickUp == 1 ? content.OK() : content.Error("璁惧涓嶅厑璁告斁璐�");
+                }
+                else
+                {
+                    throw new Exception("浠诲姟鐘舵�佸紓甯�");
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        #endregion
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index d2293fa..fc5ab5c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -25,19 +25,6 @@
             return Service.ReceiveWMSTask(taskDTOs);
         }
 
-        [HttpPost, Route("ReceiveByWMSTask"), AllowAnonymous]
-        public WebResponseContent ReceiveByWMSTask([FromBody] WMSTaskDTO taskDTOs)
-        {
-            return Service.ReceiveByWMSTask(taskDTOs);
-        }
-
-        [HttpPost, Route("ReceiveByWMSGWTask"), AllowAnonymous]
-        public WebResponseContent ReceiveByWMSGWTask([FromBody] WMSTaskDTO taskDTOs)
-        {
-            return Service.ReceiveByWMSGWTask(taskDTOs);
-        }
-
-
         [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
         public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message)
         {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/AGVTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/AGVTaskService.cs"
new file mode 100644
index 0000000..957a964
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/AGVTaskService.cs"
@@ -0,0 +1,72 @@
+锘縰sing AngleSharp.Io;
+using HslCommunication;
+using Mapster;
+using Newtonsoft.Json;
+using SkiaSharp;
+using System.Diagnostics.CodeAnalysis;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.LogHelper;
+using WIDESEAWCS_DTO.AGV;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+
+namespace WIDESEAWCS_TaskInfoService
+{
+    public partial class TaskService
+    {
+        #region AGV鎺ュ彛
+        private string GetAGVIPAddress(string baseIp, string name)
+        {
+            var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
+            var wcsBasez = configz.Where(x => x.ConfigKey == baseIp).FirstOrDefault()?.ConfigValue;
+            var address = configz.Where(x => x.ConfigKey == name).FirstOrDefault()?.ConfigValue;
+            if (wcsBasez == null || address == null)
+            {
+                throw new InvalidOperationException("WMS IP 鏈厤缃�");
+            }
+            return wcsBasez + address;
+        }
+
+        public async Task<WebResponseContent> SendAgvTask(string modelProcessCode,Dt_Task task)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                SendTask sendTask = new SendTask()
+                {
+                    modelProcessCode = modelProcessCode,
+                    priority = 1,
+                    fromSystem = "WMS",
+                    orderId = task.TaskNum.ToString(),
+                    orderDetail = new taskOrderDetail()
+                    {
+                        taskPath = $"{task.CurrentAddress},{task.NextAddress}",
+                        shelfNumber = "",
+                    }
+                };
+                var AgvSendTaskAddrss = GetAGVIPAddress(SysConfigKeyConst.AGVIP_BASE, SysConfigKeyConst.SendAGVTask);
+                // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                var result = await HttpHelper.PostAsync(AgvSendTaskAddrss, sendTask.ToJsonString());
+
+                var respone = JsonConvert.DeserializeObject<AgvRespone>(result.ToString());
+
+                if (respone.code != 1000)
+                {
+                    content.Error(respone.desc);
+                }
+                content.OK("浠诲姟涓嬪彂鑷矨GV绯荤粺");
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
deleted file mode 100644
index 9736d13..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/Partial/TaskService.cs"
+++ /dev/null
@@ -1,700 +0,0 @@
-锘縰sing HslCommunication;
-using Mapster;
-using Newtonsoft.Json;
-using System.Diagnostics.CodeAnalysis;
-using WIDESEAWCS_Common;
-using WIDESEAWCS_Common.TaskEnum;
-using WIDESEAWCS_Core;
-using WIDESEAWCS_Core.Helper;
-using WIDESEAWCS_Core.LogHelper;
-using WIDESEAWCS_DTO.TaskInfo;
-using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-
-namespace WIDESEAWCS_TaskInfoService
-{
-    public partial class TaskService
-    {
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="sourceAddress">璧峰鍦板潃</param>
-        /// <returns></returns>
-        public async Task<WebResponseContent> RequestTask(string palletCode, string EquiCodeMOM, string Roadways, string area, string CurrentChildCode)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
-                if (hasTask != null)
-                {
-                    return content.Error("褰撳墠鎵樼洏瀛樺湪浠诲姟");
-                }
-
-                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInTask)?.ConfigValue;
-                if (wmsBase == null || requestTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddrss = wmsBase + requestTask;
-
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = EquiCodeMOM, Roadways = Roadways, area = area, Position = CurrentChildCode }.ToJsonString());
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                if (!content.Status)
-                {
-                    // wms澶辫触杩斿洖鍘籒G鍙d换鍔�
-
-                    return content;
-                }
-
-                var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                return ReceiveByWMSTask(task);
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        #region 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
-
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="stationManager">绔欏彴</param>
-        /// <returns></returns>
-        public async Task<WebResponseContent> RequestTask1(string palletCode, Dt_StationManager stationManager)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                StaticVariable.isLineRun = false;
-                var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
-                if (hasTask != null)
-                {
-                    return content.Error("褰撳墠鎵樼洏瀛樺湪浠诲姟");
-                }
-
-                var Station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea);
-                var tasks = await BaseDal.QueryFirstAsync(x => x.TaskType == (int)TaskOutboundTypeEnum.InToOut && x.TargetAddress == stationManager.stationLocation && x.CurrentAddress == Station.stationChildCode);
-                if (tasks != null)
-                {
-                    ConsoleHelper.WriteErrorLine($"銆恵stationManager.stationChildCode}銆戝凡瀛樺湪鐩存帴鍑哄簱浠诲姟浠诲姟");
-                    return content.Error($"銆恵stationManager.stationChildCode}銆戝凡瀛樺湪鐩存帴鍑哄簱浠诲姟浠诲姟");
-                }
-
-                if (StaticVariable.isStackerRun)
-                {
-                    if (stationManager.stationType == 7)
-                    {
-                        var runTask = await BaseDal.QueryFirstAsync(x => x.CurrentAddress == Station.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray);
-                        if (runTask != null)
-                        {
-                            runTask.TargetAddress = stationManager.stationLocation;
-                            runTask.NextAddress = stationManager.stationChildCode;
-                            runTask.Grade = 3;
-                            runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut;
-                            runTask.TaskState = (int)TaskOutStatusEnum.OutNew;
-
-                            var config1 = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                            var wmsBase1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                            var requestTask1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.SetEmptyOutbyInToOutAsync)?.ConfigValue;
-                            if (wmsBase1 == null || requestTask1 == null)
-                            {
-                                throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                            }
-                            var wmsIpAddrss1 = wmsBase1 + requestTask1;
-
-                            var result1 = await HttpHelper.PostAsync(wmsIpAddrss1, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = Station.stationChildCode }.ToJsonString());
-                            content = JsonConvert.DeserializeObject<WebResponseContent>(result1);
-                            if (content.Status)
-                            {
-                                await BaseDal.UpdateDataAsync(runTask);
-                                ConsoleHelper.WriteSuccessLine($"銆恵runTask.PalletCode}鐩存帴鍑哄簱鑷充簩灏併��");
-                                return content.OK("鎴愬姛");
-                            }
-                            else
-                                ConsoleHelper.WriteErrorLine(content.Message);
-                        }
-                        else
-                            ConsoleHelper.WriteErrorLine($"銆恵Station.stationChildCode}銆戞湭鎵惧埌绌烘墭鐩樺叆搴撲换鍔�");
-                    }
-                    else if (stationManager.stationType == 6)
-                    {
-                        var emptyStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea);
-                        var runTask = await BaseDal.QueryFirstAsync(x => x.NextAddress == emptyStation.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray);
-                        if (runTask != null)
-                        {
-                            runTask.SourceAddress = stationManager.stationLocation;
-                            runTask.CurrentAddress = stationManager.stationChildCode;
-                            runTask.Grade = 3;
-                            runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut;
-                            runTask.TaskState = (int)TaskOutStatusEnum.OutNew;
-                            runTask.PalletCode = palletCode;
-
-                            var config1 = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                            var wmsBase1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                            var requestTask1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.SetEmptyOutbyInToOutOneAsync)?.ConfigValue;
-                            if (wmsBase1 == null || requestTask1 == null)
-                            {
-                                throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                            }
-                            var wmsIpAddrss1 = wmsBase1 + requestTask1;
-
-                            var result1 = await HttpHelper.PostAsync(wmsIpAddrss1, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = emptyStation.stationChildCode }.ToJsonString());
-                            content = JsonConvert.DeserializeObject<WebResponseContent>(result1);
-                            if (content.Status)
-                            {
-                                await BaseDal.UpdateDataAsync(runTask);
-                                ConsoleHelper.WriteSuccessLine($"銆恵runTask.PalletCode}鐩存帴鍑哄簱鑷充簩灏併��");
-                                return content.OK("鎴愬姛");
-                            }
-                            else
-                                ConsoleHelper.WriteErrorLine(content.Message);
-                        }
-                    }
-                }
-                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInTask)?.ConfigValue;
-                if (wmsBase == null || requestTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddrss = wmsBase + requestTask;
-
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString());
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-                ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
-                if (!content.Status)
-                {
-                    // wms澶辫触杩斿洖鍘籒G鍙d换鍔�
-                    //if (stationManager.stationChildCode != stationManager.stationNGChildCode)
-                    //{
-                    //    WMSTaskDTO taskDTO = new WMSTaskDTO()
-                    //    {
-                    //        Grade = 8,
-                    //        PalletCode = palletCode,
-                    //        SourceAddress = stationManager.stationLocation,
-                    //        TargetAddress = stationManager.stationNGLocation,
-                    //        RoadWay = stationManager.Roadway,
-                    //        TaskNum = 1000,
-                    //        TaskState = (int)TaskOutStatusEnum.OutNew,
-                    //        TaskType = (int)TaskOutboundTypeEnum.InToOut
-                    //    };
-                    //}
-                    return content;
-                }
-
-                var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                ConsoleHelper.WriteSuccessLine(content.Data.ToString());
-                return ReceiveByWMSTask(task);
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-            finally
-            {
-                StaticVariable.isLineRun = true;
-            }
-        }
-
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="stationManager">绔欏彴</param>
-        /// <returns></returns>
-        public async Task<WebResponseContent> RequestTask(string palletCode, Dt_StationManager stationManager)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                StaticVariable.isLineRun = false;
-
-                // 妫�鏌ュ綋鍓嶆墭鐩樻槸鍚﹀瓨鍦ㄤ换鍔�
-                if (await HasTask(palletCode))
-                {
-                    return content.Error("褰撳墠鎵樼洏瀛樺湪浠诲姟");
-                }
-
-                // 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩存帴鍑哄簱浠诲姟
-                if (await HasDirectOutboundTask(stationManager))
-                {
-                    return content.Error($"銆恵stationManager.stationChildCode}銆戝凡瀛樺湪鐩存帴鍑哄簱浠诲姟浠诲姟");
-                }
-
-                if (StaticVariable.isStackerRun)
-                {
-                    if (stationManager.stationType == 7)
-                    {
-                        var result = await HandleStationType7(palletCode, stationManager);
-                        if (result != null)
-                        {
-                            return result;
-                        }
-                    }
-                    else if (stationManager.stationType == 6)
-                    {
-                        var result = await HandleStationType6(palletCode, stationManager);
-                        if (result != null)
-                        {
-                            return result;
-                        }
-                    }
-                }
-
-                // 鍙戣捣璇锋眰鑾峰彇鍏ュ簱浠诲姟
-                content = await RequestInTask(palletCode, stationManager);
-                ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}绔欏彴璇锋眰鍝嶅簲淇℃伅:{content.ToJsonString()}");
-
-                if (!content.Status)
-                {
-                    return content;
-                }
-
-                var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                ConsoleHelper.WriteSuccessLine(content.Data.ToString());
-                return ReceiveByWMSTask(task);
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-            finally
-            {
-                StaticVariable.isLineRun = true;
-            }
-        }
-
-        // 妫�鏌ュ綋鍓嶆墭鐩樻槸鍚﹀瓨鍦ㄤ换鍔�
-        private async Task<bool> HasTask(string palletCode)
-        {
-            var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
-            return hasTask != null;
-        }
-
-        // 妫�鏌ユ槸鍚﹀凡瀛樺湪鐩存帴鍑哄簱浠诲姟
-        private async Task<bool> HasDirectOutboundTask(Dt_StationManager stationManager)
-        {
-            var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea && x.Roadway == stationManager.Roadway);
-            var tasks = await BaseDal.QueryFirstAsync(x => x.TaskType == (int)TaskOutboundTypeEnum.InToOut && x.TargetAddress == stationManager.stationLocation && x.CurrentAddress == station.stationChildCode);
-            return tasks != null;
-        }
-
-        // 澶勭悊 stationType 涓� 7 鐨勬儏鍐�
-        private async Task<WebResponseContent> HandleStationType7(string palletCode, Dt_StationManager stationManager)
-        {
-            var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea && x.Roadway == stationManager.Roadway);
-            var runTask = await BaseDal.QueryFirstAsync(x => x.CurrentAddress == station.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray);
-
-            if (runTask != null)
-            {
-                runTask.TargetAddress = stationManager.stationLocation;
-                runTask.NextAddress = stationManager.stationChildCode;
-                runTask.Grade = 3;
-                runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut;
-                runTask.TaskState = (int)TaskOutStatusEnum.OutNew;
-
-                var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.SetEmptyOutbyInToOutAsync);
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = station.stationChildCode }.ToJsonString());
-                var content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                if (content.Status)
-                {
-                    await BaseDal.UpdateDataAsync(runTask);
-                    ConsoleHelper.WriteSuccessLine($"銆恵runTask.PalletCode}鐩存帴鍑哄簱鑷充簩灏併��");
-                    return content.OK("鎴愬姛");
-                }
-                else
-                {
-                    ConsoleHelper.WriteErrorLine(content.Message);
-                }
-            }
-            else
-            {
-                ConsoleHelper.WriteErrorLine($"銆恵station.stationChildCode}銆戞湭鎵惧埌绌烘墭鐩樺叆搴撲换鍔�");
-            }
-
-            return null;
-        }
-
-        // 澶勭悊 stationType 涓� 6 鐨勬儏鍐�
-        private async Task<WebResponseContent> HandleStationType6(string palletCode, Dt_StationManager stationManager)
-        {
-            var emptyStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea && x.Roadway==stationManager.Roadway);
-            var runTask = await BaseDal.QueryFirstAsync(x => x.NextAddress == emptyStation.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray);
-
-            if (runTask != null)
-            {
-                runTask.SourceAddress = stationManager.stationLocation;
-                runTask.CurrentAddress = stationManager.stationChildCode;
-                runTask.Grade = 3;
-                runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut;
-                runTask.TaskState = (int)TaskOutStatusEnum.OutNew;
-                runTask.PalletCode = palletCode;
-
-                var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.SetEmptyOutbyInToOutAsync);
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = emptyStation.stationChildCode }.ToJsonString());
-                var content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                if (content.Status)
-                {
-                    await BaseDal.UpdateDataAsync(runTask);
-                    ConsoleHelper.WriteSuccessLine($"銆恵runTask.PalletCode}鐩存帴鍑哄簱鑷充簩灏併��");
-                    return content.OK("鎴愬姛");
-                }
-                else
-                {
-                    ConsoleHelper.WriteErrorLine(content.Message);
-                }
-            }
-
-            return null;
-        }
-
-        // 鑾峰彇 WMS 璇锋眰鍦板潃
-        private string GetWmsIpAddress(string configKey)
-        {
-            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-            var requestTask = config.FirstOrDefault(x => x.ConfigKey == configKey)?.ConfigValue;
-
-            if (wmsBase == null || requestTask == null)
-            {
-                throw new InvalidOperationException("WMS IP 鏈厤缃�");
-            }
-
-            return wmsBase + requestTask;
-        }
-
-        // 鍙戣捣璇锋眰鑾峰彇鍏ュ簱浠诲姟
-        private async Task<WebResponseContent> RequestInTask(string palletCode, Dt_StationManager stationManager)
-        {
-            var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestInTask);
-            var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString());
-            return JsonConvert.DeserializeObject<WebResponseContent>(result);
-        }
-
-        #endregion 鏍规嵁鎵樼洏鍙枫�佺珯鍙板悜WMS璇锋眰浠诲姟
-
-        public async Task<WebResponseContent> RequestOutTaskToBZAsync(Dt_StationManager stationManager)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestOutTaskToBZ)?.ConfigValue;
-                if (wmsBase == null || requestTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddrss = wmsBase + requestTask;
-
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = stationManager.stationChildCode }.ToJsonString());
-
-                QuartzLogger.WriteLogToFile($"鍖呰鍑哄簱", $"杩斿洖鍙傛暟銆恵JsonConvert.SerializeObject(result)}銆憑Environment.NewLine}{Environment.NewLine}");
-
-
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-                if (!content.Status)
-                {
-                    //鏃犳弧瓒虫潯浠跺彲鍑哄簱鑷冲寘瑁呯殑搴撳瓨
-                    ConsoleHelper.WriteErrorLine(JsonConvert.SerializeObject(content));
-                    QuartzLogger.WriteLogToFile($"鍖呰鍑哄簱", $"杩斿洖鍙傛暟銆恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
-                    return content;
-                }
-
-                var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                ConsoleHelper.WriteSuccessLine(content.Data.ToString());
-
-                content = ReceiveWMSTask(new List<WMSTaskDTO> { task });
-
-                QuartzLogger.WriteLogToFile($"鍖呰鍑哄簱", $"杩斿洖鍙傛暟銆恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
-                ConsoleHelper.WriteErrorLine(JsonConvert.SerializeObject(content));
-                return content;
-            }
-            catch (Exception ex)
-            {
-                return content.Error(ex.Message);
-            }
-        }
-
-        /// <summary>
-        /// 鎺ユ敹WMS浠诲姟淇℃伅
-        /// </summary>
-        /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent ReceiveByWMSTask([NotNull] WMSTaskDTO taskDTO)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null)
-                {
-                    return content.OK();
-                }
-                Dt_Task task = _mapper.Map<Dt_Task>(taskDTO);
-                task.Creater = "WMS";
-
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
-                {
-                    if (task.TaskType == (int)TaskOutboundTypeEnum.InToOut && taskDTO.RoadWay.Contains("CW"))
-                    {
-                        var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationPLC == "1017" && x.stationType == 10 && x.Roadway == taskDTO.RoadWay);
-                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
-                        task.CurrentAddress = taskDTO.SourceAddress;
-                        task.NextAddress = stationinfo.stationChildCode;
-                        task.SourceAddress = taskDTO.SourceAddress;
-                        task.TargetAddress = taskDTO.TargetAddress;
-                    }
-                    else
-                    {
-                        var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay);
-                        task.TaskState = (int)TaskOutStatusEnum.OutNew;
-                        task.CurrentAddress = taskDTO.RoadWay;
-                        task.NextAddress = stationinfo.stationChildCode;
-                        task.SourceAddress = taskDTO.SourceAddress;
-                        task.TargetAddress = taskDTO.TargetAddress;
-                    }   
-                }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
-                {
-                    var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.SourceAddress && x.Roadway == taskDTO.RoadWay);
-                    task.TaskState = (int)TaskInStatusEnum.Line_InFinish;
-                    task.SourceAddress = taskDTO.SourceAddress;
-                    task.CurrentAddress = stationinfo.stationChildCode;
-                    task.NextAddress = stationinfo.stationChildCode;
-                    task.TargetAddress = taskDTO.TargetAddress;
-                }
-                else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
-                {
-                    task.TaskState = (int)TaskStatus.Created;
-                    task.SourceAddress = taskDTO.SourceAddress;
-                    task.CurrentAddress = taskDTO.SourceAddress;
-                    task.NextAddress = taskDTO.TargetAddress;
-                    task.TargetAddress = taskDTO.TargetAddress;
-                }
-
-                BaseDal.AddData(task);
-
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "鎺ユ敹WMS浠诲姟");
-
-                content = WebResponseContent.Instance.OK("鎴愬姛");
-            }
-            catch (Exception ex)
-            {
-                content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
-            }
-            return content;
-        }
-
-        /// <summary>
-        /// 鎺ユ敹WMS浠诲姟淇℃伅
-        /// </summary>
-        /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent ReceiveByBZOtuTask([NotNull] WMSTaskDTO taskDTO)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null)
-                {
-                    return content.OK();
-                }
-                Dt_Task task = _mapper.Map<Dt_Task>(taskDTO);
-                task.Creater = "WMS";
-
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
-                {
-                    var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay);
-                    task.TaskState = (int)TaskOutStatusEnum.OutNew;
-                    task.CurrentAddress = stationinfo.stationChildCode;
-                    task.NextAddress = stationinfo.stationChildCode;
-                    task.SourceAddress = taskDTO.SourceAddress;
-                    task.TargetAddress = taskDTO.TargetAddress;
-                }
-                BaseDal.AddData(task);
-
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "鎺ユ敹WMS浠诲姟");
-
-                content = WebResponseContent.Instance.OK("鎴愬姛");
-            }
-            catch (Exception ex)
-            {
-                content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
-            }
-            return content;
-        }
-
-        /// <summary>
-        /// 楂樻俯鍑哄簱
-        /// </summary>
-        /// <param name="taskDTO"></param>
-        /// <returns></returns>
-        public WebResponseContent ReceiveByWMSGWTask([NotNull] WMSTaskDTO taskDTO)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null)
-                {
-                    return content.OK();
-                }
-                Dt_Task task = _mapper.Map<Dt_Task>(taskDTO);
-                task.Creater = "WMS";
-
-                if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
-                {
-                    task.TaskState = (int)TaskOutStatusEnum.OutNew;
-                    task.CurrentAddress = taskDTO.RoadWay;
-                    task.NextAddress = "002-000-002";
-                    task.SourceAddress = taskDTO.SourceAddress;
-                    task.TargetAddress = taskDTO.TargetAddress;
-                }
-                BaseDal.AddData(task);
-
-                _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "鎺ユ敹WMS浠诲姟");
-
-                content = WebResponseContent.Instance.OK("鎴愬姛");
-            }
-            catch (Exception ex)
-            {
-                content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
-            }
-            return content;
-        }
-
-        /// <summary>
-        /// 鎺ユ敹WMS浠诲姟淇℃伅
-        /// </summary>
-        /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public async Task<WebResponseContent> RequestFlow(Dt_StationManager stationManager)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestFlow)?.ConfigValue;
-                if (wmsBase == null || requestTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddrss = wmsBase + requestTask;
-
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString());
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                if (!content.Status)
-                {
-                    return content;
-                }
-                Dt_StationManager dt_Station = content.Data as Dt_StationManager;
-                //dt_Station.
-            }
-            catch (Exception ex)
-            {
-                content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
-            }
-            return content;
-        }
-
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙峰拰璁惧鍙锋煡璇换鍔�
-        /// </summary>
-        /// <param name="taskNum">浠诲姟鍙�</param>
-        /// <param name="currentAddress">褰撳墠鍦板潃</param>
-        /// <returns></returns>
-        public Dt_Task QueryTaskByPalletCode(string palletCode, string Roadway)
-        {
-            return BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.Roadway == Roadway, TaskOrderBy);
-        }
-
-        ///// <summary>
-        ///// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
-        ///// </summary>
-        ///// <param name="deviceNo">璁惧缂栧彿</param>
-        ///// <param name="currentAddress">褰撳墠鍦板潃</param>
-        ///// <returns></returns>
-        //public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress)
-        //{
-        //    return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy);
-        //}
-
-        /// 浠诲姟瀹屾垚
-        /// </summary>
-        /// <param name="taskNum">浠诲姟缂栧彿</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent StackCraneTaskCompletedByStation(int taskNum)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
-                if (task == null) return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅,浠诲姟鍙�:銆恵taskNum}銆�");
-
-                #region WMS鍚屾浠诲姟瀹屾垚
-
-                var keys = new Dictionary<string, object>()
-                {
-                    {"taskNum", taskNum}
-                };
-                // 鑾峰彇WMSip鍦板潃
-                var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-                var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-                var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
-                if (wmsBase == null || completeTask == null)
-                {
-                    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                }
-                var wmsIpAddress = wmsBase + completeTask;
-
-                var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                #endregion WMS鍚屾浠诲姟瀹屾垚
-
-                if (content.Status)
-                {
-                    task.TaskState = 1;  //浠诲姟瀹屾垚
-                    var taskHty = task.Adapt<Dt_Task_Hty>();
-                    _taskHtyRepository.AddData(taskHty);
-                    BaseDal.DeleteData(task);
-                }
-
-                #region 鏇存柊浠诲姟鐘舵��
-
-                //var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue;
-                //if (wmsBase == null || updateTask == null)
-                //{
-                //    throw new InvalidOperationException("WMS IP 鏈厤缃�");
-                //}
-                //wmsIpAddress = wmsBase + updateTask;
-
-                //result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result;
-                //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                #endregion 鏇存柊浠诲姟鐘舵��
-
-                //content = WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�");
-                QuartzLogger.WriteLogToFile($"Info_鍒嗗浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.Message}銆憑Environment.NewLine}寮傚父淇℃伅銆恵ex.StackTrace}銆憑Environment.NewLine}");
-            }
-            QuartzLogger.WriteLogToFile($"Info_鍒嗗浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
-            return content;
-        }
-    }
-}
\ No newline at end of file
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 a9cdf85..d76dc75 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"
@@ -1,5 +1,6 @@
 锘縰sing AutoMapper;
 using HslCommunication;
+using LogLibrary.Log;
 using Mapster;
 using Newtonsoft.Json;
 using SqlSugar;
@@ -25,8 +26,6 @@
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 using WIDESEAWCS_QuartzJob.Service;
-using WIDESEAWCS_TaskInfoRepository;
-using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database;
 
 namespace WIDESEAWCS_TaskInfoService
 {
@@ -138,36 +137,16 @@
                     // 鍒ゆ柇浠诲姟绫诲瀷鏄惁涓哄叆搴撲换鍔�
                     else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)
                     {
-                        var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue;
-                        var valueList = value.Split(',').ToList();
-                        // 鍒ゆ柇婧愬湴鍧�鏄惁涓嶇瓑浜�"1359-4"
-                        //if (task.SourceAddress != "1359-4" && task.SourceAddress != "1357-4")
-                        if (!valueList.Contains(task.SourceAddress))
-                        {
-                            // 鏌ヨ浠庢簮鍦板潃鍒扮洰鏍囧湴鍧�鐨勮矾鐢�
-                            List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress);
-                            if (routers.Count > 0)
-                            {
-                                // 璁剧疆浠诲姟鐘舵�佷负鍏ュ簱鏂板缓
-                                task.TaskState = (int)TaskInStatusEnum.InNew;
-                                // 璁剧疆褰撳墠鍦板潃涓烘簮鍦板潃
-                                task.CurrentAddress = item.SourceAddress;
-                                // 璁剧疆涓嬩竴涓湴鍧�涓虹涓�涓瓙浣嶇疆
-                                task.NextAddress = routers.FirstOrDefault().ChildPosi;
-                            }
-                        }
+
+                        task.CurrentAddress = string.Empty;
+                        if (task.SourceAddress == "1325-6")
+                            // 璁剧疆褰撳墠鍦板潃涓�"001-021-001"
+                            task.CurrentAddress = "001-021-001";
                         else
-                        {
-                            task.CurrentAddress = string.Empty;
-                            if (task.SourceAddress == "1325-6")
-                                // 璁剧疆褰撳墠鍦板潃涓�"001-021-001"
-                                task.CurrentAddress = "001-021-001";
-                            else
-                                // 璁剧疆褰撳墠鍦板潃涓�"002-021-001"
-                                task.CurrentAddress = "002-021-001";
-                            // 璁剧疆涓嬩竴涓湴鍧�涓虹洰鏍囧湴鍧�
-                            task.NextAddress = item.TargetAddress;
-                        }
+                            // 璁剧疆褰撳墠鍦板潃涓�"002-021-001"
+                            task.CurrentAddress = "002-021-001";
+                        // 璁剧疆涓嬩竴涓湴鍧�涓虹洰鏍囧湴鍧�
+                        task.NextAddress = item.TargetAddress;
                     }
                     // 灏嗚浆鎹㈠悗鐨勪换鍔℃坊鍔犲埌浠诲姟鍒楄〃涓�
                     tasks.Add(task);
@@ -188,77 +167,6 @@
             }
             // 杩斿洖缁撴灉
             return content;
-        }
-
-        /// <summary>
-        /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
-        /// </summary>
-        /// <param name="palletCode">鎵樼洏鍙�</param>
-        /// <param name="sourceAddress">璧峰鍦板潃</param>
-        /// <returns></returns>
-        public async Task<WebResponseContent> RequestWMSTask(string palletCode, string sourceAddress)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode);
-                if (hasTask != null)
-                {
-                    var taskExecuting = BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting);
-
-                    if (taskExecuting != null)
-                    {
-                        taskExecuting.ExceptionMessage = "鏈帴鏀跺埌绾夸綋瀹屾垚淇″彿绯荤粺鍐呴儴鑷姩瀹屾垚";
-                        Delete(taskExecuting);
-                    }
-                    ConsoleHelper.WriteErrorLine($"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆�"); 
-                    QuartzLogger.WriteLogToFile($"浠诲姟寮傚父鏈畬鎴�", $"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵palletCode}銆憑Environment.NewLine}");
-                }
-
-                var wmsIpAddrss = string.Empty;
-                var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == sourceAddress);
-                if (stationManager.stationType == 5)
-                {
-                    wmsIpAddrss = GetIpAddress(SysConfigKeyConst.WMSIP_BASE, SysConfigKeyConst.RequestInBoundTaskNG);
-                }
-                else
-                {
-                    wmsIpAddrss = GetIpAddress(SysConfigKeyConst.WMSIP_BASE, SysConfigKeyConst.RequestTask);
-                }
-
-                var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode, stationManager.productLine }.ToJsonString());
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                if (!content.Status)
-                {
-                    // wms澶辫触杩斿洖鍘籒G鍙d换鍔�
-                    return content;
-                }
-
-                var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
-                {
-                    var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == task.SourceAddress);
-                    Dt_Task _Task = _mapper.Map<Dt_Task>(task);
-                    _Task.TaskState = (int)TaskInStatusEnum.InNew;
-                    _Task.CurrentAddress = task.SourceAddress;
-                    _Task.NextAddress = station.stationNGChildCode;
-                    _Task.TargetAddress = task.TargetAddress;
-
-                    BaseDal.AddData(_Task);
-                    _taskExecuteDetailService.AddTaskExecuteDetail(_Task.TaskNum, "鎺ユ敹WMS浠诲姟");
-                    return content.OK();
-                }
-                else
-                {
-                    return ReceiveWMSTask(new List<WMSTaskDTO> { task });
-                }
-            }
-            catch (Exception ex)
-            {
-                QuartzLogger.WriteLogToFile($"鎺ユ敹浠诲姟寮傚父", $"鎵樼洏鍙凤細銆恵palletCode}銆戣姹傜偣浣嶏細銆恵sourceAddress}銆戝紓甯镐俊鎭�恵ex.Message}銆戝紓甯歌銆恵ex.StackTrace}銆�");
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
         }
 
         /// <summary>
@@ -838,9 +746,9 @@
             catch (Exception ex)
             {
                 content = WebResponseContent.Instance.Error($"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�");
-                QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆戝紓甯镐俊鎭�恵ex.Message}銆憑Environment.NewLine}寮傚父淇℃伅銆恵ex.StackTrace}銆憑Environment.NewLine}");
+                LogFactory.WriteError($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚寮傚父,浠诲姟鍙�:銆恵taskNum}銆�", ex);
             }
-            QuartzLogger.WriteLogToFile($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
+            LogFactory.WriteInfo($"Info_浠诲姟瀹屾垚", $"浠诲姟瀹屾垚,浠诲姟鍙�:銆恵taskNum}銆戣繑鍥炲弬鏁般�恵JsonConvert.SerializeObject(content)}銆憑Environment.NewLine}{Environment.NewLine}");
             return content;
         }
 
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj"
index a3b8daf..6b6baf8 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj"
@@ -7,6 +7,7 @@
 	</PropertyGroup>
 
 	<ItemGroup>
+		<ProjectReference Include="..\LogLibrary\LogLibrary.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_BasicInfoService\WIDESEAWCS_BasicInfoService.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_ITaskInfoService\WIDESEAWCS_ITaskInfoService.csproj" />
 		<ProjectReference Include="..\WIDESEAWCS_SystemServices\WIDESEAWCS_SystemServices.csproj" />
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
index 343d3eb..d3fd64a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs"
@@ -76,28 +76,7 @@
                 CommonConveyorLine conveyorLine = (CommonConveyorLine)context.JobDetail.JobDataMap.Get("JobParams");
                 if (conveyorLine != null)
                 {
-                    // 鏌ヨ鎵�鏈夊瓙璁惧鐨勪綅缃�
-                    List<string> childDeviceCodes = _routerService.QueryAllPositions(conveyorLine.DeviceCode);
-                    // 鑾峰彇鎵�鏈夌珯鐐圭鐞嗗櫒
-                    List<Dt_StationManager> stationManagers = _stationManagerService.GetAllStationByDeviceCode(conveyorLine.DeviceCode);
-
-                    // 骞惰澶勭悊姣忎釜瀛愯澶�
-                    var tasks = childDeviceCodes.Select(childDeviceCode => ProcessDeviceAsync(conveyorLine, childDeviceCode)).ToList();
-
-                    // 骞惰澶勭悊姣忎釜绔欑偣绠$悊鍣�
-                    tasks = stationManagers.Select(station => Task.Run(async () =>
-                    {
-                        ConveyorLineTaskCommand command = ReadCommand(conveyorLine, station.stationChildCode);
-                        if (command == null )
-                        {
-                            return;
-                        }
-
-                        IStationHandler handler = StationHandlerFactory.GetHandler(station.stationType, this);
-                        await handler.HandleStationAsync(conveyorLine, station, command);
-                    })).ToList();
-
-                    await Task.WhenAll(tasks);
+                  
                 }
             }
             catch (Exception ex)
@@ -106,507 +85,6 @@
                 Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString());
             }
             return;
-        }
-
-        private Task ProcessDeviceAsync(CommonConveyorLine conveyorLine, string childDeviceCode)
-        {
-            try
-            {
-                // 璇诲彇浠诲姟鍛戒护鍜岃澶囧懡浠�
-                ConveyorLineTaskCommand command = ReadCommand(conveyorLine, childDeviceCode);
-                if (command != null)
-                {
-                    #region 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
-
-                    // 鑾峰彇缂撳瓨涓殑鐢ㄦ埛淇℃伅
-                    var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken");
-                    if (tokenInfos != null && tokenInfos.Any())
-                    {
-                        userTokenIds = tokenInfos.Select(x => x.Token_ID).ToList();
-                        userIds = tokenInfos.Select(x => x.UserId).ToList();
-
-                        // 鏋勯�犻�氱煡鏁版嵁
-                        object obj = new
-                        {
-                            command
-                        };
-                        // 鍙戦�侀�氱煡
-                        _noticeService.LineData(userIds.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, childDeviceCode, data = obj });
-                    }
-
-                    #endregion 璋冪敤浜嬩欢鎬荤嚎閫氱煡鍓嶇
-
-                    var structs = BitConverter.GetBytes(command.InteractiveSignal).Reverse().ToArray().ToBoolArray();
-                    // 鑾峰彇璁惧鍗忚璇︽儏
-                    List<DeviceProtocolDetailDTO>? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.Where(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand.InteractiveSignal)).ToList();
-
-                    if (deviceProtocolDetails != null)
-                    {
-                        foreach (var item in deviceProtocolDetails)
-                        {
-                            int itemValue = item.ProtocalDetailValue.ObjToInt();
-                            if (structs[itemValue] == true)
-                            {
-                                // 鑾峰彇澶勭悊鏂规硶
-                                MethodInfo? method = GetType().GetMethod(item.ProtocolDetailType);
-                                if (method != null)
-                                {
-                                    // 璋冪敤澶勭悊鏂规硶
-                                    method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, itemValue });
-                                }
-                            }
-                        }
-                    }
-
-               }
-            }
-            catch (Exception ex)
-            {
-            }
-            return Task.CompletedTask;
-        }
-
-        #region 鍏ュ簱
-
-        /// <summary>
-        /// 杈撻�佺嚎璇锋眰鍏ュ簱
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        public async Task RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            try
-            {
-                // 杈撳嚭璀﹀憡淇℃伅锛岃〃绀轰换鍔″凡鍒拌揪瀛愯澶囧苟璇锋眰鎵爜鍏ュ簱
-                var log = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�";
-                ConsoleHelper.WriteWarningLine(log);
-                // 鍙戦�侀�氱煡
-                await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                WriteInfo(conveyorLine.DeviceName, log);
-
-                // 鏌ヨ鏉$爜瀵瑰簲鐨勪换鍔�
-                var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode.ToString(), childDeviceCode);
-                if (task != null)
-                {
-                    // 濡傛灉浠诲姟绫诲瀷鏄嚭搴撴垨鍑烘墭鐩橈紝鍒欏鐞嗗嚭搴撲换鍔�
-                    if (task.TaskType == (int)TaskOutboundTypeEnum.OutTray || task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
-                    {
-                        HandleTaskOut(conveyorLine, command, childDeviceCode, ProtocalDetailValue, task);
-                    }
-                    else
-                    {
-                        // 鑾峰彇浠诲姟鐨勪笅涓�鐩爣鍦板潃
-                        var next = task.NextAddress;
-                        // 灏嗕换鍔℃槧灏勪负鍛戒护
-                        var taskCommand = MapTaskCommand(task, command);
-                        // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃
-                        task.NextAddress = next;
-                        // 鍙戦�佸懡浠ゅ埌瀛愯澶�
-                        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-                        // 杈撳嚭璀﹀憡淇℃伅锛岃〃绀轰换鍔″凡鍒拌揪瀛愯澶囧苟璇锋眰鎵爜鍏ュ簱锛屼笅涓�鐩爣鍦板潃
-                        var logs = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                        ConsoleHelper.WriteWarningLine(logs);
-
-                        await _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, logs);
-
-                        // 鍙戦�佷换鍔″畬鎴愰�氱煡
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                        // 鏇存柊浠诲姟鐘舵�佷负涓嬩竴鐘舵��
-                        _taskService.UpdateTaskStatusToNext(task);
-                    }
-                }
-                else
-                {
-                    // 濡傛灉浠诲姟涓虹┖涓旀潯鐮佷笉涓�"NoRead"涓旀潯鐮佷笉涓虹┖锛屽垯澶勭悊鏂颁换鍔�
-                    if (task == null && command.Barcode.ToString() != "NoRead" && command.Barcode.IsNotEmptyOrNull())
-                    {
-                        // 鏌ヨ鏉$爜瀵瑰簲鐨勪换鍔�
-                        task = _taskService.QueryBarcodeTask(command.Barcode.ToString(), childDeviceCode);
-                        if (task == null)
-                            // 寮傛澶勭悊鏂颁换鍔�
-                            await HandleNewTaskAsync(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                // 鎹曡幏骞惰緭鍑哄紓甯镐俊鎭�
-                Console.Out.WriteLine(ex.ToString());
-            }
-        }
-
-        #region 杈撻�佺嚎璇锋眰鍏ュ簱涓嬩竴鍦板潃
-
-        /// <summary>
-        /// 杈撻�佺嚎璇锋眰鍏ュ簱涓嬩竴鍦板潃
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        public void RequestInNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
-        {
-            var log = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傚叆搴撲笅涓�鍦板潃";
-            ConsoleHelper.WriteWarningLine(log);
-
-            _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-            WriteInfo(conveyorLine.DeviceName, log);
-
-            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode.ToString());
-            if (task != null)
-            {
-                if (command.Barcode.ToString() == task.PalletCode)
-                {
-                    Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
-                    if (newTask != null)
-                    {
-                        //ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask);
-                        //taskCommand.InteractiveSignal = command.InteractiveSignal;
-                        var next = newTask.NextAddress;
-                        var taskCommand = MapTaskCommand(newTask, command);
-                        newTask.NextAddress = next;
-
-                        var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傚叆搴撲笅涓�鍦板潃,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                        ConsoleHelper.WriteWarningLine(logs);
-
-                        _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, logs);
-
-                        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                        _taskService.UpdateData(newTask);
-                    }
-                }
-            }
-        }
-
-        #endregion 杈撻�佺嚎璇锋眰鍏ュ簱涓嬩竴鍦板潃
-
-        /// <summary>
-        /// 杈撻�佺嚎鍏ュ簱瀹屾垚
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            try
-            {
-                var log = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚";
-                ConsoleHelper.WriteWarningLine(log);
-
-                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                WriteInfo(conveyorLine.DeviceName, log);
-
-                var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode.ToString());
-                if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish)
-                {
-                    if (command.Barcode.ToString() == task.PalletCode && childDeviceCode == task.NextAddress)
-                    {
-                        if (task.TaskType == (int)TaskInboundTypeEnum.InNG)
-                        {
-                            int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>();
-
-                            var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress);
-                            task.CurrentAddress = station.stationLocation;
-                            task.NextAddress = station.stationNGLocation;
-                            task.TargetAddress = task.NextAddress;
-                            task.TaskState = nextStatus;
-                            task.ModifyDate = DateTime.Now;
-                            task.Modifier = "System";
-                            _taskRepository.UpdateData(task);
-
-                            conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode);
-
-                            var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�";
-                            ConsoleHelper.WriteWarningLine(logs);
-
-                            _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                            WriteInfo(conveyorLine.DeviceName, logs);
-
-                            ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                        }
-                        else
-                        {
-                            WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
-                            WriteInfo(conveyorLine.DeviceName, content.ToJsonString());
-                            if (!content.Status)
-                            {
-                                ConsoleHelper.WriteWarningLine($"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,浠诲姟鎵ц澶辫触{JsonConvert.SerializeObject(content)}");
-                                return;
-                            }
-
-                            conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode);
-
-                            var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍏ュ簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆愮瓑寰呭垎閰嶈揣浣�,骞跺啓鍏�1000銆�";
-                            ConsoleHelper.WriteWarningLine(logs);
-
-                            _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                            WriteInfo(conveyorLine.DeviceName, logs);
-
-                            ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                            Console.Out.WriteLine(content.ToJsonString());
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-            }
-        }
-
-        #endregion 鍏ュ簱
-
-        #region 鍑哄簱
-
-        /// <summary>
-        /// 杈撻�佺嚎璇锋眰鍑轰俊鎭�
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        public void RequestOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            try
-            {
-                // 鏌ヨ杈撻�佺嚎浠诲姟锛屾牴鎹緭閫佺嚎璁惧鍜屽瓙璁惧浠g爜鑾峰彇浠诲姟淇℃伅
-                var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
-
-                // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮佸拰瀛愯澶囦唬鐮侊紝浠ュ強浠诲姟淇℃伅
-                var logs = $"鏃堕棿锛氥�恵DateTime.Now}銆戙�恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,task{task.ToJsonString()}";
-                ConsoleHelper.WriteSuccessLine(logs);
-
-                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                WriteInfo(conveyorLine.DeviceName, logs);
-
-                // 濡傛灉浠诲姟涓嶄负绌猴紝鍒欐墽琛屼互涓嬫搷浣�
-                if (task != null)
-                {
-                    // 鑾峰彇浠诲姟鐨勪笅涓�鐩爣鍦板潃
-                    var next = task.NextAddress;
-
-                    // 灏嗕换鍔″懡浠ゆ槧灏勫埌褰撳墠浠诲姟
-                    var taskCommand = MapTaskCommand(task, command);
-
-                    // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃
-                    task.NextAddress = next;
-
-                    // 杈撳嚭鎴愬姛淇℃伅锛屽寘鎷緭閫佺嚎鍚嶇О銆佷换鍔″彿銆佹墭鐩樻潯鐮併�佸瓙璁惧浠g爜鍜屼笅涓�鐩爣鍦板潃
-                    var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                    ConsoleHelper.WriteSuccessLine(log);
-
-                    _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                    WriteInfo(conveyorLine.DeviceName, log);
-
-                    // 鍚戣緭閫佺嚎鍙戦�佸懡浠�
-                    conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-                    // 瀹屾垚杈撻�佺嚎鍙戦�佷换鍔★紝骞舵洿鏂颁换鍔$姸鎬�
-                    ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-                    // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬�
-                    _taskService.UpdateTaskStatusToNext(task);
-
-                    // 濡傛灉浠诲姟鐨勭洰鏍囧湴鍧�鏄�"1020-1"锛屽垯鍐嶆鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬�
-                    if (task.TargetAddress == "1020-1"|| task.TargetAddress == "1049-8")
-                    {
-                        _taskService.UpdateTaskStatusToNext(task);
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-            }
-        }
-
-        /// <summary>
-        /// 杈撻�佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        public void RequestOutNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            // 鎵撳嵃鎴愬姛鏃ュ織锛屾樉绀哄綋鍓嶈澶囧悕绉般�佷换鍔″彿銆佹墭鐩樻潯鐮佷互鍙婅姹傚嚭搴撲笅涓�鍦板潃鐨勫瓙璁惧浠g爜
-            var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃";
-            ConsoleHelper.WriteSuccessLine(log);
-
-            _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-            WriteInfo(conveyorLine.DeviceName, log);
-
-            // 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟锛屾牴鎹换鍔″彿鍜屽瓙璁惧浠g爜鑾峰彇浠诲姟淇℃伅
-            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode.ToString());
-
-            // 濡傛灉浠诲姟瀛樺湪
-            if (task != null)
-            {
-                // 妫�鏌ヤ换鍔′腑鐨勬墭鐩樻潯鐮佹槸鍚︿笌鍛戒护涓殑鎵樼洏鏉$爜涓�鑷�
-                if (command.Barcode.ToString() == task.PalletCode)
-                {
-                    // 鏇存柊浠诲姟鐨勪綅缃俊鎭紝骞惰幏鍙栨洿鏂板悗鐨勪换鍔″璞�
-                    Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
-
-                    // 濡傛灉鏇存柊鍚庣殑浠诲姟瀵硅薄涓嶄负绌�
-                    if (newTask != null)
-                    {
-                        // 鑾峰彇涓嬩竴鐩爣鍦板潃
-                        var next = newTask.NextAddress;
-
-                        // 灏嗘柊浠诲姟瀵硅薄鏄犲皠涓轰换鍔″懡浠ゅ璞�
-                        var taskCommand = MapTaskCommand(newTask, command);
-
-                        // 鎭㈠鏂颁换鍔″璞$殑涓嬩竴鐩爣鍦板潃
-                        newTask.NextAddress = next;
-
-                        // 鎵撳嵃鎴愬姛鏃ュ織锛屾樉绀哄綋鍓嶈澶囧悕绉般�佷换鍔″彿銆佹墭鐩樻潯鐮併�佸瓙璁惧浠g爜浠ュ強涓嬩竴鐩爣鍦板潃
-                        var logs = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎璇锋眰鍑哄簱涓嬩竴鍦板潃,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                        ConsoleHelper.WriteSuccessLine(logs);
-
-                        _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, logs);
-
-                        // 鍙戦�佷换鍔″懡浠ゅ埌瀛愯澶�
-                        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-                        // 鏍囪杈撻�佺嚎鍙戦�佷换鍔″畬鎴�
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-                        _taskService.UpdateData(newTask);
-                    }
-                }
-            }
-        }
-
-        /// <summary>
-        /// 杈撻�佺嚎鍑哄簱瀹屾垚
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            try
-            {
-                // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴�
-                var logs = $"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚";
-                ConsoleHelper.WriteSuccessLine(logs);
-
-                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = logs, time = DateTime.Now.ToString("G"), color = "red" });
-                WriteInfo(conveyorLine.DeviceName, logs);
-
-                // 鏌ヨ姝e湪鎵ц鐨勮緭閫佺嚎浠诲姟
-                var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode, command.Barcode.ToString());
-
-                // 濡傛灉浠诲姟瀛樺湪
-                if (task != null)
-                {
-                    // 濡傛灉浠诲姟涓殑鎵樼洏鏉$爜涓庡懡浠や腑鐨勬墭鐩樻潯鐮佷竴鑷�
-                    if (command.Barcode.ToString() == task.PalletCode)
-                    {
-                        // 鍒涘缓涓�涓┖鐨刉ebResponseContent瀵硅薄
-                        WebResponseContent content = new WebResponseContent();
-
-                        // 淇濆瓨浠诲姟鐨勪笅涓�鐩爣鍦板潃
-                        var next = task.NextAddress;
-                        // 灏嗕换鍔℃槧灏勪负鍛戒护
-                        var taskCommand = MapTaskCommand(task, command);
-                        // 鎭㈠浠诲姟鐨勪笅涓�鐩爣鍦板潃
-                        task.NextAddress = next;
-
-                        // 濡傛灉浠诲姟鐨勬墭鐩樻潯鐮佷笌鍛戒护涓殑鎵樼洏鏉$爜涓嶄竴鑷存垨鑰呬换鍔″娉ㄤ负"NG"
-                        if (task.PalletCode != command.Barcode.ToString() || task.Remark == "NG")
-                        {
-                            // 璁剧疆鍛戒护鐨勭洰鏍囧湴鍧�涓篘G鍦板潃
-                            taskCommand.TargetAddress = 1;
-                        }
-                        else
-                        {
-                            // 璁剧疆鍛戒护鐨勭洰鏍囧湴鍧�涓�1000
-                            taskCommand.TargetAddress = 1000;
-                        }
-
-                        // 鎵撳嵃鎴愬姛淇℃伅锛岃〃绀烘墭鐩樺凡鍒拌揪鎸囧畾杈撻�佺嚎骞跺畬鎴愬嚭搴擄紝涓嬩竴鐩爣鍦板潃宸茬‘瀹�
-                        var log = $"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣緭閫佺嚎鍑哄簱瀹屾垚,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                        ConsoleHelper.WriteSuccessLine(log);
-
-                        _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, log);
-
-                        // 鍙戦�佸懡浠ゅ埌杈撻�佺嚎
-                        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                        // 瀹屾垚杈撻�佺嚎鍙戦��
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                        // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬�
-                        content = _taskService.UpdateTaskStatusToNext(task);
-                    }
-                    else
-                    {
-                     
-                        // 瀹屾垚杈撻�佺嚎鍙戦��
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                        // 鏇存柊浠诲姟鐘舵�佸埌涓嬩竴涓姸鎬�
-                        _taskService.UpdateTaskStatusToNext(task);
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-            }
-        }
-
-        #endregion 鍑哄簱
-
-        /// <summary>
-        /// 杈撻�佺嚎浜や簰瀹屾垚
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        /// <param name="value">鍊�</param>
-        public void ConveyorLineSendFinish(CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue, bool value)
-        {
-            // 浠巆onveyorLine涓殑DeviceProDTOs鍒楄〃涓煡鎵剧涓�涓鍚堟潯浠剁殑DeviceProDTO瀵硅薄
-            // 鏉′欢鏄疍eviceProParamType绛変簬DeviceCommand锛屼笖DeviceChildCode绛変簬childDeviceCode
-            // 鏌ユ壘缁撴灉鎸塂eviceProOffset鍗囧簭鎺掑垪
-            DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == childDeviceCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
-
-            // 灏哾evicePro鐨凞eviceProAddress鎸�'.'鍒嗗壊鎴愬瓧绗︿覆鏁扮粍x
-            string[] x = devicePro.DeviceProAddress.Split('.');
-
-            // 灏嗘暟缁剎鐨勬渶鍚庝竴涓厓绱犳浛鎹负ProtocalDetailValue鍔�1鍚庣殑瀛楃涓插舰寮�
-            x[x.Length - 1] = (ProtocalDetailValue + 1).ToString();
-
-            // 灏嗕慨鏀瑰悗鐨勬暟缁剎閲嶆柊鎷兼帴鎴愬瓧绗︿覆锛屼綔涓烘柊鐨凞eviceProAddress
-            string DeviceProAddress = string.Join(".", x);
-
-            var writeBool = conveyorLine.Communicator.Read<bool>(DeviceProAddress);
-            if (writeBool != value)
-            {
-                // 浣跨敤conveyorLine鐨凜ommunicator瀵硅薄鐨刉rite鏂规硶锛屽皢value鍐欏叆鏂扮殑DeviceProAddress鍦板潃
-                conveyorLine.Communicator.Write(DeviceProAddress, value);
-            }
-        }
-
-        public async Task LogAndWarn(string deviceName, string log, string color = "red")
-        {
-            ConsoleHelper.WriteWarningLine(log);
-            await _noticeService.Logs(userTokenIds, new { deviceName, log = log, time = DateTime.Now.ToString("G"), color = color });
-            WriteInfo(deviceName, log);
-        }
-
-        private ConveyorLineTaskCommand ReadCommand(CommonConveyorLine conveyorLine,string childDeviceCode)
-        {
-            ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode);
-
-            DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == childDeviceCode && x.DeviceProParamName == "ConveyorLineBarcode").FirstOrDefault();
-            byte[] Barcode = conveyorLine.Communicator.Read(devicePro.DeviceProAddress, 10);
-
-            command.Barcode = Encoding.ASCII.GetString(Barcode);
-            return command;
         }
 
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs"
index 97fa599..3dbae4d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/ConveyorLineDBName.cs"
@@ -81,8 +81,30 @@
         /// <summary>
         /// 鎵樼洏绫诲瀷
         /// </summary>
-        WriteConveyorLineTrayType
+        WriteConveyorLineTrayType,
 
         #endregion
+
+        #region AGVDevice
+        /// <summary>
+        /// 鍏佽鏀捐揣
+        /// </summary>
+        AllowPut,
+
+        /// <summary>
+        /// 鍏佽鍙栬揣
+        /// </summary>
+        AllowPickUp,
+
+        /// <summary>
+        /// AGV鏀捐揣瀹屾垚
+        /// </summary>
+        PutFinish,
+
+        /// <summary>
+        /// AGV鍙栬揣瀹屾垚
+        /// </summary>
+        PickUpFinish
+        #endregion
     }
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/EmptyTrayStationHandler.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/EmptyTrayStationHandler.cs"
deleted file mode 100644
index 6a8c5a7..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/EmptyTrayStationHandler.cs"
+++ /dev/null
@@ -1,32 +0,0 @@
-锘縰sing HslCommunication;
-using MoYu;
-using WIDESEAWCS_ITaskInfoRepository;
-using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-
-namespace WIDESEAWCS_Tasks.ConveyorLineJob
-{
-    public class EmptyTrayStationHandler : IStationHandler
-    {
-        private readonly CommonConveyorLineJob _commonConveyorLineJob;
-
-        public EmptyTrayStationHandler(CommonConveyorLineJob commonConveyorLineJob)
-        {
-            _commonConveyorLineJob = commonConveyorLineJob;
-        }
-
-        public async Task HandleStationAsync(CommonConveyorLine conveyorLine, Dt_StationManager station, ConveyorLineTaskCommand command)
-        {
-            var structs = BitConverter.GetBytes(command.InteractiveSignal).Reverse().ToArray().ToBoolArray();
-            if (structs[0])
-            {
-                var log = $"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戠┖鎵樼洏璇锋眰鎵爜鍏ュ簱";
-                await _commonConveyorLineJob.LogAndWarn(conveyorLine.DeviceName, log);
-            }
-            else
-            {
-                _commonConveyorLineJob.ConveyorLineSendFinish(conveyorLine, station.stationChildCode, 0, false);
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/ExceptionPortStationHandler.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/ExceptionPortStationHandler.cs"
deleted file mode 100644
index f36d6d8..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/ExceptionPortStationHandler.cs"
+++ /dev/null
@@ -1,41 +0,0 @@
-锘縰sing HslCommunication;
-using MoYu;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEAWCS_ITaskInfoRepository;
-using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-
-namespace WIDESEAWCS_Tasks.ConveyorLineJob.StationHandler
-{
-    public class ExceptionPortStationHandler : IStationHandler
-    {
-        private readonly CommonConveyorLineJob _commonConveyorLineJob;
-        private readonly ITaskRepository _taskRepository = App.GetService<ITaskRepository>();
-        public ExceptionPortStationHandler(CommonConveyorLineJob commonConveyorLineJob)
-        {
-            _commonConveyorLineJob = commonConveyorLineJob;
-        }
-        public async Task HandleStationAsync(CommonConveyorLine conveyorLine, Dt_StationManager station, ConveyorLineTaskCommand command)
-        {
-            var structs = BitConverter.GetBytes(command.InteractiveSignal).Reverse().ToArray().ToBoolArray();
-            if (structs[0])
-            {
-                if (_taskRepository.QueryData(x => x.SourceAddress == station.stationChildCode).Count() > 0)
-                {
-                    return;
-                }
-                var log = $"銆恵conveyorLine.DeviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵station.stationChildCode}銆戝紓甯稿彛璇锋眰鎵爜鍏ュ簱";
-                await _commonConveyorLineJob.LogAndWarn(conveyorLine.DeviceName, log);
-                await _commonConveyorLineJob.HandleNewTaskAsync(conveyorLine, command, station.stationChildCode, 0);
-            }
-            else
-            {
-                _commonConveyorLineJob.ConveyorLineSendFinish(conveyorLine, station.stationChildCode, 0, false);
-            }
-        }
-    }
-}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/IStationHandler.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/IStationHandler.cs"
deleted file mode 100644
index 15a0a5f..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/IStationHandler.cs"
+++ /dev/null
@@ -1,15 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-
-namespace WIDESEAWCS_Tasks.ConveyorLineJob
-{
-    public interface IStationHandler
-    {
-        Task HandleStationAsync(CommonConveyorLine conveyorLine, Dt_StationManager station, ConveyorLineTaskCommand command);
-    }
-}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/StationHandlerFactory.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/StationHandlerFactory.cs"
deleted file mode 100644
index 877bb8c..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/StationHandler/StationHandlerFactory.cs"
+++ /dev/null
@@ -1,27 +0,0 @@
-锘縰sing MoYu;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using WIDESEAWCS_Tasks.ConveyorLineJob.StationHandler;
-
-namespace WIDESEAWCS_Tasks.ConveyorLineJob
-{
-    public class StationHandlerFactory
-    {
-        public static IStationHandler GetHandler(int stationType, CommonConveyorLineJob commonConveyorLineJob)
-        {
-            switch (stationType)
-            {
-                case 11:
-                    return new EmptyTrayStationHandler(commonConveyorLineJob);
-                case 5:
-                    return new ExceptionPortStationHandler(commonConveyorLineJob);
-                default:
-                    throw new ArgumentException($"Unsupported station type: {stationType}");
-            }
-        }
-    }
-
-}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/MemoryLockManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/MemoryLockManager.cs"
deleted file mode 100644
index 8fe2e7a..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/MemoryLockManager.cs"
+++ /dev/null
@@ -1,40 +0,0 @@
-锘縩amespace WIDESEAWCS_Tasks
-{
-    public static class MemoryLockManager
-    {
-        private static Dictionary<string, SemaphoreSlim> _locks = new Dictionary<string, SemaphoreSlim>();
-
-        /// <summary>
-        /// 寮�鍚攣
-        /// </summary>
-        /// <param name="jobName"></param>
-        /// <returns></returns>
-        public static bool TryAcquireLock(string jobName)
-        {
-            if (!_locks.ContainsKey(jobName))
-            {
-                _locks[jobName] = new SemaphoreSlim(1, 1);
-            }
-            try
-            {
-                return _locks[jobName].Wait(0);
-            }
-            catch (Exception)
-            {
-                return false;
-            }
-        }
-
-        /// <summary>
-        /// 閲婃斁閿�
-        /// </summary>
-        /// <param name="jobName"></param>
-        public static void ReleaseLock(string jobName)
-        {
-            if (_locks.ContainsKey(jobName))
-            {
-                _locks[jobName].Release();
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs"
deleted file mode 100644
index b3ffc23..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs"
+++ /dev/null
@@ -1,268 +0,0 @@
-锘縰sing HslCommunication;
-using Mapster;
-using Newtonsoft.Json;
-using System.Text.RegularExpressions;
-using System.Threading.Tasks;
-using WIDESEAWCS_Common;
-using WIDESEAWCS_Common.TaskEnum;
-using WIDESEAWCS_Core;
-using WIDESEAWCS_Core.Helper;
-using WIDESEAWCS_DTO.TaskInfo;
-using WIDESEAWCS_DTO.WMS;
-using WIDESEAWCS_Model.Models;
-using WIDESEAWCS_QuartzJob;
-using WIDESEAWCS_Tasks.ConveyorLineJob;
-
-namespace WIDESEAWCS_Tasks
-{
-    public partial class CommonConveyorLineJob
-    {
-        /// <summary>
-        /// 澶勭悊鍑哄簱浠诲姟
-        /// </summary>
-        private void HandleTaskOut(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_Task taskOut)
-        {
-            if (taskOut == null) return;
-            //ConveyorLineTaskCommand? taskCommand = MapTaskCommand(taskOut, command);
-
-            var next = taskOut.NextAddress;
-            var taskCommand = MapTaskCommand(taskOut, command);
-            taskOut.NextAddress = next;
-
-            bool isOutTray = taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray;
-            bool isOutboundAndOutFinish = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.SC_OutFinish;
-            bool isOutboundAndLineOutExecuting = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting;
-
-            if (isOutTray || isOutboundAndOutFinish || !isOutboundAndLineOutExecuting)
-            {
-                conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-                var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�,涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                ConsoleHelper.WriteWarningLine(log);
-
-                _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                WriteInfo(conveyorLine.DeviceName, log);
-
-                ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                _taskService.UpdateTaskStatusToNext(taskOut);
-            }
-            else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
-            {
-                CompleteWmsTask(taskOut, command, conveyorLine, childDeviceCode, ProtocalDetailValue);
-            }
-        }
-
-        /// <summary>
-        /// 澶勭悊鏂颁换鍔�
-        /// </summary>
-        public async Task HandleNewTaskAsync(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode && x.stationPLC == conveyorLine.DeviceCode);
-
-            switch (stationManager.stationType)
-            {
-                case 5:
-                case 1:
-                    await RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
-                    break;
-
-                case 2:
-                case 3:
-                case 4:
-                case 6:
-                    await CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
-                    break;
-
-                case 7:
-                    RequestOutNextAddress(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
-                    break;
-
-                case 10:
-                    ConveyorLineOutFinish(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
-                    break;
-
-                default:
-                    break;
-            }
-        }
-
-        /// <summary>
-        /// 鏄犲皠浠诲姟鍛戒护
-        /// </summary>
-        private ConveyorLineTaskCommand MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand command)
-        {
-            // 浣跨敤姝e垯琛ㄨ揪寮忓尮閰嶇被浼� -鏁板瓧 鐨勬ā寮忥紝骞舵浛鎹负绌哄瓧绗︿覆
-            task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", "");
-            if (Convert.ToInt32(task.NextAddress) > 1999)
-            {
-                task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString();
-            }
-            var comm = _mapper.Map<ConveyorLineTaskCommand>(task);
-            comm.InteractiveSignal = command.InteractiveSignal;
-            return comm;
-        }
-
-        /// <summary>
-        /// 瀹屾垚WMS浠诲姟
-        /// </summary>
-        private void CompleteWmsTask(Dt_Task taskOut, ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue)
-        {
-            if (command.Barcode.ToString() == "NoRead")
-            {
-
-                taskOut.TargetAddress = "1";
-            }
-
-            var keys = new Dictionary<string, object>()
-            {
-                {"taskNum", taskOut.TaskNum}
-            };
-            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-            var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue;
-            if (wmsBase == null || completeTask == null)
-            {
-                throw new InvalidOperationException("WMS IP 鏈厤缃�");
-            }
-            var wmsIpAddress = wmsBase + completeTask;
-
-            var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result;
-            WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-            if (content.Status)
-            {
-                ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                _taskService.UpdateTaskStatusToNext(taskOut);
-            }
-        }
-
-        /// <summary>
-        /// 鍒涘缓骞跺彂閫佺┖鎵樼洏浠诲姟
-        /// </summary>
-        public Task CreateAndSendEmptyTrayTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            if (command.Barcode.ToString() != "NoRead")
-            {
-                var taskDTO = CreateEmptyTrayTaskDto(command.Barcode.ToString(), childDeviceCode);
-
-                if (_taskRepository.QueryFirst(x => x.PalletCode == taskDTO.PalletCode) != null)
-                {
-                    if (_taskRepository.QueryFirst(x => x.PalletCode == command.Barcode.ToString()) != null)
-                    {
-
-                        var taskExecuting = _taskRepository.QueryFirst(x => x.PalletCode == command.Barcode.ToString() && (x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting || x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish));
-
-                        if (taskExecuting != null)
-                        {
-                            taskExecuting.ExceptionMessage = "鏈帴鏀跺埌绾夸綋瀹屾垚淇″彿绯荤粺鍐呴儴鑷姩瀹屾垚";
-                            _taskService.Delete(taskExecuting);
-                        }
-
-                        ConsoleHelper.WriteErrorLine($"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵command.Barcode}銆�");
-
-                        WriteInfo(conveyorLine.DeviceName, $"褰撳墠鎵樼洏瀛樺湪浠诲姟{command.Barcode}");
-
-                    }
-                    WriteInfo(conveyorLine.DeviceName, "褰撳墠鎵樼洏瀛樺湪浠诲姟");
-                }
-            }
-
-            return Task.CompletedTask;
-        }
-
-        /// <summary>
-        /// 鍒涘缓绌烘墭鐩樹换鍔TO
-        /// </summary>
-        private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode)
-        {
-            var request = new RequestTaskDto()
-            {
-                Position = childDeviceCode,
-                PalletCode = barcode,
-            };
-
-            var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress);
-            var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue;
-            var requestTrayInTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTrayInTask)?.ConfigValue;
-            if (wmsBase == null || requestTrayInTask == null)
-            {
-                throw new InvalidOperationException("WMS IP 鏈厤缃�");
-            }
-            var wmsIpAddrss = wmsBase + requestTrayInTask;
-            var result = HttpHelper.PostAsync(wmsIpAddrss, request.ToJsonString()).Result;
-            if (result == null)
-                return new WMSTaskDTO();
-
-            WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-            if (!content.Status)
-                return new WMSTaskDTO();
-
-            return JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-        }
-
-        /// <summary>
-        /// 璇锋眰WMS浠诲姟
-        /// </summary>
-        private async Task RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
-        {
-            var content = await _taskService.RequestWMSTask(command.Barcode.ToString(), childDeviceCode);
-            if (content.Status)
-            {
-                var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode.ToString(), childDeviceCode);
-                if (task != null)
-                {
-                    var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue;
-                    var valueList = value.Split(',').ToList();
-                    if (valueList.Contains(task.SourceAddress))
-                    {
-                        conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode);
-
-                        var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵task.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵task.PalletCode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵1000}銆�";
-                        ConsoleHelper.WriteWarningLine(log);
-
-                        _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, log);
-
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                    }
-                    else if (task.TargetAddress == "1020-1" || task.TargetAddress == "1049-8")
-                    {
-                        var next = task.NextAddress;
-                        var taskCommand = MapTaskCommand(task, command);
-                        task.NextAddress = next;
-
-                        var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                        ConsoleHelper.WriteWarningLine(log);
-
-                        _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, log);
-
-                        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-                        var taskHty = task.Adapt<Dt_Task_Hty>();
-                        _task_HtyRepository.AddData(taskHty);
-                        _taskService.DeleteData(task);
-                    }
-                    else
-                    {
-                        var next = task.NextAddress;
-                        var taskCommand = MapTaskCommand(task, command);
-                        task.NextAddress = next;
-
-                        var log = $"銆恵conveyorLine._deviceName}銆戜换鍔″彿锛氥�恵command.TaskNum}銆�,鎵樼洏鏉$爜锛氥�恵command.Barcode}銆戝凡鍒拌揪銆恵childDeviceCode}銆戣姹傛壂鐮佸叆搴�(瀹炵洏),涓嬩竴鐩爣鍦板潃銆恵taskCommand.TargetAddress}銆�";
-                        ConsoleHelper.WriteWarningLine(log);
-
-                        _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                        WriteInfo(conveyorLine.DeviceName, log);
-
-                        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-                        _taskService.UpdateTaskStatusToNext(task);
-                    }
-                }
-            }
-            else
-                WriteInfo(conveyorLine.DeviceName, content.Message);
-        }
-    }
-}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DeleteLog/CommonDeleteLogJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DeleteLog/CommonDeleteLogJob.cs"
index f4c903d..77e9f3c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DeleteLog/CommonDeleteLogJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/DeleteLog/CommonDeleteLogJob.cs"
@@ -1,4 +1,5 @@
-锘縰sing Newtonsoft.Json;
+锘�
+using Newtonsoft.Json;
 using Quartz;
 using System;
 using System.Collections.Generic;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs"
index 2adf359..d81e86b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ElevatorJob/ElevatorDBName.cs"
@@ -34,22 +34,22 @@
         /// <summary>
         /// 涓�妤煎厑璁告斁璐�
         /// </summary>
-        OneLayerPut,
+        OneLayerAllowPut,
 
         /// <summary>
         /// 涓�妤煎厑璁稿彇璐�
         /// </summary>
-        OneLayerPickU,
+        OneLayerAllowPickUp,
 
         /// <summary>
         /// 浜屾ゼ鍏佽鏀捐揣
         /// </summary>
-        TwoLayerPut,
+        TwoLayerAllowPut,
 
         /// <summary>
         /// 浜屾ゼ鍏佽鍙栬揣
         /// </summary>
-        TwoLayerPickUp,
+        TwoLayerAllowPickUp,
 
         /// <summary>
         /// 浠诲姟鍙�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index 9c7d19e..38fd11b 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -1,4 +1,6 @@
-锘縰sing Mapster;
+锘縰sing HslCommunication;
+using Mapster;
+using Microsoft.AspNetCore.Components.Routing;
 using Newtonsoft.Json;
 using Quartz;
 using System.Diagnostics.CodeAnalysis;
@@ -20,6 +22,7 @@
 using WIDESEAWCS_QuartzJob.Service;
 using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
 using WIDESEAWCS_SignalR;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
 using WIDESEAWCS_Tasks.StackerCraneJob;
 
 namespace WIDESEAWCS_Tasks
@@ -230,7 +233,21 @@
                     var task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum);
 
                     if (task == null) commonStackerCrane.SetValue(StackerCraneDBName.FinishConfirm, 1);
+                    string x = $"銆恵commonStackerCrane.StackerCraneWorkStatusValue}銆�";
 
+                    //if(task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+                    //{
+                    //    CommonConveyorLine? conveyorLine = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1001") as CommonConveyorLine;
+                    //    if (conveyorLine != null)
+                    //    {
+                    //        short InteractiveSignal = conveyorLine.GetValue<ConveyorLineDBName, short>(ConveyorLineDBName.InteractiveSignal, "101");
+                    //        var structs = BitConverter.GetBytes(InteractiveSignal).Reverse().ToArray().ToBoolArray();
+                    //        if (structs[0])
+                    //        {
+                    //            conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTaskNum, "9999", "101");
+                    //        }
+                    //    }
+                    //}
 
                     var content = _taskService.StackCraneTaskCompleted(e.TaskNum);
 
@@ -238,7 +255,7 @@
 
 
                     str = $"{commonStackerCrane.DeviceName}銆慦MS|WCS浠诲姟瀹屾垚锛氥�恵content.Status}{content.Message}銆�,鍫嗗灈鏈哄畬鎴愪俊鍙峰啓鍏ワ細銆恵isWorkType}銆�,浠诲姟鍙凤細銆恵e.TaskNum}銆戞椂闂淬�恵DateTime.Now}銆�";
-                    WriteInfo(commonStackerCrane.DeviceName, str);
+                    WriteInfo(commonStackerCrane.DeviceName, str+x);
                     ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue);
                 }
             }
@@ -281,30 +298,30 @@
 
             if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
             {
-                // 妫�鏌ュ綋鍓嶅嚭搴撲换鍔$珯鍙版槸鍚﹀厑璁告斁璐�
-                var occupiedStation = OutTaskStationIsOccupied(task);
-                if (occupiedStation == null)
-                {
-                    // 濡傛灉褰撳墠鍑哄簱浠诲姟绔欏彴涓嶅厑璁告斁璐э紝鎺掗櫎褰撳墠浠诲姟锛屾煡鎵惧叾浠栧嚭搴撲换鍔�
+                //    // 妫�鏌ュ綋鍓嶅嚭搴撲换鍔$珯鍙版槸鍚﹀厑璁告斁璐�
+                //    var occupiedStation = OutTaskStationIsOccupied(task);
+                //    if (occupiedStation == null)
+                //    {
+                //        // 濡傛灉褰撳墠鍑哄簱浠诲姟绔欏彴涓嶅厑璁告斁璐э紝鎺掗櫎褰撳墠浠诲姟锛屾煡鎵惧叾浠栧嚭搴撲换鍔�
 
-                    var log = $"浠诲姟鍙凤細銆恵task.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵task.NextAddress}銆戜笉鍏佽鏀捐揣";
-                    ConsoleHelper.WriteErrorLine(log);
+                //        var log = $"浠诲姟鍙凤細銆恵task.TaskNum}銆戝嚭搴撳湴鍧�锛氥�恵task.NextAddress}銆戜笉鍏佽鏀捐揣";
+                //        ConsoleHelper.WriteErrorLine(log);
 
-                    _noticeService.Logs(userTokenIds, new { commonStackerCrane.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
-                    WriteInfo(commonStackerCrane.DeviceName, log);
+                //        _noticeService.Logs(userTokenIds, new { commonStackerCrane.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" });
+                //        WriteInfo(commonStackerCrane.DeviceName, log);
 
-                    task = FindAnotherOutboundTask(commonStackerCrane.DeviceCode, task.TaskId);
+                //        task = FindAnotherOutboundTask(commonStackerCrane.DeviceCode, task.TaskId);
 
-                    if (task == null)
-                    {
-                        task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
-                    }
-                }
-                else
-                {
-                    return task;
-                }
-
+                //        if (task == null)
+                //        {
+                //            task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode);
+                //        }
+                //    }
+                //    else
+                //    {
+                //        return task;
+                //    }
+                return task;
             }
             else if (task == null)
             {
@@ -390,83 +407,11 @@
         {
             StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand();
 
-            stackerCraneTaskCommand.Barcode = task.PalletCode;
-            stackerCraneTaskCommand.TaskNum = task.TaskNum;
-            stackerCraneTaskCommand.WorkType = 1;
-            stackerCraneTaskCommand.StartCommand = 1;
+            stackerCraneTaskCommand.TaskNum = Convert.ToInt16(task.TaskNum);
+            stackerCraneTaskCommand.WorkType = Convert.ToInt16(1);
+            stackerCraneTaskCommand.StartCommand = Convert.ToInt16(1);
             if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
             {
-                List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway);
-                if (routers.Count > 0)
-                {
-                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
-                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
-                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
-
-                    string[] targetCodes = task.NextAddress.Split("-");
-                    if (targetCodes.Length == 3)
-                    {
-                        stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
-                        stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
-                        stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
-                    }
-                    else
-                    {
-                        //鏁版嵁閰嶇疆閿欒
-                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
-                        return null;
-                    }
-                }
-                else
-                {
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅");
-                    return null;
-                }
-            }
-            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
-            {
-                List<Dt_Router> routers = _routerService.QueryNextRoutes(task.Roadway, task.TargetAddress);
-                if (routers.Count > 0)
-                {
-                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow);
-                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn);
-                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer);
-
-                    string[] sourceCodes = task.CurrentAddress.Split("-");
-                    if (sourceCodes.Length == 3)
-                    {
-                        stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
-                        stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
-                        stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
-                    }
-                    else
-                    {
-                        //鏁版嵁閰嶇疆閿欒
-                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
-                        return null;
-                    }
-                }
-                else
-                {
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鏀捐揣绔欏彴淇℃伅");
-                    return null;
-                }
-            }
-            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
-            {
-                string[] targetCodes = task.NextAddress.Split("-");
-                if (targetCodes.Length == 3)
-                {
-                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
-                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
-                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
-                }
-                else
-                {
-                    //鏁版嵁閰嶇疆閿欒
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
-                    return null;
-                }
                 string[] sourceCodes = task.CurrentAddress.Split("-");
                 if (sourceCodes.Length == 3)
                 {
@@ -477,7 +422,82 @@
                 else
                 {
                     //鏁版嵁閰嶇疆閿欒
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    return null;
+                }
+
+                string[] targetCodes = task.NextAddress.Split("-");
+                if (targetCodes.Length == 3)
+                {
+                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
+                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
+                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
+                }
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    return null;
+                }
+            }
+            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+            {
+                string[] sourceCodes = task.CurrentAddress.Split("-");
+                if (sourceCodes.Length == 3)
+                {
+                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
+                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
+                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
+                }
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    return null;
+                }
+
+                string[] targetCodes = task.NextAddress.Split("-");
+                if (targetCodes.Length == 3)
+                {
+                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
+                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
+                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
+                }
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    return null;
+                }
+
+            }
+            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
+            {
+                string[] sourceCodes = task.CurrentAddress.Split("-");
+                if (sourceCodes.Length == 3)
+                {
+                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2;
+                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
+                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
+                }
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    return null;
+                }
+
+                string[] targetCodes = task.NextAddress.Split("-");
+                if (targetCodes.Length == 3)
+                {
+                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2;
+                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
+                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
+                }
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
                     return null;
                 }
             }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskCommand.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskCommand.cs"
index a7caacf..856ec11 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskCommand.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/StackerCraneTaskCommand.cs"
@@ -34,7 +34,7 @@
         /// <summary>
         /// 浠诲姟鍙�
         /// </summary>
-        public int TaskNum { get; set; }
+        public short TaskNum { get; set; }
 
         /// <summary>
         /// 浣滀笟绫诲瀷
@@ -70,12 +70,6 @@
         /// 鐩爣灞�
         /// </summary>
         public short EndLayer { get; set; }
-
-        /// <summary>
-        /// 鎵樼洏鍙�
-        /// </summary>
-        [DataLength(30)]
-        public string Barcode { get; set; }
 
         /// <summary>
         /// 鍚姩鍛戒护
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/Dt_BillGroupStock.jsx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/Dt_BillGroupStock.jsx"
deleted file mode 100644
index e69de29..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/Dt_BillGroupStock.jsx"
+++ /dev/null
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue"
index fa53e7f..51fd09f 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationInfo.vue"
@@ -52,13 +52,10 @@
         { field: 'row', title: '琛�', type: 'string', width: 70, align: 'left' },
         { field: 'column', title: '鍒�', type: 'string', width: 70, align: 'left' },
         { field: 'layer', title: '灞�', type: 'string', width: 110, align: 'left' },
-        { field: 'depth', title: '娣卞害', type: 'string', width: 110, align: 'left', hidden: true  },
-        { field: 'scNo', title: '瀵瑰簲鍫嗗灈鏈哄彿', type: 'string', width: 110, align: 'left', hidden: true },
+        { field: 'depth', title: '娣卞害', type: 'string', width: 110, align: 'left'},
         { field: 'locationType', title: '璐т綅绫诲瀷', type: 'int', width: 110, align: 'left',bind: { key: "LocationType", data: [] } },
         { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 110, align: 'left', bind: { key: "LocationState", data: [] } },
         { field: 'enalbeStatus', title: '鏄惁绂佺敤', type: 'int', width: 75, align: 'left', bind: { key: "EnalbeStatus", data: [] }}, 
-        // { field: 'isLocked', title: '鏄惁閿佸畾', type: 'bool', width: 110, align: 'left', bind: { key: "IsLocked", data: [] } },
-        { field: 'locationDesc', title: '璐т綅鎻忚堪', type: 'string', width: 110, align: 'left', hidden: true },
         { field: 'remark', title: '妫�娴嬫煖鍏佽', type: 'string', width: 110, align: 'left' ,bind: { key: "AllowStatus", data: [] }},
         { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
         { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db"
index fe239eb..deec129 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db-shm"
deleted file mode 100644
index 207a0b4..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db-shm"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db-wal"
deleted file mode 100644
index 4ad4b02..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/CodeChunks.db-wal"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db"
index 8c04b99..8bfa374 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-wal"
deleted file mode 100644
index 15eb2d7..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.441.19478/SemanticSymbols.db-wal"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
index 5dc8881..f448b33 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.backup.json"
@@ -7,16 +7,8 @@
       "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{986CA639-B3B4-4D4F-B12B-3D8FBA48B2B1}|WIDESEA_IStorageTaskService\\WIDESEA_IStorageTaskServices.csproj|solutionrelative:widesea_istoragetaskservice\\task\\idt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
       "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -26,47 +18,8 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 3,
+          "SelectedChildIndex": 0,
           "Children": [
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "IDt_TaskService.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "RelativeDocumentMoniker": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "RelativeToolTip": "WIDESEA_IStorageTaskService\\Task\\IDt_TaskService.cs",
-              "ViewState": "AgIAAAEAAAAAAAAAAAAUwBMAAAAmAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-24T09:29:59.707Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "appsettings.json",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
-              "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAADwvwwAAABEAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2025-09-24T09:23:47.789Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 3,
-              "Title": "Program.cs",
-              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\Program.cs",
-              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\Program.cs",
-              "RelativeToolTip": "WIDESEA_WMSServer\\Program.cs",
-              "ViewState": "AgIAAF0AAAAAAAAAAAAAAH0AAAAJAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-24T08:56:28.562Z",
-              "EditorCaption": ""
-            },
             {
               "$type": "Document",
               "DocumentIndex": 0,
@@ -75,9 +28,22 @@
               "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
               "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
-              "ViewState": "AgIAANMAAAAAAAAAAAAAAOgAAAAdAAAAAAAAAA==",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-09-24T08:36:32.274Z",
+              "WhenOpened": "2025-09-25T03:08:03.698Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "appsettings.json",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
+              "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
+              "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAUAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-09-24T09:23:47.789Z",
               "EditorCaption": ""
             }
           ]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
index 42b2431..3cd2aef 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/DocumentLayout.json"
@@ -3,6 +3,10 @@
   "WorkspaceRootPath": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\",
   "Documents": [
     {
+      "AbsoluteMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9912BD12-4CF7-4A91-8203-47C9C125004C}|WIDESEA_StorageTaskServices\\WIDESEA_StorageTaskServices.csproj|solutionrelative:widesea_storagetaskservices\\task\\dt_taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
       "AbsoluteMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|e:\\get\\duiduojiliku\\\u9879\u76EE\u4EE3\u7801\\wms\\widesea_wmsserver\\widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
       "RelativeMoniker": "D:0:0:{D81A65B5-47D1-40C1-8FDE-7D24FF003F51}|WIDESEA_WMSServer\\WIDESEA_WMSServer.csproj|solutionrelative:widesea_wmsserver\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
     }
@@ -19,12 +23,25 @@
             {
               "$type": "Document",
               "DocumentIndex": 0,
+              "Title": "Dt_TaskService.cs",
+              "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
+              "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
+              "RelativeToolTip": "WIDESEA_StorageTaskServices\\Task\\Dt_TaskService.cs",
+              "ViewState": "AgIAAHQBAAAAAAAAAAAmwG4BAAAXAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-09-25T03:08:03.698Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
               "Title": "appsettings.json",
               "DocumentMoniker": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
               "RelativeDocumentMoniker": "WIDESEA_WMSServer\\appsettings.json",
               "ToolTip": "E:\\GET\\DuiDuoJiLiKu\\\u9879\u76EE\u4EE3\u7801\\WMS\\WIDESEA_WMSServer\\WIDESEA_WMSServer\\appsettings.json",
               "RelativeToolTip": "WIDESEA_WMSServer\\appsettings.json",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAUAAAAAAAAAA==",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAEAAAAOAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
               "WhenOpened": "2025-09-24T09:23:47.789Z",
               "EditorCaption": ""

--
Gitblit v1.9.3