From 95ac5296182b763d12125c1d47f53c00632ffc41 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期四, 12 六月 2025 19:40:26 +0800
Subject: [PATCH] 上传后端

---
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs                      |   39 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_storagemode.cs                              |   24 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/camera.ini                                                  |    9 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs                 |   18 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs            |   20 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/UnitCategoryController.cs            |   28 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs                                   |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/StackerCarneTaskDTO.cs                                         |   13 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs        |   21 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-wal        |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Log.cs                                     |   86 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/WIDESEAWCS_IWMSPart.csproj                                |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs                            |   19 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/UserPermissions.cs                             |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json                                 | 1406 +++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DispatchInfoController.cs             |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/FaceHelper.cs                                          |  314 +
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal   |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceDraw.cs                                          |  151 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-shm        |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAuthorizationRecordServer.cs                   |   19 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs              |  509 +
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs              |   29 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs                                      |   24 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Dt_Department.cs                               |   26 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs                                  |  173 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/LoginInfo.cs                                                 |   26 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/CHS_Capture.cs                                         |   49 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StoragemodeService.cs                          |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceTeamService.cs                      |   29 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/MenuDTO.cs                                              |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryListService.cs                      |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ILoginhsyService.cs                             |   34 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs                     |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs                          |   57 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/WIDESEAWCS_IBasicInfoService.csproj              |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserService.cs                                |   98 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs                                         |   56 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/PaginationDTO.cs                                    |   60 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfo_HtyService.cs                                  |   15 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json                                   |   13 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/1744349998854.png                             |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ITeamCategoryServer.cs                          |   19 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceCompare.cs                                       |  781 ++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs             |  137 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AuthorizationRecordController.cs     |   28 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskExecuteDetailRepository.cs                |   32 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UpstreamIDTO.cs                                     |   42 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryRepository.cs                     |   15 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Dictionary.cs                              |   95 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_TenantRepository.cs                         |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_DictionaryList.cs                          |   57 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/SpeedDTO.cs                                         |   50 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs                               |   65 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceManager.cs                                       |  209 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceLiveness.cs                                      |  548 ++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errormsgInfo.cs                             |   35 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_MenuRepository.cs                           |   26 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail_Hty.cs                     |   42 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Loginhsy.cs                             |   45 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_UnitCategory.cs                         |   24 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/WIDESEAWCS_ISystemRepository.csproj              |   13 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IFaceRecognitionServer .cs                      |   19 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Enums/LinqExpressionType.cs                                 |   21 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryListRepository.cs                 |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_OutstockinfoService.cs                         |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs |   22 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceAttr.cs                                          |  109 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/TH_Faces.cs                                            |  210 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleController.cs                    |   64 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IUnitCategoryServer.cs                          |   19 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs                            |   95 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Parameters.cs                           |   65 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/HjimiCamera.cs                                       |   24 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs                  |   24 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs                         |   21 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleAuthService.cs                            |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IParametersService.cs                           |   61 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_BatchinfoService.cs                            |   18 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleAuthor.cs                                  |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockQuantityChangeRecordService.cs                      |   15 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Department.cs                              |   57 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleNodes.cs                                   |   15 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs                            |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/InitializationLocationDTO.cs                         |   49 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolDetailController.cs     |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs                                 |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceFeature.cs                                       |  133 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs                                   |   32 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs                                   |  221 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail.cs                         |  106 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UserDTO.cs                                          |   40 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/VueDictionaryDTO.cs                                     |   19 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/WIDESEAWCS_ITaskInfoRepository.csproj          |   13 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo_Hty.cs                           |   42 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/OrbeCamera.cs                                        |   29 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj                                      |   23 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Tenant.cs                                  |   57 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs                    |  261 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AuthorizationRecord.cs                  |   40 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/FaceRecognitionController .cs        |   28 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationStatusChangeRecord.cs              |   77 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_MenuService.cs                                |   32 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleAuthController.cs                |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceTrack.cs                                         |  221 
 项目代码/后端/WCS/WIDESEAWCS_Server/.editorconfig                                                                 |    4 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs                                  |   63 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db       |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln                                                         |  267 +
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj                                    |   22 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceInfoController.cs               |   30 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/UtilConvert.cs                                       |  977 +++
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config                           | 1026 +++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/HtmlElementType.cs                                    |   32 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserFaceService.cs                            |   26 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IDepartmentService.cs                           |   25 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Menu.cs                                    |   87 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryListController.cs          |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleAuthRepository.cs                       |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/DepartmentController.cs              |   26 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetail_HtyService.cs                            |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/WIDESEAWCS_ITelescopicService.csproj            |   19 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StoragemodeController.cs                 |   26 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceTeamController.cs         |   35 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs                      |   26 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json                                            |   44 
 项目代码/后端/WCS/WIDESEAWCS_Server/ConsoleApp1/Program.cs                                                        |    2 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationStatusChangeRecordService.cs                     |   15 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/RouterController.cs                   |  113 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/Face.cs                                              |   94 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FileUtil.cs                                          |   23 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs             |   33 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/AddUserDTO.cs                                           |   89 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_MenuController.cs                    |   55 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db       |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_UserRepository.cs                           |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_FaceRecognition.cs                      |   27 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/OutStockController.cs                    |   41 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetailService.cs                                |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json                          | 1372 +++++
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/WIDESEAWCS_BasicInfoRepository.csproj          |   13 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/UserPermissions.cs                                      |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/BatchController.cs                       |   55 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleService.cs                                |   23 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_TenantService.cs                              |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs                          |   74 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs               |   53 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs                                |   41 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockQuantityChangeRecord.cs               |  101 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/WIDESEAWCS_IBasicInfoRepository.csproj        |   13 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db            |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryService.cs                          |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/WIDESEAWCS_ISystemServices.csproj                  |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AlarmResetHsy.cs                        |   34 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/WIDESEAWCS_ITaskInfoService.csproj                |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs              |   21 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleRepository.cs                           |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Role.cs                                    |   60 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj                |   18 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/HierarchyCache.v1.txt                               |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/AreaInfo.cs                                                 |   15 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_MaintenanceTeam.cs                      |   72 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_TaskExecuteDetail.cs                      |  112 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs                                    |   85 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs                               |  152 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs           |   24 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs                          |   81 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs                          |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.Development.json                                |    8 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db            |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs                                   |  152 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/Class1.cs                                            |   12 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/ImageUtil.cs                                         |   68 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/Task_htyController.cs                      |   20 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskhtyService.cs                                |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/2025.jpg                                      |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusGroup.cs                                 |   15 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/ActionDTO.cs                                            |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/ConsoleApp1/ConsoleApp1.csproj                                                |   10 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAlarmResetHsyServer.cs                         |   52 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/TeamCategoryController.cs            |   28 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/DevEnum.cs                                           |  191 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs                   |   18 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs  |   20 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/LoginhsyController.cs                |   44 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_outstockinfo.cs                             |   31 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/ParametersController.cs              |   88 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_RoleAuth.cs                                |   48 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoService.cs                                      |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserFaceController.cs                |  134 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/TimeUtil.cs                                          |   17 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskRepository.cs                             |   32 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs                              |   34 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/LocationEnum/LocationEnum.cs                                |   65 
 /dev/null                                                                                                   |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj                                          |   14 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AlarmResetHsyController.cs           |   76 
 项目代码/后端/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm   |    0 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_UserFace.cs                                |   27 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMSPart/StockViewDTO.cs                                        |  133 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/BaiDuFaceHelper.cs                                          |  372 +
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Actions.cs                                 |   16 
 项目代码/后端/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_User.cs                                    |  182 
 203 files changed, 15,963 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Client/public/Outbound.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Client/public/Outbound.png"
deleted file mode 100644
index 5fe6465..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Client/public/Outbound.png"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Client/src/assets/imgs/log.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Client/src/assets/imgs/log.png"
deleted file mode 100644
index 8397330..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Client/src/assets/imgs/log.png"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.editorconfig" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.editorconfig"
new file mode 100644
index 0000000..65054c9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.editorconfig"
@@ -0,0 +1,4 @@
+锘縖*.cs]
+
+# CS8618: 鍦ㄩ��鍑烘瀯閫犲嚱鏁版椂锛屼笉鍙负 null 鐨勫瓧娈靛繀椤诲寘鍚潪 null 鍊笺�傝鑰冭檻澹版槑涓哄彲浠ヤ负 null銆�
+dotnet_diagnostic.CS8618.severity = none
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db"
new file mode 100644
index 0000000..756e2d6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db"
new file mode 100644
index 0000000..cbf34d6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.670.39694/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db"
new file mode 100644
index 0000000..4865407
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-shm"
new file mode 100644
index 0000000..d5ceeae
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-wal"
new file mode 100644
index 0000000..2d0e7e3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/CodeChunks.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db"
new file mode 100644
index 0000000..d197a45
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm"
new file mode 100644
index 0000000..fd392d9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-shm"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal"
new file mode 100644
index 0000000..7fb2fab
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/CopilotIndices/17.14.734.62261/SemanticSymbols.db-wal"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config"
new file mode 100644
index 0000000..cdd2df8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/config/applicationhost.config"
@@ -0,0 +1,1026 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    IIS configuration sections.
+
+    For schema documentation, see
+    %IIS_BIN%\config\schema\IIS_schema.xml.
+    
+    Please make a backup of this file before making any changes to it.
+
+    NOTE: The following environment variables are available to be used
+          within this file and are understood by the IIS Express.
+
+          %IIS_USER_HOME% - The IIS Express home directory for the user
+          %IIS_SITES_HOME% - The default home directory for sites
+          %IIS_BIN% - The location of the IIS Express binaries
+          %SYSTEMDRIVE% - The drive letter of %IIS_BIN%
+
+-->
+<configuration>
+
+    <!--
+
+        The <configSections> section controls the registration of sections.
+        Section is the basic unit of deployment, locking, searching and
+        containment for configuration settings.
+        
+        Every section belongs to one section group.
+        A section group is a container of logically-related sections.
+        
+        Sections cannot be nested.
+        Section groups may be nested.
+        
+        <section
+            name=""  [Required, Collection Key] [XML name of the section]
+            allowDefinition="Everywhere" [MachineOnly|MachineToApplication|AppHostOnly|Everywhere] [Level where it can be set]
+            overrideModeDefault="Allow"  [Allow|Deny] [Default delegation mode]
+            allowLocation="true"  [true|false] [Allowed in location tags]
+        />
+        
+        The recommended way to unlock sections is by using a location tag:
+        <location path="Default Web Site" overrideMode="Allow">
+            <system.webServer>
+                <asp />
+            </system.webServer>
+        </location>
+
+    -->
+    <configSections>
+        <sectionGroup name="system.applicationHost">
+            <section name="applicationPools" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="configHistory" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="customMetadata" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="listenerAdapters" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="log" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="serviceAutoStartProviders" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="sites" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="webLimits" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+        </sectionGroup>
+
+        <sectionGroup name="system.webServer">
+            <section name="asp" overrideModeDefault="Deny" />
+            <section name="caching" overrideModeDefault="Allow" />
+            <section name="cgi" overrideModeDefault="Deny" />
+            <section name="defaultDocument" overrideModeDefault="Allow" />
+            <section name="directoryBrowse" overrideModeDefault="Allow" />
+            <section name="fastCgi" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="globalModules" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+            <section name="handlers" overrideModeDefault="Deny" />
+            <section name="httpCompression" overrideModeDefault="Allow" allowDefinition="Everywhere" />
+            <section name="httpErrors" overrideModeDefault="Allow" />
+            <section name="httpLogging" overrideModeDefault="Deny" />
+            <section name="httpProtocol" overrideModeDefault="Allow" />
+            <section name="httpRedirect" overrideModeDefault="Allow" />
+            <section name="httpTracing" overrideModeDefault="Deny" />
+            <section name="isapiFilters" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
+            <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
+            <section name="applicationInitialization" allowDefinition="MachineToApplication" overrideModeDefault="Allow" />
+            <section name="odbcLogging" overrideModeDefault="Deny" />
+            <sectionGroup name="security">
+                <section name="access" overrideModeDefault="Deny" />
+                <section name="applicationDependencies" overrideModeDefault="Deny" />
+                <sectionGroup name="authentication">
+                    <section name="anonymousAuthentication" overrideModeDefault="Deny" />
+                    <section name="basicAuthentication" overrideModeDefault="Deny" />
+                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
+                    <section name="digestAuthentication" overrideModeDefault="Deny" />
+                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
+                    <section name="windowsAuthentication" overrideModeDefault="Deny" />
+                </sectionGroup>
+                <section name="authorization" overrideModeDefault="Allow" />
+                <section name="ipSecurity" overrideModeDefault="Deny" />
+                <section name="dynamicIpSecurity" overrideModeDefault="Deny" />
+                <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
+                <section name="requestFiltering" overrideModeDefault="Allow" />
+            </sectionGroup>
+            <section name="serverRuntime" overrideModeDefault="Deny" />
+            <section name="serverSideInclude" overrideModeDefault="Deny" />
+            <section name="staticContent" overrideModeDefault="Allow" />
+            <sectionGroup name="tracing">
+                <section name="traceFailedRequests" overrideModeDefault="Allow" />
+                <section name="traceProviderDefinitions" overrideModeDefault="Deny" />
+            </sectionGroup>
+            <section name="urlCompression" overrideModeDefault="Allow" />
+            <section name="validation" overrideModeDefault="Allow" />
+            <sectionGroup name="webdav">
+                <section name="globalSettings" overrideModeDefault="Deny" />
+                <section name="authoring" overrideModeDefault="Deny" />
+                <section name="authoringRules" overrideModeDefault="Deny" />
+            </sectionGroup>
+            <sectionGroup name="rewrite">
+                <section name="allowedServerVariables" overrideModeDefault="Deny" />
+                <section name="rules" overrideModeDefault="Allow" />
+                <section name="outboundRules" overrideModeDefault="Allow" />
+                <section name="globalRules" overrideModeDefault="Deny" allowDefinition="AppHostOnly" />
+                <section name="providers" overrideModeDefault="Allow" />
+                <section name="rewriteMaps" overrideModeDefault="Allow" />
+            </sectionGroup>
+            <section name="webSocket" overrideModeDefault="Deny" />
+        <section name="aspNetCore" overrideModeDefault="Allow" /></sectionGroup>
+    </configSections>
+
+    <configProtectedData>
+        <providers>
+            <add name="IISWASOnlyRsaProvider" type="" description="Uses RsaCryptoServiceProvider to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useMachineContainer="true" useOAEP="false" />
+            <add name="AesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisConfigurationKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAA/HKxkz6alrlAPez0IUgujj/6k3WxCDriHp6jvpv3yEZmo7h6SMzGLxo4mTrIQVHSkB7tmElHKfUFTzE2BWF7nFWHY6Z6qmGBauFzwJMwESjril7Gjz69RBFH259HQ6aRDq9Xfx7U7H4HtdmnKNqGjgl/hwPQBGeIlWiDh+sYv3vKB0QU971tjX6H2B+9armlnC8UOuA6JYMDMI/VLLL16sng0fWAy5JYe0YVABVjiAWDW264RZW9Tr1Oax4qHZKg+SdjULxeOc2YmpX+d0yeITo1HkPF1hN1gHpIPIUDo05ilHUNfR3OkjVCIQK4cFKCq1s8NH+y+13MxUC4Fn1AlQ==" />
+            <add name="IISWASOnlyAesProvider" type="Microsoft.ApplicationHost.AesProtectedConfigurationProvider" description="Uses an AES session key to encrypt and decrypt" keyContainerName="iisWasKey" cspProviderName="" useOAEP="false" useMachineContainer="true" sessionKey="AQIAAA5mAAAApAAALmU8lTC+v2qtfQiiiquvvLpUQqKLEXs+jSKoWCM/uPhyB++k4dwug19mGidNK5FYiWK2KYE1yhjVJcbp12E98Q0R2nT7eBiCMY2JairxQ591rqABK7keGaIjwH7PwGzSpILl3RJ4YFvJ/7ZXEJxeDZIjW8ZxWVXx+/VyHs9U3WguLEkgMUX3jrxJi8LouxaIVPJAv/YQ1ZCWs8zImitxX/C/7o7yaIxznfsN5nGQzQfpUDPeby99aw2zPVTtZI2LaWIBON8guABvZ6JtJVDWmfdK6sodbnwdZkr6/Z2rfvamT1dC1SpQrGG7ulR/f9/GXvCaW10ZVKxekBF/CYlNMg==" />
+        </providers>
+    </configProtectedData>
+
+    <system.applicationHost>
+
+        <applicationPools>
+            <add name="Clr4IntegratedAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+            <add name="Clr4ClassicAppPool" managedRuntimeVersion="v4.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+            <add name="Clr2IntegratedAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Integrated" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+            <add name="Clr2ClassicAppPool" managedRuntimeVersion="v2.0" managedPipelineMode="Classic" CLRConfigFile="%IIS_USER_HOME%\config\aspnet.config" autoStart="true" />
+            <add name="UnmanagedClassicAppPool" managedRuntimeVersion="" managedPipelineMode="Classic" autoStart="true" />
+            <applicationPoolDefaults managedRuntimeVersion="v4.0">
+                <processModel loadUserProfile="true" setProfileEnvironment="false" />
+            </applicationPoolDefaults>
+        </applicationPools>
+
+        <!--
+
+          The <listenerAdapters> section defines the protocols with which the
+          Windows Process Activation Service (WAS) binds.
+
+        -->
+        <listenerAdapters>
+            <add name="http" />
+        </listenerAdapters>
+
+        <sites>
+            <site name="WebSite1" id="1" serverAutoStart="true">
+                <application path="/">
+                    <virtualDirectory path="/" physicalPath="%IIS_SITES_HOME%\WebSite1" />
+                </application>
+                <bindings>
+                    <binding protocol="http" bindingInformation=":8080:localhost" />
+                </bindings>
+            </site>
+            <siteDefaults>
+                <!-- To enable logging, please change the below attribute "enabled" to "true" -->
+                <logFile logFormat="W3C" directory="%AppData%\Microsoft\IISExpressLogs" enabled="false" />
+                <traceFailedRequestsLogging directory="%AppData%\Microsoft" enabled="false" maxLogFileSizeKB="1024" />
+            </siteDefaults>
+            <applicationDefaults applicationPool="Clr4IntegratedAppPool" />
+            <virtualDirectoryDefaults allowSubDirConfig="true" />
+        </sites>
+
+        <webLimits />
+
+    </system.applicationHost>
+
+    <system.webServer>
+
+        <serverRuntime />
+
+        <asp scriptErrorSentToBrowser="true">
+            <cache diskTemplateCacheDirectory="%TEMP%\iisexpress\ASP Compiled Templates" />
+            <limits />
+        </asp>
+
+        <caching enabled="true" enableKernelCache="true">
+        </caching>
+
+        <cgi />
+
+        <defaultDocument enabled="true">
+            <files>
+                <add value="Default.htm" />
+                <add value="Default.asp" />
+                <add value="index.htm" />
+                <add value="index.html" />
+                <add value="iisstart.htm" />
+                <add value="default.aspx" />
+            </files>
+        </defaultDocument>
+
+        <directoryBrowse enabled="false" />
+
+        <fastCgi />
+
+        <!--
+
+          The <globalModules> section defines all native-code modules.
+          To enable a module, specify it in the <modules> section.
+
+        -->
+        <globalModules>
+            <add name="HttpLoggingModule" image="%IIS_BIN%\loghttp.dll" />
+            <add name="UriCacheModule" image="%IIS_BIN%\cachuri.dll" />
+            <add name="TokenCacheModule" image="%IIS_BIN%\cachtokn.dll" />
+            <add name="DynamicCompressionModule" image="%IIS_BIN%\compdyn.dll" />
+            <add name="StaticCompressionModule" image="%IIS_BIN%\compstat.dll" />
+            <add name="DefaultDocumentModule" image="%IIS_BIN%\defdoc.dll" />
+            <add name="DirectoryListingModule" image="%IIS_BIN%\dirlist.dll" />
+            <add name="ProtocolSupportModule" image="%IIS_BIN%\protsup.dll" />
+            <add name="HttpRedirectionModule" image="%IIS_BIN%\redirect.dll" />
+            <add name="ServerSideIncludeModule" image="%IIS_BIN%\iis_ssi.dll" />
+            <add name="StaticFileModule" image="%IIS_BIN%\static.dll" />
+            <add name="AnonymousAuthenticationModule" image="%IIS_BIN%\authanon.dll" />
+            <add name="CertificateMappingAuthenticationModule" image="%IIS_BIN%\authcert.dll" />
+            <add name="UrlAuthorizationModule" image="%IIS_BIN%\urlauthz.dll" />
+            <add name="BasicAuthenticationModule" image="%IIS_BIN%\authbas.dll" />
+            <add name="WindowsAuthenticationModule" image="%IIS_BIN%\authsspi.dll" />
+            <add name="IISCertificateMappingAuthenticationModule" image="%IIS_BIN%\authmap.dll" />
+            <add name="IpRestrictionModule" image="%IIS_BIN%\iprestr.dll" />
+            <add name="DynamicIpRestrictionModule" image="%IIS_BIN%\diprestr.dll" />
+            <add name="RequestFilteringModule" image="%IIS_BIN%\modrqflt.dll" />
+            <add name="CustomLoggingModule" image="%IIS_BIN%\logcust.dll" />
+            <add name="CustomErrorModule" image="%IIS_BIN%\custerr.dll" />
+            <add name="FailedRequestsTracingModule" image="%IIS_BIN%\iisfreb.dll" />
+            <add name="RequestMonitorModule" image="%IIS_BIN%\iisreqs.dll" />
+            <add name="IsapiModule" image="%IIS_BIN%\isapi.dll" />
+            <add name="IsapiFilterModule" image="%IIS_BIN%\filter.dll" />
+            <add name="CgiModule" image="%IIS_BIN%\cgi.dll" />
+            <add name="FastCgiModule" image="%IIS_BIN%\iisfcgi.dll" />
+<!--            <add name="WebDAVModule" image="%IIS_BIN%\webdav.dll" /> -->
+            <add name="RewriteModule" image="%IIS_BIN%\rewrite.dll" />
+            <add name="ConfigurationValidationModule" image="%IIS_BIN%\validcfg.dll" />
+            <add name="WebSocketModule" image="%IIS_BIN%\iiswsock.dll" />
+            <add name="WebMatrixSupportModule" image="%IIS_BIN%\webmatrixsup.dll" />
+            <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
+            <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" />
+            <add name="ManagedEngineV4.0_32bit" image="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
+            <add name="ManagedEngineV4.0_64bit" image="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
+            <add name="ApplicationInitializationModule" image="%IIS_BIN%\warmup.dll" />
+            <add name="AspNetCoreModule" image="%IIS_BIN%\aspnetcore.dll" />
+            <add name="AspNetCoreModuleV2" image="%IIS_BIN%\Asp.Net Core Module\V2\aspnetcorev2.dll" />
+        </globalModules>
+
+        <httpCompression directory="%TEMP%">
+            <scheme name="gzip" dll="%IIS_BIN%\gzip.dll" />
+            <dynamicTypes>
+                <add mimeType="text/*" enabled="true" />
+                <add mimeType="message/*" enabled="true" />
+                <add mimeType="application/x-javascript" enabled="true" />
+                <add mimeType="application/javascript" enabled="true" />
+                <add mimeType="*/*" enabled="false" />
+                <add mimeType="text/event-stream" enabled="false" />
+            </dynamicTypes>
+            <staticTypes>
+                <add mimeType="text/*" enabled="true" />
+                <add mimeType="message/*" enabled="true" />
+                <add mimeType="application/javascript" enabled="true" />
+                <add mimeType="application/atom+xml" enabled="true" />
+                <add mimeType="application/xaml+xml" enabled="true" />
+                <add mimeType="image/svg+xml" enabled="true" />
+                <add mimeType="*/*" enabled="false" />
+            </staticTypes>
+        </httpCompression>
+
+        <httpErrors lockAttributes="allowAbsolutePathsWhenDelegated,defaultPath">
+            <error statusCode="401" prefixLanguageFilePath="%IIS_BIN%\custerr" path="401.htm" />
+            <error statusCode="403" prefixLanguageFilePath="%IIS_BIN%\custerr" path="403.htm" />
+            <error statusCode="404" prefixLanguageFilePath="%IIS_BIN%\custerr" path="404.htm" />
+            <error statusCode="405" prefixLanguageFilePath="%IIS_BIN%\custerr" path="405.htm" />
+            <error statusCode="406" prefixLanguageFilePath="%IIS_BIN%\custerr" path="406.htm" />
+            <error statusCode="412" prefixLanguageFilePath="%IIS_BIN%\custerr" path="412.htm" />
+            <error statusCode="500" prefixLanguageFilePath="%IIS_BIN%\custerr" path="500.htm" />
+            <error statusCode="501" prefixLanguageFilePath="%IIS_BIN%\custerr" path="501.htm" />
+            <error statusCode="502" prefixLanguageFilePath="%IIS_BIN%\custerr" path="502.htm" />
+        </httpErrors>
+
+        <httpLogging dontLog="false" />
+
+        <httpProtocol>
+            <customHeaders>
+                <clear />
+                <add name="X-Powered-By" value="ASP.NET" />
+            </customHeaders>
+            <redirectHeaders>
+                <clear />
+            </redirectHeaders>
+        </httpProtocol>
+
+        <httpRedirect enabled="false" />
+
+        <httpTracing />
+
+        <isapiFilters>
+            <filter name="ASP.Net_2.0.50727-64" path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv2.0" />
+            <filter name="ASP.Net_2.0.50727.0" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv2.0" />
+            <filter name="ASP.Net_2.0_for_v1.1" path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_filter.dll" enableCache="true" preCondition="runtimeVersionv1.1" />
+            <filter name="ASP.Net_4.0_32bit" path="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness32,runtimeVersionv4.0" />
+            <filter name="ASP.Net_4.0_64bit" path="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_filter.dll" enableCache="true" preCondition="bitness64,runtimeVersionv4.0" />
+        </isapiFilters>
+
+        <odbcLogging />
+
+        <security>
+
+            <access sslFlags="None" />
+
+            <applicationDependencies>
+                <application name="Active Server Pages" groupId="ASP" />
+            </applicationDependencies>
+
+            <authentication>
+
+                <anonymousAuthentication enabled="true" userName="" />
+
+                <basicAuthentication enabled="false" />
+
+                <clientCertificateMappingAuthentication enabled="false" />
+
+                <digestAuthentication enabled="false" />
+
+                <iisClientCertificateMappingAuthentication enabled="false">
+                </iisClientCertificateMappingAuthentication>
+
+                <windowsAuthentication enabled="false">
+                    <providers>
+                        <add value="Negotiate" />
+                        <add value="NTLM" />
+                    </providers>
+                </windowsAuthentication>
+
+            </authentication>
+
+            <authorization>
+                <add accessType="Allow" users="*" />
+            </authorization>
+
+            <ipSecurity allowUnlisted="true" />
+
+            <isapiCgiRestriction notListedIsapisAllowed="true" notListedCgisAllowed="true">
+                <add path="%windir%\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
+                <add path="%windir%\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" allowed="true" groupId="ASP.NET_v4.0" description="ASP.NET_v4.0" />
+                <add path="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
+                <add path="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" allowed="true" groupId="ASP.NET v2.0.50727" description="ASP.NET v2.0.50727" />
+            </isapiCgiRestriction>
+
+            <requestFiltering>
+                <fileExtensions allowUnlisted="true" applyToWebDAV="true">
+                    <add fileExtension=".asa" allowed="false" />
+                    <add fileExtension=".asax" allowed="false" />
+                    <add fileExtension=".ascx" allowed="false" />
+                    <add fileExtension=".master" allowed="false" />
+                    <add fileExtension=".skin" allowed="false" />
+                    <add fileExtension=".browser" allowed="false" />
+                    <add fileExtension=".sitemap" allowed="false" />
+                    <add fileExtension=".config" allowed="false" />
+                    <add fileExtension=".cs" allowed="false" />
+                    <add fileExtension=".csproj" allowed="false" />
+                    <add fileExtension=".vb" allowed="false" />
+                    <add fileExtension=".vbproj" allowed="false" />
+                    <add fileExtension=".webinfo" allowed="false" />
+                    <add fileExtension=".licx" allowed="false" />
+                    <add fileExtension=".resx" allowed="false" />
+                    <add fileExtension=".resources" allowed="false" />
+                    <add fileExtension=".mdb" allowed="false" />
+                    <add fileExtension=".vjsproj" allowed="false" />
+                    <add fileExtension=".java" allowed="false" />
+                    <add fileExtension=".jsl" allowed="false" />
+                    <add fileExtension=".ldb" allowed="false" />
+                    <add fileExtension=".dsdgm" allowed="false" />
+                    <add fileExtension=".ssdgm" allowed="false" />
+                    <add fileExtension=".lsad" allowed="false" />
+                    <add fileExtension=".ssmap" allowed="false" />
+                    <add fileExtension=".cd" allowed="false" />
+                    <add fileExtension=".dsprototype" allowed="false" />
+                    <add fileExtension=".lsaprototype" allowed="false" />
+                    <add fileExtension=".sdm" allowed="false" />
+                    <add fileExtension=".sdmDocument" allowed="false" />
+                    <add fileExtension=".mdf" allowed="false" />
+                    <add fileExtension=".ldf" allowed="false" />
+                    <add fileExtension=".ad" allowed="false" />
+                    <add fileExtension=".dd" allowed="false" />
+                    <add fileExtension=".ldd" allowed="false" />
+                    <add fileExtension=".sd" allowed="false" />
+                    <add fileExtension=".adprototype" allowed="false" />
+                    <add fileExtension=".lddprototype" allowed="false" />
+                    <add fileExtension=".exclude" allowed="false" />
+                    <add fileExtension=".refresh" allowed="false" />
+                    <add fileExtension=".compiled" allowed="false" />
+                    <add fileExtension=".msgx" allowed="false" />
+                    <add fileExtension=".vsdisco" allowed="false" />
+                    <add fileExtension=".rules" allowed="false" />
+                </fileExtensions>
+                <verbs allowUnlisted="true" applyToWebDAV="true" />
+                <hiddenSegments applyToWebDAV="true">
+                    <add segment="web.config" />
+                    <add segment="bin" />
+                    <add segment="App_code" />
+                    <add segment="App_GlobalResources" />
+                    <add segment="App_LocalResources" />
+                    <add segment="App_WebReferences" />
+                    <add segment="App_Data" />
+                    <add segment="App_Browsers" />
+                </hiddenSegments>
+            </requestFiltering>
+
+        </security>
+
+        <serverSideInclude ssiExecDisable="false" />
+
+        <staticContent lockAttributes="isDocFooterFileName">
+            <mimeMap fileExtension=".323" mimeType="text/h323" />
+            <mimeMap fileExtension=".3g2" mimeType="video/3gpp2" />
+            <mimeMap fileExtension=".3gp2" mimeType="video/3gpp2" />
+            <mimeMap fileExtension=".3gp" mimeType="video/3gpp" />
+            <mimeMap fileExtension=".3gpp" mimeType="video/3gpp" />
+            <mimeMap fileExtension=".aac" mimeType="audio/aac" />
+            <mimeMap fileExtension=".aaf" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".aca" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".accdb" mimeType="application/msaccess" />
+            <mimeMap fileExtension=".accde" mimeType="application/msaccess" />
+            <mimeMap fileExtension=".accdt" mimeType="application/msaccess" />
+            <mimeMap fileExtension=".acx" mimeType="application/internet-property-stream" />
+            <mimeMap fileExtension=".adt" mimeType="audio/vnd.dlna.adts" />
+            <mimeMap fileExtension=".adts" mimeType="audio/vnd.dlna.adts" />
+            <mimeMap fileExtension=".afm" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".ai" mimeType="application/postscript" />
+            <mimeMap fileExtension=".aif" mimeType="audio/x-aiff" />
+            <mimeMap fileExtension=".aifc" mimeType="audio/aiff" />
+            <mimeMap fileExtension=".aiff" mimeType="audio/aiff" />
+            <mimeMap fileExtension=".appcache" mimeType="text/cache-manifest" />
+            <mimeMap fileExtension=".application" mimeType="application/x-ms-application" />
+            <mimeMap fileExtension=".art" mimeType="image/x-jg" />
+            <mimeMap fileExtension=".asd" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".asf" mimeType="video/x-ms-asf" />
+            <mimeMap fileExtension=".asi" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".asm" mimeType="text/plain" />
+            <mimeMap fileExtension=".asr" mimeType="video/x-ms-asf" />
+            <mimeMap fileExtension=".asx" mimeType="video/x-ms-asf" />
+            <mimeMap fileExtension=".atom" mimeType="application/atom+xml" />
+            <mimeMap fileExtension=".au" mimeType="audio/basic" />
+            <mimeMap fileExtension=".avi" mimeType="video/avi" />
+            <mimeMap fileExtension=".axs" mimeType="application/olescript" />
+            <mimeMap fileExtension=".bas" mimeType="text/plain" />
+            <mimeMap fileExtension=".bcpio" mimeType="application/x-bcpio" />
+            <mimeMap fileExtension=".bin" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".bmp" mimeType="image/bmp" />
+            <mimeMap fileExtension=".c" mimeType="text/plain" />
+            <mimeMap fileExtension=".cab" mimeType="application/vnd.ms-cab-compressed" />
+            <mimeMap fileExtension=".calx" mimeType="application/vnd.ms-office.calx" />
+            <mimeMap fileExtension=".cat" mimeType="application/vnd.ms-pki.seccat" />
+            <mimeMap fileExtension=".cdf" mimeType="application/x-cdf" />
+            <mimeMap fileExtension=".chm" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".class" mimeType="application/x-java-applet" />
+            <mimeMap fileExtension=".clp" mimeType="application/x-msclip" />
+            <mimeMap fileExtension=".cmx" mimeType="image/x-cmx" />
+            <mimeMap fileExtension=".cnf" mimeType="text/plain" />
+            <mimeMap fileExtension=".cod" mimeType="image/cis-cod" />
+            <mimeMap fileExtension=".cpio" mimeType="application/x-cpio" />
+            <mimeMap fileExtension=".cpp" mimeType="text/plain" />
+            <mimeMap fileExtension=".crd" mimeType="application/x-mscardfile" />
+            <mimeMap fileExtension=".crl" mimeType="application/pkix-crl" />
+            <mimeMap fileExtension=".crt" mimeType="application/x-x509-ca-cert" />
+            <mimeMap fileExtension=".csh" mimeType="application/x-csh" />
+            <mimeMap fileExtension=".css" mimeType="text/css" />
+            <mimeMap fileExtension=".csv" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".cur" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".dcr" mimeType="application/x-director" />
+            <mimeMap fileExtension=".deploy" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".der" mimeType="application/x-x509-ca-cert" />
+            <mimeMap fileExtension=".dib" mimeType="image/bmp" />
+            <mimeMap fileExtension=".dir" mimeType="application/x-director" />
+            <mimeMap fileExtension=".disco" mimeType="text/xml" />
+            <mimeMap fileExtension=".dll" mimeType="application/x-msdownload" />
+            <mimeMap fileExtension=".dll.config" mimeType="text/xml" />
+            <mimeMap fileExtension=".dlm" mimeType="text/dlm" />
+            <mimeMap fileExtension=".doc" mimeType="application/msword" />
+            <mimeMap fileExtension=".docm" mimeType="application/vnd.ms-word.document.macroEnabled.12" />
+            <mimeMap fileExtension=".docx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
+            <mimeMap fileExtension=".dot" mimeType="application/msword" />
+            <mimeMap fileExtension=".dotm" mimeType="application/vnd.ms-word.template.macroEnabled.12" />
+            <mimeMap fileExtension=".dotx" mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.template" />
+            <mimeMap fileExtension=".dsp" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".dtd" mimeType="text/xml" />
+            <mimeMap fileExtension=".dvi" mimeType="application/x-dvi" />
+            <mimeMap fileExtension=".dvr-ms" mimeType="video/x-ms-dvr" />
+            <mimeMap fileExtension=".dwf" mimeType="drawing/x-dwf" />
+            <mimeMap fileExtension=".dwp" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".dxr" mimeType="application/x-director" />
+            <mimeMap fileExtension=".eml" mimeType="message/rfc822" />
+            <mimeMap fileExtension=".emz" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".eot" mimeType="application/vnd.ms-fontobject" />
+            <mimeMap fileExtension=".eps" mimeType="application/postscript" />
+            <mimeMap fileExtension=".esd" mimeType="application/vnd.ms-cab-compressed" />
+            <mimeMap fileExtension=".etx" mimeType="text/x-setext" />
+            <mimeMap fileExtension=".evy" mimeType="application/envoy" />
+            <mimeMap fileExtension=".exe" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".exe.config" mimeType="text/xml" />
+            <mimeMap fileExtension=".fdf" mimeType="application/vnd.fdf" />
+            <mimeMap fileExtension=".fif" mimeType="application/fractals" />
+            <mimeMap fileExtension=".fla" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".flr" mimeType="x-world/x-vrml" />
+            <mimeMap fileExtension=".flv" mimeType="video/x-flv" />
+            <mimeMap fileExtension=".gif" mimeType="image/gif" />
+            <mimeMap fileExtension=".glb" mimeType="model/gltf-binary" />
+            <mimeMap fileExtension=".gtar" mimeType="application/x-gtar" />
+            <mimeMap fileExtension=".gz" mimeType="application/x-gzip" />
+            <mimeMap fileExtension=".h" mimeType="text/plain" />
+            <mimeMap fileExtension=".hdf" mimeType="application/x-hdf" />
+            <mimeMap fileExtension=".hdml" mimeType="text/x-hdml" />
+            <mimeMap fileExtension=".hhc" mimeType="application/x-oleobject" />
+            <mimeMap fileExtension=".hhk" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".hhp" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".hlp" mimeType="application/winhlp" />
+            <mimeMap fileExtension=".hqx" mimeType="application/mac-binhex40" />
+            <mimeMap fileExtension=".hta" mimeType="application/hta" />
+            <mimeMap fileExtension=".htc" mimeType="text/x-component" />
+            <mimeMap fileExtension=".htm" mimeType="text/html" />
+            <mimeMap fileExtension=".html" mimeType="text/html" />
+            <mimeMap fileExtension=".htt" mimeType="text/webviewhtml" />
+            <mimeMap fileExtension=".hxt" mimeType="text/html" />
+            <mimeMap fileExtension=".ico" mimeType="image/x-icon" />
+            <mimeMap fileExtension=".ics" mimeType="text/calendar" />
+            <mimeMap fileExtension=".ief" mimeType="image/ief" />
+            <mimeMap fileExtension=".iii" mimeType="application/x-iphone" />
+            <mimeMap fileExtension=".inf" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".ins" mimeType="application/x-internet-signup" />
+            <mimeMap fileExtension=".isp" mimeType="application/x-internet-signup" />
+            <mimeMap fileExtension=".IVF" mimeType="video/x-ivf" />
+            <mimeMap fileExtension=".jar" mimeType="application/java-archive" />
+            <mimeMap fileExtension=".java" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".jck" mimeType="application/liquidmotion" />
+            <mimeMap fileExtension=".jcz" mimeType="application/liquidmotion" />
+            <mimeMap fileExtension=".jfif" mimeType="image/pjpeg" />
+            <mimeMap fileExtension=".jpb" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".jpe" mimeType="image/jpeg" />
+            <mimeMap fileExtension=".jpeg" mimeType="image/jpeg" />
+            <mimeMap fileExtension=".jpg" mimeType="image/jpeg" />
+            <mimeMap fileExtension=".js" mimeType="application/javascript" />
+            <mimeMap fileExtension=".json" mimeType="application/json" />
+            <mimeMap fileExtension=".jsonld" mimeType="application/ld+json" />
+            <mimeMap fileExtension=".jsx" mimeType="text/jscript" />
+            <mimeMap fileExtension=".latex" mimeType="application/x-latex" />
+            <mimeMap fileExtension=".less" mimeType="text/css" />
+            <mimeMap fileExtension=".lit" mimeType="application/x-ms-reader" />
+            <mimeMap fileExtension=".lpk" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".lsf" mimeType="video/x-la-asf" />
+            <mimeMap fileExtension=".lsx" mimeType="video/x-la-asf" />
+            <mimeMap fileExtension=".lzh" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".m13" mimeType="application/x-msmediaview" />
+            <mimeMap fileExtension=".m14" mimeType="application/x-msmediaview" />
+            <mimeMap fileExtension=".m1v" mimeType="video/mpeg" />
+            <mimeMap fileExtension=".m2ts" mimeType="video/vnd.dlna.mpeg-tts" />
+            <mimeMap fileExtension=".m3u" mimeType="audio/x-mpegurl" />
+            <mimeMap fileExtension=".m4a" mimeType="audio/mp4" />
+            <mimeMap fileExtension=".m4v" mimeType="video/mp4" />
+            <mimeMap fileExtension=".man" mimeType="application/x-troff-man" />
+            <mimeMap fileExtension=".manifest" mimeType="application/x-ms-manifest" />
+            <mimeMap fileExtension=".map" mimeType="text/plain" />
+            <mimeMap fileExtension=".mdb" mimeType="application/x-msaccess" />
+            <mimeMap fileExtension=".mdp" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".me" mimeType="application/x-troff-me" />
+            <mimeMap fileExtension=".mht" mimeType="message/rfc822" />
+            <mimeMap fileExtension=".mhtml" mimeType="message/rfc822" />
+            <mimeMap fileExtension=".mid" mimeType="audio/mid" />
+            <mimeMap fileExtension=".midi" mimeType="audio/mid" />
+            <mimeMap fileExtension=".mix" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".mmf" mimeType="application/x-smaf" />
+            <mimeMap fileExtension=".mno" mimeType="text/xml" />
+            <mimeMap fileExtension=".mny" mimeType="application/x-msmoney" />
+            <mimeMap fileExtension=".mov" mimeType="video/quicktime" />
+            <mimeMap fileExtension=".movie" mimeType="video/x-sgi-movie" />
+            <mimeMap fileExtension=".mp2" mimeType="video/mpeg" />
+            <mimeMap fileExtension=".mp3" mimeType="audio/mpeg" />
+            <mimeMap fileExtension=".mp4" mimeType="video/mp4" />
+            <mimeMap fileExtension=".mp4v" mimeType="video/mp4" />
+            <mimeMap fileExtension=".mpa" mimeType="video/mpeg" />
+            <mimeMap fileExtension=".mpe" mimeType="video/mpeg" />
+            <mimeMap fileExtension=".mpeg" mimeType="video/mpeg" />
+            <mimeMap fileExtension=".mpg" mimeType="video/mpeg" />
+            <mimeMap fileExtension=".mpp" mimeType="application/vnd.ms-project" />
+            <mimeMap fileExtension=".mpv2" mimeType="video/mpeg" />
+            <mimeMap fileExtension=".ms" mimeType="application/x-troff-ms" />
+            <mimeMap fileExtension=".msi" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".mso" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".mvb" mimeType="application/x-msmediaview" />
+            <mimeMap fileExtension=".mvc" mimeType="application/x-miva-compiled" />
+            <mimeMap fileExtension=".nc" mimeType="application/x-netcdf" />
+            <mimeMap fileExtension=".nsc" mimeType="video/x-ms-asf" />
+            <mimeMap fileExtension=".nws" mimeType="message/rfc822" />
+            <mimeMap fileExtension=".ocx" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".oda" mimeType="application/oda" />
+            <mimeMap fileExtension=".odc" mimeType="text/x-ms-odc" />
+            <mimeMap fileExtension=".ods" mimeType="application/oleobject" />
+            <mimeMap fileExtension=".oga" mimeType="audio/ogg" />
+            <mimeMap fileExtension=".ogg" mimeType="video/ogg" />
+            <mimeMap fileExtension=".ogv" mimeType="video/ogg" />
+            <mimeMap fileExtension=".one" mimeType="application/onenote" />
+            <mimeMap fileExtension=".onea" mimeType="application/onenote" />
+            <mimeMap fileExtension=".onetoc" mimeType="application/onenote" />
+            <mimeMap fileExtension=".onetoc2" mimeType="application/onenote" />
+            <mimeMap fileExtension=".onetmp" mimeType="application/onenote" />
+            <mimeMap fileExtension=".onepkg" mimeType="application/onenote" />
+            <mimeMap fileExtension=".osdx" mimeType="application/opensearchdescription+xml" />
+            <mimeMap fileExtension=".otf" mimeType="font/otf" />
+            <mimeMap fileExtension=".p10" mimeType="application/pkcs10" />
+            <mimeMap fileExtension=".p12" mimeType="application/x-pkcs12" />
+            <mimeMap fileExtension=".p7b" mimeType="application/x-pkcs7-certificates" />
+            <mimeMap fileExtension=".p7c" mimeType="application/pkcs7-mime" />
+            <mimeMap fileExtension=".p7m" mimeType="application/pkcs7-mime" />
+            <mimeMap fileExtension=".p7r" mimeType="application/x-pkcs7-certreqresp" />
+            <mimeMap fileExtension=".p7s" mimeType="application/pkcs7-signature" />
+            <mimeMap fileExtension=".pbm" mimeType="image/x-portable-bitmap" />
+            <mimeMap fileExtension=".pcx" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".pcz" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".pdf" mimeType="application/pdf" />
+            <mimeMap fileExtension=".pfb" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".pfm" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".pfx" mimeType="application/x-pkcs12" />
+            <mimeMap fileExtension=".pgm" mimeType="image/x-portable-graymap" />
+            <mimeMap fileExtension=".pko" mimeType="application/vnd.ms-pki.pko" />
+            <mimeMap fileExtension=".pma" mimeType="application/x-perfmon" />
+            <mimeMap fileExtension=".pmc" mimeType="application/x-perfmon" />
+            <mimeMap fileExtension=".pml" mimeType="application/x-perfmon" />
+            <mimeMap fileExtension=".pmr" mimeType="application/x-perfmon" />
+            <mimeMap fileExtension=".pmw" mimeType="application/x-perfmon" />
+            <mimeMap fileExtension=".png" mimeType="image/png" />
+            <mimeMap fileExtension=".pnm" mimeType="image/x-portable-anymap" />
+            <mimeMap fileExtension=".pnz" mimeType="image/png" />
+            <mimeMap fileExtension=".pot" mimeType="application/vnd.ms-powerpoint" />
+            <mimeMap fileExtension=".potm" mimeType="application/vnd.ms-powerpoint.template.macroEnabled.12" />
+            <mimeMap fileExtension=".potx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.template" />
+            <mimeMap fileExtension=".ppam" mimeType="application/vnd.ms-powerpoint.addin.macroEnabled.12" />
+            <mimeMap fileExtension=".ppm" mimeType="image/x-portable-pixmap" />
+            <mimeMap fileExtension=".pps" mimeType="application/vnd.ms-powerpoint" />
+            <mimeMap fileExtension=".ppsm" mimeType="application/vnd.ms-powerpoint.slideshow.macroEnabled.12" />
+            <mimeMap fileExtension=".ppsx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slideshow" />
+            <mimeMap fileExtension=".ppt" mimeType="application/vnd.ms-powerpoint" />
+            <mimeMap fileExtension=".pptm" mimeType="application/vnd.ms-powerpoint.presentation.macroEnabled.12" />
+            <mimeMap fileExtension=".pptx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
+            <mimeMap fileExtension=".prf" mimeType="application/pics-rules" />
+            <mimeMap fileExtension=".prm" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".prx" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".ps" mimeType="application/postscript" />
+            <mimeMap fileExtension=".psd" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".psm" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".psp" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".pub" mimeType="application/x-mspublisher" />
+            <mimeMap fileExtension=".qt" mimeType="video/quicktime" />
+            <mimeMap fileExtension=".qtl" mimeType="application/x-quicktimeplayer" />
+            <mimeMap fileExtension=".qxd" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".ra" mimeType="audio/x-pn-realaudio" />
+            <mimeMap fileExtension=".ram" mimeType="audio/x-pn-realaudio" />
+            <mimeMap fileExtension=".rar" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".ras" mimeType="image/x-cmu-raster" />
+            <mimeMap fileExtension=".rf" mimeType="image/vnd.rn-realflash" />
+            <mimeMap fileExtension=".rgb" mimeType="image/x-rgb" />
+            <mimeMap fileExtension=".rm" mimeType="application/vnd.rn-realmedia" />
+            <mimeMap fileExtension=".rmi" mimeType="audio/mid" />
+            <mimeMap fileExtension=".roff" mimeType="application/x-troff" />
+            <mimeMap fileExtension=".rpm" mimeType="audio/x-pn-realaudio-plugin" />
+            <mimeMap fileExtension=".rtf" mimeType="application/rtf" />
+            <mimeMap fileExtension=".rtx" mimeType="text/richtext" />
+            <mimeMap fileExtension=".scd" mimeType="application/x-msschedule" />
+            <mimeMap fileExtension=".sct" mimeType="text/scriptlet" />
+            <mimeMap fileExtension=".sea" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".setpay" mimeType="application/set-payment-initiation" />
+            <mimeMap fileExtension=".setreg" mimeType="application/set-registration-initiation" />
+            <mimeMap fileExtension=".sgml" mimeType="text/sgml" />
+            <mimeMap fileExtension=".sh" mimeType="application/x-sh" />
+            <mimeMap fileExtension=".shar" mimeType="application/x-shar" />
+            <mimeMap fileExtension=".sit" mimeType="application/x-stuffit" />
+            <mimeMap fileExtension=".sldm" mimeType="application/vnd.ms-powerpoint.slide.macroEnabled.12" />
+            <mimeMap fileExtension=".sldx" mimeType="application/vnd.openxmlformats-officedocument.presentationml.slide" />
+            <mimeMap fileExtension=".smd" mimeType="audio/x-smd" />
+            <mimeMap fileExtension=".smi" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".smx" mimeType="audio/x-smd" />
+            <mimeMap fileExtension=".smz" mimeType="audio/x-smd" />
+            <mimeMap fileExtension=".snd" mimeType="audio/basic" />
+            <mimeMap fileExtension=".snp" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".spc" mimeType="application/x-pkcs7-certificates" />
+            <mimeMap fileExtension=".spl" mimeType="application/futuresplash" />
+            <mimeMap fileExtension=".spx" mimeType="audio/ogg" />
+            <mimeMap fileExtension=".src" mimeType="application/x-wais-source" />
+            <mimeMap fileExtension=".ssm" mimeType="application/streamingmedia" />
+            <mimeMap fileExtension=".sst" mimeType="application/vnd.ms-pki.certstore" />
+            <mimeMap fileExtension=".stl" mimeType="application/vnd.ms-pki.stl" />
+            <mimeMap fileExtension=".sv4cpio" mimeType="application/x-sv4cpio" />
+            <mimeMap fileExtension=".sv4crc" mimeType="application/x-sv4crc" />
+            <mimeMap fileExtension=".svg" mimeType="image/svg+xml" />
+            <mimeMap fileExtension=".svgz" mimeType="image/svg+xml" />
+            <mimeMap fileExtension=".swf" mimeType="application/x-shockwave-flash" />
+            <mimeMap fileExtension=".t" mimeType="application/x-troff" />
+            <mimeMap fileExtension=".tar" mimeType="application/x-tar" />
+            <mimeMap fileExtension=".tcl" mimeType="application/x-tcl" />
+            <mimeMap fileExtension=".tex" mimeType="application/x-tex" />
+            <mimeMap fileExtension=".texi" mimeType="application/x-texinfo" />
+            <mimeMap fileExtension=".texinfo" mimeType="application/x-texinfo" />
+            <mimeMap fileExtension=".tgz" mimeType="application/x-compressed" />
+            <mimeMap fileExtension=".thmx" mimeType="application/vnd.ms-officetheme" />
+            <mimeMap fileExtension=".thn" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".tif" mimeType="image/tiff" />
+            <mimeMap fileExtension=".tiff" mimeType="image/tiff" />
+            <mimeMap fileExtension=".toc" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".tr" mimeType="application/x-troff" />
+            <mimeMap fileExtension=".trm" mimeType="application/x-msterminal" />
+            <mimeMap fileExtension=".ts" mimeType="video/vnd.dlna.mpeg-tts" />
+            <mimeMap fileExtension=".tsv" mimeType="text/tab-separated-values" />
+            <mimeMap fileExtension=".ttf" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".tts" mimeType="video/vnd.dlna.mpeg-tts" />
+            <mimeMap fileExtension=".txt" mimeType="text/plain" />
+            <mimeMap fileExtension=".u32" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".uls" mimeType="text/iuls" />
+            <mimeMap fileExtension=".ustar" mimeType="application/x-ustar" />
+            <mimeMap fileExtension=".vbs" mimeType="text/vbscript" />
+            <mimeMap fileExtension=".vcf" mimeType="text/x-vcard" />
+            <mimeMap fileExtension=".vcs" mimeType="text/plain" />
+            <mimeMap fileExtension=".vdx" mimeType="application/vnd.ms-visio.viewer" />
+            <mimeMap fileExtension=".vml" mimeType="text/xml" />
+            <mimeMap fileExtension=".vsd" mimeType="application/vnd.visio" />
+            <mimeMap fileExtension=".vss" mimeType="application/vnd.visio" />
+            <mimeMap fileExtension=".vst" mimeType="application/vnd.visio" />
+            <mimeMap fileExtension=".vsto" mimeType="application/x-ms-vsto" />
+            <mimeMap fileExtension=".vsw" mimeType="application/vnd.visio" />
+            <mimeMap fileExtension=".vsx" mimeType="application/vnd.visio" />
+            <mimeMap fileExtension=".vtx" mimeType="application/vnd.visio" />
+            <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
+            <mimeMap fileExtension=".wav" mimeType="audio/wav" />
+            <mimeMap fileExtension=".wax" mimeType="audio/x-ms-wax" />
+            <mimeMap fileExtension=".wbmp" mimeType="image/vnd.wap.wbmp" />
+            <mimeMap fileExtension=".wcm" mimeType="application/vnd.ms-works" />
+            <mimeMap fileExtension=".wdb" mimeType="application/vnd.ms-works" />
+            <mimeMap fileExtension=".webm" mimeType="video/webm" />
+            <mimeMap fileExtension=".wks" mimeType="application/vnd.ms-works" />
+            <mimeMap fileExtension=".wm" mimeType="video/x-ms-wm" />
+            <mimeMap fileExtension=".wma" mimeType="audio/x-ms-wma" />
+            <mimeMap fileExtension=".wmd" mimeType="application/x-ms-wmd" />
+            <mimeMap fileExtension=".wmf" mimeType="application/x-msmetafile" />
+            <mimeMap fileExtension=".wml" mimeType="text/vnd.wap.wml" />
+            <mimeMap fileExtension=".wmlc" mimeType="application/vnd.wap.wmlc" />
+            <mimeMap fileExtension=".wmls" mimeType="text/vnd.wap.wmlscript" />
+            <mimeMap fileExtension=".wmlsc" mimeType="application/vnd.wap.wmlscriptc" />
+            <mimeMap fileExtension=".wmp" mimeType="video/x-ms-wmp" />
+            <mimeMap fileExtension=".wmv" mimeType="video/x-ms-wmv" />
+            <mimeMap fileExtension=".wmx" mimeType="video/x-ms-wmx" />
+            <mimeMap fileExtension=".wmz" mimeType="application/x-ms-wmz" />
+            <mimeMap fileExtension=".woff" mimeType="font/x-woff" />
+            <mimeMap fileExtension=".woff2" mimeType="application/font-woff2" />
+            <mimeMap fileExtension=".wps" mimeType="application/vnd.ms-works" />
+            <mimeMap fileExtension=".wri" mimeType="application/x-mswrite" />
+            <mimeMap fileExtension=".wrl" mimeType="x-world/x-vrml" />
+            <mimeMap fileExtension=".wrz" mimeType="x-world/x-vrml" />
+            <mimeMap fileExtension=".wsdl" mimeType="text/xml" />
+            <mimeMap fileExtension=".wtv" mimeType="video/x-ms-wtv" />
+            <mimeMap fileExtension=".wvx" mimeType="video/x-ms-wvx" />
+            <mimeMap fileExtension=".x" mimeType="application/directx" />
+            <mimeMap fileExtension=".xaf" mimeType="x-world/x-vrml" />
+            <mimeMap fileExtension=".xaml" mimeType="application/xaml+xml" />
+            <mimeMap fileExtension=".xap" mimeType="application/x-silverlight-app" />
+            <mimeMap fileExtension=".xbap" mimeType="application/x-ms-xbap" />
+            <mimeMap fileExtension=".xbm" mimeType="image/x-xbitmap" />
+            <mimeMap fileExtension=".xdr" mimeType="text/plain" />
+            <mimeMap fileExtension=".xht" mimeType="application/xhtml+xml" />
+            <mimeMap fileExtension=".xhtml" mimeType="application/xhtml+xml" />
+            <mimeMap fileExtension=".xla" mimeType="application/vnd.ms-excel" />
+            <mimeMap fileExtension=".xlam" mimeType="application/vnd.ms-excel.addin.macroEnabled.12" />
+            <mimeMap fileExtension=".xlc" mimeType="application/vnd.ms-excel" />
+            <mimeMap fileExtension=".xlm" mimeType="application/vnd.ms-excel" />
+            <mimeMap fileExtension=".xls" mimeType="application/vnd.ms-excel" />
+            <mimeMap fileExtension=".xlsb" mimeType="application/vnd.ms-excel.sheet.binary.macroEnabled.12" />
+            <mimeMap fileExtension=".xlsm" mimeType="application/vnd.ms-excel.sheet.macroEnabled.12" />
+            <mimeMap fileExtension=".xlsx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
+            <mimeMap fileExtension=".xlt" mimeType="application/vnd.ms-excel" />
+            <mimeMap fileExtension=".xltm" mimeType="application/vnd.ms-excel.template.macroEnabled.12" />
+            <mimeMap fileExtension=".xltx" mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.template" />
+            <mimeMap fileExtension=".xlw" mimeType="application/vnd.ms-excel" />
+            <mimeMap fileExtension=".xml" mimeType="text/xml" />
+            <mimeMap fileExtension=".xof" mimeType="x-world/x-vrml" />
+            <mimeMap fileExtension=".xpm" mimeType="image/x-xpixmap" />
+            <mimeMap fileExtension=".xps" mimeType="application/vnd.ms-xpsdocument" />
+            <mimeMap fileExtension=".xsd" mimeType="text/xml" />
+            <mimeMap fileExtension=".xsf" mimeType="text/xml" />
+            <mimeMap fileExtension=".xsl" mimeType="text/xml" />
+            <mimeMap fileExtension=".xslt" mimeType="text/xml" />
+            <mimeMap fileExtension=".xsn" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".xtp" mimeType="application/octet-stream" />
+            <mimeMap fileExtension=".xwd" mimeType="image/x-xwindowdump" />
+            <mimeMap fileExtension=".z" mimeType="application/x-compress" />
+            <mimeMap fileExtension=".zip" mimeType="application/x-zip-compressed" />
+        </staticContent>
+
+        <tracing>
+
+            <traceFailedRequests>
+                <add path="*">
+                    <traceAreas>
+                        <add provider="ASP" verbosity="Verbose" />
+                        <add provider="ASPNET" areas="Infrastructure,Module,Page,AppServices" verbosity="Verbose" />
+                        <add provider="ISAPI Extension" verbosity="Verbose" />
+                        <add provider="WWW Server" areas="Authentication,Security,Filter,StaticFile,CGI,Compression,Cache,RequestNotifications,Module,Rewrite,WebSocket" verbosity="Verbose" />
+                    </traceAreas>
+                    <failureDefinitions statusCodes="200-999" />
+                </add>
+            </traceFailedRequests>
+
+            <traceProviderDefinitions>
+                <add name="WWW Server" guid="{3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}">
+                    <areas>
+                        <clear />
+                        <add name="Authentication" value="2" />
+                        <add name="Security" value="4" />
+                        <add name="Filter" value="8" />
+                        <add name="StaticFile" value="16" />
+                        <add name="CGI" value="32" />
+                        <add name="Compression" value="64" />
+                        <add name="Cache" value="128" />
+                        <add name="RequestNotifications" value="256" />
+                        <add name="Module" value="512" />
+                        <add name="Rewrite" value="1024" />
+                        <add name="FastCGI" value="4096" />
+                        <add name="WebSocket" value="16384" />
+                        <add name="ANCM" value="65536" />
+                    </areas>
+                </add>
+                <add name="ASP" guid="{06b94d9a-b15e-456e-a4ef-37c984a2cb4b}">
+                    <areas>
+                        <clear />
+                    </areas>
+                </add>
+                <add name="ISAPI Extension" guid="{a1c2040e-8840-4c31-ba11-9871031a19ea}">
+                    <areas>
+                        <clear />
+                    </areas>
+                </add>
+                <add name="ASPNET" guid="{AFF081FE-0247-4275-9C4E-021F3DC1DA35}">
+                    <areas>
+                        <add name="Infrastructure" value="1" />
+                        <add name="Module" value="2" />
+                        <add name="Page" value="4" />
+                        <add name="AppServices" value="8" />
+                    </areas>
+                </add>
+            </traceProviderDefinitions>
+
+        </tracing>
+
+        <urlCompression />
+
+        <validation />
+        <webdav>
+            <globalSettings>
+                <propertyStores>
+                    <add name="webdav_simple_prop" image="%IIS_BIN%\webdav_simple_prop.dll" image32="%IIS_BIN%\webdav_simple_prop.dll" />
+                </propertyStores>
+                <lockStores>
+                    <add name="webdav_simple_lock" image="%IIS_BIN%\webdav_simple_lock.dll" image32="%IIS_BIN%\webdav_simple_lock.dll" />
+                </lockStores>
+
+            </globalSettings>
+            <authoring>
+                <locks enabled="true" lockStore="webdav_simple_lock" />
+            </authoring>
+            <authoringRules />
+        </webdav>
+        <webSocket />
+        <applicationInitialization />
+
+    </system.webServer>
+    <location path="" overrideMode="Allow">
+        <system.webServer>
+            <modules>
+                <add name="IsapiFilterModule" lockItem="true" />
+                <add name="BasicAuthenticationModule" lockItem="true" />
+                <add name="IsapiModule" lockItem="true" />
+                <add name="HttpLoggingModule" lockItem="true" />
+                <add name="DynamicCompressionModule" lockItem="true" />
+                <add name="StaticCompressionModule" lockItem="true" />
+                <add name="DefaultDocumentModule" lockItem="true" />
+                <add name="DirectoryListingModule" lockItem="true" />
+                <add name="ProtocolSupportModule" lockItem="true" />
+                <add name="HttpRedirectionModule" lockItem="true" />
+                <add name="ServerSideIncludeModule" lockItem="true" />
+                <add name="StaticFileModule" lockItem="true" />
+                <add name="AnonymousAuthenticationModule" lockItem="true" />
+                <add name="CertificateMappingAuthenticationModule" lockItem="true" />
+                <add name="UrlAuthorizationModule" lockItem="true" />
+                <add name="WindowsAuthenticationModule" lockItem="true" />
+                <add name="IISCertificateMappingAuthenticationModule" lockItem="true" />
+                <add name="WebMatrixSupportModule" lockItem="true" />
+                <add name="IpRestrictionModule" lockItem="true" />
+                <add name="DynamicIpRestrictionModule" lockItem="true" />
+                <add name="RequestFilteringModule" lockItem="true" />
+                <add name="CustomLoggingModule" lockItem="true" />
+                <add name="CustomErrorModule" lockItem="true" />
+                <add name="FailedRequestsTracingModule" lockItem="true" />
+                <add name="CgiModule" lockItem="true" />
+                <add name="FastCgiModule" lockItem="true" />
+<!--                <add name="WebDAVModule" /> -->
+                <add name="RewriteModule" />
+                <add name="OutputCache" type="System.Web.Caching.OutputCacheModule" preCondition="managedHandler" />
+                <add name="Session" type="System.Web.SessionState.SessionStateModule" preCondition="managedHandler" />
+                <add name="WindowsAuthentication" type="System.Web.Security.WindowsAuthenticationModule" preCondition="managedHandler" />
+                <add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule" preCondition="managedHandler" />
+                <add name="DefaultAuthentication" type="System.Web.Security.DefaultAuthenticationModule" preCondition="managedHandler" />
+                <add name="RoleManager" type="System.Web.Security.RoleManagerModule" preCondition="managedHandler" />
+                <add name="UrlAuthorization" type="System.Web.Security.UrlAuthorizationModule" preCondition="managedHandler" />
+                <add name="FileAuthorization" type="System.Web.Security.FileAuthorizationModule" preCondition="managedHandler" />
+                <add name="AnonymousIdentification" type="System.Web.Security.AnonymousIdentificationModule" preCondition="managedHandler" />
+                <add name="Profile" type="System.Web.Profile.ProfileModule" preCondition="managedHandler" />
+                <add name="UrlMappingsModule" type="System.Web.UrlMappingsModule" preCondition="managedHandler" />
+                <add name="ApplicationInitializationModule" lockItem="true" />
+                <add name="WebSocketModule" lockItem="true" />
+                <add name="ServiceModel-4.0" type="System.ServiceModel.Activation.ServiceHttpModule,System.ServiceModel.Activation,Version=4.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
+                <add name="ConfigurationValidationModule" lockItem="true" />
+                <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="managedHandler,runtimeVersionv4.0" />
+                <add name="ScriptModule-4.0" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="managedHandler,runtimeVersionv4.0" />
+                <add name="ServiceModel" type="System.ServiceModel.Activation.HttpModule, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="managedHandler,runtimeVersionv2.0" />
+                <add name="AspNetCoreModule" lockItem="true" />
+                <add name="AspNetCoreModuleV2" lockItem="true" />
+            </modules>
+            <handlers accessPolicy="Read, Script">
+<!--                <add name="WebDAV" path="*" verb="PROPFIND,PROPPATCH,MKCOL,PUT,COPY,DELETE,MOVE,LOCK,UNLOCK" modules="WebDAVModule" resourceType="Unspecified" requireAccess="None" /> -->
+                <add name="AXD-ISAPI-4.0_64bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="PageHandlerFactory-ISAPI-4.0_64bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="SimpleHandlerFactory-ISAPI-4.0_64bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="WebServiceHandlerFactory-ISAPI-4.0_64bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_64bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_64bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="svc-ISAPI-4.0_64bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+                <add name="rules-ISAPI-4.0_64bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+                <add name="xoml-ISAPI-4.0_64bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+                <add name="xamlx-ISAPI-4.0_64bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" />
+                <add name="aspq-ISAPI-4.0_64bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="cshtm-ISAPI-4.0_64bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="cshtml-ISAPI-4.0_64bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="vbhtm-ISAPI-4.0_64bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="vbhtml-ISAPI-4.0_64bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="svc-Integrated" path="*.svc" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="svc-ISAPI-2.0" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
+                <add name="xoml-Integrated" path="*.xoml" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="xoml-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
+                <add name="rules-Integrated" path="*.rules" verb="*" type="System.ServiceModel.Activation.HttpHandler, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="rules-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
+                <add name="AXD-ISAPI-4.0_32bit" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="PageHandlerFactory-ISAPI-4.0_32bit" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="SimpleHandlerFactory-ISAPI-4.0_32bit" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="WebServiceHandlerFactory-ISAPI-4.0_32bit" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-rem-ISAPI-4.0_32bit" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-soap-ISAPI-4.0_32bit" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="svc-ISAPI-4.0_32bit" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+                <add name="rules-ISAPI-4.0_32bit" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+                <add name="xoml-ISAPI-4.0_32bit" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+                <add name="xamlx-ISAPI-4.0_32bit" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" />
+                <add name="aspq-ISAPI-4.0_32bit" path="*.aspq" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="cshtm-ISAPI-4.0_32bit" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="cshtml-ISAPI-4.0_32bit" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="vbhtm-ISAPI-4.0_32bit" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="vbhtml-ISAPI-4.0_32bit" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="TraceHandler-Integrated-4.0" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="WebAdminHandler-Integrated-4.0" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="AssemblyResourceLoader-Integrated-4.0" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="PageHandlerFactory-Integrated-4.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="SimpleHandlerFactory-Integrated-4.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="WebServiceHandlerFactory-Integrated-4.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="HttpRemotingHandlerFactory-rem-Integrated-4.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="HttpRemotingHandlerFactory-soap-Integrated-4.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory, System.Runtime.Remoting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="svc-Integrated-4.0" path="*.svc" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="rules-Integrated-4.0" path="*.rules" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="xoml-Integrated-4.0" path="*.xoml" verb="*" type="System.ServiceModel.Activation.ServiceHttpHandlerFactory, System.ServiceModel.Activation, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="xamlx-Integrated-4.0" path="*.xamlx" verb="GET,HEAD,POST,DEBUG" type="System.Xaml.Hosting.XamlHttpHandlerFactory, System.Xaml.Hosting, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="aspq-Integrated-4.0" path="*.aspq" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="cshtm-Integrated-4.0" path="*.cshtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="cshtml-Integrated-4.0" path="*.cshtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="vbhtm-Integrated-4.0" path="*.vbhtm" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="vbhtml-Integrated-4.0" path="*.vbhtml" verb="GET,HEAD,POST,DEBUG" type="System.Web.HttpForbiddenHandler" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="ScriptHandlerFactoryAppServices-Integrated-4.0" path="*_AppService.axd" verb="*" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="ScriptResourceIntegrated-4.0" path="*ScriptResource.axd" verb="GET,HEAD" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" preCondition="integratedMode,runtimeVersionv4.0" />
+                <add name="ASPClassic" path="*.asp" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
+                <add name="SecurityCertificate" path="*.cer" verb="GET,HEAD,POST" modules="IsapiModule" scriptProcessor="%IIS_BIN%\asp.dll" resourceType="File" />
+                <add name="ISAPI-dll" path="*.dll" verb="*" modules="IsapiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
+                <add name="TraceHandler-Integrated" path="trace.axd" verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TraceHandler" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="WebAdminHandler-Integrated" path="WebAdmin.axd" verb="GET,DEBUG" type="System.Web.Handlers.WebAdminHandler" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="AssemblyResourceLoader-Integrated" path="WebResource.axd" verb="GET,DEBUG" type="System.Web.Handlers.AssemblyResourceLoader" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="PageHandlerFactory-Integrated" path="*.aspx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="SimpleHandlerFactory-Integrated" path="*.ashx" verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.SimpleHandlerFactory" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="WebServiceHandlerFactory-Integrated" path="*.asmx" verb="GET,HEAD,POST,DEBUG" type="System.Web.Services.Protocols.WebServiceHandlerFactory,System.Web.Services,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="HttpRemotingHandlerFactory-rem-Integrated" path="*.rem" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="HttpRemotingHandlerFactory-soap-Integrated" path="*.soap" verb="GET,HEAD,POST,DEBUG" type="System.Runtime.Remoting.Channels.Http.HttpRemotingHandlerFactory,System.Runtime.Remoting,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089" preCondition="integratedMode,runtimeVersionv2.0" />
+                <add name="AXD-ISAPI-2.0" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+                <add name="PageHandlerFactory-ISAPI-2.0" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+                <add name="SimpleHandlerFactory-ISAPI-2.0" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+                <add name="WebServiceHandlerFactory-ISAPI-2.0" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32" responseBufferLimit="0" />
+                <add name="svc-ISAPI-2.0-64" path="*.svc" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
+                <add name="AXD-ISAPI-2.0-64" path="*.axd" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+                <add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+                <add name="SimpleHandlerFactory-ISAPI-2.0-64" path="*.ashx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+                <add name="WebServiceHandlerFactory-ISAPI-2.0-64" path="*.asmx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-rem-ISAPI-2.0-64" path="*.rem" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+                <add name="HttpRemotingHandlerFactory-soap-ISAPI-2.0-64" path="*.soap" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
+                <add name="rules-64-ISAPI-2.0" path="*.rules" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
+                <add name="xoml-64-ISAPI-2.0" path="*.xoml" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
+                <add name="CGI-exe" path="*.exe" verb="*" modules="CgiModule" resourceType="File" requireAccess="Execute" allowPathInfo="true" />
+                <add name="SSINC-stm" path="*.stm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
+                <add name="SSINC-shtm" path="*.shtm" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
+                <add name="SSINC-shtml" path="*.shtml" verb="GET,HEAD,POST" modules="ServerSideIncludeModule" resourceType="File" />
+                <add name="TRACEVerbHandler" path="*" verb="TRACE" modules="ProtocolSupportModule" requireAccess="None" />
+                <add name="OPTIONSVerbHandler" path="*" verb="OPTIONS" modules="ProtocolSupportModule" requireAccess="None" />
+                <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
+                <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
+                <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
+                <add name="StaticFile" path="*" verb="*" modules="StaticFileModule,DefaultDocumentModule,DirectoryListingModule" resourceType="Either" requireAccess="Read" />
+            </handlers>
+        </system.webServer>
+    </location>
+</configuration>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
new file mode 100644
index 0000000..731ddce
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.backup.json"
@@ -0,0 +1,1372 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\ipaddresscontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\ipaddresscontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\authorizationrecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\authorizationrecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\facerecognitioncontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\facerecognitioncontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\ipaddressserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\ipaddressserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\loginhsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\loginhsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iipaddressserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iipaddressserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\ifacerecognitionserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\ifacerecognitionserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iparametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iparametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\idepartmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\idepartmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iauthorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iauthorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\authorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\authorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\maintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\maintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iloginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iloginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\departmentcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\departmentcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_customipaddress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_customipaddress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_authorizationrecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_authorizationrecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\imaintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\imaintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\maintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\maintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\imaintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\imaintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\filter\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\maintenancecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\maintenancecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\maintenanceteamcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\maintenanceteamcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\loginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\loginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_loginhsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_loginhsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_maintenance.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_maintenance.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_maintenanceteam.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_maintenanceteam.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\ialarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\ialarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_alarmresethsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_alarmresethsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_facerecognition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_facerecognition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\parameterscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\parameterscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\parametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\parametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\wideseawcs_server.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs_server.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iteamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iteamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iunitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iunitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\teamcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\teamcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\teamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\teamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\ssg\\alarmresetjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\ssg\\alarmresetjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\ssg\\ssgonejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\ssg\\ssgonejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\paginationdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\paginationdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\alarmresethsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\alarmresethsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\alarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\alarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\departmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\departmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\unitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\unitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\wideseawcs_itaskinfoservice.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\wideseawcs_itaskinfoservice.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_roleauthservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_roleauthservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_iwmspart\\istockinfo_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|solutionrelative:wideseawcs_iwmspart\\istockinfo_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_iwmspart\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|solutionrelative:wideseawcs_iwmspart\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_common\\faceai\\facedraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\faceai\\facedraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\batchcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\batchcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\unitcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\unitcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_rolecontroller.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_rolecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_tenantcontroller.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_tenantcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_user.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_user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_dictionarylistcontroller.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_dictionarylistcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\userpermissions.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\\userpermissions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\facerecognitionserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\facerecognitionserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_tenant.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_tenant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\ssg\\ssgtwojob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\ssg\\ssgtwojob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\stockinfodetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\stockinfodetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\filter\\websockethostservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\websockethostservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\logininfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\logininfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\upstreamidto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\upstreamidto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\userdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\userdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\system\\adduserdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\adduserdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\speeddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\speeddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Sys_DictionaryList.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Sys_DictionaryList.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 2,
+          "Children": [
+            {
+              "$type": "Document",
+              "DocumentIndex": 25,
+              "Title": "Dt_Maintenance.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "ViewState": "AgIAAC0AAAAAAAAAAAAowDkAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T07:46:38.11Z",
+              "IsPinned": true
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "IPaddressController .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:13:18.603Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "FaceRecognitionController .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T01:33:09.914Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "AuthorizationRecordController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T02:01:22.581Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "IPaddressServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAswA0AAAB1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:11:58.411Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "LoginhsyController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "ViewState": "AgIAAAIAAAAAAAAAAAAjwA4AAABIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:47.968Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "IIPaddressServer .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:11:31.203Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "IFaceRecognitionServer .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:36.184Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "IParametersService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAC4AAAArAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T07:15:50.346Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "IDepartmentService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:26.719Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "IAuthorizationRecordServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:58:46.173Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "AuthorizationRecordServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:59:21.3Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "MaintenanceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "ViewState": "AgIAAE8AAAAAAAAAAAAmwIcAAABGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-04-07T08:11:35.497Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "ILoginhsyService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAADwvxQAAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-26T08:27:56.564Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "DepartmentController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAABcAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T01:33:07.117Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 14,
+              "Title": "Dt_CustomIPaddress.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAA+AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:06:45.232Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 15,
+              "Title": "Dt_AuthorizationRecord.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAzAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:52:25.187Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 17,
+              "Title": "MaintenanceTeamService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "ViewState": "AgIAAC8AAAAAAAAAAAAswGIAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T08:43:31.515Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 16,
+              "Title": "IMaintenanceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAACsAAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-09T00:56:14.859Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 18,
+              "Title": "Sys_UserFaceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "ViewState": "AgIAABUAAAAAAAAAAAAkwIkAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-06T09:08:12.974Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 19,
+              "Title": "IMaintenanceTeamService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAAABYAAAAnAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T08:43:29.058Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 20,
+              "Title": "WebSocketSetup.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAUAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T08:33:49.8Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 21,
+              "Title": "MaintenanceController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "ViewState": "AgIAADYAAAAAAAAAAAAWwE4AAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T06:46:47.921Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 22,
+              "Title": "MaintenanceTeamController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T07:34:13.306Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 23,
+              "Title": "LoginhsyService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "ViewState": "AgIAAAkAAAAAAAAAAAAgwCQAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:07:25.944Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 24,
+              "Title": "Dt_Loginhsy.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "ViewState": "AgIAAAsAAAAAAAAAAAAwwBYAAABQAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:05:05.578Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 26,
+              "Title": "Dt_MaintenanceTeam.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:18:19.124Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 27,
+              "Title": "IAlarmResetHsyServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "ViewState": "AgIAABsAAAAAAAAAAAAYwCUAAAAlAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:22.437Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 28,
+              "Title": "Dt_AlarmResetHsy.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAEAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:20:40.939Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 32,
+              "Title": "WIDESEAWCS_Server",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-06-10T08:29:47.268Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 30,
+              "Title": "ParametersController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "ViewState": "AgIAABkAAAAAAAAAAAAQwCEAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T07:19:58.201Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 31,
+              "Title": "ParametersService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "ViewState": "AgIAAIoAAAAAAAAAAAAgwMQAAAA/AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T09:19:36.589Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 29,
+              "Title": "Dt_FaceRecognition.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxMAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T02:04:21.38Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 33,
+              "Title": "ITeamCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:15:15.177Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 34,
+              "Title": "IUnitCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "ViewState": "AgIAAAkAAAAAAAAAAAAAAA8AAAAjAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:21:45.987Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 35,
+              "Title": "ISys_UserService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "ViewState": "AgIAACcAAAAAAAAAAAAmwFwAAAAoAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T07:03:56.602Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 36,
+              "Title": "TeamCategoryController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxEAAABgAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:17:23.2Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 37,
+              "Title": "TeamCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAqAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:15:40.143Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 39,
+              "Title": "SSGOneJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "ViewState": "AgIAACsAAAAAAAAAAAAQwDQAAABHAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T05:49:41.175Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 38,
+              "Title": "AlarmResetJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "ViewState": "AgIAAG0AAAAAAAAAAAAIwDUAAAAkAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T06:55:40.547Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 40,
+              "Title": "PaginationDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAPAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:10:31.842Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 41,
+              "Title": "ISys_UserFaceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-06T09:08:07.368Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 43,
+              "Title": "AlarmResetHsyServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "ViewState": "AgIAABkAAAAAAAAAAAAQwGYAAAAhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-26T08:01:00.912Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 42,
+              "Title": "AlarmResetHsyController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T08:52:27.181Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 44,
+              "Title": "dt_batchinfoService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "ViewState": "AgIAABMAAAAAAAAAAAAUwBYAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-06T02:41:11.066Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 45,
+              "Title": "DepartmentService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAAABEAAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T01:09:45.34Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 46,
+              "Title": "UnitCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAABFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:22:32.495Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 48,
+              "Title": "ISys_RoleService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAjAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-04T01:28:03.866Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 47,
+              "Title": "WIDESEAWCS_ITaskInfoService.csproj",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-06-05T06:35:36.771Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 49,
+              "Title": "ISys_RoleAuthService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-04T01:28:01.558Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 50,
+              "Title": "IStockInfo_HtyService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-03T09:13:18.222Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 52,
+              "Title": "LocationInfoController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "ViewState": "AgIAACEAAAAAAAAAAAAcwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-03T09:12:53.84Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 53,
+              "Title": "RouterController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "ViewState": "AgIAAB0AAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-03T09:12:44.744Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 51,
+              "Title": "IStockQuantityChangeRecordService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "RelativeToolTip": "WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:55:41.783Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 54,
+              "Title": "FaceDraw.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "ViewState": "AgIAAA4AAAAAAAAAAAAAABYAAABRAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T09:35:45.751Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 55,
+              "Title": "LocationInfoService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "ViewState": "AgIAAGoAAAAAAAAAAAAvwIIAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T09:34:18.654Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 56,
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ViewState": "AgIAACECAAAAAAAAAAD4vzACAAAlAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:57:04.021Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 57,
+              "Title": "BatchController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxUAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T09:22:44.301Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 58,
+              "Title": "Sys_UserController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ViewState": "AgIAALoAAAAAAAAAAAAWwMkAAAAgAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T06:41:46.169Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 59,
+              "Title": "UnitCategoryController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:25:28.385Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 61,
+              "Title": "Sys_TenantController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T06:19:13.971Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 60,
+              "Title": "Sys_RoleController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T06:19:14.666Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 62,
+              "Title": "Sys_User.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "ViewState": "AgIAACIAAAAAAAAAAAAQwC8AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T01:52:31.578Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 63,
+              "Title": "Sys_DictionaryListController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T02:47:36.109Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 64,
+              "Title": "UserPermissions.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvw0AAAAnAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:57:45.08Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 65,
+              "Title": "FaceRecognitionServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:07:25.155Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 66,
+              "Title": "Sys_Tenant.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "ViewState": "AgIAACMAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:08:14.232Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 67,
+              "Title": "SSGTwoJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "ViewState": "AgIAACYAAAAAAAAAAAAIwDYAAAARAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T05:49:40.413Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 68,
+              "Title": "StockQuantityChangeRecordController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T06:48:30.952Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 71,
+              "Title": "ITaskService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ViewState": "AgIAABsAAAAAAAAAAAAAABcAAAATAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:55:49.894Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 70,
+              "Title": "OHTJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ViewState": "AgIAABUAAAAAAAAAAAAvwCUAAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T07:21:46.351Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 69,
+              "Title": "StockInfoDetailController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T09:28:54.682Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 72,
+              "Title": "launchSettings.json",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAEAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-05-23T02:09:24.896Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 73,
+              "Title": "WebSocketHostService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T08:33:47.231Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 74,
+              "Title": "DBSeed.cs",
+              "DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs",
+              "ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs",
+              "ViewState": "AgIAAB0BAAAAAAAAAAAAABQBAAASAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T07:49:17.776Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 75,
+              "Title": "LoginInfo.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\LoginInfo.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\LoginInfo.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\LoginInfo.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\LoginInfo.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAATAAAAAQAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-16T07:03:23.664Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 76,
+              "Title": "UpstreamIDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwQAAAATAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:55:00.208Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 82,
+              "Title": "SpeedDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ViewState": "AgIAAAsAAAAAAAAAAAAAwB8AAAA0AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:09:56.746Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 77,
+              "Title": "UserDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:10:08.862Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 78,
+              "Title": "AddUserDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:09:43.246Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 79,
+              "Title": "Face.cs",
+              "DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs",
+              "ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAswAwAAAAWAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-09T01:17:12.476Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 80,
+              "Title": "index.html",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
+              "RelativeToolTip": "WIDESEAWCS_Server\\index.html",
+              "ViewState": "AgIAABAAAAAAAAAAAAASwDUAAAAAAAAAAQAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+              "WhenOpened": "2025-04-29T03:06:38.323Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 81,
+              "Title": "SpeedDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-04-27T01:37:28.858Z"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
new file mode 100644
index 0000000..bfb167b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/DocumentLayout.json"
@@ -0,0 +1,1406 @@
+{
+  "Version": 1,
+  "WorkspaceRootPath": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\",
+  "Documents": [
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\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:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\program.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\sys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\sys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\ipaddresscontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\ipaddresscontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\authorizationrecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\authorizationrecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\facerecognitioncontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\facerecognitioncontroller .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\ipaddressserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\ipaddressserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\loginhsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\loginhsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iipaddressserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iipaddressserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\ifacerecognitionserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\ifacerecognitionserver .cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iparametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iparametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\idepartmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\idepartmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iauthorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iauthorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\authorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\authorizationrecordserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\maintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\maintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iloginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iloginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\departmentcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\departmentcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_customipaddress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_customipaddress.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_authorizationrecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_authorizationrecord.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\imaintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\imaintenanceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\maintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\maintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\imaintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\imaintenanceteamservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\filter\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\websocketsetup.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\maintenancecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\maintenancecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\maintenanceteamcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\maintenanceteamcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\loginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\loginhsyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_loginhsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_loginhsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_maintenance.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_maintenance.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_maintenanceteam.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_maintenanceteam.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\ialarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\ialarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_alarmresethsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_alarmresethsy.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\telescopic\\dt_facerecognition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\models\\telescopic\\dt_facerecognition.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\parameterscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\parameterscontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\parametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\parametersservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\wideseawcs_server.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\wideseawcs_server.csproj||{04B8AB82-A572-4FEF-95CE-5222444B6B64}|"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iteamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iteamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itelescopicservice\\iunitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}|WIDESEAWCS_ITelescopicService\\WIDESEAWCS_ITelescopicService.csproj|solutionrelative:wideseawcs_itelescopicservice\\iunitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_userservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\teamcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\teamcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\teamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\teamcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\ssg\\alarmresetjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\ssg\\alarmresetjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\ssg\\ssgonejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\ssg\\ssgonejob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\paginationdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\paginationdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_userfaceservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\alarmresethsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\alarmresethsycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\alarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\alarmresethsyserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{A14242DD-DA06-4DC3-8598-1761AA7C76D1}|WIDESEAWCS_SystemServices\\WIDESEAWCS_SystemServices.csproj|solutionrelative:wideseawcs_systemservices\\dt_batchinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\departmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\departmentservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\unitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\unitcategoryserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\wideseawcs_itaskinfoservice.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|",
+      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\wideseawcs_itaskinfoservice.csproj||{FA3CD31E-987B-443A-9B81-186104E8DAC1}|"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_roleservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_isystemservices\\isys_roleauthservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}|WIDESEAWCS_ISystemServices\\WIDESEAWCS_ISystemServices.csproj|solutionrelative:wideseawcs_isystemservices\\isys_roleauthservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_iwmspart\\istockinfo_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|solutionrelative:wideseawcs_iwmspart\\istockinfo_htyservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_iwmspart\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}|WIDESEAWCS_IWMSPart\\WIDESEAWCS_IWMSPart.csproj|solutionrelative:wideseawcs_iwmspart\\istockquantitychangerecordservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\locationinfocontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\basicinfo\\routercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_common\\faceai\\facedraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}|WIDESEAWCS_Common\\WIDESEAWCS_Common.csproj|solutionrelative:wideseawcs_common\\faceai\\facedraw.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}|WIDESEAWCS_WMSPart\\WIDESEAWCS_WMSPart.csproj|solutionrelative:wideseawcs_wmspart\\locationinfoservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{83F18A31-5983-4587-A0B2-414BF70E50B5}|WIDESEAWCS_TaskInfoService\\WIDESEAWCS_TaskInfoService.csproj|solutionrelative:wideseawcs_taskinfoservice\\taskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\batchcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\batchcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\system\\sys_usercontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\telescopic\\unitcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\telescopic\\unitcategorycontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_rolecontroller.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_rolecontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_tenantcontroller.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_tenantcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_user.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_user.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\system\\sys_dictionarylistcontroller.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_dictionarylistcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\userpermissions.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\\userpermissions.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_telescopicservice\\facerecognitionserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{1B1C16CA-8989-4590-BAF6-B55DCC330218}|WIDESEAWCS_TelescopicService\\WIDESEAWCS_TelescopicService.csproj|solutionrelative:wideseawcs_telescopicservice\\facerecognitionserver.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\models\\system\\sys_tenant.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_tenant.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\ssg\\ssgtwojob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\ssg\\ssgtwojob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\stockquantitychangerecordcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\controllers\\wmspart\\stockinfodetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\controllers\\wmspart\\stockinfodetailcontroller.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{294E4915-0241-4C8C-BA99-7588B945863A}|WIDESEAWCS_Tasks\\WIDESEAWCS_Tasks.csproj|solutionrelative:wideseawcs_tasks\\oht\\ohtjob.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7279A2AE-8D1F-4E66-A73A-01AF7927A336}|WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj|solutionrelative:wideseawcs_itaskinfoservice\\itaskservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\properties\\launchsettings.json||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\filter\\websockethostservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\filter\\websockethostservice.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_model\\logininfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}|WIDESEAWCS_Model\\WIDESEAWCS_Model.csproj|solutionrelative:wideseawcs_model\\logininfo.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\upstreamidto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\upstreamidto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\userdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\userdto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\system\\adduserdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\system\\adduserdto.cs||{8B382828-6202-11D1-8870-0000F87579D2}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}",
+      "RelativeMoniker": "D:0:0:{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}|WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj|solutionrelative:wideseawcs_server\\index.html||{40D31677-CBC0-4297-A9EF-89D907823A98}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|e:\\ssg\\shensuogankongzhi\\project\\wcs\\wideseawcs_server\\wideseawcs_dto\\telescopic\\speeddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}",
+      "RelativeMoniker": "D:0:0:{C2D3D138-9109-481B-8BEB-A27597890B2C}|WIDESEAWCS_DTO\\WIDESEAWCS_DTO.csproj|solutionrelative:wideseawcs_dto\\telescopic\\speeddto.cs||{A6C744A8-0E4A-4FC6-886A-064283054674}"
+    },
+    {
+      "AbsoluteMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Sys_DictionaryList.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}",
+      "RelativeMoniker": "D:0:0:{A2FE74E1-B743-11D0-AE1A-00A0C90FFFC3}|\u003CMiscFiles\u003E|solutionrelative:WIDESEAWCS_Server\\wwwroot\\WIDESEAWCS_DB.DBSeed.Json\\Sys_DictionaryList.tsv||{90A6B3A7-C1A3-4009-A288-E2FF89E96FA0}"
+    }
+  ],
+  "DocumentGroupContainers": [
+    {
+      "Orientation": 0,
+      "VerticalTabListWidth": 256,
+      "DocumentGroups": [
+        {
+          "DockedWidth": 200,
+          "SelectedChildIndex": 1,
+          "Children": [
+            {
+              "$type": "Document",
+              "DocumentIndex": 27,
+              "Title": "Dt_Maintenance.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Maintenance.cs",
+              "ViewState": "AgIAAC0AAAAAAAAAAAAowDkAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T07:46:38.11Z",
+              "IsPinned": true
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 0,
+              "Title": "appsettings.json",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\appsettings.json",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\appsettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\appsettings.json",
+              "ViewState": "AgIAAA8AAAAAAAAAAADwvyMAAAAXAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-06-12T07:31:04.069Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 1,
+              "Title": "Program.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Program.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Program.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Program.cs",
+              "ViewState": "AgIAABsAAAAAzMzMzMz8vzEAAABEAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-12T07:30:43.502Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Bookmark",
+              "Name": "ST:0:0:{1c4feeaa-4718-4aa9-859d-94ce25d182ba}"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 3,
+              "Title": "IPaddressController .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\IPaddressController .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:13:18.603Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 4,
+              "Title": "AuthorizationRecordController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AuthorizationRecordController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABIAAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T02:01:22.581Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 2,
+              "Title": "Sys_UserFaceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\Sys_UserFaceService.cs",
+              "ViewState": "AgIAACsAAAAAAAAAAAAswDMAAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-06T09:08:12.974Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 5,
+              "Title": "FaceRecognitionController .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\FaceRecognitionController .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABcAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T01:33:09.914Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 6,
+              "Title": "IPaddressServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\IPaddressServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAswA0AAAB1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:11:58.411Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 7,
+              "Title": "LoginhsyController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\LoginhsyController.cs",
+              "ViewState": "AgIAAAIAAAAAAAAAAAAjwA4AAABIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:47.968Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 8,
+              "Title": "IIPaddressServer .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IIPaddressServer .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABAAAAAGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:11:31.203Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 9,
+              "Title": "IFaceRecognitionServer .cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IFaceRecognitionServer .cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:36.184Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 10,
+              "Title": "IParametersService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IParametersService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAC4AAAArAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T07:15:50.346Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 11,
+              "Title": "IDepartmentService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IDepartmentService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:26.719Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 12,
+              "Title": "IAuthorizationRecordServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IAuthorizationRecordServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:58:46.173Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 13,
+              "Title": "AuthorizationRecordServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\AuthorizationRecordServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:59:21.3Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 14,
+              "Title": "MaintenanceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\MaintenanceService.cs",
+              "ViewState": "AgIAAE8AAAAAAAAAAAAmwIcAAABGAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-04-07T08:11:35.497Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 15,
+              "Title": "ILoginhsyService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\ILoginhsyService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAADwvxQAAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-26T08:27:56.564Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 16,
+              "Title": "DepartmentController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\DepartmentController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA4AAABcAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T01:33:07.117Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 17,
+              "Title": "Dt_CustomIPaddress.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_CustomIPaddress.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAA+AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:06:45.232Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 18,
+              "Title": "Dt_AuthorizationRecord.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AuthorizationRecord.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAAAzAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:52:25.187Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 20,
+              "Title": "MaintenanceTeamService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\MaintenanceTeamService.cs",
+              "ViewState": "AgIAAC8AAAAAAAAAAAAswGIAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T08:43:31.515Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 19,
+              "Title": "IMaintenanceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IMaintenanceService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAACsAAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-09T00:56:14.859Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 21,
+              "Title": "IMaintenanceTeamService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IMaintenanceTeamService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAAABYAAAAnAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-13T08:43:29.058Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 22,
+              "Title": "WebSocketSetup.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\WebSocketSetup.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABYAAAAUAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T08:33:49.8Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 23,
+              "Title": "MaintenanceController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceController.cs",
+              "ViewState": "AgIAADYAAAAAAAAAAAAWwE4AAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T06:46:47.921Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 24,
+              "Title": "MaintenanceTeamController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\MaintenanceTeamController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAB0AAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T07:34:13.306Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 25,
+              "Title": "LoginhsyService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\LoginhsyService.cs",
+              "ViewState": "AgIAAAkAAAAAAAAAAAAgwCQAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:07:25.944Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 26,
+              "Title": "Dt_Loginhsy.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_Loginhsy.cs",
+              "ViewState": "AgIAAAsAAAAAAAAAAAAwwBYAAABQAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:05:05.578Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 28,
+              "Title": "Dt_MaintenanceTeam.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_MaintenanceTeam.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-10T14:18:19.124Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 29,
+              "Title": "IAlarmResetHsyServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IAlarmResetHsyServer.cs",
+              "ViewState": "AgIAABsAAAAAAAAAAAAYwCUAAAAlAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:23:22.437Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 30,
+              "Title": "Dt_AlarmResetHsy.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_AlarmResetHsy.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAEAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:20:40.939Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 34,
+              "Title": "WIDESEAWCS_Server",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "RelativeToolTip": "WIDESEAWCS_Server\\WIDESEAWCS_Server.csproj",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-06-10T08:29:47.268Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 32,
+              "Title": "ParametersController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\ParametersController.cs",
+              "ViewState": "AgIAABkAAAAAAAAAAAAQwCEAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T07:19:58.201Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 33,
+              "Title": "ParametersService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\ParametersService.cs",
+              "ViewState": "AgIAAIoAAAAAAAAAAAAgwMQAAAA/AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T09:19:36.589Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 31,
+              "Title": "Dt_FaceRecognition.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\Telescopic\\Dt_FaceRecognition.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxMAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T02:04:21.38Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 35,
+              "Title": "ITeamCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\ITeamCategoryServer.cs",
+              "ViewState": "AgIAAAMAAAAAAAAAAAAAABMAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:15:15.177Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 36,
+              "Title": "IUnitCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITelescopicService\\IUnitCategoryServer.cs",
+              "ViewState": "AgIAAAkAAAAAAAAAAAAAAA8AAAAjAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:21:45.987Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 37,
+              "Title": "ISys_UserService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_UserService.cs",
+              "ViewState": "AgIAACcAAAAAAAAAAAAmwFwAAAAoAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T07:03:56.602Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 38,
+              "Title": "TeamCategoryController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\TeamCategoryController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxEAAABgAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:17:23.2Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 39,
+              "Title": "TeamCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\TeamCategoryServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA8AAAAqAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:15:40.143Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 41,
+              "Title": "SSGOneJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SSG\\SSGOneJob.cs",
+              "ViewState": "AgIAACsAAAAAAAAAAAAQwDQAAABHAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T05:49:41.175Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 40,
+              "Title": "AlarmResetJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SSG\\AlarmResetJob.cs",
+              "ViewState": "AgIAAG0AAAAAAAAAAAAIwDUAAAAkAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T06:55:40.547Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 42,
+              "Title": "PaginationDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\PaginationDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAsAAAAPAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:10:31.842Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 43,
+              "Title": "ISys_UserFaceService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_UserFaceService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-06T09:08:07.368Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 45,
+              "Title": "AlarmResetHsyServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\AlarmResetHsyServer.cs",
+              "ViewState": "AgIAABkAAAAAAAAAAAAQwGYAAAAhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-26T08:01:00.912Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 44,
+              "Title": "AlarmResetHsyController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\AlarmResetHsyController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABsAAAAJAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-08T08:52:27.181Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 46,
+              "Title": "dt_batchinfoService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "RelativeToolTip": "WIDESEAWCS_SystemServices\\dt_batchinfoService.cs",
+              "ViewState": "AgIAABMAAAAAAAAAAAAUwBYAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-06T02:41:11.066Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 47,
+              "Title": "DepartmentService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\DepartmentService.cs",
+              "ViewState": "AgIAAAYAAAAAAAAAAAAAABEAAAA1AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T01:09:45.34Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 48,
+              "Title": "UnitCategoryServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\UnitCategoryServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAA0AAABFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:22:32.495Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 50,
+              "Title": "ISys_RoleService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_RoleService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwcAAAAjAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-04T01:28:03.866Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 49,
+              "Title": "WIDESEAWCS_ITaskInfoService.csproj",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\WIDESEAWCS_ITaskInfoService.csproj",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000758|",
+              "WhenOpened": "2025-06-05T06:35:36.771Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 51,
+              "Title": "ISys_RoleAuthService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ISystemServices\\ISys_RoleAuthService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-04T01:28:01.558Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 52,
+              "Title": "IStockInfo_HtyService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "RelativeToolTip": "WIDESEAWCS_IWMSPart\\IStockInfo_HtyService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-03T09:13:18.222Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 54,
+              "Title": "LocationInfoController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\LocationInfoController.cs",
+              "ViewState": "AgIAACEAAAAAAAAAAAAcwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-03T09:12:53.84Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 55,
+              "Title": "RouterController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\BasicInfo\\RouterController.cs",
+              "ViewState": "AgIAAB0AAAAAAAAAAAAAwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-06-03T09:12:44.744Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 53,
+              "Title": "IStockQuantityChangeRecordService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "RelativeToolTip": "WIDESEAWCS_IWMSPart\\IStockQuantityChangeRecordService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:55:41.783Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 56,
+              "Title": "FaceDraw.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "RelativeToolTip": "WIDESEAWCS_Common\\FaceAI\\FaceDraw.cs",
+              "ViewState": "AgIAAA4AAAAAAAAAAAAAABYAAABRAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T09:35:45.751Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 57,
+              "Title": "LocationInfoService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "RelativeToolTip": "WIDESEAWCS_WMSPart\\LocationInfoService.cs",
+              "ViewState": "AgIAAGoAAAAAAAAAAAAvwIIAAAApAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T09:34:18.654Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 58,
+              "Title": "TaskService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_TaskInfoService\\TaskService.cs",
+              "ViewState": "AgIAACECAAAAAAAAAAD4vzACAAAlAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:57:04.021Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 59,
+              "Title": "BatchController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\BatchController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvxUAAAAVAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T09:22:44.301Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 60,
+              "Title": "Sys_UserController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_UserController.cs",
+              "ViewState": "AgIAALoAAAAAAAAAAAAWwMkAAAAgAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T06:41:46.169Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 61,
+              "Title": "UnitCategoryController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\Telescopic\\UnitCategoryController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAoAAAAhAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:25:28.385Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 63,
+              "Title": "Sys_TenantController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_TenantController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T06:19:13.971Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 62,
+              "Title": "Sys_RoleController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_RoleController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T06:19:14.666Z",
+              "EditorCaption": ""
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 64,
+              "Title": "Sys_User.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_User.cs",
+              "ViewState": "AgIAACIAAAAAAAAAAAAQwC8AAAAFAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-27T01:52:31.578Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 65,
+              "Title": "Sys_DictionaryListController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\System\\Sys_DictionaryListController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T02:47:36.109Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 66,
+              "Title": "UserPermissions.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\UserPermissions.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvw0AAAAnAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-30T01:57:45.08Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 67,
+              "Title": "FaceRecognitionServer.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "RelativeToolTip": "WIDESEAWCS_TelescopicService\\FaceRecognitionServer.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:07:25.155Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 68,
+              "Title": "Sys_Tenant.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\Models\\System\\Sys_Tenant.cs",
+              "ViewState": "AgIAACMAAAAAAAAAAAAiwAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-29T06:08:14.232Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 69,
+              "Title": "SSGTwoJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\SSG\\SSGTwoJob.cs",
+              "ViewState": "AgIAACYAAAAAAAAAAAAIwDYAAAARAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T05:49:40.413Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 70,
+              "Title": "StockQuantityChangeRecordController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockQuantityChangeRecordController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T06:48:30.952Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 73,
+              "Title": "ITaskService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "RelativeToolTip": "WIDESEAWCS_ITaskInfoService\\ITaskService.cs",
+              "ViewState": "AgIAABsAAAAAAAAAAAAAABcAAAATAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:55:49.894Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 72,
+              "Title": "OHTJob.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "RelativeToolTip": "WIDESEAWCS_Tasks\\OHT\\OHTJob.cs",
+              "ViewState": "AgIAABUAAAAAAAAAAAAvwCUAAAAIAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T07:21:46.351Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 71,
+              "Title": "StockInfoDetailController.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Controllers\\WMSPart\\StockInfoDetailController.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-28T09:28:54.682Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 74,
+              "Title": "launchSettings.json",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Properties\\launchSettings.json",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAkAAAAEAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001642|",
+              "WhenOpened": "2025-05-23T02:09:24.896Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 75,
+              "Title": "WebSocketHostService.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "RelativeToolTip": "WIDESEAWCS_Server\\Filter\\WebSocketHostService.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T08:33:47.231Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 76,
+              "Title": "DBSeed.cs",
+              "DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs",
+              "ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\21701ff9ac1c4559ce6e7320e3be3c080710baae7b9b8389cc7919101855e43d\\DBSeed.cs",
+              "ViewState": "AgIAAB0BAAAAAAAAAAAAABQBAAASAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T07:49:17.776Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 77,
+              "Title": "LoginInfo.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\LoginInfo.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Model\\LoginInfo.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Model\\LoginInfo.cs",
+              "RelativeToolTip": "WIDESEAWCS_Model\\LoginInfo.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAAAAYAAAATAAAAAQAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-16T07:03:23.664Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 78,
+              "Title": "UpstreamIDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\UpstreamIDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwQAAAATAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-19T00:55:00.208Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 84,
+              "Title": "SpeedDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ViewState": "AgIAAAsAAAAAAAAAAAAAwB8AAAA0AAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:09:56.746Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 79,
+              "Title": "UserDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\UserDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:10:08.862Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 80,
+              "Title": "AddUserDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\System\\AddUserDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-15T01:09:43.246Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 81,
+              "Title": "Face.cs",
+              "DocumentMoniker": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs",
+              "ToolTip": "C:\\Users\\Administrator\\AppData\\Local\\Temp\\.vsdbgsrc\\b700ba3c32194731a3eaca4d8eaddd483d62abecc7fa3ee9e8c64e80596c22fa\\Face.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAAAswAwAAAAWAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-05-09T01:17:12.476Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 82,
+              "Title": "index.html",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
+              "RelativeDocumentMoniker": "WIDESEAWCS_Server\\index.html",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_Server\\index.html",
+              "RelativeToolTip": "WIDESEAWCS_Server\\index.html",
+              "ViewState": "AgIAABAAAAAAAAAAAAASwDUAAAAAAAAAAQAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.001512|",
+              "WhenOpened": "2025-04-29T03:06:38.323Z"
+            },
+            {
+              "$type": "Document",
+              "DocumentIndex": 83,
+              "Title": "SpeedDTO.cs",
+              "DocumentMoniker": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeDocumentMoniker": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ToolTip": "E:\\ssg\\ShenSuoGanKongZhi\\project\\WCS\\WIDESEAWCS_Server\\WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "RelativeToolTip": "WIDESEAWCS_DTO\\Telescopic\\SpeedDTO.cs",
+              "ViewState": "AgIAAAAAAAAAAAAAAADwvwAAAAAAAAAAAAAAAA==",
+              "Icon": "ae27a6b0-e345-4288-96df-5eaf394ee369.000738|",
+              "WhenOpened": "2025-04-27T01:37:28.858Z"
+            }
+          ]
+        }
+      ]
+    }
+  ]
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/HierarchyCache.v1.txt" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/HierarchyCache.v1.txt"
new file mode 100644
index 0000000..2acf0ec
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/HierarchyCache.v1.txt"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/ConsoleApp1/ConsoleApp1.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/ConsoleApp1/ConsoleApp1.csproj"
new file mode 100644
index 0000000..2150e37
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/ConsoleApp1/ConsoleApp1.csproj"
@@ -0,0 +1,10 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>net8.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/ConsoleApp1/Program.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/ConsoleApp1/Program.cs"
new file mode 100644
index 0000000..3751555
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/ConsoleApp1/Program.cs"
@@ -0,0 +1,2 @@
+锘�// See https://aka.ms/new-console-template for more information
+Console.WriteLine("Hello, World!");
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/WIDESEAWCS_BasicInfoRepository.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/WIDESEAWCS_BasicInfoRepository.csproj"
new file mode 100644
index 0000000..cf2a881
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/WIDESEAWCS_BasicInfoRepository.csproj"
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_IBasicInfoRepository\WIDESEAWCS_IBasicInfoRepository.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
new file mode 100644
index 0000000..a789f87
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
@@ -0,0 +1,18 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+    <Platforms>AnyCPU;x64</Platforms>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="WIDESEAWCS_QuartzJob" Version="1.0.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_IBasicInfoService\WIDESEAWCS_IBasicInfoService.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/AreaInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/AreaInfo.cs"
new file mode 100644
index 0000000..2f52e30
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/AreaInfo.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common
+{
+    public enum AreaInfo
+    {
+        CLOutAreaA,
+        CLOutAreaB,
+        CLOutAreaC
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/BaiDuFaceHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/BaiDuFaceHelper.cs"
new file mode 100644
index 0000000..067fd8d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/BaiDuFaceHelper.cs"
@@ -0,0 +1,372 @@
+锘縰sing Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Text;
+using System.Threading.Tasks;
+using FaceAI;
+
+namespace WIDESEAWCS_Common
+{
+    public class BaiDuFaceHelper
+    {
+        #region 浜鸿劯璇嗗埆API
+        /// <summary>
+        /// 鑾峰彇AccessToken
+        /// </summary>
+        /// <returns></returns>
+        public static string GetAccessToken()
+        {
+            //string url = string.Format("https://aip.baidubce.com/oauth/2.0/token?client_id={0}&client_secret={1}&grant_type={2}", "TqFQHXSNt6Z7cPQ4vDBfBNjq", "0cli6I6s8JFz3qM1Czi5ciRpDqrJuVvm", "client_credentials");
+            //string returnStr = BDWebRequest(url, "", "POST");
+
+            //NLog.LogManager.GetCurrentClassLogger().Trace("鐧惧害浜鸿劯璇嗗埆杩斿洖锛�" + returnStr);
+            //BDToken token = JsonConvert.DeserializeObject<BDToken>(returnStr);
+            //token.getdate = DateTime.Now.ToString();
+
+            //return token.access_token;
+
+
+            var str = "24.83aee44079e5a27530bc72d5ec7049a3.2592000.1746152354.282335-118294290";
+            return str;
+        }
+
+        public static string BDWebRequest(string url, string data, string method)
+        {
+            try
+            {
+                HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
+                request.Method = string.IsNullOrEmpty(method) ? "POST" : method.ToUpper();
+                request.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.172 Safari/537.22";
+                request.ServicePoint.Expect100Continue = false;
+                request.Timeout = 1000 * 60;
+                request.ContentType = "application/x-www-form-urlencoded";
+                if (!string.IsNullOrEmpty(method) && method.ToUpper() == "POST" && !string.IsNullOrEmpty(data))
+                {
+                    byte[] byteArray = Encoding.UTF8.GetBytes(data);
+                    request.ContentLength = byteArray.Length;
+                    using (Stream myRequestStream = request.GetRequestStream())
+                    {
+                        myRequestStream.Write(byteArray, 0, byteArray.Length);
+                    }
+                }
+                HttpWebResponse myHttpWebResponse = (HttpWebResponse)request.GetResponse();
+                using (Stream response = myHttpWebResponse.GetResponseStream())
+                {
+                    using (StreamReader reader = new StreamReader(response, Encoding.UTF8))
+                    {
+                        return reader.ReadToEnd();
+                    }
+                }
+            }
+            catch { return ""; }
+        }
+
+
+        /// <summary>
+        /// 浜鸿劯妫�娴嬩笌灞炴�у垎鏋�
+        /// </summary>
+        /// <returns></returns>
+        public static string FaceDetect(string path)
+        {
+            string token = GetAccessToken();
+            string host = "https://aip.baidubce.com/rest/2.0/face/v3/detect?access_token=" + token;
+            var imgbase64 = GetFileContentAsBase64(path);
+            Encoding encoding = Encoding.Default;
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+            request.Method = "POST";
+            request.KeepAlive = true;
+            String str = "{\"image\":\"" + imgbase64 + "\",\"image_type\":\"BASE64\"}";
+            byte[] buffer = encoding.GetBytes(str);
+            request.ContentLength = buffer.Length;
+            request.GetRequestStream().Write(buffer, 0, buffer.Length);
+
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
+            string result = reader.ReadToEnd();
+
+            NLog.LogManager.GetCurrentClassLogger().Trace("浜鸿劯妫�娴嬩笌灞炴�у垎鏋愶細" + result);
+            return result;
+        }
+
+        /// <summary>
+        /// 鍒涘缓鐢ㄦ埛浜鸿劯璇嗗埆缁�
+        /// </summary>
+        /// <returns></returns>
+        public static string GroupAdd(string group)
+        {
+            string token = GetAccessToken();
+            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/group/add?access_token=" + token;
+            Encoding encoding = Encoding.Default;
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+            request.Method = "post";
+            request.KeepAlive = true;
+            String str = "{\"group_id\":\"" + group + "\"}";
+            byte[] buffer = encoding.GetBytes(str);
+            request.ContentLength = buffer.Length;
+            request.GetRequestStream().Write(buffer, 0, buffer.Length);
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
+            string result = reader.ReadToEnd();
+            NLog.LogManager.GetCurrentClassLogger().Trace("鍒涘缓鐢ㄦ埛缁勶細" + result);
+            return result;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鏂囦欢base64缂栫爜
+        /// </summary>
+        /// <param name="path">鏂囦欢璺緞</param>
+        /// <returns>base64缂栫爜淇℃伅锛屼笉甯︽枃浠跺ご</returns>
+        //public static string GetFileContentAsBase64(string path)
+        //{
+        //    using (FileStream filestream = new FileStream(path, FileMode.Open))
+        //    {
+        //        byte[] arr = new byte[filestream.Length];
+        //        filestream.Read(arr, 0, (int)filestream.Length);
+        //        string base64 = Convert.ToBase64String(arr);
+        //        return base64;
+        //    }
+        //}
+        public static string GetFileContentAsBase64(string filePath)
+        {
+            // 鍙繚鐣欐枃浠跺悕锛岄伩鍏嶈矾寰勯敊璇�
+            string fileName = Path.GetFileName(filePath);
+
+            // 鑾峰彇鏂囦欢鐨勫畬鏁磋矾寰�
+            string fullPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "image", fileName);
+
+            if (!File.Exists(fullPath))
+            {
+                throw new FileNotFoundException("鏂囦欢涓嶅瓨鍦細" + fullPath);
+            }
+
+            using (FileStream filestream = new FileStream(fullPath, FileMode.Open, FileAccess.Read))
+            {
+                byte[] arr = new byte[filestream.Length];
+                filestream.Read(arr, 0, arr.Length);
+                return Convert.ToBase64String(arr);
+            }
+        }
+
+
+
+        /// <summary>
+        /// 浜鸿劯娉ㄥ唽
+        /// </summary>
+        /// <returns></returns>
+        public static CreateUserResult AddUser(BDUserInfo info)
+        {
+            string token = GetAccessToken();
+            var imgbase64 = GetFileContentAsBase64(info.ImgPath);
+            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/add?access_token=" + token;
+            Encoding encoding = Encoding.Default;
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+            request.Method = "POST";
+            request.KeepAlive = true;
+            String str = "{\"image\":\"" + imgbase64 + "\",\"image_type\":\"BASE64\",\"group_id\":\"" + info.group_id + "\",\"user_id\":\"" + info.user_id + "\",\"quality_control\":\"LOW\",\"liveness_control\":\"NORMAL\"}";
+            byte[] buffer = encoding.GetBytes(str);
+            request.ContentLength = buffer.Length;
+            request.GetRequestStream().Write(buffer, 0, buffer.Length);
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
+            string result = reader.ReadToEnd();
+
+            NLog.LogManager.GetCurrentClassLogger().Trace("浜鸿劯娉ㄥ唽锛�" + result);
+            CreateUserResult res = JsonConvert.DeserializeObject<CreateUserResult>(result);//闇�瑕佸皢log_id鍜宖ace_token淇濆瓨鍒扮敤鎴疯〃涓紝鍦ㄤ汉鑴稿垹闄や腑闇�瑕佺敤鍒�
+
+            return res;
+        }
+
+        /// <summary>
+        /// 浜鸿劯鍒犻櫎锛堝垹闄ょ敤鎴风殑鏌愪竴寮犱汉鑴革紝濡傛灉璇ョ敤鎴峰彧鏈変竴寮犱汉鑴稿浘鐗囷紝鍒欏悓鏃跺垹闄ょ敤鎴枫�傦級
+        /// </summary>
+        /// <returns></returns>
+        public static string DeleteUserImg(DeleteUserImg info)
+        {
+            string token = GetAccessToken();
+            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/delete?access_token=" + token;
+            Encoding encoding = Encoding.Default;
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+            request.Method = "POST";
+            request.KeepAlive = true;
+            String str = "{\"face_token\":\"" + info.face_token + "\",\"log_id\":\"" + info.log_id + "\",\"group_id\":\"" + info.group_id + "\",\"user_id\":\"" + info.user_id + "\"}";
+            byte[] buffer = encoding.GetBytes(str);
+            request.ContentLength = buffer.Length;
+            request.GetRequestStream().Write(buffer, 0, buffer.Length);
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
+            string result = reader.ReadToEnd();
+
+            NLog.LogManager.GetCurrentClassLogger().Trace("浜鸿劯鍒犻櫎锛�" + result);
+            return result;
+        }
+
+        /// <summary>
+        /// 鐢ㄦ埛鍒犻櫎
+        /// </summary>
+        /// <returns></returns>
+        public static string DeleteUser(DeleteUserImg info)
+        {
+            string token = GetAccessToken();
+            string host = "https://aip.baidubce.com/rest/2.0/face/v3/faceset/user/delete?access_token=" + token;
+            Encoding encoding = Encoding.Default;
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+            request.Method = "POST";
+            request.KeepAlive = true;
+            String str = "{\"group_id\":\"" + info.group_id + "\",\"user_id\":\"" + info.user_id + "\"}";
+            byte[] buffer = encoding.GetBytes(str);
+            request.ContentLength = buffer.Length;
+            request.GetRequestStream().Write(buffer, 0, buffer.Length);
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
+            string result = reader.ReadToEnd();
+
+            NLog.LogManager.GetCurrentClassLogger().Trace("鐢ㄦ埛鍒犻櫎锛�" + result);
+            return result;
+        }
+
+        /// <summary>
+        /// 浜鸿劯鎼滅储
+        /// </summary>
+        /// <returns></returns>
+        public static SearchResult FaceSearch(string path, string group_id_list)
+        {
+            string token = GetAccessToken();
+            var imgbase64 = GetFileContentAsBase64(path);
+
+            string host = "https://aip.baidubce.com/rest/2.0/face/v3/search?access_token=" + token;
+            Encoding encoding = Encoding.Default;
+            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host);
+            request.Method = "POST";
+            request.KeepAlive = true;
+            String str = "{\"image\":\"" + imgbase64 + "\",\"image_type\":\"BASE64\",\"group_id_list\":\"" + group_id_list + "\",\"quality_control\":\"LOW\",\"liveness_control\":\"NORMAL\"}";
+            byte[] buffer = encoding.GetBytes(str);
+            request.ContentLength = buffer.Length;
+            request.GetRequestStream().Write(buffer, 0, buffer.Length);
+            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
+            StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.Default);
+            string result = reader.ReadToEnd();
+
+            NLog.LogManager.GetCurrentClassLogger().Trace("浜鸿劯鎼滅储锛�" + result);
+            SearchResult searchResult = JsonConvert.DeserializeObject<SearchResult>(result);
+
+            return searchResult;
+        }
+        #endregion
+
+    }
+
+    
+    /// <summary>
+    /// token鑾峰彇淇℃伅
+    /// </summary>
+    public class BDToken
+    {
+        /// <summary>
+        /// 璁よ瘉token
+        /// </summary>
+        public string access_token { get; set; }
+        /// <summary>
+        /// Access Token鐨勬湁鏁堟湡(绉掍负鍗曚綅锛屾湁鏁堟湡30澶�)
+        /// </summary>
+        public int expires_in { get; set; }
+        /// <summary>
+        /// 鑾峰彇鏃堕棿
+        /// </summary>
+        public string getdate { get; set; }
+    }
+
+    /// <summary>
+    /// 浜鸿劯娉ㄥ唽淇℃伅
+    /// </summary>
+    public class BDUserInfo
+    {
+        /// <summary>
+        /// 鍥剧墖璺緞(鎬绘暟鎹ぇ灏忓簲灏忎簬10M锛屽垎杈ㄧ巼搴斿皬浜�1920*1080)
+        /// </summary>
+        public string ImgPath { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛缁刬d锛屾爣璇嗕竴缁勭敤鎴凤紙鐢辨暟瀛椼�佸瓧姣嶃�佷笅鍒掔嚎缁勬垚锛夛紝闀垮害闄愬埗48B
+        /// </summary>
+        public string group_id { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛id锛堢敱鏁板瓧銆佸瓧姣嶃�佷笅鍒掔嚎缁勬垚锛夛紝瀵瑰簲绯荤粺璐﹀彿
+        /// </summary>
+        public string user_id { get; set; }
+    }
+    /// <summary>
+    /// 浜鸿劯娉ㄥ唽鏃惰繑鍥炲璞�
+    /// </summary>
+    public class CreateUserResult
+    {
+        /// <summary>
+        /// 妫�绱㈡垚鍔熻繑鍥�0
+        /// </summary>
+        public int error_code { get; set; }
+        public string error_msg { get; set; }
+        /// <summary>
+        /// 璇锋眰鏍囪瘑鐮侊紝闅忔満鏁帮紝鍞竴
+        /// </summary>
+        public string log_id {  get; set; }
+        public CreateUser result { get; set; }
+    }
+    public class CreateUser
+    {
+        /// <summary>
+        /// 浜鸿劯鍥剧墖鐨勫敮涓�鏍囪瘑
+        /// </summary>
+        public string face_token {  get; set; }
+    }
+
+    /// <summary>
+    /// 浜鸿劯鎼滅储鏃惰繑鍥炵殑瀵硅薄
+    /// </summary>
+    public class SearchResult
+    {
+        /// <summary>
+        /// 妫�绱㈡垚鍔熻繑鍥�0
+        /// </summary>
+        public int error_code { get; set; }
+        public string error_msg { get; set;}
+        public UserResult result { get; set;}
+        
+    }
+    public class UserResult
+    {
+        public string face_token {  get; set; }
+        public List<User_List> user_list { get; set;}
+    }
+    public class User_List
+    {
+        public string user_id { get; set; }
+        /// <summary>
+        /// 鐢ㄦ埛鐨勫尮閰嶅緱鍒�,80鍒嗕互涓婂彲浠ュ垽鏂负鍚屼竴浜�
+        /// </summary>
+        public string score { get; set;}
+    }
+    /// <summary>
+    /// 浜鸿劯鍒犻櫎鐨勫叆鍙傚璞★紙鍙垹闄ゆ煇涓�寮犲浘鐗囷紝濡傛灉璇ョ敤鎴峰彧鏈変竴寮犲浘鐗囷紝閭h鐢ㄦ埛鏁翠綋鍒犻櫎
+    /// </summary>
+    public class DeleteUserImg
+    {
+        /// <summary>
+        /// 璇锋眰鏍囪瘑鐮侊紝闅忔満鏁帮紝鍞竴
+        /// </summary>
+        public string log_id { get; set;}
+        /// <summary>
+        /// 鐢ㄦ埛id锛堢敱鏁板瓧銆佸瓧姣嶃�佷笅鍒掔嚎缁勬垚锛夛紝闀垮害闄愬埗48B
+        /// </summary>
+        //public string user_id { get; set;}
+        public string user_id { get; set;}
+        /// <summary>
+        /// 鐢ㄦ埛缁刬d锛堢敱鏁板瓧銆佸瓧姣嶃�佷笅鍒掔嚎缁勬垚锛� 闀垮害闄愬埗48B锛屽垹闄ゆ寚瀹歡roup_id涓殑user_id淇℃伅
+        /// </summary>
+        public string group_id { get; set;}
+        /// <summary>
+        /// 闇�瑕佸垹闄ょ殑浜鸿劯鍥剧墖token锛岋紙鐢辨暟瀛椼�佸瓧姣嶃�佷笅鍒掔嚎缁勬垚锛夐暱搴﹂檺鍒�64B
+        /// </summary>
+        public string face_token { get; set;}
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/HtmlElementType.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/HtmlElementType.cs"
new file mode 100644
index 0000000..7c9fa17
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/HtmlElementType.cs"
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.Const
+{
+    public struct HtmlElementType
+    {
+        public const string drop = "drop";
+        public const string droplist = "droplist";
+        public const string select = "select";
+        public const string selectlist = "selectlist";
+        public const string checkbox = "checkbox";
+        public const string textarea = "textarea";
+        public const string thanorequal = "thanorequal";
+        public const string lessorequal = "lessorequal";
+
+
+        public const string gt = "gt";
+        public const string lt = "lt";
+        public const string GT = ">";
+        public const string LT = "<";
+        public const string like = "like";
+
+        public const string ThanOrEqual = ">=";
+        public const string LessOrequal = "<=";
+        public const string Contains = "in";
+        public const string Equal = "=";
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Enums/LinqExpressionType.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Enums/LinqExpressionType.cs"
new file mode 100644
index 0000000..1d52a76
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Enums/LinqExpressionType.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.Enums
+{
+    public enum LinqExpressionType
+    {
+        Equal = 0,//=
+        NotEqual = 1,//!=
+        GreaterThan,//>
+        LessThan,//<
+        ThanOrEqual,//>=
+        LessThanOrEqual,//<=
+        In,
+        Contains,//Contains
+        NotContains//NotContains
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/CHS_Capture.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/CHS_Capture.cs"
new file mode 100644
index 0000000..860c160
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/CHS_Capture.cs"
@@ -0,0 +1,49 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.Face
+{
+    // 鐩告満鍙栧抚鍙婂抚鍥捐薄鏄剧ず缁勪欢
+    public class CHS_Capture
+    {
+        // 杩斿洖鐩告満涓暟
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraGetCount", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern int SmCameraGetCount();
+
+        // 鎵撳紑鐩告満锛堟牴鎹浉鏈虹储寮曞彿 nDeviceId锛�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraOpen", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr SmCameraOpen(int nDeviceId, int nWidth, int nHeight);
+
+        // 鎵撳紑鐩告満锛堟牴鎹浉鏈篤ID+PIC锛�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraOpenEx", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr SmCameraOpenEx(int nVid, int nPid, int nWidth, int nHeight);
+
+        // 浠庢墦寮�鐨勭浉鏈烘彁鍙栦竴甯ц棰戞暟鎹�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraGetFrame", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern int SmCameraGetFrame(IntPtr hCamera, IntPtr pFrameBuf, int bMirror, int bFlip);
+
+        // 鍏抽棴鐩告満
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraClose", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraClose(IntPtr hCamera);
+
+        // 鍒涘缓瑙嗛甯ф樉绀哄璞★紙nWidth * nHeight 涓鸿棰戝抚鐨勫垎杈ㄧ巼锛宧Wnd 涓烘樉绀虹獥鍙e彞鏌勶級
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreviewCreate", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr SmCameraPreviewCreate(int nWidth, int nHeight, IntPtr hWND);
+
+        // 鏄剧ず瑙嗛甯�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreview", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraPreview(IntPtr hCameraPreview, IntPtr pFrame);
+
+        // 鏄剧ず瑙嗛甯у強浜鸿劯妗嗭紙weight涓鸿竟妗嗙殑鍘氬害锛�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreviewFace", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraPreviewFace(IntPtr hCameraPreview, IntPtr pFrame, int left, int top, int right, int bottom, int weight, int color);
+
+        // 閲婃斁瑙嗛甯ф樉绀哄璞�
+        [DllImport("SmCameraPreview.dll", EntryPoint = "SmCameraPreviewDestroy", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void SmCameraPreviewDestroy(IntPtr hCameraPreivew);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/FaceHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/FaceHelper.cs"
new file mode 100644
index 0000000..0654569
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/FaceHelper.cs"
@@ -0,0 +1,314 @@
+锘縰sing System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.Face
+{
+    public class FaceHelper
+    {
+        static string picturePath = "";
+        static FileInfo[] fileInfos;
+        static string currentPath = "";
+
+        /// <summary>
+        /// 浜鸿劯璇嗗埆鏂规硶
+        /// </summary>
+        /// <param name="sourcePath">宸插綍鍏ヤ汉鑴稿浘鐗囪矾寰�</param>
+        /// <param name="desPath">瑕佹槸琚殑浜鸿劯鍥剧墖璺緞</param>
+        /// <returns></returns>
+        public static (bool, string) FaceRecognition(string sourcePath, string desPath)
+        {
+            int ret = TH_Faces.IdFaceSdkInit();
+            if (ret < 0)
+            {
+                IntPtr pRunCode = Marshal.AllocHGlobal(35 + 1);
+                TH_Faces.IdFaceSdkGetRunCode(pRunCode);
+                Marshal.FreeHGlobal(pRunCode);
+            }
+
+            picturePath = sourcePath;
+            currentPath = desPath;
+            List<IntPtr> pFrame_Sources = new List<IntPtr>();
+            List<IntPtr> pFeature_Sources = new List<IntPtr>();
+            GetSourceFeature(ref pFrame_Sources, ref pFeature_Sources);
+
+            IntPtr pFrame_Desc = IntPtr.Zero;
+            IntPtr pFeature_Desc = IntPtr.Zero;
+            GetDesFeature(ref pFrame_Desc, ref pFeature_Desc);
+
+            List<byte> bytes = Check(ref pFrame_Desc, ref pFeature_Desc, ref pFrame_Sources, ref pFeature_Sources);
+
+            if (bytes.Count == 0)
+            {
+                return (false, "浜鸿劯璇嗗埆澶辫触");
+            }
+
+            byte max = bytes.Max(); // 鑾峰彇鏈�澶у垎鏁�
+
+            int index = bytes.IndexOf(max); // 鑾峰彇鏈�澶у垎鏁扮殑绱㈠紩
+
+            if (fileInfos.Length > index)
+            {
+                if (max < 80) // 濡傛灉鏈�澶у垎鏁板皬浜�80锛岃涓轰汉鑴歌瘑鍒け璐�
+                {
+                    return (false, "浜鸿劯璇嗗埆澶辫触");
+                }
+
+                return (true, fileInfos[index].Name); // 杩斿洖瀵瑰簲鐨勬枃浠跺悕
+            }
+
+            return (false, "浜鸿劯璇嗗埆澶辫触");
+        }
+
+        public static (bool, string) FaceRecognitionOne(string sourcePath, string desPath)
+        {
+            int ret = TH_Faces.IdFaceSdkInit();
+            if (ret < 0)
+            {
+                IntPtr pRunCode = Marshal.AllocHGlobal(35 + 1);
+                TH_Faces.IdFaceSdkGetRunCode(pRunCode);
+                Marshal.FreeHGlobal(pRunCode);
+            }
+
+            picturePath = sourcePath;
+            currentPath = desPath;
+            IntPtr pFrame_Source = IntPtr.Zero;
+            IntPtr pFeature_Source = IntPtr.Zero;
+            GetSourceFeature(ref pFrame_Source, ref pFeature_Source);
+
+            IntPtr pFrame_Desc = IntPtr.Zero;
+            IntPtr pFeature_Desc = IntPtr.Zero;
+            GetDesFeature(ref pFrame_Desc, ref pFeature_Desc);
+
+            byte result = Check(ref pFrame_Desc, ref pFeature_Desc, ref pFrame_Source, ref pFeature_Source);
+
+
+            if (result < 80) // 濡傛灉鏈�澶у垎鏁板皬浜�80锛岃涓轰汉鑴歌瘑鍒け璐�
+            {
+                return (false, "浜鸿劯璇嗗埆澶辫触");
+            }
+
+            return (true, "浜鸿劯璇嗗埆鎴愬姛"); // 杩斿洖瀵瑰簲鐨勬枃浠跺悕
+        }
+
+        private static void GetSourceFeature(ref List<IntPtr> pFrame_Sources, ref List<IntPtr> pFeature_Sources)
+        {
+            DirectoryInfo dir = new DirectoryInfo(picturePath);
+            fileInfos = dir.GetFiles();
+
+            foreach (var file in fileInfos)
+            {
+                // 璇诲師濮嬪浘璞�
+                int nWidth1 = 0;
+                int nHeight1 = 0;
+                IntPtr pSrcFilepath = Marshal.StringToHGlobalAnsi(file.FullName);
+                // 璇诲浘璞″垎杈ㄧ巼
+                int ret = TH_Faces.ReadImageFile(pSrcFilepath, IntPtr.Zero, 0, ref nWidth1, ref nHeight1, 24);
+                if (ret < 0 || nWidth1 <= 0 || nHeight1 <= 0)
+                {
+                    continue;
+                }
+                // 鏍规嵁鍥捐薄鍒嗚鲸鐜囧垎閰嶅浘璞℃暟鎹紦鍐插尯骞惰鍑哄浘璞℃暟鎹�
+                IntPtr pFrame_Source = Marshal.AllocHGlobal(nWidth1 * nHeight1 * 3);
+                TH_Faces.ReadImageFile(pSrcFilepath, pFrame_Source, nWidth1 * nHeight1 * 3, ref nWidth1, ref nHeight1, 24);
+                if (ret < 0 || nWidth1 <= 0 || nHeight1 <= 0)
+                {
+                    Marshal.FreeHGlobal(pFrame_Source);
+                    continue;
+                }
+
+                // 瀵瑰師濮嬪浘璞¤繘琛屼汉鑴告娴�
+                TH_Faces.FACE_DETECT_RESULT Face1 = new TH_Faces.FACE_DETECT_RESULT();
+                int nNum1 = TH_Faces.IdFaceSdkDetectFace(pFrame_Source, nWidth1, nHeight1, ref Face1);
+                if (nNum1 <= 0)
+                {
+                    Marshal.FreeHGlobal(pFrame_Source);
+                    continue;
+                }
+
+                // 瀵瑰師濮嬪浘璞℃彁鍙栦汉鑴哥壒寰侊紙杈撳叆鍘熷鍥捐薄鍙婂叾浜鸿劯妫�娴嬬粨鏋滐級
+                int nFeaSize = TH_Faces.IdFaceSdkFeatureSize();
+                IntPtr pFeature_Source = Marshal.AllocHGlobal(nFeaSize);
+                ret = TH_Faces.IdFaceSdkFeatureGet(pFrame_Source, nWidth1, nHeight1, ref Face1, pFeature_Source);
+                if (ret != 0)
+                {
+                    Marshal.FreeHGlobal(pFrame_Source);
+                    Marshal.FreeHGlobal(pFeature_Source);
+                    continue;
+                }
+
+                pFrame_Sources.Add(pFrame_Source);
+                pFeature_Sources.Add(pFeature_Source);
+            }
+        }
+
+        private static void GetSourceFeature(ref IntPtr pFrame_Source, ref IntPtr pFeature_Source)
+        {
+            // 璇诲師濮嬪浘璞�
+            int nWidth1 = 0;
+            int nHeight1 = 0;
+            IntPtr pSrcFilepath = Marshal.StringToHGlobalAnsi(picturePath);
+            // 璇诲浘璞″垎杈ㄧ巼
+            int ret = TH_Faces.ReadImageFile(pSrcFilepath, IntPtr.Zero, 0, ref nWidth1, ref nHeight1, 24);
+            if (ret < 0 || nWidth1 <= 0 || nHeight1 <= 0)
+            {
+                return;
+            }
+            // 鏍规嵁鍥捐薄鍒嗚鲸鐜囧垎閰嶅浘璞℃暟鎹紦鍐插尯骞惰鍑哄浘璞℃暟鎹�
+            pFrame_Source = Marshal.AllocHGlobal(nWidth1 * nHeight1 * 3);
+            TH_Faces.ReadImageFile(pSrcFilepath, pFrame_Source, nWidth1 * nHeight1 * 3, ref nWidth1, ref nHeight1, 24);
+            if (ret < 0 || nWidth1 <= 0 || nHeight1 <= 0)
+            {
+                Marshal.FreeHGlobal(pFrame_Source);
+            }
+
+            // 瀵瑰師濮嬪浘璞¤繘琛屼汉鑴告娴�
+            TH_Faces.FACE_DETECT_RESULT Face1 = new TH_Faces.FACE_DETECT_RESULT();
+            int nNum1 = TH_Faces.IdFaceSdkDetectFace(pFrame_Source, nWidth1, nHeight1, ref Face1);
+            if (nNum1 <= 0)
+            {
+                Marshal.FreeHGlobal(pFrame_Source);
+            }
+
+            // 瀵瑰師濮嬪浘璞℃彁鍙栦汉鑴哥壒寰侊紙杈撳叆鍘熷鍥捐薄鍙婂叾浜鸿劯妫�娴嬬粨鏋滐級
+            int nFeaSize = TH_Faces.IdFaceSdkFeatureSize();
+            pFeature_Source = Marshal.AllocHGlobal(nFeaSize);
+            ret = TH_Faces.IdFaceSdkFeatureGet(pFrame_Source, nWidth1, nHeight1, ref Face1, pFeature_Source);
+            if (ret != 0)
+            {
+                Marshal.FreeHGlobal(pFrame_Source);
+                Marshal.FreeHGlobal(pFeature_Source);
+            }
+        }
+
+        private static bool GetDesFeature(ref IntPtr pFrame_Desc, ref IntPtr pFeature_Desc)
+        {
+            // 璇荤洰鏍囧浘璞�
+            int nWidth2 = 0;
+            int nHeight2 = 0;
+            IntPtr pDstFilepath = Marshal.StringToHGlobalAnsi(currentPath);
+            // 璇诲浘璞″垎杈ㄧ巼
+            int ret = TH_Faces.ReadImageFile(pDstFilepath, IntPtr.Zero, 0, ref nWidth2, ref nHeight2, 24);
+            if (ret < 0 || nWidth2 <= 0 || nHeight2 <= 0)
+            {
+                return false;
+            }
+            // 鏍规嵁鍥捐薄鍒嗚鲸鐜囧垎閰嶅浘璞℃暟鎹紦鍐插尯骞惰鍑哄浘璞℃暟鎹�
+            pFrame_Desc = Marshal.AllocHGlobal(nWidth2 * nHeight2 * 3);
+            ret = TH_Faces.ReadImageFile(pDstFilepath, pFrame_Desc, nWidth2 * nHeight2 * 3, ref nWidth2, ref nHeight2, 24);
+            if (ret < 0 || nWidth2 <= 0 || nHeight2 <= 0)
+            {
+                Marshal.FreeHGlobal(pFrame_Desc);
+                return false;
+            }
+
+            // 瀵圭洰鏍囧浘璞¤繘琛屼汉鑴告娴�
+            TH_Faces.FACE_DETECT_RESULT Face2 = new TH_Faces.FACE_DETECT_RESULT();
+            int nNum2 = TH_Faces.IdFaceSdkDetectFace(pFrame_Desc, nWidth2, nHeight2, ref Face2);
+            if (nNum2 <= 0)
+            {
+                Marshal.FreeHGlobal(pFrame_Desc);
+                return false;
+            }
+            int nFeaSize = TH_Faces.IdFaceSdkFeatureSize();
+            pFeature_Desc = Marshal.AllocHGlobal(nFeaSize);
+            ret = TH_Faces.IdFaceSdkFeatureGet(pFrame_Desc, nWidth2, nHeight2, ref Face2, pFeature_Desc);
+            if (ret != 0)
+            {
+                Marshal.FreeHGlobal(pFrame_Desc);
+                Marshal.FreeHGlobal(pFeature_Desc);
+                return false;
+            }
+
+            return true;
+        }
+
+        private static List<byte> Check(ref IntPtr pFrame_Desc, ref IntPtr pFeature_Desc, ref List<IntPtr> pFrame_Sources, ref List<IntPtr> pFeature_Sources)
+        {
+            IntPtr hList = TH_Faces.IdFaceSdkListCreate(1000); // 鍒涘缓鏀寔1000涓壒寰佺殑姣斿鍒楄〃
+            try
+            {
+                List<byte> results = new List<byte>();
+                int i, n = 0;
+
+
+                for (i = 0; i < pFeature_Sources.Count; i++)
+                {
+                    // 灏嗕袱涓汉鐨勭壒寰佺爜寰幆浜ゅ弶鎻掑叆姣斿鍒楄〃涓�
+                    int nPos = -1;
+                    n = TH_Faces.IdFaceSdkListInsert(hList, ref nPos, pFeature_Sources[i], 1);
+                }
+                if (n != pFeature_Sources.Count)
+                {
+
+                    return results; ;
+                }
+                else
+                {
+                    IntPtr pnScores = Marshal.AllocHGlobal(pFeature_Sources.Count);
+                    n = TH_Faces.IdFaceSdkListCompare(hList, pFeature_Desc, 0, pFeature_Sources.Count, pnScores); // 鐜板満浜轰笌鍔犲叆鍒楄〃涓殑 N 涓汉杩涜涓�瀵瑰姣斿
+                    if (n != pFeature_Sources.Count)
+                    {
+
+                        return results;
+                    }
+                    else
+                    {
+                        byte[] scores = new byte[pFeature_Sources.Count];
+                        Marshal.Copy(pnScores, scores, 0, pFeature_Sources.Count);
+                        results = scores.ToList(); // 灏嗘瘮瀵圭粨鏋滆浆鎹负 List<byte> 绫诲瀷
+
+                    }
+                    Marshal.FreeHGlobal(pnScores);
+                }
+
+                return results;
+            }
+            finally
+            {
+                TH_Faces.IdFaceSdkListDestroy(hList); // 閿�姣佹瘮瀵瑰垪琛�
+                Marshal.FreeHGlobal(pFrame_Desc);
+                Marshal.FreeHGlobal(pFeature_Desc);
+
+                foreach (var pFrame in pFrame_Sources)
+                {
+
+                    Marshal.FreeHGlobal(pFrame);
+
+                }
+
+                foreach (var pFeature in pFeature_Sources)
+                {
+
+                    Marshal.FreeHGlobal(pFeature);
+                }
+
+                TH_Faces.IdFaceSdkUninit();
+            }
+        }
+
+
+        private static byte Check(ref IntPtr pFrame_Desc, ref IntPtr pFeature_Desc, ref IntPtr pFrame_Source, ref IntPtr pFeature_Source)
+        {
+            try
+            {
+                byte score = TH_Faces.IdFaceSdkFeatureCompare(pFeature_Source, pFeature_Desc);
+
+                return score;
+            }
+            finally
+            {
+                Marshal.FreeHGlobal(pFrame_Desc);
+                Marshal.FreeHGlobal(pFeature_Desc);
+                Marshal.FreeHGlobal(pFrame_Source);
+                Marshal.FreeHGlobal(pFeature_Source);
+                TH_Faces.IdFaceSdkUninit();
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/TH_Faces.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/TH_Faces.cs"
new file mode 100644
index 0000000..f9cbc4d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Face/TH_Faces.cs"
@@ -0,0 +1,210 @@
+锘縰sing System.Runtime.InteropServices;
+
+namespace WIDESEAWCS_Common.Face
+{
+    public class TH_Faces // 浜鸿劯妫�娴嬪強璇嗗埆SDK鎺ュ彛锛屽彲鍙傝 IdFaceSdk.h锛堝唴鍚墍鏈夋帴鍙g殑鍔熻兘銆佸弬鏁般�佽繑鍥炲�肩殑鍏蜂綋鎻忚堪锛�
+    {
+        #region 缁撴瀯浣撳畾涔�
+
+        public struct RECT
+        {
+            public Int32 left;
+            public Int32 top;
+            public Int32 right;
+            public Int32 bottom;
+        };
+
+        public struct POINT
+        {
+            public Int32 x;
+            public Int32 y;
+        };
+
+        // 浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣鍙傛暟
+        public struct FACE_DETECT_RESULT
+        {
+            public RECT rcFace;//coordinate of face
+            public POINT ptLeftEye;//coordinate of left eye
+            public POINT ptRightEye;//coordinate of right eye
+            public POINT ptMouth;//coordinate of mouth
+            public POINT ptNose;//coordinate of nose								
+            public Int32 nAngleYaw, nAnglePitch, nAngleRoll;//value of face angle
+            public Int32 nQuality;//quality of face(from 0 to 100)
+            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 512)]
+            public Byte[] FaceData;
+        };
+
+        // 浜鸿劯璐ㄩ噺妫�娴嬭繑鍥炵殑浜鸿劯璐ㄩ噺鍙傛暟
+        public struct FACE_QUALITY_LEVEL
+        {
+            public Int32 nHalf; // 浜鸿劯瀹屾暣鎬�: 0-姝e父锛�1-浜鸿劯涓嶅お瀹屾暣锛�2-浜鸿劯闈炲父涓嶅畬鏁�
+            public Int32 nSmall; // 浜鸿劯澶у皬锛�0-姝e父锛�1-浜鸿劯杈冨皬锛�2-浜鸿劯澶皬
+            public Int32 nPosture; // 濮挎�侊細0-姝e父锛�1-鍋忓ご杈冨锛�2-鍋忓ご澶
+            public Int32 nMask; // 鑴搁儴閬尅: 0-姝e父锛�1-浜鸿劯鏈夐伄鎸★紝2-浜鸿劯閬尅澶
+            public Int32 nFaceMask; // 鍙g僵锛�0-姝e父锛�1-鏈夋埓鍙g僵锛�2-纭鎴村彛缃�
+            public Int32 nHat; // 甯藉瓙锛�0-姝e父锛�1-鏈夋埓甯斤紝2-甯藉瓙閬尅鑴搁儴
+            public Int32 nGlasses; // 鐪奸暅: 0-姝e父锛�1-鏈夋埓鐪奸暅锛�2-纭鎴寸溂闀�
+            public Int32 nGape; // 寮犲槾: 0-姝e父锛�1-寮犲槾锛�2-寮犲ぇ鍢�
+            public Int32 nBlur; // 妯$硦搴︼細0-姝e父锛�1-杈冩ā绯婏紝2-澶ā绯�
+            public Int32 nBright; // 鑴搁儴鏇濆厜搴︼細0-姝e父锛�1-澶殫锛�2-杩囩垎
+            public Int32 nLight; // 鍏夋簮鏂瑰悜: 0-姝e父锛�1-渚у厜锛�2-椤跺厜, 3-閫嗗厜       
+        };
+
+        #endregion
+
+        #region 鍒濆鍖栧強鍩烘湰鍔熻兘
+
+        // 杩斿洖SDK鐗堟湰鍙凤紙闅忔椂鍙皟鐢級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkVer", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkVer();
+
+        // 杩斿洖璁惧杩愯鐮�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkGetRunCode", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkGetRunCode([Out] IntPtr pStrRunCode);
+
+        // SDK鍒濆鍖栵紝鎴愬姛杩斿洖0锛堝悗闈㈤櫎杈呭姪鎺ュ彛澶栫殑鎵�鏈夊姛鑳芥帴鍙i兘蹇呴』鏄疭DK鍒濆鍖栨垚鍔熷悗鎵嶆湁鐢級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkInit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkInit();
+
+        // SDK鍙嶅垵濮嬪寲锛堝悗闈㈤櫎杈呭姪鎺ュ彛澶栫殑鎵�鏈夊姛鑳芥帴鍙e湪璋冪敤鍙嶅垵濮嬪寲鍚庡潎涓嶅彲鐢紝闄ら潪鍐嶆鍒濆鍖栵級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkUninit", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkUninit();
+
+        // 璁剧疆妫�娴嬪ぇ灏忥紙閽堝楂樺垎杈ㄧ巼涓斾汉鑴稿崰姣旇緝灏忔椂璁剧疆妫�娴嬪ぇ灏忥紝閫氬父涓嶅繀璋冪敤锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkSetDetectSize", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkSetDetectSize(Int32 nDetectSize);
+
+        // 杩斿洖鐗瑰緛鐮佸ぇ灏�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFeatureSize", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFeatureSize();
+
+        // 杩斿洖褰撳墠鐨勬巿鏉冩槸鍚︽敮鎸佹椿浣撴娴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkGetLiveFaceStatus", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkGetLiveFaceStatus();
+
+        #endregion
+
+        #region 鍗曚汉鑴告娴�
+
+        // 妫�娴嬫渶澶т汉鑴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkDetectFace", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkDetectFace(IntPtr pImage, Int32 nWidth, Int32 nHeight, ref FACE_DETECT_RESULT Face);
+
+        #endregion
+
+        #region 澶氫汉鑴告娴嬪苟鎻愬彇鐗瑰緛
+
+        // 妫�娴嬪浜鸿劯鍚屾椂鎻愬彇鍚勪汉鑴哥殑鐗瑰緛锛坣MaxFace 琛ㄧず鏈�澶氳妫�娴嬬殑浜鸿劯涓暟锛孎aces 蹇呴』鎸夋渶澶т汉鑴镐釜鏁板垎閰嶄汉鑴稿潗鏍囩┖闂达紝 pFeatures 蹇呴』鎸夋渶澶т汉鑴镐釜鏁板垎閰嶇壒寰佺爜绌洪棿锛宲Features 鍙傛暟浼� 0 鏃跺垯鍙娴嬩汉鑴镐笉鎻愮壒寰侊級
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFaceFeature", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFaceFeature(IntPtr pImage, Int32 nWidth, Int32 nHeight, Int32 nMaxFace, [Out] FACE_DETECT_RESULT[] Faces, [Out] IntPtr pFeatures);
+
+        #endregion
+
+        #region 浜鸿劯璐ㄩ噺妫�娴�
+
+        // 妫�娴嬩汉鑴歌川閲忥紙闇�杈撳叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFaceQualityLevel", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFaceQualityLevel(IntPtr pImage, Int32 nWidth, Int32 nHeight, ref FACE_DETECT_RESULT Face, ref FACE_QUALITY_LEVEL FaceQualityLevel);
+
+        #endregion
+
+        #region SDK鐗瑰緛鎻愬彇
+
+        // 鎻愬彇浜鸿劯鐗瑰緛锛堥渶杈撳叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛宲Feature闇�鍒嗛厤涓嶅皬浜庝竴涓汉鑴哥壒寰佺殑绌洪棿锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFeatureGet", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkFeatureGet(IntPtr pImage, Int32 nWidth, Int32 nHeight, ref FACE_DETECT_RESULT Face, [Out] IntPtr pFeature);
+
+        #endregion
+
+        #region 涓�瀵逛竴姣斿锛�1:1锛屽鐢ㄤ簬浜鸿瘉鏍搁獙锛�
+
+        // 涓や釜浜鸿劯鐗瑰緛姣斿鍑虹浉浼煎害
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkFeatureCompare", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Byte IdFaceSdkFeatureCompare(IntPtr pFeature1, IntPtr pFeature2);
+
+        #endregion
+
+        #region 涓�瀵瑰姣斿锛�1:N锛屽鐢ㄤ簬鏈嶅姟鍣ㄨ瘑鍒級
+
+        // 鍒涘缓涓�瀵瑰浜鸿劯姣斿鍒楄〃
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListCreate", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern IntPtr IdFaceSdkListCreate(Int32 nMaxFeatureNum);
+
+        // 鍚戜汉鑴告瘮瀵瑰垪琛ㄤ腑澧炲姞/鎻掑叆妯℃澘鐨勪汉鑴哥壒寰�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListInsert", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkListInsert(IntPtr hList, [In, Out] ref Int32 nPos, IntPtr pFeatures, Int32 nFeatureNum);
+
+        // 浠庝汉鑴告瘮瀵瑰垪琛ㄤ腑鍒犻櫎閮ㄥ垎浜鸿劯鐗瑰緛
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListRemove", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkListRemove(IntPtr hList, Int32 nPos, Int32 nFeatureNum);
+
+        // 娓呯┖浜鸿劯姣斿鍒楄〃涓殑鎵�鏈変汉鑴哥壒寰�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListClearAll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkListClearAll(IntPtr hList);
+
+        // 涓�瀵瑰浜鸿劯姣斿锛岃繑鍥炲弬涓庢瘮瀵圭殑鐗瑰緛鏁帮紝pnScores 闇�鍒嗛厤涓嶅皬浜庢ā鏉跨壒寰佹暟鐨勭┖闂达紝璋冪敤鍚庡皢杈撳嚭涓庢瘡涓ā鏉跨壒寰佹瘮瀵圭殑缁撴灉锛堢壒寰佺浉浼煎害锛�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListCompare", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkListCompare(IntPtr hList, IntPtr pFeature, Int32 nPosBegin, Int32 nFeatureNum, [Out] IntPtr pnScores);
+
+        // 閿�姣佷竴瀵瑰鐗瑰緛姣斿鍒楄〃
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkListDestroy", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern void IdFaceSdkListDestroy(IntPtr hList);
+
+        #endregion
+
+        #region 娲讳綋妫�娴�
+
+        // 娲讳綋妫�娴嬶紙杩斿洖1琛ㄧず娲讳綋锛夛紝闇�浼犲叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛宲ImageColor 涓� pImageBW 鍧囨湁鏁堝垯杩涜鍙岀洰娲讳綋妫�娴嬶紝濡� pImageBW 涓� 0 鍒欒繘琛屽僵鑹插崟鐩椿浣撴娴嬶紝pImageColor 涓� 0 鍒欒繘琛岀孩澶栧弻鐩椿浣撴娴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkLiveFaceDetect", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkLiveFaceDetect(Int32 nWidth, Int32 nHeight, IntPtr pImageColor, ref FACE_DETECT_RESULT FaceColor, IntPtr pImageBW, ref FACE_DETECT_RESULT FaceBW);
+
+        // 娲讳綋妫�娴嬪苟杈撳嚭娲绘鍒嗘暟锛堝彲鏍规嵁娲绘鍒嗘暟鏄惁杈惧埌闃堝�煎垽鍒槸鍚︿负娲讳綋锛夛紝闇�浼犲叆浜鸿劯妫�娴嬭繑鍥炵殑浜鸿劯鍧愭爣锛宲ImageColor 涓� pImageBW 鍧囨湁鏁堝垯杩涜鍙岀洰娲讳綋妫�娴嬶紝濡� pImageBW 涓� 0 鍒欒繘琛屽僵鑹插崟鐩椿浣撴娴嬶紝pImageColor 涓� 0 鍒欒繘琛岀孩澶栧弻鐩椿浣撴娴�
+        [DllImport("IdFaceSdk.dll", EntryPoint = "IdFaceSdkLiveFaceDetectEx", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 IdFaceSdkLiveFaceDetectEx(Int32 nWidth, Int32 nHeight, IntPtr pImageColor, ref FACE_DETECT_RESULT FaceColor, IntPtr pImageBW, ref FACE_DETECT_RESULT FaceBW, ref Int32 nScore);
+
+        #endregion
+
+        #region 杈呭姪鎺ュ彛
+
+        // 璇诲浘璞℃枃浠跺埌RGB24鍥捐薄鏁版嵁缂撳啿鍖猴紝鏀寔BMP銆丣PG銆丳NG鍥捐薄鏂囦欢锛宲RgbBuf 蹇呴』鍒嗛厤瓒冲鐨勭紦鍐插尯锛堜笉灏忎簬 nWidth * nHeight * 3锛�,濡備笉鐭ラ亾鍥捐薄鍒嗚鲸鐜囧彲灏嗘鍙傛暟浼� 0 鍒欐湰娆¤皟鐢ㄥ彧杩斿洖鍥捐薄鍒嗚鲸鐜囷紝鐒跺悗鍒嗛厤瓒冲鐨勭紦鍐插尯鍐嶆璋冪敤璇诲嚭鍥捐薄鏁版嵁
+        [DllImport("IdFaceSdk.dll", EntryPoint = "ReadImageFile", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 ReadImageFile(IntPtr filename, [Out] IntPtr pRgbBuf, Int32 nBufSize, ref Int32 nWidth, ref Int32 nHeight, Int32 nDepth);
+
+        // 璇诲浘璞℃枃浠舵暟鎹埌RGB鍥捐薄鏁版嵁缂撳啿鍖猴紝鏀寔BMP銆丣PG銆丳NG鍥捐薄鏂囦欢锛宲RgbBuf 蹇呴』鍒嗛厤瓒冲鐨勭紦鍐插尯锛堜笉灏忎簬 nWidth * nHeight * 3锛�,濡備笉鐭ラ亾鍥捐薄鍒嗚鲸鐜囧彲灏嗘鍙傛暟浼� 0 鍒欐湰娆¤皟鐢ㄥ彧杩斿洖鍥捐薄鍒嗚鲸鐜囷紝鐒跺悗鍒嗛厤瓒冲鐨勭紦鍐插尯鍐嶆璋冪敤璇诲嚭鍥捐薄鏁版嵁
+        [DllImport("IdFaceSdk.dll", EntryPoint = "ReadImageFileData", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 ReadImageFileData(IntPtr pFileData, Int32 nFileDataSize, [Out] IntPtr pRgbBuf, Int32 nBufSize, ref Int32 nWidth, ref Int32 nHeight, Int32 nDepth);
+
+        // 鏃嬭浆RGB24鍥捐薄鏁版嵁锛宯Degree涓烘棆杞搴︼紙鏀寔0銆�90銆�180銆�270锛夛紝nMirror涓�0琛ㄧず涓嶉暅璞★紝涓�1琛ㄧず宸﹀彸闀滆薄
+        [DllImport("IdFaceSdk.dll", EntryPoint = "RotateRgb24Data", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 RotateRgb24Data(IntPtr pSrc, Int32 nWidth, Int32 nHeight, Int32 nDegree, Int32 nMirror, [Out] IntPtr pDst);
+
+        // 浠嶳GB24鍥捐薄鏁版嵁瑁佸壀鍑哄皬鍥�
+        // 杈撳叆鍙傛暟锛�
+        //           pSrc ---- 鍘熷浘鏁版嵁锛圧GB24鏍煎紡锛�
+        //           nSrcWidth ---- 鍘熷浘瀹藉害
+        //           nSrcHeight ---- 鍘熷浘楂樺害
+        //           nLeft ---- 瑁佸壀鍖哄煙宸︿笂瑙扻鍧愭爣
+        //           nTop ---- 瑁佸壀鍖哄煙宸︿笂瑙扽鍧愭爣
+        //           nWidth ---- 瑁佸壀鍖哄煙瀹藉害
+        //           nHeight ---- 瑁佸壀鍖哄煙楂樺害
+        //           nRate ---- 瑁佸壀鍥捐薄缂╁皬鍊嶆暟锛�0-涓嶇缉灏忥紝1-瀹介珮缂╁皬鑷冲師鏉ョ殑1/2锛�2-瀹介珮缂╁皬鑷冲師鏉ョ殑1/3锛�...锛�
+        // 杈撳嚭鍙傛暟锛�
+        //           pDst ---- 灏忓浘鏁版嵁(RGB24鏍煎紡锛岃皟鐢ㄥ墠闇�鍒嗘瀽瓒冲鐨勭紦鍐插尯)
+        // 杩斿洖鍊硷細
+        //        0 ---- 鎴愬姛
+        //       -1 ---- 鍙傛暟閿欒
+        // 澶囨敞锛氳鍓悗鐨勫浘璞″垎杈ㄧ巼涓猴細瀹藉害 = nWidth / (nRate + 1), 楂樺害 = nHeight / (nRate + 1)
+        [DllImport("IdFaceSdk.dll", EntryPoint = "CropImage", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 CropImage(IntPtr pSrc, Int32 nSrcWidth, Int32 nSrcHeight, [Out] IntPtr pDst, int nLeft, int nTop, int nWidth, int nHeight, int nRate);
+
+        // 灏哛GB24鍥捐薄鏁版嵁淇濆瓨涓篔PEG鏂囦欢
+        [DllImport("IdFaceSdk.dll", EntryPoint = "SaveJpegFile", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 SaveJpegFile(IntPtr filename, IntPtr pRgbData, Int32 nWidth, Int32 nHeight, Int32 nDepth, Int32 nQuality);
+
+        // 灏哛GB24鍥捐薄鏁版嵁淇濆瓨涓篔PEG鏂囦欢鏁版嵁
+        [DllImport("IdFaceSdk.dll", EntryPoint = "SaveJpegFileData", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
+        public static extern Int32 SaveJpegFileData(IntPtr pRgbData, Int32 nWidth, Int32 nHeight, Int32 nDepth, Int32 nQuality, [Out] IntPtr pFileDataBuf, Int32 nBufSize, ref Int32 nFileDataSize);
+
+        #endregion
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/DevEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/DevEnum.cs"
new file mode 100644
index 0000000..dc3bd47
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/DevEnum.cs"
@@ -0,0 +1,191 @@
+锘縰sing System;
+using System.Collections;
+using System.Runtime.InteropServices;
+using System.Runtime.InteropServices.ComTypes;
+
+namespace FaceAI
+{
+    [ComVisible(false)]
+    public class FilterCategory     // uuids.h  :  CLSID_*
+    {
+        /// <summary> CLSID_AudioInputDeviceCategory, audio capture category </summary>
+        public static readonly Guid AudioInputDevice = new Guid(0x33d9a762, 0x90c8, 0x11d0, 0xbd, 0x43, 0x00, 0xa0, 0xc9, 0x11, 0xce, 0x86);
+
+        /// <summary> CLSID_VideoInputDeviceCategory, video capture category </summary>
+        public static readonly Guid VideoInputDevice = new Guid(0x860BB310, 0x5D01, 0x11d0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
+    }
+
+    [ComVisible(false)]
+    public class Clsid      // uuids.h  :  CLSID_*
+    {
+        /// <summary> CLSID_SystemDeviceEnum for ICreateDevEnum </summary>
+        public static readonly Guid SystemDeviceEnum = new Guid(0x62BE5D10, 0x60EB, 0x11d0, 0xBD, 0x3B, 0x00, 0xA0, 0xC9, 0x11, 0xCE, 0x86);
+
+        /// <summary> CLSID_FilterGraph, filter Graph </summary>
+        public static readonly Guid FilterGraph = new Guid(0xe436ebb3, 0x524f, 0x11ce, 0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70);
+
+        /// <summary> CLSID_CaptureGraphBuilder2, new Capture graph building </summary>
+        public static readonly Guid CaptureGraphBuilder2 = new Guid(0xBF87B6E1, 0x8C27, 0x11d0, 0xB3, 0xF0, 0x0, 0xAA, 0x00, 0x37, 0x61, 0xC5);
+
+        /// <summary> CLSID_SampleGrabber, Sample Grabber filter </summary>
+        public static readonly Guid SampleGrabber = new Guid(0xC1F400A0, 0x3F08, 0x11D3, 0x9F, 0x0B, 0x00, 0x60, 0x08, 0x03, 0x9E, 0x37);
+
+        /// <summary> CLSID_DvdGraphBuilder,  DVD graph builder </summary>
+        public static readonly Guid DvdGraphBuilder = new Guid(0xFCC152B7, 0xF372, 0x11d0, 0x8E, 0x00, 0x00, 0xC0, 0x4F, 0xD7, 0xC0, 0x8B);
+
+    }
+
+    [ComVisible(false)]
+    public class DevEnum
+    {
+        public static bool GetDevicesOfCat(Guid cat, out ArrayList devs)
+        {
+            devs = null;
+            int hr;
+            object comObj = null;
+            ICreateDevEnum enumDev = null;
+            IEnumMoniker enumMon = null;
+            IMoniker[] mon = new IMoniker[1];
+            try
+            {
+                Type srvType = Type.GetTypeFromCLSID(Clsid.SystemDeviceEnum);
+                if (srvType == null)
+                    throw new NotImplementedException("System Device Enumerator");
+
+                comObj = Activator.CreateInstance(srvType);
+                enumDev = (ICreateDevEnum)comObj;
+                hr = enumDev.CreateClassEnumerator(ref cat, out enumMon, 0);
+                if (hr != 0)
+                    throw new NotSupportedException("No devices of the category");
+
+                int /*f, */count = 0;
+                IntPtr ptr = new IntPtr();
+                do
+                {
+                    hr = enumMon.Next(1, mon, ptr);
+                    if ((hr != 0) || (mon[0] == null))
+                        break;
+                    DsDevice dev = new DsDevice();
+                    GetFriendlyName(mon[0], ref dev.Name, ref dev.Path);
+                    if (devs == null)
+                        devs = new ArrayList();
+                    dev.id = count;
+                    dev.Mon = mon[0]; mon[0] = null;
+                    devs.Add(dev); dev = null;
+                    count++;
+                }
+                while (true);
+
+                return count > 0;
+            }
+            catch (Exception)
+            {
+                if (devs != null)
+                {
+                    foreach (DsDevice d in devs)
+                        d.Dispose();
+                    devs = null;
+                }
+                return false;
+            }
+            finally
+            {
+                enumDev = null;
+                if (mon[0] != null)
+                    Marshal.ReleaseComObject(mon[0]); mon[0] = null;
+                if (enumMon != null)
+                    Marshal.ReleaseComObject(enumMon); enumMon = null;
+                if (comObj != null)
+                    Marshal.ReleaseComObject(comObj); comObj = null;
+            }
+
+        }
+
+        private static bool GetFriendlyName(IMoniker mon, ref string devname, ref string devpath)
+        {
+            object bagObj = null;
+            IPropertyBag bag = null;
+            try
+            {
+                Guid bagId = typeof(IPropertyBag).GUID;
+                mon.BindToStorage(null, null, ref bagId, out bagObj);
+                bag = (IPropertyBag)bagObj;
+                object val = "";
+                int hr = bag.Read("Description", ref val, IntPtr.Zero);
+                if(hr != 0)
+                    hr = bag.Read("FriendlyName", ref val, IntPtr.Zero);
+                if (hr != 0)
+                    Marshal.ThrowExceptionForHR(hr);               
+                devname = val as string;
+                if ((devname == null) || (devname.Length < 1))
+                    throw new NotImplementedException("Device FriendlyName");
+                val = "";
+                hr = bag.Read("DevicePath", ref val, IntPtr.Zero);
+                if (hr != 0)
+                    Marshal.ThrowExceptionForHR(hr);
+                devpath = val as string;
+                if((devpath == null) || (devpath.Length < 1))
+                    throw new NotImplementedException("Device Path");
+                return true;
+            }
+            catch (Exception)
+            {
+                return false;
+            }
+            finally
+            {
+                bag = null;
+                if (bagObj != null)
+                    Marshal.ReleaseComObject(bagObj); bagObj = null;
+            }
+        }
+    }
+
+
+    [ComVisible(false)]
+    public class DsDevice : IDisposable
+    {
+        public int id;
+        public string Name;
+        public string Path;
+        public IMoniker Mon;
+        
+
+        public void Dispose()
+        {
+            if (Mon != null)
+                Marshal.ReleaseComObject(Mon); Mon = null;
+        }
+    }
+
+    [ComVisible(true), ComImport,
+    Guid("29840822-5B84-11D0-BD3B-00A0C911CE86"),
+    InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+    public interface ICreateDevEnum
+    {
+        [PreserveSig]
+        int CreateClassEnumerator(
+        [In]                                            ref Guid pType,
+        [Out]                                       out IEnumMoniker ppEnumMoniker,
+        [In]                                            int dwFlags);
+    }
+
+
+
+    [ComVisible(true), ComImport,
+    Guid("55272A00-42CB-11CE-8135-00AA004BB851"),
+    InterfaceType(ComInterfaceType.InterfaceIsIUnknown)]
+    public interface IPropertyBag
+    {
+        [PreserveSig]
+        int Read(
+        [In, MarshalAs(UnmanagedType.LPWStr)]           string pszPropName,
+        [In, Out, MarshalAs(UnmanagedType.Struct)]  ref object pVar,
+        IntPtr pErrorLog);
+
+        [PreserveSig]
+        int Write(
+        [In, MarshalAs(UnmanagedType.LPWStr)]           string pszPropName,
+        [In, MarshalAs(UnmanagedType.Struct)]       ref object pVar);
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/Face.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/Face.cs"
new file mode 100644
index 0000000..3d38880
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/Face.cs"
@@ -0,0 +1,94 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Runtime.InteropServices;
+
+// sdk浣跨敤娉ㄦ剰浜嬮」锛屼娇鐢╯dk鍓嶏紝璇峰弬鑰冩枃妗h繘琛屾巿鏉冩縺娲伙紝鍚﹀垯
+// sdk鍒濆鍖栧彲鑳藉け璐ワ紝鍙�氳繃鎵撳紑鏃ュ織face_conf.json锛屽瓧娈垫敼涓簍rue銆�
+// 鏌ユ壘鏄惁閫氳繃浜嗘巿鏉冩縺娲绘垨婵�娲诲け璐ョ殑鍘熷洜
+
+// 浜鸿劯c#鍏ュ彛绫�
+namespace FaceAI
+{
+    public class Face
+    {      
+        // sdk鍒濆鍖�
+        [DllImport("BaiduFaceApi.dll", EntryPoint = "sdk_init", CharSet =CharSet.Ansi
+            , CallingConvention =CallingConvention.Cdecl)]
+        public static extern int sdk_init(string model_path);
+        // 鏄惁鎺堟潈
+        [DllImport("BaiduFaceApi.dll", EntryPoint = "is_auth", CharSet = CharSet.Ansi
+               , CallingConvention = CallingConvention.Cdecl)]
+        public static extern bool is_auth();
+        // sdk閿�姣�
+        [DllImport("BaiduFaceApi.dll", EntryPoint = "sdk_destroy" , CharSet = CharSet.Ansi
+            , CallingConvention = CallingConvention.Cdecl)]
+        public static extern void sdk_destroy();
+
+        // 鑾峰彇璁惧鎸囩汗
+        [DllImport("BaiduFaceApi.dll", EntryPoint = "get_device_id", CharSet = CharSet.Ansi
+            , CallingConvention = CallingConvention.Cdecl)]
+        public static extern IntPtr get_device_id();
+
+        // 鑾峰彇sdk鐗堟湰鍙�
+        [DllImport("BaiduFaceApi.dll", EntryPoint = "sdk_version", CharSet = CharSet.Ansi
+            , CallingConvention = CallingConvention.Cdecl)]
+        public static extern IntPtr sdk_version();
+
+        // 鑾峰彇sdk淇℃伅濡傝澶囨寚绾癸紝鐗堟湰鍙�
+        static void get_sdk_info()
+        {
+            // 鑾峰彇璁惧鎸囩汗
+            IntPtr ptr = get_device_id();
+            string buf = Marshal.PtrToStringAnsi(ptr);
+            Console.WriteLine("device id is:" + buf);
+            // 鑾峰彇sdk鐗堟湰鍙�
+            IntPtr ptr_v = sdk_version();
+            string vbuf = Marshal.PtrToStringAnsi(ptr_v);
+            Console.WriteLine("sdk version is:" + vbuf);
+        }
+
+        // 浜鸿劯c#鍏ュ彛鏂规硶
+        //public static void Main()
+        //{
+        //    //Console.WriteLine("in main");
+        //    // model_path涓烘ā鍨嬫枃浠跺す璺緞锛屽嵆models鏂囦欢澶癸紙閲岄潰瀛樼殑鏄汉鑴歌瘑鍒殑妯″瀷鏂囦欢锛�
+        //    // 浼犵┖涓洪噰鐢ㄩ粯璁よ矾寰勶紝鑻ユ兂瀹氱疆鍖栬矾寰勶紝璇峰~鍐欏叏灞�璺緞濡傦細d:\\face 锛坢odels妯″瀷鏂囦欢澶圭洰褰曟斁缃悗涓篸:\\face\\models锛�
+        //    // 鑻ユā鍨嬫枃浠跺す閲囩敤瀹氱疆鍖栬矾寰勶紝鍒欐縺娲绘枃浠�(license.ini, license.key)涔熷彲閲囩敤瀹氬埗鍖栬矾寰勬斁缃埌璇ョ洰褰曞d:\\face\\license
+        //    // 浜﹀彲鍦ㄦ縺娲绘枃浠堕粯璁ょ敓鎴愮殑璺緞
+        //    string model_path = null;
+        //   // string model_path="d:\\face";
+        //    long time_begin = TimeUtil.get_time_stamp();
+        //    int n = sdk_init(model_path);
+        //    long time_end = TimeUtil.get_time_stamp();
+        //    Console.WriteLine("sdk init cost {0:D}", time_end- time_begin);
+        //    //鑻ユ病閫氳繃鍒濆鍖栵紝鍒檔涓嶄负0, 杩斿洖鐨勯敊璇爜鍙婂師鍥犲彲鍙傝�冭鏄庢枃妗�
+        //    if (n != 0)
+        //    {
+        //        Console.WriteLine("sdk init fail and errcode is {0:D}", n);
+
+        //        Console.ReadLine();
+        //        return;
+        //     }
+
+        //    Console.WriteLine("Main: 鎴愬姛");
+        //    // 鑾峰彇璁惧鎸囩汗
+        //    get_sdk_info();
+        //    // 楠岃瘉鏄惁鎺堟潈
+        //    bool authed = is_auth();
+        //    Console.WriteLine("authed res is:"+authed);
+        //    long t_begin = TimeUtil.get_time_stamp();
+        //    // 浠ヤ笅涓篸emo绀轰緥,璇峰弬鑰僃aceDemo鎵撳紑鐩稿叧娉ㄩ噴娴嬭瘯楠岃瘉
+        //    //FaceDemo demo = new FaceDemo();
+        //    //demo.face_demo();
+        //    long t_end = TimeUtil.get_time_stamp();
+        //    Console.WriteLine("time cost is:"+(t_end-t_begin));
+        //    // 浣跨敤瀹屾瘯锛岄攢姣乻dk锛岄噴鏀惧唴瀛�
+        //    sdk_destroy();
+        //    Console.WriteLine("end main");
+        //    Console.ReadLine();
+        //}
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceAttr.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceAttr.cs"
new file mode 100644
index 0000000..8e2eb3a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceAttr.cs"
@@ -0,0 +1,109 @@
+锘�//using System;
+//using System.Runtime.InteropServices;
+//using OpenCvSharp;
+
+//namespace FaceAI
+//{  
+//    /**
+//         * @brief   浜鸿劯琛ㄦ儏灞炴�ф灇涓�
+//         */
+//    enum BDFaceAttributeEmotionType
+//    {
+//        BDFACE_ATTRIBUTE_EMOTION_FROWN = 0,     // 鐨辩湁
+//        BDFACE_ATTRIBUTE_EMOTION_SMILE = 1,     // 绗�
+//        BDFACE_ATTRIBUTE_EMOTION_CALM = 2,      // 骞抽潤
+//    };
+
+//    /**
+//     * @brief   浜鸿劯绉嶆棌灞炴�ф灇涓�
+//     */
+//    enum BDFaceRace
+//    {
+//        BDFACE_RACE_YELLOW = 0, // 榛勭浜�
+//        BDFACE_RACE_WHITE = 1,  // 鐧界浜�
+//        BDFACE_RACE_BLACK = 2,  // 榛戠浜�
+//        BDFACE_RACE_INDIAN = 3, // 鍗扮瀹変汉
+//    };
+
+//    /**
+//     * @brief   鐪奸暅鐘舵�佸睘鎬ф灇涓�
+//     */
+//    enum BDFaceGlasses
+//    {
+//        BDFACE_NO_GLASSES = 0,   // 鏃犵溂闀�
+//        BDFACE_GLASSES = 1,      // 鏈夌溂闀�
+//        BDFACE_SUN_GLASSES = 2,  // 澧ㄩ暅
+//    };
+
+//    /**
+//     * @brief   鎬у埆灞炴�ф灇涓�
+//     */
+//    enum BDFaceGender
+//    {
+//        BDFACE_GENDER_FEMAILE = 0, // 濂虫��
+//        BDFACE_GENDER_MALE = 1,    // 鐢锋��
+//    };
+
+
+//    /**
+//     * @brief   浜鸿劯灞炴�х粨鏋勪綋
+//     */
+//    [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//    struct BDFaceAttribute
+//    {
+//        public int age;                            // 骞撮緞
+//        public BDFaceRace race;                    // 绉嶆棌
+//        public BDFaceAttributeEmotionType emotion; // 琛ㄦ儏
+//        public BDFaceGlasses glasses;              // 鎴寸溂闀滅姸鎬�
+//        public BDFaceGender gender;                // 鎬у埆
+//    };
+
+//    // 浜鸿劯灞炴�хず渚嬪強鎺ュ彛
+//    class FaceAttr
+//    {
+//        // 鑾峰彇浜鸿劯灞炴��
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "face_attr", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern int face_attr(IntPtr ptr, IntPtr mat);
+
+//        // 娴嬭瘯鑾峰彇浜鸿劯灞炴��
+//        public void test_get_face_attr()
+//        {
+//            int max_face_num = 5; // 璁剧疆鏈�澶氭娴嬭窡韪汉鏁帮紙澶氫汉鑴告娴嬶級锛岄粯璁や负1锛屾渶澶氬彲璁句负50
+
+//            BDFaceAttribute[] attr_info = new BDFaceAttribute[max_face_num];
+//            int size = Marshal.SizeOf(typeof(BDFaceAttribute));
+//            IntPtr ptT = Marshal.AllocHGlobal(size * max_face_num);
+//            string img_path = "../images/rgb.png";
+//            Mat mat = Cv2.ImRead(img_path);
+//            int faceNum = face_attr(ptT, mat.CvPtr);
+//            Console.WriteLine("faceNum is:" + faceNum);
+//            for (int index = 0; index < faceNum; index++)
+//            {
+//                IntPtr ptr = new IntPtr();
+//                if (8 == IntPtr.Size)
+//                {
+//                    ptr = (IntPtr)(ptT.ToInt64() + size * index);
+//                }
+//                else if (4 == IntPtr.Size)
+//                {
+//                    ptr = (IntPtr)(ptT.ToInt32() + size * index);
+//                }
+
+//                attr_info[index] = (BDFaceAttribute)Marshal.PtrToStructure(ptr, typeof(BDFaceAttribute));
+//                // 骞撮緞
+//                Console.WriteLine("age is {0}:", attr_info[index].age);
+//                // 绉嶆棌
+//                Console.WriteLine("race is:{0}", attr_info[index].race);
+//                // 琛ㄦ儏
+//                Console.WriteLine("emotion is:{0}", attr_info[index].emotion);
+//                // 鎴寸溂闀滅姸鎬�
+//                Console.WriteLine("glasses is:{0}", attr_info[index].glasses);
+//                // 鎬у埆
+//                Console.WriteLine("gender is:{0}", attr_info[index].gender);
+//            }
+//            Marshal.FreeHGlobal(ptT);
+//        }
+       
+//    }
+//}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceCompare.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceCompare.cs"
new file mode 100644
index 0000000..9f34a50
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceCompare.cs"
@@ -0,0 +1,781 @@
+锘�//using System;
+//using System.Runtime.InteropServices;
+//using System.IO;
+//using OpenCvSharp;
+
+//// 浜鸿劯姣斿锛堝娉細浜鸿劯姣斿锛屽疄闄呬笂鏄汉鑴哥殑鐗瑰緛鍊兼瘮瀵癸紝鎻愬彇鍑轰汉鑴哥壒寰佸�硷紝鐢╟ompare_feature鏂规硶姣斿)
+//namespace FaceAI
+//{  
+//    // 浜鸿劯姣旇緝1:1銆�1:N銆佹娊鍙栦汉鑴哥壒寰佸�笺�佹寜鐗瑰緛鍊兼瘮杈冪瓑
+//    public class FaceCompare       
+//    {
+//        //  鎻愬彇浜鸿劯鐗瑰緛鍊�(浼犲浘鐗囨枃浠惰矾寰�) 
+//        /// <summary>
+//        /// 鎻愬彇浜鸿劯鐗瑰緛鍊硷紝涓�512涓诞鐐瑰�硷紝宸插姞瀵�
+//        /// </summary>
+//        /// <param name="file_name">鍥剧墖淇℃伅锛屾暟鎹ぇ灏忓皬浜�10M锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�</param>
+//        /// <param name="length">閫氳繃寮曠敤杩斿洖鐗瑰緛鍊肩殑闀垮害锛岃嫢涓�2048琛ㄧず鎻愬彇姝g‘锛屽叾浠栧�艰〃绀烘彁鍙栦簡閿欒鐨勭壒寰佸��</param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "get_face_feature", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr get_face_feature(string file_name, ref int length);
+//        // 鎻愬彇浜鸿劯鐗瑰緛鍊�(浼犱簩杩涘埗鍥剧墖buffer锛�
+//        /// <summary>
+//        /// 鎻愬彇浜鸿劯鐗瑰緛鍊硷紝涓�2048涓猙yte (浼犲叆浜岃繘鍒跺浘鐗嘼uffer)
+//        /// </summary>
+//        /// <param name="buf"></param>
+//        /// <param name="size"></param>
+//        /// <param name="length"></param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "get_face_feature_by_buf", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr get_face_feature_by_buf(byte[] buf, int size, ref int length);
+//        //// 鑾峰彇浜鸿劯鐗瑰緛鍊硷紙浼犲叆opencv瑙嗛甯у強浜鸿劯淇℃伅锛岄�傚簲浜庡浜鸿劯锛�
+//        ///// <summary>
+//        ///// 鑾峰彇浜鸿劯鐗瑰緛鍊硷紙浼犲叆opencv瑙嗛甯у強浜鸿劯淇℃伅锛岄�傚簲浜庡浜鸿劯锛�
+//        ///// </summary>
+//        ///// <param name="mat"></param>
+//        ///// <param name="info"></param>
+//        ///// <param name="feaptr"></param>
+//        ///// <returns></returns>
+//        //[DllImport("BaiduFaceApi.dll", EntryPoint = "get_face_feature_by_face", CharSet = CharSet.Ansi
+//        //    , CallingConvention = CallingConvention.Cdecl)]
+//        //public static extern int get_face_feature_by_face(IntPtr mat, ref TrackFaceInfo info, ref IntPtr feaptr);
+//        // 浜鸿劯1:1姣斿(浼犲浘鐗囨枃浠惰矾寰�)
+//        /// <summary>
+//        /// 浜鸿劯瀵规瘮鎺ュ彛锛堜紶鍏ュ浘鐗囨枃浠惰矾寰勶級
+//        /// </summary>
+//        /// <param name="file_name1">闇�瑕佸姣旂殑绗竴寮犲浘鐗囷紝灏忎簬10M锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�</param>
+//        /// <param name="file_name2">闇�瑕佸姣旂殑绗簩寮犲浘鐗囷紝灏忎簬10M锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�</param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "match", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr match(string file_name1, string file_name2);
+//        // 浜鸿劯1:1姣斿锛堜紶浜岃繘鍒跺浘鐗嘼uffer锛�
+//        /// <summary>
+//        /// 浜鸿劯瀵规瘮鎺ュ彛锛堜紶鍏ヤ簩杩涘埗鍥剧墖buffer锛�
+//        /// </summary>
+//        /// <param name="buf1">闇�瑕佸姣旂殑绗竴寮犲浘鐗囷紝灏忎簬10M</param>
+//        /// <param name="size1">鍥剧墖1鐨勫ぇ灏�</param>
+//        /// <param name="buf2">闇�瑕佸姣旂殑绗簩寮犲浘鐗囷紝灏忎簬10M</param>
+//        /// <param name="size2">鍥剧墖2鐨勫ぇ灏�</param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "match_by_buf", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr match_by_buf(byte[] buf1, int size1, byte[] buf2, int size2);
+//        // 浜鸿劯1:1姣斿锛堜紶opencv瑙嗛甯э級
+//        /// <summary>
+//        /// 浜鸿劯1:1姣斿锛堜紶opencv瑙嗛甯э級
+//        /// </summary>
+//        /// <param name="img1"></param>
+//        /// <param name="img2"></param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "match_by_mat", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr match_by_mat(IntPtr img1, IntPtr img2);// byte[] buf1, int size1, byte[] buf2, int size2);
+//        // 浜鸿劯1:1姣斿锛堜紶浜鸿劯鐗瑰緛鍊煎拰浜岃繘鍒跺浘鐗嘼uffer)
+//        /// <summary>
+//        /// 浜鸿劯瀵规瘮鎺ュ彛(浼犲叆浜岃繘鍒跺浘鐗嘼uffer)
+//        /// </summary>
+//        /// <param name="feature">鏂囦欢鐗瑰緛</param>
+//        /// <param name="fea_len"></param>
+//        /// <param name="buf2"></param>
+//        /// <param name="size2"></param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "match_by_feature", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr match_by_feature(byte[] feature, int fea_len, byte[] buf2, int size2);
+//        // 鐗瑰緛鍊兼瘮瀵癸紙浼�2涓汉鑴哥殑鐗瑰緛鍊硷級
+//        /// <summary>
+//        /// 鐗瑰緛鍊兼瘮瀵�
+//        /// </summary>
+//        /// <param name="f1"></param>
+//        /// <param name="f1_len"></param>
+//        /// <param name="f2"></param>
+//        /// <param name="f2_len"></param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "compare_feature", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern float compare_feature(byte[] f1, int f1_len, byte[] f2, int f2_len);
+//        // 1:N浜鸿劯璇嗗埆锛堜紶鍥剧墖鏂囦欢璺緞鍜屽簱閲岀殑姣斿锛�
+//        /// <summary>
+//        /// 浜鸿劯璇嗗埆锛屾彁渚�1锛歂鏌ユ壘 (浼犲叆鍥剧墖鏂囦欢璺緞)
+//        /// </summary>
+//        /// <param name="image">鍥剧墖淇℃伅锛屾暟鎹ぇ灏忓皬浜�10M锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�</param>
+//        /// <param name="group_id_list">缁刬d鍒楄〃銆傞粯璁よ嚦灏戝~鍐欎竴涓猤roup_id锛屼粠鎸囧畾鐨刧roup涓繘琛屾煡鎵俱�傞渶瑕佸悓鏃舵煡璇㈠涓猤roup锛岀敤閫楀彿鍒嗛殧锛屼笂闄�10涓�</param>
+//        /// <param name="user_id">鐢ㄦ埛id锛岃嫢鎸囧畾浜嗘煇涓猽ser锛屽垯鍙細涓庢寚瀹歡roup涓嬬殑杩欎釜user杩涜瀵规瘮锛涜嫢user_id浼犵┖瀛楃涓测�� 鈥濓紝鍒欎細涓庢group涓嬬殑鎵�鏈塽ser杩涜1锛歂璇嗗埆</param>
+//        /// <param name="user_top_num">璇嗗埆鍚庤繑鍥炵殑鐢ㄦ埛top鏁帮紝榛樿涓�1锛屾渶澶氳繑鍥�50涓粨鏋�</param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "identify", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr identify(string image, string group_id_list, string user_id, int user_top_num = 1);
+//        // 1:N浜鸿劯璇嗗埆锛堜紶鍥剧墖浜岃繘鍒舵枃浠禸uffer鍜屽簱閲岀殑姣斿锛�
+//        /// <summary>
+//        /// 浜鸿劯璇嗗埆锛屾彁渚�1锛歂鏌ユ壘 (浼犲叆浜岃繘鍒跺浘鐗嘼uffer锛�
+//        /// </summary>
+//        /// <param name="buf">浜岃繘鍒跺浘鐗囦俊鎭紝鏁版嵁澶у皬灏忎簬10M</param>
+//        /// <param name="size">鍥剧墖澶у皬</param>
+//        /// <param name="group_id_list">缁刬d鍒楄〃銆傞粯璁よ嚦灏戝~鍐欎竴涓猤roup_id锛屼粠鎸囧畾鐨刧roup涓繘琛屾煡鎵俱�傞渶瑕佸悓鏃舵煡璇㈠涓猤roup锛岀敤閫楀彿鍒嗛殧锛屼笂闄�10涓�</param>
+//        /// <param name="user_id">鐢ㄦ埛id锛岃嫢鎸囧畾浜嗘煇涓猽ser锛屽垯鍙細涓庢寚瀹歡roup涓嬬殑杩欎釜user杩涜瀵规瘮锛涜嫢user_id浼犵┖瀛楃涓测�� 鈥濓紝鍒欎細涓庢group涓嬬殑鎵�鏈塽ser杩涜1锛歂璇嗗埆</param>
+//        /// <param name="user_top_num">璇嗗埆鍚庤繑鍥炵殑鐢ㄦ埛top鏁帮紝榛樿涓�1锛屾渶澶氳繑鍥�50涓粨鏋�</param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "identify_by_buf", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr identify_by_buf(byte[] buf, int size, string group_id_list,
+//            string user_id, int user_top_num = 1);
+//        // 1:N浜鸿劯璇嗗埆锛堜紶浜鸿劯鐗瑰緛鍊煎拰搴撻噷鐨勬瘮瀵癸級
+//        /// <summary>
+//        /// 1:N浜鸿劯璇嗗埆锛堜紶浜鸿劯鐗瑰緛鍊煎拰搴撻噷鐨勬瘮瀵癸級
+//        /// </summary>
+//        /// <param name="feature"></param>
+//        /// <param name="fea_len"></param>
+//        /// <param name="group_id_list">缁刬d鍒楄〃銆傞粯璁よ嚦灏戝~鍐欎竴涓猤roup_id锛屼粠鎸囧畾鐨刧roup涓繘琛屾煡鎵俱�傞渶瑕佸悓鏃舵煡璇㈠涓猤roup锛岀敤閫楀彿鍒嗛殧锛屼笂闄�10涓�</param>
+//        /// <param name="user_id">鐢ㄦ埛id锛岃嫢鎸囧畾浜嗘煇涓猽ser锛屽垯鍙細涓庢寚瀹歡roup涓嬬殑杩欎釜user杩涜瀵规瘮锛涜嫢user_id浼犵┖瀛楃涓测�� 鈥濓紝鍒欎細涓庢group涓嬬殑鎵�鏈塽ser杩涜1锛歂璇嗗埆</param>
+//        /// <param name="user_top_num">璇嗗埆鍚庤繑鍥炵殑鐢ㄦ埛top鏁帮紝榛樿涓�1锛屾渶澶氳繑鍥�50涓粨鏋�</param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "identify_by_feature", CharSet = CharSet.Ansi
+//          , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr identify_by_feature(byte[] feature, int fea_len, string group_id_list,
+//            string user_id, int user_top_num = 1);
+
+//        // 鎻愬墠鍔犺浇搴撻噷鎵�鏈夋暟鎹埌鍐呭瓨涓�
+//        /// <summary>
+//        /// 鎻愬墠鍔犺浇搴撻噷鎵�鏈夋暟鎹埌鍐呭瓨涓�
+//        /// </summary>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "load_db_face", CharSet = CharSet.Ansi
+//          , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern bool load_db_face();
+
+//        // 1:N浜鸿劯璇嗗埆锛堜紶浜鸿劯鍥剧墖鏂囦欢鍜屽唴瀛樺凡鍔犺浇鐨勬暣涓簱鏁版嵁姣斿锛�
+//        /// <summary>
+//        /// 1:N浜鸿劯璇嗗埆锛堜紶浜鸿劯鍥剧墖鏂囦欢鍜屽唴瀛樺凡鍔犺浇鐨勬暣涓簱鏁版嵁姣斿锛�
+//        /// </summary>
+//        /// <param name="image"></param>
+//        /// <param name="user_top_num"></param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "identify_with_all", CharSet = CharSet.Ansi
+//          , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr identify_with_all(string image, int user_top_num = 1);
+
+//        // 1:N浜鸿劯璇嗗埆锛堜紶浜鸿劯鍥剧墖鏂囦欢鍜屽唴瀛樺凡鍔犺浇鐨勬暣涓簱鏁版嵁姣斿锛�
+//        /// <summary>
+//        /// 
+//        /// </summary>
+//        /// <param name="image">鍥剧墖鐨勪簩杩涘埗鏂囦欢</param>
+//        /// <param name="size"></param>
+//        /// <param name="user_top_num"></param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "identify_by_buf_with_all", CharSet = CharSet.Ansi
+//          , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr identify_by_buf_with_all(byte[] image, int size, int user_top_num = 1);
+
+//        // 1:N浜鸿劯璇嗗埆锛堜紶浜鸿劯鐗瑰緛鍊煎拰鍐呭瓨宸插姞杞界殑鏁翠釜搴撴暟鎹瘮瀵癸級
+//        /// <summary>
+//        /// 1:N浜鸿劯璇嗗埆锛堜紶浜鸿劯鐗瑰緛鍊煎拰鍐呭瓨宸插姞杞界殑鏁翠釜搴撴暟鎹瘮瀵癸級
+//        /// </summary>
+//        /// <param name="feature"></param>
+//        /// <param name="fea_len"></param>
+//        /// <param name="user_top_num"></param>
+//        /// <returns></returns>
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "identify_by_feature_with_all", CharSet = CharSet.Ansi
+//          , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr identify_by_feature_with_all(byte[] feature, int fea_len, int user_top_num = 1);
+
+
+//        // 娴嬭瘯鑾峰彇浜鸿劯鐗瑰緛鍊�(2048涓猙yte锛�
+//        public void test_get_face_feature()
+//        {
+//            byte[] fea = new byte[2048];
+//            string file_name = "G:\\Development\\Application\\testface\\img\\beckham\\2.jpg";
+//            int len = 0;
+//            IntPtr ptr = get_face_feature(file_name, ref len);
+//            if (ptr == IntPtr.Zero)
+//            {
+//                Console.WriteLine("get face feature error");
+//            }
+//            else
+//            {
+//                if (len == 2048)
+//                {
+//                    Console.WriteLine("get face feature success");
+//                    Marshal.Copy(ptr, fea, 0, 2048);
+//                    // 鍙繚瀛樼壒寰佸��2048涓瓧鑺傜殑fea鍒版枃浠朵腑
+//                    // FileUtil.byte2file("G:\\Development\\Application\\testface\\img\\beckham\\fea1.txt",fea, 2048);
+//                }
+//                else
+//                {
+//                    Console.WriteLine("get face feature error");
+//                }
+//            }
+//        }
+//        /// <summary>
+//        /// 鑾峰彇浜鸿劯鐗瑰緛鍊�(2048涓猙yte锛�
+//        /// </summary>
+//        /// <param name="fileName"></param>
+//        /// <returns></returns>
+//        public string GetFaceFeature(string fileName)
+//        {
+//            try
+//            {
+//                byte[] fea = new byte[2048];
+//                string file_name = fileName == null ? fileName : "G:\\Development\\Application\\testface\\img\\beckham\\2.jpg";
+//                int len = 0;
+//                IntPtr ptr = get_face_feature(file_name, ref len);
+//                if (ptr == IntPtr.Zero)
+//                {
+//                    Console.WriteLine("get face feature error");
+//                    return "error";
+//                }
+//                else
+//                {
+//                    if (len == 2048)
+//                    {
+//                        Console.WriteLine("get face feature success");
+//                        Marshal.Copy(ptr, fea, 0, 2048);
+//                        return fea.ToString();
+//                        // 鍙繚瀛樼壒寰佸��2048涓瓧鑺傜殑fea鍒版枃浠朵腑
+//                        // FileUtil.byte2file("G:\\Development\\Application\\testface\\img\\beckham\\fea1.txt",fea, 2048);
+//                    }
+//                    else
+//                    {
+//                        Console.WriteLine("get face feature error");
+//                        return "error";
+//                    }
+//                }
+//            }
+//            catch (Exception e)
+//            {
+//                throw e;
+//            }
+//        }
+//        /// <summary>
+//        /// 鑾峰彇浜鸿劯鐗瑰緛鍊� 2048Byte
+//        /// </summary>
+//        /// <param name="file_name">鍥剧墖淇℃伅锛屾暟鎹ぇ灏忓皬浜�10M锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�</param>
+//        /// <param name="length">閫氳繃寮曠敤杩斿洖鐗瑰緛鍊肩殑闀垮害锛岃嫢涓�2048琛ㄧず鎻愬彇姝g‘锛屽叾浠栧�艰〃绀烘彁鍙栦簡閿欒鐨勭壒寰佸��</param>
+//        /// <returns></returns>
+//        public string GetFaceFeature(string file_name, ref int length)
+//        {
+//            byte[] fea = new byte[2048];
+//            int len = length == 0 ? 0 : length; //defalut=0
+//            string result = "";
+//            IntPtr ptr = get_face_feature(file_name, ref len);
+//            if (ptr == IntPtr.Zero)
+//            {
+//                result = ("get face feature error");
+//            }
+//            else
+//            {
+//                if (len == 2048)
+//                {
+//                    result = ("get face feature success");
+//                    Marshal.Copy(ptr, fea, 0, 2048);
+//                    // 鍙繚瀛樼壒寰佸��2048涓瓧鑺傜殑fea鍒版枃浠朵腑
+//                    // FileUtil.byte2file("G:\\Development\\Application\\testface\\img\\beckham\\fea1.txt",fea, 2048);
+//                }
+//                else
+//                {
+//                    result = ("get face feature error");
+//                }
+//            }
+//            return result;
+//        }
+
+
+//        //// 娴嬭瘯鑾峰彇浜鸿劯鐗瑰緛鍊�(2048涓猙yte锛�
+//        //public void test_get_face_feature_by_buf()
+//        //{
+//        //    byte[] fea = new byte[2048];
+//        //    System.Drawing.Image img = System.Drawing.Image.FromFile("G:\\Development\\Application\\testface\\img\\beckham\\2.jpg");
+//        //    byte[] img_bytes = ImageUtil.img2byte(img);
+//        //    int len = 0;
+//        //    IntPtr ptr = get_face_feature_by_buf(img_bytes, img_bytes.Length, ref len);
+//        //    if (ptr == IntPtr.Zero)
+//        //    {
+//        //        Console.WriteLine("get face feature error");
+//        //    }
+//        //    else
+//        //    {
+//        //        if (len == 2048)
+//        //        {
+//        //            Console.WriteLine("get face feature success");
+//        //            Marshal.Copy(ptr, fea, 0, 2048);
+//        //            // 鍙繚瀛樼壒寰佸��2048涓瓧鑺傜殑fea鍒版枃浠朵腑
+//        //            //  FileUtil.byte2file("G:\\Development\\Application\\testface\\img\\beckham\\fea2.txt",fea, 2048);
+//        //        }
+//        //        else
+//        //        {
+//        //            Console.WriteLine("get face feature error");
+//        //        }
+//        //    }
+//        //}
+
+//        ///// <summary>
+//        ///// 鑾峰彇浜鸿劯鐗瑰緛鍊� 2048byte
+//        ///// </summary>
+//        ///// <param name="filePath"></param>
+//        ///// <returns></returns>
+//        //public string GetFaceFeatureByBuffer(string filePath)
+//        //{
+//        //    byte[] fea = new byte[2048];
+//        //    string result = "";
+//        //    System.Drawing.Image img = System.Drawing.Image.FromFile(filePath);
+//        //    byte[] img_bytes = ImageUtil.img2byte(img);
+//        //    int len = 0;
+//        //    IntPtr ptr = get_face_feature_by_buf(img_bytes, img_bytes.Length, ref len);
+//        //    if (ptr == IntPtr.Zero)
+//        //    {
+//        //        result = ("get face feature error");
+//        //    }
+//        //    else
+//        //    {
+//        //        if (len == 2048)
+//        //        {
+//        //            result = ("get face feature success");
+//        //            Marshal.Copy(ptr, fea, 0, 2048);
+//        //            // 鍙繚瀛樼壒寰佸��2048涓瓧鑺傜殑fea鍒版枃浠朵腑
+//        //            //  FileUtil.byte2file("G:\\Development\\Application\\testface\\img\\beckham\\fea2.txt",fea, 2048);
+//        //        }
+//        //        else
+//        //        {
+//        //            result = ("get face feature error");
+//        //        }
+//        //    }
+//        //    return result;
+//        //}
+
+
+//        // 娴嬭瘯1:1姣旇緝锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�
+//        public void test_match()
+//        {
+//            string file1 = "G:\\Development\\Application\\testface\\img\\beckham\\1.jpg";
+//            string file2 = "G:\\Development\\Application\\testface\\img\\beckham\\9.jpg";
+//            IntPtr ptr = match(file1, file2);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("match res is:" + buf);
+//        }
+//        /// <summary>
+//        /// 1:1姣旇緝 浼犲叆鍥剧墖鏂囦欢璺緞
+//        /// </summary>
+//        /// <param name="file1"></param>
+//        /// <param name="file2"></param>
+//        /// <returns></returns>
+//        public string FaceMatch(string file1, string file2)
+//        {
+//            IntPtr ptr = match(file1, file2);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("match res is:" + buf);
+//            return buf;
+//        }
+//        // 娴嬭瘯1:1姣旇緝锛屼紶鍏ュ浘鐗囨枃浠朵簩杩涘埗buffer
+//        //public void test_match_by_buf()
+//        //{
+//        //    System.Drawing.Image img1 = System.Drawing.Image.FromFile("d:\\444.bmp");
+//        //    byte[] img_bytes1 = ImageUtil.img2byte(img1);
+
+//        //    System.Drawing.Image img2 = System.Drawing.Image.FromFile("d:\\555.png");
+//        //    byte[] img_bytes2 = ImageUtil.img2byte(img2);
+//        //    Console.WriteLine("IntPtr ptr = match_by_buf");
+//        //    IntPtr ptr = match_by_buf(img_bytes1, img_bytes1.Length, img_bytes2, img_bytes2.Length);
+//        //    string buf = Marshal.PtrToStringAnsi(ptr);
+//        //    Console.WriteLine("match_by_buf res is:" + buf);
+//        //}
+//        /// <summary>
+//        /// 1:1姣旇緝 浼犲浘鐗囦簩杩涘埗Buffer
+//        /// </summary>
+//        /// <param name="file1"></param>
+//        /// <param name="file2"></param>
+//        /// <returns></returns>
+//        public string FaceMatchByBuffer(byte[] file1, byte[] file2)
+//        {
+//            // System.Drawing.Image img1 = System.Drawing.Image.FromFile(file1);
+//            byte[] img_bytes1 = file1; // ImageUtil.img2byte(img1);
+
+//            // System.Drawing.Image img2 = System.Drawing.Image.FromFile(file2);
+//            byte[] img_bytes2 = file2; // ImageUtil.img2byte(img2);
+//            Console.WriteLine("IntPtr ptr = match_by_buf");
+//            IntPtr ptr = match_by_buf(img_bytes1, img_bytes1.Length, img_bytes2, img_bytes2.Length);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            return ("match_by_buf res is:" + buf);
+//        }
+//        // 娴嬭瘯1:1姣旇緝锛屼紶鍏pencv瑙嗛甯�
+//        public void test_match_by_mat()
+//        {
+//            Mat img1 = Cv2.ImRead("d:\\444.bmp");
+//            Mat img2 = Cv2.ImRead("d:\\555.png");
+//            IntPtr ptr = match_by_mat(img1.CvPtr, img2.CvPtr);// img_bytes1, img_bytes1.Length, img_bytes2, img_bytes2.Length);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("match_by_buf res is:" + buf);
+//        }
+//        /// <summary>
+//        /// 1:1姣旇緝锛屼紶鍏pencv瑙嗛甯�
+//        /// </summary>
+//        /// <param name="file1"></param>
+//        /// <param name="file2"></param>
+//        /// <returns></returns>
+//        public string FaceMatchByMat(string file1, string file2)
+//        {
+//            Mat img1 = Cv2.ImRead(file1);
+//            Mat img2 = Cv2.ImRead(file2);
+//            IntPtr ptr = match_by_mat(img1.CvPtr, img2.CvPtr);// img_bytes1, img_bytes1.Length, img_bytes2, img_bytes2.Length);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            return ("match_by_buf res is:" + buf);
+
+//        }
+//        // 娴嬭瘯鏍规嵁鐗瑰緛鍊煎拰鍥剧墖浜岃繘鍒禸uf姣旇緝
+//        //public void test_match_by_feature()
+//        //{
+//        //    // 鑾峰彇鐗瑰緛鍊�2048涓瓧鑺�
+//        //    byte[] fea = new byte[2048];
+//        //    string file_name = "G:\\Development\\Application\\testface\\img\\beckham\\2.jpg";
+//        //    int len = 0;
+//        //    IntPtr ptr = get_face_feature(file_name, ref len);
+//        //    if (len != 2048)
+//        //    {
+//        //        Console.WriteLine("get face feature error!");
+//        //        return;
+//        //    }
+//        //    Marshal.Copy(ptr, fea, 0, 2048);
+//        //    // 鑾峰彇鍥剧墖浜岃繘鍒禸uffer
+//        //    System.Drawing.Image img2 = System.Drawing.Image.FromFile("G:\\Development\\Application\\testface\\img\\beckham\\8.jpg");
+//        //    byte[] img_bytes2 = ImageUtil.img2byte(img2);
+
+//        //    IntPtr ptr_res = match_by_feature(fea, fea.Length, img_bytes2, img_bytes2.Length);
+//        //    string buf = Marshal.PtrToStringAnsi(ptr_res);
+//        //    Console.WriteLine("match_by_feature res is:" + buf);
+
+//        //}
+//        /// <summary>
+//        /// 鏍规嵁鐗瑰緛鍊煎拰鍥剧墖浜岃繘鍒禸uf姣旇緝
+//        /// </summary>
+//        /// <param name="file_name">闇�瑕佸姣旂殑鐗瑰緛鍊�</param>
+//        /// <param name="file_buffer">闇�瑕佸姣旂殑绗簩寮犲浘鐗囷紝灏忎簬10M</param>
+//        /// <returns></returns>
+//        public string FaceMatchByFeature(byte[] file_name, byte[] file_buffer)
+//        {
+//            // 鑾峰彇鐗瑰緛鍊�2048涓瓧鑺�
+//            byte[] fea = file_name; // new byte[2048];
+//            //int len = 0;
+//            //IntPtr ptr = get_face_feature(file_name, ref len);
+//            //if (len != 2048)
+//            //{
+//            //    return ("get face feature error!");
+//            //}
+//            //Marshal.Copy(ptr, fea, 0, 2048);
+//            //// 鑾峰彇鍥剧墖浜岃繘鍒禸uffer
+//            //System.Drawing.Image img2 = System.Drawing.Image.FromFile(file_buffer);
+//            byte[] img_bytes2 = file_buffer; // ImageUtil.img2byte(img2);
+
+//            IntPtr ptr_res = match_by_feature(fea, fea.Length, img_bytes2, img_bytes2.Length);
+//            string buf = Marshal.PtrToStringAnsi(ptr_res);
+//            Console.WriteLine("match_by_feature res is:" + buf);
+//            return buf;
+
+//        }
+
+//        // 娴嬭瘯1:N姣旇緝锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�
+//        public /*void*/string test_identify(string str, string usr_grp, string usr_id)
+//        {
+//            string file1 = str;//"G:\\Development\\Application\\testface\\img\\beckham\\6.jpg";
+//            string user_group = usr_grp;//"test_group";
+//            string user_id = usr_id;//"test_user";
+//            IntPtr ptr = identify(file1, user_group, user_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("identify res is:" + buf);
+//            return buf;
+//        }
+//        /// <summary>
+//        /// 1:N姣旇緝锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�
+//        /// </summary>
+//        /// <param name="file">鍥剧墖淇℃伅锛屾暟鎹ぇ灏忓皬浜�10M锛屼紶鍏ュ浘鐗囨枃浠惰矾寰�</param>
+//        /// <param name="user_group">缁刬d鍒楄〃銆傞粯璁よ嚦灏戝~鍐欎竴涓猤roup_id锛屼粠鎸囧畾鐨刧roup涓繘琛屾煡鎵俱�傞渶瑕佸悓鏃舵煡璇㈠涓猤roup锛岀敤閫楀彿鍒嗛殧锛屼笂闄�10涓�</param>
+//        /// <param name="user_id">鐢ㄦ埛id锛岃嫢鎸囧畾浜嗘煇涓猽ser锛屽垯鍙細涓庢寚瀹歡roup涓嬬殑杩欎釜user杩涜瀵规瘮锛涜嫢user_id浼犵┖瀛楃涓测�� 鈥濓紝鍒欎細涓庢group涓嬬殑鎵�鏈塽ser杩涜1锛歂璇嗗埆</param>
+//        /// <returns></returns>
+//        public static string FaceIdentify(string file, string user_group, string user_id)
+//        {
+//            string file1 = file;
+//            IntPtr ptr = identify(file1, user_group, user_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("identify res is:" + buf);
+//            return buf;
+//        }
+
+//        // 娴嬭瘯1:N姣旇緝锛屼紶鍏ュ浘鐗囨枃浠朵簩杩涘埗buffer
+//        //public void test_identify_by_buf(string str, string usr_grp, string usr_id)
+//        //{
+//        //    System.Drawing.Image img = System.Drawing.Image.FromFile(str);//"G:\\Development\\Application\\testface\\img\\beckham\\2.jpg");
+//        //    byte[] img_bytes = ImageUtil.img2byte(img);
+
+//        //    string user_group = usr_grp;//"test_group";
+//        //    string user_id = usr_id;// "test_user";
+//        //    IntPtr ptr = identify_by_buf(img_bytes, img_bytes.Length, user_group, user_id);
+//        //    string buf = Marshal.PtrToStringAnsi(ptr);
+//        //    Console.WriteLine("identify_by_buf res is:" + buf);
+//        //}
+//        /// <summary>
+//        /// 1:N姣旇緝锛屼紶鍏ュ浘鐗囨枃浠朵簩杩涘埗buffer
+//        /// </summary>
+//        /// <param name="str">浜岃繘鍒跺浘鐗囦俊鎭紝鏁版嵁澶у皬灏忎簬10M</param>
+//        /// <param name="usr_grp">缁刬d鍒楄〃銆傞粯璁よ嚦灏戝~鍐欎竴涓猤roup_id锛屼粠鎸囧畾鐨刧roup涓繘琛屾煡鎵俱�傞渶瑕佸悓鏃舵煡璇㈠涓猤roup锛岀敤閫楀彿鍒嗛殧锛屼笂闄�10涓�</param>
+//        /// <param name="usr_id">鐢ㄦ埛id锛岃嫢鎸囧畾浜嗘煇涓猽ser锛屽垯鍙細涓庢寚瀹歡roup涓嬬殑杩欎釜user杩涜瀵规瘮锛涜嫢user_id浼犵┖瀛楃涓测�� 鈥濓紝鍒欎細涓庢group涓嬬殑鎵�鏈塽ser杩涜1锛歂璇嗗埆</param>
+//        /// <returns></returns>
+//        public string FaceIdentifyByBuffer(byte[] str, string usr_grp, string usr_id)
+//        {
+//            // System.Drawing.Image img = System.Drawing.Image.FromFile(str);
+//            byte[] img_bytes = str; // ImageUtil.img2byte(img);
+
+//            string user_group = usr_grp;//"test_group";
+//            string user_id = usr_id;// "test_user";
+//            IntPtr ptr = identify_by_buf(img_bytes, img_bytes.Length, user_group, user_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("identify_by_buf res is:" + buf);
+//            return buf;
+//        }
+
+//        // 娴嬭瘯1:N姣旇緝锛屼紶鍏ユ彁鍙栫殑浜鸿劯鐗瑰緛鍊�
+//        public void test_identify_by_feature()
+//        {
+//            // 鑾峰彇鐗瑰緛鍊�2048涓瓧鑺�
+//            byte[] fea = new byte[2048];
+//            string file_name = "G:\\Development\\Application\\testface\\img\\beckham\\2.jpg";
+//            int len = 0;
+//            IntPtr ptr = get_face_feature(file_name, ref len);
+//            if (len != 2048)
+//            {
+//                Console.WriteLine("get face feature error!");
+//                return;
+//            }
+//            Marshal.Copy(ptr, fea, 0, 2048);
+
+//            string user_group = "test_group";
+//            string user_id = "test_user";
+//            IntPtr ptr_res = identify_by_feature(fea, fea.Length, user_group, user_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr_res);
+//            Console.WriteLine("identify_by_feature res is:" + buf);
+//        }
+//        /// <summary>
+//        /// 1:N姣旇緝锛屼紶鍏ユ彁鍙栫殑浜鸿劯鐗瑰緛鍊�
+//        /// </summary>
+//        /// <param name="file_name">浼犲叆鍥剧墖鐗瑰緛</param>
+//        /// <param name="userGroup">缁刬d鍒楄〃銆傞粯璁よ嚦灏戝~鍐欎竴涓猤roup_id锛屼粠鎸囧畾鐨刧roup涓繘琛屾煡鎵俱�傞渶瑕佸悓鏃舵煡璇㈠涓猤roup锛岀敤閫楀彿鍒嗛殧锛屼笂闄�10涓�</param>
+//        /// <param name="userId">鐢ㄦ埛id锛岃嫢鎸囧畾浜嗘煇涓猽ser锛屽垯鍙細涓庢寚瀹歡roup涓嬬殑杩欎釜user杩涜瀵规瘮锛涜嫢user_id浼犵┖瀛楃涓测�� 鈥濓紝鍒欎細涓庢group涓嬬殑鎵�鏈塽ser杩涜1锛歂璇嗗埆</param>
+//        /// 
+//        public static string FaceIdentifyByFeature(string file_name, string userGroup, string userId)
+//        {
+//            // 鑾峰彇鐗瑰緛鍊�2048涓瓧鑺�
+//            byte[] fea = new byte[2048];
+//            int len = 0;
+//            IntPtr ptr = get_face_feature(file_name, ref len);
+//            if (len != 2048)
+//            {
+//                return ("get face feature error!");
+//            }
+//            Marshal.Copy(ptr, fea, 0, 2048);
+
+//            string user_group = userGroup == null ? "test_group" : userGroup;
+//            string user_id = userId == null ? "test_user" : userId;
+//            IntPtr ptr_res = identify_by_feature(fea, fea.Length, user_group, user_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr_res);
+//            Console.WriteLine("identify_by_feature res is:" + buf);
+//            return buf;
+//        }
+
+//        // 閫氳繃鐗瑰緛鍊兼瘮瀵癸紙1:1锛�
+//        public void test_compare_feature()
+//        {
+//            // 鑾峰彇鐗瑰緛鍊�1   鍏�2048涓瓧鑺�
+//            byte[] fea1 = new byte[2048];
+//            string file_name1 = "G:\\Development\\Application\\testface\\img\\beckham\\2.jpg";
+//            int len1 = 0;
+//            IntPtr ptr1 = get_face_feature(file_name1, ref len1);
+//            if (len1 != 2048)
+//            {
+//                Console.WriteLine("get face feature error!");
+//                return;
+//            }
+//            Marshal.Copy(ptr1, fea1, 0, 2048);
+
+//            // 鑾峰彇鐗瑰緛鍊�2   鍏�2048涓瓧鑺�
+//            byte[] fea2 = new byte[2048];
+//            string file_name2 = "G:\\Development\\Application\\testface\\img\\beckham\\8.jpg";
+//            int len2 = 0;
+//            IntPtr ptr2 = get_face_feature(file_name2, ref len2);
+//            if (len2 != 2048)
+//            {
+//                Console.WriteLine("get face feature error!");
+//                return;
+//            }
+//            Marshal.Copy(ptr2, fea2, 0, 2048);
+//            // 姣斿
+//            float score = compare_feature(fea1, len1, fea2, len2);
+//            Console.WriteLine("compare_feature score is:" + score);
+//        }
+//        /// <summary>
+//        /// 閫氳繃鐗瑰緛鍊兼瘮瀵癸紙1:1锛� 瀵逛汉鑴哥壒寰佸�艰繘琛屾瘮杈冿紝鍙繑鍥炰汉鑴哥壒寰佺浉浼煎垎鍊硷紙鐧惧垎鍒讹級
+//        /// </summary>
+//        /// <param name="file_name1">2048涓猙yte鏁扮粍鐨勭壒寰佸��(浼犲浘鐗囪矾寰�)</param>
+//        /// <param name="file_name2">2048涓猙yte鏁扮粍鐨勭壒寰佸�硷紙浼犲浘鐗囪矾寰勶級</param>
+//        /// <returns></returns>
+//        public static string FaceCompareFeature(string file_name1, string file_name2)
+//        {
+//            string mes = "鍏ワ細";
+//            try
+//            {
+
+//                // 鑾峰彇鐗瑰緛鍊�1   鍏�2048涓瓧鑺�
+//                byte[] fea1 = new byte[2048];
+//                int len1 = 0;
+//                IntPtr ptr1 = get_face_feature(file_name1, ref len1);
+//                if (len1 != 2048)
+//                {
+//                    return mes += "get face feature error!";
+//                }
+//                Marshal.Copy(ptr1, fea1, 0, 2048);
+
+//                // 鑾峰彇鐗瑰緛鍊�2   鍏�2048涓瓧鑺�
+//                byte[] fea2 = new byte[2048];
+//                int len2 = 0;
+//                IntPtr ptr2 = get_face_feature(file_name2, ref len2);
+//                if (len2 != 2048)
+//                {
+//                    return mes += "get face feature error!";
+//                }
+//                Marshal.Copy(ptr2, fea2, 0, 2048);
+//                // 姣斿
+//                // len1 鐗瑰緛鍊�1鐨勯暱搴�
+//                float score = compare_feature(fea1, len1, fea2, len2);
+//                Console.WriteLine("compare_feature score is:" + score);
+//                return mes += score.ToString();
+
+//            }
+//            catch (Exception ex)
+//            {
+//                return mes += ex;
+//            }
+//        }
+//        /// <summary>
+//        /// 閫氳繃鐗瑰緛鍊兼瘮瀵癸紙1:1锛� 瀵逛汉鑴哥壒寰佸�艰繘琛屾瘮杈冿紝鍙繑鍥炰汉鑴哥壒寰佺浉浼煎垎鍊硷紙鐧惧垎鍒讹級
+//        /// </summary>
+//        /// <param name="face1">2048涓猙yte鏁扮粍鐨勭壒寰佸��</param>
+//        /// <param name="face2">2048涓猙yte鏁扮粍鐨勭壒寰佸��</param>
+//        /// <returns></returns>
+//        public string FaceCompareFeatureByBuffer(byte[] face1, byte[] face2)
+//        {
+//            if (face1.Length == 2048 && face2.Length == 2048)
+//            {
+//                // 鑾峰彇鐗瑰緛鍊�1   鍏�2048涓瓧鑺�
+//                byte[] fea1 = new byte[2048];
+//                fea1 = face1;
+//                int len1 = 0;
+//                // 鑾峰彇鐗瑰緛鍊�1   鍏�2048涓瓧鑺�
+//                byte[] fea2 = new byte[2048];
+//                fea2 = face2;
+//                int len2 = 0;
+//                // 姣斿
+//                // len1 鐗瑰緛鍊�1鐨勯暱搴�
+//                float score = compare_feature(fea1, len1, fea2, len2);
+//                Console.WriteLine("compare_feature score is:" + score);
+//                return score.ToString();
+//            }
+//            else
+//            {
+//                return "byte should be 2048";
+//            }
+//        }
+
+//        // 娴嬭瘯1:N姣旇緝锛屼紶鍏ユ彁鍙栫殑浜鸿劯鐗瑰緛鍊煎拰宸插姞杞界殑鍐呭瓨涓暣涓簱姣旇緝
+//        public void test_identify_by_feature_with_all()
+//        {
+//            // 鍔犺浇鏁翠釜鏁版嵁搴撳埌鍐呭瓨涓�
+//            load_db_face();
+//            // 鑾峰彇鐗瑰緛鍊�2048涓瓧鑺�
+//            byte[] fea = new byte[2048];
+//            string file_name = "G:\\Development\\Application\\testface\\img\\beckham\\2.jpg";
+//            int len = 0;
+//            IntPtr ptr = get_face_feature(file_name, ref len);
+//            if (len != 2048)
+//            {
+//                Console.WriteLine("get face feature error!");
+//                return;
+//            }
+//            Marshal.Copy(ptr, fea, 0, 2048);
+//            IntPtr ptr_res = identify_by_feature_with_all(fea, fea.Length);
+//            string buf = Marshal.PtrToStringAnsi(ptr_res);
+//            Console.WriteLine("identify_by_feature_with_all res is:" + buf);
+//        }
+//        /// <summary>
+//        /// 1:N姣旇緝锛屼紶鍏ユ彁鍙栫殑浜鸿劯鐗瑰緛鍊煎拰宸插姞杞界殑鍐呭瓨涓暣涓簱姣旇緝
+//        /// </summary>
+//        /// <param name="file_name">浼犲叆浜鸿劯鏂囦欢鐗瑰緛鍊�</param>
+//        /// <returns></returns>
+//        public string FaceIdentifyByFeatureWithAll(byte[] file_name)
+//        {
+//            // 鍔犺浇鏁翠釜鏁版嵁搴撳埌鍐呭瓨涓�
+//            load_db_face();
+//            // 鑾峰彇鐗瑰緛鍊�2048涓瓧鑺�
+//            byte[] fea = new byte[2048];
+//            fea = file_name;
+//            int len = 0;
+//            //IntPtr ptr = get_face_feature(file_name, ref len);
+//            //if (len != 2048)
+//            //{
+//            //    Console.WriteLine("get face feature error!");
+//            //    return "error";
+//            //}
+//            // Marshal.Copy(ptr, fea, 0, 2048);
+//            IntPtr ptr_res = identify_by_feature_with_all(fea, fea.Length);
+//            string buf = Marshal.PtrToStringAnsi(ptr_res);
+//            Console.WriteLine("identify_by_feature_with_all res is:" + buf);
+//            return buf;
+//        }
+
+//        // 娴嬭瘯1:N姣旇緝锛屼紶鍏ュ浘鐗囨枃浠惰矾寰勫拰宸插姞杞界殑鍐呭瓨涓暣涓簱姣旇緝
+//        public void test_identify_with_all()
+//        {
+//            // 鍔犺浇鏁翠釜鏁版嵁搴撳埌鍐呭瓨涓�
+//            load_db_face();
+//            // 1:N
+//            string file1 = "G:\\Development\\Application\\testface\\img\\beckham\\3.jpg";
+//            IntPtr ptr = identify_with_all(file1);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("identify_with_all res is:" + buf);
+//        }
+//        /// <summary>
+//        /// 1:N姣旇緝锛屼紶鍏ュ浘鐗囨枃浠惰矾寰勫拰宸插姞杞界殑鍐呭瓨涓暣涓簱姣旇緝
+//        /// </summary>
+//        /// <param name="file1">浼犲叆鍥剧墖璺緞</param>
+//        /// <returns></returns>
+//        public string FaceIndentifyWithAll(string file1)
+//        {
+//            // 鍔犺浇鏁翠釜鏁版嵁搴撳埌鍐呭瓨涓�
+//            load_db_face();
+//            // 1:N
+//            IntPtr ptr = identify_with_all(file1);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("identify_with_all res is:" + buf);
+//            return buf;
+//        }
+       
+
+//        /// <summary>
+//        /// 1:N姣旇緝锛屼紶鍏ュ浘鐗囨枃浠朵簩杩涘埗buffer鍜屽凡鍔犺浇鐨勫唴瀛樹腑鏁翠釜搴撴瘮杈�
+//        /// </summary>
+//        /// <param name="file_name"></param>
+//        /// <returns></returns>
+//        public string FaceIdentifyByBufferWithAll(byte[] file_name)
+//        {
+//            // 鍔犺浇鏁翠釜鏁版嵁搴撳埌鍐呭瓨涓�
+//            load_db_face();
+//            // 1:N
+//            // System.Drawing.Image img = System.Drawing.Image.FromFile(file_name);
+//            byte[] img_bytes = file_name;// ImageUtil.img2byte(img);
+
+//            IntPtr ptr = identify_by_buf_with_all(img_bytes, img_bytes.Length);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("identify_by_buf_with_all res is:" + buf);
+//            return buf;
+//        }
+
+//    }
+//}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceDraw.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceDraw.cs"
new file mode 100644
index 0000000..b349f87
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceDraw.cs"
@@ -0,0 +1,151 @@
+锘�//using System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Text;
+//using System.Threading.Tasks;
+//using OpenCvSharp;
+//// 缁樺埗绫伙紝鐢讳汉鑴告锛岀敾鍏抽敭鐐圭瓑
+//namespace FaceAI
+//{
+//    class FaceDraw
+//    {
+//        // 鐢讳汉鑴告
+//        public static int draw_rects(ref Mat img, int face_num, BDFaceBBox[] info)
+//        {
+//            if (face_num <= 0)
+//            {
+//                return 0;
+//            }
+//            Scalar color = new Scalar(0, 255, 0);
+//            for (int i = 0; i < face_num; i++)
+//            {
+//                int x = Convert.ToInt32(info[i].center_x - info[i].width / 2.0);
+//                int y = Convert.ToInt32(info[i].center_y - info[i].height / 2.0);
+//                int w = Convert.ToInt32(info[i].width);
+//                int h = Convert.ToInt32(info[i].height);
+//                Rect rect = new Rect(x, y, w, h);
+//                Cv2.Rectangle(img, rect, color);
+//            }
+//            return 0;
+//        }
+//        // 鐢讳汉鑴告
+//        public static int draw_rects(ref Mat img, int face_num, BDFaceTrackInfo[] track_info)
+//        {          
+//            if (face_num <= 0)
+//            {
+//                return 0;
+//            }
+//            Scalar color = new Scalar(0, 255, 0);
+//            for(int i = 0; i < face_num; i++)
+//            {
+//                int x = Convert.ToInt32(track_info[i].box.center_x- track_info[i].box.width / 2.0);
+//                int y = Convert.ToInt32(track_info[i].box.center_y - track_info[i].box.height / 2.0);
+//                int w = Convert.ToInt32(track_info[i].box.width);
+//                int h = Convert.ToInt32(track_info[i].box.height);
+//                Rect rect = new Rect(x,y,w,h);
+//                Cv2.Rectangle(img, rect, color);
+//            }
+//            return 0;
+//        }
+//        // 鐢讳汉鑴稿叧閿偣
+//        public static int draw_shape(ref Mat img, int face_num, BDFaceTrackInfo[] track_info)
+//        {
+//            if (face_num <= 0)
+//            {
+//                return 0;
+//            }
+//            int face_id = 0;
+//            Scalar color = new Scalar(0, 255, 255);
+//            Scalar color2 = new Scalar(0, 0, 255);
+//            for (int i = 0; i < face_num; ++i)
+//            {
+//                int point_size = track_info[i].landmark.size / 2;
+//                int radius = 2;
+//                face_id = track_info[i].face_id;
+//                for (int j = 0; j < point_size; ++j)
+//                {
+//                    Cv2.Circle(img, (int)track_info[i].landmark.data[j * 2], (int)track_info[i].landmark.data[j * 2 + 1], radius, color);
+//                }
+//                if (point_size == 72)
+//                {
+//                    const int components = 9;
+//                    int[] comp1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
+//                    int[] comp2 = { 13, 14, 15, 16, 17, 18, 19, 20, 13, 21 };
+//                    int[] comp3 = { 22, 23, 24, 25, 26, 27, 28, 29, 22 };
+//                    int[] comp4 = { 30, 31, 32, 33, 34, 35, 36, 37, 30, 38 };
+//                    int[] comp5 = { 39, 40, 41, 42, 43, 44, 45, 46, 39 };
+//                    int[] comp6 = { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 47 };
+//                    int[] comp7 = { 51, 57, 52 };
+//                    int[] comp8 = { 58, 59, 60, 61, 62, 63, 64, 65, 58 };
+//                    int[] comp9 = { 58, 66, 67, 68, 62, 69, 70, 71, 58 };
+//                    int[][] idx = { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9 };
+//                    int[] npoints = { 13, 10, 9, 10, 9, 11, 3, 9, 9 };
+
+//                    for (int m = 0; m < components; ++m)
+//                    {
+//                        for (int n = 0; n < npoints[m] - 1; ++n)
+//                        {
+//                            Point p1 = new Point(track_info[i].landmark.data[idx[m][n] * 2], track_info[i].landmark.data[idx[m][n] * 2 + 1]);
+//                            Point p2 = new Point(track_info[i].landmark.data[idx[m][n + 1] * 2], track_info[i].landmark.data[idx[m][n + 1] * 2 + 1]);
+//                            Cv2.Line(img, p1, p2, color2);
+//                        }
+//                    }
+//                }
+//                string s_face_id = face_id.ToString();
+//                double font_scale = 2;
+//                Point pos = new Point(track_info[i].box.center_x, track_info[i].box.center_y);
+//                Cv2.PutText(img, s_face_id, pos, HersheyFonts.HersheyComplex, font_scale, new Scalar(0, 255, 255));              
+//            }
+           
+//            return 0;
+//        }
+
+//        // 鐢讳汉鑴稿叧閿偣
+//        public static int draw_landmark(ref Mat img, int face_num, BDFaceLandmark[] landmark)
+//        {
+//            if (face_num <= 0)
+//            {
+//                return 0;
+//            }
+//            Scalar color = new Scalar(0, 255, 255);
+//            Scalar color2 = new Scalar(0, 0, 255);
+//            for (int i = 0; i < face_num; ++i)
+//            {
+//                int point_size = landmark[i].size / 2;
+//                int radius = 2;
+//                for (int j = 0; j < point_size; ++j)
+//                {
+//                    Cv2.Circle(img, (int)landmark[i].data[j * 2], (int)landmark[i].data[j * 2 + 1], radius, color);
+//                }
+//                if (point_size == 72)
+//                {
+//                    const int components = 9;
+//                    int[] comp1 = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };
+//                    int[] comp2 = { 13, 14, 15, 16, 17, 18, 19, 20, 13, 21 };
+//                    int[] comp3 = { 22, 23, 24, 25, 26, 27, 28, 29, 22 };
+//                    int[] comp4 = { 30, 31, 32, 33, 34, 35, 36, 37, 30, 38 };
+//                    int[] comp5 = { 39, 40, 41, 42, 43, 44, 45, 46, 39 };
+//                    int[] comp6 = { 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 47 };
+//                    int[] comp7 = { 51, 57, 52 };
+//                    int[] comp8 = { 58, 59, 60, 61, 62, 63, 64, 65, 58 };
+//                    int[] comp9 = { 58, 66, 67, 68, 62, 69, 70, 71, 58 };
+//                    int[][] idx = { comp1, comp2, comp3, comp4, comp5, comp6, comp7, comp8, comp9 };
+//                    int[] npoints = { 13, 10, 9, 10, 9, 11, 3, 9, 9 };
+
+//                    for (int m = 0; m < components; ++m)
+//                    {
+//                        for (int n = 0; n < npoints[m] - 1; ++n)
+//                        {
+//                            Point p1 = new Point(landmark[i].data[idx[m][n] * 2], landmark[i].data[idx[m][n] * 2 + 1]);
+//                            Point p2 = new Point(landmark[i].data[idx[m][n + 1] * 2], landmark[i].data[idx[m][n + 1] * 2 + 1]);
+//                            Cv2.Line(img, p1, p2, color2);
+//                        }
+//                    }
+//                }
+
+
+//            }
+//            return 0;
+//        }
+//    }
+//}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceFeature.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceFeature.cs"
new file mode 100644
index 0000000..a0cd4ee
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceFeature.cs"
@@ -0,0 +1,133 @@
+锘�//using System;
+//using System.Collections.Generic;
+//using System.Linq;
+//using System.Text;
+//using System.Threading.Tasks;
+//using System.Runtime.InteropServices;
+//using System.IO;
+////using OpenCvSharp;
+
+//// 鎻愬彇浜鸿劯鐗瑰緛鍊�
+//namespace FaceAI
+//{
+//    // 浜鸿劯鐗瑰緛鍊肩粨鏋勪綋
+//    [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//    public struct BDFaceFeature
+//    {
+//        public int size;
+//        // 浜鸿劯鐨勭壒寰佸�硷紝鎻愬彇鍑烘潵鍚庢槸128涓猣loat鐨勬诞鐐瑰��
+//        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 128)]
+//        public float[] data;// = new float[128];
+//    }
+//    // 浜鸿劯鐗瑰緛鍊肩粨鏋勪綋
+//    [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//    public struct BDDepthFeature
+//    {
+//        public int size;
+//        // 浜鸿劯鐨勬繁搴︾壒寰佸�硷紝鎻愬彇鍑烘潵鍚庢槸256涓猣loat鐨勬诞鐐瑰��
+//        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 256)]
+//        public float[] data;// = new float[256];
+//    }
+//    class FaceFeature
+//    {
+//        // 鎻愬彇浜鸿劯鐗瑰緛鍊�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "face_feature", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        // 杩斿洖num涓虹壒寰佸�肩殑浜烘暟,type涓�0琛ㄧず鎻愬彇鐢熸椿鐓х殑鐗瑰緛鍊硷紝1琛ㄧずnir鐨勭壒寰佸��
+//        public static extern int face_feature(IntPtr feature, IntPtr box, IntPtr mat, int type);
+       
+
+
+//        public void test_face_feature()
+//        {
+//            long t_begin = TimeUtil.get_time_stamp();
+//            BDFaceFeature[] fea1 = test_get_face_feature_by_path("../images/2.jpg");
+//            long t_end = TimeUtil.get_time_stamp();
+//            Console.WriteLine("get feature time cost is:" + (t_end - t_begin));
+//        }
+
+//        // 鑾峰彇鐗瑰緛鍊硷紝浼犲叆鍥剧墖璺緞
+//        public BDFaceFeature[] test_get_face_feature_by_path(string img_path)
+//        {
+//            // 鐗瑰緛鍊肩殑闀垮害锛�128涓猣loat鍊�
+//            int dim_count = 128;
+//            Mat mat = Cv2.ImRead(img_path);
+//            // 鍋囪鎻愬彇鐨勪汉鏁帮紝闇�瑕佹瘮瀹為檯鐨勪汉鏁板锛屽洜涓洪渶瑕佹彁鍙栧垎閰嶅唴瀛�
+//            int faceNum = 5;
+//            BDFaceFeature[] feaList = new BDFaceFeature[faceNum];
+//            for(int i = 0; i < faceNum; i++)
+//            {
+//                feaList[i].data = new float[dim_count];
+//                feaList[i].size = 0;
+//            }
+           
+//            if (mat.Empty())
+//            {
+//                return null;
+//            }
+
+//            int sizeFeature = Marshal.SizeOf(typeof(BDFaceFeature));
+//            IntPtr ptFea = Marshal.AllocHGlobal(sizeFeature * faceNum);
+
+//            // 鏋勯�犺繑鍥炵殑浜鸿劯妗嗘暟鎹�
+//            BDFaceBBox[] info = new BDFaceBBox[faceNum];
+//            int sizeBox = Marshal.SizeOf(typeof(BDFaceBBox));
+//            IntPtr ptBox = Marshal.AllocHGlobal(sizeBox * faceNum);
+//            // 杩斿洖num涓虹壒寰佸�肩殑浜烘暟,type涓�0琛ㄧず鎻愬彇鐢熸椿鐓х殑鐗瑰緛鍊硷紝1琛ㄧず璇佷欢鐓х殑鐗瑰緛鍊硷紝2琛ㄧずnir鐨勭壒寰佸��
+//            int type = 0;
+//            int num = face_feature(ptFea, ptBox, mat.CvPtr, type);
+//            if (num <= 0)
+//            {
+//                return null;
+//            }
+//            Console.WriteLine("face num is:{0}", num);
+//            // 璇风‘淇漟aceNum澶т簬num, faceNum涓篶#鏈熸湜鐨勬娴嬩汉鏁帮紝闇�瑕侀鍏堝垎閰嶅唴瀛橈紝鍚﹀垯鏃犳硶鑾峰彇
+//            if (num > faceNum)
+//            {
+//                num = faceNum;
+//            }
+//            for (int index = 0; index < num; index++)
+//            {
+//                IntPtr ptrF = new IntPtr();
+//                IntPtr ptrB = new IntPtr();
+//                if (8 == IntPtr.Size)
+//                {
+//                    ptrF = (IntPtr)(ptFea.ToInt64() + sizeFeature * index);
+//                    ptrB = (IntPtr)(ptBox.ToInt64() + sizeBox * index);
+//                }
+//                else if (4 == IntPtr.Size)
+//                {
+//                    ptrF = (IntPtr)(ptFea.ToInt32() + sizeFeature * index);
+//                    ptrB = (IntPtr)(ptBox.ToInt32() + sizeBox * index);
+//                }
+//                feaList[index] = (BDFaceFeature)Marshal.PtrToStructure(ptrF, typeof(BDFaceFeature));
+//                Console.WriteLine("feaList[index].size is:{0}", feaList[index].size);
+                
+
+//                for (int k = 0; k < feaList[index].size; k++)
+//                {
+//                    Console.WriteLine("feature is {0}:", feaList[index].data[k]);
+//                }
+
+//                info[index] = (BDFaceBBox)Marshal.PtrToStructure(ptrB, typeof(BDFaceBBox));
+
+//                // 绱㈠紩鍊�
+//                Console.WriteLine("detect score is:{0}", info[index].index);
+//                // 缃俊搴�
+//                Console.WriteLine("detect score is:{0}", info[index].score);             
+//                // 浜鸿劯瀹藉害
+//                Console.WriteLine("detect mWidth is:{0}", info[index].width);
+//                // 涓績鐐筙,Y鍧愭爣
+//                Console.WriteLine("detect mCenter_x is:{0}", info[index].center_x);
+//                Console.WriteLine("detect mCenter_y is:{0}", info[index].center_y);
+//            }
+//            // 缁樺埗浜鸿劯妗�
+//            FaceDraw.draw_rects(ref mat, faceNum, info);
+
+//            //mat.ImWrite("detect.jpg");
+//            mat.Release();
+//            return feaList;
+//        }
+       
+//    }
+//}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceLiveness.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceLiveness.cs"
new file mode 100644
index 0000000..acc403b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceLiveness.cs"
@@ -0,0 +1,548 @@
+锘�//using System;
+//using System.IO;
+//using System.Threading;
+//using System.Collections;
+//using System.Runtime.InteropServices;
+//using System.Collections.Generic;
+//using OpenCvSharp;
+
+//namespace FaceAI
+//{
+//    [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//    // 娲讳綋鍒嗗��
+//    struct BDLivenessScore
+//    {
+//        public float score; //鍒嗗��
+//    };
+//    // 娲讳綋妫�娴�
+//    class FaceLiveness
+//    {
+//        // 鍗曠洰RGB闈欓粯娲讳綋妫�娴�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "rgb_liveness", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern int rgb_liveness(IntPtr ptr_boxinfo, IntPtr ptr_score, IntPtr mat);
+
+//        // 鍗曠洰杩戠孩澶栭潤榛樻椿浣撴娴�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "nir_liveness", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern int nir_liveness(IntPtr ptr_boxinfo, IntPtr ptr_score, IntPtr mat);
+
+//        // 鍙岀洰娣卞害闈欓粯娲讳綋妫�娴�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "rgb_depth_liveness", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern int rgb_depth_liveness(IntPtr ptr_boxinfo, IntPtr ptr_rgbscore, IntPtr ptr_depthcore, IntPtr rgb_mat, IntPtr depth_mat);
+              
+
+//        public void test_liveness_by_image()
+//        {
+//            // rgb 娲讳綋妫�娴�
+//            string img_rgb = "../images/rgb.png";
+//            liveness_check(img_rgb, 0);
+//            // nir 娲讳綋妫�娴�
+//            string img_nir = "../images/nir.png";
+//           // liveness_check(img_nir, 1);
+           
+//        }
+
+//        // 娴嬭瘯鍗曠洰RGB闈欓粯娲讳綋妫�娴嬶紙浼犲叆鍥剧墖鏂囦欢璺緞锛屾椿浣撶被鍨�)
+//        public void liveness_check(string img_path, int live_type)
+//        {
+//            Mat mat = Cv2.ImRead(img_path);
+//            int max_face_num = 1; // 娲讳綋浠呰繑鍥炰竴涓汉鑴革紝澶氫汉鍙栨渶澶т汉鑴�
+
+//            BDFaceBBox[] box_info = new BDFaceBBox[max_face_num];
+            
+//            int sizeBox = Marshal.SizeOf(typeof(BDFaceBBox));
+//            IntPtr ptT = Marshal.AllocHGlobal(sizeBox * max_face_num);
+           
+
+//            BDLivenessScore[] score_info = new BDLivenessScore[max_face_num];
+//            int sizeScore = Marshal.SizeOf(typeof(BDLivenessScore));
+//            IntPtr ptS = Marshal.AllocHGlobal(sizeScore * max_face_num);
+//            // faceNum涓鸿繑鍥炵殑妫�娴嬪埌鐨勪汉鑴镐釜鏁�
+//            int faceNum = 0;
+//            if (live_type == 0)
+//            {
+//                faceNum = rgb_liveness(ptT, ptS, mat.CvPtr);
+//            }
+//            else if (live_type == 1)
+//            {
+//                faceNum = nir_liveness(ptT, ptS, mat.CvPtr);
+//            }
+//            mat.Release();
+
+
+//            Console.WriteLine("faceSize is:" + faceNum);
+//            for (int index = 0; index < faceNum; index++)
+//            {
+
+//                IntPtr ptr = new IntPtr();
+//                IntPtr ptrScore = new IntPtr();
+//                if (8 == IntPtr.Size)
+//                {
+//                    ptr = (IntPtr)(ptT.ToInt64() + sizeBox * index);
+//                    ptrScore = (IntPtr)(ptS.ToInt64() + sizeScore * index);
+//                }
+//                else if (4 == IntPtr.Size)
+//                {
+//                    ptr = (IntPtr)(ptT.ToInt32() + sizeBox * index);
+//                    ptrScore = (IntPtr)(ptS.ToInt32() + sizeScore * index);
+//                }
+
+//                box_info[index] = (BDFaceBBox)Marshal.PtrToStructure(ptr, typeof(BDFaceBBox));
+
+//                score_info[index] = (BDLivenessScore)Marshal.PtrToStructure(ptrScore, typeof(BDLivenessScore));
+              
+//                // 绱㈠紩鍊�
+//                Console.WriteLine("track index is:{0}", box_info[index].index);
+//                // 缃俊搴�
+//                Console.WriteLine("track score is:{0}", box_info[index].score);              
+//                // 浜鸿劯瀹藉害
+//                Console.WriteLine("track mWidth is:{0}", box_info[index].width);
+//                // 涓績鐐筙,Y鍧愭爣
+//                Console.WriteLine("track mCenter_x is:{0}", box_info[index].center_x);
+//                Console.WriteLine("track mCenter_y is:{0}", box_info[index].center_y);
+//                // rgb 娲讳綋鍒嗗��
+//                Console.WriteLine("liveness score is:{0}", score_info[index].score);
+
+//            }
+//            Marshal.FreeHGlobal(ptT);
+//        }
+
+//        // 閫夋嫨usb瑙嗛鎽勫儚澶磇d,鏂规硶閲岄潰鏈夎幏鍙栬繛鎺ョ殑鎽勫儚澶村垪琛紝鍖呮嫭id锛屽悕绉板拰璺緞绛�
+//        public int select_usb_device_id()
+//        {
+//            ArrayList capDevs = new ArrayList();
+//            int device_id = 0;
+//            try
+//            {
+//                if (!File.Exists(Path.Combine(Environment.SystemDirectory, @"dpnhpast.dll")))
+//                {
+//                    Console.WriteLine("DirectX NOT installed!");
+//                    return - 1;
+//                }
+//                if (!DevEnum.GetDevicesOfCat(FilterCategory.VideoInputDevice, out capDevs))
+//                {
+//                    Console.WriteLine("No video capture devices found!");
+//                    return -1;
+//                }
+//                if (capDevs.Count < 2)
+//                {
+//                    Console.WriteLine("ir and rgb camera devices needed");
+//                    return -1;
+//                }
+//                foreach (DsDevice d in capDevs) {
+//                    Console.WriteLine("== VIDEO DEVICE (id:{0}) ==", d.id);
+//                    Console.WriteLine("Name: {0}", d.Name);
+//                    Console.WriteLine("Path: {0}", d.Path);
+//                }
+
+//                if (capDevs.Count > 0)
+//                {
+//                    device_id = ((DsDevice)capDevs[0]).id;
+//                    Console.WriteLine("select device id is:{0}", device_id);
+//                }
+//            }
+//            catch(Exception)
+//            {
+//                if (capDevs != null)
+//                {
+//                    foreach (DsDevice d in capDevs)
+//                        d.Dispose();
+//                    capDevs = null;
+//                }
+//                return -1;
+//            }
+//            return device_id;
+//        }
+
+//        // 鍙岀洰RGB鍜孖R闈欓粯娲讳綋妫�娴嬶紙鍙娇鐢ㄨ开濞佹嘲鎴栬娲惧皵绛塺gb+nir鍙岀洰鎽勫儚澶�),rgb鍜宯ir鐨勫垎鍊奸兘閫氳繃濡�0.8鎵嶇畻娲讳綋閫氳繃
+//        public bool rgb_ir_liveness_check_mat()
+//        {
+//            int max_face_num = 1;//鍙栨渶澶т汉鑴哥殑娲讳綋
+//            BDLivenessScore[] rgb_score_info = new BDLivenessScore[max_face_num];
+//            BDLivenessScore[] nir_score_info = new BDLivenessScore[max_face_num];
+//            int sizeScore = Marshal.SizeOf(typeof(BDLivenessScore));
+//            IntPtr ptSRGB = Marshal.AllocHGlobal(sizeScore * max_face_num);
+//            IntPtr ptSNIR = Marshal.AllocHGlobal(sizeScore * max_face_num);
+
+//            // 鍒濆鍖杛gb 杩斿洖鐨勪汉鑴告暟鎹�
+//            BDFaceBBox[] rgb_box_info = new BDFaceBBox[max_face_num];
+            
+//            int sizeBox = Marshal.SizeOf(typeof(BDFaceBBox));
+//            IntPtr ptTRGB = Marshal.AllocHGlobal(sizeBox * max_face_num);
+
+//            // 鍒濆鍖杗ir 杩斿洖鐨勪汉鑴告暟鎹�
+//            BDFaceBBox[] nir_box_info = new BDFaceBBox[max_face_num];
+            
+//            sizeBox = Marshal.SizeOf(typeof(BDFaceBBox));
+//            IntPtr ptTNIR = Marshal.AllocHGlobal(sizeBox * max_face_num);
+
+//            // 搴忓彿0涓虹數鑴戣瘑鍒殑usb鎽勫儚澶寸紪鍙凤紝鏈琩emo涓�0涓篿r绾㈠鎽勫儚澶�
+//            // 涓嶅悓鎽勫儚澶村拰鐢佃剳璇嗗埆鍙兘鏈夊尯鍒�
+//            // 缂栧彿涓�鑸粠0-10   */            
+//            int device = select_usb_device_id();
+//            VideoCapture camera1 = VideoCapture.FromCamera(device);
+//            if(!camera1.IsOpened())
+//            {
+//                Console.WriteLine("camera1 open error");
+//                return false;
+//            }
+
+//            VideoCapture camera2 = VideoCapture.FromCamera(device+1);
+//            if (!camera2.IsOpened())
+//            {
+//                Console.WriteLine("camera2 open error");
+//                return false;
+//            }
+
+//            Mat frame1 = new Mat();
+//            Mat frame2 = new Mat();
+//            Mat rgb_mat = new Mat();
+//            Mat ir_mat = new Mat();
+//            var window_ir = new Window("ir_face");
+//            var window_rgb = new Window("rgb_face");
+//            while (true)
+//            {               
+//                camera1.Read(frame1);
+//                camera2.Read(frame2);
+//                if(!frame1.Empty() && !frame2.Empty())
+//                {                   
+//                    if (frame1.Channels() == 3)
+//                    {
+//                        rgb_mat = frame1;
+//                        ir_mat = frame2;
+//                    }
+//                    else
+//                    {
+//                        rgb_mat = frame2;
+//                        ir_mat = frame1;
+//                    }
+//                    float rgb_score = 0;
+//                    float ir_score = 0;
+
+//                    int face_size = 0;
+//                    int nir_size = nir_liveness(ptTNIR, ptSNIR, ir_mat.CvPtr);
+//                    int rgb_size = rgb_liveness(ptTRGB, ptSRGB, rgb_mat.CvPtr);
+                    
+//                    face_size = nir_size <= rgb_size?nir_size:rgb_size;                
+//                    // 鑾峰彇鐨勪汉鑴告暟
+//                    Console.WriteLine("faceNum is:{0}", face_size);
+//                    for (int index = 0; index < face_size; index++)
+//                    {
+                        
+//                        IntPtr ptrBox = new IntPtr();
+//                        IntPtr ptrRGBScore = new IntPtr();
+//                        IntPtr ptrNIRScore = new IntPtr();
+//                        if (8 == IntPtr.Size)
+//                        {
+//                            ptrBox = (IntPtr)(ptTRGB.ToInt64() + sizeBox * index);
+//                            ptrRGBScore = (IntPtr)(ptSRGB.ToInt64() + sizeScore * index);
+//                            ptrNIRScore = (IntPtr)(ptSNIR.ToInt64() + sizeScore * index);
+//                        }
+//                        else if (4 == IntPtr.Size)
+//                        {
+//                            ptrBox = (IntPtr)(ptTRGB.ToInt32() + sizeBox * index);
+//                            ptrRGBScore = (IntPtr)(ptSRGB.ToInt32() + sizeScore * index);
+//                            ptrNIRScore = (IntPtr)(ptSNIR.ToInt32() + sizeScore * index);
+//                        }
+                        
+//                        rgb_box_info[index] = (BDFaceBBox)Marshal.PtrToStructure(ptrBox, typeof(BDFaceBBox));
+                        
+//                        rgb_score_info[index] = (BDLivenessScore)Marshal.PtrToStructure(ptrRGBScore, typeof(BDLivenessScore));
+//                        nir_score_info[index] = (BDLivenessScore)Marshal.PtrToStructure(ptrNIRScore, typeof(BDLivenessScore));
+//                        rgb_score = rgb_score_info[index].score;
+//                        ir_score = nir_score_info[index].score;
+//                        if (rgb_score <= 0.1f)
+//                        {
+//                            rgb_score = 0;
+//                        }
+//                        if (ir_score <= 0.1f)
+//                        {
+//                            ir_score = 0;
+//                        }
+//                        Console.WriteLine("demo ccccc");                     
+//                        // 浜鸿劯瀹藉害
+//                        Console.WriteLine("mWidth is:{0:f}", rgb_box_info[index].width);
+//                        // 涓績鐐筙,Y鍧愭爣
+//                        Console.WriteLine("mCenter_x is:{0:f}", rgb_box_info[index].center_x);
+//                        Console.WriteLine("mCenter_y is:{0:f}", rgb_box_info[index].center_y);
+                                          
+//                    }
+                    
+//                    string msg_depth = "ir score is:" + ir_score.ToString();
+                   
+//                    Cv2.PutText(ir_mat, msg_depth, new Point(20, 50), HersheyFonts.HersheyComplex, 1, new Scalar(255, 100, 0));
+                   
+//                    string msg_rgb = "rgb score is:" + rgb_score.ToString();
+//                    Cv2.PutText(rgb_mat, msg_rgb, new Point(20, 50), HersheyFonts.HersheyComplex, 1, new Scalar(255, 100, 0));
+//                    if (face_size > 0)
+//                    {
+//                        // 鐢讳汉鑴告
+//                        FaceDraw.draw_rects(ref rgb_mat, face_size, rgb_box_info);
+//                        // 鐢诲叧閿偣
+//                        // FaceDraw.draw_shape(ref rgb_mat, face_size, rgb_track_info);
+//                    }                   
+//                    window_rgb.ShowImage(rgb_mat);
+//                    window_ir.ShowImage(ir_mat);
+//                    Cv2.WaitKey(1);                   
+//                }
+//            }
+//            Marshal.FreeHGlobal(ptTRGB);
+//            Marshal.FreeHGlobal(ptTNIR);
+//            rgb_mat.Release();
+//            ir_mat.Release();
+//            frame1.Release();
+//            frame2.Release();
+//            Cv2.DestroyWindow("ir_face");
+//            Cv2.DestroyWindow("rgb_face");
+//            return true;
+//        }
+//        // 鍙岀洰鎽勫儚澶磋繘琛宺gb,depth娲讳綋妫�娴�(姝ゅ閫傞厤浜嗗崕鏉拌壘绫崇殑鍙岀洰鎽勫儚澶�)rgb鍜宒epth鐨勫垎鍊奸兘閫氳繃濡�0.8鎵嶇畻娲讳綋閫氳繃
+//        public bool rgb_depth_liveness_check_hjimi()
+//        {
+//            int max_face_num = 1;//鍙栨渶澶т汉鑴哥殑娲讳綋
+          
+//            BDLivenessScore[] rgb_score_info = new BDLivenessScore[max_face_num];
+//            BDLivenessScore[] depth_score_info = new BDLivenessScore[max_face_num];
+//            int sizeScore = Marshal.SizeOf(typeof(BDLivenessScore));
+//            IntPtr ptRGBS = Marshal.AllocHGlobal(sizeScore * max_face_num);
+//            IntPtr ptDepthS = Marshal.AllocHGlobal(sizeScore * max_face_num);
+
+//            BDFaceBBox[] box_info = new BDFaceBBox[max_face_num];
+           
+//            int sizeBox = Marshal.SizeOf(typeof(BDFaceBBox));
+//            IntPtr ptT = Marshal.AllocHGlobal(sizeBox * max_face_num);
+//            IntPtr phjimi = HjimiCamera.new_hjimi();
+//            var rgb_win = new Window("rgb", WindowMode.AutoSize);
+//            var depth_win = new Window("depth", WindowMode.Normal);
+//            float rgb_score = 0;
+//            float depth_score = 0;
+//            Mat cv_depth = new Mat();
+//            Mat cv_rgb = new Mat();
+//            while (true)
+//            {
+//                bool ok = HjimiCamera.open_hjimimat(phjimi, cv_rgb.CvPtr, cv_depth.CvPtr);
+//                if (!ok)
+//                {
+//                    depth_score = 0;
+//                    rgb_score = depth_score; 
+//                    Console.WriteLine("open camera faile");
+//                    continue;
+//                }
+//                if(cv_rgb.Empty())
+//                {
+//                    continue;
+//                }
+//                if (cv_depth.Empty())
+//                {
+//                    continue;
+//                }
+//                // 杩斿洖浜鸿劯涓暟
+//                int face_size = rgb_depth_liveness(ptT, ptRGBS, ptDepthS, cv_rgb.CvPtr, cv_depth.CvPtr);
+                
+//                Console.WriteLine("res is:{0}", face_size);                             
+//                depth_score = 0;
+//                rgb_score = depth_score;                           
+//                for (int index = 0; index < face_size; index++)
+//                {
+//                    IntPtr ptrBox = new IntPtr();
+//                    IntPtr ptrRGBScore = new IntPtr();
+//                    IntPtr ptrDepthScore = new IntPtr();
+//                    if (8 == IntPtr.Size)
+//                    {
+//                        ptrBox = (IntPtr)(ptT.ToInt64() + sizeBox * index);
+//                        ptrRGBScore = (IntPtr)(ptRGBS.ToInt64() + sizeScore * index);
+//                        ptrDepthScore = (IntPtr)(ptDepthS.ToInt64() + sizeScore * index);
+//                    }
+//                    else if (4 == IntPtr.Size)
+//                    {
+//                        ptrBox = (IntPtr)(ptT.ToInt32() + sizeBox * index);
+//                        ptrRGBScore = (IntPtr)(ptRGBS.ToInt32() + sizeScore * index);
+//                        ptrDepthScore = (IntPtr)(ptDepthS.ToInt32() + sizeScore * index);
+//                    }
+                    
+//                    box_info[index] = (BDFaceBBox)Marshal.PtrToStructure(ptrBox, typeof(BDFaceBBox));
+                    
+//                    rgb_score_info[index] = (BDLivenessScore)Marshal.PtrToStructure(ptrRGBScore, typeof(BDLivenessScore));
+//                    rgb_score = rgb_score_info[index].score;
+//                    depth_score_info[index] = (BDLivenessScore)Marshal.PtrToStructure(ptrDepthScore, typeof(BDLivenessScore));
+//                    depth_score = depth_score_info[index].score;
+//                    // 鍒嗗�煎お浣庯紝浼氭樉绀哄皬鏁扮偣澶暱锛岀洿鎺ヨ祴鍊�0
+//                    if (depth_score <= 0.1f)
+//                    {
+//                        depth_score = 0;
+//                    }
+//                    if (rgb_score <= 0.1f)
+//                    {
+//                        rgb_score = 0;
+//                    }                   
+//                    // 浜鸿劯瀹藉害
+//                    Console.WriteLine("mWidth is:{0:f}", box_info[index].width);
+//                    // 涓績鐐筙,Y鍧愭爣
+//                    Console.WriteLine("mCenter_x is:{0:f}", box_info[index].center_x);
+//                    Console.WriteLine("mCenter_y is:{0:f}", box_info[index].center_y);
+                   
+//                } 
+              
+
+//                Mat depth_img = new Mat();
+//                cv_depth.ConvertTo(depth_img, MatType.CV_8UC1, 255.0 / 4500);
+//                string msg_depth = "depth score is:" + depth_score.ToString();
+//                Cv2.PutText(depth_img, msg_depth, new Point(20, 50), HersheyFonts.HersheyComplex, 1, new Scalar(255, 100, 0));
+
+//                string msg_rgb = "rgb score is:" + rgb_score.ToString();
+//                Cv2.PutText(cv_rgb, msg_rgb, new Point(20, 50), HersheyFonts.HersheyComplex, 1, new Scalar(255, 100, 0));
+//                if (face_size > 0)
+//                {
+//                    // 鐢讳汉鑴告
+//                    FaceDraw.draw_rects(ref cv_rgb, face_size, box_info);
+                    
+//                }
+                
+//                rgb_win.ShowImage(cv_rgb);
+//                depth_win.ShowImage(depth_img);
+//                Cv2.WaitKey(1);
+//                depth_img.Release();
+//            }
+//            Marshal.FreeHGlobal(ptT);
+//            cv_rgb.Release();
+//            cv_depth.Release();
+//            Cv2.DestroyWindow("rgb");
+//            Cv2.DestroyWindow("depth");
+//            HjimiCamera.hjimi_release(phjimi);
+//            return true;
+//        }
+//        //鍙岀洰RGB鍜孌EPTH闈欓粯娲讳綋妫�娴嬶紙浼犲叆opencv瑙嗛甯�)閫傞厤濂ユ瘮涓厜娴风嚂绛夊弻鐩憚鍍忓ご
+//        public bool rgb_depth_liveness_check_orbe()
+//        {
+//            int max_face_num = 1;//鍙栨渶澶т汉鑴哥殑娲讳綋
+
+//            BDLivenessScore[] rgb_score_info = new BDLivenessScore[max_face_num];
+//            BDLivenessScore[] depth_score_info = new BDLivenessScore[max_face_num];
+//            int sizeScore = Marshal.SizeOf(typeof(BDLivenessScore));
+//            IntPtr ptRGBS = Marshal.AllocHGlobal(sizeScore * max_face_num);
+//            IntPtr ptDepthS = Marshal.AllocHGlobal(sizeScore * max_face_num);
+
+//            BDFaceBBox[] box_info = new BDFaceBBox[max_face_num];
+            
+//            int sizeBox = Marshal.SizeOf(typeof(BDFaceTrackInfo));
+//            IntPtr ptT = Marshal.AllocHGlobal(sizeBox * max_face_num);
+
+//            IntPtr porbe = OrbeCamera.new_orbe();
+//            var rgb_win = new Window("rgb", WindowMode.AutoSize);
+//            var depth_win = new Window("depth", WindowMode.Normal);
+//            float rgb_score = 0;
+//            float depth_score = 0;
+//            Mat cv_depth = new Mat();
+//            Mat cv_rgb = new Mat();
+//            while (true)
+//            {
+//                int res_ok = OrbeCamera.open_orbe(porbe, cv_rgb.CvPtr, cv_depth.CvPtr);
+//                if (res_ok != 0)
+//                {
+//                    depth_score = 0;
+//                    rgb_score = depth_score;
+//                    Console.WriteLine("open camera faile");
+//                    continue;
+//                }
+//                if (cv_rgb.Empty())
+//                {
+//                    continue;
+//                }
+//                if (cv_depth.Empty())
+//                {
+//                    continue;
+//                }
+//                // 杩斿洖浜鸿劯涓暟
+//                int face_size = rgb_depth_liveness(ptT, ptRGBS, ptDepthS, cv_rgb.CvPtr, cv_depth.CvPtr);
+
+//                Console.WriteLine("res is:{0}", face_size);
+//                depth_score = 0;
+//                rgb_score = depth_score;
+//                for (int index = 0; index < face_size; index++)
+//                {
+//                    IntPtr ptrBox = new IntPtr();
+//                    IntPtr ptrRGBScore = new IntPtr();
+//                    IntPtr ptrDepthScore = new IntPtr();
+//                    if (8 == IntPtr.Size)
+//                    {
+//                        ptrBox = (IntPtr)(ptT.ToInt64() + sizeBox * index);
+//                        ptrRGBScore = (IntPtr)(ptRGBS.ToInt64() + sizeScore * index);
+//                        ptrDepthScore = (IntPtr)(ptDepthS.ToInt64() + sizeScore * index);
+//                    }
+//                    else if (4 == IntPtr.Size)
+//                    {
+//                        ptrBox = (IntPtr)(ptT.ToInt32() + sizeBox * index);
+//                        ptrRGBScore = (IntPtr)(ptRGBS.ToInt32() + sizeScore * index);
+//                        ptrDepthScore = (IntPtr)(ptDepthS.ToInt32() + sizeScore * index);
+//                    }
+
+//                    box_info[index] = (BDFaceBBox)Marshal.PtrToStructure(ptrBox, typeof(BDFaceBBox));  
+
+//                    rgb_score_info[index] = (BDLivenessScore)Marshal.PtrToStructure(ptrRGBScore, typeof(BDLivenessScore));
+//                    rgb_score = rgb_score_info[index].score;
+//                    depth_score_info[index] = (BDLivenessScore)Marshal.PtrToStructure(ptrDepthScore, typeof(BDLivenessScore));
+//                    depth_score = depth_score_info[index].score;
+//                    // 鍒嗗�煎お浣庯紝浼氭樉绀哄皬鏁扮偣澶暱锛岀洿鎺ヨ祴鍊�0
+//                    if (depth_score <= 0.1f)
+//                    {
+//                        depth_score = 0;
+//                    }
+//                    if (rgb_score <= 0.1f)
+//                    {
+//                        rgb_score = 0;
+//                    }                    
+//                    // 浜鸿劯瀹藉害
+//                    Console.WriteLine("mWidth is:{0:f}", box_info[index].width);
+//                    // 涓績鐐筙,Y鍧愭爣
+//                    Console.WriteLine("mCenter_x is:{0:f}", box_info[index].center_x);
+//                    Console.WriteLine("mCenter_y is:{0:f}", box_info[index].center_y);
+
+//                }
+
+
+//                Mat depth_img = new Mat();
+//                cv_depth.ConvertTo(depth_img, MatType.CV_8UC1, 255.0 / 4500);
+//                string msg_depth = "depth score is:" + depth_score.ToString();
+//                Cv2.PutText(depth_img, msg_depth, new Point(20, 50), HersheyFonts.HersheyComplex, 1, new Scalar(255, 100, 0));
+
+//                string msg_rgb = "rgb score is:" + rgb_score.ToString();
+//                Cv2.PutText(cv_rgb, msg_rgb, new Point(20, 50), HersheyFonts.HersheyComplex, 1, new Scalar(255, 100, 0));
+//                if (face_size > 0)
+//                {
+//                    // 鐢讳汉鑴告
+//                    FaceDraw.draw_rects(ref cv_rgb, face_size, box_info);
+//                }
+//                rgb_win.ShowImage(cv_rgb);
+//                depth_win.ShowImage(depth_img);
+//                Cv2.WaitKey(1);
+//                depth_img.Release();
+//            }
+//            Marshal.FreeHGlobal(ptT);
+//            cv_rgb.Release();
+//            cv_depth.Release();
+//            Cv2.DestroyWindow("rgb");
+//            Cv2.DestroyWindow("depth");
+//            OrbeCamera.orbe_release(porbe);
+//            return true;
+//        }
+             
+//        public void test_rgb_ir_liveness_check_by_opencv()
+//        {
+//            rgb_ir_liveness_check_mat();
+//        }
+
+//        // 鍙岀洰RGB鍜孌EPTH闈欓粯娲讳綋妫�娴�,閫傞厤濂ユ瘮涓厜娴风嚂绛夊弻鐩憚鍍忓ご
+//        public void test_rgb_depth_liveness_check_by_orbe()
+//        {
+//            rgb_depth_liveness_check_orbe();
+//        }
+      
+//        // 鍙岀洰鎽勫儚澶磋繘琛宺gb,depth娲讳綋妫�娴�(姝ゅ閫傞厤浜嗗崕鏉拌壘绫崇殑鍙岀洰鎽勫儚澶�)
+//        public void test_rgb_depth_liveness_check_by_hjimi()
+//        {
+//            rgb_depth_liveness_check_hjimi();
+//        }
+//    }
+//}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceManager.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceManager.cs"
new file mode 100644
index 0000000..882c6c8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceManager.cs"
@@ -0,0 +1,209 @@
+锘�//using OpenCvSharp;
+//using System;
+//using System.Runtime.InteropServices;
+///**
+// *  澶囨敞锛堜汉鑴告暟鎹簱绠$悊璇存槑锛夛細
+// *  浜鸿劯鏁版嵁搴撲负閲囩敤sqlite3鐨勬暟鎹簱锛屼細鑷姩鐢熸垚涓�涓猟b鐩綍澶癸紝涓嬮潰鏈夋暟鎹簱face.db鏂囦欢淇濆瓨鏁版嵁搴�
+// *  鍙敤sqliteExpert涔嬬被鐨勫彲瑙嗗寲宸ュ叿鎵撳紑鏌ョ湅,浜﹀彲鐢ㄥ懡浠よ锛屾柟娉曡鑷鐧惧害銆�
+// *  璇ユ暟鎹簱浠呬粎鍙�傚簲浜�5w浜哄乏鍙崇殑浜鸿劯搴擄紝涓旇璁¤〃鏍肩瓑灞炰簬灏忓瀷閫氱敤鍖栥��
+// *  鑻ヤ笉鑳芥弧瓒冲鎴蜂釜鎬у寲闇�姹傦紝瀹㈡埛鍙嚜琛岃璁℃暟鎹簱淇濆瓨鏁版嵁銆傚畻鏃ㄥ氨鏄瘡涓汉鑴稿浘鐗囨彁鍙栦竴涓壒寰佸�间繚瀛樸��
+// *  浜鸿劯1:1,1:N姣斿鍙婅瘑鍒疄闄呭氨鏄壒寰佸�肩殑姣斿銆�1:1鍙鎻愬彇2寮犱笉鍚岀殑鍥剧墖鐗瑰緛鍊艰皟鐢╟ompare_feature姣斿銆�
+// *  1锛歂鏄彁鍙栦竴涓壒寰佸�煎拰鏁版嵁搴撲腑宸蹭繚瀛樼殑N涓壒寰佸�间竴涓�姣斿(姣斿閫熷害寰堝揩锛屼笉鐢ㄦ媴蹇冩晥鐜囬棶棰�)锛�
+// *  鏈�缁堝彇鍒嗘暟楂樼殑鍊间负鏈�楂樼浉浼煎害銆�
+// *  鐩镐技搴﹁瘑鍒殑鍒嗘暟鍙嚜琛屾祴璇曟牴鎹疄楠岀粨鏋滄嫙瀹氾紝涓�鑸帹鑽愮浉浼煎害澶т簬80鍒嗕负鍚屼竴浜恒��
+// * 
+// */
+//namespace FaceAI
+//{
+//    class FaceManager
+//    {
+//        // 浜鸿劯娉ㄥ唽(浼犵壒寰佸��,鐗瑰緛鍊煎彲鍙傝�僃aceFeature.cs鎻愬彇锛屼害鍙弬鑰僃aceCompare.cs鏌ョ湅鐗瑰緛鍊肩殑姣斿)
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "user_add", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr user_add(ref BDFaceFeature f1, string user_id, string group_id, 
+//            string user_info="");
+
+//        // 浜鸿劯娉ㄥ唽(浼爋pencv鍥剧墖甯�,鐗瑰緛鍊煎彲鍙傝�僃aceFeature.cs鎻愬彇锛屼害鍙弬鑰僃aceCompare.cs鏌ョ湅鐗瑰緛鍊肩殑姣斿)
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "user_add_by_mat", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr user_add_by_mat(IntPtr mat, string user_id, string group_id,
+//            string user_info = "");
+
+//        // 浜鸿劯鏇存柊(浼犲浘鐗囧抚)
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "user_update", CharSet = CharSet.Ansi
+//            , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr user_update(IntPtr mat, string user_id, string group_id,
+//            string user_info = "");
+      
+//        // 鐢ㄦ埛鍒犻櫎
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "user_delete", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr user_delete(string user_id, string group_id);
+//        // 缁勬坊鍔�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "group_add", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr group_add(string group_id);
+//        // 缁勫垹闄�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "group_delete", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr group_delete(string group_id);
+//        // 鏌ヨ鐢ㄦ埛淇℃伅
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "get_user_info", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr get_user_info(string user_id, string group_id);
+
+//        // 鏌ヨ鐢ㄦ埛鍥剧墖
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "get_user_image", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern int get_user_image(IntPtr out_mat, string user_id, string group_id);
+
+//        // 鐢ㄦ埛缁勫垪琛ㄦ煡璇�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "get_user_list", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr get_user_list(string group_id, int start = 0, int length = 100);
+//        // 缁勫垪琛ㄦ煡璇�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "get_group_list", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern IntPtr get_group_list(int start = 0, int length = 100);
+
+//        // 鏁版嵁搴撲汉鑴告暟閲忔煡璇�
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "db_face_count", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        public static extern int db_face_count(string group_id);
+
+
+//        // 娴嬭瘯浜鸿劯娉ㄥ唽
+//        public void test_user_add()
+//        {
+//            // 浜鸿劯娉ㄥ唽
+//            string user_id = "test_user";
+//            string group_id = "test_group";
+//            string file_name = "../images/1.jpg";
+           
+//            string user_info = "user_info";
+//            // 鎻愬彇浜鸿劯鐗瑰緛鍊兼暟缁勶紙澶氫汉浼氭彁鍙栧涓汉鐨勭壒寰佸�硷級
+///*
+//            FaceFeature feature = new FaceFeature();
+//            BDFaceFeature[] feaList1 = feature.test_get_face_feature_by_path(file_name
+//            if (feaList1 == null)
+//            {
+//                Console.WriteLine("get feature fail");
+//                return;
+//            }
+//            // 鍋囪娴嬭瘯鐨勫浘鐗囨槸1涓汉锛�
+//            BDFaceFeature f1 = feaList1[0];
+//            // 浜鸿劯娉ㄥ唽 (浼犵壒寰佸�间汉鑴告敞鍐岋紝璇ユ柟娉曟敞鍐屼笉淇濆瓨浜鸿劯鍥剧墖鍏ュ簱)
+//            IntPtr ptr = user_add(ref f1, user_id, group_id, user_info);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("user_add res is:" + buf);
+//*/
+//            // 閫氳繃鍥剧墖甯т汉鑴告敞鍐岋紙鍙湁璇ユ柟娉曡繘琛岀殑浜鸿劯娉ㄥ唽锛屼汉鑴稿簱鎵嶄細淇濆瓨浜鸿劯鍥剧墖)
+//            Mat mat = Cv2.ImRead(file_name);
+//            IntPtr mptr = user_add_by_mat(mat.CvPtr, user_id, group_id, user_info);
+//            string mbuf = Marshal.PtrToStringAnsi(mptr);
+//            Console.WriteLine("user_add_by_mat res is:" + mbuf);
+//        }
+      
+//        // 娴嬭瘯浜鸿劯鏇存柊
+//        public void test_user_update()
+//        {
+//            string user_id = "test_user";
+//            string group_id = "test_group";
+//            string file_name = "../images/1.jpg";
+//            Mat mat = Cv2.ImRead(file_name);
+//            string user_info = "user_info";
+//            // 浜鸿劯鏇存柊   
+//            IntPtr ptr = user_update(mat.CvPtr, user_id, group_id, user_info);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("user_update res is:" + buf);
+//        }     
+
+//        // 娴嬭瘯鐢ㄦ埛鍒犻櫎 锛堢敤鎴峰垹闄ゅ悗锛屼汉鑴告暟鎹篃琚垹闄わ級
+//        public void test_user_delete()
+//        {
+//            string user_id = "test_user";
+//            string group_id = "test_group";
+//            IntPtr ptr = user_delete(user_id, group_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("user_delete res is:" + buf);
+//        }
+
+//        // 缁勬坊鍔�
+//        public void test_group_add()
+//        {
+//            string group_id = "test_group2";
+//            IntPtr ptr = group_add(group_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("group_add res is:" + buf);
+//        }
+
+//        // 缁勫垹闄�
+//        public void test_group_delete()
+//        {
+//            string group_id = "test_group2";
+//            IntPtr ptr = group_delete(group_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("group_delete res is:" + buf);
+//        }
+
+//        // 鏌ヨ鐢ㄦ埛淇℃伅
+//        public void test_get_user_info()
+//        {
+//            string user_id = "test_user";
+//            string group_id = "test_group";
+//            IntPtr ptr = get_user_info(user_id , group_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("get_user_info res is:" + buf);
+//        }
+
+//        // 鏌ヨ鐢ㄦ埛鍥剧墖
+//        public void test_get_user_image()
+//        {
+//            string user_id = "test_user";
+//            string group_id = "test_group";
+//            Mat out_mat = new Mat();
+//            int res = get_user_image(out_mat.CvPtr, user_id, group_id);
+//            if (res == 0)
+//            {
+//                Console.WriteLine("get_user_image success");
+//                // 鍥剧墖淇濆瓨鍒版湰鍦�
+//                out_mat.ImWrite("user.jpg");
+//            }
+//            else
+//            {
+//                Console.WriteLine("get_user_image error{0}:", res);
+//            }
+          
+//        }
+
+//        // 鐢ㄦ埛缁勫垪琛ㄦ煡璇�
+//        public void test_get_user_list()
+//        {
+//            string group_id = "test_group";
+//            IntPtr ptr = get_user_list(group_id);
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("get_user_list res is:" + buf);
+//        }
+
+//        // 缁勫垪琛ㄦ煡璇�
+//        public void test_get_group_list()
+//        {
+//            IntPtr ptr = get_group_list();
+//            string buf = Marshal.PtrToStringAnsi(ptr);
+//            Console.WriteLine("get_group_list res is:" + buf);
+//        }
+
+//        // 浜鸿劯搴撴暟閲忔煡璇�
+//        public void test_db_face_count()
+//        {
+//            string group_id = "test_group";
+//            // 鍙傛暟浼犵粍id琛ㄧず鏌ヨ缁勯兘浜鸿劯鏁伴噺
+//            int count = db_face_count(group_id);
+//            Console.WriteLine("count  is:" + count);
+//            string group_id2 = null;
+//            // 鍙傛暟浼爊ull琛ㄧず鏌ユ暣涓簱
+//            int count2 = db_face_count(group_id2);
+//            Console.WriteLine("all count is:" + count2);
+//        }
+//    }
+//}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceTrack.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceTrack.cs"
new file mode 100644
index 0000000..ed4b280
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FaceTrack.cs"
@@ -0,0 +1,221 @@
+锘�//using System;
+//using System.Runtime.InteropServices;
+//using System.Collections.Generic;
+//using OpenCvSharp;
+
+//// 浜鸿劯璺熻釜
+//namespace FaceAI
+//{  
+//    // 浜鸿劯璺熻釜閰嶇疆缁撴瀯浣�        
+//    [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//    struct BDFaceTrackConf
+//    {
+//        public float detect_intv_before_track;     // 鏈窡韪埌浜鸿劯鍓嶇殑妫�娴嬫椂闂撮棿闅�
+//        public float detect_intv_during_track;     // 宸茶窡韪埌浜鸿劯鍚庣殑妫�娴嬫椂闂撮棿闅�
+//    };
+
+//    [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//     public struct BDFaceBBox
+//     {
+//         public int index;  // 浜鸿劯绱㈠紩鍊�
+//         public float center_x; // 浜鸿劯涓績鐐箈鍧愭爣
+//         public float center_y; // 浜鸿劯涓績鐐箉鍧愭爣
+//         public float width; // 浜鸿劯瀹藉害
+//         public float height; // 浜鸿劯楂樺害                
+//         public float score;  // 浜鸿劯缃俊搴�
+//     }
+   
+//     [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//     public struct BDFaceLandmark
+//    {
+//         public int index; // 浜鸿劯鍏抽敭鐐圭储寮曞��
+//         public int size; // 浜鸿劯鍏抽敭鐐规暟閲�
+//        [MarshalAs(UnmanagedType.ByValArray, SizeConst = 144)]
+//         public float[] data;// = new float[144];
+//         public float score; // 浜鸿劯鍏抽敭鐐圭疆淇″害
+//    }
+//     [StructLayout(LayoutKind.Sequential, Pack = 1)]
+//     public struct BDFaceTrackInfo
+//     {
+//         public int face_id;
+//         [MarshalAs(UnmanagedType.Struct)]
+//         public BDFaceBBox box;
+//         [MarshalAs(UnmanagedType.Struct)]
+//         public BDFaceLandmark landmark;
+//     } 
+   
+//    // 浜鸿劯璺熻釜
+//    class FaceTrack
+//    {
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "track", CharSet = CharSet.Ansi
+//           , CallingConvention = CallingConvention.Cdecl)]
+//        // type 涓�0鏃跺�欐墽琛孯GB浜鸿劯璺熻釜锛�1鏃跺�欐墽琛孨IR浜鸿劯璺熻釜
+//        public static extern int track(IntPtr ptr, IntPtr mat, int type);      
+
+//        [DllImport("BaiduFaceApi.dll", EntryPoint = "clear_track_history", CharSet = CharSet.Ansi
+//         , CallingConvention = CallingConvention.Cdecl)]
+//        // type 涓�0鏃跺�欐墽琛孯GB浜鸿劯璺熻釜锛�1鏃跺�欐墽琛孨IR浜鸿劯璺熻釜
+//        public static extern void clear_track_history(int type);
+
+//        // 娴嬭瘯浜鸿劯璺熻釜
+//        public void image_track()
+//        {
+//            Console.WriteLine("test_track");
+//            int max_track_num = 50; // 璁剧疆鏈�澶氭娴嬭窡韪汉鏁帮紙澶氫汉鑴告娴嬶級锛岄粯璁や负1锛屾渶澶氬彲璁句负50
+
+//            BDFaceTrackInfo[] track_info = new BDFaceTrackInfo[max_track_num];
+//            for (int i = 0; i < max_track_num; i++)
+//            {
+//                track_info[i] = new BDFaceTrackInfo();
+//                track_info[i].box = new BDFaceBBox();
+//                track_info[i].box.score = 0;
+//                track_info[i].box.width = 0;
+//                track_info[i].landmark.data = new float[144];             
+//                track_info[i].face_id = 0;                
+//            }
+//            int sizeTrack = Marshal.SizeOf(typeof(BDFaceTrackInfo));
+//            IntPtr ptT = Marshal.AllocHGlobal(sizeTrack * max_track_num);
+//            Mat mat = Cv2.ImRead("../images/2.jpg");
+//            // faceNum涓鸿繑鍥炵殑妫�娴嬪埌鐨勪汉鑴镐釜鏁�
+//            int type = 0;
+//            int faceNum = track(ptT, mat.CvPtr, type);
+//            Console.WriteLine("faceSize is:" + faceNum);
+//            // 鍥犱负闇�棰勫垎閰嶅唴瀛橈紝鎵�浠ヨ繑鍥炵殑浜鸿劯鏁拌嫢澶т簬棰勫厛鍒嗛厤鐨勫唴瀛樻暟锛屽垯浠呬粎鏄剧ず棰勫垎閰嶇殑浜鸿劯鏁�
+//            if (faceNum > max_track_num)
+//            {
+//                faceNum = max_track_num;
+//            }
+//            for (int index = 0; index < faceNum; index++) { 
+
+//                IntPtr ptr = new IntPtr();
+//                if (8 == IntPtr.Size)
+//                {
+//                    ptr = (IntPtr)(ptT.ToInt64() + sizeTrack * index);
+//                }
+//                else if (4 == IntPtr.Size)
+//                {
+//                    ptr = (IntPtr)(ptT.ToInt32() + sizeTrack * index);
+//                }
+
+//                track_info[index] = (BDFaceTrackInfo)Marshal.PtrToStructure(ptr, typeof(BDFaceTrackInfo));
+//                Console.WriteLine("track face_id is {0}:", track_info[index].face_id);
+//                Console.WriteLine("track landmarks is:");
+
+//                for(int i = 0; i < 144; i++)
+//                {
+//                    Console.WriteLine("lanmark data is {0}:", track_info[index].landmark.data[i]);
+//                }
+//                Console.WriteLine("track landmarks score is:{0}", track_info[index].landmark.score);
+//                Console.WriteLine("track landmarks index is:{0}", track_info[index].landmark.index);
+
+//                // 绱㈠紩鍊�
+//                Console.WriteLine("track score is:{0}", track_info[index].box.index);
+//                // 缃俊搴�
+//                Console.WriteLine("track score is:{0}", track_info[index].box.score);             
+//                // 浜鸿劯瀹藉害
+//                Console.WriteLine("track mWidth is:{0}", track_info[index].box.width);
+//                // 涓績鐐筙,Y鍧愭爣
+//                Console.WriteLine("track mCenter_x is:{0}", track_info[index].box.center_x);
+//                Console.WriteLine("track mCenter_y is:{0}", track_info[index].box.center_y);             
+//            }
+//            // 鐢讳汉鑴告
+//            FaceDraw.draw_rects(ref mat, faceNum, track_info);
+//            // 鍥剧墖鐢绘淇濆瓨
+//            mat.ImWrite("track.jpg");
+//            Marshal.FreeHGlobal(ptT);          
+//        }
+       
+//        //usb鎽勫儚澶村疄鏃朵汉鑴告娴嬬ず渚�
+//        public void usb_video_track()
+//        {
+//            // 榛樿鐢佃剳鑷甫鎽勫儚澶达紝device鍙兘涓�0锛岃嫢澶栨帴usb鎽勫儚澶达紝鍒檇evice鍙兘涓�1.
+//            int dev = 0;
+//            using (var window = new Window("face"))
+//            using (VideoCapture cap = VideoCapture.FromCamera(dev))
+//            {
+//                if (!cap.IsOpened())
+//                {
+//                    Console.WriteLine("open camera error");
+//                    return;
+//                }
+//                // Frame image buffer
+//                Mat image = new Mat();                                         
+//                // When the movie playback reaches end, Mat.data becomes NULL.
+//                while (true)
+//                {                                     
+//                    cap.Read(image); // same as cvQueryFrame
+//                    if (!image.Empty())
+//                    {
+//                        int ilen = 10;//浼犲叆鐨勪汉鑴告暟
+//                        BDFaceTrackInfo[] track_info = new BDFaceTrackInfo[ilen];
+//                        for (int i = 0; i < ilen; i++)
+//                        {
+//                            track_info[i].box = new BDFaceBBox();
+//                            track_info[i].box.score = 0;
+//                            track_info[i].box.width = 0;
+//                            track_info[i].landmark.data = new float[144];                          
+//                            track_info[i].face_id = 0;
+//                        }
+//                        int sizeTrack = Marshal.SizeOf(typeof(BDFaceTrackInfo));
+//                        IntPtr ptT = Marshal.AllocHGlobal(sizeTrack* ilen);                     
+//                        //Cv2.ImWrite("usb_track_Cv2.jpg", image);
+//                        /*  trackMat
+//                         *  浼犲叆鍙傛暟: maxTrackObjNum:妫�娴嬪埌鐨勬渶澶т汉鑴告暟锛屼紶鍏ュ閮ㄥ垎閰嶄汉鑴告暟锛岄渶瑕佸垎閰嶅搴旂殑鍐呭瓨澶у皬銆�
+//                         *            浼犲嚭妫�娴嬪埌鐨勬渶澶т汉鑴告暟
+//                         *    杩斿洖鍊�: 浼犲叆鐨勪汉鑴告暟 鍜� 妫�娴嬪埌鐨勪汉鑴告暟 涓殑鏈�灏忓��,瀹為檯杩斿洖鐨勪汉鑴搞��
+//                         ****/
+//                        int faceSize = ilen;//杩斿洖浜鸿劯鏁�  鍒嗛厤浜鸿劯鏁板拰妫�娴嬪埌浜鸿劯鏁扮殑鏈�灏忓��
+//                        int curSize = ilen;//褰撳墠浜鸿劯鏁� 杈撳叆鍒嗛厤鐨勪汉鑴告暟锛岃緭鍑哄疄闄呮娴嬪埌鐨勪汉鑴告暟
+//                        int type = 0;
+//                        faceSize = track(ptT, image.CvPtr, type);
+//                        for (int index = 0; index < faceSize; index++)
+//                        {
+//                            IntPtr ptr = new IntPtr();
+//                            if( 8 == IntPtr.Size)
+//                            {
+//                                ptr = (IntPtr)(ptT.ToInt64() + sizeTrack * index);
+//                            }
+//                            else if(4 == IntPtr.Size)
+//                            {
+//                                ptr = (IntPtr)(ptT.ToInt32() + sizeTrack * index);
+//                            }
+                            
+//                            track_info[index] = (BDFaceTrackInfo)Marshal.PtrToStructure(ptr, typeof(BDFaceTrackInfo));
+//                            //face_info[index] = (BDFaceBBox)Marshal.PtrToStructure(info_ptr, typeof(BDFaceBBox));
+//                            Console.WriteLine("in Liveness::usb_track face_id is {0}:",track_info[index].face_id);
+//                            Console.WriteLine("in Liveness::usb_track landmarks is:");
+                                                                              
+//                            Console.WriteLine("in Liveness::usb_track score is:{0:f}", track_info[index].box.score);
+//                            // 浜鸿劯瀹藉害
+//                            Console.WriteLine("in Liveness::usb_track mWidth is:{0:f}", track_info[index].box.width);
+//                            // 涓績鐐筙,Y鍧愭爣
+//                            Console.WriteLine("in Liveness::usb_track mCenter_x is:{0:f}", track_info[index].box.center_x);
+//                            Console.WriteLine("in Liveness::usb_track mCenter_y is:{0:f}", track_info[index].box.center_y);
+                                                   
+//                        }
+                       
+//                        FaceDraw.draw_rects(ref image, faceSize, track_info);
+//                       // FaceDraw.draw_shape(ref image, faceSize, track_info);
+//                        Marshal.FreeHGlobal(ptT);
+//                        window.ShowImage(image);
+//                        Cv2.WaitKey(1);
+//                        Console.WriteLine("mat not empty");
+//                    }
+//                    else
+//                    {
+//                        Console.WriteLine("mat is empty");
+//                    }
+//                }              
+//            }
+//        }
+       
+//         // 娓呴櫎璺熻釜鐨勪汉鑴镐俊鎭�
+//         public void test_clear_tracked_faces()
+//         {
+//            int type = 0;
+//            clear_track_history(type);
+//            Console.WriteLine("after clear tracked faces");
+//        }
+
+//     }
+// }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FileUtil.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FileUtil.cs"
new file mode 100644
index 0000000..6f1e815
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/FileUtil.cs"
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.IO;
+
+namespace FaceAI
+{
+    class FileUtil
+    {
+        // 鎶奲yte淇濆瓨鎴愪簩杩涘埗鏂囦欢
+        public static void byte2file(string file_name, byte[] b, int len)
+        {
+            FileStream fs = new FileStream(file_name, FileMode.OpenOrCreate);
+            BinaryWriter bw = new BinaryWriter(fs);
+            bw.Write(b, 0, len);
+            bw.Close();
+            fs.Close();
+
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/HjimiCamera.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/HjimiCamera.cs"
new file mode 100644
index 0000000..e088eaa
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/HjimiCamera.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.IO;
+using System.Collections;
+using System.Runtime.InteropServices;
+using System.Collections.Generic;
+
+namespace FaceAI
+{
+    class HjimiCamera
+    {
+        // 鍗庢澃鑹剧背 鑾峰彇鎽勫儚澶磋澶囧璞�
+        [DllImport("AimiCamera.dll", EntryPoint = "new_hjimi", CharSet = CharSet.Ansi
+           , CallingConvention = CallingConvention.Cdecl)]
+        public static extern IntPtr new_hjimi();
+        // 鍗庢澃鑹剧背 閲婃斁鎽勫儚澶磋澶囧璞�
+        [DllImport("AimiCamera.dll", EntryPoint = "hjimi_release", CharSet = CharSet.Ansi
+           , CallingConvention = CallingConvention.Cdecl)]
+        public static extern void hjimi_release(IntPtr hjimi);       
+        // 鍗庢澃鑹剧背 鎵撳紑鎽勫儚澶磋澶囧璞�  浼犲叆opencv瑙嗛甯gb鍜宒epth鐨刴at
+        [DllImport("AimiCamera.dll", EntryPoint = "open_hjimimat", CharSet = CharSet.Ansi
+           , CallingConvention = CallingConvention.Cdecl)]
+        public static extern bool open_hjimimat(IntPtr hjimi, IntPtr rgb_mat, IntPtr depth_mat);
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/ImageUtil.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/ImageUtil.cs"
new file mode 100644
index 0000000..fcf81d6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/ImageUtil.cs"
@@ -0,0 +1,68 @@
+锘縰sing System;
+using System.IO;
+using System.Drawing;
+
+
+namespace FaceAI
+{
+    class ImageUtil
+    {
+        // 鍥剧墖鏂囦欢杞珺ase64String
+        public static string img2byte(string filePath)
+        {
+            // 鍙繚鐣欐枃浠跺悕锛岄伩鍏嶈矾寰勯敊璇�
+            string fileName = Path.GetFileName(filePath);
+
+            // 鑾峰彇鏂囦欢鐨勫畬鏁磋矾寰�
+            string fullPath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "image", fileName);
+
+            if (!File.Exists(fullPath))
+            {
+                throw new FileNotFoundException("鏂囦欢涓嶅瓨鍦細" + fullPath);
+            }
+
+            using (FileStream filestream = new FileStream(fullPath, FileMode.Open, FileAccess.Read))
+            {
+                byte[] arr = new byte[filestream.Length];
+                filestream.Read(arr, 0, arr.Length);
+                return Convert.ToBase64String(arr);
+            }
+
+            ////灏咺mage杞崲鎴愭祦鏁版嵁锛屽苟淇濆瓨涓篵yte[]
+            //MemoryStream mstream = new MemoryStream();
+            //img.Save(mstream, System.Drawing.Imaging.ImageFormat.Jpeg);
+            //byte[] byData = new Byte[mstream.Length];
+            //mstream.Position = 0;
+            //mstream.Read(byData, 0, byData.Length);
+            //mstream.Close();
+            //return byData;
+        }
+        // 鍥剧墖鏂囦欢杞琤ytes
+        public static byte[] get_img_data(string img_path)
+        {
+            //鏍规嵁鍥剧墖鏂囦欢鐨勮矾寰勪娇鐢ㄦ枃浠舵祦鎵撳紑锛屽苟淇濆瓨涓篵yte[]   
+            FileStream fs = new FileStream(img_path, FileMode.Open);//鍙互鏄叾浠栭噸杞芥柟娉� 
+            byte[] byData = new byte[fs.Length];
+            fs.Read(byData, 0, byData.Length);
+            fs.Close();
+            return byData;
+        }
+        // bytes杞浘鐗囨枃浠�
+        //public static void byte2img(byte[] b, int len, string file_name)
+        //{
+        //    MemoryStream ms = new MemoryStream(b);
+        //    ms.Position = 0;
+        //    System.Drawing.Image img = System.Drawing.Image.FromStream(ms);
+        //    img.Save(file_name);
+        //    ms.Close();
+        //}
+        //// 浜岃繘鍒禸yte鍥剧墖娴佽浆mat绀轰緥
+        //public static Mat image2mat(string img_path)
+        //{
+        //    System.Drawing.Image img = System.Drawing.Image.FromFile(img_path);
+        //    byte[] img_bytes = ImageUtil.img2byte(img);
+        //    Mat mat = Cv2.ImDecode(img_bytes, ImreadModes.Color);
+        //    return mat;
+        //}
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/OrbeCamera.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/OrbeCamera.cs"
new file mode 100644
index 0000000..2ff1dd2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/OrbeCamera.cs"
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+using System.Threading.Tasks;
+
+// 閫傞厤濂ユ瘮涓厜闀滃ご
+namespace FaceAI
+{
+    class OrbeCamera
+    {
+        // 鑾峰彇orbeCamera瀵硅薄  濂ユ瘮涓厜娴风嚂绛変紬澶氬ゥ姣旈暅澶�
+        [DllImport("OrbeCamera.dll", EntryPoint = "new_orbe", CharSet = CharSet.Ansi
+           , CallingConvention = CallingConvention.Cdecl)]
+        public static extern IntPtr new_orbe();
+
+        // 鎵撳紑濂ユ瘮涓厜
+        [DllImport("OrbeCamera.dll", EntryPoint = "open_orbe", CharSet = CharSet.Ansi
+           , CallingConvention = CallingConvention.Cdecl)]
+        public static extern int open_orbe(IntPtr porbe, IntPtr cv_rgb, IntPtr cv_depth);
+
+        // 閲婃斁濂ユ瘮涓厜
+        [DllImport("OrbeCamera.dll", EntryPoint = "orbe_release", CharSet = CharSet.Ansi
+           , CallingConvention = CallingConvention.Cdecl)]
+        public static extern void orbe_release(IntPtr orbe);
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/TimeUtil.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/TimeUtil.cs"
new file mode 100644
index 0000000..8459a0f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/FaceAI/TimeUtil.cs"
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FaceAI
+{
+    class TimeUtil
+    {
+        public static long get_time_stamp()
+        {
+            TimeSpan ts = DateTime.Now.ToUniversalTime() - new DateTime(1970, 1, 1);
+            return (long)ts.TotalMilliseconds;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/Class1.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/Class1.cs"
new file mode 100644
index 0000000..bb6034c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/Class1.cs"
@@ -0,0 +1,12 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.Helper
+{
+    internal class Class1
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/UtilConvert.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/UtilConvert.cs"
new file mode 100644
index 0000000..55abbab
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/UtilConvert.cs"
@@ -0,0 +1,977 @@
+锘縰sing Newtonsoft.Json;
+using System.Data;
+using System.Reflection;
+using System.Text.RegularExpressions;
+using System.Web;
+using WIDESEAWCS_Common.Const;
+using WIDESEAWCS_Common.Enums;
+
+namespace WIDESEAWCS_Common.Helper
+{
+    public static class UtilConvert
+    {
+        private static DateTime dateStart = new DateTime(1970, 1, 1, 8, 0, 0);
+
+        private static long longTime = 621355968000000000;
+
+        private static int samllTime = 10000000;
+        /// <summary>
+        /// 鏃堕棿鎴宠浆鎹㈡垚鏃ユ湡
+        /// </summary>
+        /// <param name="timeStamp"></param>
+        /// <returns></returns>
+        public static DateTime GetTimeSpmpToDate(this object timeStamp)
+        {
+            if (timeStamp == null) return dateStart;
+            DateTime dateTime = new DateTime(longTime + Convert.ToInt64(timeStamp) * samllTime, DateTimeKind.Utc).ToLocalTime();
+            return dateTime;
+        }
+
+        public static string Serialize(this object obj, JsonSerializerSettings formatDate = null)
+        {
+            if (obj == null) return null;
+            formatDate = formatDate ?? new JsonSerializerSettings
+            {
+                DateFormatString = "yyyy-MM-dd HH:mm:ss"
+            };
+            return JsonConvert.SerializeObject(obj, formatDate);
+        }
+
+        public static T DeserializeObject<T>(this string json)
+        {
+            if (string.IsNullOrEmpty(json))
+            {
+                return default(T);
+            }
+            if (json == "{}")
+            {
+                json = "[]";
+            }
+            return JsonConvert.DeserializeObject<T>(json);
+        }
+
+        public static string FirstLetterToLower(this string thisValue)
+        {
+            if (string.IsNullOrEmpty(thisValue)) return string.Empty;
+            string result = thisValue.Substring(0, 1).ToLower() + thisValue.Substring(1, thisValue.Length - 1);
+            return result;
+        }
+
+        public static string FirstLetterToUpper(this string thisValue)
+        {
+            if (string.IsNullOrEmpty(thisValue)) return string.Empty;
+            string result = thisValue.Substring(0, 1).ToUpper() + thisValue.Substring(1, thisValue.Length - 1);
+            return result;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static int ObjToInt(this object thisValue)
+        {
+            int reval = 0;
+            if (thisValue == null) return 0;
+            if (thisValue is Enum && thisValue != DBNull.Value && Enum.TryParse(thisValue.GetType(), thisValue.ToString(), out var val))
+            {
+                return Convert.ToInt32(val.ChangeType(typeof(int)));
+            }
+            if (thisValue != DBNull.Value && int.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return reval;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static int DoubleToInt(this double thisValue)
+        {
+            int reval = 0;
+
+            return Convert.ToInt32(thisValue);
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <param name="errorValue"></param>
+        /// <returns></returns>
+        public static int ObjToInt(this object thisValue, int errorValue)
+        {
+            int reval = 0;
+            if (thisValue != null && thisValue != DBNull.Value && int.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return errorValue;
+        }
+
+        public static long ObjToLong(this object thisValue)
+        {
+            long reval = 0;
+            if (thisValue == null) return 0;
+            if (thisValue != DBNull.Value && long.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return reval;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static double ObjToMoney(this object thisValue)
+        {
+            double reval = 0;
+            if (thisValue != null && thisValue != DBNull.Value && double.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return 0;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <param name="errorValue"></param>
+        /// <returns></returns>
+        public static double ObjToMoney(this object thisValue, double errorValue)
+        {
+            double reval = 0;
+            if (thisValue != null && thisValue != DBNull.Value && double.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return errorValue;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static string ObjToString(this object thisValue)
+        {
+            if (thisValue != null) return thisValue.ToString().Trim();
+            return "";
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static bool IsNotEmptyOrNull(this object thisValue)
+        {
+            return ObjToString(thisValue) != "" && ObjToString(thisValue) != "undefined" && ObjToString(thisValue) != "null";
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <param name="errorValue"></param>
+        /// <returns></returns>
+        public static string ObjToString(this object thisValue, string errorValue)
+        {
+            if (thisValue != null) return thisValue.ToString().Trim();
+            return errorValue;
+        }
+
+        public static bool IsNullOrEmpty(this object thisValue) => thisValue == null || thisValue == DBNull.Value || string.IsNullOrWhiteSpace(thisValue.ToString());
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static Decimal ObjToDecimal(this object thisValue)
+        {
+            Decimal reval = 0;
+            if (thisValue != null && thisValue != DBNull.Value && decimal.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return 0;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <param name="errorValue"></param>
+        /// <returns></returns>
+        public static Decimal ObjToDecimal(this object thisValue, decimal errorValue)
+        {
+            Decimal reval = 0;
+            if (thisValue != null && thisValue != DBNull.Value && decimal.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return errorValue;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static DateTime ObjToDate(this object thisValue)
+        {
+            DateTime reval = DateTime.MinValue;
+            if (thisValue != null && thisValue != DBNull.Value && DateTime.TryParse(thisValue.ToString(), out reval))
+            {
+                reval = Convert.ToDateTime(thisValue);
+            }
+
+            return reval;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <param name="errorValue"></param>
+        /// <returns></returns>
+        public static DateTime ObjToDate(this object thisValue, DateTime errorValue)
+        {
+            DateTime reval = DateTime.MinValue;
+            if (thisValue != null && thisValue != DBNull.Value && DateTime.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return errorValue;
+        }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static bool ObjToBool(this object thisValue)
+        {
+            bool reval = false;
+            if (thisValue != null && thisValue != DBNull.Value && bool.TryParse(thisValue.ToString(), out reval))
+            {
+                return reval;
+            }
+
+            return reval;
+        }
+
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠鏃堕棿鐨勬椂闂存埑
+        /// </summary>
+        /// <param name="thisValue"></param>
+        /// <returns></returns>
+        public static string DateToTimeStamp(this DateTime thisValue)
+        {
+            TimeSpan ts = thisValue - new DateTime(1970, 1, 1, 0, 0, 0, 0);
+            return Convert.ToInt64(ts.TotalSeconds).ToString();
+        }
+
+        public static object ChangeType(this object value, Type type)
+        {
+            if (value == null && type.IsGenericType) return Activator.CreateInstance(type);
+            if (value == null) return null;
+            if (type == value.GetType()) return value;
+            if (type.IsEnum)
+            {
+                if (value is string)
+                    return Enum.Parse(type, value as string);
+                else
+                    return Enum.ToObject(type, value);
+            }
+
+            if (!type.IsInterface && type.IsGenericType)
+            {
+                Type innerType = type.GetGenericArguments()[0];
+                object innerValue = ChangeType(value, innerType);
+                return Activator.CreateInstance(type, new object[] { innerValue });
+            }
+
+            if (value is string && type == typeof(Guid)) return new Guid(value as string);
+            if (value is string && type == typeof(Version)) return new Version(value as string);
+            if (!(value is IConvertible)) return value;
+            return Convert.ChangeType(value, type);
+        }
+
+        public static object ChangeTypeList(this object value, Type type)
+        {
+            if (value == null) return default;
+
+            var gt = typeof(List<>).MakeGenericType(type);
+            dynamic lis = Activator.CreateInstance(gt);
+
+            var addMethod = gt.GetMethod("Add");
+            string values = value.ToString();
+            if (values != null && values.StartsWith("(") && values.EndsWith(")"))
+            {
+                string[] splits;
+                if (values.Contains("\",\""))
+                {
+                    splits = values.Remove(values.Length - 2, 2)
+                        .Remove(0, 2)
+                        .Split("\",\"");
+                }
+                else
+                {
+                    splits = values.Remove(0, 1)
+                        .Remove(values.Length - 2, 1)
+                        .Split(",");
+                }
+
+                foreach (var split in splits)
+                {
+                    var str = split;
+                    if (split.StartsWith("\"") && split.EndsWith("\""))
+                    {
+                        str = split.Remove(0, 1)
+                            .Remove(split.Length - 2, 1);
+                    }
+
+                    addMethod.Invoke(lis, new object[] { ChangeType(str, type) });
+                }
+            }
+
+            return lis;
+        }
+
+        public static string ToJson(this object value)
+        {
+            return JsonConvert.SerializeObject(value);
+        }
+
+        public static bool IsNumeric(this object value)
+        {
+            if (value == null)
+                return false;
+            bool reslut = decimal.TryParse(value.ToString(), out decimal _number);
+            return reslut;
+        }
+
+        public static bool IsInt(this object obj)
+        {
+            if (obj == null)
+                return false;
+            bool reslut = Int32.TryParse(obj.ToString(), out int _number);
+            return reslut;
+
+        }
+        public static bool IsDate(this object str)
+        {
+            return str.IsDate(out _);
+        }
+        public static bool IsDate(this object str, out DateTime dateTime)
+        {
+            dateTime = DateTime.Now;
+            if (str == null || str.ToString() == "")
+            {
+                return false;
+            }
+            return DateTime.TryParse(str.ToString(), out dateTime);
+        }
+
+        /// <summary>
+        /// 鏍规嵁浼犲叆鏍煎紡鍒ゆ柇鏄惁涓哄皬鏁�
+        /// </summary>
+        /// <param name="str"></param>
+        /// <param name="formatString">18,5</param>
+        /// <returns></returns>
+        public static bool IsNumber(this string str, string formatString)
+        {
+            if (string.IsNullOrEmpty(str)) return false;
+
+            return Regex.IsMatch(str, @"^[+-]?\d*[.]?\d*$");
+        }
+
+        public static bool IsGuid(this string guid)
+        {
+            Guid newId;
+            return guid.GetGuid(out newId);
+        }
+
+        public static bool GetGuid(this string guid, out Guid outId)
+        {
+            Guid emptyId = Guid.Empty;
+            return Guid.TryParse(guid, out outId);
+        }
+
+        /// <summary>
+        /// 杞崲涓虹煭鏁村瀷 qy 2024-7-15
+        /// </summary>
+        /// <param name="data">鏁版嵁</param>
+        public static short ToShort(this object data)
+        {
+            if (data == null)
+                return 0;
+            short result;
+            var success = short.TryParse(data.ToString(), out result);
+            if (success)
+                return result;
+            try
+            {
+                return Convert.ToInt16(data);
+            }
+            catch (Exception)
+            {
+                return 0;
+            }
+        }
+
+        /// <summary>
+        /// 杞崲涓洪珮绮惧害娴偣鏁�,骞舵寜鎸囧畾鐨勫皬鏁颁綅4鑸�5鍏� qy 2024-7-15
+        /// </summary>
+        /// <param name="data">鏁版嵁</param>
+        /// <param name="digits">灏忔暟浣嶆暟</param>
+        public static decimal ToDecimal(this object data, int digits)
+        {
+            return Math.Round(ObjToDecimal(data), digits);
+        }
+
+
+
+        /// <summary>
+        /// 鏋氫妇杞琇ist qy 2024-7-15
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <returns></returns>
+        public static List<object> GetEnumList<T>()
+        {
+            List<object> list = new List<object>();
+            var t = typeof(T);
+            foreach (var item in Enum.GetValues(typeof(T)))
+            {
+                FieldInfo f = t.GetField(Enum.GetName(typeof(T), item));
+                var r = (System.ComponentModel.DescriptionAttribute[])f.GetCustomAttributes(typeof(System.ComponentModel.DescriptionAttribute), false);
+                list.Add(new { ID = item, value = Enum.GetName(typeof(T), item), name = r[0].Description });
+            }
+            return list;
+        }
+
+        /// <summary> 
+        /// 楠岃瘉鍔ㄦ�佺被鍨嬪厓绱犳槸鍚︿负绌� qy 2024-7-15
+        /// </summary>
+        /// <param name="obj"></param>
+        /// <returns></returns>
+        public static bool CheckDynamic(object obj)
+        {
+            return (obj != null && Convert.ToString(obj) != "") ? true : false;
+        }
+
+        /// <summary>
+        /// 鍔ㄦ�佺被鍨嬪厓绱犺浆瀛楃涓插苟瑙g爜 qy 2024-7-15
+        /// </summary>
+        /// <param name="obj"></param>
+        /// <returns></returns>
+        public static string DynamicToString(object obj)
+        {
+            return CheckDynamic(obj) ? HttpUtility.UrlDecode(Convert.ToString(obj).Trim()) : "";
+        }
+
+        /// <summary> 
+        /// DataTable杞负json  qy 2024-7-15
+        /// </summary> 
+        /// <param name="parObjRefDataTable">DataTable</param> 
+        /// <returns>json鏁版嵁</returns> 
+        public static string ToJson(this DataTable parObjRefDataTable)
+        {
+            List<object> objArrList = new List<object>();
+
+            foreach (DataRow objDataRow in parObjRefDataTable.Rows)
+            {
+                Dictionary<string, object> objResult = new Dictionary<string, object>();
+
+                foreach (DataColumn objDataColumn in parObjRefDataTable.Columns)
+                    objResult.Add(objDataColumn.ColumnName, objDataRow[objDataColumn].ToString());
+
+                objArrList.Add(objResult);
+            }
+
+            return ToJson(objArrList);
+        }
+        /// <summary>
+        /// Json杞琇ist qy 2024-7-15
+        /// </summary>
+        /// <typeparam name="T"></typeparam>
+        /// <param name="parJson"></param>
+        /// <returns></returns>
+        public static List<T> JsonToList<T>(this string parJson)
+        {
+            if (string.IsNullOrWhiteSpace(parJson))
+            {
+                return new List<T>();
+            }
+            else
+            {
+                return JsonConvert.DeserializeObject<List<T>>(parJson);
+            }
+        }
+
+        /// <summary>
+        /// 鏃ユ湡杞负unix鍊�
+        /// </summary>
+        /// <param name="dt"></param>
+        /// <param name="utc">T:鎸塙TC鏃堕棿璁$畻(榛樿);F:鎸夋湰鍦版椂闂磋绠�</param>
+        /// <returns></returns>
+        public static double ToUnix(this DateTime dt, bool utc = true)
+        {
+            double intResult = 0;
+            System.DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new System.DateTime(1970, 1, 1));
+            intResult = (dt - startTime).TotalSeconds;
+            intResult = Math.Round(intResult, 0);
+            return intResult;
+        }
+
+        #region 鍒ゆ柇鏄惁涓哄瓧绗︿覆 qy 2024-7-15
+        /// <summary>
+        /// 鍒ゆ柇瀛楃涓叉槸鍚︿负鍚堟硶鐨刯son瀛楃涓� qy 2024-7-15
+        /// </summary>
+        /// <param name="json"></param>
+        /// <returns></returns>
+        public static bool IsJson(string json)
+        {
+            int errIndex;
+            return IsJson(json, out errIndex);
+        }
+        public static bool IsJson(string json, out int errIndex)
+        {
+            errIndex = 0;
+            if (IsJsonStart(ref json))
+            {
+                CharState cs = new CharState();
+                char c;
+                for (int i = 0; i < json.Length; i++)
+                {
+                    c = json[i];
+                    if (SetCharState(c, ref cs) && cs.childrenStart)//璁剧疆鍏抽敭绗﹀彿鐘舵�併��
+                    {
+                        string item = json.Substring(i);
+                        int err;
+                        int length = GetValueLength(item, true, out err);
+                        cs.childrenStart = false;
+                        if (err > 0)
+                        {
+                            errIndex = i + err;
+                            return false;
+                        }
+                        i = i + length - 1;
+                    }
+                    if (cs.isError)
+                    {
+                        errIndex = i;
+                        return false;
+                    }
+                }
+
+                return !cs.arrayStart && !cs.jsonStart;
+            }
+            return false;
+        }
+
+        private static bool IsJsonStart(ref string json)
+        {
+            if (!string.IsNullOrEmpty(json))
+            {
+                json = json.Trim('\r', '\n', ' ');
+                if (json.Length > 1)
+                {
+                    char s = json[0];
+                    char e = json[json.Length - 1];
+                    return (s == '{' && e == '}') || (s == '[' && e == ']');
+                }
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// 鑾峰彇鍊肩殑闀垮害锛堝綋Json鍊煎祵濂椾互"{"鎴�"["寮�澶存椂锛� qy 2024-7-15
+        /// </summary>
+        private static int GetValueLength(string json, bool breakOnErr, out int errIndex)
+        {
+            errIndex = 0;
+            int len = 0;
+            if (!string.IsNullOrEmpty(json))
+            {
+                CharState cs = new CharState();
+                char c;
+                for (int i = 0; i < json.Length; i++)
+                {
+                    c = json[i];
+                    if (!SetCharState(c, ref cs))//璁剧疆鍏抽敭绗﹀彿鐘舵�併��
+                    {
+                        if (!cs.jsonStart && !cs.arrayStart)//json缁撴潫锛屽張涓嶆槸鏁扮粍锛屽垯閫�鍑恒��
+                        {
+                            break;
+                        }
+                    }
+                    else if (cs.childrenStart)//姝e父瀛楃锛屽�肩姸鎬佷笅銆�
+                    {
+                        int length = GetValueLength(json.Substring(i), breakOnErr, out errIndex);//閫掑綊瀛愬�硷紝杩斿洖涓�涓暱搴︺�傘�傘��
+                        cs.childrenStart = false;
+                        cs.valueStart = 0;
+                        //cs.state = 0;
+                        i = i + length - 1;
+                    }
+                    if (breakOnErr && cs.isError)
+                    {
+                        errIndex = i;
+                        return i;
+                    }
+                    if (!cs.jsonStart && !cs.arrayStart)//璁板綍褰撳墠缁撴潫浣嶇疆銆�
+                    {
+                        len = i + 1;//闀垮害姣旂储寮�+1
+                        break;
+                    }
+                }
+            }
+            return len;
+        }
+
+        /// <summary>
+        /// 瀛楃鐘舵�� qy 2024-7-15
+        /// </summary>
+        private class CharState
+        {
+            internal bool jsonStart = false;//浠� "{"寮�濮嬩簡...
+            internal bool setDicValue = false;// 鍙互璁剧疆瀛楀吀鍊间簡銆�
+            internal bool escapeChar = false;//浠�"\"杞箟绗﹀彿寮�濮嬩簡
+            /// <summary>
+            /// 鏁扮粍寮�濮嬨�愪粎绗竴寮�澶存墠绠椼�戯紝鍊煎祵濂楃殑浠ャ�恈hildrenStart銆戞潵鏍囪瘑銆�
+            /// </summary>
+            internal bool arrayStart = false;//浠�"[" 绗﹀彿寮�濮嬩簡
+            internal bool childrenStart = false;//瀛愮骇宓屽寮�濮嬩簡銆�
+            /// <summary>
+            /// 銆�0 鍒濆鐘舵�侊紝鎴� 閬囧埌鈥�,鈥濋�楀彿銆戯紱銆�1 閬囧埌鈥滐細鈥濆啋鍙枫��
+            /// </summary>
+            internal int state = 0;
+
+            /// <summary>
+            /// 銆�-1 鍙栧�肩粨鏉熴�戙��0 鏈紑濮嬨�戙��1 鏃犲紩鍙峰紑濮嬨�戙��2 鍗曞紩鍙峰紑濮嬨�戙��3 鍙屽紩鍙峰紑濮嬨��
+            /// </summary>
+            internal int keyStart = 0;
+            /// <summary>
+            /// 銆�-1 鍙栧�肩粨鏉熴�戙��0 鏈紑濮嬨�戙��1 鏃犲紩鍙峰紑濮嬨�戙��2 鍗曞紩鍙峰紑濮嬨�戙��3 鍙屽紩鍙峰紑濮嬨��
+            /// </summary>
+            internal int valueStart = 0;
+            internal bool isError = false;//鏄惁璇硶閿欒銆�
+
+            internal void CheckIsError(char c)//鍙綋鎴愪竴绾у鐞嗭紙鍥犱负GetLength浼氶�掑綊鍒版瘡涓�涓瓙椤瑰鐞嗭級
+            {
+                if (keyStart > 1 || valueStart > 1)
+                {
+                    return;
+                }
+                //绀轰緥 ["aa",{"bbbb":123,"fff","ddd"}] 
+                switch (c)
+                {
+                    case '{'://[{ "[{A}]":[{"[{B}]":3,"m":"C"}]}]
+                        isError = jsonStart && state == 0;//閲嶅寮�濮嬮敊璇� 鍚屾椂涓嶆槸鍊煎鐞嗐��
+                        break;
+                    case '}':
+                        isError = !jsonStart || (keyStart != 0 && state == 0);//閲嶅缁撴潫閿欒 鎴栬�� 鎻愬墠缁撴潫{"aa"}銆傛甯哥殑鏈墈}
+                        break;
+                    case '[':
+                        isError = arrayStart && state == 0;//閲嶅寮�濮嬮敊璇�
+                        break;
+                    case ']':
+                        isError = !arrayStart || jsonStart;//閲嶅寮�濮嬮敊璇� 鎴栬�� Json 鏈粨鏉�
+                        break;
+                    case '"':
+                    case '\'':
+                        isError = !(jsonStart || arrayStart); //json 鎴栨暟缁勫紑濮嬨��
+                        if (!isError)
+                        {
+                            //閲嶅寮�濮� [""",{"" "}]
+                            isError = (state == 0 && keyStart == -1) || (state == 1 && valueStart == -1);
+                        }
+                        if (!isError && arrayStart && !jsonStart && c == '\'')//['aa',{}]
+                        {
+                            isError = true;
+                        }
+                        break;
+                    case ':':
+                        isError = !jsonStart || state == 1;//閲嶅鍑虹幇銆�
+                        break;
+                    case ',':
+                        isError = !(jsonStart || arrayStart); //json 鎴栨暟缁勫紑濮嬨��
+                        if (!isError)
+                        {
+                            if (jsonStart)
+                            {
+                                isError = state == 0 || (state == 1 && valueStart > 1);//閲嶅鍑虹幇銆�
+                            }
+                            else if (arrayStart)//["aa,] [,]  [{},{}]
+                            {
+                                isError = keyStart == 0 && !setDicValue;
+                            }
+                        }
+                        break;
+                    case ' ':
+                    case '\r':
+                    case '\n'://[ "a",\r\n{} ]
+                    case '\0':
+                    case '\t':
+                        break;
+                    default: //鍊煎紑澶淬�傘��
+                        isError = (!jsonStart && !arrayStart) || (state == 0 && keyStart == -1) || (valueStart == -1 && state == 1);//
+                        break;
+                }
+                //if (isError)
+                //{
+
+                //}
+            }
+        }
+        /// <summary>
+        /// 璁剧疆瀛楃鐘舵��(杩斿洖true鍒欎负鍏抽敭璇嶏紝杩斿洖false鍒欏綋涓烘櫘閫氬瓧绗﹀鐞嗭級 qy 2024-7-15
+        /// </summary>
+        private static bool SetCharState(char c, ref CharState cs)
+        {
+            cs.CheckIsError(c);
+            switch (c)
+            {
+                case '{'://[{ "[{A}]":[{"[{B}]":3,"m":"C"}]}]
+                    #region 澶ф嫭鍙�
+                    if (cs.keyStart <= 0 && cs.valueStart <= 0)
+                    {
+                        cs.keyStart = 0;
+                        cs.valueStart = 0;
+                        if (cs.jsonStart && cs.state == 1)
+                        {
+                            cs.childrenStart = true;
+                        }
+                        else
+                        {
+                            cs.state = 0;
+                        }
+                        cs.jsonStart = true;//寮�濮嬨��
+                        return true;
+                    }
+                    #endregion
+                    break;
+                case '}':
+                    #region 澶ф嫭鍙风粨鏉�
+                    if (cs.keyStart <= 0 && cs.valueStart < 2 && cs.jsonStart)
+                    {
+                        cs.jsonStart = false;//姝e父缁撴潫銆�
+                        cs.state = 0;
+                        cs.keyStart = 0;
+                        cs.valueStart = 0;
+                        cs.setDicValue = true;
+                        return true;
+                    }
+                    // cs.isError = !cs.jsonStart && cs.state == 0;
+                    #endregion
+                    break;
+                case '[':
+                    #region 涓嫭鍙峰紑濮�
+                    if (!cs.jsonStart)
+                    {
+                        cs.arrayStart = true;
+                        return true;
+                    }
+                    else if (cs.jsonStart && cs.state == 1)
+                    {
+                        cs.childrenStart = true;
+                        return true;
+                    }
+                    #endregion
+                    break;
+                case ']':
+                    #region 涓嫭鍙风粨鏉�
+                    if (cs.arrayStart && !cs.jsonStart && cs.keyStart <= 2 && cs.valueStart <= 0)//[{},333]//杩欐牱缁撴潫銆�
+                    {
+                        cs.keyStart = 0;
+                        cs.valueStart = 0;
+                        cs.arrayStart = false;
+                        return true;
+                    }
+                    #endregion
+                    break;
+                case '"':
+                case '\'':
+                    #region 寮曞彿
+                    if (cs.jsonStart || cs.arrayStart)
+                    {
+                        if (cs.state == 0)//key闃舵,鏈夊彲鑳芥槸鏁扮粍["aa",{}]
+                        {
+                            if (cs.keyStart <= 0)
+                            {
+                                cs.keyStart = (c == '"' ? 3 : 2);
+                                return true;
+                            }
+                            else if ((cs.keyStart == 2 && c == '\'') || (cs.keyStart == 3 && c == '"'))
+                            {
+                                if (!cs.escapeChar)
+                                {
+                                    cs.keyStart = -1;
+                                    return true;
+                                }
+                                else
+                                {
+                                    cs.escapeChar = false;
+                                }
+                            }
+                        }
+                        else if (cs.state == 1 && cs.jsonStart)//鍊奸樁娈靛繀椤绘槸Json寮�濮嬩簡銆�
+                        {
+                            if (cs.valueStart <= 0)
+                            {
+                                cs.valueStart = (c == '"' ? 3 : 2);
+                                return true;
+                            }
+                            else if ((cs.valueStart == 2 && c == '\'') || (cs.valueStart == 3 && c == '"'))
+                            {
+                                if (!cs.escapeChar)
+                                {
+                                    cs.valueStart = -1;
+                                    return true;
+                                }
+                                else
+                                {
+                                    cs.escapeChar = false;
+                                }
+                            }
+
+                        }
+                    }
+                    #endregion
+                    break;
+                case ':':
+                    #region 鍐掑彿
+                    if (cs.jsonStart && cs.keyStart < 2 && cs.valueStart < 2 && cs.state == 0)
+                    {
+                        if (cs.keyStart == 1)
+                        {
+                            cs.keyStart = -1;
+                        }
+                        cs.state = 1;
+                        return true;
+                    }
+                    // cs.isError = !cs.jsonStart || (cs.keyStart < 2 && cs.valueStart < 2 && cs.state == 1);
+                    #endregion
+                    break;
+                case ',':
+                    #region 閫楀彿 //["aa",{aa:12,}]
+
+                    if (cs.jsonStart)
+                    {
+                        if (cs.keyStart < 2 && cs.valueStart < 2 && cs.state == 1)
+                        {
+                            cs.state = 0;
+                            cs.keyStart = 0;
+                            cs.valueStart = 0;
+                            //if (cs.valueStart == 1)
+                            //{
+                            //    cs.valueStart = 0;
+                            //}
+                            cs.setDicValue = true;
+                            return true;
+                        }
+                    }
+                    else if (cs.arrayStart && cs.keyStart <= 2)
+                    {
+                        cs.keyStart = 0;
+                        //if (cs.keyStart == 1)
+                        //{
+                        //    cs.keyStart = -1;
+                        //}
+                        return true;
+                    }
+                    #endregion
+                    break;
+                case ' ':
+                case '\r':
+                case '\n'://[ "a",\r\n{} ]
+                case '\0':
+                case '\t':
+                    if (cs.keyStart <= 0 && cs.valueStart <= 0) //cs.jsonStart && 
+                    {
+                        return true;//璺宠繃绌烘牸銆�
+                    }
+                    break;
+                default: //鍊煎紑澶淬�傘��
+                    if (c == '\\') //杞箟绗﹀彿
+                    {
+                        if (cs.escapeChar)
+                        {
+                            cs.escapeChar = false;
+                        }
+                        else
+                        {
+                            cs.escapeChar = true;
+                            return true;
+                        }
+                    }
+                    else
+                    {
+                        cs.escapeChar = false;
+                    }
+                    if (cs.jsonStart || cs.arrayStart) // Json 鎴栨暟缁勫紑濮嬩簡銆�
+                    {
+                        if (cs.keyStart <= 0 && cs.state == 0)
+                        {
+                            cs.keyStart = 1;//鏃犲紩鍙风殑
+                        }
+                        else if (cs.valueStart <= 0 && cs.state == 1 && cs.jsonStart)//鍙湁Json寮�濮嬫墠鏈夊�笺��
+                        {
+                            cs.valueStart = 1;//鏃犲紩鍙风殑
+                        }
+                    }
+                    break;
+            }
+            return false;
+        }
+
+        #endregion
+
+        public static LinqExpressionType GetLinqCondition(this string stringType)
+        {
+            LinqExpressionType linqExpression;
+            switch (stringType)
+            {
+                case HtmlElementType.Contains:
+                    linqExpression = LinqExpressionType.In;
+                    break;
+                case HtmlElementType.ThanOrEqual:
+                    linqExpression = LinqExpressionType.ThanOrEqual;
+                    break;
+                case HtmlElementType.LessOrequal:
+                    linqExpression = LinqExpressionType.LessThanOrEqual;
+                    break;
+                case HtmlElementType.GT:
+                    linqExpression = LinqExpressionType.GreaterThan;
+                    break;
+                case HtmlElementType.lt:
+                    linqExpression = LinqExpressionType.LessThan;
+                    break;
+                case HtmlElementType.like:
+                    linqExpression = LinqExpressionType.Contains;
+                    break;
+                default:
+                    linqExpression = LinqExpressionType.Equal;
+                    break;
+            }
+            return linqExpression;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/LocationEnum/LocationEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/LocationEnum/LocationEnum.cs"
new file mode 100644
index 0000000..3e4bbbc
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/LocationEnum/LocationEnum.cs"
@@ -0,0 +1,65 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.LocationEnum
+{
+    /// <summary>
+    /// 璐т綅鐘舵��
+    /// </summary>
+    public enum LocationStatusEnum
+    {
+        /// <summary>
+        /// 绌洪棽
+        /// </summary>
+        [Description("绌洪棽")]
+        Free = 0,
+
+        /// <summary>
+        /// 閿佸畾
+        /// </summary>
+        [Description("閿佸畾")]
+        Lock = 1,
+
+        /// <summary>
+        /// 鏈夎揣
+        /// </summary>
+        [Description("鏈夎揣")]
+        InStock = 2,
+
+
+    }
+
+    public enum EnableStatusEnum
+    {
+        /// <summary>
+        /// 姝e父
+        /// </summary>
+        [Description("姝e父")]
+        Normal = 0,
+
+        /// <summary>
+        /// 绂佺敤
+        /// </summary>
+        [Description("绂佺敤")]
+        Disable = 3
+    }
+
+    public enum LocationTypeEnum
+    {
+        /// <summary>
+        /// 鍓旈櫎璐т綅
+        /// </summary>
+        [Description("鍓旈櫎璐т綅")]
+        Cube = 1,
+
+        /// <summary>
+        /// 姝e父璐т綅
+        /// </summary>
+        [Description("姝e父璐т綅")]
+        Flat = 2
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs"
new file mode 100644
index 0000000..203e5bf
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/StockEnum/stockEnum.cs"
@@ -0,0 +1,24 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.StockEnum
+{
+    public enum stockEnum
+    {
+        /// <summary>
+        /// 绌洪棽
+        /// </summary>
+        [Description("绌洪棽")]
+        Free = 0,
+
+        /// <summary>
+        /// 閿佸畾
+        /// </summary>
+        [Description("棰勫畾")]
+        Lock = 1,
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
new file mode 100644
index 0000000..98a8147
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
@@ -0,0 +1,63 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common.TaskEnum;
+
+namespace WIDESEAWCS_Common.TaskEnum
+{
+    public static class TaskEnumHelper
+    {
+        public static List<int> GetEnumIndexList(this Type type)
+        {
+            if (type is null) throw new ArgumentNullException("type");
+            if (!type.IsEnum) return new List<int>();
+            return Enum.GetValues(type).Cast<int>().ToList();
+        }
+
+        public static TaskTypeGroup GetTaskTypeGroup(this int taskType)
+        {
+            if (!int.TryParse(Enum.Parse<TaskOutboundTypeEnum>(taskType.ToString()).ToString(), out int result))
+            {
+                return TaskTypeGroup.OutbondGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskInStatusEnum>(taskType.ToString()).ToString(), out result))
+            {
+                return TaskTypeGroup.InboundGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskRelocationTypeEnum>(taskType.ToString()).ToString(), out result))
+            {
+                return TaskTypeGroup.RelocationGroup;
+            }
+            else if (!int.TryParse(Enum.Parse<TaskOtherTypeEnum>(taskType.ToString()).ToString(), out result))
+            {
+                return TaskTypeGroup.OtherGroup;
+            }
+            else
+            {
+                throw new NotImplementedException();
+            }
+        }
+
+        public static int GetNextNotCompletedStatus<T>(this int currentStatus) where T : Enum
+        {
+            Type type = typeof(T);
+            if (type is null) throw new ArgumentNullException();
+            if (!type.IsEnum) return 0;
+            if (type == typeof(TaskInStatusEnum))
+            {
+                List<int> taskInboundTypes = type.GetEnumIndexList();
+                return taskInboundTypes.Where(x => x > currentStatus && x < (int)TaskInStatusEnum.InFinish).OrderBy(x => x).FirstOrDefault();
+            }
+            else if (type == typeof(TaskOutStatusEnum))
+            {
+                return type.GetEnumIndexList().Where(x => x > currentStatus && x < (int)TaskOutStatusEnum.OutFinish).OrderBy(x => x).FirstOrDefault();
+            }
+            else
+            {
+                throw new NotImplementedException();
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
new file mode 100644
index 0000000..90f7341
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusEnum.cs"
@@ -0,0 +1,173 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.TaskEnum
+{
+    public enum TaskInStatusEnum
+    {
+        /// <summary>
+        /// 鏂板缓鍏ュ簱浠诲姟
+        /// </summary>
+        [Description("鏂板缓鍏ュ簱浠诲姟")]
+        InNew = 200,
+
+        /// <summary>
+        /// 澶╄溅鍏ュ簱鍙栬揣瀹屾垚
+        /// </summary>
+        [Description("澶╄溅鍏ュ簱鍙栬揣瀹屾垚")]
+        Line_Ingrab = 210,
+
+        /// <summary>
+        /// 澶╄溅鍏ュ簱鍙栬揣鎵ц涓�
+        /// </summary>
+        [Description("澶╄溅鍏ュ簱鍙栬揣鎵ц涓�")]
+        Line_InGrabExecuting = 220,
+
+        /// <summary>
+        /// 澶╄溅鍏ュ簱鏀捐揣鎵ц涓�
+        /// </summary>
+        [Description("澶╄溅鍏ュ簱鏀捐揣鎵ц涓�")]
+        Line_InDownExecuting = 221,
+
+        /// <summary>
+        /// 澶╄溅鍏ュ簱瀹屾垚
+        /// </summary>
+        [Description("澶╄溅鍏ュ簱瀹屾垚")]
+        Line_InFinish = 225,
+
+        /// <summary>
+        /// 鍏ュ簱浠诲姟瀹屾垚
+        /// </summary>
+        [Description("鍏ュ簱浠诲姟瀹屾垚")]
+        InFinish = 290,
+
+        /// <summary>
+        /// 鍏ュ簱浠诲姟鎸傝捣
+        /// </summary>
+        [Description("鍏ュ簱浠诲姟鎸傝捣")]
+        InPending = 297,
+
+        /// <summary>
+        /// 鍏ュ簱浠诲姟鍙栨秷
+        /// </summary>
+        [Description("鍏ュ簱浠诲姟鍙栨秷")]
+        InCancel = 298,
+
+        /// <summary>
+        /// 鍏ュ簱浠诲姟寮傚父
+        /// </summary>
+        [Description("鍏ュ簱浠诲姟寮傚父")]
+        InException = 299,
+    }
+
+    public enum TaskMoveStatusEnum
+    {
+        /// <summary>
+        /// 鏂板缓绉诲姩浠诲姟
+        /// </summary>
+        [Description("鏂板缓绉诲姩浠诲姟")]
+        OutNewMove = 101,
+
+        /// <summary>
+        /// 澶╄溅绉诲姩瀹屾垚
+        /// </summary>
+        [Description("澶╄溅绉诲姩瀹屾垚")]
+        MoveFinish = 102,
+
+        /// <summary>
+        /// 澶╄溅绉诲姩涓�
+        /// </summary>
+        [Description("澶╄溅绉诲姩涓�")]
+        Line_OutMove =102
+    }
+
+    public enum TaskOutStatusEnum
+    {
+        /// <summary>
+        /// 鏂板缓鍑哄簱浠诲姟
+        /// </summary>
+        [Description("鏂板缓鍑哄簱浠诲姟")]
+        OutNew = 100,
+
+        /// <summary>
+        /// 澶╄溅鍑哄簱鍙栬揣瀹屾垚
+        /// </summary>
+        [Description("澶╄溅鍑哄簱鍙栬揣瀹屾垚")]
+        SC_OutExecuting = 110,
+
+        /// <summary>
+        /// 澶╄溅鍑哄簱瀹屾垚
+        /// </summary>
+        [Description("澶╄溅鍑哄簱瀹屾垚")]
+        SC_OutFinish = 115,
+
+        /// <summary>
+        /// 澶╄溅鍑哄簱鍙栬揣鎵ц涓�
+        /// </summary>
+        [Description("澶╄溅鍑哄簱鍙栬揣鎵ц涓�")]
+        Line_OutGrabExecuting = 120,
+
+        /// <summary>
+        /// 澶╄溅鍑哄簱鏀捐揣鎵ц涓�
+        /// </summary>
+        [Description("澶╄溅鍑哄簱鏀捐揣鎵ц涓�")]
+        Line_OutWownExecuting = 130,
+
+        /// <summary>
+        /// 鍑哄簱浠诲姟瀹屾垚
+        /// </summary>
+        [Description("鍑哄簱浠诲姟瀹屾垚")]
+        OutFinish = 190,
+
+        /// <summary>
+        /// 鍑哄簱浠诲姟鎸傝捣
+        /// </summary>
+        [Description("鍑哄簱浠诲姟鎸傝捣")]
+        OutPending = 197,
+
+        /// <summary>
+        /// 鍑哄簱浠诲姟鍙栨秷
+        /// </summary>
+        [Description("鍑哄簱浠诲姟鍙栨秷")]
+        OutCancel = 198,
+
+        /// <summary>
+        /// 鍑哄簱浠诲姟寮傚父
+        /// </summary>
+        [Description("鍑哄簱浠诲姟寮傚父")]
+        OutException = 199,
+    }
+
+    public enum MateTypeEnum
+    {
+        /// <summary>
+        /// 鑷骇
+        /// </summary>
+        [Description("鑷骇")]
+        ZiChan,
+
+        /// <summary>
+        /// 澶栬喘
+        /// </summary>
+        [Description("澶栬喘")]
+        WaiGou,
+    }
+
+    public enum StorageModeEnum 
+    {
+        /// <summary>
+        /// 鍑哄簱浼樺厛
+        /// </summary>
+        [Description("鍑哄簱浼樺厛")]
+        Out=1,
+        /// <summary>
+        /// 鍏ュ簱浼樺厛
+        /// </summary>
+        [Description("鍏ュ簱浼樺厛")]
+        In = 2,
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusGroup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusGroup.cs"
new file mode 100644
index 0000000..459adce
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskStatusGroup.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.TaskEnum
+{
+    public enum TaskStatusGroup
+    {
+        NotCompleted,
+        Completed,
+        Exception
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
new file mode 100644
index 0000000..782c499
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeEnum.cs"
@@ -0,0 +1,85 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.TaskEnum
+{
+    public enum TaskInboundTypeEnum
+    {
+        /// <summary>
+        /// 鍏ュ簱
+        /// </summary>
+        [Description("鍏ュ簱")]
+        Inbound = 200,
+        /// <summary>
+        /// 鐩樼偣鍏ュ簱
+        /// </summary>
+        [Description("鐩樼偣鍏ュ簱")]
+        InInventory = 201,
+        /// <summary>
+        /// 鍒嗘嫞鍏ュ簱
+        /// </summary>
+        [Description("鍒嗘嫞鍏ュ簱")]
+        InPick = 202,
+        /// <summary>
+        /// 璐ㄦ鍏ュ簱
+        /// </summary>
+        [Description("璐ㄦ鍏ュ簱")]
+        InQuality = 203
+    }
+
+    public enum TaskOutboundTypeEnum
+    {
+        /// <summary>
+        /// 鍑哄簱
+        /// </summary>
+        [Description("鍑哄簱")]
+        Outbound = 100,
+        /// <summary>
+        /// 鐩存帴鍑哄簱
+        /// </summary>
+        [Description("鐩存帴鍑哄簱")]
+        OutInventory = 101,
+        /// <summary>
+        /// 鍒嗘嫞鍑哄簱
+        /// </summary>
+        [Description("鍒嗘嫞鍑哄簱")]
+        OutPick = 102,
+        /// <summary>
+        /// 璐ㄦ鍑哄簱
+        /// </summary>
+        [Description("璐ㄦ鍑哄簱")]
+        OutQuality = 103,
+    }
+
+    public enum TaskRelocationTypeEnum
+    {
+        /// <summary>
+        /// 搴撳唴绉诲簱
+        /// </summary>
+        [Description("搴撳唴绉诲簱")]
+        Relocation = 300,
+        /// <summary>
+        /// 搴撳绉诲簱
+        /// </summary>
+        [Description("搴撳绉诲簱")]
+        RelocationIn = 301
+    }
+
+    public enum TaskOtherTypeEnum
+    {
+
+    }
+
+    public enum TaskMoveEnum
+    {
+        /// <summary>
+        /// 澶╄溅绉诲姩
+        /// </summary>
+        [Description("澶╄溅绉诲姩")]
+        Mowe = 300,
+    }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs"
new file mode 100644
index 0000000..cb22aea
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskTypeGroup.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.TaskEnum
+{
+    public enum TaskTypeGroup
+    {
+        InboundGroup,
+        OutbondGroup,
+        RelocationGroup,
+        OtherGroup
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj"
new file mode 100644
index 0000000..446e879
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/WIDESEAWCS_Common.csproj"
@@ -0,0 +1,22 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+    <Platforms>AnyCPU;x64</Platforms>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Baidu.AI" Version="4.15.16" />
+    <PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
+    <PackageReference Include="NLog" Version="5.4.0" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <Reference Include="OpenCvSharp">
+      <HintPath>bin\Release\net6.0\OpenCvSharp.dll</HintPath>
+    </Reference>
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/InitializationLocationDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/InitializationLocationDTO.cs"
new file mode 100644
index 0000000..850728e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/BasicInfo/InitializationLocationDTO.cs"
@@ -0,0 +1,49 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.Attributes;
+
+namespace WIDESEAWCS_DTO.BasicInfo
+{
+    [ModelValidate]
+    public class InitializationLocationDTO
+    {
+        /// <summary>
+        /// 宸烽亾鍙�
+        /// </summary>
+        [PropertyValidate("宸烽亾鍙�", NotNullAndEmpty = true)]
+        public string Roadway { get; set; }
+
+        /// <summary>
+        /// 琛�
+        /// </summary>
+        [PropertyValidate("琛�", MinValue = 0, IsContainMinValue = false)]
+        public int MaxRow { get; set; }
+
+        /// <summary>
+        /// 鍒�
+        /// </summary>
+        [PropertyValidate("鍒�", MinValue = 0, IsContainMinValue = false)]
+        public int MaxColumn { get; set; }
+
+        /// <summary>
+        /// 灞�
+        /// </summary>
+        [PropertyValidate("灞�", MinValue = 0, IsContainMinValue = false)]
+        public int MaxLayer { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍗曟繁璐т綅
+        /// </summary>
+        [PropertyValidate("鏄惁鍗曟繁璐т綅", NotNullAndEmpty = true)]
+        public bool IsSingleDepth { get; set; }
+
+        /// <summary>
+        /// 涓�娣辫鍙�
+        /// </summary>
+        [PropertyValidate("涓�娣辫鍙�", NotNullAndEmptyWithPropertyAndValue = new string[] { nameof(IsSingleDepth), "false" })]
+        public List<int> FirstDepthRows { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/StackerCarneTaskDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/StackerCarneTaskDTO.cs"
new file mode 100644
index 0000000..45aa206
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/StackerCarneTaskDTO.cs"
@@ -0,0 +1,13 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO
+{
+    public class StackerCarneTaskDTO
+    {
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/ActionDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/ActionDTO.cs"
new file mode 100644
index 0000000..b6204c2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/ActionDTO.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.System
+{
+    public class ActionDTO
+    {
+        public int ActionId { get; set; }
+        public int MenuId { get; set; }
+        public string Text { get; set; }
+        public string Value { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/AddUserDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/AddUserDTO.cs"
new file mode 100644
index 0000000..e4b1bd3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/AddUserDTO.cs"
@@ -0,0 +1,89 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.SerialPort
+{
+    public class AddUserDTO
+    {
+        /// <summary>
+        /// 鐢ㄦ埛id鐢ㄦ潵淇敼
+        /// </summary>
+        public int id { get; set; }
+
+        /// <summary>
+        /// 璐﹀彿
+        /// </summary>
+        public string  username { get; set; }
+
+
+        /// <summary>
+        /// 鍚嶅瓧
+        /// </summary>
+        public string usertruename { get; set; }
+
+       
+
+
+        public string  phoneno { get; set; }
+
+        /// <summary>
+        /// 缁勫埆
+        /// </summary>
+        public int roleid { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛绫诲埆
+        /// </summary>
+        public string rolename { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍚敤
+        /// </summary>
+        public  byte    enable { get; set; }
+
+
+        /// <summary>
+        /// 涓婁紶鍥剧墖鍚�
+        /// </summary>
+        public string?path { get; set; }
+
+
+        /// <summary>
+        /// 鐝粍
+        /// </summary>
+        public string  userteam { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅
+        /// </summary>
+        public string userunit { get; set; }
+
+        /// <summary>
+        /// 鍗″彿
+        /// </summary>
+       // public int carnuber { get; set; }
+
+        /// <summary>
+        /// 鏄惁鏄粍闀�
+        /// </summary>
+        public int IsLeader { get; set; }
+
+        /// <summary>
+        /// 杞ㄩ亾绔�
+        /// </summary>
+        public int dept_Id { get; set; }
+
+        ///// <summary>
+        ///// 鍥剧墖token
+        ///// </summary>
+        //public string ?face_token { get; set; }
+
+        ///// <summary>
+        ///// 鐧惧害浜戝垎缁�
+        ///// </summary>
+        //  public int log_id { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/MenuDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/MenuDTO.cs"
new file mode 100644
index 0000000..57bf903
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/MenuDTO.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_DTO.System
+{
+    public class MenuDTO : Sys_Menu
+    {
+        public List<ActionDTO>? Actions { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/UserPermissions.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/UserPermissions.cs"
new file mode 100644
index 0000000..4730c78
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/UserPermissions.cs"
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.System
+{
+    public class UserPermissionDTO
+    {
+        public int Id { get; set; }
+        public int Pid { get; set; }
+        public string Text { get; set; }
+        public bool IsApp { get; set; }
+        public List<ActionDTO> Actions { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/VueDictionaryDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/VueDictionaryDTO.cs"
new file mode 100644
index 0000000..deed903
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/System/VueDictionaryDTO.cs"
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.System
+{
+    public class VueDictionaryDTO
+    {
+        public string DicNo { get; set; }
+
+        public string Config { get; set; }
+
+        public object Data { get; set; }
+
+        public bool SaveCache { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
new file mode 100644
index 0000000..f29527c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/TaskInfo/WMSTaskDTO.cs"
@@ -0,0 +1,56 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.TaskInfo
+{
+    public class WMSTaskDTO
+    {
+        /// <summary>
+        /// WMS浠诲姟涓婚敭
+        /// </summary>
+        public int Id {  get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        public int TaskNum {  get; set; }
+
+        /// <summary>
+        /// 鎵樼洏鍙�
+        /// </summary>
+        public string PalletCode {  get; set; }
+
+        /// <summary>
+        /// 宸烽亾鍙�
+        /// </summary>
+        public string RoadWay { get; set; }
+
+        /// <summary>
+        /// 浠诲姟绫诲瀷
+        /// </summary>
+        public int TaskType {  get; set; }
+
+        /// <summary>
+        /// 浠诲姟鐘舵��
+        /// </summary>
+        public int TaskState { get; set; }
+
+        /// <summary>
+        /// 璧风偣
+        /// </summary>
+        public string SourceAddress {  get; set; }
+
+        /// <summary>
+        /// 缁堢偣
+        /// </summary>
+        public string TargetAddress {  get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        public int Grade {  get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/PaginationDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/PaginationDTO.cs"
new file mode 100644
index 0000000..6938eb9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/PaginationDTO.cs"
@@ -0,0 +1,60 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.Telescopic
+{
+    public class PaginationDTO
+    {
+        /// <summary>
+        /// 绗嚑椤�
+        /// </summary>
+        public int pageIndex { get; set; }
+
+        /// <summary>
+        /// 涓�椤靛灏戜釜鏁版嵁
+        /// </summary>
+        public int pageSize { get; set; }
+
+        /// <summary>
+        /// 妯$硦鏌ヨ鐨勫瓧娈�
+        /// </summary>
+        public string? searchKeyword { get; set; }
+
+        /// <summary>
+        /// 寮�濮嬫椂闂�
+        /// </summary>
+        public DateTime ?startDate { get; set; }
+
+
+        /// <summary>
+        /// 缁撴潫鏃堕棿
+        /// </summary>
+        public DateTime? endDate { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        public int ? status {  get; set; }
+
+        /// <summary>
+        /// 鎺掑簭瀛楁鍚�
+        /// </summary>
+        public string ?sortField { get; set; }   
+
+        /// <summary>
+        /// 鎺掑簭鏂瑰紡锛�"asc" 鎴� "desc"
+        /// </summary>
+        public string ?sortOrder { get; set; }
+
+
+        /// <summary>
+        /// 鐢ㄦ埛璐﹀彿
+        /// </summary>
+        public string account { get; set; }
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/SpeedDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/SpeedDTO.cs"
new file mode 100644
index 0000000..b8ee768
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/SpeedDTO.cs"
@@ -0,0 +1,50 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.Telescopic
+{
+    public class SpeedDTO
+    {
+        /// <summary>
+        ///宸LC鑷姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        public double ExtendSpeed { get; set; }
+
+        /// <summary>
+        /// 鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        public double RetractionSpeed { get; set; }
+
+
+        /// <summary>
+        /// 宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        public double ManualExtend { get; set; }
+
+
+        /// <summary>
+        /// 鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        public double ManualRetraction { get; set; }
+
+        /// <summary>
+        /// 宸﹁嚜鍔ㄤ几鍑轰綅缃�
+        /// </summary>
+        public double LeftPosition { get; set; }
+
+
+        /// <summary>
+        /// 鍙宠嚜鍔ㄤ几鍑轰綅缃�
+        /// </summary>
+        public double RightPosition { get; set; }
+
+        /// <summary>
+        /// 璐﹀彿
+        /// </summary>
+        public string account {  get; set; }   
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UpstreamIDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UpstreamIDTO.cs"
new file mode 100644
index 0000000..043a3fa
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UpstreamIDTO.cs"
@@ -0,0 +1,42 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.Telescopic
+{
+    /// <summary>
+    /// 涓婃父绯荤粺鐨勬淇俊鎭�
+    /// </summary>
+    public class UpstreamIDTO
+    {
+        /// <summary>
+        /// 鏄惁鏈夌數
+        /// </summary>
+        public string  IsElectricity { get; set; }
+
+        /// <summary>
+        /// 璁惧缂栧彿1
+        /// </summary>
+        public  string NumberOne { get; set; }
+
+        /// <summary>
+        /// 璁惧缂栧彿浜�
+        /// </summary>
+        public string NumberTwo { get; set; }
+
+        /// <summary>
+        /// 宸茬櫥璁�
+        /// </summary>
+        public int Registered { get; set; }
+
+
+        /// <summary>
+        /// 宸茬櫥椤�
+        /// </summary>
+        public int HasReachedTheTop { get; set; }
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UserDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UserDTO.cs"
new file mode 100644
index 0000000..a85be62
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/Telescopic/UserDTO.cs"
@@ -0,0 +1,40 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Http;
+
+namespace WIDESEAWCS_DTO.SerialPort
+{
+    public class UserDTO
+    {
+        public int id { get; set; }
+
+        ///// <summary>
+        ///// 璐﹀彿
+        ///// </summary>
+        //public string  username { get; set; }
+
+
+        /// <summary>
+        /// 鐪熷疄濮撳悕
+        /// </summary>
+        public string  usertruename{ get; set; }
+
+
+        /// <summary>
+        /// 鐢佃瘽
+        /// </summary>
+        public string phone { get; set; }
+
+        /// <summary>
+        /// 鍥剧墖
+        /// </summary>
+        public string files { get; set; }
+
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj"
new file mode 100644
index 0000000..2ae3d69
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WIDESEAWCS_DTO.csproj"
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<ImplicitUsings>enable</ImplicitUsings>
+		<Nullable>enable</Nullable>
+		<Platforms>AnyCPU;x64</Platforms>
+	</PropertyGroup>
+
+	<ItemGroup>
+		<ProjectReference Include="..\WIDESEAWCS_Model\WIDESEAWCS_Model.csproj" />
+	</ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMSPart/StockViewDTO.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMSPart/StockViewDTO.cs"
new file mode 100644
index 0000000..4ef6a5f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMSPart/StockViewDTO.cs"
@@ -0,0 +1,133 @@
+锘�
+using Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_DTO.WMSPart
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    public class StockViewDTO
+    {
+        /// <summary>
+        /// 浠撳簱ID
+        /// </summary>
+        public int WarehouseId {  get; set; }
+        /// <summary>
+        /// 璐т綅缂栧彿
+        /// </summary>
+        public string LocationCode { get; set; }
+
+        /// <summary>
+        /// 璐т綅鍚嶇О
+        /// </summary>
+        public string LocationName { get; set; }
+
+        /// <summary>
+        /// 璐т綅鍒�
+        /// </summary>
+        public int Column { get; set; }
+
+        /// <summary>
+        /// 璐т綅琛�
+        /// </summary>
+        public int Row { get; set; }
+
+        /// <summary>
+        /// 璐т綅灞�
+        /// </summary>
+        public int Layer { get; set; }
+
+        /// <summary>
+        /// 璐т綅娣卞害
+        /// </summary>
+        public int Depth { get; set; }
+
+        /// <summary>
+        /// 璐т綅鐘舵��
+        /// </summary>
+        public int LocationStatus { get; set; }
+
+        /// <summary>
+        /// 璐т綅绫诲瀷
+        /// </summary>
+        public int LocationType { get; set; }
+
+        /// <summary>
+        /// 宸烽亾缂栧彿
+        /// </summary>
+        public string RoadwayNo { get; set; }
+
+        /// <summary>
+        /// 绂佺敤鐘舵��
+        /// </summary>
+        public int EnalbeStatus { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨涓婚敭
+        /// </summary>
+        public int StockId { get; set; }
+
+        /// <summary>
+        /// 鎵樼洏鍙�
+        /// </summary>
+        public string PalletCode { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        public bool IsFull { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栫爜
+        /// </summary>
+        public string MaterielCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鎵瑰彿
+        /// </summary>
+        public string BatchNo { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鐘舵��
+        /// </summary>
+        public int StockStatus { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨澶囨敞
+        /// </summary>
+        public string StockRemark { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓浜�
+        /// </summary>
+        public string Creater { get; set; }
+
+        /// <summary>
+        /// 鍒涘缓鏃堕棿
+        /// </summary>
+        public DateTime CreateDate { get; set; }
+
+        /// <summary>
+        /// 淇敼浜�
+        /// </summary>
+        public string Modifier { get; set; }
+
+        /// <summary>
+        /// 淇敼鏃堕棿
+        /// </summary>
+        public DateTime? ModifyDate { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨璇︽儏
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(Dt_StockInfoDetail.StockId), nameof(StockId))]
+        public List<Dt_StockInfoDetail> Details { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/WIDESEAWCS_IBasicInfoRepository.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/WIDESEAWCS_IBasicInfoRepository.csproj"
new file mode 100644
index 0000000..c159328
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/WIDESEAWCS_IBasicInfoRepository.csproj"
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/WIDESEAWCS_IBasicInfoService.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/WIDESEAWCS_IBasicInfoService.csproj"
new file mode 100644
index 0000000..1c9789d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/WIDESEAWCS_IBasicInfoService.csproj"
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+    <Platforms>AnyCPU;x64</Platforms>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryListRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryListRepository.cs"
new file mode 100644
index 0000000..1e8f1a1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryListRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_DictionaryListRepository : IRepository<Sys_DictionaryList>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryRepository.cs"
new file mode 100644
index 0000000..48827bf
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_DictionaryRepository.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_DictionaryRepository : IRepository<Sys_Dictionary>
+    {
+        IEnumerable<Sys_Dictionary> GetDictionaries(IEnumerable<string> dicNos, bool executeSql = true);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs"
new file mode 100644
index 0000000..3c9f9a8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_LogRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_LogRepository : IRepository<Sys_Log>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_MenuRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_MenuRepository.cs"
new file mode 100644
index 0000000..0cfc0d1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_MenuRepository.cs"
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_MenuRepository : IRepository<Sys_Menu>
+    {
+        List<Sys_Menu> GetAllMenu();
+
+        object GetSuperAdminMenu();
+
+        object GetMenuByRoleId(int roleId);
+
+        List<Permissions> GetPermissions(int roleId);
+
+        object GetMenu(List<int> menuIds);
+
+        object GetTreeItem(int menuId);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleAuthRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleAuthRepository.cs"
new file mode 100644
index 0000000..fd0e10b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleAuthRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_RoleAuthRepository : IRepository<Sys_RoleAuth>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleRepository.cs"
new file mode 100644
index 0000000..062c403
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_RoleRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_RoleRepository : IRepository<Sys_Role>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_TenantRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_TenantRepository.cs"
new file mode 100644
index 0000000..f11ea1a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_TenantRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_TenantRepository : IRepository<Sys_Tenant>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_UserRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_UserRepository.cs"
new file mode 100644
index 0000000..e8c00f5
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_UserRepository.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.HttpContextUser;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemRepository
+{
+    public interface ISys_UserRepository : IRepository<Sys_User>
+    {
+        UserInfo GetUserInfo(string userName, string password);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/WIDESEAWCS_ISystemRepository.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/WIDESEAWCS_ISystemRepository.csproj"
new file mode 100644
index 0000000..c2103f2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/WIDESEAWCS_ISystemRepository.csproj"
@@ -0,0 +1,13 @@
+锘�<Project Sdk="Microsoft.NET.Sdk">
+
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<ImplicitUsings>enable</ImplicitUsings>
+		<Nullable>enable</Nullable>
+	</PropertyGroup>
+
+	<ItemGroup>
+		<ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+	</ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryListService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryListService.cs"
new file mode 100644
index 0000000..5aea6e7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryListService.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_DictionaryListService : IService<Sys_DictionaryList>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryService.cs"
new file mode 100644
index 0000000..5465631
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_DictionaryService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.System;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_DictionaryService : IService<Sys_Dictionary>
+    {
+        List<VueDictionaryDTO> GetVueDictionary(string[] dicNos);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs"
new file mode 100644
index 0000000..166d420
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_LogService.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_LogService : IService<Sys_Log>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_MenuService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_MenuService.cs"
new file mode 100644
index 0000000..ec49ff9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_MenuService.cs"
@@ -0,0 +1,32 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_DTO.System;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_MenuService : IService<Sys_Menu>
+    {
+        object GetCurrentMenuActionList();
+        object GetMenuActionList(int roleId);
+
+        List<MenuDTO> GetUserMenuList(int roleId);
+
+        List<Permissions> GetPermissions(int roleId);
+
+        List<ActionDTO> GetActions(int menuId, List<ActionDTO> menuActions, List<Permissions> permissions, int roleId);
+
+        object GetMenu();
+
+        object GetTreeItem(int menuId);
+
+        WebResponseContent Save(Sys_Menu menu);
+
+        WebResponseContent DelMenu(int menuId);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleAuthService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleAuthService.cs"
new file mode 100644
index 0000000..c5e26c3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleAuthService.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_RoleAuthService : IService<Sys_RoleAuth>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleService.cs"
new file mode 100644
index 0000000..1a9c6cb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_RoleService.cs"
@@ -0,0 +1,23 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_DTO.System;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Model.Models.System;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_RoleService : IService<Sys_Role>
+    {
+        List<RoleNodes> GetAllChildren(int roleId);
+        WebResponseContent GetCurrentTreePermission();
+
+        WebResponseContent GetUserTreePermission(int role_Id);
+
+        WebResponseContent SavePermission(List<UserPermissionDTO> userPermissions, int roleId);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_TenantService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_TenantService.cs"
new file mode 100644
index 0000000..5ff3ca5
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_TenantService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_TenantService : IService<Sys_Tenant>
+    {
+        WebResponseContent InitTenantInfo(string tenantName, int tenantType);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserFaceService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserFaceService.cs"
new file mode 100644
index 0000000..092bb09
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserFaceService.cs"
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.Http;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Model.Models.System;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_UserFaceService : IService<Sys_UserFace>
+    {
+        WebResponseContent FaceRecognition(ImageModel model);
+
+        WebResponseContent FaceEnter(ImageModel model);
+
+    }
+
+    public class ImageModel
+    {
+        public string Base64Image { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserService.cs"
new file mode 100644
index 0000000..66ae680
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_UserService.cs"
@@ -0,0 +1,98 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.SerialPort;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface ISys_UserService : IService<Sys_User>
+    {
+        WebResponseContent Login(LoginInfo loginInfo);
+
+        WebResponseContent GetCurrentUserInfo();
+
+        WebResponseContent ModifyPwd(string oldPwd, string newPwd);
+
+
+
+        /// <summary>
+        /// 鏇存柊瀵嗙爜
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="oldPwd"></param>
+        /// <param name="newPwd"></param>
+        /// <returns></returns>
+        WebResponseContent UpdatePwd(int id, string oldPwd, string newPwd);
+
+        /// <summary>
+        /// 鏇存柊鐢ㄦ埛鍩虹淇℃伅
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        WebResponseContent Upuserbase(UserDTO userDTO);
+
+        /// <summary>
+        /// 涓婁紶鍥剧墖
+        /// </summary>
+        /// <param name="files"></param>
+        /// <returns></returns>
+        WebResponseContent SaveFiles(IFormCollection files);
+
+        /// <summary>
+        /// 娣诲姞鐢ㄦ埛
+        /// </summary>
+        /// <param name="addUserDTO"></param>
+        /// <returns></returns>
+        WebResponseContent AdduserData(AddUserDTO addUserDTO);
+
+        WebResponseContent UpuserData(AddUserDTO addUserDTO);
+
+        WebResponseContent DeleteUserData(string userAccount);
+
+        /// <summary>
+        /// 娓呯悊鏁版嵁搴撲腑娌℃湁浣跨敤鐨勫浘鐗�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent CleanUnusedImages();
+
+
+        /// <summary>
+        /// 淇濆瓨浜鸿劯鐧诲叆鏃剁殑鍥剧墖
+        /// </summary>
+        /// <param name="files"></param>
+        /// <returns></returns>
+        WebResponseContent SaveFaceFiles(IFormCollection files);
+
+
+        /// <summary>
+        /// 鏍规嵁鐢ㄦ埛璐﹀彿杩斿洖閮ㄩ棬id
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent ReturnDeptid(string account);
+
+
+        //浜鸿劯鍒犻櫎锛堝垹闄ょ敤鎴风殑鏌愪竴寮犱汉鑴革紝濡傛灉璇ョ敤鎴峰彧鏈変竴寮犱汉鑴稿浘鐗囷紝鍒欏悓鏃跺垹闄ょ敤鎴枫�傦級
+        WebResponseContent DeleteUserIsface(string account);
+
+
+        string FaceCompareFeature(string file1, string file2);
+
+        /// <summary>
+        /// 琛ㄨ繛鎺ヨ鑹茶〃锛屽睍绀烘暟鎹�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent YShowUserList(PaginationDTO pagination);
+
+        
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_BatchinfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_BatchinfoService.cs"
new file mode 100644
index 0000000..4145122
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_BatchinfoService.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface Idt_BatchinfoService : IService<dt_batchInfo>
+    {
+        WebResponseContent UpdateInBatch(string batch);
+        WebResponseContent UpdateOutBatch(string batch);
+        WebResponseContent UpdateOutStorageMode(int mode);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs"
new file mode 100644
index 0000000..0439e00
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_ErrormsginfoService.cs"
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface Idt_ErrormsginfoService : IService<dt_errormsgInfo>
+    {
+        /// <summary>
+        /// 鏇存柊鍝嶅簲鐨勯敊璇俊鎭埌鏁版嵁搴擄紝鍓嶇鐣岄潰鏄剧ず
+        /// </summary>
+        /// <param name="msg"></param>
+        /// <returns></returns>
+        WebResponseContent UpdateErrorMsg(string msg,int id);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_OutstockinfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_OutstockinfoService.cs"
new file mode 100644
index 0000000..b2d27d2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_OutstockinfoService.cs"
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface Idt_OutstockinfoService : IService<dt_outstockinfo>
+    {
+        WebResponseContent UpdateIsOutStock(int isout);
+        WebResponseContent UpdateInOut(int isout);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs"
new file mode 100644
index 0000000..b458cf9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StationinfoService.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface Idt_StationinfoService : IService<dt_stationInfo>
+    {
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StoragemodeService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StoragemodeService.cs"
new file mode 100644
index 0000000..a79fcbe
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/Idt_StoragemodeService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ISystemServices
+{
+    public interface Idt_StoragemodeService : IService<dt_storagemode>
+    {
+        WebResponseContent UpdateStoragemode(int storagemode);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/WIDESEAWCS_ISystemServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/WIDESEAWCS_ISystemServices.csproj"
new file mode 100644
index 0000000..3098b31
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/WIDESEAWCS_ISystemServices.csproj"
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<ImplicitUsings>enable</ImplicitUsings>
+		<Nullable>enable</Nullable>
+		<Platforms>AnyCPU;x64</Platforms>
+	</PropertyGroup>
+
+	<ItemGroup>
+	  <ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+	</ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskExecuteDetailRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskExecuteDetailRepository.cs"
new file mode 100644
index 0000000..35da7b8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskExecuteDetailRepository.cs"
@@ -0,0 +1,32 @@
+锘�#region << 鐗� 鏈� 娉� 閲� >>
+/*----------------------------------------------------------------
+ * 鍛藉悕绌洪棿锛歐IDESEAWCS_ITaskInfoRepository
+ * 鍒涘缓鑰咃細鑳$搴�
+ * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
+ * 鐗堟湰锛歏1.0.0
+ * 鎻忚堪锛�
+ *
+ * ----------------------------------------------------------------
+ * 淇敼浜猴細
+ * 淇敼鏃堕棿锛�
+ * 鐗堟湰锛歏1.0.1
+ * 淇敼璇存槑锛�
+ * 
+ *----------------------------------------------------------------*/
+#endregion << 鐗� 鏈� 娉� 閲� >>
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoRepository
+{
+    public interface ITaskExecuteDetailRepository: IRepository<Dt_TaskExecuteDetail>
+    {
+        
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskRepository.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskRepository.cs"
new file mode 100644
index 0000000..1b36db9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/ITaskRepository.cs"
@@ -0,0 +1,32 @@
+锘�#region << 鐗� 鏈� 娉� 閲� >>
+/*----------------------------------------------------------------
+ * 鍛藉悕绌洪棿锛歐IDESEAWCS_ITaskInfoRepository
+ * 鍒涘缓鑰咃細鑳$搴�
+ * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
+ * 鐗堟湰锛歏1.0.0
+ * 鎻忚堪锛�
+ *
+ * ----------------------------------------------------------------
+ * 淇敼浜猴細
+ * 淇敼鏃堕棿锛�
+ * 鐗堟湰锛歏1.0.1
+ * 淇敼璇存槑锛�
+ * 
+ *----------------------------------------------------------------*/
+#endregion << 鐗� 鏈� 娉� 閲� >>
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoRepository
+{
+    public interface ITaskRepository : IRepository<Dt_Task>
+    {
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/WIDESEAWCS_ITaskInfoRepository.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/WIDESEAWCS_ITaskInfoRepository.csproj"
new file mode 100644
index 0000000..3732ca9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/WIDESEAWCS_ITaskInfoRepository.csproj"
@@ -0,0 +1,13 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<ImplicitUsings>enable</ImplicitUsings>
+		<Nullable>enable</Nullable>
+	</PropertyGroup>
+
+	<ItemGroup>
+	  <ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+	</ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs"
new file mode 100644
index 0000000..c2f8e3b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskExecuteDetailService.cs"
@@ -0,0 +1,39 @@
+锘�#region << 鐗� 鏈� 娉� 閲� >>
+/*----------------------------------------------------------------
+ * 鍛藉悕绌洪棿锛歐IDESEAWCS_ITaskInfoService
+ * 鍒涘缓鑰咃細鑳$搴�
+ * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
+ * 鐗堟湰锛歏1.0.0
+ * 鎻忚堪锛�
+ *
+ * ----------------------------------------------------------------
+ * 淇敼浜猴細
+ * 淇敼鏃堕棿锛�
+ * 鐗堟湰锛歏1.0.1
+ * 淇敼璇存槑锛�
+ * 
+ *----------------------------------------------------------------*/
+#endregion << 鐗� 鏈� 娉� 閲� >>
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface ITaskExecuteDetailService : IService<Dt_TaskExecuteDetail>
+    {
+        void AddTaskExecuteDetail(int taskId, string description = "");
+
+        WebResponseContent GetDetailInfo(int taskNum);
+
+        WebResponseContent GetDetailDatas(int taskNum);
+
+        void AddTaskExecuteDetail(List<int> taskNums, string description = "");
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
new file mode 100644
index 0000000..fddffb1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -0,0 +1,221 @@
+锘�#region << 鐗� 鏈� 娉� 閲� >>
+/*----------------------------------------------------------------
+ * 鍛藉悕绌洪棿锛歐IDESEAWCS_ITaskInfoService
+ * 鍒涘缓鑰咃細鑳$搴�
+ * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
+ * 鐗堟湰锛歏1.0.0
+ * 鎻忚堪锛�
+ *
+ * ----------------------------------------------------------------
+ * 淇敼浜猴細
+ * 淇敼鏃堕棿锛�
+ * 鐗堟湰锛歏1.0.1
+ * 淇敼璇存槑锛�
+ * 
+ *----------------------------------------------------------------*/
+#endregion << 鐗� 鏈� 娉� 閲� >>
+
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Model.Models.System;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface ITaskService : IService<Dt_Task>
+    {
+        WebResponseContent AtOnceUpdate(int taskid);
+        /// <summary>
+        /// 浠撳偍灞�(鏁版嵁搴撹闂�)
+        /// </summary>
+        IRepository<Dt_Task> Repository { get; }
+
+        /// <summary>
+        /// 浠诲姟鎺掑簭
+        /// </summary>
+        Dictionary<string, OrderByType> TaskOrderBy { get; set; }
+
+        /// <summary>
+        /// 鎵�鏈夊叆搴撲换鍔$被鍨�
+        /// </summary>
+        List<int> TaskInboundTypes { get; }
+
+        /// <summary>
+        /// 鎵�鏈夊嚭搴撲换鍔$被鍨�
+        /// </summary>
+        List<int> TaskOutboundTypes { get; }
+
+        /// <summary>
+        /// 鎺ユ敹WMS浠诲姟淇℃伅
+        /// </summary>
+        /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        WebResponseContent ReceiveWMSTask([NotNull] List<WMSTaskDTO> taskDTOs);
+
+        /// <summary>
+        /// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
+        /// </summary>
+        /// <param name="palletCode">鎵樼洏鍙�</param>
+        /// <param name="sourceAddress">璧峰鍦板潃</param>
+        /// <returns></returns>
+        WebResponseContent RequestWMSTask(string palletCode, string sourceAddress);
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎鏈墽琛岀殑浠诲姟
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress);
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="nextAddress">涓嬩竴鍦板潃</param>
+        /// <returns></returns>
+        Dt_Task QueryExecutingConveyorLineTask(int taskNum, string nextAddress);
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟鍙锋煡璇换鍔�
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="nextAddress">涓嬩竴鍦板潃</param>
+        /// <returns></returns>
+        Dt_Task QueryTakNnmTask(int taskNum);
+
+        /// <summary>
+        /// 淇敼澶╄溅浠诲姟鐘舵�侊紝灏嗗叆搴撳彇璐ф墽琛屼腑淇敼涓哄叆搴撳彇璐у畬鎴�
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent UpdateTaskStatusToLine_Ingrab(Dt_Task task);
+
+        /// <summary>
+        /// 淇敼澶╄溅浠诲姟鐘舵�侊紝灏嗗嚭搴撳彇璐ф墽琛屼腑淇敼涓哄嚭搴撳彇璐у畬鎴�
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent UpdateTaskStatusToLine_Outgrab(Dt_Task task);
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏌ヨ杈撻�佺嚎瀹屾垚鐨勪换鍔�
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        Dt_Task QueryCompletedConveyorLineTask(int taskNum, string currentAddress);
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佷换鍔$被鍨嬪垎缁�(鍙��)鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鏂板鐨勪换鍔�
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="taskTypeGroup">浠诲姟绫诲瀷鍒嗙粍(鍙��)</param>
+        /// <returns></returns>
+        Dt_Task? QuertStackerCraneTask(string deviceNo, TaskTypeGroup? taskTypeGroup = null);
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鏂板鐨勪换鍔�
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
+        Dt_Task QueryStackerCraneTask(string deviceNo, string currentAddress = "");
+
+        /// <summary>
+        /// 鏌ヨ鏈夋病鏈夋墽琛屼腑鐨勪换鍔�
+        /// </summary>
+        /// <returns></returns>
+        Dt_Task QueryTasking();
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍏ュ簱绫诲瀷鐨勬柊澧炵殑浠诲姟
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
+        Dt_Task QueryStackerCraneInTask(string deviceNo, string currentAddress = "");
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑浠诲姟
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄锛屽彲鑳戒负null</returns>
+        Dt_Task QueryStackerCraneOutTask(string deviceNo, string currentAddress = "");
+
+        /// <summary>
+        /// 鏍规嵁璁惧缂栧彿銆佸綋鍓嶅湴鍧�鎸夌収浼樺厛绾т互鍙婂垱寤烘椂闂存帓搴忔煡璇换鍔℃睜鍑哄簱绫诲瀷鐨勬柊澧炵殑浠诲姟
+        /// </summary>
+        /// <param name="deviceNo">璁惧缂栧彿</param>
+        /// <param name="outStationCodes">褰撳墠鍦板潃</param>
+        /// <returns>杩斿洖浠诲姟瀹炰綋瀵硅薄闆嗗悎锛屽彲鑳戒负null</returns>
+        List<Dt_Task> QueryStackerCraneOutTasks(string deviceNo, List<string> outStationCodes);
+
+        /// <summary>
+        /// 鏇存柊浠诲姟寮傚父淇℃伅鏄剧ず
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="message">寮傚父淇℃伅</param>
+        WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message);
+
+        /// <summary>
+        /// 鏇存柊浠诲姟鐘舵�佷俊鎭紝骞跺悓姝ヨ嚦WMS
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="status">浠诲姟鐘舵��</param>
+        void UpdateTaskStatus(int taskNum, int status);
+
+        /// <summary>
+        /// 灏嗕换鍔$姸鎬佷慨鏀逛负涓嬩竴涓姸鎬�
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        WebResponseContent UpdateTaskStatusToNext(int taskNum);
+
+        /// <summary>
+        /// 灏嗕换鍔$姸鎬佷慨鏀逛负涓嬩竴涓姸鎬�
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋瀵硅薄</param>
+        /// <returns></returns>
+        WebResponseContent UpdateTaskStatusToNext([NotNull] Dt_Task task);
+
+        /// <summary>
+        /// 鏍规嵁浠诲姟鍙枫�佸綋鍓嶅湴鍧�鏇存柊浠诲姟浣嶇疆淇℃伅
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <param name="currentAddress">褰撳墠鍦板潃</param>
+        /// <returns></returns>
+        Dt_Task? UpdatePosition(int taskNum, string currentAddress);
+
+        /// <summary>
+        /// 浠诲姟瀹屾垚
+        /// </summary>
+        /// <param name="taskNum">浠诲姟缂栧彿</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        WebResponseContent StackCraneTaskCompleted(int taskNum,float weight);
+
+        /// <summary>
+        /// 鎭㈠鎸傝捣浠诲姟
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        WebResponseContent TaskStatusRecovery(int taskNum);
+
+        /// <summary>
+        /// 鍥炴粴浠诲姟鐘舵��
+        /// </summary>
+        /// <param name="taskNum">浠诲姟鍙�</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        WebResponseContent RollbackTaskStatusToLast(int taskNum);
+        Dt_Task QueryTaskState();
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskhtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskhtyService.cs"
new file mode 100644
index 0000000..8c24f9c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskhtyService.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface ITaskhtyService : IService<Dt_Task_hty>
+    {
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/WIDESEAWCS_ITaskInfoService.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/WIDESEAWCS_ITaskInfoService.csproj"
new file mode 100644
index 0000000..3098b31
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/WIDESEAWCS_ITaskInfoService.csproj"
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<ImplicitUsings>enable</ImplicitUsings>
+		<Nullable>enable</Nullable>
+		<Platforms>AnyCPU;x64</Platforms>
+	</PropertyGroup>
+
+	<ItemGroup>
+	  <ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+	</ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAlarmResetHsyServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAlarmResetHsyServer.cs"
new file mode 100644
index 0000000..345d81e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAlarmResetHsyServer.cs"
@@ -0,0 +1,52 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface IAlarmResetHsyServer : IService<Dt_AlarmResetHsy>
+    {
+        IRepository<Dt_AlarmResetHsy> Repository { get; }
+
+        /// <summary>
+        /// 娣诲姞
+        /// </summary>
+        /// <param name="alarmContent"></param>
+        /// <param name="resetStatus"></param>
+        /// <returns></returns>
+        WebResponseContent AddAlarmHsy(int deptid, string alarmContent, bool resetStatus);
+
+        /// <summary>
+        /// 鏍规嵁杞ㄩ亾绔欐煡鐪嬭琛ㄧ殑鍏ㄩ儴淇℃伅锛屾寜鐓х姸鎬佷负ture鍜屾椂闂存渶鏂版潵鎺掑簭
+        /// </summary>
+        /// <param name="deptid">杞ㄩ亾绔�</param>
+        /// <returns></returns>
+        WebResponseContent GetWebSocketInfo(int deptid);
+
+
+        /// 灏嗚〃涓姸鎬佷负true鐨勬敼涓篺alse,鏍规嵁褰撳墠椤圭洰鐨勯儴闂╥d鏉�
+        /// </summary>
+        /// <param name="status"></param>
+        /// <returns></returns>
+        WebResponseContent BecomeTrue();
+
+        /// <summary>
+        /// 涓婃父妫�淇亾淇℃伅
+        /// </summary>
+        WebResponseContent UpstreamInspectionRoad(UpstreamIDTO upstreamIDTO);
+
+        /// <summary>
+        /// 鍒犻櫎璇ヨ建閬撶珯鐨勬姤璀︿俊鍙�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent DeleteAllinform();
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAuthorizationRecordServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAuthorizationRecordServer.cs"
new file mode 100644
index 0000000..109f0ed
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IAuthorizationRecordServer.cs"
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface IAuthorizationRecordServer : IService<Dt_AuthorizationRecord>
+    {
+        IRepository<Dt_AuthorizationRecord> Repository { get; }
+      
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IDepartmentService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IDepartmentService.cs"
new file mode 100644
index 0000000..4467ec4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IDepartmentService.cs"
@@ -0,0 +1,25 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITelescopicService
+{
+    public interface IDepartmentService : IService<Dt_Department>
+    {
+        IRepository<Dt_Department> Repository { get; }
+
+
+       
+
+
+    }
+
+
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IFaceRecognitionServer .cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IFaceRecognitionServer .cs"
new file mode 100644
index 0000000..d12d722
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IFaceRecognitionServer .cs"
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface IFaceRecognitionServer : IService<Dt_FaceRecognition>
+    {
+        IRepository<Dt_FaceRecognition> Repository { get; }
+      
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs"
new file mode 100644
index 0000000..4ab61c3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IIPaddressServer .cs"
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface IIPaddressServer : IService<Dt_CustomIPaddress>
+    {
+        IRepository<Dt_CustomIPaddress> Repository { get; }
+      
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ILoginhsyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ILoginhsyService.cs"
new file mode 100644
index 0000000..bf4b5ed
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ILoginhsyService.cs"
@@ -0,0 +1,34 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITelescopicService
+{
+    public interface ILoginhsyService : IService<Dt_Loginhsy>
+    {
+        IRepository<Dt_Loginhsy> Repository { get; }
+
+        /// <summary>
+        /// 鐧诲叆璁板綍
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent LoginRecord(PaginationDTO pagination);
+
+        /// <summary>
+        /// 閫�鍑烘椂闂�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent OutLoginTime(string account);
+        
+       
+    }
+
+    
+  }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs"
new file mode 100644
index 0000000..a0799f5
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceService.cs"
@@ -0,0 +1,74 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Microsoft.AspNetCore.JsonPatch.Operations;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITelescopicService
+{
+    public interface IMaintenanceService:IService<Dt_Maintenance>
+    {
+        IRepository<Dt_Maintenance> Repository { get; }
+
+       /// <summary>
+       /// 灞曠ず璁剧疆妫�淇潈闄�
+       /// </summary>
+       /// <returns></returns>
+        WebResponseContent ShowMaintence(PaginationDTO pagination);
+
+        /// <summary>
+        /// 灞曠ず鍦ㄦ淇汉鍛樼洃鎺�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent PersonnelMonitoring(PaginationDTO pagination);
+
+        /// <summary>
+        /// 鏇存敼鐘舵�侊紝寮哄埗涓嬬嚎
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        WebResponseContent RunOperation(int id, string account, string LocalIP);
+
+        WebResponseContent ChangeTasState(int id);
+
+        /// <summary>
+        /// 妫�淇搷浣滆褰�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent MaintenanceOperationRecord(PaginationDTO pagination);
+
+
+        //寮�濮嬫淇拰缁撴潫妫�淇紙灞曠ず褰撳墠鐧诲叆鐢ㄦ埛鐨勬淇换鍔★級
+        WebResponseContent MaintenanceTasksOfTheDay(string account);
+
+        /// <summary>
+        /// 寮�濮嬫淇�
+        /// </summary>
+        /// <param name="id">鐢ㄦ埛id</param>
+        /// <returns></returns>
+        WebResponseContent StartMaintenceTask(string account, string LocalIP);
+
+        /// <summary>
+        /// 缁撴潫妫�淇�
+        /// </summary>
+        /// <param name="id">鐢ㄦ埛id</param>
+        /// <returns></returns>
+        WebResponseContent StopMaintenanceTask(string account,string LocalIP);
+
+        /// <summary>
+        ///  灞曠ず寮�濮嬫淇汉鍛�(鍓嶇娌℃湁浣跨敤鍒�)
+        /// </summary>
+        /// <param name="status">妫�淇姸鎬�</param>
+        /// <returns></returns>
+        WebResponseContent YShowStartTake();
+
+    }
+
+   
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceTeamService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceTeamService.cs"
new file mode 100644
index 0000000..e55647b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IMaintenanceTeamService.cs"
@@ -0,0 +1,29 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITelescopicService
+{
+    public interface IMaintenanceTeamService : IService<Dt_MaintenanceTeam>
+    {
+        IRepository<Dt_MaintenanceTeam> Repository { get; }
+
+
+        /// <summary>
+        /// 妫�淇缃褰�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent MaintenanceSettingRecord(PaginationDTO pagination);
+
+
+    }
+
+
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IParametersService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IParametersService.cs"
new file mode 100644
index 0000000..6d9420f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IParametersService.cs"
@@ -0,0 +1,61 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITelescopicService
+{
+    public interface IParametersService : IService<Dt_Parameters>
+    {
+        IRepository<Dt_Parameters> Repository { get; }
+
+
+        /// <summary>
+        /// 鑷姩鎺у埗浼哥缉鏉嗙殑浼稿嚭鍜岀缉鍥為�熷害
+        /// </summary>
+        /// <param name="ExtendedState">浼�/鍑虹姸鎬�</param>
+        /// <returns></returns>
+        WebResponseContent automation(string ExtendedState);
+
+        /// <summary>
+        /// 鎵嬪姩鎺у埗锛屼几缂╂潌鐨勭缉鍥炲拰浼稿嚭閫熷害
+        /// </summary>
+        /// <param name="position">浼哥缉鏉嗙殑浣嶇疆锛堝乏鍙筹級</param>
+        /// <param name="ExtendedState">浼�/缂╃姸鎬�</param>
+        /// <returns></returns>
+        /// 
+        WebResponseContent ManualOperation(string position, string ExtendedState);
+
+
+        /// <summary>
+        /// 娣诲姞浼哥缉鏉嗛�熷害
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        WebResponseContent AddSpeed(SpeedDTO entity);
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠绋嬪簭鏈�鏂扮殑浼哥缉鏉嗛�熷害
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent BackfillSpeed();
+
+
+        /// <summary>
+        ///褰撹嚜鍔ㄤ几鍑洪渶瑕佹殏鍋滄椂锛屾殏鍋滄寜閽�
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent PauseButton();
+
+        /// <summary>
+        /// 浼哥缉鏉嗗綋鍓嶄綅缃�
+        /// </summary>
+        WebResponseContent CurrentLocation();
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ITeamCategoryServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ITeamCategoryServer.cs"
new file mode 100644
index 0000000..7a26df7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/ITeamCategoryServer.cs"
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface ITeamCategoryServer : IService<Dt_TeamCategory>
+    {
+        IRepository<Dt_TeamCategory> Repository { get; }
+      
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IUnitCategoryServer.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IUnitCategoryServer.cs"
new file mode 100644
index 0000000..4e11c77
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/IUnitCategoryServer.cs"
@@ -0,0 +1,19 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_ITaskInfoService
+{
+    public interface IUnitCategoryServer : IService<Dt_UnitCategory>
+    {
+        IRepository<Dt_UnitCategory> Repository { get; }
+      
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/WIDESEAWCS_ITelescopicService.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/WIDESEAWCS_ITelescopicService.csproj"
new file mode 100644
index 0000000..f04d644
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITelescopicService/WIDESEAWCS_ITelescopicService.csproj"
@@ -0,0 +1,19 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+    <Platforms>AnyCPU;x64</Platforms>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.9" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+    <ProjectReference Include="..\WIDESEAWCS_Model\WIDESEAWCS_Model.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs"
new file mode 100644
index 0000000..e455237
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationInfoService.cs"
@@ -0,0 +1,32 @@
+锘�
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_DTO.BasicInfo;
+
+namespace WIDESEAWCS_IWMSPart
+{
+    /// <summary>
+    /// 璐т綅淇℃伅涓氬姟鎺ュ彛灞�
+    /// </summary>
+    public interface ILocationInfoService : IService<Dt_LocationInfo>
+    {
+        IRepository<Dt_LocationInfo> Repository { get; }
+
+
+        WebResponseContent GetLocationLayer();
+
+        WebResponseContent GetLocationConfigs(int layer);
+
+        WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO);
+        WebResponseContent getlocation();
+
+        /// <summary>
+        /// 鏍规嵁閫夋嫨鐨勫叆搴撹鍒欏垎閰嶈揣浣�
+        /// </summary>
+        /// <param name="InMode"></param>
+        /// <returns></returns>
+        Dt_LocationInfo GetInLocation(int InMode);
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationStatusChangeRecordService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationStatusChangeRecordService.cs"
new file mode 100644
index 0000000..28fac0b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/ILocationStatusChangeRecordService.cs"
@@ -0,0 +1,15 @@
+锘�
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IWMSPart
+{
+    /// <summary>
+    /// 璐т綅鐘舵�佸彉鍔ㄨ褰曚笟鍔℃帴鍙e眰
+    /// </summary>
+    public interface ILocationStatusChangeRecordService : IService<Dt_LocationStatusChangeRecord>
+    {
+        IRepository<Dt_LocationStatusChangeRecord> Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetailService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetailService.cs"
new file mode 100644
index 0000000..751b9c3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetailService.cs"
@@ -0,0 +1,14 @@
+锘縰sing WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IWMSPart
+{
+    /// <summary>
+    /// 搴撳瓨鏄庣粏涓氬姟鎺ュ彛灞�
+    /// </summary>
+    public interface IStockInfoDetailService : IService<Dt_StockInfoDetail>
+    {
+        IRepository<Dt_StockInfoDetail> Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetail_HtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetail_HtyService.cs"
new file mode 100644
index 0000000..9ce54f6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoDetail_HtyService.cs"
@@ -0,0 +1,14 @@
+锘縰sing WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IWMSPart
+{
+    /// <summary>
+    /// 搴撳瓨鏄庣粏鍘嗗彶淇℃伅涓氬姟鎺ュ彛灞�
+    /// </summary>
+    public interface IStockInfoDetail_HtyService : IService<Dt_StockInfoDetail_Hty>
+    {
+        IRepository<Dt_StockInfoDetail_Hty> Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoService.cs"
new file mode 100644
index 0000000..dbe2765
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfoService.cs"
@@ -0,0 +1,14 @@
+锘縰sing WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IWMSPart
+{
+    /// <summary>
+    /// 搴撳瓨澶磋〃涓氬姟鎺ュ彛灞�
+    /// </summary>
+    public interface IStockInfoService : IService<Dt_StockInfo>
+    {
+        IRepository<Dt_StockInfo> Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfo_HtyService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfo_HtyService.cs"
new file mode 100644
index 0000000..9309ecc
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockInfo_HtyService.cs"
@@ -0,0 +1,15 @@
+锘�
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IWMSPart
+{
+    /// <summary>
+    /// 搴撳瓨澶磋〃鍘嗗彶淇℃伅涓氬姟鎺ュ彛灞�
+    /// </summary>
+    public interface IStockInfo_HtyService : IService<Dt_StockInfo_Hty>
+    {
+        IRepository<Dt_StockInfo_Hty> Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockQuantityChangeRecordService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockQuantityChangeRecordService.cs"
new file mode 100644
index 0000000..fd329b5
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/IStockQuantityChangeRecordService.cs"
@@ -0,0 +1,15 @@
+锘�
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_Core.BaseServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_IWMSPart
+{
+    /// <summary>
+    /// 搴撳瓨鏁伴噺鍙樺姩璁板綍涓氬姟鎺ュ彛灞�
+    /// </summary>
+    public interface IStockQuantityChangeRecordService : IService<Dt_StockQuantityChangeRecord>
+    {
+        IRepository<Dt_StockQuantityChangeRecord> Repository { get; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/WIDESEAWCS_IWMSPart.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/WIDESEAWCS_IWMSPart.csproj"
new file mode 100644
index 0000000..1c9789d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_IWMSPart/WIDESEAWCS_IWMSPart.csproj"
@@ -0,0 +1,14 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <TargetFramework>net6.0</TargetFramework>
+    <ImplicitUsings>enable</ImplicitUsings>
+    <Nullable>enable</Nullable>
+    <Platforms>AnyCPU;x64</Platforms>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <ProjectReference Include="..\WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/LoginInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/LoginInfo.cs"
new file mode 100644
index 0000000..54f2045
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/LoginInfo.cs"
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Model
+{
+    public class LoginInfo
+    {
+        public string UserName { get; set; }
+
+        public string Password { get; set; }
+
+        /// <summary>
+        /// 浜鸿劯璇嗗埆
+        /// </summary>
+        public string? path { get; set; }
+
+
+        /// <summary>
+        /// 鐧惧害浜戝垎缁刦ace琛ㄤ腑鐨凣roupid
+        /// </summary>
+        //public string? groupid { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Dt_Department.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Dt_Department.cs"
new file mode 100644
index 0000000..28af2eb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Dt_Department.cs"
@@ -0,0 +1,26 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+using SqlSugar;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_Department), "閮ㄩ棬琛�")]
+    public class Dt_Department : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int  Id{ get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable =true,Length =50,ColumnDescription ="閮ㄩ棬鍚嶇О")]
+        public string DepartmentName { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleAuthor.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleAuthor.cs"
new file mode 100644
index 0000000..61aa145
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleAuthor.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Model
+{
+    public class RoleAuthor
+    {
+        public int menuId { get; set; }
+        public string actions { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleNodes.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleNodes.cs"
new file mode 100644
index 0000000..6950214
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/RoleNodes.cs"
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Model.Models.System
+{
+    public class RoleNodes
+    {
+        public int Id { get; set; }
+        public int ParentId { get; set; }
+        public string RoleName { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Actions.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Actions.cs"
new file mode 100644
index 0000000..353d41b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Actions.cs"
@@ -0,0 +1,16 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Model.Models
+{
+    public class Sys_Actions
+    {
+        public int ActionId { get; set; }
+        public int MenuId { get; set; }
+        public string Text { get; set; }
+        public string Value { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Department.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Department.cs"
new file mode 100644
index 0000000..d99dcaf
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Department.cs"
@@ -0,0 +1,57 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Sys_Department", "缁勭粐鏋舵瀯"), MultiTenant]
+    public class Sys_Department : BaseEntity
+    {
+        /// <summary>
+        /// 缁勭粐ID
+        /// </summary>
+        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "缁勭粐ID")]
+        public int DepartmentId { get; set; }
+
+        /// <summary>
+        /// 缁勭粐鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "缁勭粐鍚嶇О")]
+        public string DepartmentName { get; set; }
+
+        /// <summary>
+        /// 缁勭粐缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "缁勭粐缂栧彿")]
+        public string DepartmentCode { get; set; }
+
+        /// <summary>
+        /// 涓婄骇缁勭粐
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "涓婄骇缁勭粐")]
+        public int ParentId { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "閮ㄩ棬绫诲瀷")]
+        public string DepartmentType { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍙敤
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁鍙敤")]
+        public int Enable { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 2000, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Dictionary.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Dictionary.cs"
new file mode 100644
index 0000000..c632464
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Dictionary.cs"
@@ -0,0 +1,95 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Filter;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [MultiTenant]
+    [Exporter(ExporterHeaderFilter = typeof(ExporterHeaderFilter))]
+    [SugarTable("Sys_Dictionary", "瀛楀吀鏁版嵁")]
+    public class Sys_Dictionary : BaseEntity
+    {
+        /// <summary>
+        /// 瀛楀吀ID
+        /// </summary>
+        [ExporterHeader(DisplayName = "瀛楀吀ID")]
+        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "瀛楀吀ID")]
+        public int DicId { get; set; }
+
+        /// <summary>
+        /// 閰嶇疆椤�
+        /// </summary>
+        [ExporterHeader(DisplayName = "閰嶇疆椤�")]
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "閰嶇疆椤�")]
+        public string Config { get; set; }
+
+        /// <summary>
+        /// 鏁版嵁搴撴湇鍔�
+        /// </summary>
+        [ExporterHeader(DisplayName = "鏁版嵁搴撴湇鍔�")]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鏁版嵁搴撴湇鍔�")]
+        public string DBServer { get; set; }
+
+        /// <summary>
+        /// Sql璇彞
+        /// </summary>
+        [ExporterHeader(DisplayName = "Sql璇彞")]
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "Sql璇彞")]
+        public string DBSql { get; set; }
+
+        /// <summary>
+        /// 瀛楀吀鍚嶇О
+        /// </summary>
+        [ExporterHeader(DisplayName = "瀛楀吀鍚嶇О")]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "瀛楀吀鍚嶇О")]
+        public string DicName { get; set; }
+
+        /// <summary>
+        /// 瀛楀吀缂栧彿
+        /// </summary>
+        [ExporterHeader(DisplayName = "瀛楀吀缂栧彿")]
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "瀛楀吀缂栧彿")]
+        public string DicNo { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍚敤
+        /// </summary>
+        [ExporterHeader(DisplayName = "鏄惁鍚敤")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁鍚敤")]
+        public byte? Enable { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭鍙�
+        /// </summary>
+        [ExporterHeader(DisplayName = "鎺掑簭鍙�")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鎺掑簭鍙�")]
+        public int? OrderNo { get; set; }
+
+        /// <summary>
+        /// 鐖剁骇ID
+        /// </summary>
+        [ExporterHeader(DisplayName = "鐖剁骇ID")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐖剁骇ID")]
+        public int ParentId { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ExporterHeader(DisplayName = "澶囨敞")]
+        [SugarColumn(IsNullable = true, Length = 2000, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 绯荤粺绫诲瀷
+        /// </summary>
+        [ExporterHeader(DisplayName = "绯荤粺绫诲瀷")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "绯荤粺绫诲瀷")]
+        public int SystemType { get; set; }
+
+        [ExporterHeader(IsIgnore = true)]
+        [Navigate(NavigateType.OneToMany, nameof(DicId),nameof(DicId)), SugarColumn(IsIgnore = true, IsNullable = true)]
+        public List<Sys_DictionaryList> DicList { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_DictionaryList.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_DictionaryList.cs"
new file mode 100644
index 0000000..bd9251a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_DictionaryList.cs"
@@ -0,0 +1,57 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+using SqlSugar;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Sys_DictionaryList", "瀛楀吀鏄庣粏"), MultiTenant]
+    public class Sys_DictionaryList : BaseEntity
+    {
+        /// <summary>
+        /// 瀛楀吀鍒楄〃ID
+        /// </summary>
+        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "瀛楀吀鍒楄〃ID")]
+        public int DicListId { get; set; }
+
+        /// <summary>
+        /// 鏁版嵁婧怲ext
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鏁版嵁婧怲ext")]
+        public string DicName { get; set; }
+
+        /// <summary>
+        /// 鏁版嵁婧怴alue
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鏁版嵁婧怴alue")]
+        public string DicValue { get; set; }
+
+        /// <summary>
+        /// 鏁版嵁婧怚D
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏁版嵁婧怚D")]
+        public int DicId { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍙敤
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁鍙敤")]
+        public byte? Enable { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鎺掑簭鍙�")]
+        public int? OrderNo { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 2000, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Log.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Log.cs"
new file mode 100644
index 0000000..f672396
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Log.cs"
@@ -0,0 +1,86 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Sys_Log), "鏃ュ織淇℃伅")]
+    public class Sys_Log
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 寮�濮嬫椂闂�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "寮�濮嬫椂闂�")]
+        public DateTime? BeginDate { get; set; }
+
+        /// <summary>
+        /// 鏃堕暱
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏃堕暱")]
+        public int? ElapsedTime { get; set; }
+
+        /// <summary>
+        /// 缁撴潫鏃堕棿
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "缁撴潫鏃堕棿")]
+        public DateTime EndDate { get; set; }
+
+        /// <summary>
+        /// 鏃ュ織绫诲瀷
+        /// </summary>
+        //[SugarColumn(IsNullable = true, ColumnDescription = "鏃ュ織绫诲瀷")]
+        //public DateTime LogType { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鍙傛暟
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = int.MaxValue, ColumnDescription = "璇锋眰鍙傛暟")]
+        public string RequestParam { get; set; }
+
+        /// <summary>
+        /// 鍝嶅簲鍙傛暟
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = int.MaxValue, ColumnDescription = "鍝嶅簲鍙傛暟")]
+        public string ResponseParam { get; set; }
+
+        /// <summary>
+        /// 鍝嶅簲鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍝嶅簲鐘舵��")]
+        public int? Success { get; set; }
+
+        /// <summary>
+        /// 璇锋眰鍦板潃
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 2000, ColumnDescription = "璇锋眰鍦板潃")]
+        public string Url { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛IP
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "鐢ㄦ埛IP")]
+        public string UserIP { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐢ㄦ埛鍚嶇О")]
+        public string UserName { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐢ㄦ埛涓婚敭")]
+        public int? User_Id { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Menu.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Menu.cs"
new file mode 100644
index 0000000..1953d3e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Menu.cs"
@@ -0,0 +1,87 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Sys_Menu", "鑿滃崟閰嶇疆"), MultiTenant]
+    public class Sys_Menu : BaseEntity
+    {
+        /// <summary>
+        /// 鑿滃崟ID
+        /// </summary>
+        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "鑿滃崟ID")]
+        public int MenuId { get; set; }
+
+        /// <summary>
+        /// 鑿滃崟鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鑿滃崟鍚嶇О")]
+        public string MenuName { get; set; }
+
+        /// <summary>
+        /// 鏉冮檺
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 2000, ColumnDescription = "鏉冮檺")]
+        public string Auth { get; set; }
+
+        /// <summary>
+        /// 鍥炬爣
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "鍥炬爣")]
+        public string Icon { get; set; }
+
+        /// <summary>
+        /// 鎻忚堪
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 2000, ColumnDescription = "鎻忚堪")]
+        public string Description { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍚敤
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁鍚敤")]
+        public byte? Enable { get; set; }
+
+        /// <summary>
+        /// 琛ㄥ悕
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "琛ㄥ悕")]
+        public string TableName { get; set; }
+
+        /// <summary>
+        /// 鐖剁骇ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐖剁骇ID")]
+        public int ParentId { get; set; }
+
+        /// <summary>
+        /// 璺緞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "璺緞")]
+        public string Url { get; set; }
+
+        /// <summary>
+        /// 鎺掑簭鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = true,ColumnDescription ="鎺掑簭鍙�")]
+        public int? OrderNo { get; set; }
+
+        /// <summary>
+        /// 鑿滃崟绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鑿滃崟绫诲瀷")]
+        public int? MenuType { get; set; }
+
+        [Navigate(NavigateType.OneToMany, nameof(ParentId), nameof(MenuId)), SugarColumn(IsIgnore = true, IsNullable = true)]
+        public List<Sys_Menu> Menus { get; set; }
+
+        [SugarColumn(IsIgnore = true)]
+        public List<Sys_Actions> Actions { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Role.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Role.cs"
new file mode 100644
index 0000000..a51b7cd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Role.cs"
@@ -0,0 +1,60 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Sys_Role", "瑙掕壊琛�"), MultiTenant]
+    public class Sys_Role : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "涓婚敭")]
+        public int RoleId { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, IsIgnore = true, Length = 50, ColumnDescription = "閮ㄩ棬鍚嶇О")]
+        public string DeptName { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "閮ㄩ棬涓婚敭")]
+        public int? DeptId { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍚敤
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁鍚敤")]
+        public byte Enable { get; set; }
+
+        /// <summary>
+        /// 鐖禝D
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐖禝D")]
+        public int ParentId { get; set; }
+
+        /// <summary>
+        /// 鏄惁鏄粍闀�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁鏄粍闀�")]
+        public int IsLeader { get; set; }
+
+        /// <summary>
+        /// 瑙掕壊鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "瑙掕壊鍚嶇О")]
+        public string RoleName { get; set; }
+
+        [Navigate(NavigateType.OneToMany, nameof(ParentId), nameof(RoleId)), SugarColumn(IsIgnore = true, IsNullable = true)]
+        public List<Sys_Role> Roles { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_RoleAuth.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_RoleAuth.cs"
new file mode 100644
index 0000000..1bb9bea
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_RoleAuth.cs"
@@ -0,0 +1,48 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 瑙掕壊韬唤楠岃瘉绠$悊琛�
+    /// </summary>
+    [SugarTable("Sys_RoleAuth", "瑙掕壊韬唤楠岃瘉绠$悊"), MultiTenant]
+    public class Sys_RoleAuth : BaseEntity
+    {
+        /// <summary>
+        /// 瑙掕壊韬唤楠岃瘉ID
+        /// </summary>
+        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "瑙掕壊韬唤楠岃瘉ID")]
+        public int AuthId { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛鏉冮檺
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "鐢ㄦ埛鏉冮檺")]
+        public string AuthValue { get; set; }
+
+        /// <summary>
+        /// 鑿滃崟ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鑿滃崟ID")]
+        public int MenuId { get; set; }
+
+        /// <summary>
+        /// 瑙掕壊ID
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "瑙掕壊ID")]
+        public int? RoleId { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛ID
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐢ㄦ埛ID")]
+        public int? UserId { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Tenant.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Tenant.cs"
new file mode 100644
index 0000000..36e292a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Tenant.cs"
@@ -0,0 +1,57 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Sys_Tenant", "绉熸埛")]
+    public class Sys_Tenant : BaseEntity
+    {
+        /// <summary>
+        /// 绉熸埛ID
+        /// </summary>
+        [SugarColumn(IsIdentity = true, IsPrimaryKey = true, ColumnDescription = "绉熸埛ID")]
+        public int TenantId { get; set; }
+
+        /// <summary>
+        /// 绉熸埛鍚嶇О
+        /// </summary>
+        [SugarColumn(Length = 200, IsNullable = false, ColumnDescription = "绉熸埛鍚嶇О")]
+        public string TenantName { get; set; }
+
+        /// <summary>
+        /// 绉熸埛绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "绉熸埛绫诲瀷")]
+        public int TenantType { get; set; }
+
+        /// <summary>
+        /// 鏁版嵁搴撶被鍨�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏁版嵁搴撶被鍨�")]
+        public int DbType { get; set; }
+
+        /// <summary>
+        /// 杩炴帴瀛楃涓�
+        /// </summary>
+        [SugarColumn(Length = 1000, IsNullable = false, ColumnDescription = "杩炴帴瀛楃涓�")]
+        public string ConnectionString { get; set; }
+
+        /// <summary>
+        /// 鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐘舵��")]
+        public int Status { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(Length = 2000, IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_User.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_User.cs"
new file mode 100644
index 0000000..c94a4cf
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_User.cs"
@@ -0,0 +1,182 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 鐢ㄦ埛淇℃伅琛�
+    /// </summary>
+    //[SugarTable("SysUserInfo")]
+    [SugarTable("Sys_User", "鐢ㄦ埛琛�")] //('鏁版嵁搴撹〃鍚�'锛�'鏁版嵁搴撹〃澶囨敞')
+    public class Sys_User : BaseEntity
+    {
+        /// <summary>
+        /// 鐢ㄦ埛ID
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "鐢ㄦ埛ID")]
+        public int User_Id { get; set; }
+
+        /// <summary>
+        ///甯愬彿
+        /// </summary>
+        [SugarColumn(Length = 100, IsNullable = false, ColumnDescription = "甯愬彿")]
+        public string UserName { get; set; }
+
+        /// <summary>
+        /// 浜鸿劯璇嗗埆缁�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "浜鸿劯璇嗗埆缁�")]
+        public string Log_id { get; set; }
+
+        /// <summary>
+        /// 浜鸿劯璇嗗埆token
+        /// </summary>
+        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "浜鸿劯璇嗗埆token")]
+        public string Face_token { get; set; }
+        /// <summary>
+        ///鍗″彿
+        /// </summary>
+        [SugarColumn( IsNullable = true, ColumnDescription = "鍗″彿")]
+        public int CardNumber { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍗曚綅")]
+        public string Unit {  get; set; }
+
+        /// <summary>
+        /// 鐝粍
+        /// </summary>
+        [SugarColumn(IsNullable = true,Length =50, ColumnDescription = "鍗″彿")]
+        public string Userteam {  get; set; }
+
+        /// <summary>
+        /// 瑙掕壊ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "瑙掕壊ID")]
+        public int Role_Id { get; set; }
+
+
+        /// <summary>
+        /// 鏄惁鏄粍闀�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏄惁鏄粍闀�")]
+        public int IsLeader { get; set; }
+
+        /// <summary>
+        /// 瑙掕壊鍚嶇О
+        /// </summary>
+        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "瑙掕壊鍚嶇О")]
+        public string RoleName { get; set; }
+
+        /// <summary>
+        /// 鐢佃瘽
+        /// </summary>
+        [SugarColumn(Length = 11, IsNullable = true, ColumnDescription = "鐢佃瘽")]
+        public string PhoneNo { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+
+        /// <summary>
+        /// 瀵嗙爜
+        /// </summary>
+        [SugarColumn(Length = 200, IsNullable = false, ColumnDescription = "瀵嗙爜")]
+        public string UserPwd { get; set; }
+
+        /// <summary>
+        /// 鐪熷疄濮撳悕
+        /// </summary>
+        [SugarColumn(Length = 100, IsNullable = false, ColumnDescription = "鐪熷疄濮撳悕")]
+        public string UserTrueName { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬
+        /// </summary>
+        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "閮ㄩ棬")]
+        public string DeptName { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬ID
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "閮ㄩ棬ID")]
+        public int? Dept_Id { get; set; }
+
+        /// <summary>
+        /// 閭
+        /// </summary>
+        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "閭")]
+        public string Email { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍙敤
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁鍙敤")]
+        public byte Enable { get; set; }
+
+        /// <summary>
+        /// 鎬у埆
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鎬у埆")]
+        public int? Gender { get; set; }
+
+        /// <summary>
+        /// 澶村儚
+        /// </summary>
+        [SugarColumn(Length = 500, IsNullable = true, ColumnDescription = "澶村儚")]
+        public string HeadImageUrl { get; set; }
+
+        /// <summary>
+        /// 鏈�鍚庡瘑鐮佷慨鏀规椂闂�
+        /// </summary>
+        [SugarColumn(IsNullable = true, IsOnlyIgnoreInsert = true, ColumnDescription = "鏈�鍚庡瘑鐮佷慨鏀规椂闂�")]
+        public DateTime? LastModifyPwdDate { get; set; }
+
+        /// <summary>
+        /// 鍦板潃
+        /// </summary>
+        [SugarColumn(Length = 200, IsNullable = true, ColumnDescription = "鍦板潃")]
+        public string Address { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳鏃堕棿
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "瀹℃牳鏃堕棿")]
+        public DateTime? AuditDate { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "瀹℃牳鐘舵��")]
+        public int? AuditStatus { get; set; }
+
+        /// <summary>
+        /// 瀹℃牳浜�
+        /// </summary>
+        [SugarColumn(Length = 100, IsNullable = true, ColumnDescription = "瀹℃牳浜�")]
+        public string Auditor { get; set; }
+
+        /// <summary>
+        /// 浠ょ墝
+        /// </summary>
+        [SugarColumn(Length = 500, IsNullable = true, ColumnDescription = "浠ょ墝")]
+        public string Token { get; set; }
+
+        /// <summary>
+        /// 绉熸埛ID
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "绉熸埛ID",DefaultValue = "0")]
+        public long TenantId { get; set; }
+        
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_UserFace.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_UserFace.cs"
new file mode 100644
index 0000000..3465e7b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_UserFace.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SqlSugar.SugarTable("Sys_UserFace", "鐢ㄦ埛浜鸿劯璇嗗埆琛�")]
+    public class Sys_UserFace
+    {
+        [SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭ID")]
+        public int Id { get; set; }
+
+        [SqlSugar.SugarColumn(ColumnDescription = "鐢ㄦ埛ID", IsNullable = false)]
+        public int User_Id { get; set; }
+
+        [SqlSugar.SugarColumn(Length = 100, IsNullable = false, ColumnDescription = "鐢ㄦ埛鍚�")]
+        public string UserName { get; set; }
+
+        [SqlSugar.SugarColumn(Length = 500, IsNullable = false, ColumnDescription = "鍥剧墖鍚嶇О")]
+        public string UserFaceImageName { get; set; }
+
+        [SqlSugar.SugarColumn(Length = 2000, IsNullable = false, ColumnDescription = "鍥剧墖璺緞")]
+        public string UserFaceImagePath { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/UserPermissions.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/UserPermissions.cs"
new file mode 100644
index 0000000..bc241c9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/UserPermissions.cs"
@@ -0,0 +1,17 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Model.Models.System
+{
+    public class UserPermissions
+    {
+        public int Id { get; set; }
+        public int Pid { get; set; }
+        public string Text { get; set; }
+        public bool IsApp { get; set; }
+        public List<Sys_Actions> Actions { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs"
new file mode 100644
index 0000000..a6dc704
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_batchInfo.cs"
@@ -0,0 +1,41 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 鎵规淇℃伅
+    /// </summary>
+    [SugarTable(nameof(dt_batchInfo), "鎵规淇℃伅")]
+    public class dt_batchInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鍏ュ簱鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍏ュ簱鎵规鍙�")]
+        public string InBatch { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍑哄簱鎵规鍙�")]
+        public string OutBatch { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡淇℃伅锛岃嚜浜ф垨澶栬喘 0鑷骇 1澶栬喘
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐗╂枡淇℃伅锛岃嚜浜ф垨澶栬喘")]
+        public int materType { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errormsgInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errormsgInfo.cs"
new file mode 100644
index 0000000..6ef3631
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_errormsgInfo.cs"
@@ -0,0 +1,35 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 閿欒淇℃伅
+    /// </summary>
+    [SugarTable(nameof(dt_errormsgInfo), "閿欒淇℃伅")]
+    public class dt_errormsgInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鎻忚堪
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎻忚堪")]
+        public string mesg { get; set; }
+
+        /// <summary>
+        /// 閿欒淇℃伅
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "閿欒淇℃伅")]
+        public string errormsg { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_outstockinfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_outstockinfo.cs"
new file mode 100644
index 0000000..eab80e7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_outstockinfo.cs"
@@ -0,0 +1,31 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    public class dt_outstockinfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍑哄簱 0涓嶅嚭搴�  1鍑哄簱
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁鍑哄簱")]
+        public int isout { get; set; }
+
+        /// <summary>
+        /// 1鍏堝叆搴�  2鐩存帴浠庡叆搴撳彛鍙栬揣鍒板嚭搴撳彛
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁鍑哄簱")]
+        public int InOut { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs"
new file mode 100644
index 0000000..5e7f39b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_stationInfo.cs"
@@ -0,0 +1,34 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    public class dt_stationInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+        /// <summary>
+        /// 琛�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "琛�")]
+        public int Row { get; set; }
+        /// <summary>
+        /// 鍒�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "琛�")]
+        public int Column { get; set; }
+        /// <summary>
+        /// 鎻忚堪淇℃伅
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎻忚堪淇℃伅")]
+        public string msg { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_storagemode.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_storagemode.cs"
new file mode 100644
index 0000000..84c3e2c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/dt_storagemode.cs"
@@ -0,0 +1,24 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    public class dt_storagemode : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+        /// <summary>
+        /// 鍏ュ簱妯″紡
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍏ュ簱妯″紡")]
+        public int storagemode { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
new file mode 100644
index 0000000..cc61ae8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task.cs"
@@ -0,0 +1,152 @@
+锘�#region << 鐗� 鏈� 娉� 閲� >>
+/*----------------------------------------------------------------
+ * 鍛藉悕绌洪棿锛歐IDESEAWCS_Model.Models.TaskInfo
+ * 鍒涘缓鑰咃細鑳$搴�
+ * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
+ * 鐗堟湰锛歏1.0.0
+ * 鎻忚堪锛�
+ *
+ * ----------------------------------------------------------------
+ * 淇敼浜猴細
+ * 淇敼鏃堕棿锛�
+ * 鐗堟湰锛歏1.0.1
+ * 淇敼璇存槑锛�
+ * 
+ *----------------------------------------------------------------*/
+#endregion << 鐗� 鏈� 娉� 閲� >>
+
+using Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_Task), "浠诲姟淇℃伅")]
+    public class Dt_Task : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "涓婚敭")]
+        [ExporterHeader(DisplayName = "涓婚敭")]
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int TaskId { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟鍙�")]
+        [ExporterHeader(DisplayName = "浠诲姟鍙�")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟鍙�")]
+        public int TaskNum { get; set; }
+
+        /// <summary>
+        /// 鎵樼洏缂栧彿
+        /// </summary>
+        [ImporterHeader(Name = "鎵樼洏缂栧彿")]
+        [ExporterHeader(DisplayName = "鎵樼洏缂栧彿")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
+        public string PalletCode { get; set; }
+
+        /// <summary>
+        /// 宸烽亾鍙�
+        /// </summary>
+        [ImporterHeader(Name = "宸烽亾鍙�")]
+        [ExporterHeader(DisplayName = "宸烽亾鍙�")]
+        [SugarColumn(IsNullable = false, Length = 10, ColumnDescription = "宸烽亾鍙�")]
+        public string Roadway { get; set; }
+
+        /// <summary>
+        /// 浠诲姟绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟绫诲瀷")]
+        [ExporterHeader(DisplayName = "浠诲姟绫诲瀷")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟绫诲瀷")]
+        public int TaskType { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鐘舵��
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟鐘舵��")]
+        [ExporterHeader(DisplayName = "浠诲姟鐘舵��")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟鐘舵��")]
+        public int TaskState { get; set; }
+
+        /// <summary>
+        /// 璧峰鍦板潃
+        /// </summary>
+        [ImporterHeader(Name = "璧峰鍦板潃")]
+        [ExporterHeader(DisplayName = "璧峰鍦板潃")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "璧峰鍦板潃")]
+        public string SourceAddress { get; set; }
+
+        /// <summary>
+        /// 鐩爣鍦板潃
+        /// </summary>
+        [ImporterHeader(Name = "鐩爣鍦板潃")]
+        [ExporterHeader(DisplayName = "鐩爣鍦板潃")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鐩爣鍦板潃")]
+        public string TargetAddress { get; set; }
+
+        /// <summary>
+        /// 褰撳墠浣嶇疆
+        /// </summary>
+        [ImporterHeader(Name = "褰撳墠浣嶇疆")]
+        [ExporterHeader(DisplayName = "褰撳墠浣嶇疆")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "褰撳墠浣嶇疆")]
+        public string CurrentAddress { get; set; }
+
+        /// <summary>
+        /// 涓嬩竴鍦板潃  鐢ㄦ潵淇濆瓨鐩搁偦鐨勮揣浣嶄俊鎭�
+        /// </summary>
+        [ImporterHeader(Name = "涓嬩竴鍦板潃")]
+        [ExporterHeader(DisplayName = "涓嬩竴鍦板潃")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "涓嬩竴鍦板潃")]
+        public string NextAddress { get; set; }
+
+        /// <summary>
+        /// 寮傚父淇℃伅
+        /// </summary>
+        [ImporterHeader(Name = "寮傚父淇℃伅")]
+        [ExporterHeader(DisplayName = "寮傚父淇℃伅")]
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "寮傚父淇℃伅")]
+        public string? ExceptionMessage { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        [ImporterHeader(Name = "浼樺厛绾�")]
+        [ExporterHeader(DisplayName = "浼樺厛绾�")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浼樺厛绾�")]
+        public int Grade { get; set; }
+
+        /// <summary>
+        /// WMS浠诲姟涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "WMS浠诲姟涓婚敭")]
+        [ExporterHeader(DisplayName = "WMS浠诲姟涓婚敭")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "WMS浠诲姟涓婚敭")]
+        public int WMSId { get; set; }
+
+        /// <summary>
+        /// 浠诲姟涓嬪彂鏃堕棿
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟涓嬪彂鏃堕棿")]
+        [ExporterHeader(DisplayName = "浠诲姟涓嬪彂鏃堕棿")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟涓嬪彂鏃堕棿")]
+        public DateTime? Dispatchertime { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ImporterHeader(Name = "澶囨敞")]
+        [ExporterHeader(DisplayName = "澶囨敞")]
+        [SugarColumn(IsNullable = true,  ColumnDescription = "澶囨敞")]
+        public int Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_TaskExecuteDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_TaskExecuteDetail.cs"
new file mode 100644
index 0000000..81d132c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_TaskExecuteDetail.cs"
@@ -0,0 +1,112 @@
+锘�#region << 鐗� 鏈� 娉� 閲� >>
+/*----------------------------------------------------------------
+ * 鍛藉悕绌洪棿锛歐IDESEAWCS_Model.Models.TaskInfo
+ * 鍒涘缓鑰咃細鑳$搴�
+ * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
+ * 鐗堟湰锛歏1.0.0
+ * 鎻忚堪锛�
+ *
+ * ----------------------------------------------------------------
+ * 淇敼浜猴細
+ * 淇敼鏃堕棿锛�
+ * 鐗堟湰锛歏1.0.1
+ * 淇敼璇存槑锛�
+ * 
+ *----------------------------------------------------------------*/
+#endregion << 鐗� 鏈� 娉� 閲� >>
+
+using Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_TaskExecuteDetail), "浠诲姟鎵ц鏄庣粏")]
+    public class Dt_TaskExecuteDetail : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "涓婚敭")]
+        [ExporterHeader(DisplayName = "涓婚敭")]
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int TaskDetailId { get; set; }
+
+        /// <summary>
+        /// 浠诲姟涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟涓婚敭")]
+        [ExporterHeader(DisplayName = "浠诲姟涓婚敭")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟涓婚敭")]
+        public int TaskId { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟鍙�")]
+        [ExporterHeader(DisplayName = "浠诲姟鍙�")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟鍙�")]
+        public int TaskNum { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鐘舵��
+        /// </summary>
+        [ImporterHeader(Name = "涓婚敭")]
+        [ExporterHeader(DisplayName = "涓婚敭")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟鐘舵��")]
+        public int TaskState { get; set; }
+
+        /// <summary>
+        /// 褰撳墠浣嶇疆
+        /// </summary>
+        [ImporterHeader(Name = "褰撳墠浣嶇疆")]
+        [ExporterHeader(DisplayName = "褰撳墠浣嶇疆")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "褰撳墠浣嶇疆")]
+        public string CurrentAddress { get; set; }
+
+        /// <summary>
+        /// 涓嬩竴鍦板潃
+        /// </summary>
+        [ImporterHeader(Name = "涓嬩竴鍦板潃")]
+        [ExporterHeader(DisplayName = "涓嬩竴鍦板潃")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "涓嬩竴鍦板潃")]
+        public string NextAddress { get; set; }
+
+        /// <summary>
+        /// 鏄惁浜哄伐鎿嶄綔
+        /// </summary>
+        [ImporterHeader(Name = "鏄惁浜哄伐鎿嶄綔")]
+        [ExporterHeader(DisplayName = "鏄惁浜哄伐鎿嶄綔")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁浜哄伐鎿嶄綔")]
+        public bool IsManual { get; set; }
+
+        /// <summary>
+        /// 鏄惁姝e父
+        /// </summary>
+        [ImporterHeader(Name = "鏄惁姝e父")]
+        [ExporterHeader(DisplayName = "鏄惁姝e父")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁姝e父")]
+        public bool IsNormal { get; set; }
+
+        /// <summary>
+        /// 鎻忚堪
+        /// </summary>
+        [ImporterHeader(Name = "鎻忚堪")]
+        [ExporterHeader(DisplayName = "鎻忚堪")]
+        [SugarColumn(IsNullable = false, Length = int.MaxValue, ColumnDescription = "鎻忚堪")]
+        public string Description { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ImporterHeader(Name = "澶囨敞")]
+        [ExporterHeader(DisplayName = "澶囨敞")]
+        [SugarColumn(IsNullable = true, Length = 255, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs"
new file mode 100644
index 0000000..df23548
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/TaskInfo/Dt_Task_hty.cs"
@@ -0,0 +1,152 @@
+锘�#region << 鐗� 鏈� 娉� 閲� >>
+/*----------------------------------------------------------------
+ * 鍛藉悕绌洪棿锛歐IDESEAWCS_Model.Models.TaskInfo
+ * 鍒涘缓鑰咃細鑳$搴�
+ * 鍒涘缓鏃堕棿锛�2024/8/2 16:13:36
+ * 鐗堟湰锛歏1.0.0
+ * 鎻忚堪锛�
+ *
+ * ----------------------------------------------------------------
+ * 淇敼浜猴細
+ * 淇敼鏃堕棿锛�
+ * 鐗堟湰锛歏1.0.1
+ * 淇敼璇存槑锛�
+ * 
+ *----------------------------------------------------------------*/
+#endregion << 鐗� 鏈� 娉� 閲� >>
+
+using Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable(nameof(Dt_Task_hty), "浠诲姟淇℃伅")]
+    public class Dt_Task_hty : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "涓婚敭")]
+        [ExporterHeader(DisplayName = "涓婚敭")]
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int TaskId { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟鍙�")]
+        [ExporterHeader(DisplayName = "浠诲姟鍙�")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟鍙�")]
+        public int TaskNum { get; set; }
+
+        /// <summary>
+        /// 鎵樼洏缂栧彿
+        /// </summary>
+        [ImporterHeader(Name = "鎵樼洏缂栧彿")]
+        [ExporterHeader(DisplayName = "鎵樼洏缂栧彿")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
+        public string PalletCode { get; set; }
+
+        /// <summary>
+        /// 宸烽亾鍙�
+        /// </summary>
+        [ImporterHeader(Name = "宸烽亾鍙�")]
+        [ExporterHeader(DisplayName = "宸烽亾鍙�")]
+        [SugarColumn(IsNullable = false, Length = 10, ColumnDescription = "宸烽亾鍙�")]
+        public string Roadway { get; set; }
+
+        /// <summary>
+        /// 浠诲姟绫诲瀷
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟绫诲瀷")]
+        [ExporterHeader(DisplayName = "浠诲姟绫诲瀷")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟绫诲瀷")]
+        public int TaskType { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鐘舵��
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟鐘舵��")]
+        [ExporterHeader(DisplayName = "浠诲姟鐘舵��")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠诲姟鐘舵��")]
+        public int TaskState { get; set; }
+
+        /// <summary>
+        /// 璧峰鍦板潃
+        /// </summary>
+        [ImporterHeader(Name = "璧峰鍦板潃")]
+        [ExporterHeader(DisplayName = "璧峰鍦板潃")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "璧峰鍦板潃")]
+        public string SourceAddress { get; set; }
+
+        /// <summary>
+        /// 鐩爣鍦板潃
+        /// </summary>
+        [ImporterHeader(Name = "鐩爣鍦板潃")]
+        [ExporterHeader(DisplayName = "鐩爣鍦板潃")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鐩爣鍦板潃")]
+        public string TargetAddress { get; set; }
+
+        /// <summary>
+        /// 褰撳墠浣嶇疆
+        /// </summary>
+        [ImporterHeader(Name = "褰撳墠浣嶇疆")]
+        [ExporterHeader(DisplayName = "褰撳墠浣嶇疆")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "褰撳墠浣嶇疆")]
+        public string CurrentAddress { get; set; }
+
+        /// <summary>
+        /// 涓嬩竴鍦板潃
+        /// </summary>
+        [ImporterHeader(Name = "涓嬩竴鍦板潃")]
+        [ExporterHeader(DisplayName = "涓嬩竴鍦板潃")]
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "涓嬩竴鍦板潃")]
+        public string NextAddress { get; set; }
+
+        /// <summary>
+        /// 寮傚父淇℃伅
+        /// </summary>
+        [ImporterHeader(Name = "寮傚父淇℃伅")]
+        [ExporterHeader(DisplayName = "寮傚父淇℃伅")]
+        [SugarColumn(IsNullable = true, Length = 500, ColumnDescription = "寮傚父淇℃伅")]
+        public string? ExceptionMessage { get; set; }
+
+        /// <summary>
+        /// 浼樺厛绾�
+        /// </summary>
+        [ImporterHeader(Name = "浼樺厛绾�")]
+        [ExporterHeader(DisplayName = "浼樺厛绾�")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "浼樺厛绾�")]
+        public int Grade { get; set; }
+
+        /// <summary>
+        /// WMS浠诲姟涓婚敭
+        /// </summary>
+        [ImporterHeader(Name = "WMS浠诲姟涓婚敭")]
+        [ExporterHeader(DisplayName = "WMS浠诲姟涓婚敭")]
+        [SugarColumn(IsNullable = false, ColumnDescription = "WMS浠诲姟涓婚敭")]
+        public int WMSId { get; set; }
+
+        /// <summary>
+        /// 浠诲姟涓嬪彂鏃堕棿
+        /// </summary>
+        [ImporterHeader(Name = "浠诲姟涓嬪彂鏃堕棿")]
+        [ExporterHeader(DisplayName = "浠诲姟涓嬪彂鏃堕棿")]
+        [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟涓嬪彂鏃堕棿")]
+        public DateTime? Dispatchertime { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [ImporterHeader(Name = "澶囨敞")]
+        [ExporterHeader(DisplayName = "澶囨敞")]
+        [SugarColumn(IsNullable = true,  ColumnDescription = "澶囨敞")]
+        public int Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AlarmResetHsy.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AlarmResetHsy.cs"
new file mode 100644
index 0000000..58fc528
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AlarmResetHsy.cs"
@@ -0,0 +1,34 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_AlarmResetHsy", "鎶ヨ鍘嗗彶琛�"), MultiTenant]
+    public class Dt_AlarmResetHsy : BaseEntity
+    {
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        [SugarColumn(IsNullable = true, ColumnDescription = "閮ㄩ棬id")]
+        public int Deptid { get; set; }
+
+        [SugarColumn(IsNullable = true, Length = 100, ColumnDescription = "鎶ヨ鍐呭")]
+        public string AlarmContent { get; set; }
+
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎶ヨ鐘舵��")]
+        public bool ResetStatus { get; set; }
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎶ヨ鏃堕棿")]
+        public DateTime ?AlarmTime { get; set; }
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "澶嶄綅鏃堕棿")]
+        public DateTime ?ResetTime { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AuthorizationRecord.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AuthorizationRecord.cs"
new file mode 100644
index 0000000..1a86f6c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_AuthorizationRecord.cs"
@@ -0,0 +1,40 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+
+    [SugarTable("Dt_AuthorizationRecord", "鎺堟潈璁板綍琛�"), MultiTenant]
+    public class Dt_AuthorizationRecord: BaseEntity
+    {
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id {  get; set; }
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "璐﹀彿")]
+        public string Account {  get; set; }
+
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "濮撳悕")]
+        public string UserName { get; set; }
+
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐢ㄦ埛鍗曚綅")]
+        public string UerUnit {  get; set; }
+
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鐢ㄦ埛缁勫埆")]
+        public string UserTeam {  get; set; }
+
+        [SugarColumn(IsNullable = true,  ColumnDescription = "鍚敤鏃堕棿")]
+        public DateTime? EnableTime { get; set; }
+
+        [SugarColumn(IsNullable = true, ColumnDescription = "鏆傚仠鏃堕棿")]
+        public DateTime? DisableTime { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs"
new file mode 100644
index 0000000..25334f8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_CustomIPaddress.cs"
@@ -0,0 +1,26 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_CustomIPaddress", "鑷畾涔塱p鍦板潃"), MultiTenant]
+    public class Dt_CustomIPaddress:BaseEntity
+    {
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public  int  ID { get; set; }
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "IP鍦板潃")]
+        public string  IPaddress { get; set; }
+
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鑷畾涔塱p鍦板潃鐨勪腑鏂囧悕瀛�")]
+        public string  Addressname { get; set; }
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_FaceRecognition.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_FaceRecognition.cs"
new file mode 100644
index 0000000..f09b4a7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_FaceRecognition.cs"
@@ -0,0 +1,27 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+using WIDESEAWCS_Core.Tenants;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_FaceRecognition", "浜鸿劯璇嗗埆琛�"), MultiTenant]
+    public class Dt_FaceRecognition:BaseEntity
+    {
+        /// <summary>
+        /// id
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int ID { get; set; }
+
+        /// <summary>
+        /// 浜鸿劯璇嗗埆缁�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "浜鸿劯璇嗗埆缁�")]
+        public string GroupID { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Loginhsy.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Loginhsy.cs"
new file mode 100644
index 0000000..8f0efea
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Loginhsy.cs"
@@ -0,0 +1,45 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_Loginhsy", "鐧诲叆璁板綍")] //('鏁版嵁搴撹〃鍚�'锛�'鏁版嵁搴撹〃澶囨敞')
+    public class Dt_Loginhsy: BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int ID { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛濮撳悕
+        /// </summary>
+        [SugarColumn( IsNullable = true,Length =50, ColumnDescription = "鐢ㄦ埛濮撳悕")]
+        public string UserName { get; set; }
+
+
+        /// <summary>
+        /// 鐧诲叆鏃堕棿
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鐧诲叆鏃堕棿")]
+        public DateTime LoginTiem { get; set; }
+
+        /// <summary>
+        /// 閫�鍑烘椂闂�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "閫�鍑烘椂闂�")]
+        public DateTime?OutTiem { get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔鍐呭
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鎿嶄綔鍐呭")]
+        public string? OpCenten {  get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs"
new file mode 100644
index 0000000..5fd8ffa
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Maintenance.cs"
@@ -0,0 +1,81 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_Maintenance", "妫�淇潈闄愯〃")] //('鏁版嵁搴撹〃鍚�'锛�'鏁版嵁搴撹〃澶囨敞')
+    public class Dt_Maintenance : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int ID { get; set; }
+
+        /// <summary>
+        /// 鐢ㄦ埛璐﹀彿
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鐢ㄦ埛璐︽埛")]
+        public string UserAccount { get; set; }
+
+
+        /// <summary>
+        /// 鐢ㄦ埛鏉冮檺
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鐢ㄦ埛鏉冮檺")]
+        public int Roleid { get; set; }
+
+        /// <summary>
+        /// 鏄惁鏄粍闀�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鏄惁鏄粍闀�")]
+        public int IsLeader { get; set; }
+
+
+        /// <summary>
+        /// 妫�淇棩鏈�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "妫�淇棩鏈�")]
+        public DateTime? MaintenanceDate { get; set; }
+
+        /// <summary>
+        /// 鏄惁鍙互妫�淇�
+        /// </summary>
+        [SugarColumn( IsNullable = true, ColumnDescription = "鏄惁鍙互妫�淇�")]
+        public string IsPossible { get; set; }
+
+        /// <summary>
+        /// 妫�淇姸鎬�
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "妫�淇姸鎬�")]
+        public int MaintenanceStatus{ get; set; }
+
+        /// <summary>
+        /// ip鍦板潃
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "ip鍦板潃")]
+        public string IPAddress {  get; set; }
+
+
+
+        /// <summary>
+        /// 妫�淇紑濮嬫椂闂�
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "妫�淇紑濮嬫椂闂�")]
+        public DateTime? MaintenancStartTime { get; set; }
+
+        // <summary>
+        /// 妫�淇粨鏉熸椂闂�
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "妫�淇粨鏉熸椂闂�")]
+        public DateTime? MaintenancEendTime { get; set; }
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_MaintenanceTeam.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_MaintenanceTeam.cs"
new file mode 100644
index 0000000..e68ad29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_MaintenanceTeam.cs"
@@ -0,0 +1,72 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_MaintenanceTeam", "妫�淇彮缁勮褰曡〃")] //('鏁版嵁搴撹〃鍚�'锛�'鏁版嵁搴撹〃澶囨敞')
+    public class Dt_MaintenanceTeam : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int ID { get; set; }
+
+        /// <summary>
+        /// 璐﹀彿
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "璐﹀彿")]
+        public string Account {  get; set; }
+
+        /// <summary>
+        /// 鎿嶄綔浜哄憳濮撳悕
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鎿嶄綔浜哄憳濮撳悕")]
+        public string OperatorName { get; set; }
+
+
+
+        /// <summary>
+        /// 鐝粍鍚�
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鐝粍鍚�")]
+        public string TeamName { get; set; }
+
+        /// <summary>
+        /// ip鍦板潃
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "ip鍦板潃")]
+        public string IPAddress { get; set; }
+
+
+        /// <summary>
+        /// 妫�淇姸鎬�
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "妫�淇姸鎬�")]
+        public int MaintenanceStatus { get; set; }  
+
+
+        /// <summary>
+        /// 鍒嗛厤鏃堕棿
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍒嗛厤鏃堕棿")]
+        public DateTime? DistributionTime { get; set; }
+
+
+        /// <summary>
+        /// 瀹屾垚妫�淇椂闂�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "瀹屾垚妫�淇椂闂�")]
+        public DateTime? EndTime { get; set; }
+
+
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Parameters.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Parameters.cs"
new file mode 100644
index 0000000..c07bde0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_Parameters.cs"
@@ -0,0 +1,65 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using SqlSugar;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_Parameters", "浼哥缉鏉嗗弬鏁拌缃〃")] 
+    public class Dt_Parameters: BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey =true,IsIdentity =true)]
+        public int ID { get; set; }
+
+        /// <summary>
+        ///宸LC鑷姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鑷姩浼稿嚭閫熷害")]
+        public double ExtendSpeed { get; set; }
+
+        /// <summary>
+        /// 鍙砅LC鑷姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鑷姩缂╁洖閫熷害")]
+        public double RetractionSpeed { get; set; }
+
+
+        /// <summary>
+        /// 宸LC鎵嬪姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鎵嬪姩浼稿嚭閫熷害")]
+        public double ManualExtend { get; set; }
+
+
+        /// <summary>
+        /// 鍙砅LC鎵嬪姩浼稿嚭缂╁洖閫熷害
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鎵嬪姩缂╁洖閫熷害")]
+        public double ManualRetraction { get; set; }
+
+        /// <summary>
+        /// 宸﹁嚜鍔ㄤ几鍑轰綅缃�
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "宸﹁嚜鍔ㄤ几鍑轰綅缃�")]
+        public double LeftPosition { get; set; }
+
+
+        /// <summary>
+        /// 鍙宠嚜鍔ㄤ几鍑轰綅缃�
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "宸﹁嚜鍔ㄤ几鍑轰綅缃�")]
+        public double RightPosition { get; set; }
+
+        /// <summary>
+        /// 閮ㄩ棬id
+        /// </summary>
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "閮ㄩ棬id")]
+        public int Deptid { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_UnitCategory.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_UnitCategory.cs"
new file mode 100644
index 0000000..d23f5de
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/Telescopic/Dt_UnitCategory.cs"
@@ -0,0 +1,24 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    [SugarTable("Dt_UnitCategory", "鍗曚綅绫诲埆琛�")]
+    public class Dt_UnitCategory : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true)]
+        public int Id { get; set; }
+
+
+        [SugarColumn(Length = 50, IsNullable = true, ColumnDescription = "鍗曚綅鍚嶅瓧")]
+        public string UnitName { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs"
new file mode 100644
index 0000000..37858d1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationInfo.cs"
@@ -0,0 +1,95 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 璐т綅淇℃伅
+    /// </summary>
+    [SugarTable(nameof(Dt_LocationInfo), "璐т綅淇℃伅")]
+    public class Dt_LocationInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 浠撳簱缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "浠撳簱缂栧彿")]
+        public int WarehouseId { get; set; }
+
+        /// <summary>
+        /// 璐т綅缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "璐т綅缂栧彿")]
+        public string LocationCode {  get; set; }
+
+        /// <summary>
+        /// 璐т綅鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "璐т綅鍚嶇О")]
+        public string LocationName { get; set; }
+
+        /// <summary>
+        /// 宸烽亾缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "宸烽亾缂栧彿")]
+        public string RoadwayNo {  get; set; }
+
+        /// <summary>
+        /// 璐т綅琛�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅琛�")]
+        public int Row {  get; set; }
+
+        /// <summary>
+        /// 璐т綅鍒�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅鍒�")]
+        public int Column { get; set; }
+
+        /// <summary>
+        /// 璐т綅灞�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅灞�")]
+        public int Layer {  get; set; }
+
+        /// <summary>
+        /// 璐т綅宸ヤ綅
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅娣卞害")]
+        public int Depth {  get; set; }
+
+        /// <summary>
+        /// 璐т綅绫诲瀷
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "璐т綅绫诲瀷")]
+        public int LocationType {  get; set; }
+
+        /// <summary>
+        /// 璐т綅鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, DefaultValue = "0", ColumnDescription = "璐т綅鐘舵��")]
+        public int LocationStatus {  get; set; }
+
+        /// <summary>
+        /// 绂佺敤鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = true, DefaultValue = "0", ColumnDescription = "绂佺敤鐘舵��")]
+        public int EnableStatus { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
+        public string Remark {  get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationStatusChangeRecord.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationStatusChangeRecord.cs"
new file mode 100644
index 0000000..e0c86ea
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_LocationStatusChangeRecord.cs"
@@ -0,0 +1,77 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 璐т綅鐘舵�佸彉鍔ㄨ褰�
+    /// </summary>
+    [SugarTable(nameof(Dt_LocationStatusChangeRecord), "璐т綅鐘舵�佸彉鍔ㄨ褰�")]
+    public class Dt_LocationStatusChangeRecord : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 璐т綅涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "璐т綅涓婚敭")]
+        public int LocationId { get; set; }
+
+        /// <summary>
+        /// 璐т綅缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "璐т綅缂栧彿")]
+        public string LocationCode { get; set; }
+
+        /// <summary>
+        /// 鍙樺姩鍓嶈揣浣嶇姸鎬�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍙樺姩鍓嶈揣浣嶇姸鎬�")]
+        public int BeforeStatus { get; set; }
+
+        /// <summary>
+        /// 鍙樺姩鍚庤揣浣嶇姸鎬�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍙樺姩鍚庤揣浣嶇姸鎬�")]
+        public int AfterStatus { get; set; }
+
+        /// <summary>
+        /// 鍙樺姩绫诲瀷锛堝嚭搴撱�佸叆搴撱�佹墜鍔ㄨ皟鏁�...锛�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍙樺姩绫诲瀷锛堝嚭搴撱�佸叆搴撱�佹墜鍔ㄨ皟鏁�...锛�")]
+        public int ChangeType { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍗曟嵁涓婚敭")]
+        public int? OrderId { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍗曟嵁缂栧彿")]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟鍙�")]
+        public int? TaskNum { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs"
new file mode 100644
index 0000000..c200a93
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo.cs"
@@ -0,0 +1,65 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 搴撳瓨淇℃伅
+    /// </summary>
+    [SugarTable(nameof(Dt_StockInfo), "搴撳瓨淇℃伅")]
+    public class Dt_StockInfo : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵规鍙�")]
+        public string BatchNo { get; set; }
+
+        /// <summary>
+        /// 閲嶉噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "閲嶉噺")]
+        public decimal Weight { get; set; }
+
+        /// <summary>
+        /// 璐т綅缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 30, ColumnDescription = "璐т綅缂栧彿")]
+        public string LocationCode { get; set; }
+
+        /// <summary>
+        /// 浠撳簱涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")]
+        public int WarehouseId { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "搴撳瓨鐘舵��")]
+        public int StockStatus { get; set; }
+
+        /// <summary>
+        /// 0鑷骇  1澶栬喘  3鍓旈櫎
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "0鑷骇  1澶栬喘  3鍓旈櫎")]
+        public int Remark { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鏄庣粏
+        /// </summary>
+        [Navigate(NavigateType.OneToMany, nameof(Dt_StockInfoDetail.StockId), nameof(Id))]
+        public List<Dt_StockInfoDetail> Details { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail.cs"
new file mode 100644
index 0000000..d2dbb1d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail.cs"
@@ -0,0 +1,106 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    [SugarTable(nameof(Dt_StockInfoDetail), "搴撳瓨淇℃伅鏄庣粏")]
+    public class Dt_StockInfoDetail : BaseEntity
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨淇℃伅涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "搴撳瓨淇℃伅涓婚敭")]
+        public int StockId { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
+        public string MaterielCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")]
+        public string MaterielName { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鍗曟嵁缂栧彿")]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 100, ColumnDescription = "鎵规鍙�")]
+        public string BatchNo { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇鏃ユ湡
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鐢熶骇鏃ユ湡")]
+        public string ProductionDate { get; set; }
+
+        /// <summary>
+        /// 鏈夋晥鏈�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鏈夋晥鏈�")]
+        public string EffectiveDate { get; set; }
+
+        /// <summary>
+        /// 搴忓垪鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "搴忓垪鍙�")]
+        public string SerialNumber { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "搴撳瓨鏁伴噺")]
+        public float StockQuantity { get; set; }
+
+        /// <summary>
+        /// 鍑哄簱鏁伴噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍑哄簱鏁伴噺", DefaultValue = "0")]
+        public float OutboundQuantity { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鏄庣粏鐘舵��
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "搴撳瓨鏄庣粏鐘舵��")]
+        public int Status { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "鍗曚綅")]
+        public string Unit { get; set; }
+        /// <summary>
+        /// 鍏ュ簱鍗曟槑缁嗚鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍏ュ簱鍗曟槑缁嗚鍙�")]
+        public int InboundOrderRowNo { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail_Hty.cs"
new file mode 100644
index 0000000..2f1c49d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfoDetail_Hty.cs"
@@ -0,0 +1,42 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 搴撳瓨淇℃伅鏄庣粏鍘嗗彶
+    /// </summary>
+    [SugarTable(nameof(Dt_StockInfoDetail_Hty), "搴撳瓨淇℃伅鏄庣粏鍘嗗彶")]
+    public class Dt_StockInfoDetail_Hty : Dt_StockInfoDetail, 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/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo_Hty.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo_Hty.cs"
new file mode 100644
index 0000000..f84b1c0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockInfo_Hty.cs"
@@ -0,0 +1,42 @@
+锘縰sing Magicodes.ExporterAndImporter.Core;
+using SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 搴撳瓨淇℃伅鍘嗗彶
+    /// </summary>
+    [SugarTable(nameof(Dt_StockInfo_Hty), "搴撳瓨淇℃伅")]
+    public class Dt_StockInfo_Hty : Dt_StockInfo, 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/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockQuantityChangeRecord.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockQuantityChangeRecord.cs"
new file mode 100644
index 0000000..704df92
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/WMSPart/Dt_StockQuantityChangeRecord.cs"
@@ -0,0 +1,101 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Core.DB.Models;
+
+namespace WIDESEAWCS_Model.Models
+{
+    /// <summary>
+    /// 搴撳瓨鍙樺姩淇℃伅璁板綍
+    /// </summary>
+    [SugarTable(nameof(Dt_StockQuantityChangeRecord), "搴撳瓨鍙樺姩淇℃伅璁板綍")]
+    public class Dt_StockQuantityChangeRecord : BaseEntity
+    {
+        /// <summary>
+        /// 涓婚敭
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 搴撳瓨鏄庣粏涓婚敭
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "搴撳瓨鏄庣粏涓婚敭")]
+        public int StockDetailId { get; set; }
+
+        /// <summary>
+        /// 鎵樼洏缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏缂栧彿")]
+        public string PalleCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐗╂枡缂栧彿")]
+        public string MaterielCode { get; set; }
+
+        /// <summary>
+        /// 鐗╂枡鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 200, ColumnDescription = "鐗╂枡鍚嶇О")]
+        public string MaterielName { get; set; }
+
+        /// <summary>
+        /// 鎵规鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵规鍙�")]
+        public string BatchNo { get; set; }
+
+        /// <summary>
+        /// 搴忓垪鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 100, ColumnDescription = "搴忓垪鍙�")]
+        public string SerilNumber { get; set; }
+
+        /// <summary>
+        /// 鍗曟嵁缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "鍗曟嵁缂栧彿")]
+        public string OrderNo { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "浠诲姟鍙�")]
+        public int? TaskNum { get; set; }
+
+        /// <summary>
+        /// 鍙樺姩绫诲瀷锛堝嚭搴撱�佸叆搴撱�佹墜鍔ㄨ皟鏁�...锛�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍙樺姩绫诲瀷锛堝嚭搴撱�佸叆搴撱�佹墜鍔ㄨ皟鏁�...锛�")]
+        public int ChangeType { get; set; }
+
+        /// <summary>
+        /// 鍙樺姩鏁伴噺锛堟鏁拌〃绀哄鍔狅紝璐熸暟琛ㄧず鍑忓皯锛�
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍙樺姩鏁伴噺锛堟鏁拌〃绀哄鍔狅紝璐熸暟琛ㄧず鍑忓皯锛�")]
+        public float ChangeQuantity { get; set; }
+
+        /// <summary>
+        /// 鍙樺姩鍓嶅簱瀛橀噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍙樺姩鍓嶅簱瀛橀噺", DefaultValue = "0")]
+        public float BeforeQuantity { get; set; }
+
+        /// <summary>
+        /// 鍙樺姩鍚庡簱瀛橀噺
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鍙樺姩鍚庡簱瀛橀噺", DefaultValue = "0")]
+        public float AfterQuantity { get; set; }
+
+        /// <summary>
+        /// 澶囨敞
+        /// </summary>
+        [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
+        public string Remark { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
new file mode 100644
index 0000000..88c2ecb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/WIDESEAWCS_Model.csproj"
@@ -0,0 +1,23 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+	<PropertyGroup>
+		<TargetFramework>net6.0</TargetFramework>
+		<ImplicitUsings>enable</ImplicitUsings>
+		<Nullable>enable</Nullable>
+		<Platforms>AnyCPU;x64</Platforms>
+	</PropertyGroup>
+
+	<ItemGroup>
+		<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
+		<PackageReference Include="WIDESEAWCS_Core" Version="1.0.26" />
+	</ItemGroup>
+
+	<ItemGroup>
+		<ProjectReference Include="..\WIDESEAWCS_Common\WIDESEAWCS_Common.csproj" />
+	</ItemGroup>
+
+	<ItemGroup>
+	  <Folder Include="Models\BasicInfo\" />
+	</ItemGroup>
+
+</Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln"
new file mode 100644
index 0000000..cf97f96
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server.sln"
@@ -0,0 +1,267 @@
+锘�
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 17
+VisualStudioVersion = 17.9.34728.123
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_Server", "WIDESEAWCS_Server\WIDESEAWCS_Server.csproj", "{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_Tasks", "WIDESEAWCS_Tasks\WIDESEAWCS_Tasks.csproj", "{294E4915-0241-4C8C-BA99-7588B945863A}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_Model", "WIDESEAWCS_Model\WIDESEAWCS_Model.csproj", "{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_DTO", "WIDESEAWCS_DTO\WIDESEAWCS_DTO.csproj", "{C2D3D138-9109-481B-8BEB-A27597890B2C}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_Common", "WIDESEAWCS_Common\WIDESEAWCS_Common.csproj", "{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Service", "Service", "{A12315CA-9D81-412C-A09B-B23D95CFFE16}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "System", "System", "{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TaskInfo", "TaskInfo", "{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_ISystemServices", "WIDESEAWCS_ISystemServices\WIDESEAWCS_ISystemServices.csproj", "{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_SystemServices", "WIDESEAWCS_SystemServices\WIDESEAWCS_SystemServices.csproj", "{A14242DD-DA06-4DC3-8598-1761AA7C76D1}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_ITaskInfoService", "WIDESEAWCS_ITaskInfoService\WIDESEAWCS_ITaskInfoService.csproj", "{7279A2AE-8D1F-4E66-A73A-01AF7927A336}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_TaskInfoService", "WIDESEAWCS_TaskInfoService\WIDESEAWCS_TaskInfoService.csproj", "{83F18A31-5983-4587-A0B2-414BF70E50B5}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F3797CD6-35D2-40F6-8CAF-39A7130697A7}"
+	ProjectSection(SolutionItems) = preProject
+		.editorconfig = .editorconfig
+	EndProjectSection
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BasicInfo", "BasicInfo", "{9CB2F821-BB23-48E5-88E8-C326477733C0}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_IBasicInfoService", "WIDESEAWCS_IBasicInfoService\WIDESEAWCS_IBasicInfoService.csproj", "{8C2CC25B-DE5D-433E-A550-63864C7A716D}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_BasicInfoService", "WIDESEAWCS_BasicInfoService\WIDESEAWCS_BasicInfoService.csproj", "{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WMSPart", "WMSPart", "{FEEB708E-D692-434C-BD28-97555C1DA8F3}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_IWMSPart", "WIDESEAWCS_IWMSPart\WIDESEAWCS_IWMSPart.csproj", "{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}"
+EndProject
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "WIDESEAWCS_WMSPart", "WIDESEAWCS_WMSPart\WIDESEAWCS_WMSPart.csproj", "{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TelescopicService", "TelescopicService", "{E7B3936A-C759-48BD-BCD9-2016F7C1EB10}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEAWCS_ITelescopicService", "WIDESEAWCS_ITelescopicService\WIDESEAWCS_ITelescopicService.csproj", "{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WIDESEAWCS_TelescopicService", "WIDESEAWCS_TelescopicService\WIDESEAWCS_TelescopicService.csproj", "{1B1C16CA-8989-4590-BAF6-B55DCC330218}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Debug|x64 = Debug|x64
+		Debug|x86 = Debug|x86
+		Release|Any CPU = Release|Any CPU
+		Release|x64 = Release|x64
+		Release|x86 = Release|x86
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x64.ActiveCfg = Debug|x64
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x64.Build.0 = Debug|x64
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x86.ActiveCfg = Debug|x86
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Debug|x86.Build.0 = Debug|x86
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x64.ActiveCfg = Release|x64
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x64.Build.0 = Release|x64
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x86.ActiveCfg = Release|x86
+		{487FA45B-EA1A-4ACA-BB5B-0F6708F462C0}.Release|x86.Build.0 = Release|x86
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x64.ActiveCfg = Debug|x64
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x64.Build.0 = Debug|x64
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Debug|x86.Build.0 = Debug|Any CPU
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Release|x64.ActiveCfg = Release|x64
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Release|x64.Build.0 = Release|x64
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Release|x86.ActiveCfg = Release|Any CPU
+		{294E4915-0241-4C8C-BA99-7588B945863A}.Release|x86.Build.0 = Release|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x64.ActiveCfg = Debug|x64
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x64.Build.0 = Debug|x64
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Debug|x86.Build.0 = Debug|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x64.ActiveCfg = Release|x64
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x64.Build.0 = Release|x64
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x86.ActiveCfg = Release|Any CPU
+		{7F200FE8-CAF6-4131-BD25-8D438FE0ABAC}.Release|x86.Build.0 = Release|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x64.ActiveCfg = Debug|x64
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x64.Build.0 = Debug|x64
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Debug|x86.Build.0 = Debug|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|Any CPU.Build.0 = Release|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x64.ActiveCfg = Release|x64
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x64.Build.0 = Release|x64
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x86.ActiveCfg = Release|Any CPU
+		{C2D3D138-9109-481B-8BEB-A27597890B2C}.Release|x86.Build.0 = Release|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x64.ActiveCfg = Debug|x64
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x64.Build.0 = Debug|x64
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Debug|x86.Build.0 = Debug|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x64.ActiveCfg = Release|x64
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x64.Build.0 = Release|x64
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x86.ActiveCfg = Release|Any CPU
+		{9FBC654C-51DE-422D-9E1E-6A38268DE1E2}.Release|x86.Build.0 = Release|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x64.ActiveCfg = Debug|x64
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x64.Build.0 = Debug|x64
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Debug|x86.Build.0 = Debug|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|Any CPU.Build.0 = Release|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x64.ActiveCfg = Release|x64
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x64.Build.0 = Release|x64
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x86.ActiveCfg = Release|Any CPU
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0}.Release|x86.Build.0 = Release|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x64.ActiveCfg = Debug|x64
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x64.Build.0 = Debug|x64
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Debug|x86.Build.0 = Debug|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|Any CPU.Build.0 = Release|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x64.ActiveCfg = Release|x64
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x64.Build.0 = Release|x64
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x86.ActiveCfg = Release|Any CPU
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1}.Release|x86.Build.0 = Release|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x64.ActiveCfg = Debug|x64
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x64.Build.0 = Debug|x64
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Debug|x86.Build.0 = Debug|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|Any CPU.Build.0 = Release|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x64.ActiveCfg = Release|x64
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x64.Build.0 = Release|x64
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x86.ActiveCfg = Release|Any CPU
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336}.Release|x86.Build.0 = Release|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x64.ActiveCfg = Debug|x64
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x64.Build.0 = Debug|x64
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Debug|x86.Build.0 = Debug|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|Any CPU.Build.0 = Release|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x64.ActiveCfg = Release|x64
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x64.Build.0 = Release|x64
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x86.ActiveCfg = Release|Any CPU
+		{83F18A31-5983-4587-A0B2-414BF70E50B5}.Release|x86.Build.0 = Release|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x64.ActiveCfg = Debug|x64
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x64.Build.0 = Debug|x64
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Debug|x86.Build.0 = Debug|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x64.ActiveCfg = Release|x64
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x64.Build.0 = Release|x64
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x86.ActiveCfg = Release|Any CPU
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D}.Release|x86.Build.0 = Release|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x64.ActiveCfg = Debug|x64
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x64.Build.0 = Debug|x64
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Debug|x86.Build.0 = Debug|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x64.ActiveCfg = Release|x64
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x64.Build.0 = Release|x64
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x86.ActiveCfg = Release|Any CPU
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D}.Release|x86.Build.0 = Release|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x64.ActiveCfg = Debug|x64
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x64.Build.0 = Debug|x64
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Debug|x86.Build.0 = Debug|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|Any CPU.Build.0 = Release|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x64.ActiveCfg = Release|x64
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x64.Build.0 = Release|x64
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x86.ActiveCfg = Release|Any CPU
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4}.Release|x86.Build.0 = Release|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x64.ActiveCfg = Debug|x64
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x64.Build.0 = Debug|x64
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Debug|x86.Build.0 = Debug|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|Any CPU.Build.0 = Release|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x64.ActiveCfg = Release|x64
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x64.Build.0 = Release|x64
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x86.ActiveCfg = Release|Any CPU
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D}.Release|x86.Build.0 = Release|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x64.ActiveCfg = Debug|x64
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x64.Build.0 = Debug|x64
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Debug|x86.Build.0 = Debug|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|Any CPU.Build.0 = Release|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x64.ActiveCfg = Release|x64
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x64.Build.0 = Release|x64
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x86.ActiveCfg = Release|Any CPU
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A}.Release|x86.Build.0 = Release|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x64.ActiveCfg = Debug|x64
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x64.Build.0 = Debug|x64
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x86.ActiveCfg = Debug|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Debug|x86.Build.0 = Debug|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|Any CPU.Build.0 = Release|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x64.ActiveCfg = Release|x64
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x64.Build.0 = Release|x64
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x86.ActiveCfg = Release|Any CPU
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218}.Release|x86.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(NestedProjects) = preSolution
+		{6295C9FB-DAC4-4C07-97C5-C0332ABDD13D} = {A12315CA-9D81-412C-A09B-B23D95CFFE16}
+		{D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D} = {A12315CA-9D81-412C-A09B-B23D95CFFE16}
+		{9E4BFF47-52BF-4FD8-9CC7-3763BF19D9E0} = {6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}
+		{A14242DD-DA06-4DC3-8598-1761AA7C76D1} = {6295C9FB-DAC4-4C07-97C5-C0332ABDD13D}
+		{7279A2AE-8D1F-4E66-A73A-01AF7927A336} = {D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}
+		{83F18A31-5983-4587-A0B2-414BF70E50B5} = {D9CF90D0-AFB3-42AA-A2F1-BEE741E0AC0D}
+		{9CB2F821-BB23-48E5-88E8-C326477733C0} = {A12315CA-9D81-412C-A09B-B23D95CFFE16}
+		{8C2CC25B-DE5D-433E-A550-63864C7A716D} = {9CB2F821-BB23-48E5-88E8-C326477733C0}
+		{FFAB2C76-1C9E-4006-95C8-A0B2AA53139D} = {9CB2F821-BB23-48E5-88E8-C326477733C0}
+		{FEEB708E-D692-434C-BD28-97555C1DA8F3} = {A12315CA-9D81-412C-A09B-B23D95CFFE16}
+		{ADD3F3A3-CDFF-4854-B8C9-058FBDA2CFD4} = {FEEB708E-D692-434C-BD28-97555C1DA8F3}
+		{B17BAF3C-2BAD-4162-B6DC-46ED7A1E3D8D} = {FEEB708E-D692-434C-BD28-97555C1DA8F3}
+		{E7B3936A-C759-48BD-BCD9-2016F7C1EB10} = {A12315CA-9D81-412C-A09B-B23D95CFFE16}
+		{4784950F-D89F-4F0A-9FFD-E8F44589AC2A} = {E7B3936A-C759-48BD-BCD9-2016F7C1EB10}
+		{1B1C16CA-8989-4590-BAF6-B55DCC330218} = {E7B3936A-C759-48BD-BCD9-2016F7C1EB10}
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {C9A356D5-D4FE-414B-B982-6C97792BE6C6}
+	EndGlobalSection
+EndGlobal
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json"
new file mode 100644
index 0000000..13049e1
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/.config/dotnet-tools.json"
@@ -0,0 +1,13 @@
+{
+  "version": 1,
+  "isRoot": true,
+  "tools": {
+    "dotnet-ef": {
+      "version": "9.0.2",
+      "commands": [
+        "dotnet-ef"
+      ],
+      "rollForward": false
+    }
+  }
+}
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/RouterController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/RouterController.cs"
new file mode 100644
index 0000000..c76f27c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/BasicInfo/RouterController.cs"
@@ -0,0 +1,113 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.DataProtection.KeyManagement;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using Quartz.Util;
+using SqlSugar;
+using System.ComponentModel;
+using System.Reflection;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.BasicInfo;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Repository;
+using WIDESEAWCS_QuartzJob.Service;
+
+namespace WIDESEAWCS_Server.Controllers.BasicInfo
+{
+    [Route("api/Router")]
+    [ApiController]
+    public class RouterController : ApiBaseController<IRouterService, Dt_Router>
+    {
+        private readonly IDeviceInfoRepository _deviceInfoRepository;
+        private readonly IDeviceProtocolRepository _deviceProtocolRepository;
+        public RouterController(IRouterService service, IDeviceInfoRepository deviceInfoRepository, IDeviceProtocolRepository deviceProtocolRepository) : base(service)
+        {
+            _deviceInfoRepository = deviceInfoRepository;
+            _deviceProtocolRepository = deviceProtocolRepository;
+        }
+
+        [HttpPost, Route("QueryRoutes"), AllowAnonymous]
+        public List<Dt_Router> QueryRoutes(string startPosi, string endPosi)
+        {
+            return Service.QueryNextRoutes(startPosi, endPosi);
+        }
+
+        [HttpPost, Route("QueryAllPositions"), AllowAnonymous]
+        public List<string> QueryAllPositions(string deviceCode)
+        {
+            return Service.QueryAllPositions(deviceCode);
+        }
+
+        [HttpPost, Route("GetAllWholeRouters"), AllowAnonymous]
+        public WebResponseContent GetAllWholeRouters()
+        {
+            WebResponseContent content = new();
+            try
+            {
+                List<dynamic> dynamics = Service.GetAllWholeRouters();
+
+                content = WebResponseContent.Instance.OK(data: dynamics);
+            }
+            catch (Exception ex)
+            {
+                content = WebResponseContent.Instance.Error(ex.Message);
+            }
+            return content;        }
+
+        [HttpPost, Route("GetBaseRouterInfo"), AllowAnonymous]
+        public WebResponseContent GetBaseRouterInfo()
+        {
+            try
+            {
+                #region 鑾峰彇璺敱绫诲瀷
+                List<object> routerTypes = new List<object>();
+                Type routerType = typeof(RouterInOutType);
+                List<int> routerIndexs = Enum.GetValues(typeof(RouterInOutType)).Cast<int>().ToList();
+                int routerIndex = 0;
+                foreach (var item in routerIndexs)
+                {
+                    FieldInfo? fieldInfo = routerType.GetField(((RouterInOutType)item).ToString());
+                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                    if (description != null)
+                    {
+                        routerTypes.Add(new { key = item.ToString(), value = description.Description });
+                    }
+                    else
+                    {
+                        routerTypes.Add(new { key = item.ToString(), value = item.ToString() });
+                    }
+                    routerIndex++;
+                }
+                #endregion
+
+                #region 鑾峰彇璁惧缂栧彿
+                object deviceCodes = _deviceProtocolRepository.QueryData(x => true).GroupBy(x => x.DeviceChildCode).Select(x => new { key = x.Key, value = x.Key }).ToList();
+
+                object areaInfos = Enum.GetNames(typeof(AreaInfo)).Select(x => new { key = x, value = x }).ToList();
+
+
+                #endregion
+
+                return WebResponseContent.Instance.OK(data: new { routerTypes, deviceCodes, areaInfos });
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+
+        }
+
+        [HttpPost, Route("AddRouters"), AllowAnonymous]
+        public WebResponseContent AddRouters([FromBody] List<RoutersAddDTO> routersAddDTOs, int routerType)
+        {
+            return Service.AddRouters(routersAddDTOs, routerType);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceInfoController.cs"
new file mode 100644
index 0000000..5996ff9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceInfoController.cs"
@@ -0,0 +1,30 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Service;
+
+namespace WIDESEAWCS_WCSServer.Controllers.QuartzJob
+{
+    [Route("api/DeviceInfo")]
+    [ApiController]
+    public class DeviceInfoController : ApiBaseController<DeviceInfoService, Dt_DeviceInfo>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public DeviceInfoController(DeviceInfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+        [HttpPost, Route("GetDeviceProInfos"), AllowAnonymous]
+        public async Task<List<DeviceInfoDTO>> GetDeviceProInfos()
+        {
+            return await Service.QueryDeviceProInfos();
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs"
new file mode 100644
index 0000000..68078c5
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolController.cs"
@@ -0,0 +1,24 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Service;
+
+namespace WIDESEAWCS_Server.Controllers.QuartzJob
+{
+    [Route("api/DeviceProtocol")]
+    [ApiController]
+    public class DeviceProtocolController : ApiBaseController<IDeviceProtocolService, Dt_DeviceProtocol>
+    {
+        public DeviceProtocolController(IDeviceProtocolService service) : base(service)
+        {
+        }
+        [HttpPost, Route("GetImportData"), AllowAnonymous]
+        public WebResponseContent GetImportData(List<IFormFile> fileInput)
+        {
+            return Service.GetImportData(fileInput);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolDetailController.cs"
new file mode 100644
index 0000000..9efd74f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DeviceProtocolDetailController.cs"
@@ -0,0 +1,17 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Service;
+
+namespace WIDESEAWCS_Server.Controllers.QuartzJob
+{
+    [Route("api/DeviceProtocolDetail")]
+    [ApiController]
+    public class DeviceProtocolDetailController : ApiBaseController<IDeviceProtocolDetailService, Dt_DeviceProtocolDetail>
+    {
+        public DeviceProtocolDetailController(IDeviceProtocolDetailService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DispatchInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DispatchInfoController.cs"
new file mode 100644
index 0000000..59046ac
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/QuartzJob/DispatchInfoController.cs"
@@ -0,0 +1,17 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_QuartzJob.Models;
+using WIDESEAWCS_QuartzJob.Service;
+
+namespace WIDESEAWCS_Server.Controllers.QuartzJob
+{
+    [Route("api/DispatchInfo")]
+    [ApiController]
+    public class DispatchInfoController : ApiBaseController<IDispatchInfoService, Dt_DispatchInfo>
+    {
+        public DispatchInfoController(IDispatchInfoService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/BatchController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/BatchController.cs"
new file mode 100644
index 0000000..86e5a9f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/BatchController.cs"
@@ -0,0 +1,55 @@
+锘縰sing Autofac.Core;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Caches;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/Batch")]
+    [ApiController]
+    public class BatchController : ApiBaseController<Idt_BatchinfoService, dt_batchInfo>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public BatchController(Idt_BatchinfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+        /// <summary>
+        /// 淇敼鍏ュ簱鎵规淇℃伅
+        /// </summary>
+        /// <param name="batch"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("UpdateInBatch")]
+        public WebResponseContent UpdateInBatch(string batch)
+        {
+            return Service.UpdateInBatch(batch);
+        }
+
+        /// <summary>
+        /// 淇敼鍑哄簱鎵规淇℃伅
+        /// </summary>
+        /// <param name="batch"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("UpdateOutBatch")]
+        public WebResponseContent UpdateOutBatch(string batch)
+        {
+            return Service.UpdateOutBatch(batch);
+        }
+
+        /// <summary>
+        /// 淇敼鍑哄簱鐗╂枡淇℃伅锛岄渶瑕佸嚭澶栬喘杩樻槸鑷骇 0涓嶅嚭搴�   1鍑哄簱
+        /// </summary>
+        /// <param name="batch"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("UpdateOutStorageMode")]
+        public WebResponseContent UpdateOutStorageMode(int mode)
+        {
+            return Service.UpdateOutStorageMode(mode);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs"
new file mode 100644
index 0000000..208f74b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/ErrorInfoController.cs"
@@ -0,0 +1,18 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/ERROE")]
+    [ApiController]
+    public class ErrorInfoController : ApiBaseController<Idt_ErrormsginfoService, dt_errormsgInfo>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public ErrorInfoController(Idt_ErrormsginfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/OutStockController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/OutStockController.cs"
new file mode 100644
index 0000000..12eaff4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/OutStockController.cs"
@@ -0,0 +1,41 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/OutStock")]
+    [ApiController]
+    public class OutStockController : ApiBaseController<Idt_OutstockinfoService, dt_outstockinfo>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public OutStockController(Idt_OutstockinfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+        /// <summary>
+        /// 淇敼褰撳墠鏄惁闇�瑕佸嚭搴�
+        /// </summary>
+        /// <param name="batch"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("UpdateIsOutStock")]
+        public WebResponseContent UpdateIsOutStock(int isout)
+        {
+            return Service.UpdateIsOutStock(isout);
+        }
+
+        /// <summary>
+        /// 淇敼姝e父鍏ュ簱杩樻槸鐩存帴鍏ュ簱
+        /// </summary>
+        /// <param name="batch"></param>
+        /// <returns></returns>
+        [HttpPost, HttpGet, Route("UpdateInOut")]
+        public WebResponseContent UpdateInOut(int isout)
+        {
+            return Service.UpdateInOut(isout);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs"
new file mode 100644
index 0000000..29201de
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StationInfoController.cs"
@@ -0,0 +1,18 @@
+锘縰sing Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/Station")]
+    [ApiController]
+    public class StationInfoController : ApiBaseController<Idt_StationinfoService, dt_stationInfo>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public StationInfoController(Idt_StationinfoService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StoragemodeController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StoragemodeController.cs"
new file mode 100644
index 0000000..ff0e72d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/StoragemodeController.cs"
@@ -0,0 +1,26 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/StorageMode")]
+    [ApiController]
+    public class StoragemodeController : ApiBaseController<Idt_StoragemodeService, dt_storagemode>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public StoragemodeController(Idt_StoragemodeService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+        [HttpPost, Route("UpdateStoragemode"), AllowAnonymous]
+        public WebResponseContent UpdateStoragemode(int storagemode)
+        {
+            return Service.UpdateStoragemode(storagemode);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs"
new file mode 100644
index 0000000..55f8ee0
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryController.cs"
@@ -0,0 +1,509 @@
+锘縰sing Autofac.Core;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.DependencyModel;
+using Newtonsoft.Json;
+using System.Reflection;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+using System.IO;
+using WIDESEAWCS_QuartzJob.DeviceBase;
+using WIDESEAWCS_DTO.System;
+using System.ComponentModel;
+using System.Collections.Generic;
+using WIDESEAWCS_Communicator;
+using Quartz;
+using WIDESEAWCS_QuartzJob;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
+using WIDESEAWCS_Common.TaskEnum;
+using WIDESEAWCS_Core.Caches;
+using WIDESEAWCS_QuartzJob.DeviceEnum;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Common.LocationEnum;
+using WIDESEAWCS_Common.StockEnum;
+
+namespace WIDESEAWCS_WCSServer.Controllers.System
+{
+    [Route("api/Sys_Dictionary")]
+    [ApiController]
+    public class Sys_DictionaryController : ApiBaseController<ISys_DictionaryService, Sys_Dictionary>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        private readonly ICacheService _cacheService;
+
+        public Sys_DictionaryController(ISys_DictionaryService service, IHttpContextAccessor httpContextAccessor, ICacheService cacheService) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+            _cacheService = cacheService;
+        }
+
+        [HttpPost, Route("GetVueDictionary"), AllowAnonymous]
+        public IActionResult GetVueDictionary([FromBody] string[] dicNos)
+        {
+            List<VueDictionaryDTO> vueDictionaryDTOs = Service.GetVueDictionary(dicNos);
+            try
+            {
+                List<string> selectDicNos = vueDictionaryDTOs.Select(x => x.DicNo).ToList();
+                List<string> cacheDicNos = new List<string>();
+                foreach (string n in dicNos.Where(x => !selectDicNos.Contains(x)))
+                {
+                    string? str = _cacheService.Get(n);
+                    if (!string.IsNullOrEmpty(str))
+                    {
+                        VueDictionaryDTO? vueDictionary = JsonConvert.DeserializeObject<VueDictionaryDTO>(str);
+
+                        if (vueDictionary != null)
+                        {
+                            vueDictionaryDTOs.Add(vueDictionary);
+                            cacheDicNos.Add(n);
+                        }
+                    }
+                }
+                List<string> dicList = dicNos.ToList();
+                List<string> otherDicNos = dicNos.Where(x => !cacheDicNos.Contains(x) && !selectDicNos.Contains(x)).ToList();
+                if (otherDicNos.Count() > 0)
+                {
+                    string str = AppSettings.Configuration["dics"];
+                    if (!string.IsNullOrEmpty(str))
+                    {
+                        List<string> cusDics = new List<string>();
+
+                        List<string> dics = str.Split(",").ToList();
+
+                        foreach (var item in otherDicNos)
+                        {
+                            if (dics.Contains(item))
+                            {
+                                cusDics.Add(item);
+                            }
+                        }
+
+                        foreach (var item in cusDics)
+                        {
+                            VueDictionaryDTO? vueDictionaryDTO = GetVueDictionary(item.Trim());
+                            if (vueDictionaryDTO != null)
+                            {
+                                vueDictionaryDTOs.Add(vueDictionaryDTO);
+                                if (!_cacheService.Exists(item))
+                                {
+                                    _cacheService.Add(item, vueDictionaryDTO.Serialize());
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            catch
+            {
+
+            }
+            return Json(vueDictionaryDTOs);
+        }
+
+        private VueDictionaryDTO? GetVueDictionary(string key)
+        {
+            VueDictionaryDTO? result = null;
+            try
+            {
+                switch (key)
+                {
+                    case "deviceType":
+                        {
+                            Type type = typeof(IDevice);
+                            var basePath = AppContext.BaseDirectory;
+                            List<Type> types = type.Assembly.GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsAbstract && !x.IsInterface).ToList();
+                            List<object> data = new List<object>();
+                            foreach (var deviceType in types)
+                            {
+                                DescriptionAttribute? description = deviceType.GetCustomAttribute<DescriptionAttribute>();
+                                if (description != null)
+                                {
+                                    data.Add(new { key = deviceType.Name, value = description.Description });
+                                }
+                                else
+                                {
+                                    data.Add(new { key = deviceType.Name, value = deviceType.Name });
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "jobAssembly":
+                        {
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = new List<object>() { new { key = "WIDESEAWCS_Tasks", value = "WIDESEAWCS_Tasks" } } };
+
+                        }
+                        break;
+                    case "jobClassName":
+                        {
+                            Type type = typeof(IJob);
+                            var basePath = AppContext.BaseDirectory;
+                            string path = Path.Combine(basePath, $"WIDESEAWCS_Tasks");
+                            Assembly assembly = Assembly.LoadFrom(path);
+                            List<Type> types = assembly.GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsAbstract && !x.IsInterface).ToList();
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = types.Select(x => new { key = x.Name, value = x.Name }) };
+                        }
+                        break;
+                    case "deviceStatus":
+                        {
+                            List<object> data = new List<object>();
+                            Type type = typeof(DeviceStatusEnum);
+                            List<int> enums = Enum.GetValues(type).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = type.GetField(((DeviceStatusEnum)item).ToString());
+                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                if (description != null)
+                                {
+                                    data.Add(new { key = item.ToString(), value = description.Description });
+                                }
+                                else
+                                {
+                                    data.Add(new { key = item.ToString(), value = item.ToString() });
+                                }
+                                index++;
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "mateType":
+                        {
+                            List<object> data = new List<object>();
+                            Type type = typeof(MateTypeEnum);
+                            List<int> enums = Enum.GetValues(type).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = type.GetField(((MateTypeEnum)item).ToString());
+                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                if (description != null)
+                                {
+                                    data.Add(new { key = item.ToString(), value = description.Description });
+                                }
+                                else
+                                {
+                                    data.Add(new { key = item.ToString(), value = item.ToString() });
+                                }
+                                index++;
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "stock":
+                        {
+                            List<object> data = new List<object>();
+                            Type type = typeof(stockEnum);
+                            List<int> enums = Enum.GetValues(type).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = type.GetField(((stockEnum)item).ToString());
+                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                if (description != null)
+                                {
+                                    data.Add(new { key = item.ToString(), value = description.Description });
+                                }
+                                else
+                                {
+                                    data.Add(new { key = item.ToString(), value = item.ToString() });
+                                }
+                                index++;
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "taskType":
+                        {
+                            List<object> data = new List<object>();
+
+                            #region TaskInboundTypeEnum
+                            {
+                                Type type = typeof(TaskInboundTypeEnum);
+                                List<int> enums = Enum.GetValues(typeof(TaskInboundTypeEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(TaskInboundTypeEnum).GetField(((TaskInboundTypeEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+                            #endregion
+
+                            #region TaskOutboundTypeEnum
+                            {
+                                Type type = typeof(TaskOutboundTypeEnum);
+                                List<int> enums = Enum.GetValues(typeof(TaskOutboundTypeEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(TaskOutboundTypeEnum).GetField(((TaskOutboundTypeEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+                            #endregion
+
+                            #region TaskRelocationTypeEnum
+                            {
+                                Type type = typeof(TaskRelocationTypeEnum);
+                                List<int> enums = Enum.GetValues(typeof(TaskRelocationTypeEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(TaskRelocationTypeEnum).GetField(((TaskRelocationTypeEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+                            #endregion
+
+                            #region TaskOtherTypeEnum
+                            {
+                                Type type = typeof(TaskOtherTypeEnum);
+                                List<int> enums = Enum.GetValues(typeof(TaskOtherTypeEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(TaskOtherTypeEnum).GetField(((TaskOtherTypeEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+                            #endregion
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "taskState":
+                        {
+                            List<object> data = new List<object>();
+
+                            #region TaskInStatusEnum
+                            {
+                                Type type = typeof(TaskInStatusEnum);
+                                List<int> enums = Enum.GetValues(typeof(TaskInStatusEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(TaskInStatusEnum).GetField(((TaskInStatusEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+                            #endregion
+
+                            #region TaskOutStatusEnum
+                            {
+                                Type type = typeof(TaskOutStatusEnum);
+                                List<int> enums = Enum.GetValues(typeof(TaskOutStatusEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(TaskOutStatusEnum).GetField(((TaskOutStatusEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+                            #endregion
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "devicePlcType":
+                        {
+                            Type type = typeof(BaseCommunicator);
+                            var basePath = AppContext.BaseDirectory;
+                            string path = Path.Combine(basePath, $"WIDESEAWCS_Communicator.dll");
+                            Assembly assembly = Assembly.LoadFrom(path);
+                            List<Type> types = assembly.GetTypes().Where(x => type.IsAssignableFrom(x) && !x.IsAbstract && !x.IsInterface).ToList();
+                            List<object> data = new List<object>();
+                            foreach (var deviceType in types)
+                            {
+                                DescriptionAttribute? description = deviceType.GetCustomAttribute<DescriptionAttribute>();
+                                if (description != null)
+                                {
+                                    data.Add(new { key = deviceType.Name, value = description.Description });
+                                }
+                                else
+                                {
+                                    data.Add(new { key = deviceType.Name, value = deviceType.Name });
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "inOutType":
+                        {
+                            List<object> data = new List<object>();
+                            Type type = typeof(RouterInOutType);
+                            List<int> enums = Enum.GetValues(typeof(RouterInOutType)).Cast<int>().ToList();
+                            int index = 0;
+                            foreach (var item in enums)
+                            {
+                                FieldInfo? fieldInfo = typeof(RouterInOutType).GetField(((RouterInOutType)item).ToString());
+                                DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                if (description != null)
+                                {
+                                    data.Add(new { key = item.ToString(), value = description.Description });
+                                }
+                                else
+                                {
+                                    data.Add(new { key = item.ToString(), value = item.ToString() });
+                                }
+                                index++;
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+
+                    case "enableStatusEnum":
+                        {
+                            List<object> data = new List<object>();
+
+                            {
+                                Type type = typeof(EnableStatusEnum);
+                                List<int> enums = Enum.GetValues(typeof(EnableStatusEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(EnableStatusEnum).GetField(((EnableStatusEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "locationStatusEnum":
+                        {
+                            List<object> data = new List<object>();
+
+                            {
+                                Type type = typeof(LocationStatusEnum);
+                                List<int> enums = Enum.GetValues(typeof(LocationStatusEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(LocationStatusEnum).GetField(((LocationStatusEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                    case "locationTypeEnum":
+                        {
+                            List<object> data = new List<object>();
+
+                            {
+                                Type type = typeof(LocationTypeEnum);
+                                List<int> enums = Enum.GetValues(typeof(LocationTypeEnum)).Cast<int>().ToList();
+                                int index = 0;
+                                foreach (var item in enums)
+                                {
+                                    FieldInfo? fieldInfo = typeof(LocationTypeEnum).GetField(((LocationTypeEnum)item).ToString());
+                                    DescriptionAttribute? description = fieldInfo.GetCustomAttribute<DescriptionAttribute>();
+                                    if (description != null)
+                                    {
+                                        data.Add(new { key = item.ToString(), value = description.Description });
+                                    }
+                                    else
+                                    {
+                                        data.Add(new { key = item.ToString(), value = item.ToString() });
+                                    }
+                                    index++;
+                                }
+                            }
+
+                            result = new VueDictionaryDTO { DicNo = key, Config = "", Data = data };
+                        }
+                        break;
+                }
+                return result;
+            }
+            catch (Exception ex)
+            {
+                return null;
+            }
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryListController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryListController.cs"
new file mode 100644
index 0000000..15c9da8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_DictionaryListController.cs"
@@ -0,0 +1,17 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/Sys_DictionaryList")]
+    [ApiController]
+    public class Sys_DictionaryListController : ApiBaseController<ISys_DictionaryListService, Sys_DictionaryList>
+    {
+        public Sys_DictionaryListController(ISys_DictionaryListService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs"
new file mode 100644
index 0000000..8bf9b04
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_LogController.cs"
@@ -0,0 +1,17 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class Sys_LogController : ApiBaseController<ISys_LogService, Sys_Log>
+    {
+        public Sys_LogController(ISys_LogService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_MenuController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_MenuController.cs"
new file mode 100644
index 0000000..8f61352
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_MenuController.cs"
@@ -0,0 +1,55 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_WCSServer.Controllers
+{
+    [Route("api/Sys_Menu")]
+    [ApiController]
+    public class Sys_MenuController : ApiBaseController<ISys_MenuService, Sys_Menu>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public Sys_MenuController(ISys_MenuService menuService, IHttpContextAccessor httpContextAccessor) : base(menuService)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+        [HttpGet, HttpPost, Route("getTreeMenu")]
+        public IActionResult GetTreeMenu()
+        {
+            return Json(Service.GetCurrentMenuActionList());
+        }
+
+        [HttpPost, Route("getMenu")]
+        public IActionResult GetMenu()
+        {
+            return Json(Service.GetMenu());
+        }
+
+        [HttpPost, Route("getTreeItem")]
+        public IActionResult GetTreeItem(int menuId)
+        {
+            return Json(Service.GetTreeItem(menuId));
+        }
+
+        [HttpPost, Route("save")]
+        public ActionResult Save([FromBody] Sys_Menu menu)
+        {
+            if (App.User.UserId == 1)
+            {
+                return Json(Service.Save(menu));
+            }
+            else
+            {
+                return Json(WebResponseContent.Instance.Error("浠呴檺瓒呯骇绠$悊鍛樹慨鏀规暟鎹�"));
+            }
+        }
+        [HttpPost, Route("delMenu")]
+        public WebResponseContent DelMenu(int menuId)
+        {
+            return Service.DelMenu(menuId);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleAuthController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleAuthController.cs"
new file mode 100644
index 0000000..2797fd7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleAuthController.cs"
@@ -0,0 +1,17 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.System
+{
+    [Route("api/Sys_RoleAuth")]
+    [ApiController]
+    public class Sys_RoleAuthController : ApiBaseController<ISys_RoleAuthService, Sys_RoleAuth>
+    {
+        public Sys_RoleAuthController(ISys_RoleAuthService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleController.cs"
new file mode 100644
index 0000000..711558d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_RoleController.cs"
@@ -0,0 +1,64 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Routing;
+using WIDESEAWCS_DTO.System;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.BaseRepository;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Model.Models.System;
+
+namespace WIDESEAWCS_WCSServer.Controllers.System
+{
+    [Route("api/Sys_Role")]
+    [ApiController]
+    public class Sys_RoleController : ApiBaseController<ISys_RoleService, Sys_Role>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public Sys_RoleController(ISys_RoleService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+        [HttpPost, Route("getUserChildRoles")]
+        public IActionResult GetUserChildRoles()
+        {
+            int roleId = App.User.RoleId;
+            var data = Service.GetAllChildren(roleId);
+
+            if (App.User.IsSuperAdmin)
+            {
+                return Json(WebResponseContent.Instance.OK(null, data));
+            }
+            //涓嶆槸瓒呯骇绠$悊锛屽皢鑷繁鐨勮鑹叉煡鍑烘潵锛屽湪鏍戝舰鑿滃崟涓婁綔涓烘牴鑺傜偣
+            var self = data.Where(x => x.Id == roleId)
+                 .Select(s => new RoleNodes()
+                 {
+                     Id = s.Id,
+                     ParentId = 0,//灏嗚嚜宸辩殑瑙掕壊浣滀负root鑺傜偣
+                     RoleName = s.RoleName
+                 }).ToList();
+            data.AddRange(self);
+            return Json(WebResponseContent.Instance.OK(null, data));
+        }
+
+        [HttpPost, Route("getCurrentTreePermission")]
+        public IActionResult GetCurrentTreePermission()
+        {
+            return Json(Service.GetCurrentTreePermission());
+        }
+
+        [HttpPost, Route("getUserTreePermission")]
+        public IActionResult GetUserTreePermission(int roleId)
+        {
+            return Json(Service.GetUserTreePermission(roleId));
+        }
+
+        [HttpPost, Route("savePermission")]
+        public IActionResult SavePermission([FromBody] List<UserPermissionDTO> userPermissions, int roleId)
+        {
+            return Json(Service.SavePermission(userPermissions, roleId));
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs"
new file mode 100644
index 0000000..c99bbb3
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserController.cs"
@@ -0,0 +1,261 @@
+锘�
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Caching.Memory;
+using Newtonsoft.Json;
+using StackExchange.Profiling;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Authorization;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Const;
+using WIDESEAWCS_Core.Extensions;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
+using WIDESEAWCS_Core.Utilities;
+using WIDESEAWCS_DTO.SerialPort;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_WCSServer.Controllers
+{
+    [Route("api/User")]
+    [ApiController]
+    public class Sys_UserController : ApiBaseController<ISys_UserService, Sys_User>
+    {
+
+        public Sys_UserController(ISys_UserService userService) : base(userService)
+        {
+        }
+        [HttpPost, Route("FaceCompareFeature"), AllowAnonymous]
+        public WebResponseContent FaceCompareFeature(string file1, string file2)
+        {
+            var score = Service.FaceCompareFeature(file1, file2);
+            return WebResponseContent.Instance.OK(data: "data:" + score);
+        }
+
+        [HttpPost, Route("swgLogin"), AllowAnonymous]
+        public dynamic SwgLogin([FromBody] SwaggerLoginRequest loginRequest)
+        {
+            if (loginRequest is null)
+            {
+                return new { result = false };
+            }
+
+            try
+            {
+                LoginInfo loginInfo = new LoginInfo
+                {
+                    Password = loginRequest.pwd,
+                    UserName = loginRequest.name
+                };
+                var result = Service.Login(loginInfo);
+                if (result.Status)
+                {
+                    HttpContext.SuccessSwagger();
+                    Dictionary<string, object>? dict = JsonConvert.DeserializeObject<Dictionary<string, object>>(result.Data.Serialize());
+                    if (dict != null)
+                    {
+                        HttpContext.SuccessSwaggerJwt((dict.ContainsKey("token") ? dict["token"].ToString() : "") ?? "");
+                    }
+                    string str = HttpContext.GetSuccessSwaggerJwt();
+                    return new { result = true };
+                }
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+            return new { result = false };
+        }
+
+
+        [HttpPost, Route("login"), AllowAnonymous]
+        public IActionResult Login([FromBody] LoginInfo loginInfo)
+        {
+            var result = Json(Service.Login(loginInfo));
+            return result;
+        }
+        [HttpPost, Route("getCurrentUserInfo")]
+        public WebResponseContent GetCurrentUser()
+        {
+            return Service.GetCurrentUserInfo();
+        }
+
+        [HttpPost, Route("modifyPwd")]
+        public IActionResult ModifyPwd(string oldPwd, string newPwd)
+        {
+            return Json(Service.ModifyPwd(oldPwd, newPwd));
+        }
+
+        [HttpGet, Route("getVierificationCode"), AllowAnonymous]
+        public IActionResult GetVierificationCode()
+        {
+            //var html = MiniProfiler.Current.RenderIncludes(_httpContextAccessor.HttpContext);
+            string code = "1234" /*VierificationCode.RandomText()*/;
+            var data = new
+            {
+                img = VierificationCode.CreateBase64Imgage(code),
+                uuid = Guid.NewGuid()
+            };
+
+            return Json(data);
+        }
+        [HttpGet, Route("SerializeJwt"), AllowAnonymous]
+        public WebResponseContent SerializeJwt(string code)
+        {
+            return WebResponseContent.Instance.OK(data: JwtHelper.SerializeJwt(code));
+        }
+        [HttpPost, Route("replaceToken")]
+        public WebResponseContent ReplaceToken()
+        {
+            WebResponseContent responseContent = new WebResponseContent();
+            try
+            {
+                string token = App.User.GetToken();
+                if (string.IsNullOrEmpty(token))
+                {
+                    return responseContent = WebResponseContent.Instance.Error("token鏃犳晥锛岃閲嶆柊鐧诲綍锛�");
+                }
+                TokenModelJwt tokenModelJwt = new TokenModelJwt()
+                {
+                    RoleId = App.User.RoleId,
+                    TenantId = App.User.TenantId,
+                    UserId = App.User.UserId,
+                    UserName = App.User.UserName
+                };
+                string newToken = JwtHelper.IssueJwt(tokenModelJwt);
+                return responseContent = WebResponseContent.Instance.OK(data: newToken);
+            }
+            catch (Exception ex)
+            {
+                return responseContent.Error(ex.Message);
+            }
+        }
+
+
+        /// <summary>
+        /// 淇敼鐢ㄦ埛瀵嗙爜
+        /// </summary>
+        /// <param name="id"></param>
+        /// <param name="oldPwd"></param>
+        /// <param name="newPwd"></param>
+        /// <returns></returns>
+        [HttpPost, Route("UpdatePwd")]
+        public WebResponseContent UpdatePwd(int id, string oldPwd, string newPwd)
+        {
+            return Service.UpdatePwd(id, oldPwd, newPwd);
+        }
+
+
+
+        /// <summary>
+        /// 鏇存柊鐢ㄦ埛淇℃伅
+        /// </summary>
+        /// <param name="userDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("Upuserbase"), AllowAnonymous]
+        public WebResponseContent Upuserbase([FromBody] UserDTO userDTO)
+        {
+            return Service.Upuserbase(userDTO);
+        }
+
+
+        /// <summary>
+        /// 涓婁紶鍥剧墖鏂囦欢鍚�
+        /// </summary>
+        /// <param name="files"></param>
+        /// <param name="sys_User"></param>
+        /// <returns></returns>
+        [HttpPost, Route("SaveFiles"), AllowAnonymous]
+        public WebResponseContent SaveFiles(IFormCollection files)
+        {
+            return Service.SaveFiles(files);
+        }
+
+        /// <summary>
+        /// 娣诲姞鐢ㄦ埛
+        /// </summary>
+        /// <param name="addUserDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AdduserData"), AllowAnonymous]
+        public WebResponseContent AdduserData([FromBody] AddUserDTO addUserDTO)
+        {
+            return Service.AdduserData(addUserDTO);
+        }
+
+        /// <summary>
+        /// 鏇存柊鐢ㄦ埛
+        /// </summary>
+        /// <param name="addUserDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("UpuserData"), AllowAnonymous]
+        public WebResponseContent UpuserData([FromBody] AddUserDTO addUserDTO)
+        {
+            return Service.UpuserData(addUserDTO);
+        }
+
+        /// <summary>
+        /// 鍒犻櫎鐢ㄦ埛
+        /// </summary>
+        /// <param name="deleteUserDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("DeleteUserData"), AllowAnonymous]
+        public WebResponseContent DeleteUserData(string userAccount)
+        {
+            return Service.DeleteUserData(userAccount);
+        }
+
+
+        /// <summary>
+        /// 鐧诲叆鍚庢竻闄よ繖娆″叏閮ㄨ皟鐢⊿aveFaceFiles鏂规硶鐨勫浘鐗�
+        /// </summary>
+        /// <returns></returns>
+        [HttpGet, Route("CleanUnusedImages"), AllowAnonymous]
+        public WebResponseContent CleanUnusedImages()
+        {
+            return Service.CleanUnusedImages();
+        }
+
+        /// <summary>
+        ///浜鸿劯鐧诲叆鏃惰皟鐢ㄨ鏂规硶涓婁紶鍥剧墖
+        /// </summary>
+        /// <param name="files"></param>
+        /// <returns></returns>
+        [HttpPost, Route("SaveFaceFiles"), AllowAnonymous]
+        public WebResponseContent SaveFaceFiles(IFormCollection files)
+        {
+            return Service.SaveFaceFiles(files);
+        }
+
+
+
+        /// <summary>
+        ///  //浜鸿劯鍒犻櫎锛堝垹闄ょ敤鎴风殑鏌愪竴寮犱汉鑴革紝濡傛灉璇ョ敤鎴峰彧鏈変竴寮犱汉鑴稿浘鐗囷紝鍒欏悓鏃跺垹闄ょ敤鎴枫�傦級
+        /// </summary>
+        /// <param name="addUserDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("DeleteUserIsface"), AllowAnonymous]
+        public WebResponseContent DeleteUserIsface(string account)
+        {
+            return Service.DeleteUserIsface(account);
+        }
+
+
+        [HttpPost, Route("YShowUserList"),AllowAnonymous]
+        public WebResponseContent YShowUserList([FromBody] PaginationDTO pagination)
+        {
+            return Service.YShowUserList(pagination);
+        }
+
+    }
+
+    public class SwaggerLoginRequest
+    {
+        public string name { get; set; }
+        public string pwd { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserFaceController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserFaceController.cs"
new file mode 100644
index 0000000..3a9ddb4
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/System/Sys_UserFaceController.cs"
@@ -0,0 +1,134 @@
+锘�
+using System.IO;
+using System.Net.Mime;
+using System.Text.RegularExpressions;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using Microsoft.Extensions.Caching.Memory;
+using Newtonsoft.Json;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Math;
+using OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using StackExchange.Profiling;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.Authorization;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Const;
+using WIDESEAWCS_Core.Extensions;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_Core.HttpContextUser;
+using WIDESEAWCS_Core.Utilities;
+using WIDESEAWCS_DTO.SerialPort;
+using WIDESEAWCS_ISystemServices;
+using WIDESEAWCS_Model;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_Model.Models.System;
+using IOFile = System.IO.File;
+
+namespace WIDESEAWCS_WCSServer.Controllers
+{
+    [Route("api/UserFace")]
+    [ApiController]
+    public class Sys_UserFaceController : ApiBaseController<ISys_UserFaceService, Sys_UserFace>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+
+        public Sys_UserFaceController(ISys_UserFaceService userService, IHttpContextAccessor httpContextAccessor) : base(userService)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+        [HttpPost, Route("FaceRecognition"), AllowAnonymous]
+        public WebResponseContent FaceRecognition([FromBody] ImageModel model)
+        {
+            return Service.FaceRecognition(model);
+        }
+
+        [HttpPost, Route("FaceEnter")]
+        public WebResponseContent FaceEnter([FromBody] ImageModel model)
+        {
+            return Service.FaceEnter(model);
+        }
+
+        [HttpPost, HttpGet, Route("DownlodaFacePlugin"), AllowAnonymous]
+        public ActionResult DownlodaFacePlugin()
+        {
+            try
+            {
+                string path = $"{AppDomain.CurrentDomain.BaseDirectory}DownLoad/";
+                if (!Directory.Exists(path)) Directory.CreateDirectory(path);
+                path += "face-plugin.zip";
+
+                if (IOFile.Exists(path))
+                {
+                    byte[] fileBytes = IOFile.ReadAllBytes(path);
+                    return File(
+                            fileBytes,
+                            MediaTypeNames.Application.Octet,
+                            Path.GetFileName(path)
+                        );
+                }
+                else
+                {
+                    return Json(WebResponseContent.Instance.Error($"鏈壘鍒版枃浠�"));
+                }
+            }
+            catch (Exception ex)
+            {
+                return Json(WebResponseContent.Instance.Error($"涓嬭浇澶辫触锛歿ex.Message}"));
+            }
+        }
+
+        [HttpPost, HttpGet, Route("DownloadRegFile"), AllowAnonymous]
+        public ActionResult DownloadRegFile([FromBody] PathModel model)
+        {
+            try
+            {
+                string folderPath = model.Path;
+
+                foreach (var item in folderPath.ToCharArray())
+                {
+                    if (Regex.IsMatch(item.ToString(), @"[\u4e00-\u9fa5]"))
+                    {
+                        return Json(WebResponseContent.Instance.Error($"鎻掍欢璺緞涓嶈兘鍖呭惈涓枃"));
+                    }
+                }
+
+                string path = $"{AppDomain.CurrentDomain.BaseDirectory}DownLoad/";
+
+                // 濡傛灉鏂囦欢澶逛笉瀛樺湪锛屽垯鍒涘缓鏂囦欢澶�
+                //if (!Directory.Exists(folderPath))
+                //{
+                //    return Json(WebResponseContent.Instance.Error($"鎻掍欢璺緞涓嶅瓨鍦�"));
+                //}
+                // 鑾峰彇鏃ュ織鏂囦欢璺緞
+                string filePath = Path.Combine(path, "reg.reg");
+
+                if (IOFile.Exists(filePath))
+                {
+                    IOFile.Delete(filePath); // 鍒犻櫎宸插瓨鍦ㄧ殑鏃ュ織鏂囦欢
+                }
+
+                // 鏋勯�犳棩蹇楀唴瀹�
+                string content = $"Windows Registry Editor Version 5.00\r\n[HKEY_CLASSES_ROOT\\myapp]\r\n@=\"URL:MyApp Protocol\"\r\n\"URL Protocol\"=\"\"\r\n[HKEY_CLASSES_ROOT\\myapp\\shell]\r\n[HKEY_CLASSES_ROOT\\myapp\\shell\\open]\r\n[HKEY_CLASSES_ROOT\\myapp\\shell\\open\\command]\r\n@=\"\\\"{model.Path.Replace(@"\", @"\\")}\\\\FaceSdkX64Register.exe\\\" \\\"%1\\\"\"";
+
+                // 灏嗘棩蹇楀唴瀹硅拷鍔犲埌鏃ュ織鏂囦欢涓�
+                IOFile.AppendAllText(filePath, content);
+
+                byte[] fileBytes = IOFile.ReadAllBytes(filePath);
+                return File(
+                        fileBytes,
+                        MediaTypeNames.Application.Octet,
+                        Path.GetFileName(filePath)
+                    );
+            }
+            catch (Exception ex)
+            {
+                return Json(WebResponseContent.Instance.Error($"涓嬭浇澶辫触锛歿ex.Message}"));
+            }
+        }
+    }
+    public class PathModel
+    {
+        public string Path { get; set; }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
new file mode 100644
index 0000000..ddb91db
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -0,0 +1,57 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_WCSServer.Controllers.Task
+{
+    [Route("api/Task")]
+    [ApiController]
+    public class TaskController : ApiBaseController<ITaskService, Dt_Task>
+    {
+        private readonly IHttpContextAccessor _httpContextAccessor;
+        public TaskController(ITaskService service, IHttpContextAccessor httpContextAccessor) : base(service)
+        {
+            _httpContextAccessor = httpContextAccessor;
+        }
+
+        [HttpPost, Route("ReceiveTask"), AllowAnonymous]
+        public WebResponseContent ReceiveWMSTask([FromBody] List<WMSTaskDTO> taskDTOs)
+        {
+            return Service.ReceiveWMSTask(taskDTOs);
+        }
+
+        [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
+        public WebResponseContent UpdateTaskExceptionMessage(int taskNum, string message)
+        {
+            return Service.UpdateTaskExceptionMessage(taskNum, message);
+        }
+
+        [HttpPost, HttpGet, Route("UpdateTaskStatusToNext")]
+        public WebResponseContent UpdateTaskStatusToNext(int taskNum)
+        {
+            return Service.UpdateTaskStatusToNext(taskNum);
+        }
+
+        [HttpPost, HttpGet, Route("TaskStatusRecovery")]
+        public WebResponseContent TaskStatusRecovery(int taskNum)
+        {
+            return Service.TaskStatusRecovery(taskNum);
+        }
+
+        [HttpPost, HttpGet, Route("RollbackTaskStatusToLast")]
+        public WebResponseContent RollbackTaskStatusToLast(int taskNum)
+        {
+            return Service.RollbackTaskStatusToLast(taskNum);
+        }
+        [HttpPost, HttpGet, Route("AtOnceUpdate")]
+        public WebResponseContent AtOnceUpdate(int taskid)
+        {
+            return Service.AtOnceUpdate(taskid);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs"
new file mode 100644
index 0000000..97cb430
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskExecuteDetailController.cs"
@@ -0,0 +1,33 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+
+
+namespace WIDESEAWCS_Server.Controllers.Task
+{
+    [Route("api/TaskExecuteDetail")]
+    [ApiController]
+    public class TaskExecuteDetailController : ApiBaseController<ITaskExecuteDetailService, Dt_TaskExecuteDetail>
+    {
+        public TaskExecuteDetailController(ITaskExecuteDetailService service) : base(service)
+        {
+        }
+
+        [HttpPost, HttpGet, Route("GetDetailInfo")]
+        public WebResponseContent GetDetailInfo(int taskNum)
+        {
+            return Service.GetDetailInfo(taskNum);
+        }
+
+        [HttpPost, HttpGet, Route("GetDetailDatas")]
+        public WebResponseContent GetDetailDatas(int taskNum)
+        {
+            return Service.GetDetailDatas(taskNum);
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/Task_htyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/Task_htyController.cs"
new file mode 100644
index 0000000..9dee444
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/Task_htyController.cs"
@@ -0,0 +1,20 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.Task
+{
+    [Route("api/TaskHty")]
+    [ApiController]
+    public class Task_htyController : ApiBaseController<ITaskhtyService, Dt_Task_hty>
+    {
+        public Task_htyController(ITaskhtyService service) : base(service)
+        {
+        }
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AlarmResetHsyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AlarmResetHsyController.cs"
new file mode 100644
index 0000000..188e97b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AlarmResetHsyController.cs"
@@ -0,0 +1,76 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting.Server;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_TaskInfoService;
+
+
+namespace WIDESEAWCS_Server.Controllers.SerialPort
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class AlarmResetHsyController : ApiBaseController<IAlarmResetHsyServer, AlarmResetHsyController>
+    {
+        public AlarmResetHsyController(IAlarmResetHsyServer service) : base(service)
+        {
+           
+        }
+        [HttpPost, Route("AddAlarmHsy")]
+        public WebResponseContent AddAlarmHsy(int deptid, string alarmContent, bool resetStatus)
+        {
+            return Service.AddAlarmHsy(deptid,alarmContent, resetStatus);
+        }
+
+
+        /// <summary>
+        /// 鏌ョ湅琛ㄧ殑鍏ㄩ儴淇℃伅锛屾寜鐓х姸鎬佷负ture锛屾椂闂存渶鏂版潵鎺掑簭
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("GetWebSocketInfo")]
+        public WebResponseContent GetWebSocketInfo(int deptid)
+        {
+            return Service.GetWebSocketInfo(deptid);
+        }
+
+        /// <summary>
+        /// 灏嗚〃涓姸鎬佸叏閮ㄤ负true鐨勬敼涓篺alse
+        /// </summary>
+        /// <param name="status"></param>
+        [HttpPost, Route("BecomeTrue")]
+        public WebResponseContent BecomeTrue()
+        {
+            return Service.BecomeTrue();
+        }
+
+
+        /// <summary>
+        /// 鎺ユ敹涓婃父绯荤粺淇℃伅
+        /// </summary>
+        /// <param name="upstreamIDTO"></param>
+        /// <returns></returns>
+        [HttpPost, Route("UpstreamInspectionRoad")]
+        public WebResponseContent UpstreamInspectionRoad([FromBody]UpstreamIDTO upstreamIDTO)
+        {
+            return Service.UpstreamInspectionRoad(upstreamIDTO);
+        }
+
+
+        /// <summary>
+        /// 鍒犻櫎璇ヨ建閬撶珯鐨勬姤璀︿俊鍙�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("DeleteAllinform")]
+        public WebResponseContent DeleteAllinform()
+        {
+            return Service.DeleteAllinform();
+        }
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AuthorizationRecordController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AuthorizationRecordController.cs"
new file mode 100644
index 0000000..24420ec
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/AuthorizationRecordController.cs"
@@ -0,0 +1,28 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting.Server;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_TaskInfoService;
+
+
+namespace WIDESEAWCS_Server.Controllers.SerialPort
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class AuthorizationRecordController : ApiBaseController<IAuthorizationRecordServer, Dt_AuthorizationRecord>
+    {
+        public AuthorizationRecordController(IAuthorizationRecordServer service) : base(service)
+        {
+           
+        }
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/DepartmentController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/DepartmentController.cs"
new file mode 100644
index 0000000..d1b64de
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/DepartmentController.cs"
@@ -0,0 +1,26 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITelescopicService;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.Telescopic
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class DepartmentController : ApiBaseController<IDepartmentService, Dt_Department>
+    {
+        public DepartmentController(IDepartmentService service) : base(service)
+        {
+
+
+        }
+
+
+      
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/FaceRecognitionController .cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/FaceRecognitionController .cs"
new file mode 100644
index 0000000..37c6c25
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/FaceRecognitionController .cs"
@@ -0,0 +1,28 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting.Server;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_TaskInfoService;
+
+
+namespace WIDESEAWCS_Server.Controllers.SerialPort
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class FaceRecognitionController : ApiBaseController<IFaceRecognitionServer, Dt_FaceRecognition>
+    {
+        public FaceRecognitionController(IFaceRecognitionServer service) : base(service)
+        {
+           
+        }
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs"
new file mode 100644
index 0000000..167d68e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/IPaddressController .cs"
@@ -0,0 +1,29 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting.Server;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_TaskInfoService;
+using WIDESEAWCS_TelescopicService;
+
+
+namespace WIDESEAWCS_Server.Controllers.SerialPort
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class IPaddressController : ApiBaseController<IIPaddressServer, Dt_CustomIPaddress>
+    {
+        public IPaddressController(IIPaddressServer service) : base(service)
+        {
+           
+        }
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/LoginhsyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/LoginhsyController.cs"
new file mode 100644
index 0000000..0d22b22
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/LoginhsyController.cs"
@@ -0,0 +1,44 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITelescopicService;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.Telescopic
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class LoginhsyController : ApiBaseController<ILoginhsyService, Dt_Loginhsy>
+    {
+        public LoginhsyController(ILoginhsyService service) : base(service)
+        {
+        }
+
+
+        /// <summary>
+        /// 鐧诲叆璁板綍
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("LoginRecord")]
+        public WebResponseContent LoginRecord([FromBody]PaginationDTO pagination)
+        {
+            return Service.LoginRecord(pagination);
+        }
+
+        /// <summary>
+        /// 缁欐帹鍑烘椂闂�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpPost, Route("OutLoginTime")]
+        public WebResponseContent OutLoginTime(string account)
+        {
+            return Service.OutLoginTime(account);
+        }
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs"
new file mode 100644
index 0000000..49807d5
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceController.cs"
@@ -0,0 +1,137 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITelescopicService;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.Telescopic
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class MaintenanceController : ApiBaseController<IMaintenanceService, Dt_Maintenance>
+    {
+        
+        public MaintenanceController(IMaintenanceService service) : base(service)
+        {
+         
+        }
+
+        /// <summary>
+        /// 鏌ョ湅妫�淇鐞�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("ShowMaintence"), AllowAnonymous]
+        public WebResponseContent ShowMaintence([FromBody] PaginationDTO pagination)
+        {
+            return Service.ShowMaintence(pagination);
+        }
+
+        /// <summary>
+        /// 鍦ㄦ淇汉鍛樼洃鎺э紙鏁板瓧澶у睆锛�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("PersonnelMonitoring"), AllowAnonymous]
+        public WebResponseContent PersonnelMonitoring([FromBody] PaginationDTO pagination)
+        {
+            return Service.PersonnelMonitoring(pagination);
+        }
+
+
+        /// <summary>
+        /// 鏇存敼鐘舵�侊紝寮哄埗涓嬬嚎
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpPost, Route("RunOperation"), AllowAnonymous]
+        public WebResponseContent RunOperation(int id, string account, string LocalIP)
+        {
+            var userIp = HttpContext.GetUserIp();//鐢ㄦ埛鐢佃剳ip
+            var reslut = userIp.Replace("::ffff:", "");
+            return Service.RunOperation(id,account, LocalIP);
+        }
+
+        /// <summary>
+        /// 鏇存敼鐘舵��
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpPost, Route("ChangeTasState"), AllowAnonymous]
+        public WebResponseContent ChangeTasState(int id)
+        {
+            return Service.ChangeTasState(id);
+        }
+
+
+        /// <summary>
+        /// 妫�淇搷浣滆褰�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("MaintenanceOperationRecord"), AllowAnonymous]
+        public WebResponseContent MaintenanceOperationRecord([FromBody] PaginationDTO pagination)
+        {
+           
+            return Service.MaintenanceOperationRecord(pagination);
+        }
+
+
+        /// <summary>
+        /// 鏌ョ湅鐧诲叆浠婂ぉ璐﹀彿鐨勬淇换鍔�
+        /// </summary>
+        /// <param name="id"></param>
+        /// <returns></returns>
+        [HttpPost, Route("MaintenanceTasksOfTheDay")]
+        public WebResponseContent MaintenanceTasksOfTheDay(string account)
+        {
+            
+            return Service.MaintenanceTasksOfTheDay(account);
+        }
+
+
+
+        /// <summary>
+        /// 寮�濮嬫淇�
+        /// </summary>
+        /// <param name="account"></param>
+        /// <returns></returns>
+        [HttpPost, Route("StartMaintenceTask")]
+        public WebResponseContent StartMaintenceTask(string account)
+        {
+            var userIp = HttpContext.GetUserIp();//鐢ㄦ埛鐢佃剳ip
+            var reslut = userIp.Replace("::ffff:", "");
+            return Service.StartMaintenceTask(account, userIp);
+        }
+
+
+        /// <summary>
+        /// 缁撴潫妫�淇�
+        /// </summary>
+        /// <param name="account"></param>
+        /// <returns></returns>
+        [HttpPost, Route("StopMaintenanceTask")]
+        public WebResponseContent StopMaintenanceTask(string account)
+        {
+            var userIp = HttpContext.GetUserIp();//鐢ㄦ埛鐢佃剳ip
+            var reslut = userIp.Replace("::ffff:", "");
+            return Service.StopMaintenanceTask(account, userIp);
+        }
+
+
+        /// <summary>
+        ///  灞曠ず寮�濮嬫淇汉鍛�
+        /// </summary>
+        /// <param name="status">妫�淇姸鎬�</param>
+        /// <returns></returns>
+        [HttpPost,Route("YShowStartTake")]
+        public WebResponseContent YShowStartTake()
+        {
+            return Service.YShowStartTake();
+        }
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceTeamController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceTeamController.cs"
new file mode 100644
index 0000000..6bd8959
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/MaintenanceTeamController.cs"
@@ -0,0 +1,35 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITelescopicService;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.Telescopic
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class MaintenanceTeamController : ApiBaseController<IMaintenanceTeamService, Dt_MaintenanceTeam>
+    {
+        public MaintenanceTeamController(IMaintenanceTeamService service) : base(service)
+        {
+
+
+        }
+
+
+        /// <summary>
+        /// 妫�淇缃褰�, AllowAnonymous
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("MaintenanceSettingRecord")]
+        public WebResponseContent MaintenanceSettingRecord([FromBody] PaginationDTO pagination )
+        {
+            return Service.MaintenanceSettingRecord(pagination);
+
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/ParametersController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/ParametersController.cs"
new file mode 100644
index 0000000..561cece
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/ParametersController.cs"
@@ -0,0 +1,88 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITelescopicService;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.Telescopic
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class ParametersController : ApiBaseController<IParametersService, Dt_Parameters>
+    {
+        public ParametersController(IParametersService service) : base(service)
+        {
+
+        }
+        /// <summary>
+        /// 鎵嬪姩鎺у埗锛屼几缂╂潌鐨勭缉鍥炲拰浼稿嚭閫熷害
+        /// </summary>
+        /// <param name="position">浼哥缉鏉嗙殑浣嶇疆锛堝乏鍙筹級</param>
+        /// <param name="ExtendedState">浼�/缂╃姸鎬�</param>
+        /// <returns></returns>
+        /// 
+        [HttpPost, Route("ManualOperation")]
+        public  WebResponseContent ManualOperation(string position, string ExtendedState)
+        {
+            return Service.ManualOperation(position, ExtendedState);
+        }
+
+        /// <summary>
+        /// 鑷姩鎺у埗浼哥缉鏉嗙殑浼稿嚭鍜岀缉鍥為�熷害
+        /// </summary>
+        /// <param name="ExtendedState">浼�/鍑虹姸鎬�</param>
+        /// <returns></returns>
+
+        [HttpPost,Route("automation")]
+        public WebResponseContent automation(string ExtendedState)
+        {
+            return Service.automation(ExtendedState);
+        }
+
+        /// <summary>
+        /// 鏍规嵁璐﹀彿娣诲姞浼哥缉鏉嗛�熷害
+        /// </summary>
+        /// <param name="entity"></param>
+        /// <returns></returns>
+        [HttpPost, Route("AddSpeed"), AllowAnonymous]
+        public WebResponseContent AddSpeed([FromBody]SpeedDTO entity)
+        {
+            return Service.AddSpeed(entity);
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠绋嬪簭鏈�鏂扮殑浼哥缉鏉嗛�熷害鍥炲~缁欏墠绔�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("BackfillSpeed")]
+        public WebResponseContent BackfillSpeed()
+        {
+            return Service.BackfillSpeed();
+        }
+
+
+        /// <summary>
+        ///褰撹嚜鍔ㄤ几鍑洪渶瑕佹殏鍋滄椂锛屾殏鍋滄寜閽�
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("PauseButton")]
+        public WebResponseContent PauseButton()
+        {
+            return Service.PauseButton();
+        }
+
+        /// <summary>
+        /// 鑾峰彇褰撳墠浼哥缉鏉嗙殑浣嶇疆
+        /// </summary>
+        /// <returns></returns>
+        [HttpPost, Route("CurrentLocation")]
+        public WebResponseContent CurrentLocation()
+        {
+            return Service.CurrentLocation();
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/TeamCategoryController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/TeamCategoryController.cs"
new file mode 100644
index 0000000..57ff526
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/TeamCategoryController.cs"
@@ -0,0 +1,28 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting.Server;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_TaskInfoService;
+
+
+namespace WIDESEAWCS_Server.Controllers.SerialPort
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class TeamCategoryController : ApiBaseController<ITeamCategoryServer, Dt_TeamCategory>
+    {
+        public TeamCategoryController(ITeamCategoryServer service) : base(service)
+        {
+           
+        }
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/UnitCategoryController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/UnitCategoryController.cs"
new file mode 100644
index 0000000..0401729
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Telescopic/UnitCategoryController.cs"
@@ -0,0 +1,28 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Hosting.Server;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_DTO.Telescopic;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_TaskInfoService;
+
+
+namespace WIDESEAWCS_Server.Controllers.SerialPort
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class UnitCategoryController : ApiBaseController<IUnitCategoryServer, Dt_UnitCategory>
+    {
+        public UnitCategoryController(IUnitCategoryServer service) : base(service)
+        {
+           
+        }
+
+
+
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs"
new file mode 100644
index 0000000..c8e36dd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationInfoController.cs"
@@ -0,0 +1,53 @@
+锘縰sing HslCommunication.WebSocket;
+using Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using System.Collections.Generic;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_DTO.BasicInfo;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.WMSPart
+{
+    /// <summary>
+    /// 璐т綅
+    /// </summary>
+    [Route("api/LocationInfo")]
+    [ApiController]
+    public class LocationInfoController : ApiBaseController<ILocationInfoService, Dt_LocationInfo>
+    {
+
+        public LocationInfoController(ILocationInfoService service) : base(service)
+        {
+        }
+
+        [HttpPost, Route("GetLocationConfigs"), AllowAnonymous]
+        public WebResponseContent GetLocationConfigs(int layer)
+        {
+            DateTime s = DateTime.Now;
+            WebResponseContent content = Service.GetLocationConfigs(layer);
+            double d = (DateTime.Now - s).TotalMilliseconds;
+            return content;
+        }
+        [HttpPost, Route("GetLocationLayer"), AllowAnonymous]
+        public WebResponseContent GetLocationLayer()
+        {
+            return Service.GetLocationLayer();
+        }
+
+        [HttpPost, Route("InitializationLocation"), AllowAnonymous]
+        public WebResponseContent InitializationLocation([FromBody] InitializationLocationDTO initializationLocationDTO)
+        {
+            return Service.InitializationLocation(initializationLocationDTO);
+        }
+
+        [HttpPost, Route("getlocation"), AllowAnonymous]
+        public WebResponseContent getlocation()
+        {
+            return Service.getlocation();
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs"
new file mode 100644
index 0000000..d04c92d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/LocationStatusChangeRecordController.cs"
@@ -0,0 +1,22 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.WMSPart
+{
+    /// <summary>
+    /// 璐т綅鐘舵�佸彉鍔ㄨ褰�
+    /// </summary>
+    [Route("api/LocationStatusChangeRecord")]
+    [ApiController]
+    public class LocationStatusChangeRecordController : ApiBaseController<ILocationStatusChangeRecordService, Dt_LocationStatusChangeRecord>
+    {
+        public LocationStatusChangeRecordController(ILocationStatusChangeRecordService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs"
new file mode 100644
index 0000000..d7d9609
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoController.cs"
@@ -0,0 +1,24 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.WMSPart
+{
+    /// <summary>
+    /// 搴撳瓨
+    /// </summary>
+    [Route("api/StockInfo")]
+    [ApiController]
+    public class StockInfoController : ApiBaseController<IStockInfoService, Dt_StockInfo>
+    {
+        public StockInfoController(IStockInfoService service) : base(service)
+        {
+        }
+
+    }
+}
+
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs"
new file mode 100644
index 0000000..89ec6dc
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetailController.cs"
@@ -0,0 +1,20 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.WMSPart
+{
+    /// <summary>
+    /// 搴撳瓨鏄庣粏
+    /// </summary>
+    [Route("api/StockInfoDetail")]
+    [ApiController]
+    public class StockInfoDetailController : ApiBaseController<IStockInfoDetailService, Dt_StockInfoDetail>
+    {
+        public StockInfoDetailController(IStockInfoDetailService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs"
new file mode 100644
index 0000000..0d46fff
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfoDetail_HtyController.cs"
@@ -0,0 +1,21 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.WMSPart
+{
+    /// <summary>
+    /// 搴撳瓨鏄庣粏鍘嗗彶
+    /// </summary>
+    [Route("api/StockInfoDetail_Hty")]
+    [ApiController]
+    public class StockInfoDetail_HtyController : ApiBaseController<IStockInfoDetail_HtyService, Dt_StockInfoDetail_Hty>
+    {
+        public StockInfoDetail_HtyController(IStockInfoDetail_HtyService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs"
new file mode 100644
index 0000000..1a61bee
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockInfo_HtyController.cs"
@@ -0,0 +1,21 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.WMSPart
+{
+    /// <summary>
+    /// 搴撳瓨鍘嗗彶
+    /// </summary>
+    [Route("api/StockInfo_Hty")]
+    [ApiController]
+    public class StockInfo_HtyController : ApiBaseController<IStockInfo_HtyService, Dt_StockInfo_Hty>
+    {
+        public StockInfo_HtyController(IStockInfo_HtyService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs"
new file mode 100644
index 0000000..b26af8d
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/WMSPart/StockQuantityChangeRecordController.cs"
@@ -0,0 +1,20 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEAWCS_Core.BaseController;
+using WIDESEAWCS_IWMSPart;
+using WIDESEAWCS_Model.Models;
+
+namespace WIDESEAWCS_Server.Controllers.WMSPart
+{
+    /// <summary>
+    /// 搴撳瓨鏁伴噺鍙樺姩璁板綍
+    /// </summary>
+    [Route("api/StockQuantityChangeRecord")]
+    [ApiController]
+    public class StockQuantityChangeRecordController : ApiBaseController<IStockQuantityChangeRecordService, Dt_StockQuantityChangeRecord>
+    {
+        public StockQuantityChangeRecordController(IStockQuantityChangeRecordService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.Development.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.Development.json"
new file mode 100644
index 0000000..0c208ae
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.Development.json"
@@ -0,0 +1,8 @@
+{
+  "Logging": {
+    "LogLevel": {
+      "Default": "Information",
+      "Microsoft.AspNetCore": "Warning"
+    }
+  }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
new file mode 100644
index 0000000..ab9fa65
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
@@ -0,0 +1,44 @@
+{
+  "urls": "http://*:1598", //web鏈嶅姟绔彛锛屽鏋滅敤IIS閮ㄧ讲锛屾妸杩欎釜鍘绘帀
+  "Logging": {
+    "LogLevel": {
+      "Default": "Information",
+      "Microsoft.AspNetCore": "Warning"
+    }
+  },
+  "dics": "deviceType,devicePlcType,jobAssembly,jobClassName,deviceStatus,taskType,stock,taskState,mateType,inOutType,enableStatusEnum,locationStatusEnum,locationTypeEnum",
+  "AllowedHosts": "*",
+  "ConnectionStringsEncryption": false,
+  "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue 
+  //1.MySql
+  //2.SqlServer
+  //3.Sqlite
+  //4.Oracle
+  //5.PostgreSQL
+  "DBType": "SqlServer",
+  //杩炴帴瀛楃涓�
+  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWCS_MXSSG;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+
+
+
+
+  //璺ㄥ煙
+  "Cors": {
+    "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
+    "EnableAllIPs": true, //褰撲负true鏃讹紝寮�鏀炬墍鏈塈P鍧囧彲璁块棶銆�
+    // 鏀寔澶氫釜鍩熷悕绔彛锛屾敞鎰忕鍙e彿鍚庝笉瑕佸甫/鏂滄潌锛氭瘮濡俵ocalhost:8000/锛屾槸閿欑殑
+    // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
+    "IPs": "http://127.0.0.1:8080,http://localhost:8080"
+  },
+  "ApiName": "WIDESEA",
+  "ExpMinutes": 120,
+  "QuartzJobAutoStart": false,
+  "DBSeedEnable": false,
+  "LogDeubgEnable": false, //鏄惁璁板綍璋冭瘯鏃ュ織
+  "PrintSql": false, //鎵撳嵃SQL璇彞
+  "LogAOPEnable": false, //鏄惁璁板綍AOP鏃ュ織
+  "WebSocketEnable": true,
+  //"WebSocketPort": 9260
+  "WebSocketPort": 5173,
+  "DepartmentID": "1" //杩欎釜鏄几鍑�/浼稿洖鐨勯儴闂╥d
+}//鍗曟満鐗�
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/camera.ini" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/camera.ini"
new file mode 100644
index 0000000..c1c0b17
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/camera.ini"
@@ -0,0 +1,9 @@
+[common]
+
+# 彩色相机VID+PID配置,以16进制值表示
+vid1=0C45
+pid1=
+
+# 红外相机VID+PID配置,以16进制值表示
+vid2=0C45
+pid2=
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/1744349998854.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/1744349998854.png"
new file mode 100644
index 0000000..bc1a709
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/1744349998854.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/2025.jpg" "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/2025.jpg"
new file mode 100644
index 0000000..40c1c10
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/\345\220\216\347\253\257/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/wwwroot/image/2025.jpg"
Binary files differ

--
Gitblit v1.9.3