From 8c6fd742db249ad4cc819cf041eb98d880a3ef73 Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期四, 02 一月 2025 15:09:07 +0800
Subject: [PATCH] 1

---
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs                      |    9 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs                                              |   71 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProDTO.cs                                          |    6 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs          |   94 +
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2                                |    0 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs                                     |   23 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2                                           |    0 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs                              |    8 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/CustomException/QuartzJobException.cs                        |   35 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobDataTableHostedService.cs          |   15 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs                                  |  105 +
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceInfoRepository.cs                           |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolDetailRepository.cs                 |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/Enum/ConveyorLineStatus.cs                      |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs                                     |   40 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs                        |   95 +
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDispatchInfoRepository.cs                        |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj                                  |   12 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs                                 |   12 
 WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/OperateTypeEnum.cs                                          |   20 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs                                      |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/JobSetup.cs                                 |    5 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolDetailService.cs                       |    7 
 WIDESEAWCS_Client/src/views/quartzJob/deviceInfo.vue                                                |    2 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs                                |    1 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs                       |   97 +
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs                    |    7 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceStatus.cs                                   |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs                              |    3 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs                           |   98 +
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj                            |    9 
 WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs                                       |  175 +
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs                          |   16 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs                                         |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DataLengthAttribute.cs                            |   11 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs                                       |    8 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceInfoRepository.cs                          |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs                                          |    5 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolDetailRepository.cs                |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs                             |    5 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                     | 2445 +++++++++++++++++++++++-------------
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs                                    |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DispatchInfoRepository.cs                         |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs                                      |   12 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs                                |    2 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/StackerCraneTaskCompletedEventArgs.cs           |   10 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs                                 |    3 
 WIDESEAWCS_Client/src/views/system/Sys_Log.vue                                                      |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs                              |    3 
 WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs                                               |   57 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs                           |   10 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProtocolDetailDTO.cs                               |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceInfoService.cs                                |    3 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs                                       |    4 
 WIDESEAWCS_Server/WIDESEAWCS_Communicator/CommunicationException.cs                                 |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs                               |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolDetailService.cs                      |    3 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/be4c595e-f3ce-4af1-87b6-a95f79589f51.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobHostedService.cs                   |    9 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolRepository.cs                      |    3 
 WIDESEAWCS_Server/WIDESEAWCS_Core/DB/Models/IBaseHistoryEntity.cs                                   |   37 
 WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/93b5b3a2-f761-4471-a6fe-bc8918d0eeca.vsidx |    0 
 WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj                                            |    5 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobAutofacModuleRegister.cs           |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs                                                   |   27 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolRepository.cs                       |    6 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceEnum/DeviceStatus.cs                                   |    3 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs                                  |   18 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs                                  |   50 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs                         |   61 
 /dev/null                                                                                           |   12 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs                                                   |   30 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/SchedulerCenterServer.cs                           |    8 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs                             |   12 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs                            |    3 
 WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/IRepository.cs                                     |    8 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs                                    |    9 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs                               |    7 
 WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceInfoDTO.cs                                         |    3 
 81 files changed, 2,891 insertions(+), 1,035 deletions(-)

diff --git a/WIDESEAWCS_Client/src/views/quartzJob/deviceInfo.vue b/WIDESEAWCS_Client/src/views/quartzJob/deviceInfo.vue
index 65f1f75..48bb529 100644
--- a/WIDESEAWCS_Client/src/views/quartzJob/deviceInfo.vue
+++ b/WIDESEAWCS_Client/src/views/quartzJob/deviceInfo.vue
@@ -97,7 +97,7 @@
     });
     const searchFormOptions = ref([
       [
-        { title: "璁惧缂栧彿", field: "deviceCode" },
+        { title: "璁惧缂栧彿", field: "deviceCode",type: "like" },
         {
           title: "璁惧绫诲瀷",
           field: "deviceType",
diff --git a/WIDESEAWCS_Client/src/views/system/Sys_Log.vue b/WIDESEAWCS_Client/src/views/system/Sys_Log.vue
index a3d962c..b403132 100644
--- a/WIDESEAWCS_Client/src/views/system/Sys_Log.vue
+++ b/WIDESEAWCS_Client/src/views/system/Sys_Log.vue
@@ -44,9 +44,9 @@
     });
     const searchFormOptions = ref([
       [
-        { title: "璇锋眰鍦板潃", field: "url", type: "text" },
-        { title: "鐢ㄦ埛IP", field: "userIP", type: "text" },
-        { title: "鏈嶅姟鍣↖P", field: "serviceIP", type: "text" },
+        { title: "璇锋眰鍦板潃", field: "url", type: "like" },
+        { title: "鐢ㄦ埛IP", field: "userIP", type: "like" },
+        { title: "鏈嶅姟鍣↖P", field: "serviceIP", type: "like" },
       ],
       [
         { title: "寮�濮嬫椂闂�", field: "beginDate", type: "datetime" },
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2
index 3adb172..e7eed22 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/11ac1a17-245e-4425-a81c-b7255697109a.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx
new file mode 100644
index 0000000..cda98ea
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/11ac1a17-245e-4425-a81c-b7255697109a.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/47f1c681-b60a-42e6-a1ee-65b795a138fe.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/47f1c681-b60a-42e6-a1ee-65b795a138fe.vsidx
deleted file mode 100644
index 46c4831..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/47f1c681-b60a-42e6-a1ee-65b795a138fe.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/43d2a2dc-30bd-423d-a9c4-af4fe86a7160.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx
similarity index 78%
rename from WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/43d2a2dc-30bd-423d-a9c4-af4fe86a7160.vsidx
rename to WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx
index bbb1bda..e658359 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/43d2a2dc-30bd-423d-a9c4-af4fe86a7160.vsidx
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/52532953-985d-4933-bb6c-ad6c8487cf84.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/93b5b3a2-f761-4471-a6fe-bc8918d0eeca.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/93b5b3a2-f761-4471-a6fe-bc8918d0eeca.vsidx
new file mode 100644
index 0000000..df6355f
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/93b5b3a2-f761-4471-a6fe-bc8918d0eeca.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8b56c96-5c9f-4b7c-acab-2d88b650b051.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8b56c96-5c9f-4b7c-acab-2d88b650b051.vsidx
deleted file mode 100644
index 515de46..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/b8b56c96-5c9f-4b7c-acab-2d88b650b051.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba667f09-0dbf-4db8-8382-9e90210cc581.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba667f09-0dbf-4db8-8382-9e90210cc581.vsidx
deleted file mode 100644
index 69dfed2..0000000
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba667f09-0dbf-4db8-8382-9e90210cc581.vsidx
+++ /dev/null
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/be4c595e-f3ce-4af1-87b6-a95f79589f51.vsidx b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/be4c595e-f3ce-4af1-87b6-a95f79589f51.vsidx
new file mode 100644
index 0000000..85d80b0
--- /dev/null
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/be4c595e-f3ce-4af1-87b6-a95f79589f51.vsidx
Binary files differ
diff --git a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2 b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2
index 71b5e89..1a53746 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 07857db..e18d030 100644
--- a/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
+++ b/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json
@@ -3,12 +3,360 @@
   "WorkspaceRootPath": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\",
   "Documents": [
     {
+      "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:{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:{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:{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\\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\\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:{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\\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:{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\\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:{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\\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:{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\\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\\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\\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\\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\\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:{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\\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:{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\\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\\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:{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:{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\\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:\\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\\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\\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\\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}|",
@@ -23,14 +371,6 @@
       "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\\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:{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:{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}"
     },
@@ -39,40 +379,8 @@
       "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:{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:{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:{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:{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:{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:{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:{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:{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:{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:{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}",
@@ -83,104 +391,24 @@
       "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:{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:{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:{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:{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\\omron\\omronethernetcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\omron\\omronethernetcommunicator.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\\modbus\\modbustcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\modbus\\modbustcpcommunicator.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\\inovance\\inovancetcpcommunicator.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
-      "RelativeMoniker": "D:0:0:{861C4D0B-A478-48DB-A0FA-AE70F5BA210A}|WIDESEAWCS_Communicator\\WIDESEAWCS_Communicator.csproj|solutionrelative:wideseawcs_communicator\\inovance\\inovancetcpcommunicator.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:{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\\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\\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:{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:{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:{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\\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\\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\\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\\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\\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:{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\\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\\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:{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:{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:{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}",
@@ -193,10 +421,6 @@
     {
       "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:{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:{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}",
@@ -251,28 +475,12 @@
       "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:{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:{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:{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:{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:{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:\\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:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\wideseawcs\\infrastructurewcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskexecutedetailservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
@@ -283,52 +491,8 @@
       "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:{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\\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\\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:{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\\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_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:{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:{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:{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:{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:{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}",
@@ -337,30 +501,6 @@
     {
       "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:{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\\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\\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\\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\\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}"
     }
   ],
   "DocumentGroupContainers": [
@@ -370,7 +510,7 @@
       "DocumentGroups": [
         {
           "DockedWidth": 200,
-          "SelectedChildIndex": 12,
+          "SelectedChildIndex": 13,
           "Children": [
             {
               "$type": "Bookmark",
@@ -394,7 +534,1132 @@
             },
             {
               "$type": "Document",
+              "DocumentIndex": 3,
+              "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": "AgIAAJQAAAAAAAAAAAAUwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-01-02T07:06:21.834Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "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==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-12-03T06:35:39.773Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "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": "AgIAAAAAAAAAAAAAAAAAAOoCAABRAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-12-03T06:52:46.701Z",
+              "EditorCaption": ""
+            },
+            {
+              "$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": "AgIAAAAAAAAAAAAAAAAAAAgAAAAiAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2024-12-27T02:26:53.811Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "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": "AgIAAAAAAAAAAAAAAAAAABYAAAAQAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2024-12-23T15:03:57.823Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "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==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-14T03:42:32.674Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "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": "AgIAAAAAAAAAAAAAAAAAAA0AAAAbAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:31:45.652Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "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==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-12-03T06:52:46.064Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 14,
+              "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": "AgIAAL8BAAAAAAAAAAAAAMYBAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:16:12.855Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 15,
+              "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==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:11:35.273Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 16,
+              "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==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-01-02T06:45:41.671Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 17,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 18,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 19,
+              "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": "AgIAAEEAAAAAAAAAAAAQwFYAAAAxAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T03:36:32.34Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 20,
+              "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": "AgIAAAwBAAAAAAAAAADgvxkAAAATAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-13T01:06:40.549Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 21,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 22,
+              "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": "AgIAAA8AAAAAAAAAAAAAACoAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-21T02:50:10.906Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 23,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 24,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 25,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 26,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 30,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 31,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 32,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 29,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 28,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 27,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 33,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 34,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 35,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 36,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 37,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 38,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 39,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 40,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 48,
+              "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": "AgIAAC4AAAAAAAAAAAAAwCQAAAASAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:30:07.656Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 47,
+              "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": "AgIAABsAAAAAAAAAAAAAACcAAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:32:40.712Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 46,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 45,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 44,
+              "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": "AgIAABsAAAAAAAAAAAAAAFEAAAA3AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:27:27.505Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 43,
+              "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": "AgIAACsAAAAAAAAAAAAAwEQAAAARAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:29:37.04Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 42,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 41,
+              "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": "AgIAAFQBAAAAAAAAAAAiwH0AAABBAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-19T02:46:45.891Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 49,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 50,
+              "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": "AgIAAFEAAAAAAAAAAAAYwDkAAAAeAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T02:37:35.521Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 51,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 52,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 53,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 54,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 55,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 57,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 60,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 61,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 63,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 64,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 65,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 59,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 56,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 66,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 58,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 62,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 67,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 69,
+              "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",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 70,
+              "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": "AgIAAA8AAAAAAAAAAAAAABoAAAAkAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2024-11-14T07:21:55.699Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 82,
+              "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": 68,
+              "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": "AgIAABsAAAAAAAAAAAAAAEYAAAAvAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-11T03:29:28.34Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 83,
+              "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": 85,
+              "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": 76,
+              "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": 73,
+              "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": "AgIAACEAAAAAAAAAAAAywAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-12-28T16:42:00.295Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 72,
+              "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": "AgIAAEQAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-12-28T16:42:03.922Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 71,
+              "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": 79,
+              "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": "AgIAAEwDAAAAAAAAAAAgwFwDAABcAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-11-19T07:25:55.034Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 75,
+              "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": 74,
+              "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": 77,
+              "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": 81,
+              "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": 78,
+              "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": 80,
+              "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": 84,
+              "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",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-12-21T02:26:47.894Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 87,
+              "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": 86,
+              "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": "AgIAAAkAAAAAAAAAAAAuwH8AAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2024-12-20T02:13:26.923Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 88,
+              "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": 89,
               "Title": "WIDESEAWCS_Model.csproj",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
               "RelativeDocumentMoniker": "WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj",
@@ -407,94 +1672,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 6,
-              "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": "AgIAADgAAAAAAAAAAAAcwFMAAAAoAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-12T02:48:02.899Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 5,
-              "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": "AgIAAIIAAAAAAAAAAAAUwJEAAABlAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-12T02:46:50.608Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 12,
-              "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": "AgIAAAAAAAAAAAAAAAAAAAcAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-11-13T02:53:56.497Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 11,
-              "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": "AgIAAAAAAAAAAAAAAAAAAEYAAAAsAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:20:49.51Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 10,
-              "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": 1,
-              "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": "AgIAACMAAAAAAAAAAADwvzkAAAAeAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:35.521Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 0,
-              "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": "AgIAABgAAAAAAAAAAAArwDwAAAAyAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:37.692Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 4,
+              "DocumentIndex": 91,
               "Title": "AutofacModuleRegister.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\AutofacModuleRegister.cs",
@@ -506,7 +1684,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 3,
+              "DocumentIndex": 90,
               "Title": "ApiLogMiddleware.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Middlewares\\ApiLogMiddleware.cs",
@@ -518,31 +1696,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 9,
-              "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": "AgIAABYAAAAAAAAAAAAAwAsAAAAmAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:40.549Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 15,
-              "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": "AgIAACQAAAAAAAAAAAAEwD0AAAAMAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:29:37.04Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 8,
+              "DocumentIndex": 93,
               "Title": "Sys_DictionaryService.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_DictionaryService.cs",
@@ -554,7 +1708,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 7,
+              "DocumentIndex": 92,
               "Title": "VueDictionaryDTO.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\VueDictionaryDTO.cs",
@@ -566,91 +1720,19 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 25,
-              "Title": "OmronEtherNetCommunicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\Omron\\OmronEtherNetCommunicator.cs",
-              "ViewState": "AgIAAEsBAAAAAAAAAAAAAEsBAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:35:17.529Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 13,
-              "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": "AgIAAAAAAAAAAAAAAAAAABYAAAASAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:34:48.326Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 16,
-              "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": "AgIAAG4BAAAAAAAAAAArwKUCAAAJAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:35:39.773Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 14,
+              "DocumentIndex": 94,
               "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": "AgIAACIAAAAAAAAAAAAAAEAAAAA4AAAAAAAAAA==",
+              "ViewState": "AgIAAB8AAAAAAAAAAABIwEAAAAA4AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2024-11-13T03:40:59.936Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 23,
-              "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": "AgIAAAAAAAAAAAAAAAAAAFIAAAA6AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T06:53:45.876Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 20,
-              "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": "AgIAAFkAAAAAAAAAAADwv2wBAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:52:46.701Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 27,
-              "Title": "InovanceTcpCommunicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\Inovance\\InovanceTcpCommunicator.cs",
-              "ViewState": "AgIAAEkAAAAAAAAAAAAAAEkAAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:10:31.214Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 18,
+              "DocumentIndex": 95,
               "Title": "EntityProperties.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Utilities\\EntityProperties.cs",
@@ -662,31 +1744,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 17,
-              "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": "AgIAAAAAAAAAAAAAAAAAABcAAAAUAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-05T05:59:47.833Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 26,
-              "Title": "ModbusTcpCommunicator.cs",
-              "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "RelativeDocumentMoniker": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "ToolTip": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "RelativeToolTip": "WIDESEAWCS_Communicator\\Modbus\\ModbusTcpCommunicator.cs",
-              "ViewState": "AgIAADkBAAAAAAAAAAAAADkBAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:35:23.258Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 19,
+              "DocumentIndex": 96,
               "Title": "AspNetUser.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HttpContextUser\\AspNetUser.cs",
@@ -698,43 +1756,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 22,
-              "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": "AgIAAIwAAAAAAAAAAAAUwJEAAAAcAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:36:32.34Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 21,
-              "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": "AgIAAMsBAAAAAAAAAAAswHQBAAAaAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:16:12.855Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 24,
-              "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": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-12-03T06:52:46.064Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 31,
+              "DocumentIndex": 98,
               "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",
@@ -746,31 +1768,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 29,
-              "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": "AgIAAAAAAAAAAAAAAAAAAA4AAABEAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
-              "WhenOpened": "2024-11-14T07:21:55.699Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 30,
-              "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": "AgIAALMAAAAAAAAAAAAEwOcAAAAUAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-19T02:46:45.891Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 28,
+              "DocumentIndex": 97,
               "Title": "CommonStackerCraneJob.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\CommonStackerCraneJob.cs",
@@ -782,103 +1780,19 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 33,
+              "DocumentIndex": 99,
               "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": "AgIAAHkAAAAAAAAAAAAAwI4AAABSAAAAAAAAAA==",
+              "ViewState": "AgIAAFoAAAAAAAAAAAAAwFoAAAAYAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2024-11-11T09:31:08.019Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 34,
-              "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": "AgIAACAAAAAAAAAAAAAwwCsAAAAeAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:36:57.223Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 32,
-              "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": "AgIAAAAAAAAAAAAAAAAAAAoAAAAmAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-21T02:50:10.906Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 36,
-              "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": "AgIAAAAAAAAAAAAAAAAAACgAAAAVAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:32:40.712Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 35,
-              "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": "AgIAAAAAAAAAAAAAAAAAACsAAAANAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:30:07.656Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 37,
-              "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": "AgIAABwAAAAAAAAAAAASwCgAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T01:36:48.189Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 39,
-              "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": "AgIAAAQAAAAAAAAAAAAAAGkAAAAhAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:31:45.652Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 38,
-              "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": "AgIAAAAAAAAAAAAAAAAAABoAAAARAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-20T01:10:50.115Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 45,
+              "DocumentIndex": 102,
               "Title": "StackerCraneDBName.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\StackerCraneJob\\StackerCraneDBName.cs",
@@ -890,19 +1804,19 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 43,
+              "DocumentIndex": 101,
               "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": "AgIAAAwAAAAAAAAAAAAAABsAAAA3AAAAAAAAAA==",
+              "ViewState": "AgIAAAkAAAAAAAAAAABIwBsAAAA3AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2024-11-14T06:22:06.737Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 40,
+              "DocumentIndex": 100,
               "Title": "TestJob.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\TestJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\TestJob.cs",
@@ -914,7 +1828,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 46,
+              "DocumentIndex": 103,
               "Title": "CustomAuthorizeFilter.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\CustomAuthorizeFilter.cs",
@@ -926,31 +1840,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 41,
-              "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": "AgIAACEAAAAAAAAAAAApwJoAAAAQAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-19T07:26:59.037Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 42,
-              "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": "AgIAAOUBAAAAAAAAAAD4vwcCAABBAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-19T07:25:55.034Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 47,
+              "DocumentIndex": 104,
               "Title": "AutoMapperConfig.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperConfig.cs",
@@ -962,43 +1852,19 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 44,
-              "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": "AgIAADIAAAAAAAAAAAAQwFEAAAA3AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:27:27.505Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 48,
-              "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": "AgIAAAAAAAAAAAAAAAAAAAsAAAAnAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-15T07:25:51.567Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 55,
+              "DocumentIndex": 111,
               "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": "AgIAADAAAAAAAAAAAAA1wE4AAAAqAAAAAAAAAA==",
+              "ViewState": "AgIAADEAAAAAAAAAAAAUwE4AAAAqAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2024-11-18T02:09:18.01Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 52,
+              "DocumentIndex": 108,
               "Title": "Sys_MenuRepository.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemRepository\\Sys_MenuRepository.cs",
@@ -1010,7 +1876,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 54,
+              "DocumentIndex": 110,
               "Title": "ISys_MenuRepository.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemRepository\\ISys_MenuRepository.cs",
@@ -1022,7 +1888,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 51,
+              "DocumentIndex": 107,
               "Title": "Sys_RoleService.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_RoleService.cs",
@@ -1034,7 +1900,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 50,
+              "DocumentIndex": 106,
               "Title": "Sys_MenuService.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_MenuService.cs",
@@ -1046,7 +1912,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 49,
+              "DocumentIndex": 105,
               "Title": "ISys_MenuService.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_MenuService.cs",
@@ -1058,19 +1924,19 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 60,
+              "DocumentIndex": 116,
               "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": "AgIAAI0AAAAAAAAAAAAAAJQAAAA1AAAAAAAAAA==",
+              "ViewState": "AgIAAIkAAAAAAAAAAABQwJQAAAA1AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
               "WhenOpened": "2024-11-15T07:17:59.198Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 59,
+              "DocumentIndex": 115,
               "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",
@@ -1082,7 +1948,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 53,
+              "DocumentIndex": 109,
               "Title": "MenuDTO.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\MenuDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\MenuDTO.cs",
@@ -1094,7 +1960,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 56,
+              "DocumentIndex": 112,
               "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",
@@ -1106,7 +1972,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 58,
+              "DocumentIndex": 114,
               "Title": "AutoMapperSetup.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\AutoMapperSetup.cs",
@@ -1118,7 +1984,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 57,
+              "DocumentIndex": 113,
               "Title": "WIDESEAWCS.xml",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS.xml",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS.xml",
@@ -1130,7 +1996,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 61,
+              "DocumentIndex": 117,
               "Title": "DispatchInfoController.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\QuartzJob\\DispatchInfoController.cs",
@@ -1142,43 +2008,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 62,
-              "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": "AgIAACYAAAAAAAAAAADwvyEAAABIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:33:24.489Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 63,
-              "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": "AgIAAAAAAAAAAAAAAAAAAAsAAAAOAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T03:42:39.372Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 64,
-              "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": "AgIAAAkAAAAAAAAAAAAAABwAAAAuAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-14T03:42:32.674Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 66,
+              "DocumentIndex": 119,
               "Title": "ActionDTO.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\ActionDTO.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\ActionDTO.cs",
@@ -1190,7 +2020,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 65,
+              "DocumentIndex": 118,
               "Title": "UserPermissions.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\UserPermissions.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\UserPermissions.cs",
@@ -1202,19 +2032,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 67,
-              "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": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T07:49:25.651Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 68,
+              "DocumentIndex": 120,
               "Title": "TaskExecuteDetailService.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskExecuteDetailService.cs",
@@ -1226,7 +2044,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 69,
+              "DocumentIndex": 121,
               "Title": "ShuttleCarJob.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\ShuttleCarJob\\ShuttleCarJob.cs",
@@ -1238,152 +2056,19 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 71,
-              "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": "AgIAADsAAAAAAAAAAAAQwGAAAAAoAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:11.706Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 70,
-              "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": "AgIAAB0AAAAAAAAAAADwvzoAAAAmAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:25:37.029Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 72,
-              "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": "AgIAACQAAAAAAAAAAAArwEEAAAAVAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:29:28.34Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 73,
-              "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": "AgIAABYAAAAAAAAAAAAWwDMAAAAJAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:33.598Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 75,
-              "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": "AgIAAAMAAAAAAAAAAABIwBQAAABUAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:46.049Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 76,
-              "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": "AgIAACAAAAAAAAAAAAAwwCcAAABSAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:37:24.357Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 74,
-              "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": "AgIAACAAAAAAAAAAAAD4vzgAAAC2AAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:02:36.16Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 77,
+              "DocumentIndex": 122,
               "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": "AgIAACYAAAAAAAAAAADwvz4AAAAzAAAAAAAAAA==",
+              "ViewState": "AgIAACMAAAAAAAAAAADwvzcAAAAIAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2024-11-13T08:05:29.472Z"
             },
             {
               "$type": "Document",
-              "DocumentIndex": 78,
-              "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": "AgIAAAAAAAAAAAAAAAAAABEAAAAGAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:26:43.303Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 79,
-              "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": "AgIAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:18:03.553Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 80,
-              "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": "AgIAAAAAAAAAAAAAAAAAABoAAABSAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
-              "WhenOpened": "2024-11-13T02:53:57.289Z",
-              "EditorCaption": ""
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 81,
-              "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": "AgIAABIAAAAAAAAAAABIwC8AAAAhAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-13T01:06:34.541Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 82,
+              "DocumentIndex": 123,
               "Title": "InitializationHostServiceSetup.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Core\\Extensions\\InitializationHostServiceSetup.cs",
@@ -1395,7 +2080,7 @@
             },
             {
               "$type": "Document",
-              "DocumentIndex": 83,
+              "DocumentIndex": 124,
               "Title": "SeedDataHostedService.cs",
               "DocumentMoniker": "E:\\WIDESEAWCS\\InfrastructureWCS\\WIDESEAWCS_Server\\WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
               "RelativeDocumentMoniker": "WIDESEAWCS_Core\\HostedService\\SeedDataHostedService.cs",
@@ -1404,78 +2089,40 @@
               "ViewState": "AgIAAAUAAAAAAAAAAAAnwA4AAAA+AAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
               "WhenOpened": "2024-11-11T09:31:17.763Z"
-            },
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "FloatingWindowState": {
+        "Id": "82346c07-39be-4292-94d1-6ae77abb9458",
+        "Display": 0,
+        "X": 502,
+        "Y": 150,
+        "Width": 1423,
+        "Height": 781,
+        "WindowState": 0
+      },
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 0,
+          "Children": [
             {
               "$type": "Document",
-              "DocumentIndex": 84,
-              "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": "AgIAABUAAAAAAAAAAABIwD0AAAATAAAAAAAAAA==",
+              "DocumentIndex": 7,
+              "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": "AgIAAIEAAAAAAAAAAAAuwJsAAAAAAAAAAAAAAA==",
               "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:11:35.273Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 86,
-              "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": "AgIAAGwAAAAAAAAAAAAmwGwAAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:30:13.299Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 87,
-              "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": "AgIAAAAAAAAAAAAAAABIwB0AAABpAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:29:59.091Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 85,
-              "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": "AgIAAA4AAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T03:36:30.442Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 88,
-              "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": "AgIAAAAAAAAAAAAAAAAuwB8AAAAIAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:15:38.217Z"
-            },
-            {
-              "$type": "Document",
-              "DocumentIndex": 89,
-              "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": "AgIAAEwAAAAAAAAAAAAAwCQAAAAbAAAAAAAAAA==",
-              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
-              "WhenOpened": "2024-11-11T02:35:29.846Z"
+              "WhenOpened": "2024-11-11T06:53:45.876Z",
+              "EditorCaption": ""
             }
           ]
         }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
index 309bc2e..f1d4ae7 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/AllenBrandly/AllenBrandlyEtherNetCommunicator.cs
@@ -55,10 +55,19 @@
         #endregion Private Member
 
         #region Public Member
+        /// <summary>
+        /// 鏃ュ織璁板綍瀹炰緥瀵硅薄
+        /// </summary>
         public override ILogNet LogNet => _logNet;
 
+        /// <summary>
+        /// PLC鍚嶇О
+        /// </summary>
         public override string Name => _name;
 
+        /// <summary>  
+        /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
+        /// </summary>
         public override bool IsConnected => _connected;
 
         #endregion Public Member
@@ -336,6 +345,11 @@
         #endregion
 
         #region Public Method
+        /// <summary>  
+        /// 杩炴帴鍒癙LC銆�
+        /// </summary>  
+        /// <returns>濡傛灉杩炴帴鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse銆�</returns>
+        /// <exception cref="CommunicationException">鑷畾涔夐�氳寮傚父绫�</exception>
         public override bool Connect()
         {
             try
@@ -365,6 +379,10 @@
             }
         }
 
+        /// <summary>  
+        /// 鏂紑涓庡伐涓氳澶囩殑杩炴帴銆�  
+        /// </summary>  
+        /// <returns>濡傛灉鎴愬姛鏂紑杩炴帴鍒欒繑鍥瀟rue锛屽鏋滃凡缁忔槸鏂紑鐘舵�佸垯杩斿洖false銆�</returns>  
         public override bool Disconnect()
         {
             try
@@ -394,28 +412,59 @@
             GC.SuppressFinalize(this);
         }
 
+        /// <summary>  
+        /// 浠嶱LC璇诲彇鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="length">瑕佽鍙栫殑鏁版嵁闀垮害銆�</param>  
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栫┖鏁扮粍銆�</returns>  
         public override byte[] Read(string address, int length)
         {
             return (byte[])GetContent(plc.Read(address, (ushort)length), address);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override T Read<T>(string address)
         {
             Type type = typeof(T);
             return (T)Read(address, Type.GetTypeCode(type));
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="length">璇诲彇鐨勯暱搴︺��</param>
+        /// <returns></returns>
         public override T[] Read<T>(string address, ushort length)
         {
             Type type = typeof(T);
             return (T[])Read(address, Type.GetTypeCode(type), length);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">鏁版嵁绫诲瀷銆�</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override object ReadAsObj(string address, string dataType)
         {
             return Read(address, SiemensDBDataType.GetTypeCode(dataType));
         }
 
+        /// <summary>
+        /// 璇诲彇鑷畾涔夌殑鏁版嵁绫诲瀷锛岄渶瑕佺户鎵胯嚜IDataTransfer鎺ュ彛锛岃繑鍥炰竴涓柊鐨勭被鍨嬬殑瀹炰緥瀵硅薄銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>鎴愬姛杩斿洖鑷畾涔夌被鍨嬫暟鎹紝澶辫触鎶涘嚭寮傚父銆�</returns>
         public override T ReadCustomer<T>(string address)
         {
             try
@@ -429,6 +478,15 @@
             }
         }
 
+        /// <summary>
+        /// 绛夊緟鎸囧畾鍦板潃鐨勬硾鍨嬬被鍨嬪�间负鎸囧畾鐨勫��
+        /// </summary>
+        /// <typeparam name="T">鎸囧畾鐨勫�肩殑绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="readInterval">璇诲彇鐨勯鐜囥��</param>
+        /// <param name="waitTimeout">绛夊緟鐨勮秴鏃舵椂闂达紝濡傛灉瓒呮椂鏃堕棿涓�-1鐨勮瘽锛屽垯鏄棤鏈熼檺绛夊緟銆�</param>
+        /// <param name="value">绛夊緟妫�娴嬬殑鍊�</param>
+        /// <returns>鏄惁绛夊緟鎴愬姛鐨勭粨鏋滃璞★紝涓�鏃﹂�氫俊澶辫触锛屾垨鏄瓑寰呰秴鏃跺氨杩斿洖澶辫触銆傚惁鍒欒繑鍥炴垚鍔燂紝骞跺憡鐭ヨ皟鐢ㄦ柟绛夊緟浜嗗涔呫��</returns>
         public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
         {
             TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -465,6 +523,13 @@
             }
         }
 
+        /// <summary>  
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="data">瑕佸啓鍏ョ殑鏁版嵁銆�</param>  
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>  
+
         public override bool Write(string address, byte[] data)
         {
             try
@@ -487,16 +552,37 @@
             }
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public override bool Write<T>(string address, T value)
         {
             return GetResult(Write(address, value), address, value);
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="values">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns></returns>
         public override bool Write<T>(string address, T[] values)
         {
             return GetResult(Write(address, values), address, values);
         }
 
+        /// <summary>
+        /// 鍐欏叆鑷畾涔夌被鍨嬬殑鏁版嵁锛岃绫诲瀷蹇呴』缁ф壙鑷狪DataTransfer鎺ュ彛銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ユ暟鎹��</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
         public override bool WriteCustomer<T>(string address, [NotNull] T value)
         {
             StringBuilder stringBuilder = new StringBuilder();
@@ -550,6 +636,14 @@
             }
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
+        /// <exception cref="CommunicationException"></exception>
         public override bool WriteObj(string address, string dataType, object value)
         {
             bool obj = false;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
index 415fc24..0fbb5c0 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/BaseCommunicator.cs
@@ -79,7 +79,7 @@
         /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
         /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
         /// <param name="length">璇诲彇鐨勯暱搴︺��</param>
-        /// <returns></returns>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public abstract T[] Read<T>(string address, ushort length);
 
         /// <summary>
@@ -113,7 +113,7 @@
         /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
         /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
         /// <param name="values">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
-        /// <returns></returns>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public abstract bool Write<T>(string address, T[] values);
 
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CommunicationException.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CommunicationException.cs
index fab33bf..50096b5 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CommunicationException.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/CommunicationException.cs
@@ -110,6 +110,9 @@
         ReadException
     }
 
+    /// <summary>
+    /// 閫氳寮傚父淇℃伅
+    /// </summary>
     public class CommunicationExceptionMessage
     {
         /// <summary>
@@ -158,6 +161,9 @@
         public const string TypeConvertError = "鏁版嵁绫诲瀷杞崲閿欒锛屾暟鎹被鍨嬶細銆恵0}銆戯紝鍦板潃锛氥�恵1}銆戯紝鍐欏叆鐨勬暟鎹細銆恵2}銆戯紝閿欒淇℃伅锛氥�恵3}銆�";
     }
 
+    /// <summary>
+    /// 閫氳鏃ュ織璁板綍淇℃伅
+    /// </summary>
     public class CommunicationInfoMessage
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
index 9b37ae6..fef7815 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Inovance/InovanceTcpCommunicator.cs
@@ -39,10 +39,19 @@
         #endregion
 
         #region PublicMember
+        /// <summary>
+        /// 鏃ュ織璁板綍瀹炰緥瀵硅薄
+        /// </summary>
         public override ILogNet LogNet => _logNet;
 
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
         public override string Name => _name;
 
+        /// <summary>  
+        /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
+        /// </summary>
         public override bool IsConnected => _connected;
         #endregion
 
@@ -316,6 +325,10 @@
         #endregion
 
         #region PublicMethod
+        /// <summary>  
+        /// 杩炴帴鍒癙LC銆�
+        /// </summary>  
+        /// <returns>濡傛灉杩炴帴鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse銆�</returns>  
         public override bool Connect()
         {
             try
@@ -340,6 +353,10 @@
             }
         }
 
+        /// <summary>  
+        /// 鏂紑涓庡伐涓氳澶囩殑杩炴帴銆�  
+        /// </summary>  
+        /// <returns>濡傛灉鎴愬姛鏂紑杩炴帴鍒欒繑鍥瀟rue锛屽鏋滃凡缁忔槸鏂紑鐘舵�佸垯杩斿洖false銆�</returns>  
         public override bool Disconnect()
         {
             try
@@ -362,6 +379,9 @@
             }
         }
 
+        /// <summary>
+        /// 閲婃斁瀵硅薄璧勬簮鐨勬帴鍙c��
+        /// </summary>
         public override void Dispose()
         {
             _isPing = false;
@@ -370,27 +390,59 @@
             GC.SuppressFinalize(this);
         }
 
+        /// <summary>  
+        /// 浠嶱LC璇诲彇鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="length">瑕佽鍙栫殑鏁版嵁闀垮害銆�</param>  
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栫┖鏁扮粍銆�</returns>  
         public override byte[] Read(string address, int length)
         {
             return (byte[])GetContent(plc.Read(address, (ushort)length), address);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override T Read<T>(string address)
         {
             Type type = typeof(T);
             return (T)Read(address, Type.GetTypeCode(type));
         }
+
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="length">璇诲彇鐨勯暱搴︺��</param>
+        /// <returns></returns>
         public override T[] Read<T>(string address, ushort length)
         {
             Type type = typeof(T);
             return (T[])Read(address, Type.GetTypeCode(type), length);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">鏁版嵁绫诲瀷銆�</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override object ReadAsObj(string address, string dataType)
         {
             return Read(address, SiemensDBDataType.GetTypeCode(dataType));
         }
 
+        /// <summary>
+        /// 璇诲彇鑷畾涔夌殑鏁版嵁绫诲瀷锛岄渶瑕佺户鎵胯嚜IDataTransfer鎺ュ彛锛岃繑鍥炰竴涓柊鐨勭被鍨嬬殑瀹炰緥瀵硅薄銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>鎴愬姛杩斿洖鑷畾涔夌被鍨嬫暟鎹紝澶辫触鎶涘嚭寮傚父銆�</returns>
         public override T ReadCustomer<T>(string address)
         {
             throw new Exception("璇ユ柟娉曟殏涓嶅彲鐢�");
@@ -405,6 +457,15 @@
             //}
         }
 
+        /// <summary>
+        /// 绛夊緟鎸囧畾鍦板潃鐨勬硾鍨嬬被鍨嬪�间负鎸囧畾鐨勫��
+        /// </summary>
+        /// <typeparam name="T">鎸囧畾鐨勫�肩殑绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="readInterval">璇诲彇鐨勯鐜囥��</param>
+        /// <param name="waitTimeout">绛夊緟鐨勮秴鏃舵椂闂达紝濡傛灉瓒呮椂鏃堕棿涓�-1鐨勮瘽锛屽垯鏄棤鏈熼檺绛夊緟銆�</param>
+        /// <param name="value">绛夊緟妫�娴嬬殑鍊�</param>
+        /// <returns>鏄惁绛夊緟鎴愬姛鐨勭粨鏋滃璞★紝涓�鏃﹂�氫俊澶辫触锛屾垨鏄瓑寰呰秴鏃跺氨杩斿洖澶辫触銆傚惁鍒欒繑鍥炴垚鍔燂紝骞跺憡鐭ヨ皟鐢ㄦ柟绛夊緟浜嗗涔呫��</returns>
         public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
         {
             TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -441,6 +502,12 @@
             }
         }
 
+        /// <summary>  
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="data">瑕佸啓鍏ョ殑鏁版嵁銆�</param>  
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>  
         public override bool Write(string address, byte[] data)
         {
             try
@@ -463,17 +530,37 @@
             }
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public override bool Write<T>(string address, T value)
         {
             return GetResult(Write(address, value), address, value);
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="values">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public override bool Write<T>(string address, T[] values)
         {
             return GetResult(Write(address, values), address, values);
         }
 
-
+        /// <summary>
+        /// 鍐欏叆鑷畾涔夌被鍨嬬殑鏁版嵁锛岃绫诲瀷蹇呴』缁ф壙鑷狪DataTransfer鎺ュ彛銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ユ暟鎹��</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
         public override bool WriteCustomer<T>(string address, [NotNull] T value)
         {
             throw new Exception("璇ユ柟娉曟殏涓嶅彲鐢�");
@@ -528,6 +615,14 @@
             //}
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
+        /// <exception cref="CommunicationException"></exception>
         public override bool WriteObj(string address, string dataType, object value)
         {
             bool obj = false;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
index e4715bf..132b2df 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Modbus/ModbusTcpCommunicator.cs
@@ -39,10 +39,19 @@
         #endregion
 
         #region PublicMember
+        /// <summary>
+        /// 鏃ュ織璁板綍瀹炰緥瀵硅薄
+        /// </summary>
         public override ILogNet LogNet => _logNet;
 
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
         public override string Name => _name;
 
+        /// <summary>  
+        /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
+        /// </summary>
         public override bool IsConnected => _connected;
         #endregion
 
@@ -312,6 +321,10 @@
         #endregion
 
         #region PublicMethod
+        /// <summary>  
+        /// 杩炴帴鍒癙LC銆�
+        /// </summary>  
+        /// <returns>濡傛灉杩炴帴鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse銆�</returns>  
         public override bool Connect()
         {
             try
@@ -335,6 +348,10 @@
             }
         }
 
+        /// <summary>  
+        /// 鏂紑涓庡伐涓氳澶囩殑杩炴帴銆�  
+        /// </summary>  
+        /// <returns>濡傛灉鎴愬姛鏂紑杩炴帴鍒欒繑鍥瀟rue锛屽鏋滃凡缁忔槸鏂紑鐘舵�佸垯杩斿洖false銆�</returns>  
         public override bool Disconnect()
         {
             try
@@ -356,6 +373,9 @@
             }
         }
 
+        /// <summary>
+        /// 閲婃斁瀵硅薄璧勬簮鐨勬帴鍙c��
+        /// </summary>
         public override void Dispose()
         {
             _isPing = false;
@@ -364,27 +384,60 @@
             GC.SuppressFinalize(this);
         }
 
+        /// <summary>  
+        /// 浠嶱LC璇诲彇鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="length">瑕佽鍙栫殑鏁版嵁闀垮害銆�</param>  
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栫┖鏁扮粍銆�</returns>  
         public override byte[] Read(string address, int length)
         {
             return (byte[])GetContent(plc.Read(address, (ushort)length), address);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override T Read<T>(string address)
         {
             Type type = typeof(T);
             return (T)Read(address, Type.GetTypeCode(type));
         }
+
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="length">璇诲彇鐨勯暱搴︺��</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override T[] Read<T>(string address, ushort length)
         {
             Type type = typeof(T);
             return (T[])Read(address, Type.GetTypeCode(type), length);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">鏁版嵁绫诲瀷銆�</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override object ReadAsObj(string address, string dataType)
         {
             return Read(address, SiemensDBDataType.GetTypeCode(dataType));
         }
 
+
+        /// <summary>
+        /// 璇诲彇鑷畾涔夌殑鏁版嵁绫诲瀷锛岄渶瑕佺户鎵胯嚜IDataTransfer鎺ュ彛锛岃繑鍥炰竴涓柊鐨勭被鍨嬬殑瀹炰緥瀵硅薄銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>鎴愬姛杩斿洖鑷畾涔夌被鍨嬫暟鎹紝澶辫触鎶涘嚭寮傚父銆�</returns>
         public override T ReadCustomer<T>(string address)
         {
             throw new Exception("璇ユ柟娉曟殏涓嶅彲鐢�");
@@ -399,6 +452,15 @@
             //}
         }
 
+        /// <summary>
+        /// 绛夊緟鎸囧畾鍦板潃鐨勬硾鍨嬬被鍨嬪�间负鎸囧畾鐨勫��
+        /// </summary>
+        /// <typeparam name="T">鎸囧畾鐨勫�肩殑绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="readInterval">璇诲彇鐨勯鐜囥��</param>
+        /// <param name="waitTimeout">绛夊緟鐨勮秴鏃舵椂闂达紝濡傛灉瓒呮椂鏃堕棿涓�-1鐨勮瘽锛屽垯鏄棤鏈熼檺绛夊緟銆�</param>
+        /// <param name="value">绛夊緟妫�娴嬬殑鍊�</param>
+        /// <returns>鏄惁绛夊緟鎴愬姛鐨勭粨鏋滃璞★紝涓�鏃﹂�氫俊澶辫触锛屾垨鏄瓑寰呰秴鏃跺氨杩斿洖澶辫触銆傚惁鍒欒繑鍥炴垚鍔燂紝骞跺憡鐭ヨ皟鐢ㄦ柟绛夊緟浜嗗涔呫��</returns>
         public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
         {
             TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -435,6 +497,12 @@
             }
         }
 
+        /// <summary>  
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="data">瑕佸啓鍏ョ殑鏁版嵁銆�</param>  
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>  
         public override bool Write(string address, byte[] data)
         {
             try
@@ -457,15 +525,37 @@
             }
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public override bool Write<T>(string address, T value)
         {
             return GetResult(Write(address, value), address, value);
         }
+
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="values">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public override bool Write<T>(string address, T[] values)
         {
             return GetResult(Write(address, values), address, values);
         }
 
+        /// <summary>
+        /// 鍐欏叆鑷畾涔夌被鍨嬬殑鏁版嵁锛岃绫诲瀷蹇呴』缁ф壙鑷狪DataTransfer鎺ュ彛銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ユ暟鎹��</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
         public override bool WriteCustomer<T>(string address, [NotNull] T value)
         {
             throw new Exception("璇ユ柟娉曟殏涓嶅彲鐢�");
@@ -520,6 +610,14 @@
             //}
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
+        /// <exception cref="CommunicationException"></exception>
         public override bool WriteObj(string address, string dataType, object value)
         {
             bool obj = false;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
index 52a1111..c72b868 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Omron/OmronEtherNetCommunicator.cs
@@ -56,10 +56,19 @@
         #endregion Private Member
 
         #region Public Member
+        /// <summary>
+        /// 鏃ュ織璁板綍瀹炰緥瀵硅薄
+        /// </summary>
         public override ILogNet LogNet => _logNet;
 
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
         public override string Name => _name;
 
+        /// <summary>  
+        /// 鑾峰彇褰撳墠閫氳鍣ㄦ槸鍚﹀凡杩炴帴鍒癙LC銆�  
+        /// </summary>
         public override bool IsConnected => _connected;
 
         #endregion Public Member
@@ -330,6 +339,10 @@
         #endregion
 
         #region Public Method
+        /// <summary>  
+        /// 杩炴帴鍒癙LC銆�
+        /// </summary>  
+        /// <returns>濡傛灉杩炴帴鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欒繑鍥瀎alse銆�</returns>  
         public override bool Connect()
         {
             try
@@ -358,6 +371,10 @@
             }
         }
 
+        /// <summary>  
+        /// 鏂紑涓庡伐涓氳澶囩殑杩炴帴銆�  
+        /// </summary>  
+        /// <returns>濡傛灉鎴愬姛鏂紑杩炴帴鍒欒繑鍥瀟rue锛屽鏋滃凡缁忔槸鏂紑鐘舵�佸垯杩斿洖false銆�</returns>  
         public override bool Disconnect()
         {
             try
@@ -379,6 +396,9 @@
             }
         }
 
+        /// <summary>
+        /// 閲婃斁瀵硅薄璧勬簮鐨勬帴鍙c��
+        /// </summary>
         public override void Dispose()
         {
             _isPing = false;
@@ -387,28 +407,59 @@
             GC.SuppressFinalize(this);
         }
 
+        /// <summary>  
+        /// 浠嶱LC璇诲彇鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="length">瑕佽鍙栫殑鏁版嵁闀垮害銆�</param>  
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栫┖鏁扮粍銆�</returns>  
         public override byte[] Read(string address, int length)
         {
             return (byte[])GetContent(plc.Read(address, (ushort)length), address);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override T Read<T>(string address)
         {
             Type type = typeof(T);
             return (T)Read(address, Type.GetTypeCode(type));
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="T">璇诲彇鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="length">璇诲彇鐨勯暱搴︺��</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override T[] Read<T>(string address, ushort length)
         {
             Type type = typeof(T);
             return (T[])Read(address, Type.GetTypeCode(type), length);
         }
 
+        /// <summary>
+        /// 浠嶱LC璇诲彇鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">鏁版嵁绫诲瀷銆�</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁锛屽鏋滆鍙栧け璐ュ垯鍙兘杩斿洖null鎴栨姏鍑哄紓甯搞��</returns>
         public override object ReadAsObj(string address, string dataType)
         {
             return Read(address, SiemensDBDataType.GetTypeCode(dataType));
         }
 
+        /// <summary>
+        /// 璇诲彇鑷畾涔夌殑鏁版嵁绫诲瀷锛岄渶瑕佺户鎵胯嚜IDataTransfer鎺ュ彛锛岃繑鍥炰竴涓柊鐨勭被鍨嬬殑瀹炰緥瀵硅薄銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <returns>鎴愬姛杩斿洖鑷畾涔夌被鍨嬫暟鎹紝澶辫触鎶涘嚭寮傚父銆�</returns>
         public override T ReadCustomer<T>(string address)
         {
             try
@@ -422,6 +473,15 @@
             }
         }
 
+        /// <summary>
+        /// 绛夊緟鎸囧畾鍦板潃鐨勬硾鍨嬬被鍨嬪�间负鎸囧畾鐨勫��
+        /// </summary>
+        /// <typeparam name="T">鎸囧畾鐨勫�肩殑绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="readInterval">璇诲彇鐨勯鐜囥��</param>
+        /// <param name="waitTimeout">绛夊緟鐨勮秴鏃舵椂闂达紝濡傛灉瓒呮椂鏃堕棿涓�-1鐨勮瘽锛屽垯鏄棤鏈熼檺绛夊緟銆�</param>
+        /// <param name="value">绛夊緟妫�娴嬬殑鍊�</param>
+        /// <returns>鏄惁绛夊緟鎴愬姛鐨勭粨鏋滃璞★紝涓�鏃﹂�氫俊澶辫触锛屾垨鏄瓑寰呰秴鏃跺氨杩斿洖澶辫触銆傚惁鍒欒繑鍥炴垚鍔燂紝骞跺憡鐭ヨ皟鐢ㄦ柟绛夊緟浜嗗涔呫��</returns>
         public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
         {
             TypeCode typeCode = Type.GetTypeCode(typeof(T));
@@ -458,6 +518,12 @@
             }
         }
 
+        /// <summary>  
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>  
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>  
+        /// <param name="data">瑕佸啓鍏ョ殑鏁版嵁銆�</param>  
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>  
         public override bool Write(string address, byte[] data)
         {
             try
@@ -480,16 +546,37 @@
             }
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public override bool Write<T>(string address, T value)
         {
             return GetResult(Write(address, value), address, value);
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�  
+        /// </summary>
+        /// <typeparam name="T">鍐欏叆鏁版嵁鐨勭被鍨嬫硾鍨嬨��</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="values">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽惁鍒欐姏鍑哄紓甯搞��</returns>
         public override bool Write<T>(string address, T[] values)
         {
             return GetResult(Write(address, values), address, values);
         }
 
+        /// <summary>
+        /// 鍐欏叆鑷畾涔夌被鍨嬬殑鏁版嵁锛岃绫诲瀷蹇呴』缁ф壙鑷狪DataTransfer鎺ュ彛銆�
+        /// </summary>
+        /// <typeparam name="T">鑷畾涔夌殑鏁版嵁绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="value">瑕佸啓鍏ユ暟鎹��</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
         public override bool WriteCustomer<T>(string address, [NotNull] T value)
         {
             StringBuilder stringBuilder = new StringBuilder();
@@ -543,6 +630,14 @@
             }
         }
 
+        /// <summary>
+        /// 鍚慞LC鍐欏叆鏁版嵁銆�
+        /// </summary>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="dataType">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>濡傛灉鍐欏叆鎴愬姛鍒欒繑鍥瀟rue锛屽け璐ュ垯鎶涘嚭寮傚父銆�</returns>
+        /// <exception cref="CommunicationException"></exception>
         public override bool WriteObj(string address, string dataType, object value)
         {
             bool obj = false;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
index 2f1436a..bfb5a47 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/Siemens/SiemensS7Communicator.cs
@@ -84,6 +84,9 @@
         /// </summary>
         public override string Name => _name;
 
+        /// <summary>
+        /// PLC璇诲啓鏃ュ織璁板綍
+        /// </summary>
         public override ILogNet LogNet => _logNet;
         #endregion Public Member
 
@@ -722,7 +725,9 @@
         }
         #endregion
 
-        // 鏄惧紡瀹炵幇IDisposable鎺ュ彛浠ユ彁渚涘瀮鍦惧洖鏀舵椂鐨勬竻鐞�  
+        /// <summary>
+        /// 鏄惧紡瀹炵幇IDisposable鎺ュ彛浠ユ彁渚涘瀮鍦惧洖鏀舵椂鐨勬竻鐞�
+        /// </summary>
         public override void Dispose()
         {
             _isPing = false;
@@ -731,6 +736,15 @@
             GC.SuppressFinalize(this);
         }
 
+        /// <summary>
+        /// 绛夊緟鎸囧畾鍦板潃鐨勬硾鍨嬬被鍨嬪�间负鎸囧畾鐨勫��
+        /// </summary>
+        /// <typeparam name="T">鎸囧畾鐨勫�肩殑绫诲瀷娉涘瀷銆�</typeparam>
+        /// <param name="address">婧愬湴鍧�锛屽叿浣撴牸寮忓彇鍐充簬浣跨敤鐨勫伐涓氬崗璁��</param>
+        /// <param name="readInterval">璇诲彇鐨勯鐜囥��</param>
+        /// <param name="waitTimeout">绛夊緟鐨勮秴鏃舵椂闂达紝濡傛灉瓒呮椂鏃堕棿涓�-1鐨勮瘽锛屽垯鏄棤鏈熼檺绛夊緟銆�</param>
+        /// <param name="value">绛夊緟妫�娴嬬殑鍊�</param>
+        /// <returns>鏄惁绛夊緟鎴愬姛鐨勭粨鏋滃璞★紝涓�鏃﹂�氫俊澶辫触锛屾垨鏄瓑寰呰秴鏃跺氨杩斿洖澶辫触銆傚惁鍒欒繑鍥炴垚鍔燂紝骞跺憡鐭ヨ皟鐢ㄦ柟绛夊緟浜嗗涔呫��</returns>
         public override OperateResult<TimeSpan> Wait<T>(string address, int readInterval, int waitTimeout, T value)
         {
             TypeCode typeCode = Type.GetTypeCode(typeof(T));
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
index 26e5603..0783801 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Communicator/WIDESEAWCS_Communicator.csproj
@@ -4,8 +4,13 @@
 		<TargetFramework>net6.0</TargetFramework>
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
-		<Version>2.2.2</Version>
-		<Description>鏂板鍚岀被鍨嬫暟鎹鍙�/鍐欏叆鎸囧畾闀垮害鏂规硶</Description>
+		<Version>2.2.3</Version>
+		<Description>
+			鏂板鍚岀被鍨嬫暟鎹鍙�/鍐欏叆鎸囧畾闀垮害鏂规硶
+			
+			2025-01-02锛氭坊鍔犳敞閲�
+		</Description>
+		<GenerateDocumentationFile>True</GenerateDocumentationFile>
 	</PropertyGroup>
 
 	<ItemGroup>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/IRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/IRepository.cs
index a2702d9..9b74e22 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/IRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/IRepository.cs
@@ -7,6 +7,7 @@
 using System.Linq.Expressions;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Core.Enums;
 
 namespace WIDESEAWCS_Core.BaseRepository
 {
@@ -408,11 +409,8 @@
             int pageSize = 20,
             string? orderByFields = null);
 
+        bool DeleteAndMoveIntoHty(TEntity entity, OperateTypeEnum operateType);
 
-        //List<TResult> QueryMuch<T, T2, T3, TResult>(
-        //    Expression<Func<T, T2, T3, object[]>> joinExpression,
-        //    Expression<Func<T, T2, T3, TResult>> selectExpression,
-        //    Expression<Func<T, T2, T3, bool>> whereLambda = null) where T : class, new();
-        //Task<PageModel<TEntity>> QueryPage(PaginationModel pagination);
+        bool DeleteAndMoveIntoHty(List<TEntity> entities, OperateTypeEnum operateType);
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs
index 77621f8..abd69a2 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseRepository/RepositoryBase.cs
@@ -16,6 +16,9 @@
 using WIDESEAWCS_Core.Const;
 using WIDESEAWCS_Core.AOP;
 using OfficeOpenXml.FormulaParsing.ExpressionGraph;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Utilities;
+using WIDESEAWCS_Core.Enums;
 
 namespace WIDESEAWCS_Core.BaseRepository
 {
@@ -846,10 +849,102 @@
              .WhereIF(whereExpression != null, whereExpression).ToListAsync();
         }
 
-        //List<TResult> QueryMuch<T, T2, T3, TResult>(
-        //    Expression<Func<T, T2, T3, object[]>> joinExpression,
-        //    Expression<Func<T, T2, T3, TResult>> selectExpression,
-        //    Expression<Func<T, T2, T3, bool>> whereLambda = null) where T : class, new(){throw new NotImplementedException();}
-        //Task<PageModel<TEntity>> QueryPage(PaginationModel pagination){throw new NotImplementedException();}
+        public bool DeleteAndMoveIntoHty(TEntity entity, OperateTypeEnum operateType)
+        {
+            Type type = entity.GetType();
+            Assembly assembly = type.Assembly;
+            Type? htyType = assembly.GetType(type.FullName + "_Hty");
+            if (htyType != null)
+            {
+                object? obj = Activator.CreateInstance(htyType);
+                PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
+                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
+                PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
+                if (obj != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
+                {
+                    operateTypePro.SetValue(obj, operateType.ToString());
+                    sourceIdPro.SetValue(obj, keyPro.GetValue(entity));
+
+                    List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList();
+
+                    for (int i = 0; i < propertyInfos.Count; i++)
+                    {
+                        PropertyInfo propertyInfo = propertyInfos[i];
+                        PropertyInfo? property = type.GetProperty(propertyInfo.Name);
+
+                        if (property != null)
+                        {
+                            if (propertyInfo.Name == nameof(BaseEntity.Modifier))
+                            {
+                                propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System");
+                            }
+                            else if (propertyInfo.Name == nameof(BaseEntity.ModifyDate))
+                            {
+                                propertyInfo.SetValue(obj, DateTime.Now);
+                            }
+                            else
+                            {
+                                propertyInfo.SetValue(obj, property.GetValue(entity));
+                            }
+                        }
+                    }
+                    _db.InsertableByObject(obj).AS(type.Name + "_Hty").ExecuteCommand();
+                }
+            }
+            return DeleteData(entity);
+        }
+
+        public bool DeleteAndMoveIntoHty(List<TEntity> entities, OperateTypeEnum operateType)
+        {
+            Type type = typeof(TEntity);
+            Assembly assembly = type.Assembly;
+            Type? htyType = assembly.GetType(type.FullName + "_Hty");
+            if (htyType != null)
+            {
+                object? obj2 = Activator.CreateInstance(htyType);
+                PropertyInfo keyPro = typeof(TEntity).GetKeyProperty();
+                PropertyInfo? operateTypePro = htyType.GetProperty(nameof(IBaseHistoryEntity.OperateType));
+                PropertyInfo? sourceIdPro = htyType.GetProperty(nameof(IBaseHistoryEntity.SourceId));
+                if (obj2 != null && keyPro != null && operateTypePro != null && sourceIdPro != null)
+                {
+                    List<PropertyInfo> propertyInfos = htyType.GetProperties().Where(x => x.Name != operateTypePro.Name && x.Name != sourceIdPro.Name && x.Name != keyPro.Name).ToList();
+                    List<object> list = new List<object>();
+                    foreach (var item in entities)
+                    {
+                        object? obj = Activator.CreateInstance(htyType);
+                        if (obj != null)
+                        {
+                            operateTypePro.SetValue(obj, operateType.ToString());
+                            sourceIdPro.SetValue(obj, keyPro.GetValue(item));
+                            for (int i = 0; i < propertyInfos.Count; i++)
+                            {
+                                PropertyInfo propertyInfo = propertyInfos[i];
+                                PropertyInfo? property = type.GetProperty(propertyInfo.Name);
+
+                                if (property != null)
+                                {
+                                    if (propertyInfo.Name == nameof(BaseEntity.Modifier))
+                                    {
+                                        propertyInfo.SetValue(obj, App.User.UserId > 0 ? App.User.UserName : "System");
+                                    }
+                                    else if (propertyInfo.Name == nameof(BaseEntity.ModifyDate))
+                                    {
+                                        propertyInfo.SetValue(obj, DateTime.Now);
+                                    }
+                                    else
+                                    {
+                                        propertyInfo.SetValue(obj, property.GetValue(item));
+                                    }
+                                }
+                            }
+                            list.Add(obj);
+                        }
+                    }
+                    _db.InsertableByObject(list).AS(type.Name + "_Hty").ExecuteCommand();
+
+                }
+            }
+            return DeleteData(entities);
+        }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
index 2f7b0b1..4493b69 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/BaseServices/ServiceBase.cs
@@ -49,17 +49,23 @@
 
         public virtual PageGridData<TEntity> GetPageData(PageDataOptions options)
         {
-            string wheres = ValidatePageOptions(options);
+            ISugarQueryable<TEntity> sugarQueryable = Db.Queryable<TEntity>();
+
+            string wheres = ValidatePageOptions(options, ref sugarQueryable);
             //鑾峰彇鎺掑簭瀛楁
             Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
-
+            int total = 0;
             PageGridData<TEntity> pageGridData = new PageGridData<TEntity>();
-            pageGridData = BaseDal.QueryPage(wheres, options.Page, options.Rows, orderbyDic);
+
+            pageGridData.Rows = sugarQueryable.ToPageList(options.Page, options.Rows, ref total);
+            pageGridData.Total = total;
+
+            //pageGridData = BaseDal.QueryPage(wheres, options.Page, options.Rows, orderbyDic);
 
             return pageGridData;
         }
 
-        protected string ValidatePageOptions(PageDataOptions options)
+        protected string ValidatePageOptions(PageDataOptions options, ref ISugarQueryable<TEntity> sugarQueryable)
         {
             options = options ?? new PageDataOptions();
             string where = "";
@@ -86,7 +92,7 @@
                     continue;
                 }
 
-                PropertyInfo property = TProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
+                PropertyInfo? property = TProperties.Where(c => c.Name.ToUpper() == searchParametersList[i].Name.ToUpper()).FirstOrDefault();
 
                 if (property == null) continue;
 
@@ -97,53 +103,124 @@
                 }
                 for (int j = 0; j < results.Count(); j++)
                 {
-                    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}'";
-                    }
+                    Expression<Func<TEntity, bool>> expression = GetWhereExpression(property.Name, results[j].Item3, null, expressionType);
+                    sugarQueryable = sugarQueryable.Where(expression);
 
-                    if (j == results.Count() - 1)
-                    {
-                        where += ")";
-                    }
-                    else
-                    {
-                        where += " or ";
-                    }
+                    //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 ";
+                //if (i < searchParametersList.Count - 1)
+                //    where += " and ";
             }
             return where;
+        }
+
+        private Expression<Func<TEntity, bool>> GetWhereExpression(string propertyName, object propertyValue, ParameterExpression parameter, LinqExpressionType expressionType)
+        {
+            Type? proType = typeof(TEntity).GetProperty(propertyName)?.PropertyType;
+            if (proType == null) return p => true;
+            if (propertyValue == null) return p => true;
+            string? value = propertyValue?.ToString();
+            if (value == null) return p => true;
+            ConstantExpression constant = proType.ToString() == "System.String"
+               ? Expression.Constant(propertyValue) : Expression.Constant(value.ChangeType(proType));
+
+            // DateTime鍙�夋嫨浜嗘棩鏈熺殑鏃跺�欒嚜鍔ㄥ湪缁撴潫鏃ユ湡鍔犱竴澶╋紝淇DateTime绫诲瀷浣跨敤鏃ユ湡鍖洪棿鏌ヨ鏃犳硶鏌ヨ鍒扮粨鏉熸棩鏈熺殑闂
+            if ((proType == typeof(DateTime) || proType == typeof(DateTime?)) && expressionType == LinqExpressionType.LessThanOrEqual && value.Length == 10)
+            {
+                constant = Expression.Constant(Convert.ToDateTime(value).AddDays(1));
+            }
+            parameter = parameter ?? Expression.Parameter(typeof(TEntity), "x");
+            //鍒涘缓鑺傜偣鐨勫睘鎬=>p.name 灞炴�ame
+            MemberExpression memberProperty = Expression.PropertyOrField(parameter, propertyName);
+            UnaryExpression member = Expression.Convert(memberProperty, constant.Type);
+            Expression<Func<TEntity, bool>> expression = p => false;
+            switch (expressionType)
+            {
+                case LinqExpressionType.Equal:
+                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.Equal(member, constant), parameter);
+                    break;
+                case LinqExpressionType.NotEqual:
+                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.NotEqual(member, constant), parameter);
+                    break;
+                case LinqExpressionType.GreaterThan:
+                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.GreaterThan(member, constant), parameter);
+                    break;
+                case LinqExpressionType.LessThan:
+                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.LessThan(member, constant), parameter);
+                    break;
+                case LinqExpressionType.ThanOrEqual:
+                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.GreaterThanOrEqual(member, constant), parameter);
+                    break;
+                case LinqExpressionType.LessThanOrEqual:
+                    expression = Expression.Lambda<Func<TEntity, bool>>(Expression.LessThanOrEqual(member, constant), parameter);
+                    break;
+                case LinqExpressionType.Contains:
+                case LinqExpressionType.NotContains:
+                    MethodInfo? method = typeof(string).GetMethod("Contains", new[] { typeof(string) });
+                    if (method != null)
+                    {
+                        constant = Expression.Constant(propertyValue, typeof(string));
+                        if (expressionType == LinqExpressionType.Contains)
+                        {
+                            expression = Expression.Lambda<Func<TEntity, bool>>(Expression.Call(member, method, constant), parameter);
+                        }
+                        else
+                        {
+                            expression = Expression.Lambda<Func<TEntity, bool>>(Expression.Not(Expression.Call(member, method, constant)), parameter);
+                        }
+                    }
+                    else
+                    {
+                        expression = p => true;
+                    }
+                    break;
+                default:
+                    expression = p => false;
+                    break;
+            }
+            return expression;
         }
 
         /// <summary>
@@ -620,10 +697,10 @@
             try
             {
                 Type t = typeof(TEntity);
-
+                ISugarQueryable<TEntity> sugarQueryable = Db.Queryable<TEntity>();
                 string savePath = AppDomain.CurrentDomain.BaseDirectory + $"ExcelExport";
                 IExporter exporter = new ExcelExporter();
-                string wheres = ValidatePageOptions(options);
+                string wheres = ValidatePageOptions(options, ref sugarQueryable);
                 //鑾峰彇鎺掑簭瀛楁
                 Dictionary<string, OrderByType> orderbyDic = GetPageDataSort(options, TProperties);
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/Models/IBaseHistoryEntity.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/Models/IBaseHistoryEntity.cs
new file mode 100644
index 0000000..534c60a
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/DB/Models/IBaseHistoryEntity.cs
@@ -0,0 +1,37 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Core.DB.Models
+{
+    public interface IBaseHistoryEntity
+    {
+        /// <summary>
+        /// 鍘熻〃涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "鍘熻〃涓婚敭")]
+        [ExporterHeader(DisplayName = "鍘熻〃涓婚敭")]
+        [SugarColumn(IsNullable = false, DefaultValue = "0", ColumnDescription = "鍘熻〃涓婚敭")]
+        public int SourceId { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "鎿嶄綔绫诲瀷")]
+        [ExporterHeader(DisplayName = "鎿嶄綔绫诲瀷")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎿嶄綔绫诲瀷")]
+        public string OperateType { get; set; }
+
+        /// <summary>
+        /// 绉诲叆鍘嗗彶鏃堕棿
+        /// </summary>
+        [ImporterHeader(Name = "绉诲叆鍘嗗彶鏃堕棿")]
+        [ExporterHeader(DisplayName = "绉诲叆鍘嗗彶鏃堕棿")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "绉诲叆鍘嗗彶鏃堕棿")]
+        public DateTime InsertTime { get; set; }
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/OperateTypeEnum.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/OperateTypeEnum.cs
new file mode 100644
index 0000000..55edce1
--- /dev/null
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Enums/OperateTypeEnum.cs
@@ -0,0 +1,20 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Core.Enums
+{
+    public enum OperateTypeEnum
+    {
+        浜哄伐鍒犻櫎 = 1,
+        鑷姩鍒犻櫎 = 2,
+        浜哄伐鎭㈠ = 3,
+        鑷姩鎭㈠ = 4,
+        浜哄伐瀹屾垚 = 5,
+        鑷姩瀹屾垚 = 6,
+        鍏抽棴 = 7,
+        鍏朵粬 = 99
+    }
+}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
index dd89d76..6d22011 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
@@ -4,6 +4,7 @@
 using System.Net.Http.Headers;
 using System.Text;
 using System.Threading.Tasks;
+using WIDESEAWCS_Core.LogHelper;
 
 namespace WIDESEAWCS_Core.Helper
 {
@@ -11,38 +12,49 @@
     {
         public static async Task<string> GetAsync(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
             try
             {
-                string result = string.Empty;
                 using HttpClient httpClient = new HttpClient();
                 httpClient.Timeout = new TimeSpan(0, 0, 60);
 
-                foreach (var header in headers)
-                    httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                if (headers != null)
+                {
+                    foreach (var header in headers)
+                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                }
 
                 result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync();
                 return result;
             }
             catch (Exception e)
             {
-                Console.WriteLine(e.Message);
+                throw new Exception(e.Message);
             }
-            return null;
+            finally
+            {
+                Logger.Add(serviceAddress, "", result, beginDate);
+            }
         }
 
-        public static async Task<string> PostAsync(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
+        public static async Task<string?> PostAsync(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
             try
             {
-                string result = string.Empty;
                 using (HttpContent httpContent = new StringContent(requestJson))
                 {
                     httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                     using HttpClient httpClient = new HttpClient();
                     httpClient.Timeout = new TimeSpan(0, 0, 60);
 
-                    foreach (var header in headers)
-                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
 
                     result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync();
                 }
@@ -50,45 +62,59 @@
             }
             catch (Exception e)
             {
-                Console.WriteLine(e.Message);
+                throw new Exception(e.Message);
             }
-            return null;
+            finally
+            {
+                Logger.Add(serviceAddress, requestJson == null ? "": requestJson, result, beginDate);
+            }
         }
 
         public static string Get(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
             try
             {
-                string result = string.Empty;
                 using HttpClient httpClient = new HttpClient();
                 httpClient.Timeout = new TimeSpan(0, 0, 60);
 
-                foreach (var header in headers)
-                    httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                if (headers != null)
+                {
+                    foreach (var header in headers)
+                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                }
 
                 result = httpClient.GetStringAsync(serviceAddress).Result;
                 return result;
             }
             catch (Exception e)
             {
-                Console.WriteLine(e.Message);
+                throw new Exception(e.Message);
             }
-            return null;
+            finally
+            {
+                Logger.Add(serviceAddress, "", result, beginDate);
+            }
         }
 
         public static string Post(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
             try
             {
-                string result = string.Empty;
                 using (HttpContent httpContent = new StringContent(requestJson))
                 {
                     httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                     using HttpClient httpClient = new HttpClient();
                     httpClient.Timeout = new TimeSpan(0, 0, 60);
 
-                    foreach (var header in headers)
-                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
 
                     result = httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync().Result;
                 }
@@ -96,9 +122,12 @@
             }
             catch (Exception e)
             {
-                Console.WriteLine(e.Message);
+                throw new Exception(e.Message);
             }
-            return null;
+            finally
+            {
+                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
+            }
         }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs b/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
index 17a2043..38b349d 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/LogHelper/Logger.cs
@@ -128,13 +128,60 @@
             return queueTable;
         }
 
+        public static void Add(string url, string requestParameter, string responseParameter, DateTime beginDate)
+        {
+            dynamic? log = null;
+            try
+            {
+                //鑾峰彇褰撳墠鐢ㄦ埛
+                IUser? user = App.User;
+                //鍒涘缓鏃ュ織瀵硅薄
+                log = new
+                {
+                    //璇锋眰寮�濮嬫椂闂�
+                    BeginDate = beginDate,
+                    //璇锋眰缁撴潫鏃堕棿
+                    EndDate = DateTime.Now,
+                    //璇锋眰鍙傛暟
+                    RequestParam = requestParameter,
+                    //鍝嶅簲鍙傛暟
+                    ResponseParam = responseParameter,
+                    //璇锋眰URL
+                    Url = url,
+                    //瀹㈡埛绔疘P
+                    UserIP = "",
+                    //鐢ㄦ埛ID
+                    UserId = user?.UserId,
+                    //鐢ㄦ埛鍚�
+                    UserName = user?.UserName
+                };
+            }
+            catch (Exception exception)
+            {
+                //濡傛灉鍙戠敓寮傚父锛屽垯鍒涘缓鏃ュ織瀵硅薄
+                log = log ?? new
+                {
+                    //璇锋眰寮�濮嬫椂闂�
+                    BeginDate = DateTime.Now,
+                    //璇锋眰缁撴潫鏃堕棿
+                    EndDate = DateTime.Now,
+                    //璇锋眰鍙傛暟
+                    RequestParam = requestParameter,
+                    //鍝嶅簲鍙傛暟
+                    ResponseParam = responseParameter,
+                };
+            }
+            //娣诲姞绯荤粺鏃ュ織
+            loggerQueueData.Enqueue(log);
+        }
+
         public static void Add(string requestParameter, string responseParameter)
         {
-            dynamic log = null;
+            dynamic? log = null;
             try
             {
                 //鑾峰彇褰撳墠HttpContext
-                HttpContext context = App.HttpContext;
+                HttpContext? context = App.HttpContext;
                 //濡傛灉HttpContext涓虹┖锛屽垯杩斿洖
                 if (context == null)
                 {
@@ -146,7 +193,7 @@
                 RequestLogModel logModel = (context.RequestServices.GetService(typeof(RequestLogModel)) as RequestLogModel) ?? new RequestLogModel { RequestDate = DateTime.Now };
 
                 //鑾峰彇褰撳墠鐢ㄦ埛
-                IUser user = App.User;
+                IUser? user = App.User;
                 //鍒涘缓鏃ュ織瀵硅薄
                 log = new
                 {
@@ -163,9 +210,9 @@
                     //瀹㈡埛绔疘P
                     UserIP = GetClientIP(context)?.Replace("::ffff:", ""),
                     //鐢ㄦ埛ID
-                    UserId = user.UserId,
+                    UserId = user?.UserId,
                     //鐢ㄦ埛鍚�
-                    UserName = user.UserName
+                    UserName = user?.UserName
                 };
             }
             catch (Exception exception)
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj b/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
index 855f89b..95b511d 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_Core/WIDESEAWCS_Core.csproj
@@ -4,8 +4,9 @@
 		<TargetFramework>net6.0</TargetFramework>
 		<ImplicitUsings>enable</ImplicitUsings>
 		<Nullable>enable</Nullable>
-		<Version>1.0.6</Version>
-		<Description>娣诲姞搴忓垪鐗规�э紝鍙嚜鍔ㄨ祴鍊�</Description>
+		<Version>1.0.10</Version>
+		<Description>娣诲姞鍒犻櫎骞剁Щ鍏ュ巻鍙叉柟娉曪紙娣诲姞IBaseHistoryEntity锛屼娇鐢ㄨ鏂规硶鏃跺繀椤诲疄鐜癐BaseHistoryEntity锛�</Description>
+		<GenerateDocumentationFile>false</GenerateDocumentationFile>
 	</PropertyGroup>
 
 	<ItemGroup>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
index e3d5c36..3bd6d52 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -30,6 +30,9 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 杈撻�佺嚎瀹炵幇瀵硅薄
+    /// </summary>
     [Description("杈撻�佺嚎")]
     public class CommonConveyorLine : IConveyorLine
     {
@@ -238,9 +241,9 @@
         }
 
         /// <summary>
-        /// 
+        /// 鏄惁鍗犱綅
         /// </summary>
-        /// <param name="deviceChildCode"></param>
+        /// <param name="deviceChildCode">璁惧瀛愮紪鍙�</param>
         /// <returns></returns>
         /// <exception cref="Exception"></exception>
         public bool IsOccupied(string deviceChildCode)
@@ -270,6 +273,9 @@
             return false;
         }
 
+        /// <summary>
+        /// 閲婃斁瀵硅薄
+        /// </summary>
         public void Dispose()
         {
             // 璁剧疆蹇冭烦鐘舵�佷负false
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/Enum/ConveyorLineStatus.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/Enum/ConveyorLineStatus.cs
index cce64f5..6d2e51b 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/Enum/ConveyorLineStatus.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/Enum/ConveyorLineStatus.cs
@@ -7,6 +7,9 @@
 
 namespace WIDESEAWCS_QuartzJob.ConveyorLine.Enum
 {
+    /// <summary>
+    /// 杈撻�佺嚎鐘舵�佹灇涓�
+    /// </summary>
     public enum ConveyorLineStatus
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs
index b9b912e..bb87b3b 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/IConveyorLine.cs
@@ -68,6 +68,7 @@
         /// </summary>
         /// <typeparam name="T">浠诲姟鍛戒护瀵硅薄鐨勭被鍨嬫硾鍨�</typeparam>
         /// <param name="command">浠诲姟鍛戒护</param>
+        /// <param name="deviceChildCode">璁惧瀛愮紪鍙�</param>
         /// <returns></returns>
         bool SendCommand<T>(T command, string deviceChildCode) where T : IDataTransfer, new();
     }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/CustomException/QuartzJobException.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/CustomException/QuartzJobException.cs
index b2ce178..b9920ec 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/CustomException/QuartzJobException.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/CustomException/QuartzJobException.cs
@@ -40,8 +40,14 @@
         /// </summary>
         public string ErrorType { get; }
 
+        /// <summary>
+        /// 寮傚父瀵硅薄
+        /// </summary>
         public Exception? BaseException { get; }
 
+        /// <summary>
+        /// 閿欒淇℃伅
+        /// </summary>
         public override string Message => _message;
 
         private string _message;
@@ -61,13 +67,19 @@
             _message = message;
         }
 
+        /// <summary>
+        /// 杞瓧绗︿覆
+        /// </summary>
+        /// <returns></returns>
         public override string ToString()
         {
             return base.ToString();
         }
     }
 
-
+    /// <summary>
+    /// 
+    /// </summary>
     public enum QuartzJobErrorType
     {
         /// <summary>
@@ -96,18 +108,39 @@
     /// </summary>
     public class QuartzJobExceptionMessage
     {
+        /// <summary>
+        /// 
+        /// </summary>
         public const string StartJobException = "璋冨害鏈嶅姟寮�鍚紓甯革紝閿欒淇℃伅:{0}";
 
+        /// <summary>
+        /// 
+        /// </summary>
         public const string StopJobException = "璋冨害鏈嶅姟鍋滄寮傚父锛岄敊璇俊鎭�:{0}";
 
+        /// <summary>
+        /// 
+        /// </summary>
         public const string AddJobException = "璋冨害璁″垝娣诲姞寮傚父锛氥�恵0}銆戯紝閿欒淇℃伅:{1}";
 
+        /// <summary>
+        /// 
+        /// </summary>
         public const string JobFactoryInstanceException = "浠嶧actory涓幏鍙朣cheduler瀹炰緥寮傚父锛岄敊璇俊鎭�:{0}";
 
+        /// <summary>
+        /// 
+        /// </summary>
         public const string StopAJobException = "璋冨害璁″垝銆恵0}銆戝仠姝㈠紓甯革紝閿欒淇℃伅:{1}";
 
+        /// <summary>
+        /// 
+        /// </summary>
         public const string ResumeJobException = "璋冨害璁″垝銆恵0}銆戞仮澶嶅紓甯革紝閿欒淇℃伅:{1}";
 
+        /// <summary>
+        /// 
+        /// </summary>
         public const string ExecuteJobException = "绔嬪嵆鎵ц璋冨害璁″垝锛氥�恵0}銆戝紓甯革紝閿欒淇℃伅:{1}";
     }
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceInfoDTO.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceInfoDTO.cs
index bd968e3..763f508 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceInfoDTO.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceInfoDTO.cs
@@ -25,6 +25,9 @@
 
 namespace WIDESEAWCS_QuartzJob.DTO
 {
+    /// <summary>
+    /// 璁惧淇℃伅DTO
+    /// </summary>
     public class DeviceInfoDTO : Dt_DeviceInfo
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProDTO.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProDTO.cs
index 13943a8..64d5659 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProDTO.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProDTO.cs
@@ -24,6 +24,9 @@
 
 namespace WIDESEAWCS_QuartzJob.DTO
 {
+    /// <summary>
+    /// 璁惧鍗忚淇℃伅DTO
+    /// </summary>
     public class DeviceProDTO
     {
         /// <summary>
@@ -31,6 +34,9 @@
         /// </summary>
         public int DeviceProId { get; set; }
 
+        /// <summary>
+        /// 璁惧PLC绫诲瀷
+        /// </summary>
         public string DevicePlcType { get; set; }
 
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProtocolDetailDTO.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProtocolDetailDTO.cs
index 1ab0a65..52d853a 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProtocolDetailDTO.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DeviceProtocolDetailDTO.cs
@@ -23,6 +23,9 @@
 
 namespace WIDESEAWCS_QuartzJob.DTO
 {
+    /// <summary>
+    /// 璁惧鍗忚鏄庣粏DTO
+    /// </summary>
     public class DeviceProtocolDetailDTO
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs
index c71c84a..2010003 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/DispatchInfoDTO.cs
@@ -24,6 +24,9 @@
 
 namespace WIDESEAWCS_QuartzJob.DTO
 {
+    /// <summary>
+    /// 璋冨害鏈嶅姟閰嶇疆DTO
+    /// </summary>
     public class DispatchInfoDTO : Dt_DispatchInfo
     {
         /// <summary>
@@ -41,8 +44,9 @@
         /// </summary>
         public string DeviceType { get; set; }
 
+        /// <summary>
+        /// 鍚敤/绂佺敤
+        /// </summary>
         public string Enable { get; set; }
-
-        
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs
index 792571f..df0daef 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DTO/RoutersAddDTO.cs
@@ -6,6 +6,9 @@
 
 namespace WIDESEAWCS_DTO.BasicInfo
 {
+    /// <summary>
+    /// 璺敱娣诲姞DTO
+    /// </summary>
     public class RoutersAddDTO
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/CustomException/StackerCraneException.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/CustomException/StackerCraneException.cs
deleted file mode 100644
index 72ffba7..0000000
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/CustomException/StackerCraneException.cs
+++ /dev/null
@@ -1,12 +0,0 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace WIDESEAWCS_QuartzJob.DeviceBase.CustomException
-{
-    internal class StackerCraneException
-    {
-    }
-}
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DataLengthAttribute.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DataLengthAttribute.cs
index 8be1e83..bd7676c 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DataLengthAttribute.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DataLengthAttribute.cs
@@ -23,14 +23,23 @@
 
 namespace WIDESEAWCS_QuartzJob.DeviceBase
 {
+    /// <summary>
+    /// 瀛楃涓查暱搴︾壒鎬�
+    /// </summary>
     [AttributeUsage(AttributeTargets.Property)]
     public class DataLengthAttribute : Attribute
     {
-        public DataLengthAttribute(ushort dataLength) 
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        public DataLengthAttribute(ushort dataLength)
         {
             DataLength = dataLength;
         }
 
+        /// <summary>
+        /// 瀛楃涓查暱搴�
+        /// </summary>
         public ushort DataLength { get; set; }
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs
index adf69f5..a9b12ce 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceCommand.cs
@@ -35,6 +35,9 @@
         #endregion <Const>
 
         #region <Private Member>
+        /// <summary>
+        /// 鏁版嵁闀垮害
+        /// </summary>
         public ushort ReadCount { get; }
 
         private IByteTransform byteTransform = new ReverseBytesTransform();
@@ -45,6 +48,10 @@
         #endregion <Public Menber>
 
         #region <Constructor function>
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        /// <exception cref="NotSupportedException"></exception>
         public DeviceCommand()
         {
             ushort readCount = 0;
@@ -105,6 +112,11 @@
         #endregion <Private Method>
 
         #region <Public Method>
+        /// <summary>
+        /// 鏁版嵁瑁呮崲
+        /// </summary>
+        /// <param name="Content"></param>
+        /// <exception cref="NotSupportedException"></exception>
         public void ParseSource(byte[] Content)
         {
             PropertyInfo[] propertyInfos = GetType().GetProperties().Where(x => x.CanWrite).ToArray();
@@ -156,6 +168,12 @@
             }
         }
 
+        /// <summary>
+        /// 鏁版嵁杞崲
+        /// </summary>
+        /// <returns></returns>
+        /// <exception cref="Exception"></exception>
+        /// <exception cref="NotSupportedException"></exception>
         public byte[] ToSource()
         {
             int propertyValueHasNull = -1;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceStatus.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceStatus.cs
index 35f5287..da098df 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceStatus.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceBase/DeviceStatus.cs
@@ -23,6 +23,9 @@
 
 namespace WIDESEAWCS_QuartzJob.DeviceBase
 {
+    /// <summary>
+    /// 璁惧鐘舵�佹灇涓�
+    /// </summary>
     public enum DeviceStatus
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceEnum/DeviceStatus.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceEnum/DeviceStatus.cs
index afa6d57..23eec6e 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceEnum/DeviceStatus.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/DeviceEnum/DeviceStatus.cs
@@ -24,6 +24,9 @@
 
 namespace WIDESEAWCS_QuartzJob.DeviceEnum
 {
+    /// <summary>
+    /// 璁惧鍚敤绂佺敤鐘舵�佹灇涓�
+    /// </summary>
     public enum DeviceStatusEnum
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs
index dd3e149..b288253 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/JobBase.cs
@@ -10,6 +10,9 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// Job鍩虹被锛屼富瑕佺粰瀛愮被缁ф壙璁板綍鏃ュ織鏂规硶
+    /// </summary>
     public class JobBase
     {
         /// <summary>
@@ -51,8 +54,8 @@
         /// <summary>
         /// 鍐欏叆璋冭瘯鏃ュ織
         /// </summary>
-        /// <param name="fileName"></param>
-        /// <param name="msg"></param>
+        /// <param name="fileName">鏂囦欢鍚�</param>
+        /// <param name="msg">鏃ュ織淇℃伅</param>
         public void WriteDebug(string fileName, string msg)
         {
             if (AppSettings.Get(new string[] { "LogDeubgEnable" }).ObjToBool())
@@ -67,8 +70,8 @@
         /// <summary>
         /// 鍐欏叆淇℃伅鏃ュ織
         /// </summary>
-        /// <param name="fileName"></param>
-        /// <param name="msg"></param>
+        /// <param name="fileName">鏂囦欢鍚�</param>
+        /// <param name="msg">鏃ュ織淇℃伅</param>
         public void WriteInfo(string fileName, string msg)
         {
             StringBuilder builder = new StringBuilder(msg);
@@ -80,9 +83,22 @@
         /// <summary>
         /// 鍐欏叆閿欒鏃ュ織
         /// </summary>
-        /// <param name="fileName"></param>
-        /// <param name="msg"></param>
-        /// <param name="ex"></param>
+        /// <param name="fileName">鏂囦欢鍚�</param>
+        /// <param name="msg">鏃ュ織淇℃伅</param>
+        public void WriteError(string fileName, string msg)
+        {
+            StringBuilder builder = new StringBuilder(msg);
+            builder.Append(Environment.NewLine);
+            builder.Append(Environment.NewLine);
+            QuartzLogger.WriteLogToFile($"Error_{fileName}", builder.ToString());
+        }
+
+        /// <summary>
+        /// 鍐欏叆閿欒鏃ュ織
+        /// </summary>
+        /// <param name="fileName">鏂囦欢鍚�</param>
+        /// <param name="msg">鏃ュ織淇℃伅</param>
+        /// <param name="ex">寮傚父淇℃伅</param>
         public void WriteError(string fileName, string msg, Exception ex)
         {
             StringBuilder builder = new StringBuilder(msg);
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs
index 855d109..cd583dd 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_DeviceInfo.cs
@@ -40,6 +40,9 @@
         [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "涓婚敭")]
         public int Id { get; set; }
 
+        /// <summary>
+        /// 璋冨害琛ㄤ富閿�
+        /// </summary>
         [SugarColumn(IsNullable = true, ColumnDescription = "璋冨害琛ㄤ富閿�")]
         public int? DispatchId { get; set; }
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs
index 988c1ad..875897c 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Models/Dt_Router.cs
@@ -10,6 +10,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Models
 {
+    /// <summary>
+    /// 璁惧璺敱閰嶇疆
+    /// </summary>
     [SugarTable(nameof(Dt_Router), "璁惧璺敱閰嶇疆")]
     public class Dt_Router : BaseEntity
     {
@@ -43,7 +46,7 @@
         [ImporterHeader(Name = "璺敱绫诲瀷")]
         [ExporterHeader(DisplayName = "璺敱绫诲瀷")]
         [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "璺敱绫诲瀷")]
-        public RouterInOutType InOutType { get; set; }
+        public int InOutType { get; set; }
 
         /// <summary>
         /// 瀛愪綅缃�
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs
index e707ba3..5af7281 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/IOtherDevice.cs
@@ -8,6 +8,9 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 鍏朵粬璁惧鎺ュ彛灞�
+    /// </summary>
     public interface IOtherDevice : IDevice
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs
index ab69a34..7632609 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/OtherDevices/OtherDevice.cs
@@ -10,6 +10,9 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 鍏朵粬璁惧瀹炵幇瀵硅薄
+    /// </summary>
     public class OtherDevice : IOtherDevice
     {
         #region Private Member
@@ -42,16 +45,34 @@
         #endregion Private Member
 
         #region Public Member
+        /// <summary>
+        /// 閫氳瀵硅薄
+        /// </summary>
         public BaseCommunicator 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>
         public bool IsConnected => Communicator.IsConnected && _isConnected;
         #endregion
 
@@ -59,9 +80,9 @@
         /// <summary>
         /// 鏋勯�犲嚱鏁�
         /// </summary>
-        /// <param name="communicator">鍫嗗灈鏈洪�氳瀵硅薄</param>
-        /// <param name="deviceProDTOs">鍫嗗灈鏈哄崗璁俊鎭�</param>
-        /// <param name="deviceProtocolDetailDTOs">鍫嗗灈鏈哄崗璁槑缁嗕俊鎭�</param>
+        /// <param name="communicator">璁惧閫氳瀵硅薄</param>
+        /// <param name="deviceProDTOs">璁惧鍗忚淇℃伅</param>
+        /// <param name="deviceProtocolDetailDTOs">璁惧鍗忚鏄庣粏淇℃伅</param>
         /// <param name="deviceCode">璁惧缂栧彿</param>
         /// <param name="deviceName">璁惧鍚嶇О</param>
         public OtherDevice(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
@@ -128,12 +149,20 @@
         #endregion
 
         #region Public Method
+        /// <summary>
+        /// 鑾峰彇璁惧鐘舵��
+        /// </summary>
+        /// <typeparam name="T">鐘舵�佹灇涓�</typeparam>
+        /// <returns></returns>
         public T GetStatus<T>()
         where T : notnull, Enum
         {
             return (T)GetStatus(typeof(T).Name);
         }
 
+        /// <summary>
+        /// 閲婃斁瀵硅薄
+        /// </summary>
         public void Dispose()
         {
             _heartStatr = false;
@@ -141,6 +170,13 @@
             GC.SuppressFinalize(this);
         }
 
+        /// <summary>
+        /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹�
+        /// </summary>
+        /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam>
+        /// <typeparam name="TResult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam>
+        /// <param name="value">鏋氫妇鍊�</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁</returns>
         public TResult GetValue<TEnum, TResult>(TEnum value) where TEnum : Enum
         {
             if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
@@ -163,6 +199,14 @@
             return devicePro == null ? throw new Exception() : (TResult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
         }
 
+        /// <summary>
+        /// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+        /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam>
+        /// <param name="enum">鍙傛暟鍚嶇О銆�</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns>
         public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value)
             where TEnum : Enum
             where TValue : notnull
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/JobSetup.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/JobSetup.cs
index 2961770..c9c2d11 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/JobSetup.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/JobSetup.cs
@@ -33,6 +33,11 @@
     /// </summary>
     public static class JobSetup
     {
+        /// <summary>
+        /// 璋冨害鏈嶅姟娉ㄥ叆
+        /// </summary>
+        /// <param name="services"></param>
+        /// <exception cref="ArgumentNullException"></exception>
         public static void AddJobSetup(this IServiceCollection services)
         {
             if (services == null) throw new ArgumentNullException(nameof(services));
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobAutofacModuleRegister.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobAutofacModuleRegister.cs
index dc47a8b..c7100a8 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobAutofacModuleRegister.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobAutofacModuleRegister.cs
@@ -32,8 +32,14 @@
 
 namespace WIDESEAWCS_QuartzJob.QuartzExtensions
 {
+    /// <summary>
+    /// 浠撳偍涓氬姟灞傛敞鍏�
+    /// </summary>
     public class QuartzJobAutofacModuleRegister : Autofac.Module
     {
+        /// <summary>
+        /// 浠撳偍涓氬姟灞傛敞鍏�
+        /// </summary>
         protected override void Load(ContainerBuilder builder)
         {
             var basePath = AppContext.BaseDirectory;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobDataTableHostedService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobDataTableHostedService.cs
index 349bee9..84c8637 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobDataTableHostedService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobDataTableHostedService.cs
@@ -31,6 +31,9 @@
 
 namespace WIDESEAWCS_QuartzJob.QuartzExtensions
 {
+    /// <summary>
+    /// 鑷姩寤鸿〃
+    /// </summary>
     public sealed class QuartzJobDataTableHostedService : IHostedService
     {
         private readonly DBContext _dbContext;
@@ -38,6 +41,9 @@
         private readonly string _webRootPath;
         private readonly IServiceProvider _serviceProvider;
 
+        /// <summary>
+        /// 鑷姩寤鸿〃
+        /// </summary>
         public QuartzJobDataTableHostedService(
             IServiceProvider serviceProvider,
             IWebHostEnvironment webHostEnvironment,
@@ -51,12 +57,18 @@
             _dbContext = dbContext;
         }
 
+        /// <summary>
+        /// 鑷姩寤鸿〃
+        /// </summary>
         public async Task StartAsync(CancellationToken cancellationToken)
         {
             _logger.LogInformation("寮�濮嬪垱寤哄畾鏃跺櫒璋冨害鏁版嵁琛�");
             await DoWork();
         }
 
+        /// <summary>
+        /// 鑷姩寤鸿〃
+        /// </summary>
         private async Task DoWork()
         {
             try
@@ -70,6 +82,9 @@
             }
         }
 
+        /// <summary>
+        /// 鑷姩寤鸿〃
+        /// </summary>
         public Task StopAsync(CancellationToken cancellationToken)
         {
             _logger.LogInformation("瀹氭椂鍣ㄨ皟搴︽暟鎹〃缁撴潫");
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobHostedService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobHostedService.cs
index c36df08..90cf585 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobHostedService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzExtensions/QuartzJobHostedService.cs
@@ -34,6 +34,9 @@
 
 namespace WIDESEAWCS_QuartzJob.QuartzExtensions
 {
+    /// <summary>
+    /// 鍚姩绋嬪簭鑷姩寮�鍚皟搴︽湇鍔�
+    /// </summary>
     public class QuartzJobHostedService : IHostedService
     {
         private readonly ISchedulerCenter _schedulerCenter;
@@ -43,6 +46,9 @@
         private readonly IDeviceProtocolDetailService _deviceProtocolDetailService;
         private readonly QuartzNetExtension _quartzNetExtension;
 
+        /// <summary>
+        /// 鍚姩绋嬪簭鑷姩寮�鍚皟搴︽湇鍔�
+        /// </summary>
         public QuartzJobHostedService(ILogger<QuartzJobHostedService> logger, IDeviceInfoService deviceInfoService, IDispatchInfoService dispatchInfoService, ISchedulerCenter schedulerCenter, IDeviceProtocolDetailService deviceProtocolDetailService, QuartzNetExtension quartzNetExtension)
         {
             _logger = logger;
@@ -63,6 +69,9 @@
             await _quartzNetExtension.StartAsync();
         }
 
+        /// <summary>
+        /// 鍚姩绋嬪簭鑷姩寮�鍚皟搴︽湇鍔�
+        /// </summary>
         public Task StopAsync(CancellationToken cancellationToken)
         {
             _logger.LogInformation("Stop QuartzJob Service!");
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs
index 4e6556a..b2b13d5 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/JobFactory.cs
@@ -26,12 +26,20 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// Job娉ㄥ叆
+    /// </summary>
     public class JobFactory : IJobFactory
     {
         /// <summary>
         /// 娉ㄥ叆鍙嶅皠鑾峰彇渚濊禆瀵硅薄
         /// </summary>
         private readonly IServiceProvider _serviceProvider;
+
+        /// <summary>
+        /// Job娉ㄥ叆
+        /// </summary>
+        /// <param name="serviceProvider"></param>
         public JobFactory(IServiceProvider serviceProvider)
         {
             _serviceProvider = serviceProvider;
@@ -57,6 +65,10 @@
             }
         }
 
+        /// <summary>
+        /// Job娉ㄥ叆
+        /// </summary>
+        /// <param name="job"></param>
         public void ReturnJob(IJob job)
         {
             IDisposable? disposable = job as IDisposable;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs
index f98b2f5..c58f641 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/QuartzNetExtension.cs
@@ -13,6 +13,9 @@
 
 namespace WIDESEAWCS_QuartzJob.QuartzNet
 {
+    /// <summary>
+    /// 鍚姩绋嬪簭鑷姩寮�鍚皟搴︽湇鍔�
+    /// </summary>
     public class QuartzNetExtension
     {
         private readonly ISchedulerCenter _schedulerCenter;
@@ -20,6 +23,11 @@
         private readonly IDispatchInfoService _dispatchInfoService;
         private readonly IDeviceProtocolDetailService _deviceProtocolDetailService;
         private readonly Storage _storage;
+
+        /// <summary>
+        /// 鍚姩绋嬪簭鑷姩寮�鍚皟搴︽湇鍔�
+        /// </summary>
+        /// <returns></returns>
         public QuartzNetExtension(IDeviceInfoService deviceInfoService, IDispatchInfoService dispatchInfoService, ISchedulerCenter schedulerCenter, IDeviceProtocolDetailService deviceProtocolDetailService, Storage storage)
         {
             _deviceInfoService = deviceInfoService;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/SchedulerCenterServer.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/SchedulerCenterServer.cs
index a176c07..3b8288c 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/SchedulerCenterServer.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/QuartzNet/SchedulerCenterServer.cs
@@ -34,10 +34,18 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 璋冨害鏈嶅姟瀹炵幇绫�
+    /// </summary>
     public class SchedulerCenterServer : ISchedulerCenter
     {
         private IScheduler _scheduler;
         private readonly IJobFactory _iocjobFactory;
+
+        /// <summary>
+        /// 璋冨害鏈嶅姟瀹炵幇绫�
+        /// </summary>
+        /// <param name="jobFactory"></param>
         public SchedulerCenterServer(IJobFactory jobFactory)
         {
             _iocjobFactory = jobFactory;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceInfoRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceInfoRepository.cs
index 0adcdd6..ee5199a 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceInfoRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceInfoRepository.cs
@@ -26,8 +26,14 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璁惧淇℃伅浠撳偍灞�
+    /// </summary>
     public class DeviceInfoRepository : RepositoryBase<Dt_DeviceInfo>, IDeviceInfoRepository
     {
+        /// <summary>
+        /// 璁惧淇℃伅浠撳偍灞�
+        /// </summary>
         public DeviceInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolDetailRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolDetailRepository.cs
index c7ba7ea..7716ab8 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolDetailRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolDetailRepository.cs
@@ -26,8 +26,14 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璁惧鍗忚鏄庣粏淇℃伅浠撳偍灞�
+    /// </summary>
     public class DeviceProtocolDetailRepository : RepositoryBase<Dt_DeviceProtocolDetail>, IDeviceProtocolDetailRepository
     {
+        /// <summary>
+        /// 璁惧鍗忚鏄庣粏淇℃伅浠撳偍灞�
+        /// </summary>
         public DeviceProtocolDetailRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolRepository.cs
index 7b9949c..33096d2 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DeviceProtocolRepository.cs
@@ -26,8 +26,14 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璁惧鍗忚淇℃伅浠撳偍灞�
+    /// </summary>
     public class DeviceProtocolRepository : RepositoryBase<Dt_DeviceProtocol>, IDeviceProtocolRepository
     {
+        /// <summary>
+        /// 璁惧鍗忚淇℃伅浠撳偍灞�
+        /// </summary>
         public DeviceProtocolRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DispatchInfoRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DispatchInfoRepository.cs
index f56a384..cc2d08c 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DispatchInfoRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/DispatchInfoRepository.cs
@@ -26,8 +26,14 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璋冨害鏈嶅姟閰嶇疆浠撳偍灞�
+    /// </summary>
     public class DispatchInfoRepository : RepositoryBase<Dt_DispatchInfo>, IDispatchInfoRepository
     {
+        /// <summary>
+        /// 璋冨害鏈嶅姟閰嶇疆浠撳偍灞�
+        /// </summary>
         public DispatchInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceInfoRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceInfoRepository.cs
index aa1aa12..721c0cf 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceInfoRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceInfoRepository.cs
@@ -26,6 +26,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璁惧淇℃伅浠撳偍鎺ュ彛灞�
+    /// </summary>
     public interface IDeviceInfoRepository : IRepository<Dt_DeviceInfo>
     {
     }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolDetailRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolDetailRepository.cs
index a1281e2..9db2aa4 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolDetailRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolDetailRepository.cs
@@ -26,6 +26,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璁惧鍗忚鏄庣粏淇℃伅浠撳偍鎺ュ彛灞�
+    /// </summary>
     public interface IDeviceProtocolDetailRepository : IRepository<Dt_DeviceProtocolDetail>
     {
     }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolRepository.cs
index db39055..3bf519e 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDeviceProtocolRepository.cs
@@ -26,6 +26,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璁惧鍗忚淇℃伅浠撳偍鎺ュ彛灞�
+    /// </summary>
     public interface IDeviceProtocolRepository : IRepository<Dt_DeviceProtocol>
     {
     }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDispatchInfoRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDispatchInfoRepository.cs
index da64402..ec3431e 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDispatchInfoRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IDispatchInfoRepository.cs
@@ -26,6 +26,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璋冨害鏈嶅姟閰嶇疆浠撳偍鎺ュ彛灞�
+    /// </summary>
     public interface IDispatchInfoRepository : IRepository<Dt_DispatchInfo>
     {
     }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs
index 4854b7c..4db42bf 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/IRouterRepository.cs
@@ -8,6 +8,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璺敱閰嶇疆浠撳偍鎺ュ彛灞�
+    /// </summary>
     public interface IRouterRepository : IRepository<Dt_Router>
     {
     }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs
index bd21d93..ae4d3ab 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Repository/RouterRepository.cs
@@ -8,8 +8,14 @@
 
 namespace WIDESEAWCS_QuartzJob.Repository
 {
+    /// <summary>
+    /// 璺敱閰嶇疆浠撳偍灞�
+    /// </summary>
     public class RouterRepository : RepositoryBase<Dt_Router>, IRouterRepository
     {
+        /// <summary>
+        /// 璺敱閰嶇疆浠撳偍灞�
+        /// </summary>
         public RouterRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
         {
         }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs
index 20b2651..8fddbce 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Seed/QuartzJobCreateDataTabel.cs
@@ -29,6 +29,11 @@
 
 namespace WIDESEAWCS_QuartzJob.Seed
 {
+    /// <summary>
+    /// 鏄犲皠QuartzJob鏁版嵁搴撹〃
+    /// </summary>
+    /// <param name="dbContext"></param>
+    /// <returns></returns>
     public class QuartzJobCreateDataTabel
     {
         private static string SeedDataFolder = "WIDESEAWCS_DB.DBSeed.Json/{0}.tsv";
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs
index f6551e1..0eaf755 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceInfoService.cs
@@ -33,16 +33,28 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璁惧淇℃伅涓氬姟灞�
+    /// </summary>
     public class DeviceInfoService : ServiceBase<Dt_DeviceInfo, IDeviceInfoRepository>, IDeviceInfoService
     {
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly IMapper _mapper;
+
+        /// <summary>
+        /// 璁惧淇℃伅涓氬姟灞�
+        /// </summary>
         public DeviceInfoService(IDeviceInfoRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
             _mapper = mapper;
         }
 
+        /// <summary>
+        /// 娣诲姞鏁版嵁
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
         public override WebResponseContent AddData(SaveModel saveModel)
         {
             return base.AddData(saveModel);
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolDetailService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolDetailService.cs
index 525806e..05a1289 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolDetailService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolDetailService.cs
@@ -31,10 +31,17 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璁惧鍗忚鏄庣粏涓氬姟灞�
+    /// </summary>
     public class DeviceProtocolDetailService : ServiceBase<Dt_DeviceProtocolDetail, IDeviceProtocolDetailRepository>, IDeviceProtocolDetailService
     {
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly IMapper _mapper;
+
+        /// <summary>
+        /// 璁惧鍗忚鏄庣粏涓氬姟灞�
+        /// </summary>
         public DeviceProtocolDetailService(IDeviceProtocolDetailRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IMapper mapper) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs
index f9c4ae8..d14d6bf 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DeviceProtocolService.cs
@@ -32,9 +32,16 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璁惧鍗忚淇℃伅涓氬姟灞�
+    /// </summary>
     public class DeviceProtocolService : ServiceBase<Dt_DeviceProtocol, IDeviceProtocolRepository>, IDeviceProtocolService
     {
         private readonly IUnitOfWorkManage _unitOfWorkManage;
+
+        /// <summary>
+        /// 璁惧鍗忚淇℃伅涓氬姟灞�
+        /// </summary>
         public DeviceProtocolService(IDeviceProtocolRepository BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
@@ -87,6 +94,11 @@
             }
         }
 
+        /// <summary>
+        /// 娣诲姞鏁版嵁
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
         public override WebResponseContent AddData(SaveModel saveModel)
         {
             //saveModel.MainData[""]
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs
index 7e20958..f40cc54 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/DispatchInfoService.cs
@@ -31,10 +31,17 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璋冨害鏈嶅姟閰嶇疆涓氬姟灞�
+    /// </summary>
     public class DispatchInfoService : ServiceBase<Dt_DispatchInfo, IDispatchInfoRepository>, IDispatchInfoService
     {
         private readonly IUnitOfWorkManage _unitOfWorkManage;
         private readonly IDeviceInfoRepository _deviceInfoRepository;
+
+        /// <summary>
+        /// 璋冨害鏈嶅姟閰嶇疆涓氬姟灞�
+        /// </summary>
         public DispatchInfoService(IDispatchInfoRepository BaseDal, IUnitOfWorkManage unitOfWorkManage, IDeviceInfoRepository deviceInfoRepository) : base(BaseDal)
         {
             _unitOfWorkManage = unitOfWorkManage;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceInfoService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceInfoService.cs
index 7ef5d26..52f89be 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceInfoService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceInfoService.cs
@@ -28,6 +28,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璁惧淇℃伅涓氬姟鎺ュ彛灞�
+    /// </summary>
     public interface IDeviceInfoService : IService<Dt_DeviceInfo>
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolDetailService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolDetailService.cs
index 1690a6b..34b01fd 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolDetailService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolDetailService.cs
@@ -27,6 +27,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璁惧鍗忚鏄庣粏淇℃伅涓氬姟鎺ュ彛灞�
+    /// </summary>
     public interface IDeviceProtocolDetailService : IService<Dt_DeviceProtocolDetail>
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs
index f2b8023..3465d60 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDeviceProtocolService.cs
@@ -28,6 +28,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璁惧鍗忚淇℃伅涓氬姟鎺ュ彛灞�
+    /// </summary>
     public interface IDeviceProtocolService : IService<Dt_DeviceProtocol>
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs
index 63be19e..81d1807 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IDispatchInfoService.cs
@@ -26,6 +26,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璋冨害鏈嶅姟閰嶇疆涓氬姟鎺ュ彛灞�
+    /// </summary>
     public interface IDispatchInfoService : IService<Dt_DispatchInfo>
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs
index f6e78bb..e2e8d26 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/IRouterService.cs
@@ -10,6 +10,9 @@
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璺敱閰嶇疆涓氬姟鎺ュ彛灞�
+    /// </summary>
     public interface IRouterService : IService<Dt_Router>
     {
         /// <summary>
@@ -33,6 +36,12 @@
         /// <returns>鍖垮悕瀵硅薄闆嗗悎</returns>
         List<object> GetAllWholeRouters();
 
+        /// <summary>
+        /// 娣诲姞璺敱
+        /// </summary>
+        /// <param name="routersAddDTOs">娣诲姞璺敱鐨凞TO</param>
+        /// <param name="routerType">璺敱绫诲瀷</param>
+        /// <returns></returns>
         WebResponseContent AddRouters(List<RoutersAddDTO> routersAddDTOs, int routerType);
     }
 }
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs
index 1a64fe8..de20dd7 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Service/RouterService.cs
@@ -7,16 +7,27 @@
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
 using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_DTO.BasicInfo;
 using WIDESEAWCS_QuartzJob.Models;
 using WIDESEAWCS_QuartzJob.Repository;
 
 namespace WIDESEAWCS_QuartzJob.Service
 {
+    /// <summary>
+    /// 璺敱閰嶇疆涓氬姟灞�
+    /// </summary>
     public class RouterService : ServiceBase<Dt_Router, IRouterRepository>, IRouterService
     {
         private readonly IDeviceProtocolRepository _deviceProtocolRepository;
         private readonly IDeviceInfoRepository _deviceInfoRepository;
+
+        /// <summary>
+        /// 璺敱閰嶇疆涓氬姟灞�
+        /// </summary>
+        /// <param name="BaseDal"></param>
+        /// <param name="deviceProtocolRepository"></param>
+        /// <param name="deviceInfoRepository"></param>
         public RouterService(IRouterRepository BaseDal, IDeviceProtocolRepository deviceProtocolRepository, IDeviceInfoRepository deviceInfoRepository) : base(BaseDal)
         {
             _deviceProtocolRepository = deviceProtocolRepository;
@@ -88,10 +99,10 @@
             try
             {
                 // 鏌ヨ鎵�鏈夎繘鍏ヨ矾鐢卞櫒鐨勪綅缃�
-                List<string> inRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.In).GroupBy(x => x.StartPosi).Select(x => x.Key).ToList();
+                List<string> inRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.In.ObjToInt()).GroupBy(x => x.StartPosi).Select(x => x.Key).ToList();
 
                 // 鏌ヨ鎵�鏈夌寮�璺敱鍣ㄧ殑浣嶇疆
-                List<string> outRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.Out).GroupBy(x => x.ChildPosi).Select(x => x.Key).ToList();
+                List<string> outRouterPositions = BaseDal.QueryData(x => x.ChildPosiDeviceCode == deviceCode && x.InOutType == RouterInOutType.Out.ObjToInt()).GroupBy(x => x.ChildPosi).Select(x => x.Key).ToList();
 
                 // 灏嗚繘鍏ュ拰绂诲紑璺敱鍣ㄧ殑浣嶇疆娣诲姞鍒板垪琛ㄤ腑
                 positions.AddRange(inRouterPositions);
@@ -135,7 +146,7 @@
                     routes += str;
                 }
                 // 濡傛灉褰撳墠璺敱鏄叆鍙�
-                if (item.InOutType == RouterInOutType.In)
+                if (item.InOutType == RouterInOutType.In.ObjToInt())
                 {
                     // 灏嗗瓙璺敱鍙嶈浆骞舵坊鍔犲埌data涓�
                     List<string> itemRouters = routes.Split(",").Reverse().ToList();
@@ -156,7 +167,7 @@
             return data;
         }
 
-        private string GetPreviousRoutes(string startPosi, List<Dt_Router> allRouters, RouterInOutType routerType)
+        private string GetPreviousRoutes(string startPosi, List<Dt_Router> allRouters, int routerType)
         {
             // 瀹氫箟涓�涓┖瀛楃涓瞨outers
             string routers = string.Empty;
@@ -229,7 +240,7 @@
                         ChildPosi = routersAddDTOs[i + 1].PositionCode,
                         ChildPosiDeviceCode = obj.DeviceCode,
                         Depth = 1,
-                        InOutType = (RouterInOutType)routerType,
+                        InOutType = routerType,
                         NextPosi = routersAddDTOs[i + 1].PositionCode,
                         SrmColumn = string.IsNullOrEmpty(routersAddDTOs[i].SCColumn) ? int.TryParse(routersAddDTOs[i + 1].SCColumn, out int col) ? col : null : int.TryParse(routersAddDTOs[i].SCColumn, out int col2) ? col2 : null,
                         SrmLayer = string.IsNullOrEmpty(routersAddDTOs[i].SCLayer) ? int.TryParse(routersAddDTOs[i + 1].SCLayer, out int lay) ? lay : null : int.TryParse(routersAddDTOs[i].SCLayer, out int lay2) ? lay2 : null,
@@ -257,7 +268,7 @@
                     return content = WebResponseContent.Instance.Error("杈撳叆鏁版嵁璧风偣浣嶇疆缂栧彿涓庣粓鐐逛綅缃紪鍙风浉鍚�");
                 }
                 // 鏌ヨ鏁版嵁搴撲腑宸叉湁鐨勮矾鐢变俊鎭�
-                List<Dt_Router> dt_Routers = BaseDal.QueryData(x => x.InOutType == (RouterInOutType)routerType);
+                List<Dt_Router> dt_Routers = BaseDal.QueryData(x => x.InOutType == routerType);
 
                 // 绉婚櫎閲嶅鐨勮矾鐢变俊鎭�
                 dt_Routers.ForEach(x =>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs
index ae7c5b5..ec568b6 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/IShuttleCar.cs
@@ -7,6 +7,9 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 绌挎杞�
+    /// </summary>
     public interface IShuttleCar : IDevice
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs
index 73706a4..e97c5c1 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ShuttleCar/ShuttleCar.cs
@@ -11,6 +11,9 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 绌挎杞�
+    /// </summary>
     [Description("绌挎杞�")]
     public class ShuttleCar : IShuttleCar
     {
@@ -61,14 +64,31 @@
         /// </summary>
         public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
 
+        /// <summary>
+        /// 璁惧缂栧彿
+        /// </summary>
         public string DeviceCode => _deviceCode;
 
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
         public string DeviceName => _deviceName;
 
+        /// <summary>
+        /// 璁惧鏄惁宸茶繛鎺�
+        /// </summary>
         public bool IsConnected => Communicator.IsConnected && _isConnected;
         #endregion
 
         #region Constructor Function
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        /// <param name="communicator">璁惧閫氳瀵硅薄</param>
+        /// <param name="deviceProDTOs">璁惧鍗忚淇℃伅</param>
+        /// <param name="deviceProtocolDetailDTOs">璁惧鍗忚鏄庣粏淇℃伅</param>
+        /// <param name="deviceCode">璁惧缂栧彿</param>
+        /// <param name="deviceName">璁惧鍚嶇О</param>
         public ShuttleCar(BaseCommunicator communicator, List<DeviceProDTO> deviceProDTOs, List<DeviceProtocolDetailDTO> deviceProtocolDetailDTOs, string deviceCode, string deviceName)
         {
             _communicator = communicator;
@@ -107,7 +127,13 @@
         #endregion
 
         #region Public Method
-
+        /// <summary>
+        /// 璇诲彇PLC鍗忚鍦板潃鐨勬暟鎹�
+        /// </summary>
+        /// <typeparam name="TEnum">鍗忚淇℃伅鐨勬灇涓惧璞′俊鎭��</typeparam>
+        /// <typeparam name="TResult">璇诲彇鏁版嵁鐨勭被鍨嬪璞′俊鎭��</typeparam>
+        /// <param name="value">鏋氫妇鍊�</param>
+        /// <returns>璇诲彇鍒扮殑鏁版嵁</returns>
         public TResult GetValue<TEnum, TResult>(TEnum value) where TEnum : Enum
         {
             if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
@@ -185,6 +211,15 @@
             return devicePro == null ? throw new Exception($"鍐欏叆鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
         }
 
+        /// <summary>
+        /// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+        /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam>
+        /// <param name="enum">鍙傛暟鍚嶇О銆�</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns>
+        /// <exception cref="Exception"></exception>
         public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value)
             where TEnum : Enum
             where TValue : notnull
@@ -194,6 +229,9 @@
             return devicePro == null ? throw new Exception($"鍐欏叆鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟{value.ToString()}") : Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
         }
 
+        /// <summary>
+        /// 閲婃斁瀵硅薄
+        /// </summary>
         public void Dispose()
         {
             _heartStatr = false;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs
index 04e16dc..30ab2c4 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Common/CommonStackerCrane.cs
@@ -168,6 +168,9 @@
         /// </summary>
         public bool IsEventSubscribed => StackerCraneTaskCompletedEventHandler != null;
 
+        /// <summary>
+        /// 涓婁竴娆′换鍔$殑绫诲瀷
+        /// </summary>
         public int? LastTaskType { get; set; } = null;
 
         #endregion
@@ -468,7 +471,9 @@
             return Communicator.WriteObj(devicePro.DeviceProAddress, devicePro.DeviceDataType, value);
         }
 
-        // 瀹炵幇IDisposable鎺ュ彛鐨凞ispose鏂规硶
+        /// <summary>
+        /// 瀹炵幇IDisposable鎺ュ彛鐨凞ispose鏂规硶
+        /// </summary>
         public void Dispose()
         {
             // 灏哶heartStatr璁剧疆涓篺alse
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs
index 8b0cdd3..7386496 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Enum/StackerCraneStatus.cs
@@ -24,6 +24,9 @@
 
 namespace WIDESEAWCS_QuartzJob.StackerCrane.Enum
 {
+    /// <summary>
+    /// 鍫嗗灈鏈虹姸鎬佹灇涓�
+    /// </summary>
     public enum StackerCraneStatus
     {
         /// <summary>
@@ -51,6 +54,9 @@
         Unkonw
     }
 
+    /// <summary>
+    /// 鍫嗗灈鏈烘墜鑷姩鐘舵�佹灇涓�
+    /// </summary>
     public enum StackerCraneAutoStatus
     {
         /// <summary>
@@ -84,6 +90,9 @@
         Unkonw
     }
 
+    /// <summary>
+    /// 鍫嗗灈鏈哄伐浣滅姸鎬佹灇涓�
+    /// </summary>
     public enum StackerCraneWorkStatus
     {
         /// <summary>
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs
index 3e6eb8f..a759cf9 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/IStackerCrane.cs
@@ -35,7 +35,7 @@
     public interface IStackerCrane : IDevice
     {
         /// <summary>
-        /// 涓婁竴娆℃墽琛岀殑浠诲姟
+        /// 涓婁竴娆℃墽琛岀殑浠诲姟鍙�
         /// </summary>
         int LastTaskNum { get; }
 
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs
index e2d0ed2..6d19535 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/Spec/SpeStackerCrane.cs
@@ -54,24 +54,54 @@
         #endregion Private Member
 
         #region Public Member
+        /// <summary>
+        /// 閫氳瀵硅薄
+        /// </summary>
         public BaseCommunicator Communicator => _communicator;
 
+        /// <summary>
+        /// 閫氳鍗忚淇℃伅
+        /// </summary>
         public List<DeviceProDTO> DeviceProDTOs => _deviceProDTOs;
 
+        /// <summary>
+        /// 閫氳鍗忚鏄庣粏淇℃伅
+        /// </summary>
         public List<DeviceProtocolDetailDTO> DeviceProtocolDetailDTOs => _deviceProtocolDetailDTOs;
 
+        /// <summary>
+        /// 涓婁竴娆℃墽琛岀殑浠诲姟鍙�
+        /// </summary>
         public int LastTaskNum => _lastTaskNum;
 
+        /// <summary>
+        /// 褰撳墠姝e湪鎵ц鐨勪换鍔″彿
+        /// </summary>
         public int CurrentTaskNum => GetCurrentTaskNum();
 
+        /// <summary>
+        /// 涓婁竴娆℃墽琛岀殑浠诲姟绫诲瀷
+        /// </summary>
         public int? LastTaskType { get; set; } = null;
 
+        /// <summary>
+        /// 璁惧缂栧彿
+        /// </summary>
         public string DeviceCode => _deviceCode;
 
+        /// <summary>
+        /// 璁惧鍚嶇О
+        /// </summary>
         public string DeviceName => _deviceName;
 
+        /// <summary>
+        /// 璁惧鏄惁宸茶繛鎺�
+        /// </summary>
         public bool IsConnected => Communicator.IsConnected && _isConnected;
 
+        /// <summary>
+        /// 鍫嗗灈鏈轰换鍔″懡浠�
+        /// </summary>
         public object StackerCraneTaskCommand { get; set; }
         #endregion
 
@@ -154,11 +184,17 @@
         #endregion
 
         #region Public Method
+        /// <summary>
+        /// 鑾峰彇鍫嗗灈鏈虹姸鎬�
+        /// </summary>
         public T GetStackerCraneStatus<T>() where T : notnull, Enum
         {
             return (T)GetStatus(typeof(T).Name);
         }
 
+        /// <summary>
+        /// 閲婃斁瀵硅薄
+        /// </summary>
         public void Dispose()
         {
             _heartStatr = false;
@@ -166,6 +202,14 @@
             GC.SuppressFinalize(this);
         }
 
+        /// <summary>
+        /// 鏍规嵁鍙傛暟鍚嶇О璇诲彇鍫嗗灈鏈哄搴旂殑鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+        /// <typeparam name="TResult">璇诲彇缁撴灉鐨勮繑鍥炲�肩被鍨嬨��</typeparam>
+        /// <param name="value">鍙傛暟鍚嶇О銆�</param>
+        /// <returns>杩斿洖璇诲彇鍒扮殑鏁版嵁銆�</returns>
+        /// <exception cref="Exception"></exception>
         public TResult GetValue<TEnum, TResult>(TEnum value) where TEnum : Enum
         {
             if (!IsConnected) throw new Exception($"閫氳杩炴帴閿欒锛岃妫�鏌ョ綉缁�");
@@ -173,11 +217,19 @@
             return devicePro == null ? throw new Exception($"璇诲彇鏁版嵁閿欒,鏈湪鍗忚淇℃伅閲岄潰鎵惧埌鍙傛暟{value.ToString()}") : (TResult)Communicator.ReadAsObj(devicePro.DeviceProAddress, devicePro.DeviceDataType);
         }
 
+        /// <summary>
+        /// 蹇冭烦
+        /// </summary>
         public void Heartbeat()
         {
 
         }
 
+        /// <summary>
+        /// 鍙戦�佷换鍔″懡浠�
+        /// </summary>
+        /// <param name="command">浠诲姟鍛戒护</param>
+        /// <returns></returns>
         public bool SendCommand<T>(T command) where T : IDataTransfer, new()
         {
             if (Communicator is SiemensS7)
@@ -202,6 +254,15 @@
             }
         }
 
+        /// <summary>
+        /// 鏍规嵁鍙傛暟鍚嶇О鍐欏叆鍫嗗灈鏈哄搴旂殑鏁版嵁銆�
+        /// </summary>
+        /// <typeparam name="TEnum">鍙傛暟鍚嶇О鏋氫妇绫诲瀷銆�</typeparam>
+        /// <typeparam name="TValue">瑕佸啓鍏ョ殑鏁版嵁绫诲瀷銆�</typeparam>
+        /// <param name="enum">鍙傛暟鍚嶇О銆�</param>
+        /// <param name="value">瑕佸啓鍏ョ殑鏁版嵁銆�</param>
+        /// <returns>杩斿洖鍐欏叆鎴愬姛鎴栧け璐�</returns>
+        /// <exception cref="Exception"></exception>
         public bool SetValue<TEnum, TValue>(TEnum @enum, TValue value)
             where TEnum : Enum
             where TValue : notnull
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/StackerCraneTaskCompletedEventArgs.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/StackerCraneTaskCompletedEventArgs.cs
index 1c49ee4..cc79583 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/StackerCraneTaskCompletedEventArgs.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/StackerCrane/StackerCraneTaskCompletedEventArgs.cs
@@ -23,6 +23,9 @@
 
 namespace WIDESEAWCS_QuartzJob.StackerCrane
 {
+    /// <summary>
+    /// 鍫嗗灈鏈轰换鍔″畬鎴愭椂闂村弬鏁�
+    /// </summary>
     public class StackerCraneTaskCompletedEventArgs : EventArgs
     {
         #region <Private Member>
@@ -30,10 +33,17 @@
         #endregion <Private Member>
 
         #region <Public Menber>
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
         public int TaskNum { get { return _taskNum; } }
         #endregion <Public Menber>
 
         #region <Constructor function>
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        /// <param name="taskNum"></param>
         public StackerCraneTaskCompletedEventArgs(int taskNum)
         {
             _taskNum = taskNum;
diff --git a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
index 0e31e58..1fb0180 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/Storage.cs
@@ -18,27 +18,54 @@
 
 namespace WIDESEAWCS_QuartzJob
 {
+    /// <summary>
+    /// 闈欐�佸彉鑴稿瓨鍌ㄥ尯锛屽彲浣跨敤闈欐�佸彉閲忥紝涔熷彲娉ㄥ叆浣跨敤
+    /// </summary>
     public class Storage
     {
+        /// <summary>
+        /// 宸茶繛鎺ヨ澶囧璞¢泦鍚�
+        /// </summary>
         public static List<IDevice> Devices = new List<IDevice>();
 
+        /// <summary>
+        /// 璁惧瀵硅薄
+        /// </summary>
         public List<IDevice> Pro_Devices { get; set; }
 
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
         public Storage()
         {
             Pro_Devices = new List<IDevice>();
         }
 
+        /// <summary>
+        /// 鑾峰彇璁惧
+        /// </summary>
+        /// <param name="deviceCode"></param>
+        /// <returns></returns>
         public IDevice? GetDevice(string deviceCode)
         {
             return Pro_Devices.FirstOrDefault(x => x.DeviceCode == deviceCode);
         }
 
+        /// <summary>
+        /// 鑾峰彇璁惧
+        /// </summary>
+        /// <param name="deviceCodes"></param>
+        /// <returns></returns>
         public List<IDevice> GetDevices(List<string> deviceCodes)
         {
             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 11eee11..6d48fdf 100644
--- a/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
+++ b/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/WIDESEAWCS_QuartzJob.csproj
@@ -10,8 +10,18 @@
 			鐢变簬2.1.0鐗堟湰鏇存柊锛屼細瀵艰嚧鏈変竴瀹氱殑闂銆�
 			鍦―t_DeviceInfo琛ㄤ腑娣诲姞DispatchId鍙┖鍒楋紝鐢ㄦ潵閰嶇疆瀵瑰簲Dt_DispatchInfo涓殑鏁版嵁銆�
 			鏇存柊鏃惰娉ㄦ剰锛屽闇�鏇存柊锛岃鍙婃椂鏇存柊鏁版嵁搴撶粨鏋勫拰鏁版嵁銆�
+			
+			20241223
+			璺敱琛ㄦ洿鏂�
+			
+			20250102
+			娣诲姞JobBase涓褰曢敊璇棩蹇楁柟娉曢噸杞界増鏈�
+			
+			20250102-002
+			娣诲姞娉ㄩ噴
 		</Description>
-		<Version>3.0.0</Version>
+		<Version>3.0.3</Version>
+		<GenerateDocumentationFile>true</GenerateDocumentationFile>
 	</PropertyGroup>
 
 	<ItemGroup>

--
Gitblit v1.9.3