From 17e4c7e3e7b3ef60d9da6de3b2a39a14a53c38a0 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期三, 12 三月 2025 14:11:33 +0800
Subject: [PATCH] 1

---
 WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj                    |    1 
 WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs                                   |   16 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/GlobalExceptionsFilter.cs                                  |    4 
 WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs                         |    3 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/deab2c59-f065-4813-a3d0-6fa4a60eb7ad.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/IBaseCommunicator.cs                                      |   17 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs          |   92 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2                                |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/ApiAuthorizeFilter.cs                                      |    6 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Authorization/AuthorizationSetup.cs                               |   15 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2                                           |    0 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs                              |  109 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBSeed.cs                                                    |   33 
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseRepository.txt                         |   13 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6c6945bf-d964-425a-815e-c75fe0947776.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Core/DB/MainDb.cs                                                      |    1 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/SerialDevice/SerialPortDevice.cs                             |   93 +
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs                        |   89 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBContext.cs                                                 |   21 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj                                  |   21 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/SerialPortComm/SerialPortCommunicator.cs                  |  225 ++
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs                                |   23 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs                       |   40 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs                                        |   22 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs                           |   40 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj                            |    8 
 WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs                                       |   61 
 WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs                              |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs                          |   89 
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/VuePage.txt                                |   50 
 WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs                                                |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj                                        |   20 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs                             |   16 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                     | 2478 ++++++-------------------------
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs                                    |   22 
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseController.txt                         |   16 
 WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs                                                      |   11 
 WIDESEAWCS_Server/WIDESEAWCS_Core/DB/BaseDBConfig.cs                                                |    9 
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseService.txt                            |   16 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs                                       |    2 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs                                |   20 
 WIDESEAWCS_Client/package.json                                                                      |    2 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs                                 |   21 
 WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs                                               |    2 
 WIDESEAWCS_Server/WIDESEAWCS_Server/index.html                                                      |   14 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs                                       |    8 
 WIDESEAWCS_Server/WIDESEAWCS_Tasks/SerialPortJob.cs                                                 |  127 +
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIRepository.txt                        |   10 
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIService.txt                           |   11 
 WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj                                            |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs                                                   |    9 
 WIDESEAWCS_Server/WIDESEAWCS_Core/CodeGenerator/CodeGenertors.cs                                    |  411 +++++
 WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/WIDESEAWCS_DB.DBSeed.Json/Dt_DeviceInfo.tsv             |   66 
 /dev/null                                                                                           |   11 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/79374e93-071a-4252-88ec-d807b874aa0b.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseSerialPortCommunicator.cs                             |  104 +
 WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs                        |   14 
 WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs                                        |   29 
 WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json                                                |   63 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2c479e3d-ba78-467f-961b-c689e89a6a6e.vsidx |    0 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/02496343-1fda-4699-8721-9bac87d3f003.vsidx |    0 
 61 files changed, 2,212 insertions(+), 2,402 deletions(-)

diff --git a/WIDESEAWCS_Client/package.json b/WIDESEAWCS_Client/package.json
index 977418b..038a0f9 100644
--- a/WIDESEAWCS_Client/package.json
+++ b/WIDESEAWCS_Client/package.json
@@ -3,7 +3,7 @@
   "version": "0.1.0",
   "private": true,
   "scripts": {
-    "serve": "vue-cli-service serve",
+    "server": "vue-cli-service serve",
     "build": "vue-cli-service build",
     "test:unit": "vue-cli-service test:unit",
     "lint": "vue-cli-service lint"
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
index 0e2852b..2273cd8 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/02496343-1fda-4699-8721-9bac87d3f003.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/02496343-1fda-4699-8721-9bac87d3f003.vsidx
new file mode 100644
index 0000000..ff6b522
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/02496343-1fda-4699-8721-9bac87d3f003.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx
deleted file mode 100644
index cda98ea..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2c479e3d-ba78-467f-961b-c689e89a6a6e.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2c479e3d-ba78-467f-961b-c689e89a6a6e.vsidx
new file mode 100644
index 0000000..e185be6
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2c479e3d-ba78-467f-961b-c689e89a6a6e.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx
deleted file mode 100644
index e658359..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6c6945bf-d964-425a-815e-c75fe0947776.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6c6945bf-d964-425a-815e-c75fe0947776.vsidx
new file mode 100644
index 0000000..a4e7554
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6c6945bf-d964-425a-815e-c75fe0947776.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/717268b6-7ef3-47bc-82cf-5da4db823b42.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/717268b6-7ef3-47bc-82cf-5da4db823b42.vsidx
deleted file mode 100644
index 7188131..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/717268b6-7ef3-47bc-82cf-5da4db823b42.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/79374e93-071a-4252-88ec-d807b874aa0b.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/79374e93-071a-4252-88ec-d807b874aa0b.vsidx
new file mode 100644
index 0000000..3ef82a1
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/79374e93-071a-4252-88ec-d807b874aa0b.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cef3e5af-a370-40a7-9906-6b45352a398b.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cef3e5af-a370-40a7-9906-6b45352a398b.vsidx
deleted file mode 100644
index 5f67487..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/cef3e5af-a370-40a7-9906-6b45352a398b.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/deab2c59-f065-4813-a3d0-6fa4a60eb7ad.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/deab2c59-f065-4813-a3d0-6fa4a60eb7ad.vsidx
new file mode 100644
index 0000000..a667599
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/deab2c59-f065-4813-a3d0-6fa4a60eb7ad.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/eb096a1c-d360-45d1-b5be-ee66f0879e61.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/eb096a1c-d360-45d1-b5be-ee66f0879e61.vsidx
deleted file mode 100644
index e9ff698..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/eb096a1c-d360-45d1-b5be-ee66f0879e61.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
index e211155..a968b67 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
index 2914b4a..a413334 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -1,526 +1,166 @@
 {
   "Version": 1,
-  "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\",
+  "WorkspaceRootPath": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\app.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\app.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\wideseawcs_core.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\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:\\wideseawcs\\infrastructurewcs\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\jobfactory.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\middlewares\\apilogmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\apilogmiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\idependency.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\idependency.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\appsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\routerservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\schedulercenterserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\irouterservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\idispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\idispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\iservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicebase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\httpcontextuser\\aspnetuser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\httpcontextuser\\aspnetuser.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\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:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\logaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\cacheaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\cacheaop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\communicationexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\communicationexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\allenbrandly\\allenbrandlyethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\stackercranetaskcompletedeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\stackercranetaskcompletedeventargs.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\spec\\spestackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\enum\\stackercranestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\enum\\stackercranestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\shuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\otherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\dispatchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\ideviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\ideviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\ideviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\ideviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\ideviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\ideviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocolservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceprotocoldetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\service\\deviceinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\seed\\quartzjobcreatedatatabel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\seed\\quartzjobcreatedatatabel.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\routerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\routerrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\irouterrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\irouterrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\idispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\idispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\ideviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\ideviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\ideviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\ideviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\ideviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\ideviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\dispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\dispatchinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\deviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\deviceprotocolrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\deviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\deviceprotocoldetailrepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\repository\\deviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\repository\\deviceinforepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\ischedulercenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\ischedulercenter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\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:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobdatatablehostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_router.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_router.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_dispatchinfo.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_dispatchinfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceprotocoldetail.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_deviceprotocoldetail.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\models\\dt_deviceprotocol.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_deviceprotocol.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\routersadddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\routersadddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\dispatchstatusdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\dispatchstatusdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\dispatchinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceprotocoldetaildto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceprotocoldetaildto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceprodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\dto\\deviceinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\dto\\deviceinfodto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\deviceenum\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\deviceenum\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\devicestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\devicecommand.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\datalengthattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\datalengthattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\customexception\\quartzjobexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\customexception\\quartzjobexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\enum\\conveyorlinestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\enum\\conveyorlinestatus.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\loghelper\\logger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\httphelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\httphelper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\db\\models\\ibasehistoryentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\db\\models\\ibasehistoryentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baserepository\\repositorybase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baserepository\\irepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\enums\\operatetypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\enums\\operatetypeenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_log.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\helper\\md5helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\helper\\md5helper.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\loghelper\\quartzlogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\loghelper\\quartzlogger.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\taskenum\\taskstatusenum.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\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:\\wideseawcs\\infrastructurewcs\\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:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\wideseawcs_model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\wideseawcs_model.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\vuedictionarydto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\vuedictionarydto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_dictionaryservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\utilities\\entityproperties.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\utilities\\entityproperties.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_dictionarycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\seed\\dbseed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\seed\\dbseed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\quartzjob\\schedulercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\schedulercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\stackercranejob\\stackercranedbname.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\filter\\customauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\customauthorizefilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\filter\\automapperconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\automapperconfig.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_menuservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_menuservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_menuservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_menuservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
-    },
-    {
-      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
       "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{5777BDEC-4726-4425-85F2-A090524F692D}|WIDESEAWCS_SystemRepository\\WIDESEAWCS_SystemRepository.csproj|e:\\wideseawcs\\infrastructurewcs\\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:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\menudto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\menudto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\wideseawcs_communicator.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{F302E6D6-5A95-4D22-8DC2-21BE2CB30275}|WIDESEAWCS_ISystemRepository\\WIDESEAWCS_ISystemRepository.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_isystemrepository\\isys_menurepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{F302E6D6-5A95-4D22-8DC2-21BE2CB30275}|WIDESEAWCS_ISystemRepository\\WIDESEAWCS_ISystemRepository.csproj|solutionrelative:wideseawcs_isystemrepository\\isys_menurepository.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\serialportcomm\\serialportcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\serialportcomm\\serialportcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_menu.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\system\\sys_menu.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\serialportjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\serialportjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_menucontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_menucontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\wideseawcs_quartzjob.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\wideseawcs.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs.xml||{FA3CD31E-987B-443A-9B81-186104E8DAC1}"
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\baseserialportcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\baseserialportcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\filter\\automappersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\automappersetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\testjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartznet\\quartznetextension.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\quartzjob\\dispatchinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\quartzjob\\dispatchinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\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:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\userpermissions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\userpermissions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\serialdevice\\serialportdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\serialdevice\\serialportdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_dto\\system\\actiondto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\actiondto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\storage.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\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:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_tasks\\shuttlecarjob\\shuttlecarjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\shuttlecarjob\\shuttlecarjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\basecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\db\\models\\baseentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\db\\models\\baseentity.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\extensions\\initializationhostservicesetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\extensions\\initializationhostservicesetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemenss7communicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     },
     {
-      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\hostedservice\\seeddatahostedservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\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:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\stackercrane\\istackercrane.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\shuttlecar\\ishuttlecar.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\otherdevices\\iotherdevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\devicebase\\idevice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\commonconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\conveyorline\\iconveyorline.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\ibasecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\ibasecommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\communicationexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\communicationexception.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\siemens\\siemensdbdatatype.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\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:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\quartzextensions\\quartzjobautofacmoduleregister.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{6236BFFF-173D-44A8-9FC3-7C001EA30347}|WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj|solutionrelative:wideseawcs_quartzjob\\jobbase.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\wwwroot\\css\\swaggerdoc.css||{A5401142-F49D-43DB-90B1-F57BA349E55C}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wwwroot\\css\\swaggerdoc.css||{A5401142-F49D-43DB-90B1-F57BA349E55C}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\aop\\sqlsugaraop.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\caches\\memorycacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\caches\\memorycacheservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\attributes\\cacheattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\attributes\\cacheattribute.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\baseservices\\servicefunfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\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:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\filter\\globalexceptionsfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\filter\\globalexceptionsfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\filter\\exporterheaderfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\filter\\exporterheaderfilter.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|e:\\4.\u91CD\u6784\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_core\\middlewares\\exceptionhandlermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{BFFDD936-2E61-4D3A-ABFE-7CF77FE0B184}|WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj|solutionrelative:wideseawcs_core\\middlewares\\exceptionhandlermiddleware.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
     }
   ],
   "DocumentGroupContainers": [
@@ -530,1591 +170,489 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 9,
+          "SelectedChildIndex": 5,
           "Children": [
             {
-              "$type": "Bookmark",
-              "Name": "ST:131:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:12:0:{2456bd12-ecf7-4988-a4a6-67d49173f565}"
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:17:0:{2456bd12-ecf7-4988-a4a6-67d49173f565}"
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:0:0:{65ddf8c3-8f89-4077-a6c6-dbb8853aab13}"
-            },
-            {
-              "$type": "Bookmark",
-              "Name": "ST:128:0:{1fc202d4-d401-403c-9834-5b218574bb67}"
-            },
-            {
               "$type": "Document",
-              "DocumentIndex": 13,
-              "Title": "RouterService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\RouterService.cs",
-              "ViewState": "AgIAAD4AAAAAAAAAAAAIwEYAAAAdAAAAAAAAAA==",
+              "DocumentIndex": 1,
+              "Title": "Sys_RoleService.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
+              "ViewState": "AgIAAGEAAAAAAAAAAAAswAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:40.549Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 9,
-              "Title": "appsettings.json",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
-              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
-              "ViewState": "AgIAAAMAAAAAAAAAAAAAAA4AAABEAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2024-11-14T07:21:55.699Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 6,
-              "Title": "TestJob.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\TestJob.cs",
-              "ViewState": "AgIAABcAAAAAAAAAAAAMwB4AAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:08:07.008Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "Title": "App.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\App.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\App.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\App.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\App.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACcAAAAzAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-07T07:32:20.631Z",
+              "WhenOpened": "2025-03-11T08:58:21.432Z",
               "EditorCaption": ""
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
-              "Title": "ApiLogMiddleware.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAAAUwCEAAAAfAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-12T02:49:18.98Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
-              "Title": "CommonStackerCraneJob.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
-              "ViewState": "AgIAACMAAAAAAAAAAAD4vy4AAAAUAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T06:54:07.273Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
-              "Title": "SqlSugarAop.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAG0AAAANAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-28T16:42:03.922Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 1,
-              "Title": "WIDESEAWCS_QuartzJob.csproj",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-12-23T15:03:57.823Z"
-            },
-            {
-              "$type": "Document",
               "DocumentIndex": 3,
-              "Title": "Program.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
-              "ViewState": "AgIAAA0AAAAAAAAAAAAAABwAAAAPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T03:40:59.936Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 2,
-              "Title": "WIDESEAWCS_Core.csproj",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Core\\WIDESEAWCS_Core.csproj",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAARAAAAAAAAAA==",
+              "Title": "WIDESEAWCS_Communicator.csproj",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAZAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2025-01-14T08:41:02.928Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 10,
-              "Title": "JobSetup.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\JobSetup.cs",
-              "ViewState": "AgIAABoAAAAAAAAAAAArwDUAAAAvAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:30:07.656Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 5,
-              "Title": "JobFactory.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\JobFactory.cs",
-              "ViewState": "AgIAABwAAAAAAAAAAAAAAEYAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:29:37.04Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "Title": "CommonStackerCrane.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAKABAAA1AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:16:12.855Z"
+              "WhenOpened": "2025-03-11T08:27:49.717Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 8,
-              "Title": "IDependency.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\IDependency.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\IDependency.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\IDependency.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\IDependency.cs",
+              "Title": "TestJob.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\TestJob.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-16T01:45:06.626Z"
+              "WhenOpened": "2025-03-11T08:10:56.806Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "SerialPortJob.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SerialPortJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SerialPortJob.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SerialPortJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SerialPortJob.cs",
+              "ViewState": "AgIAABMAAAAAAAAAAAAAAC8AAAARAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T07:07:32.109Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "SerialPortCommunicator.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\SerialPortComm\\SerialPortCommunicator.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\SerialPortComm\\SerialPortCommunicator.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\SerialPortComm\\SerialPortCommunicator.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\SerialPortComm\\SerialPortCommunicator.cs",
+              "ViewState": "AgIAALkAAAAAAAAAAAAewNUAAAAQAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T05:55:31.15Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "ServiceBase.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
+              "ViewState": "AgIAAB0AAAAAAAAAAAAawDcAAABCAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-10T02:01:26.356Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "WIDESEAWCS_QuartzJob.csproj",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\WIDESEAWCS_QuartzJob.csproj",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAALAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-03-11T08:28:45.712Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "Sys_UserService.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserService.cs",
+              "ViewState": "AgIAAFYAAAAAAAAAAAA3wAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T08:58:17.603Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "BaseSerialPortCommunicator.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseSerialPortCommunicator.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseSerialPortCommunicator.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseSerialPortCommunicator.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseSerialPortCommunicator.cs",
+              "ViewState": "AgIAAEAAAAAAAAAAAADwv2AAAAA9AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T05:53:34.739Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "SerialPortDevice.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\SerialDevice\\SerialPortDevice.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\SerialDevice\\SerialPortDevice.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\SerialDevice\\SerialPortDevice.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\SerialDevice\\SerialPortDevice.cs",
+              "ViewState": "AgIAABEAAAAAAAAAAAApwC4AAAAhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T06:38:26.427Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "QuartzNetExtension.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
+              "ViewState": "AgIAADwAAAAAAAAAAAAUwGMAAAB/AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T05:48:03.313Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "CommonConveyorLineJob.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
+              "ViewState": "AgIAABsAAAAAAAAAAAAkwCUAAAAhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T06:44:48.103Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "Storage.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Storage.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Storage.cs",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAwD4AAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T06:44:00.813Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "CommonStackerCrane.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Common\\CommonStackerCrane.cs",
+              "ViewState": "AgIAALsBAAAAAAAAAAApwOMBAAAmAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T06:32:47.821Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 14,
-              "Title": "SchedulerCenterServer.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\SchedulerCenterServer.cs",
-              "ViewState": "AgIAALsAAAAAAAAAAAAEwO8AAAAUAAAAAAAAAA==",
+              "Title": "BaseCommunicator.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
+              "ViewState": "AgIAACcAAAAAAAAAAAAYwBoAAAAsAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-19T02:46:45.891Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 17,
-              "Title": "IDispatchInfoService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDispatchInfoService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAATAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:41:11.358Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 16,
-              "Title": "IRouterService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IRouterService.cs",
-              "ViewState": "AgIAABAAAAAAAAAAAAAkwB8AAAAoAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-21T02:50:10.906Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 18,
-              "Title": "JobBase.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\JobBase.cs",
-              "ViewState": "AgIAAFYAAAAAAAAAAAAQwHgAAAAwAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:31:45.652Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 21,
-              "Title": "ServiceBase.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceBase.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAADwAAAAgAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-19T07:26:59.037Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 29,
-              "Title": "WIDESEAWCS_Communicator.csproj",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAASAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-11-13T02:53:56.497Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 28,
-              "Title": "CacheAOP.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\CacheAOP.cs",
-              "ViewState": "AgIAACsAAAAAAAAAAAAAwBMAAAAPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T07:06:21.834Z"
+              "WhenOpened": "2025-03-11T05:47:25.238Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 15,
-              "Title": "RouterController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
-              "ViewState": "AgIAACwAAAAAAAAAAAAQwHAAAAAvAAAAAAAAAA==",
+              "Title": "ConveyorLineDBName.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\ConveyorLineDBName.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-09T10:42:59.198Z"
+              "WhenOpened": "2025-03-11T07:07:36.46Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 26,
-              "Title": "AutofacModuleRegister.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
-              "ViewState": "AgIAAAIAAAAAAAAAAAAnwBMAAAAFAAAAAAAAAA==",
+              "DocumentIndex": 18,
+              "Title": "IStackerCrane.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
+              "ViewState": "AgIAABUAAAAAAAAAAAAuwDIAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-12T02:48:56.913Z"
+              "WhenOpened": "2025-03-11T06:32:43.773Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 19,
-              "Title": "TaskController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAABIwDIAAAAAAAAAAAAAAA==",
+              "Title": "IShuttleCar.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-07T07:34:00.687Z"
+              "WhenOpened": "2025-03-11T06:35:55.065Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 16,
+              "Title": "SiemensS7Communicator.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
+              "ViewState": "AgIAADsAAAAAAAAAAAAAwGoAAAAMAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T05:55:35.962Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 17,
+              "Title": "Program.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
+              "ViewState": "AgIAAB4AAAAAAAAAAAAAAEUAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T06:45:07.192Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 20,
-              "Title": "IService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\IService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\IService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\IService.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\IService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAABIwAAAAAAAAAAAAAAAAA==",
+              "Title": "IOtherDevice.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-07T07:34:53.45Z"
+              "WhenOpened": "2025-03-11T06:36:04.614Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 21,
+              "Title": "IDevice.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAuwCkAAAAiAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T05:49:35.156Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 23,
-              "Title": "SiemensS7Communicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensS7Communicator.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAFcBAAAbAAAAAAAAAA==",
+              "Title": "IConveyorLine.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
+              "ViewState": "AgIAABIAAAAAAAAAAAAAAB4AAAAOAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:52:46.701Z"
+              "WhenOpened": "2025-03-11T06:35:44.011Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 22,
-              "Title": "AspNetUser.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
-              "ViewState": "AgIAABwAAAAAAAAAAAAhwIAAAAANAAAAAAAAAA==",
+              "Title": "CommonConveyorLine.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
+              "ViewState": "AgIAABIAAAAAAAAAAAAAACoAAAAhAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T08:11:26.585Z"
+              "WhenOpened": "2025-03-11T06:27:57.977Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 24,
-              "Title": "Sys_UserController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
-              "ViewState": "AgIAABAAAAAAAAAAAAAnwDIAAAAnAAAAAAAAAA==",
+              "Title": "IBaseCommunicator.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\IBaseCommunicator.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\IBaseCommunicator.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\IBaseCommunicator.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\IBaseCommunicator.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAuAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T07:22:57.244Z"
+              "WhenOpened": "2025-03-11T05:51:08.531Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 25,
-              "Title": "BaseCommunicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\BaseCommunicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\BaseCommunicator.cs",
-              "ViewState": "AgIAAH8AAAAAAAAAAAArwJAAAAAyAAAAAAAAAA==",
+              "Title": "CommunicationException.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CommunicationException.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CommunicationException.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CommunicationException.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\CommunicationException.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-04T03:40:39.433Z"
+              "WhenOpened": "2025-03-11T06:13:02.557Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 26,
+              "Title": "SiemensDBDataType.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
+              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-11T05:55:35.396Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 27,
-              "Title": "LogAOP.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\LogAOP.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\LogAOP.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAAAuwKIAAAAyAAAAAAAAAA==",
+              "Title": "QuartzJobHostedService.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
+              "ViewState": "AgIAACcAAAAAAAAAAAAAAEQAAAApAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-28T16:42:00.295Z"
+              "WhenOpened": "2025-03-11T05:47:59.014Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 33,
-              "Title": "Storage.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Storage.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Storage.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Storage.cs",
-              "ViewState": "AgIAACUAAAAAAAAAAAAAwEAAAAASAAAAAAAAAA==",
+              "DocumentIndex": 28,
+              "Title": "QuartzJobAutofacModuleRegister.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T03:42:32.674Z"
+              "WhenOpened": "2025-03-11T05:47:57.993Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 32,
-              "Title": "AllenBrandlyEtherNetCommunicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\AllenBrandly\\AllenBrandlyEtherNetCommunicator.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYDAAAUAAAAAAAAAA==",
+              "DocumentIndex": 29,
+              "Title": "JobBase.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\JobBase.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\JobBase.cs",
+              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\JobBase.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:35:39.773Z"
+              "WhenOpened": "2025-03-11T05:47:46.166Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 30,
-              "Title": "CommunicationException.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CommunicationException.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\CommunicationException.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\CommunicationException.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\CommunicationException.cs",
-              "ViewState": "AgIAAKAAAAAAAAAAAAAgwKQAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T07:05:50.559Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 34,
-              "Title": "StackerCraneTaskCompletedEventArgs.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\StackerCraneTaskCompletedEventArgs.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACsAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:15:38.217Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 35,
-              "Title": "IStackerCrane.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\IStackerCrane.cs",
-              "ViewState": "AgIAADoAAAAAAAAAAAAUwDEAAAANAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:26:43.303Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 36,
-              "Title": "SpeStackerCrane.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Spec\\SpeStackerCrane.cs",
-              "ViewState": "AgIAAO4AAAAAAAAAAAAvwAgBAAA0AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:18:03.553Z"
+              "Title": "swaggerdoc.css",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\css\\swaggerdoc.css",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\wwwroot\\css\\swaggerdoc.css",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\css\\swaggerdoc.css",
+              "RelativeToolTip": "WIDESEAWCS_Server\\wwwroot\\css\\swaggerdoc.css",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003000|",
+              "WhenOpened": "2025-03-10T08:54:18.248Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 31,
-              "Title": "SiemensDBDataType.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\Siemens\\SiemensDBDataType.cs",
-              "ViewState": "AgIAAE0AAAAAAAAAAADwvx8AAAAAAAAAAAAAAA==",
+              "Title": "Sys_UserController.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ViewState": "AgIAAHQAAAAAAAAAAAAjwJQAAAAFAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:52:46.064Z"
+              "WhenOpened": "2025-03-10T08:48:12.105Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 32,
+              "Title": "SqlSugarAop.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\AOP\\SqlSugarAop.cs",
+              "ViewState": "AgIAAAwAAAAAAAAAAAAAADkAAABTAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-10T06:38:54.884Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 33,
+              "Title": "MemoryCacheService.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Caches\\MemoryCacheService.cs",
+              "ViewState": "AgIAAAkAAAAAAAAAAAAAACAAAAAaAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-10T06:02:00.664Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 34,
+              "Title": "CacheAttribute.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Attributes\\CacheAttribute.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-10T06:01:55.954Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 35,
+              "Title": "ServiceFunFilter.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-10T02:01:25.883Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 36,
+              "Title": "TaskController.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Task\\TaskController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-03-06T07:58:24.801Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 37,
-              "Title": "IDevice.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\IDevice.cs",
-              "ViewState": "AgIAAC4AAAAAAAAAAAAewD0AAAATAAAAAAAAAA==",
+              "Title": "GlobalExceptionsFilter.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\GlobalExceptionsFilter.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Filter\\GlobalExceptionsFilter.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\GlobalExceptionsFilter.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Filter\\GlobalExceptionsFilter.cs",
+              "ViewState": "AgIAAB8AAAAAAAAAAAAQwEYAAAAFAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:11:35.273Z"
+              "WhenOpened": "2025-03-06T07:01:47.443Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 38,
-              "Title": "StackerCraneStatus.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\StackerCrane\\Enum\\StackerCraneStatus.cs",
-              "ViewState": "AgIAAHUAAAAAAAAAAAAIwF0AAAARAAAAAAAAAA==",
+              "Title": "ExporterHeaderFilter.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\ExporterHeaderFilter.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Filter\\ExporterHeaderFilter.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Filter\\ExporterHeaderFilter.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Filter\\ExporterHeaderFilter.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:45:41.671Z"
+              "WhenOpened": "2025-03-06T07:01:17.718Z"
             },
             {
               "$type": "Document",
               "DocumentIndex": 39,
-              "Title": "ShuttleCar.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\ShuttleCar.cs",
-              "ViewState": "AgIAANQAAAAAAAAAAAAqwOgAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:30:13.299Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 40,
-              "Title": "IShuttleCar.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ShuttleCar\\IShuttleCar.cs",
-              "ViewState": "AgIAAA0AAAAAAAAAAAAjwBcAAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:29:59.091Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 41,
-              "Title": "OtherDevice.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\OtherDevice.cs",
-              "ViewState": "AgIAAEEAAAAAAAAAAAAzwFYAAAAxAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:36:32.34Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 42,
-              "Title": "DispatchInfoService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DispatchInfoService.cs",
-              "ViewState": "AgIAADEAAAAAAAAAAAAAwCsAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:37.692Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 43,
-              "Title": "IDeviceProtocolService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAATAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:40:52.63Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 44,
-              "Title": "IDeviceProtocolDetailService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDeviceProtocolDetailService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB4AAAAVAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:40:33.235Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 45,
-              "Title": "IDeviceInfoService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\IDeviceInfoService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB8AAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:40:18.864Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 49,
-              "Title": "QuartzJobCreateDataTabel.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Seed\\QuartzJobCreateDataTabel.cs",
-              "ViewState": "AgIAAEYAAAAAAAAAAAAAwCMAAAAbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:35:29.846Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 50,
-              "Title": "RouterRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\RouterRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-23T15:08:49.174Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 51,
-              "Title": "IRouterRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IRouterRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-23T15:08:47.916Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 48,
-              "Title": "DeviceInfoService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceInfoService.cs",
-              "ViewState": "AgIAADEAAAAAAAAAAAAAwDUAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:02:36.16Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 47,
-              "Title": "DeviceProtocolDetailService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolDetailService.cs",
-              "ViewState": "AgIAACYAAAAAAAAAAADwvysAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:33.598Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 46,
-              "Title": "DeviceProtocolService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Service\\DeviceProtocolService.cs",
-              "ViewState": "AgIAAEsAAAAAAAAAAAAIwGEAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:34.541Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 52,
-              "Title": "IDispatchInfoRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDispatchInfoRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAATAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:37:50.752Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 53,
-              "Title": "IDeviceProtocolRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAATAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:37:40.611Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 54,
-              "Title": "IDeviceProtocolDetailRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceProtocolDetailRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAVAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:37:18.395Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 55,
-              "Title": "IDeviceInfoRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\IDeviceInfoRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAKAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:37:04.287Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 56,
-              "Title": "DispatchInfoRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DispatchInfoRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:36:50.076Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 57,
-              "Title": "DeviceProtocolRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:36:13.489Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 58,
-              "Title": "DeviceProtocolDetailRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DeviceProtocolDetailRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:35:55.738Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 59,
-              "Title": "DeviceInfoRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Repository\\DeviceInfoRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:35:40.413Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 64,
-              "Title": "QuartzJobAutofacModuleRegister.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobAutofacModuleRegister.cs",
-              "ViewState": "AgIAABgAAAAAAAAAAABIwCcAAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:32:40.712Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 63,
-              "Title": "QuartzJobDataTableHostedService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobDataTableHostedService.cs",
-              "ViewState": "AgIAADcAAAAAAAAAAAAAwFMAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:33:24.489Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 62,
-              "Title": "QuartzJobHostedService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzExtensions\\QuartzJobHostedService.cs",
-              "ViewState": "AgIAAC8AAAAAAAAAAADwv0kAAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:34:48.326Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 61,
-              "Title": "ISchedulerCenter.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\ISchedulerCenter.cs",
-              "ViewState": "AgIAABgAAAAAAAAAAABIwFEAAAA3AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:27:27.505Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 60,
-              "Title": "QuartzNetExtension.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\QuartzNet\\QuartzNetExtension.cs",
-              "ViewState": "AgIAAB0AAAAAAAAAAADwvxkAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T01:36:48.189Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 65,
-              "Title": "Dt_Router.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_Router.cs",
-              "ViewState": "AgIAAFkAAAAAAAAAAAAkwA0AAAAOAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:46.049Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 66,
-              "Title": "Dt_DispatchInfo.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DispatchInfo.cs",
-              "ViewState": "AgIAAFEAAAAAAAAAAAA1wDkAAAAeAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:35.521Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 67,
-              "Title": "Dt_DeviceProtocolDetail.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocolDetail.cs",
-              "ViewState": "AgIAAEMAAAAAAAAAAAAUwCcAAABSAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:24.357Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 68,
-              "Title": "Dt_DeviceProtocol.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceProtocol.cs",
-              "ViewState": "AgIAAGMAAAAAAAAAAAAiwGAAAAAoAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:11.706Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 69,
-              "Title": "Dt_DeviceInfo.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\Models\\Dt_DeviceInfo.cs",
-              "ViewState": "AgIAAGMAAAAAAAAAAAAiwCsAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:36:57.223Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 70,
-              "Title": "RoutersAddDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\RoutersAddDTO.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:31:26.858Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 71,
-              "Title": "DispatchStatusDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DispatchStatusDTO.cs",
-              "ViewState": "AgIAACIAAAAAAAAAAAAAwBkAAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:31:19.344Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 73,
-              "Title": "DeviceProtocolDetailDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProtocolDetailDTO.cs",
-              "ViewState": "AgIAACIAAAAAAAAAAAAAwBoAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:30:44.746Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 76,
-              "Title": "DeviceStatus.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceEnum\\DeviceStatus.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAASAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:29:47.85Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 77,
-              "Title": "DeviceStatus.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceStatus.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABoAAAAOAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:29:34.161Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 79,
-              "Title": "DataLengthAttribute.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DataLengthAttribute.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACgAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:27:56.645Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 80,
-              "Title": "QuartzJobException.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\CustomException\\QuartzJobException.cs",
-              "ViewState": "AgIAAGcAAAAAAAAAAAAgwI4AAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:26:43.504Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 81,
-              "Title": "CommonConveyorLine.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\CommonConveyorLine.cs",
-              "ViewState": "AgIAAAQBAAAAAAAAAAAmwBQBAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:19:57.802Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 75,
-              "Title": "DeviceInfoDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceInfoDTO.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABwAAAAPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T07:49:25.651Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 72,
-              "Title": "DispatchInfoDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DispatchInfoDTO.cs",
-              "ViewState": "AgIAAB0AAAAAAAAAAAAwwDEAAAAqAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-20T01:10:50.115Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 82,
-              "Title": "ConveyorLineStatus.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\Enum\\ConveyorLineStatus.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2025-01-02T06:25:34.779Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 74,
-              "Title": "DeviceProDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DTO\\DeviceProDTO.cs",
-              "ViewState": "AgIAAE4AAAAAAAAAAAAiwCUAAAATAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:25:37.029Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 78,
-              "Title": "DeviceCommand.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\DeviceBase\\DeviceCommand.cs",
-              "ViewState": "AgIAAO4AAAAAAAAAAAAUwAgBAAALAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-17T07:25:07.393Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 83,
-              "Title": "IOtherDevice.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\OtherDevices\\IOtherDevice.cs",
-              "ViewState": "AgIAABkAAAAAAAAAAAAjwCMAAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:36:30.442Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 85,
-              "Title": "WIDESEAWCS_Communicator",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2025-01-02T06:15:50.428Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 94,
-              "Title": "TaskService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAHYBAADEAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-05T05:59:47.833Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 84,
-              "Title": "IConveyorLine.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
-              "RelativeToolTip": "WIDESEAWCS_QuartzJob\\ConveyorLine\\IConveyorLine.cs",
-              "ViewState": "AgIAABgAAAAAAAAAAABIwEYAAAAvAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:29:28.34Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 95,
-              "Title": "Sys_Log.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Log.cs",
-              "ViewState": "AgIAAA4AAAAAAAAAAADwvzEAAAAVAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-12T02:48:02.899Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 97,
-              "Title": "QuartzLogger.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\LogHelper\\QuartzLogger.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAdAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T03:42:39.372Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 89,
-              "Title": "ServiceFunFilter.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseServices\\ServiceFunFilter.cs",
-              "ViewState": "AgIAALEAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-23T13:42:50.935Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 86,
-              "Title": "SqlsugarSetup.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\SqlsugarSetup.cs",
-              "ViewState": "AgIAABcAAAAAAAAAAADwvzsAAAAhAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-28T16:42:12.496Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 91,
-              "Title": "RepositoryBase.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseRepository\\RepositoryBase.cs",
-              "ViewState": "AgIAAEwDAAAAAAAAAAA3wFwDAABcAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-19T07:25:55.034Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 88,
-              "Title": "HttpHelper.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\HttpHelper.cs",
-              "ViewState": "AgIAAFgAAAAAAAAAAAAQwIAAAAAZAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-20T07:57:08.601Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 87,
-              "Title": "Logger.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\LogHelper\\Logger.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\LogHelper\\Logger.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAIIAAAAbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-12T02:46:50.608Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 93,
-              "Title": "OperateTypeEnum.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Enums\\OperateTypeEnum.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABEAAAAPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-23T07:34:33.795Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 90,
-              "Title": "IBaseHistoryEntity.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\DB\\Models\\IBaseHistoryEntity.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAACMAAAAFAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-23T07:35:55.159Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 92,
-              "Title": "IRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\BaseRepository\\IRepository.cs",
-              "ViewState": "AgIAAIQBAAAAAAAAAAASwJsBAABPAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-23T07:35:12.07Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 96,
-              "Title": "MD5Helper.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Helper\\MD5Helper.cs",
+              "Title": "ExceptionHandlerMiddleware.cs",
+              "DocumentMoniker": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
+              "ToolTip": "E:\\4.\u91CD\u6784\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
+              "RelativeToolTip": "WIDESEAWCS_Core\\Middlewares\\ExceptionHandlerMiddleware.cs",
               "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-21T02:26:47.894Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 99,
-              "Title": "CommonConveyorLineJob.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ConveyorLineJob\\CommonConveyorLineJob.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAD0AAABYAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T06:24:51.147Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 98,
-              "Title": "TaskStatusEnum.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
-              "RelativeToolTip": "WIDESEAWCS_Common\\TaskEnum\\TaskStatusEnum.cs",
-              "ViewState": "AgIAAAkAAAAAAAAAAAA+wH8AAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-20T02:13:26.923Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 100,
-              "Title": "CustomProfile.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomProfile.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAArAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T07:25:51.567Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 101,
-              "Title": "WIDESEAWCS_Model.csproj",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
-              "RelativeToolTip": "WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-12-16T05:55:48.031Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 103,
-              "Title": "Sys_DictionaryService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
-              "ViewState": "AgIAADkAAAAAAAAAAAAIwEoAAAA7AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-28T07:42:40.328Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 102,
-              "Title": "VueDictionaryDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAoAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T01:47:05.446Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 104,
-              "Title": "EntityProperties.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
-              "ViewState": "AgIAAKYAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-04T07:51:53.507Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 105,
-              "Title": "Sys_DictionaryController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryController.cs",
-              "ViewState": "AgIAAAsAAAAAAAAAAAASwBcAAAAcAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-21T01:29:06.865Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 106,
-              "Title": "DBSeed.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Seed\\DBSeed.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Seed\\DBSeed.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Seed\\DBSeed.cs",
-              "ViewState": "AgIAAFoAAAAAAAAAAAAAwFoAAAAYAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T09:31:08.019Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 108,
-              "Title": "StackerCraneDBName.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
-              "ViewState": "AgIAACkAAAAAAAAAAADwv00AAAAWAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T07:19:03.829Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 107,
-              "Title": "SchedulerController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\SchedulerController.cs",
-              "ViewState": "AgIAAAYAAAAAAAAAAABYwBsAAAA3AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T06:22:06.737Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 109,
-              "Title": "CustomAuthorizeFilter.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAAFAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T07:25:38.119Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 110,
-              "Title": "AutoMapperConfig.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T07:25:48.754Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 117,
-              "Title": "Sys_Menu.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
-              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Menu.cs",
-              "ViewState": "AgIAADEAAAAAAAAAAAAUwE4AAAAqAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-18T02:09:18.01Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 114,
-              "Title": "Sys_MenuRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
-              "ViewState": "AgIAAA4AAAAAAAAAAAArwCoAAAAwAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-18T02:20:36.492Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 116,
-              "Title": "ISys_MenuRepository.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
-              "RelativeToolTip": "WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAuwA4AAAANAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-18T02:21:54.865Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 113,
-              "Title": "Sys_RoleService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
-              "ViewState": "AgIAAFwAAAAAAAAAAAASwHUAAAAsAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-18T02:22:48.668Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 112,
-              "Title": "Sys_MenuService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
-              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAABfAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-18T02:23:29.936Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 111,
-              "Title": "ISys_MenuService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
-              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAuwBEAAAAyAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-18T02:23:56.891Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 121,
-              "Title": "index.html",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
-              "RelativeToolTip": "WIDESEAWCS_Server\\index.html",
-              "ViewState": "AgIAAIYAAAAAAAAAAABcwJQAAAA1AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
-              "WhenOpened": "2024-11-15T07:17:59.198Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 115,
-              "Title": "MenuDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\MenuDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\MenuDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\MenuDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\MenuDTO.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAuwAkAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T01:47:03.565Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 118,
-              "Title": "Sys_MenuController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_MenuController.cs",
-              "ViewState": "AgIAABUAAAAAAAAAAAAIwCUAAAA0AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-18T02:09:13.298Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 120,
-              "Title": "AutoMapperSetup.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T07:25:50.059Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 119,
-              "Title": "WIDESEAWCS.xml",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS.xml",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS.xml",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS.xml",
-              "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS.xml",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.003576|",
-              "WhenOpened": "2024-11-15T07:26:00.153Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 122,
-              "Title": "DispatchInfoController.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
-              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T06:20:50.598Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 124,
-              "Title": "ActionDTO.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\ActionDTO.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\ActionDTO.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\ActionDTO.cs",
-              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\ActionDTO.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T01:47:02.687Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 123,
-              "Title": "UserPermissions.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\UserPermissions.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\UserPermissions.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\UserPermissions.cs",
-              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\UserPermissions.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T01:47:04.359Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 125,
-              "Title": "TaskExecuteDetailService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
-              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
-              "ViewState": "AgIAAEsAAAAAAAAAAAAIwGQAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T09:07:18.231Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 126,
-              "Title": "ShuttleCarJob.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
-              "RelativeToolTip": "WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T07:18:53.361Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 127,
-              "Title": "BaseEntity.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\DB\\Models\\BaseEntity.cs",
-              "ViewState": "AgIAACMAAAAAAAAAAADwvzcAAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T08:05:29.472Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 128,
-              "Title": "InitializationHostServiceSetup.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
-              "ViewState": "AgIAAAAAAAAAAAAAAAAAABUAAAA2AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T09:31:27.008Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 129,
-              "Title": "SeedDataHostedService.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
-              "RelativeToolTip": "WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
-              "ViewState": "AgIAAAUAAAAAAAAAAAAnwA4AAAA+AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T09:31:17.763Z"
+              "WhenOpened": "2025-03-06T07:01:03.983Z"
             }
           ]
         }
diff --git a/WIDESEAWCS_Server/CodeMap1.dgml b/WIDESEAWCS_Server/CodeMap1.dgml
deleted file mode 100644
index 53d8f9a..0000000
--- a/WIDESEAWCS_Server/CodeMap1.dgml
+++ /dev/null
@@ -1,713 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<DirectedGraph DataVirtualized="True" Layout="Sugiyama" ZoomLevel="-1" xmlns="http://schemas.microsoft.com/vs/2009/dgml">
-  <Nodes>
-    <Node Id="(@15 Namespace=WIDESEAWCS_Common)" Category="CodeSchema_Namespace" Bounds="1101.97944285986,890.250611401785,196.15,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" ErrorMessage="妫�娴嬪埌鏈紩鐢ㄧ殑鑺傜偣: WIDESEAWCS_Common ((Assembly=file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Common/bin/Debug/net6.0/WIDESEAWCS_Common.dll Namespace=WIDESEAWCS_Common))" Group="Collapsed" IsUnreferenced="True" Label="WIDESEAWCS_Common" />
-    <Node Id="@10" Category="CodeSchema_Assembly" Bounds="729.727848829485,-199.741776064444,251.886666666667,25" CodeSchemaProperty_StrongName="WIDESEAWCS_TaskInfoService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(83f18a31-5983-4587-a0b2-414bf70e50b5.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_TaskInfoService.dll" />
-    <Node Id="@12" Category="CodeSchema_Assembly" Bounds="861.993316193196,685.257171401785,189.986666666667,25" CodeSchemaProperty_StrongName="WIDESEAWCS_Core, Version=1.0.6.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(bffdd936-2e61-4d3a-abfe-7cf77fe0b184.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_Core.dll" />
-    <Node Id="@14" Category="CodeSchema_Assembly" Bounds="979.364335866781,630.257171398585,199.97,25" CodeSchemaProperty_StrongName="WIDESEAWCS_Model, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(7f200fe8-caf6-4131-bd25-8d438fe0abac.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_Model.dll" />
-    <Node Id="@16" Category="CodeSchema_Assembly" Bounds="1081.98008285986,685.257171401785,297.26406944,249.9928" CodeSchemaProperty_StrongName="WIDESEAWCS_Common, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="Fetched" DelayedCrossGroupLinksState="Fetched" FetchedChildrenCount="4" FilePath="$(9fbc654c-51de-422d-9e1e-6a38268de1e2.OutputPath)" Group="Expanded" Label="WIDESEAWCS_Common.dll" UseManualLocation="True" />
-    <Node Id="@18" Category="CodeSchema_Assembly" Bounds="985.312235212648,575.257171395385,188.736666666667,25" CodeSchemaProperty_StrongName="WIDESEAWCS_DTO, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(c2d3d138-9109-481b-8beb-a27597890b2c.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_DTO.dll" />
-    <Node Id="@2" Category="CodeSchema_Assembly" Bounds="888.714151841299,120.257171360185,221.743333333334,25" CodeSchemaProperty_StrongName="WIDESEAWCS_QuartzJob, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(6236bfff-173d-44a8-9fc3-7c001ea30347.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_QuartzJob.dll" />
-    <Node Id="@20" Category="CodeSchema_Assembly" Bounds="970.118051356488,-389.742828675015,198.95,25" CodeSchemaProperty_StrongName="WIDESEAWCS_Server, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" ErrorMessage="妫�娴嬪埌鏈紩鐢ㄧ殑鑺傜偣: WIDESEAWCS_Server.dll ((Assembly=file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/WIDESEAWCS_Server.dll))" FilePath="$(487fa45b-ea1a-4aca-bb5b-0f6708f462c0.OutputPath)" Group="Collapsed" IsUnreferenced="True" Label="WIDESEAWCS_Server.dll" />
-    <Node Id="@22" Category="CodeSchema_Assembly" Bounds="630.727617782423,175.257171365069,248.393333333333,25" CodeSchemaProperty_StrongName="WIDESEAWCS_Communicator, Version=2.1.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(861c4d0b-a478-48db-a0fa-ae70f5ba210a.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_Communicator.dll" />
-    <Node Id="@24" Category="CodeSchema_Assembly" Bounds="1055.04118216282,-144.741776051644,254.01,25" CodeSchemaProperty_StrongName="WIDESEAWCS_ISystemServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(9e4bff47-52bf-4fd8-9cc7-3763bf19d9e0.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_ISystemServices.dll" />
-    <Node Id="@26" Category="CodeSchema_Assembly" Bounds="1056.80451549615,-199.741776054844,250.483333333334,25" CodeSchemaProperty_StrongName="WIDESEAWCS_SystemServices, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(a14242dd-da06-4dc3-8598-1761aa7c76d1.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_SystemServices.dll" />
-    <Node Id="@28" Category="CodeSchema_Assembly" Bounds="974.322114929553,-334.742828671815,194.09,25" CodeSchemaProperty_StrongName="WIDESEAWCS_Tasks, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(294e4915-0241-4c8c-ba99-7588b945863a.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_Tasks.dll" />
-    <Node Id="@30" Category="CodeSchema_Assembly" Bounds="949.121051115757,310.257224002758,269.533333333333,25" CodeSchemaProperty_StrongName="WIDESEAWCS_ISystemRepository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(f302e6d6-5a95-4d22-8dc2-21be2cb30275.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_ISystemRepository.dll" />
-    <Node Id="@32" Category="CodeSchema_Assembly" Bounds="950.88438444909,255.257223999558,266.006666666667,25" CodeSchemaProperty_StrongName="WIDESEAWCS_SystemRepository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(5777bdec-4726-4425-85f2-a090524f692d.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_SystemRepository.dll" />
-    <Node Id="@34" Category="CodeSchema_Assembly" Bounds="949.121051115756,480.257224015558,279.816666666667,25" CodeSchemaProperty_StrongName="WIDESEAWCS_IBasicInfoRepository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(266d07b7-3648-4f3d-818a-89eda7d84c58.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_IBasicInfoRepository.dll" />
-    <Node Id="@36" Category="CodeSchema_Assembly" Bounds="950.88438444909,425.257224012358,276.29,25" CodeSchemaProperty_StrongName="WIDESEAWCS_BasicInfoRepository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(206fdf79-9bf3-433a-b7ff-627287bbd760.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_BasicInfoRepository.dll" />
-    <Node Id="@38" Category="CodeSchema_Assembly" Bounds="1288.65438444909,310.257224002758,276.49,25" CodeSchemaProperty_StrongName="WIDESEAWCS_ITaskInfoRepository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(09d05f35-cea2-48d9-86d0-fb95982ba511.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_ITaskInfoRepository.dll" />
-    <Node Id="@4" Category="CodeSchema_Assembly" Bounds="726.301182162819,25.258223948356,258.74,25" CodeSchemaProperty_StrongName="WIDESEAWCS_IBasicInfoService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(8c2cc25b-de5d-433e-a550-63864c7a716d.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_IBasicInfoService.dll" />
-    <Node Id="@40" Category="CodeSchema_Assembly" Bounds="1290.41771778242,255.257223999558,272.963333333333,25" CodeSchemaProperty_StrongName="WIDESEAWCS_TaskInfoRepository, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(35054aa5-cf40-4f38-9414-c76742c29382.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_TaskInfoRepository.dll" />
-    <Node Id="@41" Category="CodeSchema_Namespace" Bounds="1134.95838749986,835.252371401785,191.306666666666,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="Microsoft鈥�.CodeAnalysis" />
-    <Node Id="@42" Category="CodeSchema_Namespace" Bounds="1105.10934269986,780.254131401785,251.006666666667,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="System鈥�.Runtime鈥�.CompilerServices" />
-    <Node Id="@43" Category="CodeSchema_Namespace" Bounds="1101.97944285986,725.255891401785,257.266666666666,25" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" Group="Collapsed" Label="WIDESEAWCS_Common鈥�.TaskEnum" />
-    <Node Id="@6" Category="CodeSchema_Assembly" Bounds="728.064515496152,-29.741776054844,255.213333333333,25" CodeSchemaProperty_StrongName="WIDESEAWCS_BasicInfoService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(ffab2c76-1c9e-4006-95c8-a0b2aa53139d.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_BasicInfoService.dll" />
-    <Node Id="@8" Category="CodeSchema_Assembly" Bounds="727.964515496151,-144.741776064444,255.413333333335,25" CodeSchemaProperty_StrongName="WIDESEAWCS_ITaskInfoService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" DelayedChildNodesState="NotFetched" DelayedCrossGroupLinksState="Fetched" FilePath="$(7279a2ae-8d1f-4e66-a73a-01af7927a336.OutputPath)" Group="Collapsed" Label="WIDESEAWCS_ITaskInfoService.dll" />
-    <Node Id="BasicInfo{5CC8AEFF-2F75-4053-9569-73419839875A}" Category="CodeMap_SolutionFolder" Bounds="929.121051115756,385.257671363386,319.816666666667,140.0003" ErrorMessage="妫�娴嬪埌鏈紩鐢ㄧ殑鑺傜偣: BasicInfo (BasicInfo{5CC8AEFF-2F75-4053-9569-73419839875A})" Group="Expanded" IsUnreferenced="True" Label="BasicInfo" />
-    <Node Id="BasicInfo{9CB2F821-BB23-48E5-88E8-C326477733C0}" Category="CodeMap_SolutionFolder" Bounds="706.301182162819,-69.742428668615,298.74,140.0003" Group="Expanded" Label="BasicInfo" />
-    <Node Id="Repository{4FF30CF7-DA79-4EDD-9A6E-0B0BEAD72A1A}" Category="CodeMap_SolutionFolder" Bounds="909.121051115756,175.257171363386,696.023333333333,370.0009" Group="Expanded" Label="Repository" />
-    <Node Id="Service{A12315CA-9D81-412C-A09B-B23D95CFFE16}" Category="CodeMap_SolutionFolder" Bounds="686.301182162819,-279.742828668615,662.75,370.0008" Group="Expanded" Label="Service" />
-    <Node Id="System{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}" Category="CodeMap_SolutionFolder" Bounds="1035.04118216282,-239.742428668615,294.01,140.0003" ErrorMessage="妫�娴嬪埌鏈紩鐢ㄧ殑鑺傜偣: System (System{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D})" Group="Expanded" IsUnreferenced="True" Label="System" />
-    <Node Id="System{93EFF637-042E-4DD0-A74B-7F0CF998CF96}" Category="CodeMap_SolutionFolder" Bounds="929.121051115757,215.257271363386,309.533333333334,140.0003" ErrorMessage="妫�娴嬪埌鏈紩鐢ㄧ殑鑺傜偣: System (System{93EFF637-042E-4DD0-A74B-7F0CF998CF96})" Group="Expanded" IsUnreferenced="True" Label="System" />
-    <Node Id="TaskInfo{684035E2-174F-47CE-AA5C-36624C7E26F3}" Category="CodeMap_SolutionFolder" Bounds="1268.65438444909,215.257271363386,316.49,140.0003" ErrorMessage="妫�娴嬪埌鏈紩鐢ㄧ殑鑺傜偣: TaskInfo (TaskInfo{684035E2-174F-47CE-AA5C-36624C7E26F3})" Group="Expanded" IsUnreferenced="True" Label="TaskInfo" />
-    <Node Id="TaskInfo{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}" Category="CodeMap_SolutionFolder" Bounds="707.96451549615,-239.742728668615,295.413333333335,140.0002" ErrorMessage="妫�娴嬪埌鏈紩鐢ㄧ殑鑺傜偣: TaskInfo (TaskInfo{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D})" Group="Expanded" IsUnreferenced="True" Label="TaskInfo" />
-  </Nodes>
-  <Links>
-    <Link Source="@10" Target="@12" Category="InheritsFrom" Bounds="923.480263353655,-163.494155999569,64.2071102137636,851.02750599813" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="173">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-      <Category Ref="Implements" />
-    </Link>
-    <Link Source="@10" Target="@14" Category="CodeSchema_ReturnTypeLink" Bounds="924.889343348782,-163.494155999569,149.815255150687,796.157130339287" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="235">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@10" Target="@16" Category="CodeMap_ExternalReference" Bounds="926.77185337266,-163.494155999569,288.458371555104,851.477864853163" />
-    <Link Source="@10" Target="@18" Category="References" Bounds="1247.78857421875,135,50.21142578125,242.038879394531" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="35">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-    </Link>
-    <Link Source="@10" Target="@2" Category="References" Bounds="865.923400878906,134.984176635742,310.735778808594,80.7203063964844" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="16">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-    </Link>
-    <Link Source="@10" Target="@22" Category="CodeMap_ExternalReference" Bounds="207.038005802778,214.999316666667,696.32803049809,688.671997833503" />
-    <Link Source="@10" Target="@34" Category="CodeMap_ExternalReference" Bounds="596.702099059381,214.999316666667,312.700750119114,592.043332872254" />
-    <Link Source="@10" Target="@36" Category="CodeMap_ExternalReference" Bounds="595.939635310253,214.999316666667,312.787495138316,537.223656126113" />
-    <Link Source="@10" Target="@38" Category="References" Bounds="1312.54541015625,135,178.966186523438,191.64697265625" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="30">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@10" Target="@4" Category="CodeMap_ExternalReference" Bounds="618.946429408088,214.999316666667,279.15046223956,194.849210722821" />
-    <Link Source="@10" Target="@40" Category="CodeMap_ExternalReference" Bounds="916.247551476955,214.999316666667,7.10195951722505,366.002693860792" />
-    <Link Source="@10" Target="@43" Category="References" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="33">
-      <Category Ref="CodeSchema_Calls" />
-    </Link>
-    <Link Source="@10" Target="@6" Category="CodeMap_ProjectReference" Bounds="1158.28833007813,135,96.0753173828125,27.5215606689453" />
-    <Link Source="@10" Target="@8" Category="References" Bounds="855.669042382377,-174.742135999804,1.13686837721616E-13,21" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="12">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="Implements" />
-    </Link>
-    <Link Source="@14" Target="@12" Category="CodeSchema_Calls" Bounds="993.004447847236,655.256811368741,58.5349670448345,26.3102710642444" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="27">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_AttributeUse" />
-      <Category Ref="InheritsFrom" />
-    </Link>
-    <Link Source="@14" Target="@16" Category="CodeMap_ProjectReference" Bounds="1090.63784011659,655.256811368741,21.0606517952251,23.3209476169683" />
-    <Link Source="@16" Target="(@15 Namespace=WIDESEAWCS_Common)" Category="Contains" FetchingParent="@16" />
-    <Link Source="@16" Target="@41" Category="Contains" FetchingParent="@16" />
-    <Link Source="@16" Target="@42" Category="Contains" FetchingParent="@16" />
-    <Link Source="@16" Target="@43" Category="Contains" FetchingParent="@16" />
-    <Link Source="@18" Target="@12" Category="CodeMap_ExternalReference" Bounds="960.359313964844,600.2568359375,76.6642456054688,76.10986328125" />
-    <Link Source="@18" Target="@14" Category="CodeSchema_Calls" Bounds="1079.47885230165,600.256811368741,0.126486731981913,21.0001632470344" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="2">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="InheritsFrom" />
-    </Link>
-    <Link Source="@18" Target="@16" Category="CodeMap_ExternalReference" Bounds="969.230163574219,600.2568359375,105.682678222656,85.225830078125" />
-    <Link Source="@2" Target="@12" Category="References" Bounds="898.9873046875,145.256805419922,61.7473754882813,531.665130615234" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="293">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-      <Category Ref="Implements" />
-      <Category Ref="InheritsFrom" />
-    </Link>
-    <Link Source="@2" Target="@22" Category="References" Bounds="819.310746088585,145.256811368741,124.67043457957,28.0260525224872" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="67">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-    </Link>
-    <Link Source="@20" Target="@10" Category="CodeMap_ProjectReference" Bounds="832.659118652344,25,396.873107910156,83.1543655395508" />
-    <Link Source="@20" Target="@12" Category="References" Bounds="624.819519042969,-364.743194580078,388.484680175781,1042.5930480957" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="162">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FieldRead" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-      <Category Ref="InheritsFrom" />
-    </Link>
-    <Link Source="@20" Target="@14" Category="CodeSchema_ReturnTypeLink" Bounds="626.313781738281,-364.743194580078,415.034729003906,991.509307861328" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="74">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@20" Target="@16" Category="CodeMap_ExternalReference" Bounds="1111.02722167969,-364.743194580078,504.2509765625,1071.54922485352" />
-    <Link Source="@20" Target="@18" Category="References" Bounds="626.313781738281,-364.743194580078,386.990417480469,938.413238525391" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="52">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-    </Link>
-    <Link Source="@20" Target="@2" Category="References" Bounds="1111.02722167969,-364.743194580078,248.15771484375,486.770782470703" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="68">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-    </Link>
-    <Link Source="@20" Target="@22" Category="CodeMap_ExternalReference" Bounds="676.167419433594,-364.743194580078,337.136779785156,533.315277099609" />
-    <Link Source="@20" Target="@24" Category="References" Bounds="319,24.2619476318359,356.910461425781,186.738052368164" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="39">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-    </Link>
-    <Link Source="@20" Target="@26" Category="CodeMap_ProjectReference" Bounds="637.823608398438,25,127.903686523438,134.027465820313" />
-    <Link Source="@20" Target="@28" Category="References" Bounds="1069.9968887659,-364.743188631259,0.677305155841623,21.0046753143712" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="16">
-      <Category Ref="CodeMap_ProjectReference" />
-    </Link>
-    <Link Source="@20" Target="@30" Category="CodeMap_ExternalReference" Bounds="586.447081337002,25,164.195459591589,611.308492893589" />
-    <Link Source="@20" Target="@32" Category="CodeMap_ExternalReference" Bounds="586.961107050999,25,163.368450003759,556.36490077959" />
-    <Link Source="@20" Target="@34" Category="CodeMap_ExternalReference" Bounds="590.293018748615,25,161.128711851287,781.18636402558" />
-    <Link Source="@20" Target="@36" Category="CodeMap_ExternalReference" Bounds="588.890329599179,25,162.315813386256,726.217432299183" />
-    <Link Source="@20" Target="@38" Category="CodeMap_ExternalReference" Bounds="757.290049554232,25,160.895752866277,611.296844523733" />
-    <Link Source="@20" Target="@4" Category="CodeMap_ExternalReference" Bounds="601.731511834285,25,147.438917759078,381.60463909079" />
-    <Link Source="@20" Target="@40" Category="CodeMap_ExternalReference" Bounds="757.596749481971,25,160.084483970447,556.351244272433" />
-    <Link Source="@20" Target="@6" Category="CodeMap_ExternalReference" Bounds="601.218925132393,25,147.152424604318,326.793320158955" />
-    <Link Source="@20" Target="@8" Category="References" Bounds="872.474975585938,16.3932132720947,951.525024414063,201.588415145874" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="13">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-    </Link>
-    <Link Source="@24" Target="@12" Category="References" Bounds="995.903886484191,-108.493755999569,249.098593931777,796.411955561377" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="26">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-      <Category Ref="Implements" />
-    </Link>
-    <Link Source="@24" Target="@14" Category="References" Bounds="1083.39652937031,-108.493755999569,162.770639793168,741.210964353485" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="14">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@24" Target="@16" Category="CodeMap_ExternalReference" Bounds="1223.04048976118,-108.493755999569,25.4716992505284,796.006204283707" />
-    <Link Source="@24" Target="@18" Category="References" Bounds="404.520111083984,245,729.132476806641,145.440704345703" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="2">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@24" Target="@30" Category="CodeMap_ExternalReference" Bounds="581.321351753771,269.999416666667,9.64265948620016,366.004121822538" />
-    <Link Source="@24" Target="@32" Category="CodeMap_ProjectReference" Bounds="342.181823730469,245,47.714599609375,25.7284851074219" />
-    <Link Source="@26" Target="@12" Category="References" Bounds="995.507574845661,-163.493855999569,249.737881298499,851.365590055536" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="289">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FieldWrite" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-      <Category Ref="Implements" />
-      <Category Ref="InheritsFrom" />
-    </Link>
-    <Link Source="@26" Target="@14" Category="CodeSchema_ReturnTypeLink" Bounds="1083.09204887295,-163.493855999569,163.257018656659,796.18503841765" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="313">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@26" Target="@16" Category="CodeMap_ExternalReference" Bounds="1222.99775932762,-163.493855999569,25.5392879513399,851.005750156986" />
-    <Link Source="@26" Target="@18" Category="References" Bounds="631.545471191406,190,503.158874511719,195.970764160156" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="63">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-    </Link>
-    <Link Source="@26" Target="@24" Category="References" Bounds="1182.04404238238,-174.742135999804,0,21" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="16">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="Implements" />
-    </Link>
-    <Link Source="@26" Target="@30" Category="References" Bounds="549.121154785156,190,67.8788452148438,135.595245361328" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="56">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-    </Link>
-    <Link Source="@26" Target="@32" Category="CodeMap_ExternalReference" Bounds="581.321351753771,214.999316666667,9.64265948620084,366.004121822538" />
-    <Link Source="@28" Target="@10" Category="CodeMap_ProjectReference" Bounds="1371.60961914063,80,146.61767578125,28.2946243286133" />
-    <Link Source="@28" Target="@12" Category="CodeSchema_Calls" Bounds="624.819519042969,-314.296905517578,349.522766113281,992.146759033203" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="5">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@28" Target="@14" Category="CodeSchema_ReturnTypeLink" Bounds="626.313781738281,-314.296905517578,415.034729003906,941.063018798828" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="45">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@28" Target="@16" Category="CodeMap_ExternalReference" Bounds="1167.18981933594,-311.467468261719,448.08837890625,1018.27349853516" />
-    <Link Source="@28" Target="@18" Category="CodeMap_ExternalReference" Bounds="626.313781738281,-314.296905517578,374.720458984375,887.966949462891" />
-    <Link Source="@28" Target="@2" Category="CodeSchema_FunctionPointer" Bounds="1118.79528808594,-311.467468261719,240.3896484375,433.495056152344" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="108">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_AttributeUse" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FieldRead" />
-      <Category Ref="InheritsFrom" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@28" Target="@22" Category="CodeSchema_Calls" Bounds="676.167419433594,-314.296905517578,298.174865722656,482.868988037109" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="1">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@28" Target="@34" Category="CodeMap_ExternalReference" Bounds="396.172639134664,80.0000000000002,184.337291405192,726.277412829323" />
-    <Link Source="@28" Target="@36" Category="CodeMap_ExternalReference" Bounds="396.388885443922,80.0000000000002,182.000577468687,671.314287840098" />
-    <Link Source="@28" Target="@38" Category="References" Bounds="1426,80,150.068237304688,245.823944091797" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="2">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@28" Target="@4" Category="CodeMap_ExternalReference" Bounds="399.967306788906,80.0000000000002,182.341950501455,327.138512817805" />
-    <Link Source="@28" Target="@40" Category="CodeMap_ExternalReference" Bounds="405.401083002474,80.0000000000002,499.625869824743,503.611125864026" />
-    <Link Source="@28" Target="@43" Category="CodeSchema_Calls" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="5" />
-    <Link Source="@28" Target="@6" Category="CodeMap_ExternalReference" Bounds="401.151441998607,80.0000000000002,177.676015674688,272.461019327996" />
-    <Link Source="@28" Target="@8" Category="CodeSchema_Calls" Bounds="1583.45458984375,80,1.54541015625,131" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="41">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@30" Target="@12" Category="References" Bounds="993.105128173869,346.506944000431,60.6479783822664,341.139841438285" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="18">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-      <Category Ref="Implements" />
-    </Link>
-    <Link Source="@30" Target="@14" Category="References" Bounds="1056.86386505985,346.506944000431,20.3306262324559,286.023450034565" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="10">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@30" Target="@16" Category="CodeMap_ExternalReference" Bounds="1061.52125791257,346.506944000431,151.635559384476,341.774238454747" />
-    <Link Source="@30" Target="@18" Category="CodeMap_ProjectReference" Bounds="652.936096191406,352.759735107422,480.721862792969,36.8240966796875" />
-    <Link Source="@32" Target="@12" Category="References" Bounds="992.624459037396,291.506844000431,61.4128892974107,396.107257929124" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="284">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-      <Category Ref="Implements" />
-      <Category Ref="InheritsFrom" />
-    </Link>
-    <Link Source="@32" Target="@14" Category="CodeSchema_ReturnTypeLink" Bounds="1056.73355129338,291.506844000431,20.6844711346653,341.017410184443" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="543">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_FunctionPointer" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@32" Target="@16" Category="CodeMap_ExternalReference" Bounds="1060.8118994405,291.506844000431,153.456534711699,396.607396253455" />
-    <Link Source="@32" Target="@18" Category="CodeMap_ExternalReference" Bounds="705.653400553083,615.000316666667,696.400827879566,69.6967319833279" />
-    <Link Source="@32" Target="@30" Category="Implements" Bounds="1083.8886110064,280.256864000198,2.27373675443232E-13,21.0000000000001" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="8">
-      <Category Ref="CodeMap_ProjectReference" />
-    </Link>
-    <Link Source="@34" Target="@12" Category="CodeMap_ExternalReference" Bounds="996.661509299744,516.507344000431,60.0769029486323,171.506541220163" />
-    <Link Source="@34" Target="@14" Category="CodeMap_ExternalReference" Bounds="1062.5840309305,516.507344000431,13.6210315029193,116.061747389067" />
-    <Link Source="@34" Target="@16" Category="CodeMap_ExternalReference" Bounds="1070.94844466293,516.507344000431,136.008901356584,172.926381779364" />
-    <Link Source="@34" Target="@18" Category="CodeMap_ProjectReference" Bounds="1127.27270507813,355,69.0621337890625,26.7493896484375" />
-    <Link Source="@36" Target="@12" Category="CodeMap_ExternalReference" Bounds="995.155923175613,461.507244000431,62.5087343133509,226.325395377398" />
-    <Link Source="@36" Target="@14" Category="CodeMap_ExternalReference" Bounds="1062.19044509154,461.507244000431,14.6872192028559,171.033501633105" />
-    <Link Source="@36" Target="@16" Category="CodeMap_ExternalReference" Bounds="1068.86872297958,461.507244000431,140.989026828228,227.351940224099" />
-    <Link Source="@36" Target="@18" Category="CodeMap_ExternalReference" Bounds="720.32804101068,703.695239528203,681.354769360693,57.3432450550622" />
-    <Link Source="@36" Target="@34" Category="CodeMap_ProjectReference" Bounds="1089.03027767307,450.256864000198,0,20.9999999999999" />
-    <Link Source="@38" Target="@12" Category="Implements" Bounds="1009.60223359172,346.506944000431,375.728844849725,343.924122765729" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="4">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@38" Target="@14" Category="References" Bounds="1097.59805921921,346.506944000431,288.878612775284,288.639474696929" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="2">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@38" Target="@16" Category="CodeMap_ExternalReference" Bounds="1232.07552603466,346.506944000431,161.023703763227,341.858898744713" />
-    <Link Source="@38" Target="@18" Category="CodeMap_ProjectReference" Bounds="1312.66467285156,355,151.51708984375,28.3450317382813" />
-    <Link Source="@4" Target="@12" Category="CodeMap_ExternalReference" Bounds="923.801768435281,61.5062440004308,63.335315976199,626.047305867651" />
-    <Link Source="@4" Target="@14" Category="CodeMap_ExternalReference" Bounds="925.764113792851,61.5062440004308,147.480422630463,571.287194074382" />
-    <Link Source="@4" Target="@16" Category="CodeMap_ExternalReference" Bounds="928.215490689894,61.5062440004308,284.736530176246,626.807435469254" />
-    <Link Source="@4" Target="@18" Category="CodeMap_ExternalReference" Bounds="636.244363336677,439.999816666667,817.533929477919,239.965409259129" />
-    <Link Source="@4" Target="@34" Category="CodeMap_ExternalReference" Bounds="586.313822339154,439.999816666667,7.10195951722494,366.002693860792" />
-    <Link Source="@4" Target="@36" Category="CodeMap_ProjectReference" Bounds="1111.22729492188,245,9.0731201171875,21.69677734375" />
-    <Link Source="@40" Target="@12" Category="References" Bounds="1007.42493586885,291.506844000431,379.652832941718,398.484929594522" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="10">
-      <Category Ref="CodeMap_ProjectReference" />
-      <Category Ref="CodeSchema_Calls" />
-      <Category Ref="Implements" />
-      <Category Ref="InheritsFrom" />
-    </Link>
-    <Link Source="@40" Target="@14" Category="References" Bounds="1095.24148540836,291.506844000431,293.070037770331,343.157110177025" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="6">
-      <Category Ref="CodeMap_ProjectReference" />
-    </Link>
-    <Link Source="@40" Target="@16" Category="CodeMap_ExternalReference" Bounds="1230.90707296908,291.506844000431,162.945246947188,396.676004154353" />
-    <Link Source="@40" Target="@18" Category="CodeMap_ExternalReference" Bounds="1002.31198060558,615.000316666667,415.254555657847,66.0851893692864" />
-    <Link Source="@40" Target="@38" Category="Implements" Bounds="1426.90027767307,280.256864000198,0,21" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="2">
-      <Category Ref="CodeMap_ProjectReference" />
-    </Link>
-    <Link Source="@42" Target="@41" Category="CodeSchema_AttributeUse" Bounds="1230.61206054688,805.253723144531,0,20.9993896484375" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="2" />
-    <Link Source="@43" Target="@42" Category="CodeSchema_AttributeUse" Bounds="1230.61206054688,750.255310058594,0,20.9993896484375" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="1" />
-    <Link Source="@6" Target="@12" Category="CodeMap_ExternalReference" Bounds="923.704492546312,6.50614400043082,63.5989234084484,681.04068851433" />
-    <Link Source="@6" Target="@14" Category="CodeMap_ExternalReference" Bounds="925.495202904024,6.50614400043082,148.195346862508,626.243484027064" />
-    <Link Source="@6" Target="@16" Category="CodeMap_ExternalReference" Bounds="927.778697894355,6.50614400043082,285.852132345963,681.701851403215" />
-    <Link Source="@6" Target="@18" Category="CodeMap_ExternalReference" Bounds="627.28663557324,384.999716666667,833.835480895581,294.503018647594" />
-    <Link Source="@6" Target="@2" Category="CodeMap_ProjectReference" Bounds="905.411071777344,190,138.997985839844,28.2099304199219" />
-    <Link Source="@6" Target="@22" Category="CodeMap_ExternalReference" Bounds="202.506514438536,384.999716666667,380.209058472079,517.746171370141" />
-    <Link Source="@6" Target="@34" Category="CodeMap_ExternalReference" Bounds="586.180093401519,384.999716666667,5.55011761958258,421.001881973812" />
-    <Link Source="@6" Target="@36" Category="CodeMap_ExternalReference" Bounds="584.550489005821,384.999716666667,7.10195951722483,366.002693860792" />
-    <Link Source="@6" Target="@4" Category="CodeMap_ProjectReference" Bounds="855.669042382377,-4.74213599980396,1.13686837721616E-13,21" />
-    <Link Source="@8" Target="@12" Category="Implements" Bounds="923.542756600699,-108.494155999569,64.0375356842628,796.030981449128" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="14">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="CodeSchema_ReturnTypeLink" />
-    </Link>
-    <Link Source="@8" Target="@14" Category="CodeSchema_ReturnTypeLink" Bounds="925.056270577948,-108.494155999569,149.367748707533,741.179274484578" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="12">
-      <Category Ref="CodeMap_ExternalReference" />
-      <Category Ref="References" />
-    </Link>
-    <Link Source="@8" Target="@16" Category="CodeMap_ExternalReference" Bounds="927.05246350502,-108.494155999569,287.727269830233,796.537316382455" />
-    <Link Source="@8" Target="@18" Category="References" Bounds="1270.38842773438,245,285.09814453125,136.015716552734" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="1">
-      <Category Ref="CodeMap_ExternalReference" />
-    </Link>
-    <Link Source="@8" Target="@38" Category="CodeMap_ExternalReference" Bounds="916.247551476955,269.999416666667,7.10195951722505,366.002693860792" />
-    <Link Source="@8" Target="@40" Category="CodeMap_ProjectReference" Bounds="1594.09094238281,245,16.524658203125,22.7213745117188" />
-    <Link Source="@8" Target="@43" Category="References" IsSourceVirtualized="True" IsTargetVirtualized="True" Weight="1" />
-    <Link Source="BasicInfo{5CC8AEFF-2F75-4053-9569-73419839875A}" Target="@34" Category="Contains" FetchingParent="BasicInfo{5CC8AEFF-2F75-4053-9569-73419839875A}" />
-    <Link Source="BasicInfo{5CC8AEFF-2F75-4053-9569-73419839875A}" Target="@36" Category="Contains" FetchingParent="BasicInfo{5CC8AEFF-2F75-4053-9569-73419839875A}" />
-    <Link Source="BasicInfo{9CB2F821-BB23-48E5-88E8-C326477733C0}" Target="@4" Category="Contains" FetchingParent="BasicInfo{9CB2F821-BB23-48E5-88E8-C326477733C0}" />
-    <Link Source="BasicInfo{9CB2F821-BB23-48E5-88E8-C326477733C0}" Target="@6" Category="Contains" FetchingParent="BasicInfo{9CB2F821-BB23-48E5-88E8-C326477733C0}" />
-    <Link Source="Repository{4FF30CF7-DA79-4EDD-9A6E-0B0BEAD72A1A}" Target="BasicInfo{5CC8AEFF-2F75-4053-9569-73419839875A}" Category="Contains" FetchingParent="Repository{4FF30CF7-DA79-4EDD-9A6E-0B0BEAD72A1A}" />
-    <Link Source="Repository{4FF30CF7-DA79-4EDD-9A6E-0B0BEAD72A1A}" Target="System{93EFF637-042E-4DD0-A74B-7F0CF998CF96}" Category="Contains" FetchingParent="Repository{4FF30CF7-DA79-4EDD-9A6E-0B0BEAD72A1A}" />
-    <Link Source="Repository{4FF30CF7-DA79-4EDD-9A6E-0B0BEAD72A1A}" Target="TaskInfo{684035E2-174F-47CE-AA5C-36624C7E26F3}" Category="Contains" FetchingParent="Repository{4FF30CF7-DA79-4EDD-9A6E-0B0BEAD72A1A}" />
-    <Link Source="Service{A12315CA-9D81-412C-A09B-B23D95CFFE16}" Target="BasicInfo{9CB2F821-BB23-48E5-88E8-C326477733C0}" Category="Contains" FetchingParent="Service{A12315CA-9D81-412C-A09B-B23D95CFFE16}" />
-    <Link Source="Service{A12315CA-9D81-412C-A09B-B23D95CFFE16}" Target="System{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}" Category="Contains" FetchingParent="Service{A12315CA-9D81-412C-A09B-B23D95CFFE16}" />
-    <Link Source="Service{A12315CA-9D81-412C-A09B-B23D95CFFE16}" Target="TaskInfo{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}" Category="Contains" FetchingParent="Service{A12315CA-9D81-412C-A09B-B23D95CFFE16}" />
-    <Link Source="System{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}" Target="@24" Category="Contains" FetchingParent="System{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}" />
-    <Link Source="System{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}" Target="@26" Category="Contains" FetchingParent="System{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}" />
-    <Link Source="System{93EFF637-042E-4DD0-A74B-7F0CF998CF96}" Target="@30" Category="Contains" FetchingParent="System{93EFF637-042E-4DD0-A74B-7F0CF998CF96}" />
-    <Link Source="System{93EFF637-042E-4DD0-A74B-7F0CF998CF96}" Target="@32" Category="Contains" FetchingParent="System{93EFF637-042E-4DD0-A74B-7F0CF998CF96}" />
-    <Link Source="TaskInfo{684035E2-174F-47CE-AA5C-36624C7E26F3}" Target="@38" Category="Contains" FetchingParent="TaskInfo{684035E2-174F-47CE-AA5C-36624C7E26F3}" />
-    <Link Source="TaskInfo{684035E2-174F-47CE-AA5C-36624C7E26F3}" Target="@40" Category="Contains" FetchingParent="TaskInfo{684035E2-174F-47CE-AA5C-36624C7E26F3}" />
-    <Link Source="TaskInfo{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}" Target="@10" Category="Contains" FetchingParent="TaskInfo{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}" />
-    <Link Source="TaskInfo{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}" Target="@8" Category="Contains" FetchingParent="TaskInfo{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}" />
-  </Links>
-  <Categories>
-    <Category Id="CodeMap_ExternalReference" Label="澶栭儴寮曠敤" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="寮曠敤鑰�" OutgoingActionLabel="寮曠敤" />
-    <Category Id="CodeMap_ProjectReference" Label="椤圭洰寮曠敤" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="寮曠敤鑰�" OutgoingActionLabel="寮曠敤" />
-    <Category Id="CodeMap_SolutionFolder" Label="瑙e喅鏂规鏂囦欢澶�" CanBeDataDriven="True" IsProviderRoot="False" NavigationActionLabel="瑙e喅鏂规鏂囦欢澶�" />
-    <Category Id="CodeSchema_Assembly" Label="绋嬪簭闆�" BasedOn="File" CanBeDataDriven="True" DefaultAction="Microsoft.Contains" Icon="CodeSchema_Assembly" NavigationActionLabel="绋嬪簭闆�" />
-    <Category Id="CodeSchema_AttributeUse" Label="浣跨敤鐗规��" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="浣跨敤鑰�" OutgoingActionLabel="浣跨敤鐗规��" />
-    <Category Id="CodeSchema_Calls" Label="璋冪敤" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="璋冪敤鑰�" OutgoingActionLabel="璋冪敤" />
-    <Category Id="CodeSchema_FieldRead" Label="瀛楁璇诲彇" BasedOn="CodeSchema_FieldReference" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="璇诲彇鏂�" OutgoingActionLabel="璇诲彇瀛楁" />
-    <Category Id="CodeSchema_FieldReference" Label="瀛楁寮曠敤" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="寮曠敤鑰�" OutgoingActionLabel="寮曠敤瀛楁" />
-    <Category Id="CodeSchema_FieldWrite" Label="瀛楁鍐欏叆" BasedOn="CodeSchema_FieldReference" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="鍐欏叆鏂�" OutgoingActionLabel="鍐欏叆瀛楁" />
-    <Category Id="CodeSchema_FunctionPointer" Label="鍑芥暟鎸囬拡" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="鍑芥暟鎸囬拡" OutgoingActionLabel="鍑芥暟鎸囬拡" />
-    <Category Id="CodeSchema_Namespace" Label="鍛藉悕绌洪棿" CanBeDataDriven="True" DefaultAction="Node:Both:CodeSchema_Type" Icon="CodeSchema_Namespace" NavigationActionLabel="鍛藉悕绌洪棿" />
-    <Category Id="CodeSchema_ReturnTypeLink" Label="杩斿洖" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="杩斿洖绫诲瀷" OutgoingActionLabel="杩斿洖绫诲瀷" />
-    <Category Id="Contains" Label="鍖呭惈" Description="閾炬帴鐨勬簮鏄惁鍖呭惈鐩爣瀵硅薄" CanBeDataDriven="False" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="鍖呭惈鑰�" IsContainment="True" OutgoingActionLabel="鍖呭惈" />
-    <Category Id="File" Label="鏂囦欢" CanBeDataDriven="True" DefaultAction="Microsoft.Contains" Icon="File" NavigationActionLabel="鏂囦欢" />
-    <Category Id="Implements" Label="瀹炵幇" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="瀹炵幇鑰�" OutgoingActionLabel="瀹炵幇" />
-    <Category Id="InheritsFrom" Label="缁ф壙鑷�" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="缁ф壙鑰�" OutgoingActionLabel="缁ф壙鑷�" />
-    <Category Id="References" Label="寮曠敤" CanBeDataDriven="True" CanLinkedNodesBeDataDriven="True" IncomingActionLabel="寮曠敤鑰�" OutgoingActionLabel="寮曠敤" />
-  </Categories>
-  <Properties>
-    <Property Id="Bounds" DataType="System.Windows.Rect" />
-    <Property Id="CanBeDataDriven" Label="CanBeDataDriven" Description="CanBeDataDriven" DataType="System.Boolean" />
-    <Property Id="CanLinkedNodesBeDataDriven" Label="CanLinkedNodesBeDataDriven" Description="CanLinkedNodesBeDataDriven" DataType="System.Boolean" />
-    <Property Id="CodeSchemaProperty_StrongName" Label="StrongName" Description="StrongName" DataType="System.String" />
-    <Property Id="DataVirtualized" Label="宸茶櫄鎷熷寲鏁版嵁" Description="濡傛灉涓� true锛屽垯鍥句腑鍙互鍖呭惈琛ㄧず铏氭嫙鍖栬妭鐐�/閾炬帴(鍗筹紝涓嶅湪鍥句腑瀹為檯鍒涘缓)鐨勬暟鎹殑鑺傜偣鍜岄摼鎺ャ��" DataType="System.Boolean" />
-    <Property Id="DefaultAction" Label="DefaultAction" Description="DefaultAction" DataType="System.String" />
-    <Property Id="DelayedChildNodesState" Label="寤惰繜鐨勫瓙鑺傜偣鐘舵��" Description="濡傛灉鏈寚瀹氬欢杩熺殑瀛愯妭鐐圭姸鎬侊紝鍒欎负 Unspecified銆傚鏋滃皻鏈皢缁勫寘鍚殑瀛愯妭鐐规彁鍙栧埌鍏崇郴鍥句腑锛屽垯涓� NotFetched銆傚鏋滃凡鎻愬彇缁勫唴鐨勬墍鏈夊欢杩熺殑瀛愯妭鐐癸紝鍒欎负 Fetched銆�" DataType="Microsoft.VisualStudio.GraphModel.DelayedDataState" />
-    <Property Id="DelayedCrossGroupLinksState" Label="寤惰繜鐨勮法缁勯摼鎺ョ姸鎬�" Description="濡傛灉鏈寚瀹氬欢杩熺殑璺ㄧ粍閾炬帴鐘舵�侊紝鍒欎负 Unspecified銆傚鏋滃皻鏈皢姝よ妭鐐逛笂寤惰繜鐨勮法缁勯摼鎺ユ彁鍙栧埌鍏崇郴鍥句腑锛屽垯涓� NotFetched銆傚鏋滃凡鎻愬彇鎵�鏈夊欢杩熺殑璺ㄧ粍閾炬帴锛屽垯涓� Fetched銆�" DataType="Microsoft.VisualStudio.GraphModel.DelayedDataState" />
-    <Property Id="ErrorMessage" Label="閿欒" Description="閿欒" DataType="System.String" />
-    <Property Id="Expression" DataType="System.String" />
-    <Property Id="FetchedChildrenCount" DataType="System.Int32" />
-    <Property Id="FetchingParent" DataType="Microsoft.VisualStudio.GraphModel.GraphNodeId" />
-    <Property Id="FilePath" Label="鏂囦欢璺緞" Description="鏂囦欢璺緞" DataType="System.String" />
-    <Property Id="Group" Label="缁�" Description="灏嗚妭鐐规樉绀轰负缁�" DataType="Microsoft.VisualStudio.GraphModel.GraphGroupStyle" />
-    <Property Id="GroupLabel" DataType="System.String" />
-    <Property Id="Icon" DataType="System.String" />
-    <Property Id="IncomingActionLabel" Label="IncomingActionLabel" Description="IncomingActionLabel" DataType="System.String" />
-    <Property Id="IsContainment" DataType="System.Boolean" />
-    <Property Id="IsEnabled" DataType="System.Boolean" />
-    <Property Id="IsProviderRoot" Label="IsProviderRoot" Description="IsProviderRoot" DataType="System.Boolean" />
-    <Property Id="IsSourceVirtualized" Label="宸茶櫄鎷熷寲閾炬帴婧�" Description="濡傛灉涓� true锛屽垯閾炬帴婧愮鍖呭惈铏氭嫙鍖栬妭鐐�/閾炬帴(鍗筹紝涓嶅湪鍥句腑瀹為檯鍒涘缓)鐨勬暟鎹��" DataType="System.Boolean" />
-    <Property Id="IsTargetVirtualized" Label="宸茶櫄鎷熷寲閾炬帴鐩爣" Description="濡傛灉涓� true锛屽垯閾炬帴鐩爣绔寘鍚櫄鎷熷寲鑺傜偣/閾炬帴(鍗筹紝涓嶅湪鍥句腑瀹為檯鍒涘缓)鐨勬暟鎹��" DataType="System.Boolean" />
-    <Property Id="IsUnreferenced" Label="鏈紩鐢ㄧ殑" Description="鑺傜偣娌℃湁浠庡叧绯诲浘涓殑鍏朵粬鑺傜偣鎸囧悜瀹冪殑閾炬帴" DataType="System.Boolean" />
-    <Property Id="Label" Label="鏍囩" Description="鍙壒娉ㄥ璞$殑鍙樉绀烘爣绛�" DataType="System.String" />
-    <Property Id="Layout" DataType="System.String" />
-    <Property Id="NavigationActionLabel" Label="NavigationActionLabel" Description="NavigationActionLabel" DataType="System.String" />
-    <Property Id="OutgoingActionLabel" Label="OutgoingActionLabel" Description="OutgoingActionLabel" DataType="System.String" />
-    <Property Id="TargetType" DataType="System.Type" />
-    <Property Id="ToolTip" DataType="System.String" />
-    <Property Id="UseManualLocation" DataType="System.Boolean" />
-    <Property Id="Value" DataType="System.String" />
-    <Property Id="ValueLabel" DataType="System.String" />
-    <Property Id="Visibility" Label="鍙鎬�" Description="瀹氫箟鍏崇郴鍥句腑鐨勮妭鐐规槸鍚﹀彲瑙�" DataType="System.Windows.Visibility" />
-    <Property Id="Weight" Label="绮楃粏" Description="绮楃粏" DataType="System.Double" />
-    <Property Id="ZoomLevel" DataType="System.String" />
-  </Properties>
-  <QualifiedNames>
-    <Name Id="Assembly" Label="绋嬪簭闆�" ValueType="Uri" />
-    <Name Id="Namespace" Label="鍛藉悕绌洪棿" ValueType="System.String" />
-  </QualifiedNames>
-  <IdentifierAliases>
-    <Alias n="1" Uri="Assembly=$(6236bfff-173d-44a8-9fc3-7c001ea30347.OutputPathUri)" />
-    <Alias n="2" Id="(@1)" />
-    <Alias n="3" Uri="Assembly=$(8c2cc25b-de5d-433e-a550-63864c7a716d.OutputPathUri)" />
-    <Alias n="4" Id="(@3)" />
-    <Alias n="5" Uri="Assembly=$(ffab2c76-1c9e-4006-95c8-a0b2aa53139d.OutputPathUri)" />
-    <Alias n="6" Id="(@5)" />
-    <Alias n="7" Uri="Assembly=$(7279a2ae-8d1f-4e66-a73a-01af7927a336.OutputPathUri)" />
-    <Alias n="8" Id="(@7)" />
-    <Alias n="9" Uri="Assembly=$(83f18a31-5983-4587-a0b2-414bf70e50b5.OutputPathUri)" />
-    <Alias n="10" Id="(@9)" />
-    <Alias n="11" Uri="Assembly=$(bffdd936-2e61-4d3a-abfe-7cf77fe0b184.OutputPathUri)" />
-    <Alias n="12" Id="(@11)" />
-    <Alias n="13" Uri="Assembly=$(7f200fe8-caf6-4131-bd25-8d438fe0abac.OutputPathUri)" />
-    <Alias n="14" Id="(@13)" />
-    <Alias n="15" Uri="Assembly=$(9fbc654c-51de-422d-9e1e-6a38268de1e2.OutputPathUri)" />
-    <Alias n="16" Id="(@15)" />
-    <Alias n="17" Uri="Assembly=$(c2d3d138-9109-481b-8beb-a27597890b2c.OutputPathUri)" />
-    <Alias n="18" Id="(@17)" />
-    <Alias n="19" Uri="Assembly=$(487fa45b-ea1a-4aca-bb5b-0f6708f462c0.OutputPathUri)" />
-    <Alias n="20" Id="(@19)" />
-    <Alias n="21" Uri="Assembly=$(861c4d0b-a478-48db-a0fa-ae70f5ba210a.OutputPathUri)" />
-    <Alias n="22" Id="(@21)" />
-    <Alias n="23" Uri="Assembly=$(9e4bff47-52bf-4fd8-9cc7-3763bf19d9e0.OutputPathUri)" />
-    <Alias n="24" Id="(@23)" />
-    <Alias n="25" Uri="Assembly=$(a14242dd-da06-4dc3-8598-1761aa7c76d1.OutputPathUri)" />
-    <Alias n="26" Id="(@25)" />
-    <Alias n="27" Uri="Assembly=$(294e4915-0241-4c8c-ba99-7588b945863a.OutputPathUri)" />
-    <Alias n="28" Id="(@27)" />
-    <Alias n="29" Uri="Assembly=$(f302e6d6-5a95-4d22-8dc2-21be2cb30275.OutputPathUri)" />
-    <Alias n="30" Id="(@29)" />
-    <Alias n="31" Uri="Assembly=$(5777bdec-4726-4425-85f2-a090524f692d.OutputPathUri)" />
-    <Alias n="32" Id="(@31)" />
-    <Alias n="33" Uri="Assembly=$(266d07b7-3648-4f3d-818a-89eda7d84c58.OutputPathUri)" />
-    <Alias n="34" Id="(@33)" />
-    <Alias n="35" Uri="Assembly=$(206fdf79-9bf3-433a-b7ff-627287bbd760.OutputPathUri)" />
-    <Alias n="36" Id="(@35)" />
-    <Alias n="37" Uri="Assembly=$(09d05f35-cea2-48d9-86d0-fb95982ba511.OutputPathUri)" />
-    <Alias n="38" Id="(@37)" />
-    <Alias n="39" Uri="Assembly=$(35054aa5-cf40-4f38-9414-c76742c29382.OutputPathUri)" />
-    <Alias n="40" Id="(@39)" />
-    <Alias n="41" Id="(@15 Namespace=Microsoft.CodeAnalysis)" />
-    <Alias n="42" Id="(@15 Namespace=System.Runtime.CompilerServices)" />
-    <Alias n="43" Id="(@15 Namespace=WIDESEAWCS_Common.TaskEnum)" />
-  </IdentifierAliases>
-  <Styles>
-    <Style TargetType="Node" GroupLabel="鏈紩鐢ㄧ殑" ToolTip="鑺傜偣娌℃湁浠庡叧绯诲浘涓殑鍏朵粬鑺傜偣鎸囧悜瀹冪殑閾炬帴" ValueLabel="True">
-      <Condition Expression="IsUnreferenced" />
-      <Setter Property="Background" Value="Purple" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="缁撴灉" ValueLabel="True">
-      <Condition Expression="HasCategory('QueryResult')" />
-      <Setter Property="Background" Value="#FFBCFFBE" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="娴嬭瘯椤圭洰" ValueLabel="娴嬭瘯椤圭洰">
-      <Condition Expression="HasCategory('CodeMap_TestProject')" />
-      <Setter Property="Icon" Value="CodeMap_TestProject" />
-      <Setter Property="Background" Value="#FF307A69" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Web 椤圭洰" ValueLabel="Web 椤圭洰">
-      <Condition Expression="HasCategory('CodeMap_WebProject')" />
-      <Setter Property="Icon" Value="CodeMap_WebProject" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Windows 搴旂敤鍟嗗簵椤圭洰" ValueLabel="Windows 搴旂敤鍟嗗簵椤圭洰">
-      <Condition Expression="HasCategory('CodeMap_WindowsStoreProject')" />
-      <Setter Property="Icon" Value="CodeMap_WindowsStoreProject" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="鐢佃瘽椤圭洰" ValueLabel="鐢佃瘽椤圭洰">
-      <Condition Expression="HasCategory('CodeMap_PhoneProject')" />
-      <Setter Property="Icon" Value="CodeMap_PhoneProject" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="鍙Щ妞嶅簱" ValueLabel="鍙Щ妞嶅簱">
-      <Condition Expression="HasCategory('CodeMap_PortableLibraryProject')" />
-      <Setter Property="Icon" Value="CodeMap_PortableLibraryProject" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="WPF 椤圭洰" ValueLabel="WPF 椤圭洰">
-      <Condition Expression="HasCategory('CodeMap_WpfProject')" />
-      <Setter Property="Icon" Value="CodeMap_WpfProject" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="VSIX 椤圭洰" ValueLabel="VSIX 椤圭洰">
-      <Condition Expression="HasCategory('CodeMap_VsixProject')" />
-      <Setter Property="Icon" Value="CodeMap_VsixProject" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="寤烘ā椤圭洰" ValueLabel="寤烘ā椤圭洰">
-      <Condition Expression="HasCategory('CodeMap_ModelingProject')" />
-      <Setter Property="Icon" Value="CodeMap_ModelingProject" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="绋嬪簭闆�" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Assembly')" />
-      <Setter Property="Background" Value="#FF094167" />
-      <Setter Property="Stroke" Value="#FF094167" />
-      <Setter Property="Icon" Value="CodeSchema_Assembly" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="鍛藉悕绌洪棿" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Namespace')" />
-      <Setter Property="Background" Value="#FF0E619A" />
-      <Setter Property="Stroke" Value="#FF0E619A" />
-      <Setter Property="Icon" Value="CodeSchema_Namespace" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="鎺ュ彛" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Interface')" />
-      <Setter Property="Background" Value="#FF1382CE" />
-      <Setter Property="Stroke" Value="#FF1382CE" />
-      <Setter Property="Icon" Value="CodeSchema_Interface" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="缁撴瀯" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Struct')" />
-      <Setter Property="Background" Value="#FF1382CE" />
-      <Setter Property="Stroke" Value="#FF1382CE" />
-      <Setter Property="Icon" Value="CodeSchema_Struct" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="鏋氫妇" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Enum')" />
-      <Setter Property="Background" Value="#FF1382CE" />
-      <Setter Property="Stroke" Value="#FF1382CE" />
-      <Setter Property="Icon" Value="CodeSchema_Enum" />
-      <Setter Property="LayoutSettings" Value="List" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="濮旀墭" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Delegate')" />
-      <Setter Property="Background" Value="#FF1382CE" />
-      <Setter Property="Stroke" Value="#FF1382CE" />
-      <Setter Property="Icon" Value="CodeSchema_Delegate" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="绫�" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Type')" />
-      <Setter Property="Background" Value="#FF0E70C0" />
-      <Setter Property="Stroke" Value="#FF0E70C0" />
-      <Setter Property="Icon" Value="CodeSchema_Class" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="灞炴��" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Property')" />
-      <Setter Property="Background" Value="#FFE0E0E0" />
-      <Setter Property="Stroke" Value="#FFE0E0E0" />
-      <Setter Property="Icon" Value="CodeSchema_Property" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="鏂规硶" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Method') Or HasCategory('CodeSchema_CallStackUnresolvedMethod')" />
-      <Setter Property="Background" Value="#FFE0E0E0" />
-      <Setter Property="Stroke" Value="#FFE0E0E0" />
-      <Setter Property="Icon" Value="CodeSchema_Method" />
-      <Setter Property="LayoutSettings" Value="List" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="浜嬩欢" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Event')" />
-      <Setter Property="Background" Value="#FFE0E0E0" />
-      <Setter Property="Stroke" Value="#FFE0E0E0" />
-      <Setter Property="Icon" Value="CodeSchema_Event" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="瀛楁" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Field')" />
-      <Setter Property="Background" Value="#FFE0E0E0" />
-      <Setter Property="Stroke" Value="#FFE0E0E0" />
-      <Setter Property="Icon" Value="CodeSchema_Field" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Out 鍙傛暟" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="CodeSchemaProperty_IsOut = 'True'" />
-      <Setter Property="Icon" Value="CodeSchema_OutParameter" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="鍙傛暟" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_Parameter')" />
-      <Setter Property="Icon" Value="CodeSchema_Parameter" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="灞�閮ㄥ彉閲�" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('CodeSchema_LocalExpression')" />
-      <Setter Property="Icon" Value="CodeSchema_LocalExpression" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="澶栭儴" ValueLabel="鍏锋湁绫诲埆">
-      <Condition Expression="HasCategory('Externals')" />
-      <Setter Property="Background" Value="#FF424242" />
-      <Setter Property="Stroke" Value="#FF424242" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="缁ф壙鑷�" ValueLabel="True">
-      <Condition Expression="HasCategory('InheritsFrom')" />
-      <Setter Property="Stroke" Value="#FF00A600" />
-      <Setter Property="StrokeDashArray" Value="2 0" />
-      <Setter Property="DrawArrow" Value="true" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="瀹炵幇" ValueLabel="True">
-      <Condition Expression="HasCategory('Implements')" />
-      <Setter Property="Stroke" Value="#8000A600" />
-      <Setter Property="StrokeDashArray" Value="2 2" />
-      <Setter Property="DrawArrow" Value="true" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="璋冪敤" ValueLabel="True">
-      <Condition Expression="HasCategory('CodeSchema_Calls')" />
-      <Setter Property="Stroke" Value="#FFFF00FF" />
-      <Setter Property="StrokeDashArray" Value="2 0" />
-      <Setter Property="DrawArrow" Value="true" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="鍑芥暟鎸囬拡" ValueLabel="True">
-      <Condition Expression="HasCategory('CodeSchema_FunctionPointer')" />
-      <Setter Property="Stroke" Value="#FFFF00FF" />
-      <Setter Property="StrokeDashArray" Value="2 2" />
-      <Setter Property="DrawArrow" Value="true" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="瀛楁璇诲彇" ValueLabel="True">
-      <Condition Expression="HasCategory('CodeSchema_FieldRead')" />
-      <Setter Property="Stroke" Value="#FF00AEEF" />
-      <Setter Property="StrokeDashArray" Value="2 2" />
-      <Setter Property="DrawArrow" Value="true" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="瀛楁鍐欏叆" ValueLabel="True">
-      <Condition Expression="HasCategory('CodeSchema_FieldWrite')" />
-      <Setter Property="Stroke" Value="#FF00AEEF" />
-      <Setter Property="DrawArrow" Value="true" />
-      <Setter Property="IsHidden" Value="false" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="Inherits From" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="HasCategory('InheritsFrom') And Target.HasCategory('CodeSchema_Class')" />
-      <Setter Property="TargetDecorator" Value="OpenArrow" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="Implements" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="HasCategory('Implements') And Target.HasCategory('CodeSchema_Interface')" />
-      <Setter Property="TargetDecorator" Value="OpenArrow" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="Comment Link" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="Source.HasCategory('Comment')" />
-      <Setter Property="Stroke" Value="#FFE5C365" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Cursor Location Changed" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="IsCursorLocation" />
-      <Setter Property="IndicatorWest" Value="WestIndicator" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Disabled Breakpoint Location Changed" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="DisabledBreakpointCount" />
-      <Setter Property="IndicatorWest" Value="WestIndicator" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Enabled Breakpoint Location Changed" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="EnabledBreakpointCount" />
-      <Setter Property="IndicatorWest" Value="WestIndicator" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Instruction Pointer Location Changed" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="IsInstructionPointerLocation" />
-      <Setter Property="IndicatorWest" Value="WestIndicator" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="Current Callstack Changed" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="IsCurrentCallstackFrame" />
-      <Setter Property="IndicatorWest" Value="WestIndicator" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="杩斿洖" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="HasCategory('CodeSchema_ReturnTypeLink')" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="寮曠敤" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="HasCategory('References')" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="浣跨敤鐗规��" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="HasCategory('CodeSchema_AttributeUse')" />
-    </Style>
-    <Style TargetType="Node" GroupLabel="瑙e喅鏂规鏂囦欢澶�" ValueLabel="True" Visibility="Hidden">
-      <Condition Expression="HasCategory('CodeMap_SolutionFolder')" />
-      <Setter Property="Background" Value="#FFDEBA83" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="椤圭洰寮曠敤" ValueLabel="椤圭洰寮曠敤">
-      <Condition Expression="HasCategory('CodeMap_ProjectReference')" />
-      <Setter Property="Stroke" Value="#9A9A9A" />
-      <Setter Property="StrokeDashArray" Value="2 2" />
-      <Setter Property="DrawArrow" Value="true" />
-    </Style>
-    <Style TargetType="Link" GroupLabel="澶栭儴寮曠敤" ValueLabel="澶栭儴寮曠敤">
-      <Condition Expression="HasCategory('CodeMap_ExternalReference')" />
-      <Setter Property="Stroke" Value="#9A9A9A" />
-      <Setter Property="StrokeDashArray" Value="2 2" />
-      <Setter Property="DrawArrow" Value="true" />
-    </Style>
-  </Styles>
-  <Paths>
-    <Path Id="09d05f35-cea2-48d9-86d0-fb95982ba511.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_ITaskInfoRepository\bin\Debug\net6.0\WIDESEAWCS_ITaskInfoRepository.dll" />
-    <Path Id="09d05f35-cea2-48d9-86d0-fb95982ba511.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/bin/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.dll" />
-    <Path Id="206fdf79-9bf3-433a-b7ff-627287bbd760.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_BasicInfoRepository\bin\Debug\net6.0\WIDESEAWCS_BasicInfoRepository.dll" />
-    <Path Id="206fdf79-9bf3-433a-b7ff-627287bbd760.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/bin/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.dll" />
-    <Path Id="266d07b7-3648-4f3d-818a-89eda7d84c58.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_IBasicInfoRepository\bin\Debug\net6.0\WIDESEAWCS_IBasicInfoRepository.dll" />
-    <Path Id="266d07b7-3648-4f3d-818a-89eda7d84c58.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/bin/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.dll" />
-    <Path Id="294e4915-0241-4c8c-ba99-7588b945863a.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Tasks\bin\Debug\net6.0\WIDESEAWCS_Tasks.dll" />
-    <Path Id="294e4915-0241-4c8c-ba99-7588b945863a.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/bin/Debug/net6.0/WIDESEAWCS_Tasks.dll" />
-    <Path Id="35054aa5-cf40-4f38-9414-c76742c29382.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_TaskInfoRepository\bin\Debug\net6.0\WIDESEAWCS_TaskInfoRepository.dll" />
-    <Path Id="35054aa5-cf40-4f38-9414-c76742c29382.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/bin/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.dll" />
-    <Path Id="487fa45b-ea1a-4aca-bb5b-0f6708f462c0.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Server\bin\Debug\net6.0\WIDESEAWCS_Server.dll" />
-    <Path Id="487fa45b-ea1a-4aca-bb5b-0f6708f462c0.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/WIDESEAWCS_Server.dll" />
-    <Path Id="5777bdec-4726-4425-85f2-a090524f692d.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_SystemRepository\bin\Debug\net6.0\WIDESEAWCS_SystemRepository.dll" />
-    <Path Id="5777bdec-4726-4425-85f2-a090524f692d.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/bin/Debug/net6.0/WIDESEAWCS_SystemRepository.dll" />
-    <Path Id="6236bfff-173d-44a8-9fc3-7c001ea30347.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_QuartzJob\bin\Debug\net6.0\WIDESEAWCS_QuartzJob.dll" />
-    <Path Id="6236bfff-173d-44a8-9fc3-7c001ea30347.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/bin/Debug/net6.0/WIDESEAWCS_QuartzJob.dll" />
-    <Path Id="7279a2ae-8d1f-4e66-a73a-01af7927a336.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_ITaskInfoService\bin\Debug\net6.0\WIDESEAWCS_ITaskInfoService.dll" />
-    <Path Id="7279a2ae-8d1f-4e66-a73a-01af7927a336.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/bin/Debug/net6.0/WIDESEAWCS_ITaskInfoService.dll" />
-    <Path Id="7f200fe8-caf6-4131-bd25-8d438fe0abac.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Model\bin\Debug\net6.0\WIDESEAWCS_Model.dll" />
-    <Path Id="7f200fe8-caf6-4131-bd25-8d438fe0abac.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Model/bin/Debug/net6.0/WIDESEAWCS_Model.dll" />
-    <Path Id="83f18a31-5983-4587-a0b2-414bf70e50b5.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_TaskInfoService\bin\Debug\net6.0\WIDESEAWCS_TaskInfoService.dll" />
-    <Path Id="83f18a31-5983-4587-a0b2-414bf70e50b5.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/bin/Debug/net6.0/WIDESEAWCS_TaskInfoService.dll" />
-    <Path Id="861c4d0b-a478-48db-a0fa-ae70f5ba210a.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Communicator\bin\Debug\net6.0\WIDESEAWCS_Communicator.dll" />
-    <Path Id="861c4d0b-a478-48db-a0fa-ae70f5ba210a.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/bin/Debug/net6.0/WIDESEAWCS_Communicator.dll" />
-    <Path Id="8c2cc25b-de5d-433e-a550-63864c7a716d.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_IBasicInfoService\bin\Debug\net6.0\WIDESEAWCS_IBasicInfoService.dll" />
-    <Path Id="8c2cc25b-de5d-433e-a550-63864c7a716d.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/bin/Debug/net6.0/WIDESEAWCS_IBasicInfoService.dll" />
-    <Path Id="9e4bff47-52bf-4fd8-9cc7-3763bf19d9e0.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_ISystemServices\bin\Debug\net6.0\WIDESEAWCS_ISystemServices.dll" />
-    <Path Id="9e4bff47-52bf-4fd8-9cc7-3763bf19d9e0.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/bin/Debug/net6.0/WIDESEAWCS_ISystemServices.dll" />
-    <Path Id="9fbc654c-51de-422d-9e1e-6a38268de1e2.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Common\bin\Debug\net6.0\WIDESEAWCS_Common.dll" />
-    <Path Id="9fbc654c-51de-422d-9e1e-6a38268de1e2.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Common/bin/Debug/net6.0/WIDESEAWCS_Common.dll" />
-    <Path Id="a14242dd-da06-4dc3-8598-1761aa7c76d1.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_SystemServices\bin\Debug\net6.0\WIDESEAWCS_SystemServices.dll" />
-    <Path Id="a14242dd-da06-4dc3-8598-1761aa7c76d1.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/bin/Debug/net6.0/WIDESEAWCS_SystemServices.dll" />
-    <Path Id="bffdd936-2e61-4d3a-abfe-7cf77fe0b184.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_Core\bin\Debug\net6.0\WIDESEAWCS_Core.dll" />
-    <Path Id="bffdd936-2e61-4d3a-abfe-7cf77fe0b184.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_Core/bin/Debug/net6.0/WIDESEAWCS_Core.dll" />
-    <Path Id="c2d3d138-9109-481b-8beb-a27597890b2c.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_DTO\bin\Debug\net6.0\WIDESEAWCS_DTO.dll" />
-    <Path Id="c2d3d138-9109-481b-8beb-a27597890b2c.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/bin/Debug/net6.0/WIDESEAWCS_DTO.dll" />
-    <Path Id="f302e6d6-5a95-4d22-8dc2-21be2cb30275.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_ISystemRepository\bin\Debug\net6.0\WIDESEAWCS_ISystemRepository.dll" />
-    <Path Id="f302e6d6-5a95-4d22-8dc2-21be2cb30275.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/bin/Debug/net6.0/WIDESEAWCS_ISystemRepository.dll" />
-    <Path Id="ffab2c76-1c9e-4006-95c8-a0b2aa53139d.OutputPath" Value="E:\WIDESEAWCS\InfrastructureWCS\WIDESEAWCS_Server\WIDESEAWCS_BasicInfoService\bin\Debug\net6.0\WIDESEAWCS_BasicInfoService.dll" />
-    <Path Id="ffab2c76-1c9e-4006-95c8-a0b2aa53139d.OutputPathUri" Value="file:///E:/WIDESEAWCS/InfrastructureWCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/bin/Debug/net6.0/WIDESEAWCS_BasicInfoService.dll" />
-  </Paths>
-</DirectedGraph>
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj b/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj
index 0ce811f..599c5e4 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj
@@ -8,6 +8,7 @@
 
   <ItemGroup>
     <ProjectReference Include="..\WIDESEAWCS_IBasicInfoService\WIDESEAWCS_IBasicInfoService.csproj" />
+    <ProjectReference Include="..\WIDESEAWCS_ITaskInfoService\WIDESEAWCS_ITaskInfoService.csproj" />
     <ProjectReference Include="..\WIDESEAWCS_QuartzJob\WIDESEAWCS_QuartzJob.csproj" />
   </ItemGroup>
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
index f1d4ae7..b108857 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
@@ -70,6 +70,11 @@
         /// </summary>
         public override bool IsConnected => _connected;
 
+        /// <summary>
+        /// 鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭銆�
+        /// </summary>
+        public override bool IsReadAfterWrite { get; set; } = true;
+
         #endregion Public Member
 
         #region Constructor Function
@@ -143,24 +148,31 @@
                 }
                 else
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if (IsReadAfterWrite)
                     {
-                        T readValue = Read<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
-                        obj = readValue;
-                        if (readValue.Equals(value))
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
-                            return true;
+                            T readValue = Read<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
+                            obj = readValue;
+                            if (readValue.Equals(value))
+                            {
+                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
+                                return true;
+                            }
+                            else if (i < 4)
+                            {
+                                Write(address, value);
+                            }
                         }
-                        else if (i < 4)
-                        {
-                            Write(address, value);
-                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
+                        throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
-                    throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
             }
             catch (Exception ex)
@@ -404,6 +416,9 @@
             }
         }
 
+        /// <summary>
+        /// 
+        /// </summary>
         public override void Dispose()
         {
             _isPing = false;
@@ -592,33 +607,40 @@
                 stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteData, address, JsonConvert.SerializeObject(value)));
                 if (operateResult.IsSuccess)
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if(IsReadAfterWrite)
                     {
-                        T readValue = ReadCustomer<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
-                        obj = readValue;
-                        PropertyInfo[] propertyInfos = typeof(T).GetProperties();
-                        for (int j = 0; j < propertyInfos.Length; j++)
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            object? writeValueItem = propertyInfos[j].GetValue(value);
-                            object? readValueItem = propertyInfos[j].GetValue(readValue);
-                            if (writeValueItem.Equals(readValueItem))
+                            T readValue = ReadCustomer<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
+                            obj = readValue;
+                            PropertyInfo[] propertyInfos = typeof(T).GetProperties();
+                            for (int j = 0; j < propertyInfos.Length; j++)
                             {
-                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
+                                object? writeValueItem = propertyInfos[j].GetValue(value);
+                                object? readValueItem = propertyInfos[j].GetValue(readValue);
+                                if (writeValueItem.Equals(readValueItem))
+                                {
+                                    stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
+                                }
+                                else
+                                {
+                                    break;
+                                }
+                                if (j == propertyInfos.Length - 1)
+                                    return true;
                             }
-                            else
-                            {
-                                break;
-                            }
-                            if (j == propertyInfos.Length - 1)
-                                return true;
-                        }
 
-                        plc.WriteCustomer(address, value);
+                            plc.WriteCustomer(address, value);
+                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
+                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
-                    throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
                 else
                 {
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
index 0fbb5c0..04c5fa2 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
@@ -21,6 +21,9 @@
 
 namespace WIDESEAWCS_Communicator
 {
+    /// <summary>
+    /// 鍩虹閫氳鎶借薄绫伙紝灏佽杩炴帴銆佹柇寮�杩炴帴銆佽鍙栥�佸啓鍏ョ瓑鏂规硶
+    /// </summary>
     public abstract class BaseCommunicator : IDisposable
     {
         /// <summary>
@@ -40,6 +43,11 @@
         /// </summary>
         public abstract string Name { get; }
 
+        /// <summary>
+        /// 鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭銆�
+        /// </summary>
+        public abstract bool IsReadAfterWrite { get; set; }
+
         /// <summary>  
         /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
         /// </summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseSerialPortCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseSerialPortCommunicator.cs
new file mode 100644
index 0000000..56d3b1d
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseSerialPortCommunicator.cs
@@ -0,0 +1,104 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.IO.Ports;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HslCommunication.LogNet;
+
+namespace WIDESEAWCS_Communicator
+{
+    /// <summary>
+    /// 閫氳鎺ュ彛
+    /// </summary>
+    public abstract class BaseSerialPortCommunicator : IDisposable
+    {
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        protected BaseSerialPortCommunicator()
+        {
+        }
+
+        /// <summary>
+        /// 鏃ュ織璁板綍瀹炰緥瀵硅薄
+        /// </summary>
+        public abstract ILogNet LogNet { get; }
+
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
+        public abstract string Name { get; }
+
+        /// <summary>  
+        /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
+        /// </summary>
+        public abstract bool IsConnected { get; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public abstract int ReadCount { get; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public abstract bool IsReadToEnd { get; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public abstract SerialPort SerialPort { get; set; }
+
+        /// <summary>  
+        /// 杩炴帴鍒癙LC銆�
+        /// </summary>  
+        /// <returns>濡傛灉杩炴帴鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse銆�</returns>  
+        public abstract bool Connect();
+
+        /// <summary>  
+        /// 鏂紑涓庡伐涓氳澶囩殑杩炴帴銆�  
+        /// </summary>  
+        /// <returns>濡傛灉鎴愬姛鏂紑杩炴帴鍒欒繑鍥瀟rue锛屽鏋滃凡缁忔槸鏂紑鐘舵�佸垯杩斿洖false銆�</returns>  
+        public abstract bool Disconnect();
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public abstract string SerialPortName { get; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public abstract List<byte> Buffers { get; }
+
+        /// <summary>
+        /// 灏嗙紦鍐插尯涓殑鏁版嵁杞崲涓哄瓧绗︿覆
+        /// </summary>
+        /// <param name="encoding"></param>
+        /// <returns></returns>
+        public abstract string ToString(Encoding encoding);
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public abstract void Write(byte[] data);
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="data"></param>
+        public abstract void Write(string data);
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="data"></param>
+        public abstract void Write(string data, string endStr);
+
+        /// <summary>
+        /// 閲婃斁瀵硅薄璧勬簮鐨勬帴鍙c��
+        /// </summary>
+        public abstract void Dispose();
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/IBaseCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/IBaseCommunicator.cs
new file mode 100644
index 0000000..00c57a0
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/IBaseCommunicator.cs
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using HslCommunication.LogNet;
+
+namespace WIDESEAWCS_Communicator
+{
+    /// <summary>
+    /// 閫氳鎺ュ彛
+    /// </summary>
+    public class IBaseCommunicator<T>
+    {
+        public T BaseCommunicator { get; set; }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
index fef7815..ca116fa 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
@@ -53,6 +53,11 @@
         /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
         /// </summary>
         public override bool IsConnected => _connected;
+
+        /// <summary>
+        /// 鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭銆�
+        /// </summary>
+        public override bool IsReadAfterWrite { get; set; } = true;
         #endregion
 
         #region Constructor Function
@@ -126,24 +131,31 @@
                 }
                 else
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if (IsReadAfterWrite)
                     {
-                        T readValue = Read<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
-                        obj = readValue;
-                        if (readValue.Equals(value))
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
-                            return true;
+                            T readValue = Read<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
+                            obj = readValue;
+                            if (readValue.Equals(value))
+                            {
+                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
+                                return true;
+                            }
+                            else if (i < 4)
+                            {
+                                Write(address, value);
+                            }
                         }
-                        else if (i < 4)
-                        {
-                            Write(address, value);
-                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
+                        throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
-                    throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
             }
             catch (Exception ex)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
index 132b2df..d3ea84f 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
@@ -53,6 +53,11 @@
         /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
         /// </summary>
         public override bool IsConnected => _connected;
+
+        /// <summary>
+        /// 鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭銆�
+        /// </summary>
+        public override bool IsReadAfterWrite { get; set; } = true;
         #endregion
 
         #region Constructor Function
@@ -126,24 +131,31 @@
                 }
                 else
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if (IsReadAfterWrite)
                     {
-                        T readValue = Read<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
-                        obj = readValue;
-                        if (readValue.Equals(value))
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
-                            return true;
+                            T readValue = Read<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
+                            obj = readValue;
+                            if (readValue.Equals(value))
+                            {
+                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
+                                return true;
+                            }
+                            else if (i < 4)
+                            {
+                                Write(address, value);
+                            }
                         }
-                        else if (i < 4)
-                        {
-                            Write(address, value);
-                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
+                        throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
-                    throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
             }
             catch (Exception ex)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
index c72b868..ba73faa 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
@@ -71,6 +71,11 @@
         /// </summary>
         public override bool IsConnected => _connected;
 
+        /// <summary>
+        /// 鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭銆�
+        /// </summary>
+        public override bool IsReadAfterWrite { get; set; } = true;
+
         #endregion Public Member
 
         #region Constructor Function
@@ -144,24 +149,31 @@
                 }
                 else
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if (IsReadAfterWrite)
                     {
-                        T readValue = Read<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
-                        obj = readValue;
-                        if (readValue.Equals(value))
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
-                            return true;
+                            T readValue = Read<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value));
+                            obj = readValue;
+                            if (readValue.Equals(value))
+                            {
+                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
+                                return true;
+                            }
+                            else if (i < 4)
+                            {
+                                Write(address, value);
+                            }
                         }
-                        else if (i < 4)
-                        {
-                            Write(address, value);
-                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
+                        throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
-                    throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
             }
             catch (Exception ex)
@@ -586,33 +598,40 @@
                 stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteData, address, JsonConvert.SerializeObject(value)));
                 if (operateResult.IsSuccess)
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if (IsReadAfterWrite)
                     {
-                        T readValue = ReadCustomer<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
-                        obj = readValue;
-                        PropertyInfo[] propertyInfos = typeof(T).GetProperties();
-                        for (int j = 0; j < propertyInfos.Length; j++)
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            object? writeValueItem = propertyInfos[j].GetValue(value);
-                            object? readValueItem = propertyInfos[j].GetValue(readValue);
-                            if (writeValueItem.Equals(readValueItem))
+                            T readValue = ReadCustomer<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
+                            obj = readValue;
+                            PropertyInfo[] propertyInfos = typeof(T).GetProperties();
+                            for (int j = 0; j < propertyInfos.Length; j++)
                             {
-                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
+                                object? writeValueItem = propertyInfos[j].GetValue(value);
+                                object? readValueItem = propertyInfos[j].GetValue(readValue);
+                                if (writeValueItem.Equals(readValueItem))
+                                {
+                                    stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
+                                }
+                                else
+                                {
+                                    break;
+                                }
+                                if (j == propertyInfos.Length - 1)
+                                    return true;
                             }
-                            else
-                            {
-                                break;
-                            }
-                            if (j == propertyInfos.Length - 1)
-                                return true;
-                        }
 
-                        plc.WriteCustomer(address, value);
+                            plc.WriteCustomer(address, value);
+                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
+                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
-                    throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
                 else
                 {
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/SerialPortComm/SerialPortCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/SerialPortComm/SerialPortCommunicator.cs
new file mode 100644
index 0000000..99ef5e6
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/SerialPortComm/SerialPortCommunicator.cs
@@ -0,0 +1,225 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.IO.Ports;
+using System.Linq;
+using System.Net;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using HslCommunication;
+using HslCommunication.LogNet;
+
+namespace WIDESEAWCS_Communicator
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class SerialPortCommunicator : BaseSerialPortCommunicator
+    {
+        /// <summary>
+        /// 褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
+        /// </summary>
+        private bool _connected;
+
+        /// <summary>
+        /// PLC鍚嶇О
+        /// </summary>
+        private string _name;
+
+        private ILogNet _logNet;
+
+        private List<byte> _buffers = new List<byte>();
+
+        private string _serialPortName;
+
+        private SerialPort _serialPort;
+
+        private int _readCount;
+
+        private bool _isReadToEnd;
+
+
+        /// <summary>
+        /// 鏃ュ織璁板綍鍣�
+        /// </summary>
+        public override ILogNet LogNet => _logNet;
+
+        /// <summary>
+        /// 閫氳鍣ㄥ悕绉�
+        /// </summary>
+        public override string Name => _name;
+
+        /// <summary>
+        /// 褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�
+        /// </summary>
+        public override bool IsConnected => _connected;
+
+        /// <summary>
+        /// 缂撳啿鍖�
+        /// </summary>
+        public override List<byte> Buffers => _buffers;
+
+        /// <summary>
+        /// 涓插彛鍚嶇О
+        /// </summary>
+        public override string SerialPortName => _serialPortName;
+
+        /// <summary>
+        /// 璇诲彇鏁版嵁鐨勯暱搴︺��
+        /// </summary>
+        public override int ReadCount => _readCount;
+
+        /// <summary>
+        /// 璇诲彇鏁版嵁鏃舵槸鍚﹁鍙栧埌鏁版嵁鏈熬銆�
+        /// </summary>
+        public override bool IsReadToEnd => _isReadToEnd;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public override SerialPort SerialPort { get { return _serialPort; } set { _serialPort = value; } }
+
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public SerialPortCommunicator(string serialPortName, int port, string name)
+        {
+            string path = AppDomain.CurrentDomain.BaseDirectory + $"Log_PLCReadWrite\\{name}";
+            _logNet = new LogNetFileSize(path, 10 * 1024 * 1024, 100);
+            _serialPortName = serialPortName;
+            _name = name;
+            _serialPort = new SerialPort(serialPortName);
+            _serialPort.DataReceived += DataReceived;
+        }
+
+        private void DataReceived(object sender, SerialDataReceivedEventArgs e)
+        {
+            try
+            {
+                _buffers.Clear();
+                _buffers = new List<byte>();
+                byte[] data = new byte[1024];
+                while (true)
+                {
+                    if (_serialPort.BytesToRead < 1)
+                        break;
+
+                    if (_serialPort.BytesToRead > data.Length)
+                    {
+                        _isReadToEnd = false;
+                    }
+                    else
+                    {
+                        _isReadToEnd = true;
+                    }
+
+                    _readCount = _serialPort.Read(data, 0, Math.Min(_serialPort.BytesToRead, data.Length));
+
+                    _buffers.AddRange(data.SelectBegin(_readCount));
+                }
+            }
+            catch (Exception ex)
+            {
+
+            }
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public override bool Connect()
+        {
+            try
+            {
+                _serialPort.Open();
+                return true;
+            }
+            catch (Exception ex)
+            {
+                LogNet.WriteException(Name, $"涓插彛鎵撳紑澶辫触锛屼覆鍙e彿:{_serialPortName}", ex);
+                //杩炴帴寮傚父鏃舵姏鍑鸿嚜瀹氫箟寮傚父绫�
+                throw new CommunicationException(ex.Message, CommunicationErrorType.ConnectionFailed, innerException: ex);
+            }
+        }
+
+        /// <summary>
+        /// 鏂紑涓庡伐涓氳澶囩殑杩炴帴銆�
+        /// </summary>
+        /// <returns></returns>
+        /// <exception cref="NotImplementedException"></exception>
+        public override bool Disconnect()
+        {
+            try
+            {
+                _serialPort.Close();
+                return true;
+            }
+            catch (Exception ex)
+            {
+                LogNet.WriteException(Name, $"涓插彛鍏抽棴澶辫触锛屼覆鍙e彿:{_serialPortName}", ex);
+                //杩炴帴寮傚父鏃舵姏鍑鸿嚜瀹氫箟寮傚父绫�
+                throw new CommunicationException(ex.Message, CommunicationErrorType.ConnectionFailed, innerException: ex);
+            }
+        }
+
+        /// <summary>
+        /// 閲婃斁璧勬簮銆�
+        /// </summary>
+        /// <exception cref="NotImplementedException"></exception>
+        public override void Dispose()
+        {
+            Disconnect();
+            GC.SuppressFinalize(this);
+        }
+
+        /// <summary>
+        /// 灏嗙紦鍐插尯涓殑鏁版嵁杞崲涓哄瓧绗︿覆
+        /// </summary>
+        /// <param name="encoding"></param>
+        /// <returns></returns>
+        public override string ToString(Encoding encoding)
+        {
+            try
+            {
+                return encoding.GetString(Buffers.ToArray());
+            }
+            catch (Exception ex)
+            {
+                return "";
+            }
+        }
+
+        /// <summary>
+        /// 鍙戦�佹暟鎹�
+        /// </summary>
+        public override void Write(byte[] data)
+        {
+            _serialPort.Write(data, 0, data.Length);
+        }
+
+        /// <summary>
+        /// 鍙戦�佹暟鎹�
+        /// </summary>
+        /// <param name="data"></param>
+        public override void Write(string data)
+        {
+            byte[] bytes = Encoding.UTF8.GetBytes(data);
+
+            _serialPort.Write(bytes, 0, bytes.Length);
+        }
+
+        /// <summary>
+        /// 鍙戦�佹暟鎹�
+        /// </summary>
+        /// <param name="data"></param>
+        /// <param name="endStr"></param>
+        public override void Write(string data, string endStr)
+        {
+            byte[] bytes = Encoding.UTF8.GetBytes(data + endStr);
+
+            _serialPort.Write(bytes, 0, bytes.Length);
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
index c695b74..e23eb5e 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
@@ -88,6 +88,11 @@
         /// PLC璇诲啓鏃ュ織璁板綍
         /// </summary>
         public override ILogNet LogNet => _logNet;
+
+        /// <summary>
+        /// 鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭銆�
+        /// </summary>
+        public override bool IsReadAfterWrite { get; set; } = true;
         #endregion Public Member
 
         #region Constructor Function
@@ -165,24 +170,31 @@
                 }
                 else
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if (IsReadAfterWrite)
                     {
-                        T readValue = Read<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, value));
-                        obj = readValue;
-                        if (readValue.Equals(value))
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
-                            return true;
+                            T readValue = Read<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, value));
+                            obj = readValue;
+                            if (readValue.Equals(value))
+                            {
+                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue));
+                                return true;
+                            }
+                            else if (i < 4)
+                            {
+                                Write(address, value);
+                            }
                         }
-                        else if (i < 4)
-                        {
-                            Write(address, value);
-                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
+                        throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, value, obj));
-                    throw new CommunicationException(stringBuilder.ToString(), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
             }
             catch (Exception ex)
@@ -693,33 +705,40 @@
                 stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteData, address, JsonConvert.SerializeObject(value)));
                 if (operateResult.IsSuccess)
                 {
-                    object? obj = null;
-                    for (int i = 0; i < 5; i++)
+                    if (IsReadAfterWrite)
                     {
-                        T readValue = ReadCustomer<T>(address);
-                        stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
-                        obj = readValue;
-                        PropertyInfo[] propertyInfos = typeof(T).GetProperties();
-                        for (int j = 0; j < propertyInfos.Length; j++)
+                        object? obj = null;
+                        for (int i = 0; i < 5; i++)
                         {
-                            object? writeValueItem = propertyInfos[j].GetValue(value);
-                            object? readValueItem = propertyInfos[j].GetValue(readValue);
-                            if (writeValueItem?.Equals(readValueItem) ?? false)
+                            T readValue = ReadCustomer<T>(address);
+                            stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue)));
+                            obj = readValue;
+                            PropertyInfo[] propertyInfos = typeof(T).GetProperties();
+                            for (int j = 0; j < propertyInfos.Length; j++)
                             {
-                                stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
+                                object? writeValueItem = propertyInfos[j].GetValue(value);
+                                object? readValueItem = propertyInfos[j].GetValue(readValue);
+                                if (writeValueItem.Equals(readValueItem))
+                                {
+                                    stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(readValue)));
+                                }
+                                else
+                                {
+                                    break;
+                                }
+                                if (j == propertyInfos.Length - 1)
+                                    return true;
                             }
-                            else
-                            {
-                                break;
-                            }
-                            if (j == propertyInfos.Length - 1)
-                                return true;
-                        }
 
-                        plc.WriteCustomer(address, value);
+                            plc.WriteCustomer(address, value);
+                        }
+                        stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
+                        throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
                     }
-                    stringBuilder.AppendLine(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)));
-                    throw new CommunicationException(string.Format(CommunicationExceptionMessage.WriteAndReadCheckFaild, address, JsonConvert.SerializeObject(value), JsonConvert.SerializeObject(obj)), CommunicationErrorType.WriteFailed);
+                    else
+                    {
+                        return true;
+                    }
                 }
                 else
                 {
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
index 0783801..8163cb9 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
@@ -4,11 +4,15 @@
 		<TargetFramework>net6.0</TargetFramework>
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
-		<Version>2.2.3</Version>
+		<Version>2.2.5</Version>
 		<Description>
 			鏂板鍚岀被鍨嬫暟鎹鍙�/鍐欏叆鎸囧畾闀垮害鏂规硶
-			
+
 			2025-01-02锛氭坊鍔犳敞閲�
+
+			2025-02-21锛氭坊鍔犲睘鎬sReadAfterWrite----鏄惁鍦ㄥ啓鍏ユ暟鎹悗璇诲彇鏁版嵁纭
+
+			2025-03-11锛氭坊鍔犱覆鍙i�氳 瀹炵幇绫伙細SerialPortCommunicator锛屽熀绫伙細BaseSerialPortCommunicator
 		</Description>
 		<GenerateDocumentationFile>True</GenerateDocumentationFile>
 	</PropertyGroup>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
index f6babdd..47bf712 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/AOP/SqlSugarAop.cs
@@ -41,7 +41,7 @@
                                 ConfigId = MainDb.CurrentDbConnId,
                                 ConnectionString = DBContext.GetMainConnectionDb().Connection,
                                 IsAutoCloseConnection = true,
-                                DbType = MainDb.DbType,
+                                DbType = DBContext.DbType,
                             });
                             int count = sugarClient.Ado.GetScalar($"SELECT COUNT(*) FROM sys.sequences WHERE name = '{sequenceAttirbute.SequenceName}'").ObjToInt();
                             if (count == 0)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Authorization/AuthorizationSetup.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Authorization/AuthorizationSetup.cs
index f4f2ca9..a4b64ea 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Authorization/AuthorizationSetup.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Authorization/AuthorizationSetup.cs
@@ -5,6 +5,7 @@
 using Microsoft.IdentityModel.Tokens;
 using System;
 using System.Collections.Generic;
+using System.IdentityModel.Tokens.Jwt;
 using System.Linq;
 using System.Security.Claims;
 using System.Text;
@@ -58,7 +59,19 @@
                          context.Response.StatusCode = 401;
                          context.Response.WriteAsync(new { message = "鎺堟潈鏈�氳繃", status = false, code = 401 }.Serialize());
                          return Task.CompletedTask;
-                     }
+                     },
+                     OnMessageReceived = context =>
+                     {
+                         if (context.HttpContext.IsSuccessSwagger() == true)
+                         {
+                              string token = context.HttpContext.GetSuccessSwaggerJwt();
+                             if (token.IsNotEmptyOrNull())
+                             {
+                                 context.Token = token;
+                             }
+                         }
+                         return Task.CompletedTask;
+                     },
                  };
              });
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
index 4493b69..7872822 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
@@ -106,52 +106,7 @@
                     LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
                     Expression<Func<TEntity, bool>> expression = GetWhereExpression(property.Name, results[j].Item3, null, expressionType);
                     sugarQueryable = sugarQueryable.Where(expression);
-
-                    //if (j == 0)
-                    //{
-                    //    where += "(";
-                    //}
-                    //LinqExpressionType expressionType = searchParametersList[i].DisplayType.GetLinqCondition();
-                    //if (expressionType == LinqExpressionType.Equal)
-                    //{
-                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.Equal} '{results[j].Item3}'";
-                    //}
-                    //else if (expressionType == LinqExpressionType.ThanOrEqual)
-                    //{
-                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.ThanOrEqual} '{searchParametersList[i].Value}'";
-                    //}
-                    //else if (expressionType == LinqExpressionType.LessThanOrEqual)
-                    //{
-                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.LessOrEqual} '{searchParametersList[i].Value}'";
-                    //}
-                    //else if (expressionType == LinqExpressionType.GreaterThan)
-                    //{
-                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.GT} '{searchParametersList[i].Value}'";
-                    //}
-                    //else if (expressionType == LinqExpressionType.LessThan)
-                    //{
-                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.LT} '{searchParametersList[i].Value}'";
-                    //}
-                    //else if (expressionType == LinqExpressionType.Contains)
-                    //{
-                    //    where += $"{searchParametersList[i].Name} {HtmlElementType.like} '%{searchParametersList[i].Value}%'";
-                    //}
-                    //else
-                    //{
-                    //    where += $"{searchParametersList[i].Name} {searchParametersList[i].DisplayType} '{results[j].Item3}'";
-                    //}
-
-                    //if (j == results.Count() - 1)
-                    //{
-                    //    where += ")";
-                    //}
-                    //else
-                    //{
-                    //    where += " or ";
-                    //}
                 }
-                //if (i < searchParametersList.Count - 1)
-                //    where += " and ";
             }
             return where;
         }
@@ -468,22 +423,6 @@
                 }
 
                 TEntity entity = saveModel.MainData.DicToModel<TEntity>();
-
-                //List<string> listCol = new List<string>();
-                //foreach (var item in saveModel.MainData)
-                //{
-                //    PropertyInfo propertyInfo = typeof(TEntity).GetProperty(item.Key);
-                //    if (propertyInfo == null)
-                //    {
-                //        propertyInfo = typeof(TEntity).GetProperty(item.Key.FirstLetterToLower());
-                //        if (propertyInfo == null)
-                //        {
-                //            propertyInfo = typeof(TEntity).GetProperty(item.Key.FirstLetterToUpper());
-                //        }
-                //    }
-
-                //    listCol.Add(propertyInfo?.Name);
-                //}
 
                 if (saveModel.DetailData == null || saveModel.DetailData.Count == 0)
                 {
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/CodeGenerator/CodeGenertors.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/CodeGenerator/CodeGenertors.cs
new file mode 100644
index 0000000..dd0c99a
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/CodeGenerator/CodeGenertors.cs
@@ -0,0 +1,411 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB;
+using WIDESEAWCS_Core.Helper;
+
+namespace WIDESEAWCS_Core.CodeGenerator
+{
+    public class CodeGenertors
+    {
+        public static WebResponseContent CreateIRepository(string tableName, string module)
+        {
+            try
+            {
+                string startName = "WIDESEA";
+
+                string thisNameSpace = typeof(CodeGenertors).Namespace ?? "WIDESEA_";
+                int nameSpaceIndex = thisNameSpace.IndexOf("_");
+
+                if (nameSpaceIndex > -1)
+                {
+                    startName = thisNameSpace.Substring(0, nameSpaceIndex);
+                }
+
+                List<Assembly> assemblies = App.Assemblies.ToList();
+                Assembly? assembly = assemblies.FirstOrDefault(x => x.GetName()?.Name?.Contains($"I{module}Repository") ?? false);
+                if (assembly == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮▼搴忛泦{startName}_I{module}Repository");
+                }
+
+                string? nameSpaceFullName = assembly.GetName()?.Name;
+                if (string.IsNullOrEmpty(nameSpaceFullName))
+                {
+                    return WebResponseContent.Instance.Error($"{nameSpaceFullName} not found.");
+                }
+
+                int index = tableName.IndexOf("_");
+
+                string tableShortName = tableName;
+
+                if (index > -1)
+                {
+                    tableShortName = tableName.Substring(index + 1);
+                }
+
+                string rootPath = App.WebHostEnvironment.WebRootPath;
+                string templatePath = Path.Combine(rootPath, $"CodeTemplate\\BaseIRepository.txt");
+
+                if (!File.Exists(templatePath))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版ā鏉挎枃浠�");
+                }
+
+                string template = FileHelper.ReadFile(templatePath);
+
+                string classStr = template.Replace("[TableName]", tableName).Replace("[TableShortName]", tableShortName).Replace("[NameSpace]", nameSpaceFullName).Replace("[StartName]", startName).Replace("[Module]", module);
+
+                int rootPathIndex = App.HostEnvironment.ContentRootPath.LastIndexOf("\\");
+
+                string rootPaht = App.HostEnvironment.ContentRootPath.Substring(0, rootPathIndex - 1);
+
+                int rootPathIndex2 = rootPaht.LastIndexOf("\\");
+
+                string projectPath = Path.Combine(rootPaht.Substring(0, rootPathIndex2), nameSpaceFullName);
+
+                string filePath = Path.Combine(projectPath, $"I{tableShortName}Repository.cs");
+
+                FileHelper.WriteFileAndDelOldFile(filePath, classStr);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public static WebResponseContent CreateRepository(string tableName, string module)
+        {
+            try
+            {
+                string startName = "WIDESEA";
+
+                string thisNameSpace = typeof(CodeGenertors).Namespace ?? "WIDESEA_";
+                int nameSpaceIndex = thisNameSpace.IndexOf("_");
+
+                if (nameSpaceIndex > -1)
+                {
+                    startName = thisNameSpace.Substring(0, nameSpaceIndex);
+                }
+
+                List<Assembly> assemblies = App.Assemblies.ToList();
+                Assembly? assembly = assemblies.FirstOrDefault(x => (x.GetName()?.Name?.Contains($"{module}Repository") ?? false) && (!x.GetName()?.Name?.Contains($"I{module}Repository") ?? false));
+                if (assembly == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮▼搴忛泦{startName}_{module}Repository");
+                }
+
+                string? nameSpaceFullName = assembly.GetName()?.Name;
+                if (string.IsNullOrEmpty(nameSpaceFullName))
+                {
+                    return WebResponseContent.Instance.Error($"{nameSpaceFullName} not found.");
+                }
+
+                int index = tableName.IndexOf("_");
+
+                string tableShortName = tableName;
+
+                if (index > -1)
+                {
+                    tableShortName = tableName.Substring(index + 1);
+                }
+
+                string rootPath = App.WebHostEnvironment.WebRootPath;
+                string templatePath = Path.Combine(rootPath, $"CodeTemplate\\BaseRepository.txt");
+
+                if (!File.Exists(templatePath))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版ā鏉挎枃浠�");
+                }
+
+                string template = FileHelper.ReadFile(templatePath);
+
+                string classStr = template.Replace("[TableName]", tableName).Replace("[TableShortName]", tableShortName).Replace("[NameSpace]", nameSpaceFullName).Replace("[StartName]", startName).Replace("[Module]", module);
+
+                int rootPathIndex = App.HostEnvironment.ContentRootPath.LastIndexOf("\\");
+
+                string rootPaht = App.HostEnvironment.ContentRootPath.Substring(0, rootPathIndex - 1);
+
+                int rootPathIndex2 = rootPaht.LastIndexOf("\\");
+
+                string projectPath = Path.Combine(rootPaht.Substring(0, rootPathIndex2), nameSpaceFullName);
+
+                string filePath = Path.Combine(projectPath, $"{tableShortName}Repository.cs");
+
+                FileHelper.WriteFileAndDelOldFile(filePath, classStr);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public static WebResponseContent CreateIService(string tableName, string module)
+        {
+            try
+            {
+                string startName = "WIDESEA";
+
+                string thisNameSpace = typeof(CodeGenertors).Namespace ?? "WIDESEA_";
+                int nameSpaceIndex = thisNameSpace.IndexOf("_");
+
+                if (nameSpaceIndex > -1)
+                {
+                    startName = thisNameSpace.Substring(0, nameSpaceIndex);
+                }
+
+                List<Assembly> assemblies = App.Assemblies.ToList();
+                Assembly? assembly = assemblies.FirstOrDefault(x => x.GetName()?.Name?.Contains($"I{module}Service") ?? false);
+                if (assembly == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮▼搴忛泦{startName}_I{module}Service");
+                }
+
+                string? nameSpaceFullName = assembly.GetName()?.Name;
+                if (string.IsNullOrEmpty(nameSpaceFullName))
+                {
+                    return WebResponseContent.Instance.Error($"{nameSpaceFullName} not found.");
+                }
+
+                int index = tableName.IndexOf("_");
+
+                string tableShortName = tableName;
+
+                if (index > -1)
+                {
+                    tableShortName = tableName.Substring(index + 1);
+                }
+
+                string rootPath = App.WebHostEnvironment.WebRootPath;
+                string templatePath = Path.Combine(rootPath, $"CodeTemplate\\BaseIService.txt");
+
+                if (!File.Exists(templatePath))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版ā鏉挎枃浠�");
+                }
+
+                string template = FileHelper.ReadFile(templatePath);
+
+                string classStr = template.Replace("[TableName]", tableName).Replace("[TableShortName]", tableShortName).Replace("[NameSpace]", nameSpaceFullName).Replace("[StartName]", startName).Replace("[Module]", module);
+
+                int rootPathIndex = App.HostEnvironment.ContentRootPath.LastIndexOf("\\");
+
+                string rootPaht = App.HostEnvironment.ContentRootPath.Substring(0, rootPathIndex - 1);
+
+                int rootPathIndex2 = rootPaht.LastIndexOf("\\");
+
+                string projectPath = Path.Combine(rootPaht.Substring(0, rootPathIndex2), nameSpaceFullName);
+
+                string filePath = Path.Combine(projectPath, $"I{tableShortName}Service.cs");
+
+                FileHelper.WriteFileAndDelOldFile(filePath, classStr);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public static WebResponseContent CreateService(string tableName, string module)
+        {
+            try
+            {
+                string startName = "WIDESEA";
+
+                string thisNameSpace = typeof(CodeGenertors).Namespace ?? "WIDESEA_";
+                int nameSpaceIndex = thisNameSpace.IndexOf("_");
+
+                if (nameSpaceIndex > -1)
+                {
+                    startName = thisNameSpace.Substring(0, nameSpaceIndex);
+                }
+
+                List<Assembly> assemblies = App.Assemblies.ToList();
+                Assembly? assembly = assemblies.FirstOrDefault(x => (x.GetName()?.Name?.Contains($"{module}Service") ?? false) && (!x.GetName()?.Name?.Contains($"I{module}Service") ?? false));
+                if (assembly == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮▼搴忛泦{startName}_{module}Service");
+                }
+
+                string? nameSpaceFullName = assembly.GetName()?.Name;
+                if (string.IsNullOrEmpty(nameSpaceFullName))
+                {
+                    return WebResponseContent.Instance.Error($"{nameSpaceFullName} not found.");
+                }
+
+                int index = tableName.IndexOf("_");
+
+                string tableShortName = tableName;
+
+                if (index > -1)
+                {
+                    tableShortName = tableName.Substring(index + 1);
+                }
+
+                string rootPath = App.WebHostEnvironment.WebRootPath;
+                string templatePath = Path.Combine(rootPath, $"CodeTemplate\\BaseService.txt");
+
+                if (!File.Exists(templatePath))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版ā鏉挎枃浠�");
+                }
+
+                string template = FileHelper.ReadFile(templatePath);
+
+                string classStr = template.Replace("[TableName]", tableName).Replace("[TableShortName]", tableShortName).Replace("[NameSpace]", nameSpaceFullName).Replace("[StartName]", startName).Replace("[Module]", module);
+
+                int rootPathIndex = App.HostEnvironment.ContentRootPath.LastIndexOf("\\");
+
+                string rootPaht = App.HostEnvironment.ContentRootPath.Substring(0, rootPathIndex - 1);
+
+                int rootPathIndex2 = rootPaht.LastIndexOf("\\");
+
+                string projectPath = Path.Combine(rootPaht.Substring(0, rootPathIndex2), nameSpaceFullName);
+
+                string filePath = Path.Combine(projectPath, $"{tableShortName}Service.cs");
+
+                FileHelper.WriteFileAndDelOldFile(filePath, classStr);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public static WebResponseContent CreateController(string tableName, string module)
+        {
+            try
+            {
+                string startName = "WIDESEA";
+
+                string thisNameSpace = typeof(CodeGenertors).Namespace ?? "WIDESEA_";
+                int nameSpaceIndex = thisNameSpace.IndexOf("_");
+
+                if (nameSpaceIndex > -1)
+                {
+                    startName = thisNameSpace.Substring(0, nameSpaceIndex);
+                }
+
+                List<Assembly> assemblies = App.Assemblies.ToList();
+                Assembly? assembly = assemblies.FirstOrDefault(x => (x.GetName()?.Name?.Contains($"{module}Service") ?? false) && (!x.GetName()?.Name?.Contains($"I{module}Service") ?? false));
+                if (assembly == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮▼搴忛泦{startName}_{module}Service");
+                }
+
+                string? nameSpaceFullName = assembly.GetName()?.Name;
+                if (string.IsNullOrEmpty(nameSpaceFullName))
+                {
+                    return WebResponseContent.Instance.Error($"{nameSpaceFullName} not found.");
+                }
+
+                int index = tableName.IndexOf("_");
+
+                string tableShortName = tableName;
+
+                if (index > -1)
+                {
+                    tableShortName = tableName.Substring(index + 1);
+                }
+
+                string rootPath = App.WebHostEnvironment.WebRootPath;
+                string templatePath = Path.Combine(rootPath, $"CodeTemplate\\BaseController.txt");
+
+                if (!File.Exists(templatePath))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒版ā鏉挎枃浠�");
+                }
+
+                string template = FileHelper.ReadFile(templatePath);
+
+                string classStr = template.Replace("[TableName]", tableName).Replace("[TableShortName]", tableShortName).Replace("[NameSpace]", nameSpaceFullName).Replace("[StartName]", startName).Replace("[Module]", module);
+
+                string projectPath = Path.Combine(App.HostEnvironment.ContentRootPath , $"Controllers\\{module}");
+
+                string filePath = Path.Combine(projectPath, $"{tableShortName}Controller.cs");
+
+                FileHelper.WriteFileAndDelOldFile(filePath, classStr);
+
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        //public WebResponseContent CreateVuePage(string tableName, string module)
+        //{
+        //    try
+        //    {
+        //        string startName = "WIDESEA";
+
+        //        string thisNameSpace = typeof(CodeGenertors).Namespace ?? "WIDESEA_";
+        //        int nameSpaceIndex = thisNameSpace.IndexOf("_");
+
+        //        if (nameSpaceIndex > -1)
+        //        {
+        //            startName = thisNameSpace.Substring(0, nameSpaceIndex);
+        //        }
+
+        //        List<Assembly> assemblies = App.Assemblies.ToList();
+        //        Assembly? assembly = assemblies.FirstOrDefault(x => (x.GetName()?.Name?.Contains($"{module}Service") ?? false) && (!x.GetName()?.Name?.Contains($"I{module}Service") ?? false));
+        //        if (assembly == null)
+        //        {
+        //            return WebResponseContent.Instance.Error($"鏈壘鍒扮▼搴忛泦{startName}_{module}Service");
+        //        }
+
+        //        string? nameSpaceFullName = assembly.GetName()?.Name;
+        //        if (string.IsNullOrEmpty(nameSpaceFullName))
+        //        {
+        //            return WebResponseContent.Instance.Error($"{nameSpaceFullName} not found.");
+        //        }
+
+        //        int index = tableName.IndexOf("_");
+
+        //        string tableShortName = tableName;
+
+        //        if (index > -1)
+        //        {
+        //            tableShortName = tableName.Substring(index + 1);
+        //        }
+
+        //        string rootPath = App.WebHostEnvironment.WebRootPath;
+        //        string templatePath = Path.Combine(rootPath, $"CodeTemplate\\BaseController.txt");
+
+        //        if (!File.Exists(templatePath))
+        //        {
+        //            return WebResponseContent.Instance.Error($"鏈壘鍒版ā鏉挎枃浠�");
+        //        }
+
+        //        string template = FileHelper.ReadFile(templatePath);
+
+        //        string classStr = template.Replace("[TableName]", tableName).Replace("[TableShortName]", tableShortName).Replace("[NameSpace]", nameSpaceFullName).Replace("[StartName]", startName).Replace("[Module]", module);
+
+        //        string projectPath = Path.Combine(App.HostEnvironment.ContentRootPath, $"Controllers\\{module}");
+
+        //        string filePath = Path.Combine(projectPath, $"{tableShortName}Controller.cs");
+
+        //        FileHelper.WriteFileAndDelOldFile(filePath, classStr);
+
+        //        return WebResponseContent.Instance.OK();
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        return WebResponseContent.Instance.Error(ex.Message);
+        //    }
+        //}
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/BaseDBConfig.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/BaseDBConfig.cs
index e61795e..59c97a7 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/BaseDBConfig.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/BaseDBConfig.cs
@@ -7,6 +7,7 @@
 using System.Threading.Tasks;
 using WIDESEAWCS_Core.Const;
 using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.Seed;
 using WIDESEAWCS_Core.Tenants;
 
 namespace WIDESEAWCS_Core.DB
@@ -44,7 +45,7 @@
                 ConfigId = MainDb.CurrentDbConnId,
                 ConnectionString = AppSettings.Get(MainDb.ConnectionString).DecryptDES(AppSecret.DB),
                 IsAutoCloseConnection = true,
-                DbType = MainDb.DbType,
+                DbType = DBContext.DbType,
                 AopEvents = new AopEvents
                 {
                     OnError = x =>
@@ -60,7 +61,7 @@
             {
                 Connection = AppSettings.Get(MainDb.ConnectionString).DecryptDES(AppSecret.DB),
                 ConnId = MainDb.CurrentDbConnId,
-                DbType = DataBaseType.SqlServer
+                DbType = DBContext.DbType
             };
             listdatabaseSlaveDB.Add(mainDb);
             for (int i = 0; i < list.Count; i++)
@@ -70,7 +71,7 @@
                 {
                     Connection = data.ConnectionString,
                     ConnId = data.TenantId + "",
-                    DbType = (DataBaseType)data.DbType,
+                    DbType = data.DbType,
                 };
                 mutiDBOperate.Connection = mutiDBOperate.Connection.DecryptDES(AppSecret.DB);
                 listdatabaseSlaveDB.Add(mutiDBOperate);
@@ -116,6 +117,6 @@
         /// <summary>
         /// 鏁版嵁搴撶被鍨�
         /// </summary>
-        public DataBaseType DbType { get; set; }
+        public DbType DbType { get; set; }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/MainDb.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/MainDb.cs
index 5de9c3c..0045723 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/MainDb.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/MainDb.cs
@@ -19,7 +19,6 @@
         public const string EntityNameSpace = "WIDESEAWCS_Model.Models";
         public const string TenantDbType = "DbType";
         public const string AssemblyName = "WIDESEAWCS_Model.dll";
-        public static DbType DbType = DbType.SqlServer;
         public const string UserTableName = "Sys_User";
         public const string RoleId = "Role_Id";
         public const string UserName = "UserName";
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs
index 9d1018b..0890671 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Extensions/SqlsugarSetup.cs
@@ -43,7 +43,7 @@
                         ConfigId = MainDb.CurrentDbConnId,
                         ConnectionString = DBContext.GetMainConnectionDb().Connection,
                         IsAutoCloseConnection = true,
-                        DbType = MainDb.DbType,
+                        DbType = DBContext.DbType,
                         AopEvents = new AopEvents
                         {
                             OnLogExecuting = (sql, p) =>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/ApiAuthorizeFilter.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/ApiAuthorizeFilter.cs
index 05d237d..d5db8bf 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/ApiAuthorizeFilter.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/ApiAuthorizeFilter.cs
@@ -78,7 +78,7 @@
                     int ExpMinutes = AppSettings.Get("ExpMinutes").ObjToInt();
                     if ((expDate.GetValueOrDefault() - DateTime.Now).TotalMinutes > ExpMinutes)
                     {
-                        context.Unauthorized("鐧婚檰宸茶繃鏈�");
+                        context.Unauthorized("鐧诲綍宸茶繃鏈�");
                         return;
                     }
                     else
@@ -88,7 +88,7 @@
                 }
                 else
                 {
-                    context.Unauthorized("鐧婚檰宸茶繃鏈�");
+                    context.Unauthorized("鐧诲綍宸茶繃鏈�");
                     return;
                 }
             }
@@ -96,7 +96,7 @@
             {
                 if (App.User.Token != ((ClaimsIdentity?)context.HttpContext.User.Identity)?.BootstrapContext?.ToString())
                 {
-                    context.Unauthorized("鐧婚檰宸茶繃鏈�");
+                    context.Unauthorized("鐧诲綍宸茶繃鏈�");
                     return;
                 }
             }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/GlobalExceptionsFilter.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/GlobalExceptionsFilter.cs
index 9725dcf..650722e 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/GlobalExceptionsFilter.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Filter/GlobalExceptionsFilter.cs
@@ -45,7 +45,7 @@
 
             if (_env.EnvironmentName.ObjToString().Equals("Development"))
             {
-                json.DevMessage = context.Exception.StackTrace;//鍫嗘爤淇℃伅
+                json.DevMessage = context.Exception.StackTrace ?? "";//鍫嗘爤淇℃伅
             }
             var res = new ContentResult();
             res.Content = json.Serialize();
@@ -54,8 +54,6 @@
             MiniProfiler.Current.CustomTiming("Errors锛�", json.Message);
 
             LogLock.OutLogAOP("鍏ㄥ眬寮傚父閿欒鏃ュ織", new string[] { json.Message + WriteLog(json.Message, context.Exception) });
-            //閲囩敤log4net 杩涜閿欒鏃ュ織璁板綍
-            //_loggerHelper.LogError(json.Message + WriteLog(json.Message, context.Exception));
         }
 
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
index 38b349d..0592db1 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
@@ -49,7 +49,7 @@
                     {
                         ConnectionString = DBContext.GetMainConnectionDb().Connection,
                         IsAutoCloseConnection = true,
-                        DbType = MainDb.DbType,
+                        DbType = DBContext.DbType,
                     });
 
                     //灏嗛槦鍒楄〃涓殑鏁版嵁鎵归噺鎻掑叆鏁版嵁搴�
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBContext.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBContext.cs
index cac3a49..6692a67 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBContext.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBContext.cs
@@ -23,14 +23,23 @@
         /// </summary>
         public static MutiDBOperate GetMainConnectionDb()
         {
-            MutiDBOperate mainDb = new MutiDBOperate()
+            string dbType = AppSettings.GetValue("DBType");
+            if (Enum.TryParse(typeof(DbType), dbType, out object? result) && result != null)
             {
-                Connection = AppSettings.Get(MainDb.ConnectionString).DecryptDES(AppSecret.DB),
-                ConnId = MainDb.CurrentDbConnId,
-                DbType = DataBaseType.SqlServer
-            };
+                DbType dataBaseType = (DbType)result;
+                MutiDBOperate mainDb = new MutiDBOperate()
+                {
+                    Connection = AppSettings.Get(MainDb.ConnectionString).DecryptDES(AppSecret.DB),
+                    ConnId = MainDb.CurrentDbConnId,
+                    DbType = dataBaseType
+                };
 
-            return mainDb;
+                return mainDb;
+            }
+            else
+            {
+                throw new Exception("鏁版嵁搴撶被鍨嬮厤缃敊璇�");
+            }
         }
         /// <summary>
         /// 杩炴帴瀛楃涓� 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBSeed.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBSeed.cs
index 94924fa..81b60b4 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBSeed.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Seed/DBSeed.cs
@@ -1,6 +1,7 @@
 锘縰sing Castle.Components.DictionaryAdapter.Xml;
 using Microsoft.AspNetCore.Mvc.Rendering;
 using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
 using SkiaSharp;
 using SqlSugar;
 using System;
@@ -66,10 +67,10 @@
                 // 娉ㄦ剰涓嶈鎶婂叾浠栧懡鍚嶇┖闂翠笅鐨勪篃娣诲姞杩涙潵銆�
                 Console.WriteLine("Create Tables...");
 
-                var path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory;
-                var referencedAssemblies = System.IO.Directory.GetFiles(path, MainDb.AssemblyName).Select(Assembly.LoadFrom).ToArray();
+                string path = AppDomain.CurrentDomain.RelativeSearchPath ?? AppDomain.CurrentDomain.BaseDirectory;
+                Assembly[] referencedAssemblies = System.IO.Directory.GetFiles(path, MainDb.AssemblyName).Select(Assembly.LoadFrom).ToArray();
 
-                var modelTypes = referencedAssemblies
+                List<Type> modelTypes = referencedAssemblies
                     .SelectMany(a => a.DefinedTypes)
                     .Select(type => type.AsType())
                     .Where(x => x.IsClass && x.Namespace is MainDb.EntityNameSpace && x.GetCustomAttribute<SugarTable>() != null)
@@ -140,13 +141,21 @@
                                         else
                                             dic[i].Add("CreateDate", DateTime.Now);
                                     }
-                                    string str = $"SET IDENTITY_INSERT {t.Name} ON;";
+                                    string str = "";
+                                    if (DBContext.DbType == SqlSugar.DbType.SqlServer)
+                                    {
+                                        str += $"SET IDENTITY_INSERT {t.Name} ON;";
 
-                                    str += dbContext.Db.Insertable(dic).AS(t.Name).ToSqlString();
+                                        str += dbContext.Db.Insertable(dic).AS(t.Name).ToSqlString();
 
-                                    str += ($"SET IDENTITY_INSERT {t.Name} OFF;");
+                                        str += ($"SET IDENTITY_INSERT {t.Name} OFF;");
 
-                                    dbContext.Db.Ado.ExecuteCommand(str);
+                                        dbContext.Db.Ado.ExecuteCommand(str);
+                                    }
+                                    else
+                                    {
+                                        dbContext.Db.Insertable(dic).AS(t.Name).ExecuteCommand();
+                                    }
 
                                     ConsoleHelper.WriteSuccessLine($"Table [{t.Name}] SeedData Added Successfully");
                                 }
@@ -168,12 +177,12 @@
                                 SequenceAttribute? sequenceAttirbute = propertyInfo.GetCustomAttribute<SequenceAttribute>();
                                 if (sequenceAttirbute != null)
                                 {
-                                        int count = dbContext.Db.Ado.GetScalar($"SELECT COUNT(*) FROM sys.sequences WHERE name = '{sequenceAttirbute.SequenceName}'").ObjToInt();
-                                        if (count == 0)
-                                        {
-                                            string sql = $"CREATE SEQUENCE {sequenceAttirbute.SequenceName} AS [int] START WITH {sequenceAttirbute.StartWith} INCREMENT BY {sequenceAttirbute.Increment} MINVALUE {sequenceAttirbute.SeqMinValue} MAXVALUE {sequenceAttirbute.SeqMaxValue} {(sequenceAttirbute.IsCycle ? "CYCLE" : "")} CACHE";
+                                    int count = dbContext.Db.Ado.GetScalar($"SELECT COUNT(*) FROM sys.sequences WHERE name = '{sequenceAttirbute.SequenceName}'").ObjToInt();
+                                    if (count == 0)
+                                    {
+                                        string sql = $"CREATE SEQUENCE {sequenceAttirbute.SequenceName} AS [int] START WITH {sequenceAttirbute.StartWith} INCREMENT BY {sequenceAttirbute.Increment} MINVALUE {sequenceAttirbute.SeqMinValue} MAXVALUE {sequenceAttirbute.SeqMaxValue} {(sequenceAttirbute.IsCycle ? "CYCLE" : "")} CACHE";
                                         dbContext.Db.Ado.ExecuteCommand(sql);
-                                        }
+                                    }
                                 }
                                 SugarColumn? sugarColumn = propertyInfo.GetCustomAttribute<SugarColumn>();
                                 if (sugarColumn != null)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj b/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
index bfe1361..8f9717f 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
@@ -4,7 +4,7 @@
 		<TargetFramework>net6.0</TargetFramework>
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
-		<Version>1.0.13</Version>
+		<Version>1.0.15</Version>
 		<Description>
 			娣诲姞鍒犻櫎骞剁Щ鍏ュ巻鍙叉柟娉曪紙娣诲姞IBaseHistoryEntity锛屼娇鐢ㄨ鏂规硶鏃跺繀椤诲疄鐜癐BaseHistoryEntity锛�
 
@@ -13,6 +13,10 @@
 			20250114 淇敼鎻掑叆鍘嗗彶鐨勬椂闂�
 
 			20250116 娣诲姞Api鏈夋晥鏈熼獙璇�(App.ExpDateTime璧嬪�煎彲鐢�)
+			
+			20250218 娣诲姞澶氭暟鎹簱閰嶇疆
+			
+			20250301 淇Swagger椤甸潰鎺ュ彛鎺堟潈闂
 		</Description>
 		<GenerateDocumentationFile>false</GenerateDocumentationFile>
 	</PropertyGroup>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Model/ClassDiagram1.cd b/WIDESEAWCS_Server/WIDESEAWCS_Model/ClassDiagram1.cd
deleted file mode 100644
index 7b89419..0000000
--- a/WIDESEAWCS_Server/WIDESEAWCS_Model/ClassDiagram1.cd
+++ /dev/null
@@ -1,2 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<ClassDiagram /> 
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Model/ClassDiagram2.cd b/WIDESEAWCS_Server/WIDESEAWCS_Model/ClassDiagram2.cd
deleted file mode 100644
index b0cf9ef..0000000
--- a/WIDESEAWCS_Server/WIDESEAWCS_Model/ClassDiagram2.cd
+++ /dev/null
@@ -1,11 +0,0 @@
-锘�<?xml version="1.0" encoding="utf-8"?>
-<ClassDiagram MajorVersion="1" MinorVersion="1">
-  <Class Name="WIDESEAWCS_Model.Models.Dt_Task">
-    <Position X="0.5" Y="0.5" Width="3.75" />
-    <TypeIdentifier>
-      <HashCode>AAAAACAAAAAAEgAAAAAAAAAMAAgAAAIIAQJAAAEBCQA=</HashCode>
-      <FileName>Models\TaskInfo\Dt_Task.cs</FileName>
-    </TypeIdentifier>
-  </Class>
-  <Font Name="Microsoft YaHei UI" Size="9" />
-</ClassDiagram>
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs b/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs
new file mode 100644
index 0000000..b337d54
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_Hty.cs
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    public class Dt_Task_Hty : Dt_Task, IBaseHistoryEntity
+    {
+        public int SourceId { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+        public string OperateType { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+        public DateTime InsertTime { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs
index bb87b3b..154ca78 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs
@@ -27,10 +27,33 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 杈撻�佺嚎鎺ュ彛灞�
+    /// </summary>
     public interface IConveyorLine : IDevice
     {
 
         /// <summary>
+        /// 閫氳瀵硅薄
+        /// </summary>
+        BaseCommunicator Communicator { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚淇℃伅
+        /// </summary>
+        List<DeviceProDTO> DeviceProDTOs { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚鏄庣粏淇℃伅
+        /// </summary>
+        List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; }
+
+        /// <summary>
+        /// 璁惧鏄惁宸茶繛鎺�
+        /// </summary>
+        bool IsConnected { get; }
+
+        /// <summary>
         /// 涓庤澶囩殑蹇冭烦
         /// </summary>
         void Heartbeat();
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs
index f4758a4..6bf1aa9 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/IDevice.cs
@@ -31,23 +31,6 @@
     /// </summary>
     public interface IDevice : IDisposable
     {
-
-        /// <summary>
-        /// 閫氳瀵硅薄
-        /// </summary>
-        BaseCommunicator Communicator { get; }
-
-        /// <summary>
-        /// 閫氳鍗忚淇℃伅
-        /// </summary>
-        List<DeviceProDTO> DeviceProDTOs { get; }
-
-        /// <summary>
-        /// 閫氳鍗忚鏄庣粏淇℃伅
-        /// </summary>
-        List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; }
-
-
         /// <summary>
         /// 璁惧缂栧彿
         /// </summary>
@@ -57,10 +40,5 @@
         /// 璁惧鍚嶇О
         /// </summary>
         string DeviceName { get; }
-
-        /// <summary>
-        /// 璁惧鏄惁宸茶繛鎺�
-        /// </summary>
-        bool IsConnected { get; }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs
index 5af7281..afb432f 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs
@@ -3,6 +3,7 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Communicator;
 using WIDESEAWCS_QuartzJob.DeviceBase;
 using WIDESEAWCS_QuartzJob.DTO;
 
@@ -14,6 +15,26 @@
     public interface IOtherDevice : IDevice
     {
         /// <summary>
+        /// 閫氳瀵硅薄
+        /// </summary>
+        BaseCommunicator Communicator { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚淇℃伅
+        /// </summary>
+        List<DeviceProDTO> DeviceProDTOs { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚鏄庣粏淇℃伅
+        /// </summary>
+        List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; }
+
+        /// <summary>
+        /// 璁惧鏄惁宸茶繛鎺�
+        /// </summary>
+        bool IsConnected { get; }
+
+        /// <summary>
         /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹�
         /// </summary>
         /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs
index c58f641..95605e7 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs
@@ -41,7 +41,7 @@
         /// 鍚姩绋嬪簭鑷姩寮�鍚皟搴︽湇鍔�
         /// </summary>
         /// <returns></returns>
-        public async Task StartAsync()
+        public virtual async Task StartAsync()
         {
             try
             {
@@ -52,60 +52,69 @@
                 {
                     if (!Storage.Devices.Exists(d => d.DeviceCode == x.DeviceCode))
                     {
-                        #region 杩炴帴PLC
-                        // 鍔犺浇绋嬪簭闆�
-                        Assembly assembly = Assembly.Load($"WIDESEAWCS_Communicator");
-                        // 鑾峰彇绫诲瀷
-                        Type? type = assembly.GetType($"WIDESEAWCS_Communicator.{x.DevicePlcType}");
-                        // 鍒涘缓瀹炰緥
-                        object? obj = Activator.CreateInstance(type, new object[] { x.DeviceIp, x.DevicePort, x.DeviceName });
-                        // 璋冪敤杩炴帴鏂规硶
-                        bool? connectResult = (bool)type.InvokeMember("Connect", BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, new object[] { });
-                        // 鍒ゆ柇杩炴帴缁撴灉
-                        if (connectResult ?? false) ConsoleHelper.WriteSuccessLine(x.DeviceCode + "杩炴帴鎴愬姛"); else ConsoleHelper.WriteErrorLine(x.DeviceCode + "杩炴帴澶辫触");
-                        #endregion
-
-                        #region 瀹炰緥鍖栬澶囧璞�
-                        List<DeviceProDTO> devicePros = x.ProtocolList.Select(d => new DeviceProDTO
+                        try
                         {
-                            // 璁惧瀛愮紪鐮�
-                            DeviceChildCode = d.DeviceChildCode,
-                            // 璁惧鏁版嵁绫诲瀷
-                            DeviceDataType = d.DeviceProDataType,
-                            // 璁惧ID
-                            DeviceId = d.DeviceId,
-                            // 璁惧鍗忚ID
-                            DeviceProId = d.Id,
-                            // 璁惧鍗忚鏁版嵁鍧�
-                            DeviceProDataBlock = d.DeviceProDataBlock,
-                            // 璁惧鍗忚鏁版嵁闀垮害
-                            DeviceProDataLength = d.DeviceProDataLength,
-                            // 璁惧鍗忚鍋忕Щ閲�
-                            DeviceProOffset = d.DeviceProOffset,
-                            // 璁惧鍗忚鍙傛暟鎻忚堪
-                            DeviceProParamDes = d.DeviceProParamDes,
-                            // 璁惧鍗忚鍙傛暟鍚嶇О
-                            DeviceProParamName = d.DeviceProParamName,
-                            // 璁惧鍗忚鍙傛暟绫诲瀷
-                            DeviceProParamType = d.DeviceProParamType,
-                            // 璁惧PLC绫诲瀷
-                            DevicePlcType = x.DevicePlcType
-                        }).ToList();
+                            #region 杩炴帴PLC
+                            // 鍔犺浇绋嬪簭闆�
+                            Assembly assembly = Assembly.Load($"WIDESEAWCS_Communicator");
+                            // 鑾峰彇绫诲瀷
+                            Type? type = assembly.GetType($"WIDESEAWCS_Communicator.{x.DevicePlcType}");
+                            // 鍒涘缓瀹炰緥
+                            object? obj = Activator.CreateInstance(type, new object[] { x.DeviceIp, x.DevicePort, x.DeviceName });
+                            // 璋冪敤杩炴帴鏂规硶
+                            bool? connectResult = (bool)type.InvokeMember("Connect", BindingFlags.Default | BindingFlags.InvokeMethod, null, obj, new object[] { });
+                            // 鍒ゆ柇杩炴帴缁撴灉
+                            if (connectResult ?? false) ConsoleHelper.WriteSuccessLine(type.Name + x.DeviceCode + "杩炴帴鎴愬姛"); else ConsoleHelper.WriteErrorLine(type.Name + x.DeviceCode + "杩炴帴澶辫触");
+                            #endregion
 
-                        // 鏍规嵁璁惧绫诲瀷鑾峰彇璁惧鍗忚璇︽儏
-                        List<DeviceProtocolDetailDTO> deviceProtocolDetails = _deviceProtocolDetailService.GetDeviceProtocolDetailsByDeviceType(x.DeviceType);
 
-                        // 鍔犺浇璁惧绋嬪簭闆�
-                        Assembly assemblyDevice = Assembly.Load($"WIDESEAWCS_QuartzJob");
-                        // 鑾峰彇璁惧绫诲瀷瀵瑰簲鐨勭被鍨�
-                        Type typeDevice = assemblyDevice.GetType($"WIDESEAWCS_QuartzJob.{x.DeviceType}");
-                        // 鍒涘缓璁惧瀹炰緥
-                        object deviceInstance = Activator.CreateInstance(typeDevice, new object[] { obj, devicePros, deviceProtocolDetails, x.DeviceCode, x.DeviceName });
-                        #endregion
 
-                        x.Device = (IDevice)deviceInstance;
+                            #region 瀹炰緥鍖栬澶囧璞�
+                            List<DeviceProDTO> devicePros = x.ProtocolList.Select(d => new DeviceProDTO
+                            {
+                                // 璁惧瀛愮紪鐮�
+                                DeviceChildCode = d.DeviceChildCode,
+                                // 璁惧鏁版嵁绫诲瀷
+                                DeviceDataType = d.DeviceProDataType,
+                                // 璁惧ID
+                                DeviceId = d.DeviceId,
+                                // 璁惧鍗忚ID
+                                DeviceProId = d.Id,
+                                // 璁惧鍗忚鏁版嵁鍧�
+                                DeviceProDataBlock = d.DeviceProDataBlock,
+                                // 璁惧鍗忚鏁版嵁闀垮害
+                                DeviceProDataLength = d.DeviceProDataLength,
+                                // 璁惧鍗忚鍋忕Щ閲�
+                                DeviceProOffset = d.DeviceProOffset,
+                                // 璁惧鍗忚鍙傛暟鎻忚堪
+                                DeviceProParamDes = d.DeviceProParamDes,
+                                // 璁惧鍗忚鍙傛暟鍚嶇О
+                                DeviceProParamName = d.DeviceProParamName,
+                                // 璁惧鍗忚鍙傛暟绫诲瀷
+                                DeviceProParamType = d.DeviceProParamType,
+                                // 璁惧PLC绫诲瀷
+                                DevicePlcType = x.DevicePlcType
+                            }).ToList();
 
-                        Storage.Devices.Add((IDevice)deviceInstance);
+                            // 鏍规嵁璁惧绫诲瀷鑾峰彇璁惧鍗忚璇︽儏
+                            List<DeviceProtocolDetailDTO> deviceProtocolDetails = _deviceProtocolDetailService.GetDeviceProtocolDetailsByDeviceType(x.DeviceType);
+
+                            // 鍔犺浇璁惧绋嬪簭闆�
+                            Assembly assemblyDevice = Assembly.Load($"WIDESEAWCS_QuartzJob");
+                            // 鑾峰彇璁惧绫诲瀷瀵瑰簲鐨勭被鍨�
+                            Type typeDevice = assemblyDevice.GetType($"WIDESEAWCS_QuartzJob.{x.DeviceType}");
+                            // 鍒涘缓璁惧瀹炰緥
+                            object deviceInstance = Activator.CreateInstance(typeDevice, new object[] { obj, devicePros, deviceProtocolDetails, x.DeviceCode, x.DeviceName });
+                            #endregion
+
+                            x.Device = (IDevice)deviceInstance;
+
+                            Storage.Devices.Add((IDevice)deviceInstance);
+                        }
+                        catch (Exception ex)
+                        {
+                            Console.WriteLine("璋冨害鏈嶅姟寮�鍚紓甯�" + ex.ToString());
+                        }
                     }
                     else
                     {
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs
index 8fddbce..e96cc65 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs
@@ -111,13 +111,21 @@
                                         else
                                             dic[i].Add("CreateDate", DateTime.Now);
                                     }
-                                    string str = $"SET IDENTITY_INSERT {t.Name} ON;";
+                                    string str = "";
+                                    if (DBContext.DbType == SqlSugar.DbType.SqlServer)
+                                    {
+                                        str += $"SET IDENTITY_INSERT {t.Name} ON;";
 
-                                    str += dbContext.Db.Insertable(dic).AS(t.Name).ToSqlString();
+                                        str += dbContext.Db.Insertable(dic).AS(t.Name).ToSqlString();
 
-                                    str += ($"SET IDENTITY_INSERT {t.Name} OFF;");
+                                        str += ($"SET IDENTITY_INSERT {t.Name} OFF;");
 
-                                    dbContext.Db.Ado.ExecuteCommand(str);
+                                        dbContext.Db.Ado.ExecuteCommand(str);
+                                    }
+                                    else
+                                    {
+                                        dbContext.Db.Insertable(dic).AS(t.Name).ExecuteCommand();
+                                    }
 
                                     ConsoleHelper.WriteSuccessLine($"Table [{t.Name}] SeedData Added Successfully");
                                 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/SerialDevice/SerialPortDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/SerialDevice/SerialPortDevice.cs
new file mode 100644
index 0000000..2d17ca3
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/SerialDevice/SerialPortDevice.cs
@@ -0,0 +1,93 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Communicator;
+using WIDESEAWCS_QuartzJob.DTO;
+
+namespace WIDESEAWCS_QuartzJob
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class SerialPortDevice : IDevice
+    {
+        #region Private Member
+        /// <summary>
+        /// 鍫嗗灈鏈洪�氳瀵硅薄
+        /// </summary>
+        private BaseSerialPortCommunicator _communicator;
+        /// <summary>
+        /// 鍫嗗灈鏈哄崗璁俊鎭�
+        /// </summary>
+        private readonly List<DeviceProDTO> _deviceProDTOs;
+        /// <summary>
+        /// 鍫嗗灈鏈哄崗璁槑缁嗕俊鎭�
+        /// </summary>
+        private readonly List<DeviceProtocolDetailDTO> _deviceProtocolDetailDTOs;
+        /// <summary>
+        /// 璁惧缂栧彿
+        /// </summary>
+        public readonly string _deviceCode;
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
+        public readonly string _deviceName;
+        #endregion Private Member
+
+        /// <summary>
+        /// 鍫嗗灈鏈洪�氳瀵硅薄
+        /// </summary>
+        public BaseSerialPortCommunicator Communicator => _communicator;
+
+        /// <summary>
+        /// 鍫嗗灈鏈哄崗璁俊鎭�
+        /// </summary>
+        public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs;
+
+        /// <summary>
+        /// 鍫嗗灈鏈哄崗璁槑缁嗕俊鎭�
+        /// </summary>
+        public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
+
+        /// <summary>
+        /// 璁惧缂栧彿
+        /// </summary>
+        public string DeviceCode => _deviceCode;
+
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
+        public string DeviceName => _deviceName;
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="communicator"></param>
+        /// <param name="deviceProDTOs"></param>
+        /// <param name="deviceProtocolDetailDTOs"></param>
+        /// <param name="deviceCode"></param>
+        /// <param name="deviceName"></param>
+        public SerialPortDevice(BaseSerialPortCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
+        {
+            _communicator = communicator;
+            _deviceProDTOs = deviceProDTOs;
+            _deviceProtocolDetailDTOs = deviceProtocolDetailDTOs;
+            _deviceCode = deviceCode;
+            _deviceName = deviceName;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <exception cref="NotImplementedException"></exception>
+        public void Dispose()
+        {
+            // 璋冪敤_communicator鐨凞ispose鏂规硶
+            _communicator.Dispose();
+            // 鍛婅瘔鍨冨溇鍥炴敹鍣ㄤ笉鍐嶈皟鐢ㄦ瀵硅薄鐨勭粓缁撳櫒
+            GC.SuppressFinalize(this);
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs
index ec568b6..7df49d5 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs
@@ -3,7 +3,9 @@
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Communicator;
 using WIDESEAWCS_QuartzJob.DeviceBase;
+using WIDESEAWCS_QuartzJob.DTO;
 
 namespace WIDESEAWCS_QuartzJob
 {
@@ -13,6 +15,26 @@
     public interface IShuttleCar : IDevice
     {
         /// <summary>
+        /// 閫氳瀵硅薄
+        /// </summary>
+        BaseCommunicator Communicator { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚淇℃伅
+        /// </summary>
+        List<DeviceProDTO> DeviceProDTOs { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚鏄庣粏淇℃伅
+        /// </summary>
+        List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; }
+
+        /// <summary>
+        /// 璁惧鏄惁宸茶繛鎺�
+        /// </summary>
+        bool IsConnected { get; }
+
+        /// <summary>
         /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹�
         /// </summary>
         /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs
index a759cf9..a6d8eb1 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs
@@ -35,6 +35,26 @@
     public interface IStackerCrane : IDevice
     {
         /// <summary>
+        /// 閫氳瀵硅薄
+        /// </summary>
+        BaseCommunicator Communicator { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚淇℃伅
+        /// </summary>
+        List<DeviceProDTO> DeviceProDTOs { get; }
+
+        /// <summary>
+        /// 閫氳鍗忚鏄庣粏淇℃伅
+        /// </summary>
+        List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs { get; }
+
+        /// <summary>
+        /// 璁惧鏄惁宸茶繛鎺�
+        /// </summary>
+        bool IsConnected { get; }
+
+        /// <summary>
         /// 涓婁竴娆℃墽琛岀殑浠诲姟鍙�
         /// </summary>
         int LastTaskNum { get; }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
index 1fb0180..36bffb2 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
@@ -61,14 +61,5 @@
             return Pro_Devices.Where(x => deviceCodes.Contains(x.DeviceCode)).ToList();
         }
 
-        /// <summary>
-        /// 鑾峰彇閫氳瀵硅薄
-        /// </summary>
-        /// <param name="deviceCode"></param>
-        /// <returns></returns>
-        public BaseCommunicator? GetCommunicator(string deviceCode)
-        {
-            return Devices.FirstOrDefault(x => x.DeviceCode == deviceCode)?.Communicator;
-        }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
index 673f3c6..5f06815 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
@@ -11,22 +11,21 @@
 			鍦―t_DeviceInfo琛ㄤ腑娣诲姞DispatchId鍙┖鍒楋紝鐢ㄦ潵閰嶇疆瀵瑰簲Dt_DispatchInfo涓殑鏁版嵁銆�
 			鏇存柊鏃惰娉ㄦ剰锛屽闇�鏇存柊锛岃鍙婃椂鏇存柊鏁版嵁搴撶粨鏋勫拰鏁版嵁銆�
 
-			20241223
-			璺敱琛ㄦ洿鏂�
+			2024-12-23锛氳矾鐢辫〃鏇存柊
 
-			20250102
-			娣诲姞JobBase涓褰曢敊璇棩蹇楁柟娉曢噸杞界増鏈�
+			2025-01-02锛氭坊鍔燡obBase涓褰曢敊璇棩蹇楁柟娉曢噸杞界増鏈�
 
-			20250102-002
-			娣诲姞娉ㄩ噴
+			2025-01-02-002锛氭坊鍔犳敞閲�
 
-			20250109
-			娣诲姞璺敱鏌ヨ鏂规硶
+			2025-01-09锛氭坊鍔犺矾鐢辨煡璇㈡柟娉�
 
-			20250116
-			娣诲姞Job鏈夋晥鏈熼獙璇�(App.ExpDateTime璧嬪�煎彲鐢�)
+			2025-01-16锛氭坊鍔燡ob鏈夋晥鏈熼獙璇�(App.ExpDateTime璧嬪�煎彲鐢�)
+
+			2025-02-18锛氭坊鍔犲鏁版嵁搴撻厤缃�
+
+			2025-03-11锛氭坊鍔犱覆鍙h澶囩被鍨�
 		</Description>
-		<Version>3.0.5</Version>
+		<Version>3.0.7</Version>
 		<GenerateDocumentationFile>true</GenerateDocumentationFile>
 	</PropertyGroup>
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs
index 3ca31b6..cdb3151 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs
@@ -8,6 +8,7 @@
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.Authorization;
 using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.CodeGenerator;
 using WIDESEAWCS_Core.Const;
 using WIDESEAWCS_Core.Extensions;
 using WIDESEAWCS_Core.Helper;
@@ -50,7 +51,7 @@
                 {
                     HttpContext.SuccessSwagger();
                     Dictionary<string, object>? dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(result.Data.Serialize());
-                    if(dict != null)
+                    if (dict != null)
                     {
                         HttpContext.SuccessSwaggerJwt((dict.ContainsKey("token") ? dict["token"].ToString() : "") ?? "");
                     }
@@ -128,6 +129,17 @@
             }
 
         }
+
+        [HttpPost, Route("CreateIRepository"), AllowAnonymous]
+        public WebResponseContent CreateIRepository(string tableName, string nameSpace)
+        {
+            CodeGenertors.CreateIRepository(tableName, nameSpace);
+            CodeGenertors.CreateRepository(tableName, nameSpace);
+            CodeGenertors.CreateIService(tableName, nameSpace);
+            CodeGenertors.CreateService(tableName, nameSpace);
+            CodeGenertors.CreateController(tableName, nameSpace);
+            return WebResponseContent.Instance.OK();
+        }
     }
 
     public class SwaggerLoginRequest
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
index fc5ab5c..7515054 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs
@@ -25,7 +25,7 @@
             return Service.ReceiveWMSTask(taskDTOs);
         }
 
-        [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
+        [HttpPost, HttpGet(), Route("UpdateTaskExceptionMessage")]
         public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message)
         {
             return Service.UpdateTaskExceptionMessage(taskNum, message);
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs b/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs
new file mode 100644
index 0000000..26232e4
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Filter/WebSocketSetup.cs
@@ -0,0 +1,29 @@
+锘縰sing HslCommunication.WebSocket;
+using WIDESEAWCS_Core.Helper;
+
+namespace WIDESEAWCS_Server.HostedService
+{
+    public static class WebSocketSetup
+    {
+        public static void AddWebSocketSetup(this IServiceCollection services)
+        {
+            if (services == null) throw new ArgumentNullException(nameof(services));
+
+            if(AppSettings.Get("WebSocketEnable").ObjToBool())
+            {
+                int port = AppSettings.Get("WebSocketPort").ObjToInt();
+                if (port == 0)
+                {
+                    port = 9296;
+                }
+
+                services.AddSingleton(x =>
+                {
+                    WebSocketServer socketServer = new WebSocketServer();
+                    socketServer.ServerStart(port);
+                    return socketServer;
+                });
+            }
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs b/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
index d5e57ff..3365fde 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs
@@ -23,10 +23,10 @@
 using Microsoft.AspNetCore.Builder;
 using WIDESEAWCS_Server.Filter;
 using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_Server.HostedService;
 
 var builder = WebApplication.CreateBuilder(args);
 
-App.ExpDateTime = DateTime.Parse("2025-01-01 00:00:00");
 
 builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder =>
 {
@@ -52,6 +52,8 @@
 
 //builder.Services.AddScoped<QuartzJobCreateDataTabel>();//任务调度 注入创建QuartzJob数据库表类
 //builder.Services.AddHostedService<QuartzJobDataTableHostedService>();//任务调度 映射QuartzJob数据库表
+
+builder.Services.AddWebSocketSetup();
 
 builder.Services.AddAutoMapperSetup();
 
@@ -115,11 +117,12 @@
 app.UseAllServicesMiddle(builder.Services);
 
 app.UseSession();
-//if (app.Environment.IsDevelopment())
+//if (app.Environment.IsProduction())
 {
     app.UseSwaggerAuthorized();
-    app.UseSwaggerMiddle(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("WIDESEAWCS_Server.index.html") ?? throw new Exception("未找到WIDESEAWCS_Server.index.html文件"));
-}//判断是否需要打开swagger
+}
+
+app.UseSwaggerMiddle(() => Assembly.GetExecutingAssembly().GetManifestResourceStream("WIDESEAWCS_Server.index.html") ?? throw new Exception("未找到WIDESEAWCS_Server.index.html文件"));
 
 app.UseIpLimitMiddle();
 app.UseApiLogMiddleware();
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj b/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
index 65db6b8..170389b 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj
@@ -20,11 +20,6 @@
 	</PropertyGroup>
 
 	<ItemGroup>
-		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DeviceInfo.tsv" />
-		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DeviceProtocol.tsv" />
-		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DeviceProtocolDetail.tsv" />
-		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DispatchInfo.tsv" />
-		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Router.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Task.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_TaskExecuteDetail.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Sys_Dictionary.tsv" />
@@ -42,21 +37,6 @@
 	<ItemGroup>
 		<EmbeddedResource Include="index.html">
 			<CopyToOutputDirectory>Always</CopyToOutputDirectory>
-		</EmbeddedResource>
-		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DeviceInfo.tsv">
-		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-		</EmbeddedResource>
-		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DeviceProtocol.tsv">
-		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-		</EmbeddedResource>
-		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DeviceProtocolDetail.tsv">
-		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-		</EmbeddedResource>
-		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DispatchInfo.tsv">
-		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-		</EmbeddedResource>
-		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Router.tsv">
-		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 		</EmbeddedResource>
 		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Task.tsv">
 		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json b/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
index f670ace..5632bb3 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -1,30 +1,37 @@
 {
-  "urls": "http://*:9291", //web鏈嶅姟绔彛锛屽鏋滅敤IIS閮ㄧ讲锛屾妸杩欎釜鍘绘帀
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
-    }
-  },
-  "dics": "deviceType,devicePlcType,jobAssembly,jobClassName,deviceStatus,taskType,taskState,inOutType",
-  "AllowedHosts": "*",
-  "ConnectionStringsEncryption": false,
-  "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
-  //杩炴帴瀛楃涓�
-  //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
-  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  //璺ㄥ煙
-  "Cors": {
-    "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
-    "EnableAllIPs": true, //褰撲负true鏃讹紝寮�鏀炬墍鏈塈P鍧囧彲璁块棶銆�
-    // 鏀寔澶氫釜鍩熷悕绔彛锛屾敞鎰忕鍙e彿鍚庝笉瑕佸甫/鏂滄潌锛氭瘮濡俵ocalhost:8000/锛屾槸閿欑殑
-    // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
-    "IPs": "http://127.0.0.1:8080,http://localhost:8080"
-  },
-  "ApiName": "WIDESEAWCS",
-  "ExpMinutes": 120,
-  "QuartzJobAutoStart": true,
-  "LogDeubgEnable": true, //鏄惁璁板綍璋冭瘯鏃ュ織
-  "PrintSql": true, //鎵撳嵃SQL璇彞
-  "LogAOPEnable": true //鏄惁璁板綍AOP鏃ュ織
+    "urls": "http://*:9291", //web鏈嶅姟绔彛锛屽鏋滅敤IIS閮ㄧ讲锛屾妸杩欎釜鍘绘帀
+    "Logging": {
+        "LogLevel": {
+            "Default": "Information",
+            "Microsoft.AspNetCore": "Warning"
+        }
+    },
+    "dics": "deviceType,devicePlcType,jobAssembly,jobClassName,deviceStatus,taskType,taskState,inOutType",
+    "AllowedHosts": "*",
+    "ConnectionStringsEncryption": false,
+    "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
+    //1.MySql
+    //2.SqlServer
+    //3.Sqlite
+    //4.Oracle
+    //5.PostgreSQL
+    "DBType": "SqlServer",
+    //杩炴帴瀛楃涓�
+    //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
+    "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+
+    //璺ㄥ煙
+    "Cors": {
+        "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
+        "EnableAllIPs": true, //褰撲负true鏃讹紝寮�鏀炬墍鏈塈P鍧囧彲璁块棶銆�
+        // 鏀寔澶氫釜鍩熷悕绔彛锛屾敞鎰忕鍙e彿鍚庝笉瑕佸甫/鏂滄潌锛氭瘮濡俵ocalhost:8000/锛屾槸閿欑殑
+        // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
+        "IPs": "http://127.0.0.1:8080,http://localhost:8080"
+    },
+    "ApiName": "WIDESEAWCS",
+    "ExpMinutes": 120,
+    "QuartzJobAutoStart": true,
+    "LogDeubgEnable": true, //鏄惁璁板綍璋冭瘯鏃ュ織
+    "PrintSql": true, //鎵撳嵃SQL璇彞
+    "LogAOPEnable": true //鏄惁璁板綍AOP鏃ュ織
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html b/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html
index 155d28e..97ba152 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/index.html
@@ -171,13 +171,13 @@
                 $('.info').append("<div class='qqgroup'><div style=\"color: #4990e2;\"><a href=\"../allservices\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"link\">路 鏌ョ湅鎵�鏈変緷璧栨敞鍐岀殑鏈嶅姟</a><br></div></div><div style='clear: both;'></div>");
 
                 //淇敼 token鎺堟潈鎸夐挳涓轰腑鏂�
-                $(".auth-wrapper span").empty();
-                $(document).ready(function () {
-                    $('.auth-wrapper span').each(function () {
-                        var myvalue = '鎺堟潈璁よ瘉';
-                        $(this).html(myvalue);
-                    });
-                });
+                //$(".auth-wrapper span").empty();
+                //$(document).ready(function () {
+                //    $('.auth-wrapper span').each(function () {
+                //        var myvalue = '鎺堟潈璁よ瘉';
+                //        $(this).html(myvalue);
+                //    });
+                //});
                 
             }, 1000)
             // 鏂囨。logo
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseController.txt b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseController.txt
new file mode 100644
index 0000000..f28a803
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseController.txt
@@ -0,0 +1,16 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using [StartName]_Core.BaseController;
+using [StartName]_I[Module]Service;
+using [StartName]_Model.Models;
+
+namespace [StartName]_Server.Controllers.[Module]
+{
+    [Route("api/[TableShortName]")]
+    [ApiController]
+    public class [TableShortName]Controller : ApiBaseController<I[TableShortName]Service, [TableName]>
+    {
+        public [TableShortName]Controller(I[TableShortName]Service service) : base(service)
+        {
+        }
+    }
+}
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIRepository.txt b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIRepository.txt
new file mode 100644
index 0000000..c298465
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIRepository.txt
@@ -0,0 +1,10 @@
+锘�
+using [StartName]_Core.BaseRepository;
+using [StartName]_Model.Models;
+
+namespace [NameSpace]
+{
+    public interface I[TableShortName]Repository : IRepository<[TableName]>
+    {
+    }
+}
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIService.txt b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIService.txt
new file mode 100644
index 0000000..ce4a0d9
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseIService.txt
@@ -0,0 +1,11 @@
+锘縰sing [StartName]_Core.BaseServices;
+using [StartName]_I[Module]Repository;
+using [StartName]_Model.Models;
+
+namespace [NameSpace]
+{
+    public interface I[TableShortName]Service : IService<[TableName]>
+    {
+        I[TableShortName]Repository Repository { get; }
+    }
+}
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseRepository.txt b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseRepository.txt
new file mode 100644
index 0000000..733fe98
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseRepository.txt
@@ -0,0 +1,13 @@
+锘縰sing [StartName]_Core.BaseRepository;
+using [StartName]_I[Module]Repository;
+using [StartName]_Model.Models;
+
+namespace [NameSpace]
+{
+    public class [TableShortName]Repository : RepositoryBase<[TableName]>, I[TableShortName]Repository
+    {
+        public [TableShortName]Repository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseService.txt b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseService.txt
new file mode 100644
index 0000000..a200a70
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/BaseService.txt
@@ -0,0 +1,16 @@
+锘縰sing [StartName]_I[Module]Service;
+using [StartName]_Core.BaseServices;
+using [StartName]_I[Module]Repository;
+using [StartName]_Model.Models;
+
+namespace [NameSpace]
+{
+    public class [TableShortName]Service : ServiceBase<[TableName], I[TableShortName]Repository>, I[TableShortName]Service
+    {
+        public I[TableShortName]Repository Repository => BaseDal;
+
+        public [TableShortName]Service(I[TableShortName]Repository BaseDal) : base(BaseDal)
+        {
+        }
+    }
+}
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/VuePage.txt b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/VuePage.txt
new file mode 100644
index 0000000..a8f48f9
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/CodeTemplate/VuePage.txt
@@ -0,0 +1,50 @@
+锘�<template>
+    <view-grid ref="grid"
+               :columns="columns"
+               :detail="detail"
+               :editFormFields="editFormFields"
+               :editFormOptions="editFormOptions"
+               :searchFormFields="searchFormFields"
+               :searchFormOptions="searchFormOptions"
+               :table="table"
+               :extend="extend">
+    </view-grid>
+</template>
+<script>
+    import extend from "@/extension/[Module]/[TableShortName].js";
+    import { ref, defineComponent } from "vue";
+    export default defineComponent({
+        setup() {
+            const table = ref({
+                key: '[key]',
+                footer: "Foots",
+                cnName: '{Description}',
+                name: '[TableName]',
+                url: "[Url]",
+                sortName: "[SortBy]"
+            });
+            const editFormFields = ref([EditFormFileds]);
+            const editFormOptions = ref([EditFormOptions]);
+            const searchFormFields = ref([SearchFormFileds]);
+            const searchFormOptions = ref([SearchFormOptions]);
+            const columns = ref([[Columns]]);
+            const detail = ref({
+                cnName: "#detailCnName",
+                table: "#detailTable",
+                columns: [#detailColumns],
+                sortName: "#detailSortName",
+                key: "#detailKey"
+            });
+            return {
+                table,
+                extend,
+                editFormFields,
+                editFormOptions,
+                searchFormFields,
+                searchFormOptions,
+                columns,
+                detail,
+            };
+        },
+    });
+</script>
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/WIDESEAWCS_DB.DBSeed.Json/Dt_DeviceInfo.tsv b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/WIDESEAWCS_DB.DBSeed.Json/Dt_DeviceInfo.tsv
index 1c6d83f..b10b285 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/WIDESEAWCS_DB.DBSeed.Json/Dt_DeviceInfo.tsv
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/WIDESEAWCS_DB.DBSeed.Json/Dt_DeviceInfo.tsv
@@ -1,34 +1,36 @@
 锘縖
-  {
-    "Id": 1,
-    "DeviceCode": "SC01",
-    "DeviceName": "1鍙峰爢鍨涙満",
-    "DeviceType": "CommonStackerCrane",
-    "DeviceStatus": "1",
-    "DeviceIp": "127.0.0.1",
-    "DevicePort": 102,
-    "DevicePlcType": "SiemensS7",
-    "DeviceRemark": "1",
-    "ProtocolList": null,
-    "Creater": "1",
-    "CreateDate": "2024-08-23T11:32:25.507",
-    "Modifier": null,
-    "ModifyDate": null
-  },
-  {
-    "Id": 3,
-    "DeviceCode": "1002",
-    "DeviceName": "杈撻�佺嚎",
-    "DeviceType": "CommonConveyorLine",
-    "DeviceStatus": "1",
-    "DeviceIp": "127.0.0.1",
-    "DevicePort": 103,
-    "DevicePlcType": "SiemensS7",
-    "DeviceRemark": "1",
-    "ProtocolList": null,
-    "Creater": "1",
-    "CreateDate": "2024-08-23T11:32:25.507",
-    "Modifier": null,
-    "ModifyDate": null
-  }
+    {
+        "Id": 1,
+        "DispatchId": null,
+        "DeviceCode": "SC01",
+        "DeviceName": "1鍙峰爢鍨涙満",
+        "DeviceType": "CommonStackerCrane",
+        "DeviceStatus": "1",
+        "DeviceIp": "127.0.0.1",
+        "DevicePort": 102,
+        "DevicePlcType": "SiemensS7",
+        "DeviceRemark": "1",
+        "ProtocolList": null,
+        "Creater": "1",
+        "CreateDate": "2024-08-23T11:32:25.507",
+        "Modifier": null,
+        "ModifyDate": null
+    },
+    {
+        "Id": 3,
+        "DispatchId": null,
+        "DeviceCode": "1002",
+        "DeviceName": "杈撻�佺嚎",
+        "DeviceType": "CommonConveyorLine",
+        "DeviceStatus": "1",
+        "DeviceIp": "127.0.0.1",
+        "DevicePort": 103,
+        "DevicePlcType": "SiemensS7",
+        "DeviceRemark": "1",
+        "ProtocolList": null,
+        "Creater": "1",
+        "CreateDate": "2024-08-23T11:32:25.507",
+        "Modifier": null,
+        "ModifyDate": null
+    }
 ]
\ No newline at end of file
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SerialPortJob.cs b/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SerialPortJob.cs
new file mode 100644
index 0000000..cc0640e
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Tasks/SerialPortJob.cs
@@ -0,0 +1,127 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.IO.Ports;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+using Quartz;
+using StackExchange.Profiling.Internal;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.StackerCrane.Enum;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
+using WIDESEAWCS_Tasks.StackerCraneJob;
+
+namespace WIDESEAWCS_Tasks
+{
+    [DisallowConcurrentExecution]
+    public class SerialPortJob : JobBase, IJob, IDisposable
+    {
+        public void Dispose()
+        {
+            GC.SuppressFinalize(this);
+        }
+
+        public enum CommandType
+        {
+            None = 0,
+            Get = 1,
+            Set = 2,
+        }
+
+        public enum CommandResult
+        {
+            SetOK = 0,
+            GetOK = 1,
+            GetError = 2,
+        }
+
+
+        public Task Execute(IJobExecutionContext context)
+        {
+            try
+            {
+                SerialPortDevice serialPortDevice = (SerialPortDevice)context.JobDetail.JobDataMap.Get("JobParams");
+                if (serialPortDevice != null)
+                {
+                    List<DeviceProDTO> deviceProDTOs = serialPortDevice.DeviceProDTOs;
+                    foreach (var item in deviceProDTOs)
+                    {
+                        if (item.DeviceProParamName != CommandType.Get.ToString() && item.DeviceProParamName != CommandType.Set.ToString())
+                        {
+                            DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandType) && x.ProtocolDetailType == nameof(CommandType.Set));
+                            if (deviceProtocolDetail != null)
+                            {
+                                serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue, "\r");//鎵撳紑涓插彛鏃跺厛璁惧��
+                                item.DeviceProParamName = CommandType.Set.ToString();
+                            }
+                        }
+
+                        if (CommandType.Get.ToString() == item.DeviceProParamName)
+                        {
+                            DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandType) && x.ProtocolDetailType == nameof(CommandType.Get));
+                            if (deviceProtocolDetail != null)
+                            {
+                                serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue, "\r");//鎵撳紑涓插彛鏃跺厛璁惧��
+                            }
+                        }
+                        else if (CommandType.Set.ToString() == item.DeviceProParamName)
+                        {
+                            DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandType) && x.ProtocolDetailType == nameof(CommandType.Set));
+                            if (deviceProtocolDetail != null)
+                            {
+                                serialPortDevice.Communicator.Write(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue, "\r");//鎵撳紑涓插彛鏃跺厛璁惧��
+                            }
+                        }
+
+                        if (serialPortDevice.Communicator.Buffers.Count > 0)
+                        {
+                            string? receiveData = serialPortDevice.Communicator.ToString(Encoding.Default);
+                            if (!string.IsNullOrEmpty(receiveData))
+                            {
+                                Console.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + receiveData);
+
+                                if (item.DeviceProParamName == CommandType.Set.ToString())
+                                {
+                                    DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.SetOK));
+                                    if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue))
+                                    {
+                                        item.DeviceProParamName = CommandType.Get.ToString();
+                                    }
+                                }
+                                else if (item.DeviceProParamName == CommandType.Get.ToString())
+                                {
+                                    DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetOK));
+
+                                    if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue))
+                                    {
+                                        item.DeviceProParamName = CommandType.Set.ToString();
+                                    }
+                                }
+                                else if (item.DeviceProParamName == CommandType.Get.ToString())
+                                {
+                                    DeviceProtocolDetailDTO? deviceProtocolDetail = serialPortDevice.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(CommandResult) && x.ProtocolDetailType == nameof(CommandResult.GetError));
+                                    if (deviceProtocolDetail != null && receiveData.Contains(item.DeviceChildCode + deviceProtocolDetail.ProtocalDetailValue))
+                                    {
+                                        item.DeviceProParamName = CommandType.Set.ToString();
+                                    }
+                                }
+                            }
+                        }
+                    }
+
+                }
+
+            }
+            catch (Exception ex)
+            {
+                WriteError("CommonConveyorLineJob", "test", ex);
+                //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString());
+            }
+            WriteDebug("CommonConveyorLineJob", "test");
+            return Task.CompletedTask;
+        }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index 1111567..d4e4555 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -43,8 +43,9 @@
                 CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                 if (commonStackerCrane != null)
                 {
+                    commonStackerCrane.Communicator.IsReadAfterWrite = false;
                     //short a = commonStackerCrane.Communicator.Read<short>("DB2.2.0");
-                    Console.Out.WriteLine(DateTime.Now + "锛�" + ThreadPool.ThreadCount);
+                    commonStackerCrane.SetValue<StackerCraneDBName,short>(StackerCraneDBName.StartLayer, 1);
                     if (!commonStackerCrane.IsEventSubscribed)
                     {
                         commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢

--
Gitblit v1.9.3