From a11a7e324d2b12a6637d4c84b7c0bc25c27b99cd Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期二, 22 四月 2025 11:37:21 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiXinLaiRui/LunDuiYa

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/ToAPPService.cs                                                      |    5 
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/roomtemperature.vue                                                      |   61 
 项目代码/WMS/WIDESEA_WMSClient/public/wcslogo.png                                                                                           |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/quartzJob/dispatchInfo.vue                                                                         |  247 ++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Release/net6.0/WIDESEA_StorageBasicRepository.csproj.CopyComplete         |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_SelectionStandards.vue                                                    |    2 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2                                                                      |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/system/Sys_Role1.vue                                                                               |   72 
 项目代码/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/head_bg.png                                                                         |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Release/net6.0/WIDESEA_IBusinessServices.csproj.CopyComplete                   |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocol.vue                                                                       |  229 ++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Release/net6.0/WIDESEA_IStorageBasicRepository.csproj.CopyComplete       |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Release/net6.0/WIDESEA_StorageOutOrderRepository.csproj.CopyComplete   |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Release/net6.0/WIDESEA_BusinessServices.csproj.CopyComplete                     |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue                                                                                  |  252 ++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.csproj.CopyComplete                 |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/charts/bigdata.vue                                                                                 |  258 ++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyService.csproj.CopyComplete         |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/assets/imgs/wcs_logo.png                                                                                 |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Release/net6.0/WIDESEA_Services.csproj.CopyComplete                                     |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/taskinfo/extend/taskExecuteDetail.vue                                                          |  259 ++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyRepository.csproj.CopyComplete     |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/basicinfo/Dt_needBarcode.vue                                                                       |   93 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs                                                  |  117 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Release/net6.0/WIDESEA_IStorageTaskRepository.csproj.CopyComplete         |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.CopyComplete   |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CopyComplete             |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CopyComplete           |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/components/DeviceLine.vue                                                                                |   84 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.csproj.CopyComplete                                       |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Release/net6.0/WIDESEA_IStorageOutOrderServices.csproj.CopyComplete      |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin                                                                       |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2                                                           |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IDt_WheelsStockService.cs                                                 |    2 
 项目代码/WMS/WIDESEA_WMSClient/src/components/DeviceLineVo.vue                                                                              |   67 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IProcessService/obj/Debug/net6.0/WIDESEAWCS_IProcessService.csproj.CopyComplete                   |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.csproj.CopyComplete                                     |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock                                                             |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v7.bin                                                      |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/charts/formChart.vue                                                                               |  118 +
 项目代码/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/IviewCircle.vue                                                                     |  102 +
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CopyComplete               |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ZY/Partial/ZY_GetCLInfo.cs                                                 |    1 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.CopyComplete                                   |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CopyComplete         |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/APP/ToAPPController.cs                                                         |   10 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Release/net6.0/WIDESEA_IBusinessesRepository.csproj.CopyComplete           |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/components/DeviceStacker.vue                                                                             |   57 
 项目代码/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin                                                      |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json                                                                           |    4 
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue                                                        |   96 
 项目代码/WMS/WIDESEA_WMSClient/public/wms_d.png                                                                                             |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Release/net6.0/WIDESEA_DTO.csproj.CopyComplete                                               |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v7.bin                                                      |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Release/net6.0/WIDESEA_IStorageOutOrderRepository.csproj.CopyComplete |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Release/net6.0/WIDESEA_IStorageTaskServices.csproj.CopyComplete              |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/layout.less                                                                         |  197 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Release/net6.0/WIDESEA_Common.csproj.CopyComplete                                         |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CopyComplete           |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Release/net6.0/WIDESEA_WMSServer.csproj.CopyComplete                                   |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin                                                      |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Release/net6.0/WIDESEA_IServices.csproj.CopyComplete                                   |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/builder/coder.vue                                                                                  |  658 ++++++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Release/net6.0/WIDESEA_StorageBasicServices.csproj.CopyComplete             |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Volume.vue                                                               |   58 
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/hightemperature.vue                                                      |   60 
 项目代码/WMS/WIDESEA_WMSClient/src/views/widesea_wms/check/Dt_CheckResult.vue                                                               |    2 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2                                                                      |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj                                             |    1 
 项目代码/WMS/WIDESEA_WMSClient/src/views/basicinfo/router.vue                                                                               |  265 ++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Debug/net6.0/WIDESEAWCS_DTO.csproj.CopyComplete                                           |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessService/obj/Debug/net6.0/WIDESEAWCS_ProcessService.csproj.CopyComplete                     |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json                                                                           |    2 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo                                                                               |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.csproj.CopyComplete               |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CopyComplete                 |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.csproj.CopyComplete                 |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/charts/chart.vue                                                                                   |  101 +
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/DesignTimeBuild/.dtbcache.v2                                                           |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Release/net6.0/WIDESEA_BusinessesRepository.csproj.CopyComplete             |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs                                                |  373 +++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.csproj.CopyComplete                   |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/quartzJob/extend/importDevicePro.vue                                                           |  116 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Release/net6.0/WIDESEA_StorageTaskServices.csproj.CopyComplete               |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_x.png                                                                                    |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/OldWheelsStock/Dt_WheelsStock_Old.cs                                              |    9 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Release/net6.0/WIDESEA_Model.csproj.CopyComplete                                           |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_Hty.vue                                                                              |  246 ++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Release/net6.0/WIDESEA_IStoragIntegrationServices.csproj.CopyComplete |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_d.png                                                                                    |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocolDetail.vue                                                                 |  207 ++
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/indexLibrary.vue                                                                      |   48 
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Twoletters.vue                                                           |   48 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.csproj.CopyComplete                     |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ToAPP/IToAPPService.cs                                                    |    1 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Release/net6.0/WIDESEA_StorageTaskRepository.csproj.CopyComplete           |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue                                                     |   49 
 项目代码/WMS/WIDESEA_WMSClient/src/views/charts/flex.vue                                                                                    |  386 +++
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue                                                         |  102 +
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Debug/net6.0/WIDESEAWCS_IProcessRepository.csproj.CopyComplete              |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Release/net6.0/WIDESEA_IStorageBasicServices.csproj.CopyComplete            |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Release/net6.0/WIDESEA_Repository.csproj.CopyComplete                                 |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.csproj.CopyComplete               |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyService.csproj.CopyComplete           |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/routerview.vue                                                                |   96 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Release/net6.0/WIDESEA_StoragIntegrationServices.csproj.CopyComplete   |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.csproj.CopyComplete                   |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock                                                             |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.csproj.CopyComplete                               |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceInfo.vue                                                                           |  365 +++
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Release/net6.0/WIDESEA_StorageOutOrderServices.csproj.CopyComplete       |    0 
 /dev/null                                                                                                                               |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Debug/net6.0/WIDESEAWCS_Model.csproj.CopyComplete                                       |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/baozhuang.vue                                                            |   42 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Release/net6.0/WIDESEA_IRepository.csproj.CopyComplete                               |    0 
 项目代码/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/addrouters.vue                                                                |  351 +++
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo                                                                               |    0 
 117 files changed, 5,912 insertions(+), 7 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin"
new file mode 100644
index 0000000..d8b0467
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v7.bin"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v9.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v9.bin"
deleted file mode 100644
index de5cb5b..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.metadata.v9.bin"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin"
new file mode 100644
index 0000000..3d795ae
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v7.bin"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v9.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v9.bin"
deleted file mode 100644
index b027bcb..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/ProjectEvaluation/wideseawcs_server.projects.v9.bin"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2"
index fe150a6..4914360 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/DesignTimeBuild/.dtbcache.v2"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2"
index 4e88137..6e311fa 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.futdcache.v2"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo"
index 2194815..cd045f3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/v17/.suo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Debug/net6.0/WIDESEAWCS_DTO.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Debug/net6.0/WIDESEAWCS_DTO.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Debug/net6.0/WIDESEAWCS_DTO.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IProcessService/obj/Debug/net6.0/WIDESEAWCS_IProcessService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IProcessService/obj/Debug/net6.0/WIDESEAWCS_IProcessService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_IProcessService/obj/Debug/net6.0/WIDESEAWCS_IProcessService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfo_HtyService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Debug/net6.0/WIDESEAWCS_Model.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Debug/net6.0/WIDESEAWCS_Model.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Debug/net6.0/WIDESEAWCS_Model.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Debug/net6.0/WIDESEAWCS_IProcessRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Debug/net6.0/WIDESEAWCS_IProcessRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Debug/net6.0/WIDESEAWCS_IProcessRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessService/obj/Debug/net6.0/WIDESEAWCS_ProcessService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessService/obj/Debug/net6.0/WIDESEAWCS_ProcessService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessService/obj/Debug/net6.0/WIDESEAWCS_ProcessService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
index df94995..b13a4a2 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json"
@@ -14,7 +14,7 @@
   //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
   //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True",
   //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=MX_LDY_WCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionString": "Data Source=.;Initial Catalog=ZCLDY_WIDESEAWCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCS2F08;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=True;ApplicationIntent=ReadWrite;MultiSubnetFailover=True",
   //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WCSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SignalR/obj/Debug/net6.0/WIDESEAWCS_SignalR.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyService.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyService.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfo_HtyService/obj/Debug/net6.0/WIDESEAWCS_TaskInfo_HtyService.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/node_modules.zip" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/node_modules.zip"
deleted file mode 100644
index bdd51fa..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/node_modules.zip"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/public/wcslogo.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/public/wcslogo.png"
new file mode 100644
index 0000000..2ef8e9b
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/public/wcslogo.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/public/wms_d.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/public/wms_d.png"
new file mode 100644
index 0000000..1e198e9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/public/wms_d.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wcs_logo.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wcs_logo.png"
new file mode 100644
index 0000000..bb7c9f9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wcs_logo.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_d.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_d.png"
new file mode 100644
index 0000000..1e198e9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_d.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_x.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_x.png"
new file mode 100644
index 0000000..a6a28ca
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/assets/imgs/wms_x.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceLine.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceLine.vue"
new file mode 100644
index 0000000..8824922
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceLine.vue"
@@ -0,0 +1,84 @@
+<template>
+    <div class="Linebox" >
+        <div class="card">
+            <div class="card-header">
+                <div id="lines2">
+                    <div class="card-body">{{ device.deviceName }}<br />
+                        -{{ device.childDeviceCode }}-
+                    </div>
+                </div>
+            </div>
+            <div class="card-body">
+                <ul class="list-group lis">
+                    <li class="list-group-item list-group-item-dark">璇诲彇淇″彿</li>
+                    <li class="list-group-item list-group-item-secondary">浠诲姟鍙凤細{{
+                        device.data.command.taskNum }}</li>
+                    <li class="list-group-item list-group-item-secondary">鎵樼洏鍙凤細{{
+                        device.data.command.barcode }}</li>
+                    <li class="list-group-item list-group-item-secondary">缁堢偣鍦板潃锛歿{
+                        device.data.command.targetAddress }}</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[6])">鎵爜绔欏彴鍏ュ簱璇锋眰</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[4])">鍫嗗灈鏈哄嚭搴撶珯鍙拌姹�</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[2])">鍫嗗灈鏈哄叆搴撶珯鍙拌姹�</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[0])">绾夸綋鍑哄簱鍙h姹�</li>
+                </ul>
+                <ul class="list-group lis">
+                    <li class="list-group-item list-group-item-dark">鍐欏叆淇″彿</li>
+                    <li class="list-group-item list-group-item-secondary">浠诲姟鍙凤細{{
+                        device.data.commandWrite.taskNum }}</li>
+                    <li class="list-group-item list-group-item-secondary">鎵樼洏鍙凤細{{
+                        device.data.commandWrite.barcode }}</li>
+                    <li class="list-group-item list-group-item-secondary">缁堢偣鍦板潃锛歿{
+                        device.data.commandWrite.targetAddress }}</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[7])">鎵爜绔欏彴鍏ュ簱璇锋眰</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[5])">鍫嗗灈鏈哄嚭搴撶珯鍙拌姹�</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[3])">鍫嗗灈鏈哄叆搴撶珯鍙拌姹�</li>
+                    <li :class="getSignalClass(device.data.writeInteractiveSignal[1])">绾夸綋鍑哄簱鍙h姹�</li>
+                </ul>
+            </div>
+        </div>
+    </div>
+</template>
+
+<script setup>
+import { defineProps } from "vue";
+
+// 瀹氫箟缁勪欢灞炴��
+const props = defineProps({
+    device: {
+        type: Object,
+        required: true
+    }
+});
+
+// 鑾峰彇淇″彿绫诲悕
+const getSignalClass = (signal) => {
+    // console.log("馃殌 ~ getSignalClass ~ signal:", signal)
+    return signal !== true ? 'list-group-item list-group-item-danger' : 'list-group-item list-group-item-success';
+};
+</script>
+
+<style scoped>
+/* .Stackerbox{
+    width: 220px;
+    float: left;
+} */
+.Linebox{
+  width: 500px;
+  float: left;
+}
+.box1{
+  float: left;
+}
+.card-body{
+  text-align: center;
+  border-radius: 6% ;
+}
+.Stacker{
+  background-color: burlywood;
+}
+.lis{
+  float: left;
+  width: 233px;
+}
+</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceLineVo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceLineVo.vue"
new file mode 100644
index 0000000..6419f9c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceLineVo.vue"
@@ -0,0 +1,67 @@
+<template>
+     <div class="Linebox">
+    <div class="card">
+      <div class="card-header">
+        <div id="lines2" >
+          <div class="card-body">{{device.deviceName}}<br/>
+            -{{ device.data.childDeviceCode }}-
+          </div>
+        </div>
+      </div>
+      <div class="card-body">
+        <ul class="list-group lis">
+          <li class="list-group-item list-group-item-dark">璇诲彇淇″彿</li>
+          <li class="list-group-item list-group-item-secondary">浠诲姟鍙凤細{{ device.data.commandAfter.conveyorLineTaskNum }}</li>
+          <li class="list-group-item list-group-item-secondary">鎵樼洏鍙凤細{{ device.data.commandAfter.conveyorLineBarcode }}</li>
+          <li class="list-group-item list-group-item-secondary">缁堢偣鍦板潃锛歿{ device.data.commandAfter.conveyorLineTargetAddress }}</li>
+          <li class="list-group-item list-group-item-secondary">鏄惁鏈夌洏锛歿{ device.data.commandAfter.hasPallet }}</li>
+          <li class="list-group-item list-group-item-secondary">鎶ヨ浠g爜锛歿{ device.data.commandAfter.conveyorLineAlarm }}</li>
+          <li class="list-group-item list-group-item-secondary">璇锋眰鍙嶉锛歿{ device.data.commandAfter.responState }}</li>
+          <li  :class="device.data.commandAfter.interactiveSignal !=0 ? 'list-group-item list-group-item-success'  :'list-group-item list-group-item-danger'">浜や簰淇″彿</li>
+        </ul> 
+      </div>
+    </div>
+</div>
+</template>
+<script setup>
+import { defineProps } from "vue";
+
+// 瀹氫箟缁勪欢灞炴��
+const props = defineProps({
+    device: {
+        type: Object,
+        required: true
+    }
+});
+
+// 鑾峰彇淇″彿绫诲悕
+const getSignalClass = (signal) => {
+    // console.log("馃殌 ~ getSignalClass ~ signal:", signal)
+    return signal !== true ? 'list-group-item list-group-item-danger' : 'list-group-item list-group-item-success';
+};
+</script>
+
+<style scoped>
+.Stackerbox {
+  width: 220px;
+  float: left;
+}
+.Linebox {
+  width: 300px;
+  float: left;
+}
+.box1 {
+  float: left;
+}
+.card-body {
+  text-align: center;
+  border-radius: 6%;
+}
+.Stacker {
+  background-color: burlywood;
+}
+.lis {
+  float: left;
+  width: 266px;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceStacker.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceStacker.vue"
new file mode 100644
index 0000000..e519d9c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/components/DeviceStacker.vue"
@@ -0,0 +1,57 @@
+<template>
+    <div class="Stackerbox">
+        <div class="card">
+          <div class="card-header">
+            <div>
+              <div class="card-body Stacker">
+                {{ Stacker.deviceName }}
+              </div>
+            </div>
+          </div>
+          <div class="card-body">
+            <ul class="list-group">
+              <li class="list-group-item list-group-item-secondary">
+                浠诲姟鍙凤細{{ Stacker.data.currentTaskNum || '鏆傛棤浠诲姟鍙�' }}
+              </li>
+              <li :class="getStatusClass(Stacker.data.stackerCraneAutoStatusDes)">
+                宸ヤ綔妯″紡锛歿{ Stacker.data.stackerCraneAutoStatusDes }}
+              </li>
+              <li :class="getStatusClass(Stacker.data.stackerCraneStatusDes)">
+                璁惧鐘舵�侊細{{ Stacker.data.stackerCraneStatusDes }}
+              </li>
+              <li :class="getStatusClass(Stacker.data.stackerCraneWorkStatusDes)">
+                宸ヤ綔鐘舵�侊細{{ Stacker.data.stackerCraneWorkStatusDes }}
+              </li>
+            </ul>
+          </div>
+        </div>
+      </div>
+</template>
+
+<script setup>
+import { defineProps } from "vue";
+
+// 瀹氫箟缁勪欢灞炴��
+const props = defineProps({
+    Stacker: {
+        type: Object,
+        required: true
+    }
+});
+
+// 鑾峰彇鐘舵�佺被鍚嶏紙浼樺寲鐘舵�佸垽鏂級
+const getStatusClass = (status) => {
+  if (status === '姝e父' || status === '鑷姩' || status === '寰呮満') {
+    return 'list-group-item list-group-item-success';
+  }
+  if (status === '鏁呴殰' || status === '鍋滄満') {
+    return 'list-group-item list-group-item-danger';
+  }
+  return 'list-group-item list-group-item-warning'; // 榛樿璀﹀憡鐘舵��
+};
+
+</script>
+
+<style lang="scss" scoped>
+
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/addrouters.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/addrouters.vue"
new file mode 100644
index 0000000..28ed38f
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/addrouters.vue"
@@ -0,0 +1,351 @@
+<template>
+  <div>
+    <vol-box
+      v-model="showDetialBox"
+      :lazy="true"
+      :width="width"
+      :padding="15"
+      title="璺敱閰嶇疆"
+      :footer="true"
+    >
+      <el-row height="50">
+        <el-col :span="24">
+          <div class="grid-content right-text">
+            <!-- <el-link type="primary" @click="deleteNode">绉婚櫎鑺傜偣</el-link> -->
+            <el-link type="primary" @click="addNode">娣诲姞鑺傜偣</el-link>
+          </div>
+          <div class="grid-content right-text"></div>
+        </el-col>
+      </el-row>
+      <el-row>
+        <el-col :span="6">
+          <div
+            class="grid-content"
+            style="font-weight: bold; font-size: 18px; margin-left: 5%"
+          >
+            <el-form :rules="routeTypeRules" :model="routerType">
+              <el-form-item label="璺敱绫诲瀷" label-width="120" prop="type">
+                <el-select
+                  v-model="routerType.type"
+                  filterable
+                  placeholder="璇烽�夋嫨"
+                >
+                  <el-option
+                    v-for="item in routerTypes"
+                    :key="item.key"
+                    :label="item.value"
+                    :value="item.key"
+                  >
+                    <span style="float: left">{{ item.value }}</span>
+                    <span
+                      style="float: right; color: #8492a6; font-size: 13px"
+                      >{{ item.key }}</span
+                    >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-form>
+          </div>
+        </el-col>
+      </el-row>
+      <div style="overflow-x: auto">
+        <el-row style="margin-top: 3%">
+          <el-col :span="24">
+            <el-steps align-center :active="routers.length">
+              <el-step
+                v-for="(router, index) in routers"
+                :title="getTitle(index)"
+                :key="index"
+                icon=""
+                description="111"
+                style="min-width: 280px"
+              >
+                <template v-slot:description="{}">
+                  <div>
+                    <el-form
+                      :rules="rules"
+                      class="demo-ruleForm"
+                      :model="router"
+                      label-width="110px"
+                      style="margin-top: 1%"
+                      ref="router"
+                    >
+                      <el-form-item
+                        label="浣嶇疆缂栧彿"
+                        placeholder="璇烽�夋嫨浣嶇疆缂栧彿"
+                        prop="positionCode"
+                      >
+                        <el-select
+                          filterable
+                          v-model="router.positionCode"
+                          @change="deviceCodeChange"
+                        >
+                          <el-option
+                            v-for="deviceCode in filterDeviceCodes"
+                            :key="deviceCode.key"
+                            :label="deviceCode.key"
+                            :value="deviceCode.key"
+                          />
+                        </el-select>
+                      </el-form-item>
+                      <el-form-item
+                        v-show="
+                          index == routers.length - 1 &&
+                          !router.positionCode.includes('SC')
+                        "
+                        label="瀛愪綅缃紪鍙�"
+                        prop="childPositionCode"
+                      >
+                        <el-select
+                          filterable
+                          v-model="router.childPositionCode"
+                          @change="childDeviceCodeChange"
+                        >
+                          <el-option
+                            v-for="childDeviceCode in filterChildDeviceCodes"
+                            :key="childDeviceCode.key"
+                            :label="childDeviceCode.key"
+                            :value="childDeviceCode.key"
+                          />
+                        </el-select>
+                      </el-form-item>
+                      <el-form-item
+                        v-show="
+                          router.positionCode.includes('SC') ||
+                          router.childPositionCode.includes('SC')
+                        "
+                        label="鍫嗗灈鏈鸿"
+                        prop="sCRow"
+                      >
+                        <el-input v-model="router.sCRow"></el-input>
+                      </el-form-item>
+                      <el-form-item
+                        v-show="
+                          router.positionCode.includes('SC') ||
+                          router.childPositionCode.includes('SC')
+                        "
+                        label="鍫嗗灈鏈哄垪"
+                        prop="sCColumn"
+                      >
+                        <el-input v-model="router.sCColumn"></el-input>
+                      </el-form-item>
+                      <el-form-item
+                        v-show="
+                          router.positionCode.includes('SC') ||
+                          router.childPositionCode.includes('SC')
+                        "
+                        label="鍫嗗灈鏈哄眰"
+                        prop="sCLayer"
+                      >
+                        <el-input v-model="router.sCLayer"></el-input>
+                      </el-form-item>
+                    </el-form>
+                  </div>
+                </template>
+              </el-step>
+            </el-steps>
+          </el-col>
+        </el-row>
+      </div>
+      <template #footer>
+        <div>
+          <el-button plain type="danger" @click="save"
+            ><i class="el-icon-check"></i>淇� 瀛�</el-button
+          >
+          <el-button type="primary" size="mini" @click="showDetialBox = false"
+            ><i class="el-icon-close"></i>鍏抽棴</el-button
+          >
+        </div>
+      </template>
+    </vol-box>
+  </div>
+</template>
+    
+    <script>
+import VolBox from "@/components/basic/VolBox.vue";
+import { el } from "element-plus/es/locale";
+export default {
+  components: { VolBox },
+  data() {
+    return {
+      width: 1200,
+      active: 0,
+      showDetialBox: false,
+      routerTypes: [],
+      routerType: { type: "" },
+      deviceCodes: [],
+      filterDeviceCodes: [],
+      childDeviceCodes: [],
+      filterChildDeviceCodes: [],
+      routers: [
+        {
+          positionCode: "",
+          childPositionCode: "",
+          sCRow: "",
+          sCColumn: "",
+          sCLayer: "",
+        },
+        {
+          positionCode: "",
+          childPositionCode: "",
+          sCRow: "",
+          sCColumn: "",
+          sCLayer: "",
+        },
+      ],
+      rules: {
+        positionCode: [
+          { required: true, message: "璇烽�夋嫨浣嶇疆缂栧彿", trigger: "change" },
+        ],
+      },
+      routeTypeRules: {
+        type: [
+          { required: true, message: "璇烽�夋嫨璺敱绫诲瀷", trigger: "change" },
+        ],
+      },
+    };
+  },
+  methods: {
+    open() {
+      this.routerTypes = [];
+      this.routerType = { type: "" };
+      this.deviceCode = "";
+      this.deviceCodes = [];
+      this.filterDeviceCodes = [];
+      this.childDeviceCodes = [];
+      this.filterChildDeviceCodes = [];
+      this.routers = [
+        {
+          positionCode: "",
+          childPositionCode: "",
+          sCRow: "",
+          sCColumn: "",
+          sCLayer: "",
+        },
+        {
+          positionCode: "",
+          childPositionCode: "",
+          sCRow: "",
+          sCColumn: "",
+          sCLayer: "",
+        },
+      ];
+      this.showDetialBox = true;
+      this.getData();
+    },
+    getData() {
+      this.http.post("/api/Router/GetBaseRouterInfo", {}, true).then((x) => {
+        if (!x.status) return this.$message.error(x.message);
+        this.routerTypes = x.data.routerTypes;
+        this.deviceCodes = x.data.deviceCodes;
+        x.data.areaInfos.forEach((v) => {
+          this.deviceCodes.push(v);
+        });
+        this.filterDeviceCodes = this.deviceCodes;
+        this.childDeviceCodes = this.deviceCodes;
+        this.filterChildDeviceCodes = this.deviceCodes;
+      });
+    },
+    addNode() {
+      this.routers.push({
+        positionCode: "",
+        childPositionCode: "",
+        childPosiDeviceCode: "",
+        sCRow: "",
+        sCColumn: "",
+        sCLayer: "",
+      });
+    },
+    deleteNode() {
+      this.routers.splice(this.routers.length - 1, 1);
+    },
+    getTitle(index) {
+      if (index === 0) {
+        return "璧风偣";
+      } else if (index === this.routers.length - 1) {
+        return "缁堢偣";
+      } else {
+        return "瀛愯妭鐐�" + index;
+      }
+    },
+    save() {
+      this.$refs.router.forEach((x) => {
+        console.log(x);
+        x.validate((valid) => {
+          if (!valid) {
+            return false;
+          }
+        });
+      });
+      this.http
+        .post(
+          "/api/Router/AddRouters?routerType=" + this.routerType.type,
+          this.routers,
+          true
+        )
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.$emit("parentCall", ($vue) => {
+            $vue.refresh();
+          });
+          this.showDetialBox = false;
+        });
+    },
+    deviceCodeChange(value) {
+      var positionCodes = [];
+      this.routers.forEach((x) => {
+        if (x.positionCode && x.positionCode != "") {
+          positionCodes.push(x.positionCode);
+        }
+      });
+      this.filterDeviceCodes = this.deviceCodes.filter(
+        (x) => !positionCodes.includes(x.key)
+      );
+    },
+    childDeviceCodeChange(value) {
+      var positionCodes = [];
+      this.routers.forEach((x) => {
+        if (x.childPositionCode && x.childPositionCode != "") {
+          positionCodes.push(x.childPositionCode);
+        }
+      });
+      this.filterChildDeviceCodes = this.childDeviceCodes.filter(
+        (x) => !positionCodes.includes(x.key)
+      );
+    },
+  },
+  created() {},
+};
+</script>
+    
+    <style scoped>
+.el-col {
+  border-radius: 4px;
+}
+.grid-content {
+  border-radius: 4px;
+  min-height: 36px;
+}
+.content-text {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.left-text {
+  display: flex;
+  align-items: center;
+  justify-content: flex-start;
+}
+.right-text {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+</style>
+    <style>
+.el-step.is-center .el-step__description {
+  padding-left: 5%;
+  padding-right: 5%;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/routerview.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/routerview.vue"
new file mode 100644
index 0000000..7ad2ff8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/basicinfo/extend/routerview.vue"
@@ -0,0 +1,96 @@
+<template>
+  <div>
+    <vol-box
+      v-model="showDetialBox"
+      :lazy="true"
+      width="1200px"
+      :padding="15"
+      title="瀹屾暣璺敱鏌ョ湅"
+    >
+      <div
+        style="margin-bottom: 1%"
+        v-for="(item, index) in routerDatas"
+        :key="index"
+      >
+        <el-row>
+          <el-col>
+            <div
+              class="grid-content right-text"
+              style="font-weight: bold; font-size: 18px"
+            >
+              <span>{{ item.type == "Out" ? "鍑哄簱璺敱" : "鍏ュ簱璺敱" }}</span>
+            </div>
+          </el-col>
+        </el-row>
+        <el-steps :active="item.routes.length" align-center simple>
+          <el-step
+            v-for="itemRouter in item.routes"
+            :key="itemRouter"
+            :title="itemRouter"
+            icon=""
+          ></el-step>
+        </el-steps>
+      </div>
+    </vol-box>
+  </div>
+</template>
+  
+  <script>
+import VolBox from "@/components/basic/VolBox.vue";
+export default {
+  components: { VolBox },
+  data() {
+    return {
+      active: 0,
+      showDetialBox: false,
+      routerDatas: [],
+    };
+  },
+  methods: {
+    open() {
+      this.showDetialBox = true;
+      this.getData();
+    },
+    getData() {
+      this.http.post("/api/Router/GetAllWholeRouters", {}, true).then((x) => {
+        if (!x.status) return this.$message.error(x.message);
+        this.routerDatas = x.data;
+      });
+    },
+  },
+  created() {},
+};
+</script>
+  
+  <style scoped>
+.el-col {
+  border-radius: 4px;
+}
+.grid-content {
+  border-radius: 4px;
+  min-height: 36px;
+}
+.content-text {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.left-text {
+  display: flex;
+  align-items: center;
+  justify-content: flex-start;
+}
+</style>
+  <style>
+.el-table .warning-row {
+  background: #fcf1e2;
+}
+
+.el-table .success-row {
+  background: #f0f9eb;
+}
+
+.el-table .error-row {
+  background: #fde2e2;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/quartzJob/extend/importDevicePro.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/quartzJob/extend/importDevicePro.vue"
new file mode 100644
index 0000000..66b521c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/quartzJob/extend/importDevicePro.vue"
@@ -0,0 +1,116 @@
+<template>
+  <div>
+    <vol-box
+      v-model="showDetialBox"
+      :lazy="true"
+      :height="350"
+      :width="600"
+      :padding="15"
+      title="璁惧鍗忚淇℃伅-瀵煎叆"
+    >
+      <upload-excel
+        ref="upload_excel"
+        :url="url"
+        :template="template"
+      ></upload-excel>
+    </vol-box>
+  </div>
+</template>
+    
+    <script>
+import VolBox from "@/components/basic/VolBox.vue";
+import UploadExcel from "@/components/basic/UploadExcel.vue";
+export default {
+  components: { VolBox, UploadExcel },
+  data() {
+    return {
+      showDetialBox: false,
+      url: "",
+      template: {
+        url: "", //妯℃澘涓嬭浇璺緞锛屽鏋滄病鏈夋ā鏉胯矾寰勶紝鍒欎笉鏄剧ず涓嬭浇妯℃澘鍔熻兘
+        fileName: "璁惧鍗忚淇℃伅瀵煎叆妯℃澘", //涓嬭浇妯℃澘鐨勬枃浠跺悕
+      },
+    };
+  },
+  methods: {
+    open() {
+      this.template.url = `${this.http.ipAddress}api/DeviceProtocol/DownLoadTemplate`;
+      this.url = `${this.http.ipAddress}api/DeviceProtocol/GetImportData`;
+      this.showDetialBox = true;
+      this.$nextTick(() => {
+        this.$refs.upload_excel.upload = this.upload;
+        console.log(this.$refs.upload_excel);
+      });
+    },
+    upload() {
+      console.log("upload");
+      let _url = this.url;
+      if (!_url) {
+        return this.$Message.error("娌℃湁閰嶇疆濂経rl");
+      }
+
+      if (!this.$refs.upload_excel.file) {
+        return this.$Message.error("璇烽�夋嫨鏂囦欢");
+      }
+      var formData = new FormData();
+      formData.append("fileInput", this.$refs.upload_excel.file);
+      if (!this.$refs.upload_excel.importExcelBefore(formData)) {
+        return;
+      }
+      this.$refs.upload_excel.loadingStatus = true;
+      this.http.post(_url, formData).then(
+        (x) => {
+          // this.$refs.uploadFile.clearFiles();
+          this.$refs.upload_excel.loadingStatus = false;
+          this.$refs.upload_excel.file = null;
+          if (x.status) {
+            this.$emit("parentCall", ($vue) => {
+              $vue.$refs.detail.rowData.push(...x.data);
+            });
+          }
+
+          this.message = x.message;
+          this.resultClass = x.status ? "v-r-success" : "v-r-error";
+        },
+        (error) => {
+          this.$refs.upload_excel.loadingStatus = false;
+        }
+      );
+    },
+  },
+  created() {},
+};
+</script>
+    
+    <style scoped>
+.el-col {
+  border-radius: 4px;
+}
+.grid-content {
+  border-radius: 4px;
+  min-height: 36px;
+}
+.content-text {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.left-text {
+  display: flex;
+  align-items: center;
+  justify-content: flex-start;
+}
+</style>
+    <style>
+.el-table .warning-row {
+  background: #fcf1e2;
+}
+
+.el-table .success-row {
+  background: #f0f9eb;
+}
+
+.el-table .error-row {
+  background: #fde2e2;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/extend/taskExecuteDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/extend/taskExecuteDetail.vue"
new file mode 100644
index 0000000..ced7068
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/extension/taskinfo/extend/taskExecuteDetail.vue"
@@ -0,0 +1,259 @@
+<template>
+  <div>
+    <vol-box
+      v-model="showDetialBox"
+      :lazy="true"
+      width="1200px"
+      :padding="15"
+      title="浠诲姟璇︽儏"
+    >
+      <el-row height="50">
+        <el-col :span="24">
+          <div class="grid-content right-text">
+            <el-link type="primary" @click="switchView">鍒囨崲瑙嗗浘</el-link>
+          </div>
+        </el-col>
+      </el-row>
+      <div :style="{ height: height }">
+        <div v-if="viewType == 1">
+          <el-row height="50">
+            <el-col :span="8">
+              <div
+                class="grid-content content-text"
+                style="font-weight: bold; font-size: 18px"
+              >
+                <span>浠诲姟缂栧彿锛歿{ row.taskNum }}</span>
+              </div>
+            </el-col>
+            <el-col :span="8">
+              <div
+                class="grid-content content-text"
+                style="font-weight: bold; font-size: 18px"
+              >
+                <span>鎵樼洏缂栧彿锛歿{ row.palletCode }}</span>
+              </div>
+            </el-col>
+            <el-col :span="8">
+              <div
+                class="grid-content content-text"
+                style="font-weight: bold; font-size: 18px"
+              >
+                <span>浠诲姟鐘舵�侊細{{ row.taskState }}</span>
+              </div>
+            </el-col>
+          </el-row>
+          <div style="height: 100px; margin-top: 3%">
+            <el-steps :active="active" align-center finish-status="success">
+              <el-step
+                v-for="item in steps"
+                :key="item.title"
+                :title="item.title"
+                :description="item.description"
+              ></el-step>
+            </el-steps>
+          </div>
+          <el-row height="50" v-show="previousShow || nextShow">
+            <el-col :span="8">
+              <div v-show="previousShow" class="grid-content content-text">
+                <el-button type="danger" @click="previous"
+                  >鍥炴粴鍒颁笂涓�姝�</el-button
+                >
+              </div>
+            </el-col>
+            <el-col :span="8">
+              <div v-show="recoveryShow" class="grid-content content-text">
+                <el-button type="primary" @click="recovery">浠诲姟鎸傝捣鎭㈠</el-button>
+              </div>
+            </el-col>
+            <el-col :span="8">
+              <div v-show="nextShow" class="grid-content content-text">
+                <el-button type="warning" @click="next">璺宠浆鍒颁笅涓�姝�</el-button>
+              </div>
+            </el-col>
+          </el-row>
+        </div>
+        <div v-else>
+          <el-table
+            :data="tableData"
+            style="width: 100%"
+            :row-class-name="tableRowClassName"
+          >
+            <el-table-column type="index" width="50"> </el-table-column>
+            <el-table-column prop="taskNum" label="浠诲姟鍙�" width="90">
+            </el-table-column>
+            <el-table-column prop="taskState" label="浠诲姟鐘舵��" width="90">
+            </el-table-column>
+            <el-table-column prop="currentAddress" label="褰撳墠浣嶇疆" width="90">
+            </el-table-column>
+            <el-table-column prop="nextAddress" label="涓嬩竴浣嶇疆" width="90">
+            </el-table-column>
+            <el-table-column prop="isManual" label="鏄惁浜哄伐鎿嶄綔" width="120">
+            </el-table-column>
+            <el-table-column prop="isNormal" label="鏄惁姝e父" width="90">
+            </el-table-column>
+            <el-table-column prop="description" label="鎻忚堪"> </el-table-column>
+            <el-table-column prop="createDate" label="鍒涘缓鏃堕棿" width="180">
+            </el-table-column>
+            <el-table-column prop="remark" label="澶囨敞" width="180">
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+    </vol-box>
+  </div>
+</template>
+
+<script>
+import VolBox from "@/components/basic/VolBox.vue";
+export default {
+  components: { VolBox },
+  data() {
+    return {
+      active: 0,
+      showDetialBox: false,
+      row: {},
+      steps: [],
+      viewType: 1,
+      height: "200px",
+      tableData: [],
+      previousShow: false,
+      nextShow: false,
+      recoveryShow: true,
+    };
+  },
+  methods: {
+    open(row) {
+      this.row = row;
+      this.showDetialBox = true;
+      if (this.viewType == 1) {
+        this.getSteps();
+      } else {
+        this.getDetailDatas();
+      }
+
+      this.$emit("parentCall", ($vue) => {
+        var previousButton = $vue.buttons.find((x) => x.value == "Previous");
+        this.previousShow = previousButton != null;
+
+        var nextButton = $vue.buttons.find((x) => x.value == "Next");
+        this.nextShow = nextButton != null;
+      });
+    },
+    getSteps() {
+      this.http
+        .post(
+          "/api/TaskExecuteDetail/GetDetailInfo?taskNum=" + this.row.taskNum,
+          {},
+          true
+        )
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.steps = x.data.list;
+          this.active = x.data.active;
+        });
+    },
+    getDetailDatas() {
+      this.http
+        .post(
+          "/api/TaskExecuteDetail/GetDetailDatas?taskNum=" + this.row.taskNum,
+          {},
+          true
+        )
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.tableData = x.data;
+        });
+    },
+    previous() {
+      this.http
+        .post(
+          "/api/Task/RollbackTaskStatusToLast?taskNum=" + this.row.taskNum,
+          {},
+          true
+        )
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.getSteps();
+        });
+    },
+    recovery(){
+      this.http
+        .post(
+          "/api/Task/TaskStatusRecovery?taskNum=" + this.row.taskNum,
+          {},
+          true
+        )
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.getSteps();
+        });
+    },
+    next() {
+      this.http
+        .post(
+          "/api/Task/UpdateTaskStatusToNext?taskNum=" + this.row.taskNum,
+          {},
+          true
+        )
+        .then((x) => {
+          if (!x.status) return this.$message.error(x.message);
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.getSteps();
+        });
+    },
+    switchView() {
+      this.viewType = this.viewType == 1 ? 2 : 1;
+      if (this.viewType == 2) {
+        this.height = "600px";
+        this.getDetailDatas();
+      } else {
+        this.height = "200px";
+      }
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if (!row.isNormal) {
+        return "error-row";
+      } else if (row.isManual) {
+        return "warning-row";
+      }
+      return "success-row";
+    },
+  },
+  created() {},
+};
+</script>
+
+<style scoped>
+.el-col {
+  border-radius: 4px;
+}
+.grid-content {
+  border-radius: 4px;
+  min-height: 36px;
+}
+.content-text {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.right-text {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+</style>
+<style>
+.el-table .warning-row {
+  background: #fcf1e2;
+}
+
+.el-table .success-row {
+  background: #f0f9eb;
+}
+
+.el-table .error-row {
+  background: #fde2e2;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue"
new file mode 100644
index 0000000..efcfdd9
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/AgingLibrary.vue"
@@ -0,0 +1,102 @@
+<template>
+  <el-row>
+    <el-col :span="3">
+
+      <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker>
+    </el-col>
+    <el-col :span="21">
+      <device-line v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+
+<script setup>
+import { onMounted, reactive, toRefs } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLine from "@/components/DeviceLine.vue";
+import DeviceStacker from "@/components/DeviceStacker.vue";
+
+// 鍫嗗灈鏈�
+const Stackers = reactive([]);
+
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+
+const intToBitArrayFromBinaryString = (num, numBits) => {
+  let binaryString = num.toString(2).padStart(numBits, '0');
+  return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1');
+};
+
+// 鐩戝惉璁惧鏁版嵁鍙樺寲
+onMounted(() => {
+  eventBus.on('locationData', eventData => {
+    console.log(eventData)
+    if (eventData.deviceName === "闄堝寲鍏ュ簱杈撻�佺嚎" || eventData.deviceName === "闄堝寲鍏ュ簱杈撻�佺嚎") {
+
+      if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode)
+        if (device) {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          device.data = eventData.data
+        }
+        else {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+        }
+      }
+    }
+  });
+  eventBus.on('stackerData', eventData => {
+    if (eventData.deviceName.indexOf("闄堝寲") != -1) {
+      if (Stackers.length == 0) {
+        Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+      }
+      else {
+        const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName);
+        if (Stacker) {
+          Stacker.data = eventData.data
+        }
+        else {
+          Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+        }
+      }
+    }
+  })
+});
+</script>
+<style scoped>
+.Stackerbox {
+  width: 220px;
+  float: left;
+}
+
+.Linebox {
+  width: 500px;
+  float: left;
+}
+
+.box1 {
+  float: left;
+}
+
+.card-body {
+  text-align: center;
+  border-radius: 6%;
+}
+
+.Stacker {
+  background-color: burlywood;
+}
+
+.lis {
+  float: left;
+  width: 233px;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue"
new file mode 100644
index 0000000..3d46097
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/FormationLibrary.vue"
@@ -0,0 +1,49 @@
+<template>
+  <el-row>
+    <el-col :span="24">
+      <device-line v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+
+<script setup>
+import { onMounted, reactive, toRefs } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLine from "@/components/DeviceLine.vue";
+
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+
+const intToBitArrayFromBinaryString = (num, numBits) => {
+  let binaryString = num.toString(2).padStart(numBits, '0');
+  return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1');
+};
+
+// 鐩戝惉璁惧鏁版嵁鍙樺寲
+onMounted(() => {
+  eventBus.on('locationData', eventData => {
+    if (eventData.deviceName === "鍖栨垚鍏ュ簱杈撻�佺嚎") {
+      if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode)
+        if (device) {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          device.data = eventData.data
+          
+        }
+        else {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+        }
+      }
+    }
+  });
+});
+</script>
+
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue"
new file mode 100644
index 0000000..96bc5cc
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Staticlibrary.vue"
@@ -0,0 +1,96 @@
+<template>
+  <el-row>
+    <el-col :span="3">
+      <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker>
+    </el-col>
+    <el-col :span="21">
+      <device-line v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+
+<script setup>
+import { onMounted, reactive, toRefs } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLine from "@/components/DeviceLine.vue";
+import DeviceStacker from "@/components/DeviceStacker.vue";
+
+// 鍫嗗灈鏈�
+const Stackers = reactive([]);
+
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+
+const intToBitArrayFromBinaryString = (num, numBits) => {
+  let binaryString = num.toString(2).padStart(numBits, '0');
+  return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1');
+};
+
+// 鐩戝惉璁惧鏁版嵁鍙樺寲
+onMounted(() => {
+  eventBus.on('locationData', eventData => {
+    console.log(eventData)
+    if (eventData.deviceName === "闈欑疆杈撻�佺嚎") {
+
+      if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode)
+        if (device) {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          device.data = eventData.data
+        }
+        else {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+        }
+      }
+    }
+  });
+  eventBus.on('stackerData', eventData => {
+    if (eventData.deviceName.indexOf("闈欑疆") != -1) {
+      if (Stackers.length == 0) {
+        Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+      }
+      else {
+        const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName);
+        if (Stacker) {
+          Stacker.data = eventData.data
+        }
+        else {
+          Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+        }
+      }
+    }
+  })
+});
+</script>
+<style scoped>
+.Stackerbox {
+  width: 220px;
+  float: left;
+}
+
+.Linebox {
+  width: 500px;
+  float: left;
+}
+
+.box1 {
+  float: left;
+}
+
+.card-body {
+  text-align: center;
+  border-radius: 6%;
+}
+
+.Stacker {
+  background-color: burlywood;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Twoletters.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Twoletters.vue"
new file mode 100644
index 0000000..4a17acb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Twoletters.vue"
@@ -0,0 +1,48 @@
+<template>
+  <el-row>
+    <el-col :span="24">
+      <device-line v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+
+<script setup>
+import { onMounted, reactive, toRefs } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLine from "@/components/DeviceLine.vue";
+
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+
+const intToBitArrayFromBinaryString = (num, numBits) => {
+  let binaryString = num.toString(2).padStart(numBits, '0');
+  return Array.from({ length: numBits }, (_, index) => binaryString[index] === '1');
+};
+
+// 鐩戝惉璁惧鏁版嵁鍙樺寲
+onMounted(() => {
+  eventBus.on('locationData', eventData => {
+    if (eventData.deviceName === "浜屽皝杈撻�佺嚎") {
+
+      if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.childDeviceCode)
+        if (device) {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          device.data = eventData.data
+        }
+        else {
+          const number = eventData.data.commandWrite.writeInteractiveSignal;
+          const writeInteractiveSignal = intToBitArrayFromBinaryString(number, 8)
+          eventData.data.writeInteractiveSignal = writeInteractiveSignal;
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.childDeviceCode });
+        }
+      }
+    }
+  });
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Volume.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Volume.vue"
new file mode 100644
index 0000000..e6efdac
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/Volume.vue"
@@ -0,0 +1,58 @@
+<template>
+  <el-row>
+    <el-col :span="3">
+      <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker>
+    </el-col>
+    <el-col :span="21">
+      <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+<script setup>
+import { onMounted, ref, reactive, toRaw } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLineVo from "@/components/DeviceLineVo.vue";
+import DeviceStacker from "@/components/DeviceStacker.vue";
+// 鍫嗗灈鏈�
+const Stackers = reactive([]);
+var i = 0;
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+const num = reactive([])
+onMounted(() => {
+  eventBus.on('locationData', eventData => {
+    if (eventData.deviceName.indexOf("鍒嗗") != -1) {
+      if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode)
+        if (device) {
+          device.data = eventData.data
+        } else {
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+        }
+      }
+    }
+  })
+  eventBus.on('stackerData', eventData => {
+    // if (eventData.deviceName == "鍒嗗3鍙峰爢鍨涙満"||eventData.deviceName == "鍒嗗2鍙峰爢鍨涙満") {
+    console.log(eventData.deviceName)
+    if (eventData.deviceName.indexOf("鍒嗗") != -1) {
+      if (Stackers.length == 0) {
+        Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+      }
+      else {
+        const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName);
+        if (Stacker) {
+          Stacker.data = eventData.data
+        }
+        else {
+          Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+        }
+      }
+    }
+  })
+})
+</script>
+<style scoped></style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/baozhuang.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/baozhuang.vue"
new file mode 100644
index 0000000..dc57889
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/baozhuang.vue"
@@ -0,0 +1,42 @@
+<template>
+  <el-row>
+    <el-col :span="21">
+      <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+<script setup>
+import { onMounted, ref, reactive, toRaw } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLineVo from "@/components/DeviceLineVo.vue";
+import DeviceStacker from "@/components/DeviceStacker.vue";
+// 鍫嗗灈鏈�
+const Stackers = reactive([]);
+var  i=0;
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+const num = reactive([])
+onMounted(() => {
+  eventBus.on('stackerData', eventData => {
+    if (eventData.deviceName === "鍖呰鍑哄簱杈撻�佺嚎") {
+    if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode)
+        if(device){
+          device.data = eventData.data
+        }else{
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+        }
+      }
+    
+    }
+  })
+
+})
+
+</script>
+<style scoped>
+
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/hightemperature.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/hightemperature.vue"
new file mode 100644
index 0000000..fa614eb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/hightemperature.vue"
@@ -0,0 +1,60 @@
+<template>
+  <el-row>
+    <el-col :span="3">
+      <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker>
+    </el-col>
+    <el-col :span="21">
+      <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+<script setup>
+import { onMounted, ref, reactive, toRaw } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLineVo from "@/components/DeviceLineVo.vue";
+import DeviceStacker from "@/components/DeviceStacker.vue";
+// 鍫嗗灈鏈�
+const Stackers = reactive([]);
+var i = 0;
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+const num = reactive([])
+onMounted(() => {
+  eventBus.on('locationData', eventData => {
+    // console.log(eventData)
+    console.log(eventData)
+
+    if (eventData.deviceName.indexOf("鑰佸寲") != -1) {
+      if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode)
+        if (device) {
+          device.data = eventData.data
+        } else {
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+        }
+      }
+
+    }
+  })
+  eventBus.on('stackerData', eventData => {
+    if (eventData.deviceName.indexOf("鑰佸寲") != -1) {
+      if (Stackers.length == 0) {
+        Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+      }
+      else {
+        const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName);
+        if (Stacker) {
+          Stacker.data = eventData.data
+        }
+        else {
+          Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+        }
+      }
+    }
+  })
+})
+</script>
+<style scoped></style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/roomtemperature.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/roomtemperature.vue"
new file mode 100644
index 0000000..2e660c2
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/Craftlibrary/roomtemperature.vue"
@@ -0,0 +1,61 @@
+<template>
+  <el-row>
+    <el-col :span="3">
+      <device-stacker v-for="stacker in Stackers" :key="stacker.deviceName" :Stacker="stacker"></device-stacker>
+    </el-col>
+    <el-col :span="21">
+      <DeviceLineVo v-for="device in devices" :key="device.deviceName" :device="device" />
+    </el-col>
+  </el-row>
+</template>
+<script setup>
+import { onMounted, ref, reactive, toRaw } from "vue";
+import eventBus from "@/uitils/eventBus";
+import DeviceLineVo from "@/components/DeviceLineVo.vue";
+import DeviceStacker from "@/components/DeviceStacker.vue";
+// 鍫嗗灈鏈�
+const Stackers = reactive([]);
+var i = 0;
+// 璁惧鍒楄〃锛堜慨鏀归噸澶嶈澶囧悕绉帮級
+const devices = reactive([]);
+const num = reactive([])
+onMounted(() => {
+  eventBus.on('locationData', eventData => {
+    // console.log(eventData)
+
+    console.log(eventData)
+
+    if (eventData.deviceName.indexOf("甯告俯") != -1) {
+      if (devices.length <= 0) {
+        devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+      }
+      else {
+        const device = devices.find(c => c.childDeviceCode == eventData.data.childDeviceCode)
+        if (device) {
+          device.data = eventData.data
+        } else {
+          devices.push({ deviceName: eventData.deviceName, data: eventData.data, childDeviceCode: eventData.data.childDeviceCode });
+        }
+      }
+
+    }
+  })
+  eventBus.on('stackerData', eventData => {
+    if (eventData.deviceName.indexOf("甯告俯") != -1) {
+      if (Stackers.length == 0) {
+        Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+      }
+      else {
+        const Stacker = Stackers.find(c => c.deviceName == eventData.deviceName);
+        if (Stacker) {
+          Stacker.data = eventData.data
+        }
+        else {
+          Stackers.push({ deviceName: eventData.deviceName, data: eventData.data });
+        }
+      }
+    }
+  })
+})
+</script>
+<style scoped></style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/indexLibrary.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/indexLibrary.vue"
new file mode 100644
index 0000000..1daa868
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/Devicestatus/indexLibrary.vue"
@@ -0,0 +1,48 @@
+<template>
+   
+    <!--瀵艰埅鍖� -->
+    <div  class="nav-bar">
+       <RouterLink class="navlink" to="/AgingLibrary" >闄堝寲搴�</RouterLink>
+       <RouterLink class="navlink" to="/FormationLibrary" >鍖栨垚搴�</RouterLink>
+       <RouterLink class="navlink" to="/StaticLibrary" >闈欑疆搴�</RouterLink>
+       <RouterLink class="navlink" to="/Twoletters" >浜屽皝</RouterLink>
+       <RouterLink class="navlink" to="/Volume" >鍒嗗搴�</RouterLink>
+       <RouterLink class="navlink" to="/highTemperature" >鑰佸寲搴�</RouterLink>
+       <RouterLink class="navlink" to="/roomTemperature" >甯告俯搴�</RouterLink>
+       <RouterLink class="navlink" to="/Baozhuang" >鍖呰</RouterLink>
+    </div>
+     <!--娉ㄦ剰浜嬮」-->
+    <div class="area">
+           <RouterView :key="$route.fullPath" ></RouterView>
+    </div>
+</template>
+<script setup>
+ import { RouterView,RouterLink } from 'vue-router';
+
+</script>
+<style>
+.nav-bar {
+  display: flex;
+  justify-content: space-around; 
+  align-items: center; 
+  height: 50px;
+  background-color: #f5f5f5;
+  border-bottom: 1px solid #ccc; 
+}
+.navlink {
+    width: 100px;
+    height: 100%;
+      text-decoration:none;
+      text-align: center;
+      display: flex;
+         justify-content: center;
+         align-items: center;
+        
+      color: rgb(0, 195, 255);
+       }
+.navlink:hover{
+   background-color: rgb(0, 195, 255);
+   color: #ffffff;
+}
+
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/basicinfo/Dt_needBarcode.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/basicinfo/Dt_needBarcode.vue"
new file mode 100644
index 0000000..287deaa
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/basicinfo/Dt_needBarcode.vue"
@@ -0,0 +1,93 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/basicinfo/Dt_AreaInfo.js姝ゅ缂栧啓
+ -->
+<template>
+    <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
+        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
+        :table="table" :extend="extend">
+    </view-grid>
+</template>
+<script>
+import extend from "@/extension/basicinfo/Dt_needBarcode.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: 'areaID',
+            footer: "Foots",
+            cnName: '鍦ㄩ�旀暟鎹�',
+            name: 'basicinfo/dt_needBarcode',
+            url: "/dt_needBarcode/",
+            sortName: "AreaCode"
+        });
+        const editFormFields = ref({
+            "id":"",
+            "toArea": "",
+            "fromArea": "",
+            "barcodeType": "",
+            "productLine": "",
+            "inLineNum": "",
+            "cacheNum":""
+        });
+        const editFormOptions = ref([
+            [
+                { "title": "鍦ㄩ�旀暟閲�", "field": "inLineNum", type: "text" },
+                { "title": "鍙紦瀛樻暟閲�", "field": "cacheNum", type: "text" },
+            ]
+        ]);
+        const searchFormFields = ref({
+            "iD":"",
+            "toArea": "",
+            "fromArea": "",
+            "barcodeType": "",
+            "productLine": "",
+            "inLineNum": "",
+            "cacheNum":""
+        });
+        const searchFormOptions = ref([
+            [
+                { "title": "鐩爣搴撳尯", "field": "toArea", type: "text" },
+                { "title": "鏉ユ簮搴撳尯", "field": "fromArea", type: "text" },
+                { "title": "鎵樼洏绫诲瀷", "field": "barcodeType", type: "text" },
+            ],
+            [
+                { "title": "鎵�灞炰骇绾�", "field": "productLine", type: "text" },
+                { "title": "鍦ㄩ�旀暟閲�", "field": "inLineNum", type: "text" },
+                { "title": "鍙紦瀛樻暟閲�", "field": "cacheNum", type: "text" },
+            ]
+        ]);
+        const columns = ref([{ field: 'iD', title: '涓婚敭', type: 'int', sort: true, hidden: true, width: 110, readonly: true, require: true, align: 'left' },
+        { field: 'toArea', title: '鐩爣搴撳尯', type: 'string', sort: true, width: 110, require: true, align: 'left', sort: true },
+        { field: 'fromArea', title: '鏉ユ簮搴撳尯', type: 'string', sort: true, width: 110, align: 'left' },
+        { field: 'barcodeType', title: '鎵樼洏绫诲瀷', type: 'string', sort: true, width: 110, align: 'left' },
+        { field: 'productLine', title: '鎵�灞炰骇绾�', type: 'string', sort: true, width: 110, align: 'left',bind: { key: "ProductionLine", data: [] } },
+        { field: 'inLineNum', title: '鍦ㄩ�旀暟閲�', type: 'int', sort: true, width: 110, align: 'left' },
+        { field: 'cacheNum', title: '鍙紦瀛樻暟閲�', type: 'int', sort: true, width: 100,  align: 'left' },
+        { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
+        { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+        { field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 100,  align: 'left' },
+        { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150,  align: 'left', sort: true },
+        ]);
+        const detail = ref({
+            cnName: "#detailCnName",
+            table: "#detailTable",
+            columns: [],
+            sortName: "",
+            key: ""
+        });
+        return {
+            table,
+            extend,
+            editFormFields,
+            editFormOptions,
+            searchFormFields,
+            searchFormOptions,
+            columns,
+            detail,
+        };
+    },
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/basicinfo/router.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/basicinfo/router.vue"
new file mode 100644
index 0000000..319e35e
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/basicinfo/router.vue"
@@ -0,0 +1,265 @@
+
+<template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+    <script>
+import extend from "@/extension/basicinfo/router.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "璺敱閰嶇疆淇℃伅",
+      name: "router",
+      url: "/Router/",
+      sortName: "createDate",
+    });
+    const editFormFields = ref({
+      // name: "",
+      // jobGroup: "",
+      // assemblyName: "",
+      // className: "",
+      // intervalSecond: "",
+      // beginTime: "",
+      // endTime: "",
+      // remark: "",
+    });
+    const editFormOptions = ref([
+      // [
+      //   {
+      //     title: "浠诲姟鍚嶇О",
+      //     required: true,
+      //     field: "name",
+      //     type: "string",
+      //   },
+      //   {
+      //     title: "浠诲姟鍒嗙粍",
+      //     required: true,
+      //     field: "jobGroup",
+      //     type: "select",
+      //     dataKey: "deviceType",
+      //     data: [],
+      //   },
+      //   {
+      //     title: "绋嬪簭闆嗗悕绉�",
+      //     required: true,
+      //     field: "assemblyName",
+      //     type: "string",
+      //     type: "select",
+      //     dataKey: "jobAssembly",
+      //     data: [],
+      //   },
+      //   {
+      //     title: "浠诲姟鎵�鍦ㄧ被",
+      //     required: true,
+      //     field: "className",
+      //     type: "string",
+      //     type: "select",
+      //     dataKey: "jobClassName",
+      //     data: [],
+      //   },
+      // ],
+      // [
+      //   {
+      //     title: "闂撮殧鏃堕棿",
+      //     required: true,
+      //     field: "intervalSecond",
+      //     type: "number",
+      //   },
+      //   {
+      //     title: "寮�濮嬫椂闂�",
+      //     field: "beginTime",
+      //     type: "datetime",
+      //   },
+      //   {
+      //     title: "缁撴潫鏃堕棿",
+      //     field: "endTime",
+      //     type: "datetime",
+      //   },
+      //   {
+      //     title: "澶囨敞",
+      //     field: "remark",
+      //     type: "string",
+      //   },
+      // ],
+    ]);
+    const searchFormFields = ref({
+      startPosi: "",
+      nextPosi: "",
+      // assemblyName: "",
+      // className: "",
+    });
+    const searchFormOptions = ref([
+      [
+        {
+          title: "璧风偣浣嶇疆",
+          field: "startPosi",
+          type: "like",
+        },
+        {
+          title: "缁堢偣浣嶇疆",
+          field: "nextPosi",
+          type: "like",
+        },
+        //   {
+        //     title: "绋嬪簭闆嗗悕绉�",
+        //     field: "assemblyName",
+        //     type: "like",
+        //   },
+        //   {
+        //     title: "浠诲姟鎵�鍦ㄧ被",
+        //     field: "className",
+        //     type: "like",
+        //   },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "startPosi",
+        title: "璧风偣浣嶇疆",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "nextPosi",
+        title: "缁堢偣浣嶇疆",
+        type: "string",
+        width: 180,
+        align: "left",
+      },
+      {
+        field: "inOutType",
+        title: "璺敱绫诲瀷",
+        type: "string",
+        width: 180,
+        align: "left",
+      },
+      {
+        field: "childPosi",
+        title: "瀛愪綅缃�",
+        type: "string",
+        width: 200,
+        align: "left",
+      },
+      {
+        field: "childPosiDeviceCode",
+        title: "瀛愪綅缃墍灞炶澶�",
+        type: "string",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "srmRow",
+        title: "鍫嗗灈鏈哄彇璐�/鏀捐揣琛�",
+        type: "int",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "srmColumn",
+        title: "鍫嗗灈鏈哄彇璐�/鏀捐揣鍒�",
+        type: "int",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "srmLayer",
+        title: "鍫嗗灈鏈哄彇璐�/鏀捐揣灞�",
+        type: "int",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "depth",
+        title: "娣卞害",
+        type: "int",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "isEnd",
+        title: "鏄惁鏄渶缁堢偣",
+        type: "bool",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "remark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+    ]);
+    const detail = ref({
+      cnName: "",
+      table: "",
+      columns: [],
+      sortName: "",
+      key: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
+    
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/builder/coder.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/builder/coder.vue"
new file mode 100644
index 0000000..ea9b52a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/builder/coder.vue"
@@ -0,0 +1,658 @@
+<template>
+  <div class="builder-container">
+    <vol-box
+      ref="add"
+      :width="850"
+      :height="450"
+      title="鏂板缓閰嶇疆淇℃伅"
+      padding="10px"
+      v-model="addModel"
+    >
+      <div style="padding: 30px 30px 10px 34px">
+        <el-alert type="warning" :closable="false">
+          1銆佸鏋滃彧鏄垱寤虹洰褰曪紝鐖剁骇id濉�0,鍏朵粬闅忎究濉啓;
+          <br />
+          2銆佸鏋滄槸鐢熸垚浠g爜锛岀埗绾d濉啓銆愪唬鐮佺敓鎴愰厤缃�戝垪琛ㄩ〉闈㈢殑id
+        </el-alert>
+      </div>
+      <div class="addModel" style="padding-right: 30px">
+        <vol-form
+          ref="addForm"
+          :formRules="addOptions"
+          :formFields="layOutOptins.fields"
+        >
+        </vol-form>
+      </div>
+      <template #footer>
+        <div>
+          <el-button type="primary" size="small" @click="add"
+            ><i class="el-icon-plus"></i> 纭� 瀹�</el-button
+          >
+        </div>
+      </template>
+    </vol-box>
+    <div class="builder-left">
+      <div class="module-name">浠g爜鐢熸垚閰嶇疆</div>
+      <div class="builder-tree">
+        <el-scrollbar style="height: 100%; width: 200px">
+          <!-- :onOpenChange="onOpenChange" -->
+          <VolMenu :list="tree" :onSelect="onSelect"></VolMenu>
+        </el-scrollbar>
+      </div>
+    </div>
+    <div class="builder-content">
+      <div style="height: 100%">
+        <el-scrollbar style="height: 100%">
+          <div class="coder-container">
+            <div class="coder-item" style="padding-top: 7px">
+              <VolHeader icon="ios-chatbubbles" text="浠g爜鐢熸垚鍣�">
+                <template #content>
+                  <div style="color: red; font-size: 13px">
+                    鍒犻櫎宸︿晶閰嶇疆鑿滃崟:鍒犻櫎琛�->淇濆瓨->鍒犻櫎鑿滃崟
+                  </div>
+                </template>
+                <div class="action">
+                  <span @click="save"> <i class="el-icon-check"></i>淇濆瓨 </span>
+                  <span @click="addVisible()">
+                    <i class="el-icon-plus"></i>鏂板缓
+                  </span>
+                  <span @click="ceateVuePage(0)">
+                    <i class="el-icon-document"></i>鐢熸垚Vue椤甸潰
+                  </span>
+                  <!-- <span @click="ceateVuePage(1)">
+                    <i class="el-icon-document"></i>鐢熸垚app椤甸潰
+                  </span> -->
+                  <span @click="ceateModel">
+                    <i class="el-icon-tickets"></i>鐢熸垚Model
+                  </span>
+                  <span @click="createService">
+                    <i class="el-icon-document"></i>鐢熸垚涓氬姟绫�
+                  </span>
+                  <span @click="delTree">
+                    <i class="el-icon-delete"></i>鍒犻櫎鑿滃崟
+                  </span>
+                </div>
+              </VolHeader>
+              <div class="config">
+                <vol-form
+                  :label-width="90"
+                  ref="form"
+                  :formRules="layOutOptins.options"
+                  :formFields="layOutOptins.fields"
+                ></vol-form>
+              </div>
+            </div>
+            <el-alert type="warning" :closable="false">
+              1銆佸鏋滈渶瑕佷慨鏀硅〃缁撴瀯锛岃鍦ㄦ暟鎹簱淇敼锛屽啀鐐瑰悓姝ヨ〃缁撴瀯->鐢熸垚vue椤甸潰->鐢熸垚model銆�
+              2銆佷慨鏀圭紪杈戣鍚庨渶瑕佺偣鍑荤敓鎴恗odel銆佺敓鎴恦ue椤甸潰
+            </el-alert>
+            <div class="coder-item">
+              <VolHeader
+                icon="md-podium"
+                style="border-bottom: 0"
+                text="琛ㄧ粨鏋�"
+              >
+                <template #content>
+                  <div style="color: red; font-size: 13px">
+                    鏁版嵁搴撹〃缁撴瀯鍙戠敓鍙樺寲鏃惰鐐广�愬悓姝ヨ〃缁撴瀯銆�
+                  </div></template
+                >
+
+                <div class="action">
+                  <span
+                    style="color: rgb(23, 156, 216)"
+                    class="ivu-icon ivu-icon-ios-folder"
+                    @click="help"
+                    >浠g爜鐢熸垚鍣ㄥ弬鏁版枃妗�</span
+                  >
+                  <span @click="delRow" class="ivu-icon ivu-icon-md-close"
+                    >鍒犻櫎琛屾暟鎹�</span
+                  >
+                  <span @click="syncTable" class="ivu-icon ivu-icon-md-sync"
+                    >鍚屾琛ㄧ粨鏋�</span
+                  >
+                </div>
+              </VolHeader>
+
+              <div class="grid-container" style="padding-bottom: 20px">
+                <vol-table
+                  ref="table"
+                  :paginationHide="true"
+                  :tableData="data"
+                  :height="tableHeight"
+                  :columns="layOutOptins.columns"
+                  :color="false"
+                  :index="true"
+                  :allowEmpty="true"
+                  :clickEdit="true"
+                ></vol-table>
+              </div>
+            </div>
+          </div>
+        </el-scrollbar>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import builderData from './builderData';
+import VolForm from '@/components/basic/VolForm.vue';
+import VolTable from '@/components/basic/VolTable.vue';
+import VolBox from '@/components/basic/VolBox.vue';
+import VolHeader from '@/components/basic/VolHeader.vue';
+import VolMenu from '@/components/basic/VolElementMenu.vue';
+export default {
+  components: {
+    VolForm: VolForm,
+    VolTable: VolTable,
+    VolBox: VolBox,
+    VolHeader: VolHeader,
+    VolMenu
+  },
+  data() {
+    return {
+      more: {
+        addChild: 'addChild',
+        ceateController: 'ceateController',
+        addRow: 'addRow',
+        delRow: 'delRow',
+        delTree: 'delTree'
+      },
+      addModel: false,
+      helpModel: false,
+      tableHeight: 500,
+      addOptions: builderData.form.addOptions,
+      layOutOptins: {
+        fields: builderData.form.fields,
+        options: builderData.form.options,
+        columns: builderData.columns
+      },
+      tableInfo: null,
+      data: [],
+      tree: []
+    };
+  },
+  watch: {
+    'layOutOptins.fields.vuePath'(val) {
+      localStorage.setItem('vuePath', val);
+    },
+    deep: true
+    //localStorage.setItem("vuePath", this.layOutOptins.fields.vuePath || "");
+  },
+  methods: {
+    changeMore(funName) {
+      this[funName]();
+    },
+    help() {
+      window.open('http://v2.volcore.xyz/document/coder');
+      // this.helpModel = true;
+    },
+    addVisible(pid) {
+      this.addModel = true;
+      this.$refs.form.reset();
+      this.data.splice(0);
+      if (pid) {
+        this.layOutOptins.fields.parentId = pid;
+      }
+    },
+    delTree() {
+      let tableId = this.layOutOptins.fields.table_Id;
+      if (!tableId) return this.$message.error('璇烽�夋嫨鑺傜偣');
+      let tigger = false;
+      this.$confirm('鍒犻櫎璀﹀憡?', '纭瑕佸垹闄ゅ悧', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning',
+        center: true
+      }).then(() => {
+        if (tigger) return;
+        tigger = true;
+        this.http
+          .post('/api/builder/delTree?table_Id=' + tableId, {}, true)
+          .then((x) => {
+            if (!x.status) return this.$message.error(x.message);
+            this.$message.error('鍒犻櫎鎴愬姛,璇峰埛鏂伴〉闈�');
+            // for (let index = 0; index < this.tree.length; index++) {
+            //   if (this.tree[index].id == tableId) {
+            //     this.tree.splice(index, 1);
+            //   }
+            // }
+          });
+      });
+    },
+    add() {
+      this.$refs.form.validate(() => {
+        // this.layOutOptins.fields.tableName =
+        //   this.layOutOptins.fields.tableName.slice(0, 1).toUpperCase() +
+        //   this.layOutOptins.fields.tableName.slice(1);
+        if (!this.layOutOptins.fields.tableTrueName) {
+          this.layOutOptins.fields.tableTrueName = this.layOutOptins.fields.tableName;
+        }
+
+        let queryParam =
+          'parentId=' +
+          this.layOutOptins.fields.parentId +
+          '&tableName=' +
+          this.layOutOptins.fields.tableName +
+          '&columnCNName=' +
+          this.layOutOptins.fields.columnCNName +
+          '&nameSpace=' +
+          this.layOutOptins.fields.namespace +
+          '&foldername=' +
+          this.layOutOptins.fields.folderName +
+          '&isTreeLoad=false';
+        this.http
+          .post('/api/builder/LoadTableInfo?' + queryParam, {}, true)
+          .then((x) => {
+            if (!x.status) {
+              this.$message.error(x.message);
+              return;
+            }
+            let hasTree = this.tree.some((t) => {
+              return t.id == x.data.table_Id;
+            });
+            if (!hasTree) {
+              this.tree.push({
+                id: x.data.table_Id,
+                pId: x.data.parentId,
+                parentId: x.data.parentId,
+                name: x.data.columnCNName,
+                orderNo: x.data.orderNo
+              });
+            }
+            if (!x.data.tableTrueName) {
+              x.data.tableTrueName = x.data.tableName;
+            }
+            this.addModel = false;
+            this.tableInfo = x.data;
+            this.$refs.form.reset(x.data);
+            this.data = x.data.tableColumns;
+          });
+      });
+    },
+    addChild() {
+      // this.$message.info("寮�鍙戜腑");
+      let id = this.layOutOptins.fields.table_Id;
+      if (!id) {
+        return this.$message.error('璇烽�変腑鑺傜偣');
+      }
+      this.addVisible(id);
+    },
+    addRow() {
+      this.data.push({});
+    },
+    delRow() {
+      let tigger = false;
+      this.$confirm('鍒犻櫎璀﹀憡?', '纭瑕佸垹闄ら�夋嫨鐨勬暟鎹悧', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning',
+        center: true
+      }).then(() => {
+        if (tigger) return;
+        tigger = true;
+        this.$refs.table.delRow();
+      });
+    },
+    validateTableInfo(callback) {
+      this.$refs.form.validate(() => {
+        if (!this.tableInfo) {
+          this.$message.error('璇峰厛鍔犺浇鏁版嵁');
+          return false;
+        }
+        if (this.data && this.data.length > 0) {
+          let keyInfo = this.data.find((x) => {
+            return x.isKey;
+          });
+          if (!keyInfo) {
+            this.$message.error('璇峰嬀閫夎缃富閿�');
+            return false;
+          }
+          if (keyInfo.isNull == 1) {
+            this.$message.error('涓婚敭銆愬彲涓虹┖銆戝繀椤昏缃负鍚�');
+            return false;
+          }
+          if (
+            keyInfo.columnType != 'int' &&
+            keyInfo.columnType != 'bigint' &&
+            !this.layOutOptins.fields.sortName
+          ) {
+            this.$message.error('涓婚敭闈炶嚜澧炵被鍨�,璇疯缃笂闈㈣〃鍗曠殑銆愭帓搴忓瓧娈点��');
+            return false;
+          }
+        }
+
+        for (const key in this.tableInfo) {
+          if (this.layOutOptins.fields.hasOwnProperty(key)) {
+            let newVal = this.layOutOptins.fields[key];
+            this.tableInfo[key] = newVal;
+          }
+        }
+        callback();
+      });
+    },
+    ceateVuePage(isApp) {
+      this.validateTableInfo(() => {
+        let vuePath;
+        if (!isApp) {
+          vuePath = localStorage.getItem('vuePath');
+          if (!vuePath) {
+            return this.$message.error(
+              '璇峰厛璁剧疆Vue椤圭洰瀵瑰簲Views鐨勭粷瀵硅矾寰�,鐒跺悗鍐嶄繚瀛�!'
+            );
+          }
+        } else {
+          vuePath = localStorage.getItem('appPath');
+          if (!vuePath) {
+            return this.$message.error('璇峰厛璁剧疆app璺緞,鐒跺悗鍐嶄繚瀛�!');
+          }
+        }
+
+        let url = `/api/builder/createVuePage?vuePath=${vuePath}&v3=1&app=${isApp ||
+          0}`;
+        this.http.post(url, this.tableInfo, true).then((x) => {
+          this.$Message.info(x);
+        });
+      });
+    },
+    createService() {
+      this.validateTableInfo(() => {
+        let queryParam =
+          'tableName=' +
+          this.layOutOptins.fields.tableName +
+          '&nameSpace=' +
+          this.layOutOptins.fields.namespace +
+          '&foldername=' +
+          this.layOutOptins.fields.folderName;
+        this.http
+          .post(
+            '/api/builder/CreateServices?' + queryParam,
+            this.tableInfo,
+            true
+          )
+          .then((x) => {
+            this.$Message.info(x);
+          });
+      });
+    },
+    ceateModel() {
+      this.validateTableInfo(() => {
+        this.http
+          .post('/api/builder/CreateModel', this.tableInfo, true)
+          .then((x) => {
+            this.$message.info(x);
+          });
+      });
+    },
+    syncTable() {
+      if (!this.layOutOptins.fields.tableName)
+        return this.$Message.error('璇烽�夋ā鍧�');
+      this.http
+        .post(
+          '/api/builder/syncTable?tableName=' +
+            this.layOutOptins.fields.tableName,
+          {},
+          true
+        )
+        .then((x) => {
+          if (!x.status) {
+            return this.$Message.error(x.message);
+          }
+          this.$Message.info(x.message);
+          this.loadTableInfo(this.layOutOptins.fields.table_Id);
+        });
+    },
+    ceateApiController() {},
+    ceateController() {},
+    checkSortName() {},
+    save() {
+      localStorage.setItem('vuePath', this.layOutOptins.fields.vuePath || '');
+      localStorage.setItem('appPath', this.layOutOptins.fields.appPath || '');
+
+      if (
+        this.tableInfo &&
+        this.tableInfo.tableColumns &&
+        this.tableInfo.tableColumns.length &&
+        this.tableInfo.tableColumns.filter((x) => {
+          return x.isKey == 1;
+        }).length > 1
+      ) {
+        return this.$Message.error('琛ㄧ粨鏋勫彧鑳藉嬀閫変竴涓富閿瓧娈�');
+      }
+      this.validateTableInfo(() => {
+        this.http.post('/api/builder/Save', this.tableInfo, true).then((x) => {
+          if (!x.status) {
+            this.$Message.error(x.message);
+            return;
+          }
+          this.$Message.info(x.message);
+          this.tree.forEach((x) => {
+            if (x.id == this.layOutOptins.fields.table_Id) {
+              x.name = this.layOutOptins.fields.columnCNName;
+              x.parentId = this.layOutOptins.fields.parentId;
+            }
+          });
+          this.tableInfo = x.data;
+          x.data.vuePath = this.layOutOptins.fields.vuePath;
+          x.data.appPath = this.layOutOptins.fields.appPath;
+          this.$refs.form.reset(x.data);
+          //  this.layOutOptins.fields.vuePath = localStorage.getItem("vuePath");
+          this.data = x.data.tableColumns;
+          //  this.$Message.info(x);
+        });
+      });
+    },
+    onSelect(node) {
+      this.loadTableInfo(node);
+    },
+    onOpenChange(node) {
+      if (node.length == 0) return;
+      this.loadTableInfo(node.length == 1 ? node[0] : node[node.length - 1]);
+    },
+    loadTableInfo(id) {
+      // localStorage.setItem("vuePath", this.layOutOptins.fields.vuePath || "");
+      this.http
+        .post(
+          '/api/builder/LoadTableInfo?table_Id=' + id + '&isTreeLoad=true',
+          {},
+          true
+        )
+        .then((x) => {
+          if (!x.data.tableTrueName) {
+            x.data.tableTrueName = x.data.tableName;
+          }
+          //2021.01.09澧炲姞浠g爜鐢熸垚鍣ㄨ缃畉able鎺掑簭鍔熻兘
+          const _fields = [
+            'sortable',
+            'isNull',
+            'isReadDataset',
+            'isColumnData',
+            'isDisplay'
+          ];
+          x.data.tableColumns.forEach((item) => {
+            for (let index = 0; index < _fields.length; index++) {
+              item[_fields[index]] = item[_fields[index]] || 0;
+            }
+          });
+          this.tableInfo = x.data;
+
+          this.$refs.form.reset(x.data);
+          this.data = x.data.tableColumns;
+        });
+    },
+    getVuePath(key) {
+      let vuePath = localStorage.getItem(key);
+      if (!vuePath || vuePath == 'null' || vuePath == 'undefined') {
+        vuePath = '';
+      }
+      return vuePath;
+    }
+  },
+  mounted() {},
+  created() {
+    let clientHeight = document.documentElement.clientHeight - 170;
+    this.tableHeight = clientHeight < 400 ? 400 : clientHeight;
+    this.http
+      .post('/api/Sys_Dictionary/GetBuilderDictionary', {}, true)
+      .then((dic) => {
+        let column = this.layOutOptins.columns.find((x) => {
+          return x.field == 'dropNo';
+        });
+        if (!column) return;
+
+        let data = [{ key: '', value: '' }];
+        for (let index = 0; index < dic.length; index++) {
+          data.push({ key: dic[index], value: dic[index] });
+        }
+
+        column.bind.data = data;
+      });
+
+    builderData.form.fields.vuePath = this.getVuePath('vuePath');
+    builderData.form.fields.appPath = this.getVuePath('appPath');
+    this.http.post('/api/builder/GetTableTree', {}, false).then((x) => {
+      this.tree = JSON.parse(x.list);
+      if (!x.nameSpace) {
+        return this.$message.error(
+          '鏈幏鍙栧悗鍙伴」鐩被搴撴墍鍦ㄥ懡鍚嶇┖闂�,璇风‘璁ょ洰褰曟垨璋冭瘯Sys_TableInfoService绫籊etTableTree鏂规硶'
+        );
+      }
+      let nameSpace = JSON.parse(x.nameSpace);
+      let nameSpaceArr = [];
+      for (let index = 0; index < nameSpace.length; index++) {
+        nameSpaceArr.push({
+          key: nameSpace[index],
+          value: nameSpace[index]
+        });
+      }
+
+      //鍒濆鍖栭」鐩懡浠ょ┖闂�
+      this.layOutOptins.options.forEach((option) => {
+        option.forEach((item) => {
+          if (item.field == 'namespace') {
+            item.data.push(...nameSpaceArr);
+          }
+        });
+      });
+      this.addOptions.forEach((option) => {
+        option.forEach((item) => {
+          if (item.field == 'namespace') {
+            item.data.push(...nameSpaceArr);
+          }
+        });
+      });
+    });
+  }
+};
+</script>
+<style scoped>
+.builder-tree {
+  position: absolute;
+  top: 41px;
+  bottom: 0;
+}
+.builder-tree >>> .ivu-menu {
+  text-align: left;
+  width: 200px !important;
+}
+.builder-container {
+  widows: 100%;
+  /* padding: 20px; */
+  position: absolute;
+  top: 0px;
+  left: 0;
+  right: 0;
+  display: inline-block;
+  bottom: 0;
+}
+.grid-container >>> tr:hover {
+  cursor: pointer;
+}
+.builder-left {
+  position: relative;
+  width: 201px;
+  height: 100%;
+  border-right: 2px solid #dcd6d6;
+}
+.builder-content {
+  position: absolute;
+  top: 0px;
+  left: 200px;
+  display: inline-block;
+  bottom: 0;
+  right: 0px;
+}
+.builder-content .ivu-alert {
+  position: relative;
+  display: flex;
+  padding: 12px 18px 12px 38px;
+}
+.builder-content .ivu-alert-icon {
+  top: 10px;
+}
+.builder-content .action {
+  text-align: right;
+  line-height: 33px;
+  padding-right: 26px;
+}
+.builder-content .action i {
+  top: 0px;
+  position: relative;
+}
+.builder-content .action > span {
+  padding: 0px 6px;
+  font-size: 12px;
+  letter-spacing: 1px;
+  color: #5a5f5e;
+}
+.builder-content .action > span:hover {
+  cursor: pointer;
+  color: black;
+}
+.builder-content .config {
+  /* border: 1px solid #e9e8e8; */
+  padding: 15px 15px 0px 15px;
+  border-radius: 3px;
+  background: #ffffff;
+  margin-bottom: 10px;
+}
+.builder-container .config >>> .ivu-form > .ivu-form-item {
+  display: none;
+}
+.coder-container {
+  background: #eee;
+}
+.coder-container .coder-item {
+  background: white;
+  padding: 0px 15px;
+}
+.module-name {
+  color: #2d8cf0;
+  font-size: 13px;
+  line-height: 39px;
+  padding-left: 15px;
+  border: 1px solid #abdcff;
+  background-color: #f0faff;
+}
+.module-name >>> .ivu-alert-icon {
+  top: 12px;
+}
+.help {
+  margin-left: 15px;
+  top: 2px;
+  position: relative;
+  border-bottom: 1px solid;
+}
+.help:hover {
+  color: #f56c6c;
+  cursor: pointer;
+}
+.more {
+  text-align: left;
+  position: relative;
+  top: 2px;
+}
+.addModel {
+  padding: 10px;
+}
+</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata.vue"
new file mode 100644
index 0000000..2759b12
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata.vue"
@@ -0,0 +1,258 @@
+
+<template>
+  <div id="big-data-container" class="big-data-container">
+    <div class="head">
+      <h1>澶у睆鏁版嵁缁熻鍒嗘瀽鏄剧ず</h1>
+    </div>
+    <div class="data-container">
+      <div class="data-left">
+        <div class="data-left-item">
+          <div class="title">鍟嗗搧閿�閲忓垎绫�</div>
+          <div id="chart-vleft-1" style="height: calc(100% - 30px)"></div>
+          <div class="data-foot-line"></div>
+        </div>
+        <div class="data-left-item">
+          <div class="title">鏈湀鍟嗗搧閿�閲�</div>
+          <div id="chart-vleft-3" style="height: calc(100% - 30px)"></div>
+
+          <div class="data-foot-line"></div>
+        </div>
+        <div class="data-left-item">
+          <div class="title">7鏃ヨ鍗曢攢閲�</div>
+          <div id="chart-vleft-2" style="height: calc(100% - 30px)"></div>  
+          <div class="data-foot-line"></div>
+        </div>
+      </div>
+      <div class="data-center">
+        <!-- <div class="title">涓棿浣嶇疆</div> -->
+        <div class="center-top-num">
+          <div class="item">
+            <div class="text">绱閿�閲�</div>
+            <div class="num">220,000</div>
+          </div>
+          <div class="item">
+            <div class="text">绱閿�鍞噾棰�</div>
+            <div class="num">58,000,000</div>
+          </div>
+          <div class="item">
+            <div class="text">璐拱鐢ㄦ埛浜烘暟</div>
+            <div class="num">15,000</div>
+          </div>
+          <div class="data-foot-line"></div>
+        </div>
+        <div
+          class="center-top"
+          style="height: 260px; padding-top: 25px; overflow: hidden"
+        >
+          <!-- <div class="title">鐢ㄦ埛娲昏穬淇℃伅-1</div> -->
+          <div id="chart-vgauge-1" style="height: 400px"></div>
+          <!-- <iview-circle :size="200" style="padding: 8px 0;"></iview-circle> -->
+          <div class="data-foot-line"></div>
+        </div>
+        <div class="title">璁㈠崟閿�鍞粺璁�</div>
+        <div id="chart-vcenter" style="height:400px;" class="chart-vcenter"></div>
+      </div>
+      <div class="data-right">
+        <div class="data-right-item">
+          <div class="title">閿�鍞儏鍐佃蛋鍔�</div>
+          <div id="chart-vright-1" style="height: calc(100% - 30px)"></div>
+          <div class="data-foot-line"></div>
+        </div>
+        <div class="data-right-item" style="height: 220px; padding-top: 25px">
+          <!-- <div class="title">鐢ㄦ埛娲昏穬淇℃伅</div> -->
+          <!-- <iview-circle></iview-circle> -->
+          <div id="chart-vgauge-2" style="height: 300px"></div>
+          <div class="data-foot-line"></div>
+        </div>
+        <div class="data-right-item right-3">
+          <div class="title">鍟嗗搧閿�鍞帓琛�</div>
+          <div id="chart-vright-3" class="right-item">
+            <div class="item">
+              <div class="top">鎺掑悕</div>
+              <div class="pro-name">鍟嗗搧鍚嶇О</div>
+              <div class="num">閿�閲�</div>
+              <div class="num">閿�鍞噾棰�</div>
+            </div>
+            <div class="item">
+              <div class="top top-1">
+                <span>1</span>
+              </div>
+              <div class="pro-name">鍗″笣涔愰硠楸�</div>
+              <div class="num">2,200</div>
+              <div class="num">360,00</div>
+            </div>
+            <div class="item">
+              <div class="top top-2">
+                <span>2</span>
+              </div>
+              <div class="pro-name">鏄ュ鐢稵鎭�</div>
+              <div class="num">1,700</div>
+              <div class="num">24,500</div>
+            </div>
+            <div class="item">
+              <div class="top top-3">
+                <span>3</span>
+              </div>
+              <div class="pro-name">鐢峰コ鍚屾浼戦棽闉�</div>
+              <div class="num">1,120</div>
+              <div class="num">12,700</div>
+            </div>
+          </div>
+          <div class="boxfoot"></div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+var echarts = require("echarts");
+let $chartLeft1,
+  $chartLeft2,
+  $chartLeft3,
+  $chartCenter,
+  $chartRight1,
+  $chartGauge1,
+  $chartGauge2;
+import {
+  chartLeft1,
+  chartLeft2,
+  chartLeft3,
+  chartRight1,
+  gauge,
+} from "./bigdata/chart-options";
+// import IviewCircle from "./bigdata/IviewCircle";
+import "./bigdata/layout.less";
+export default {
+  components: {
+    // "iview-circle": IviewCircle
+  },
+  data() {
+    return {};
+  },
+  created() {
+    console.log("chart");
+  },
+  mounted() {
+    if ($chartLeft1) {
+      $chartLeft1.dispose();
+      $chartLeft2.dispose();
+      $chartLeft3.dispose();
+      $chartCenter.dispose();
+      $chartRight1.dispose();
+      $chartGauge1.dispose();
+      $chartGauge2.dispose();
+    }
+    $chartLeft1 = echarts.init(document.getElementById("chart-vleft-1"));
+    $chartLeft1.setOption(chartLeft1, true);
+
+    $chartLeft2 = echarts.init(document.getElementById("chart-vleft-2"));
+    $chartLeft2.setOption(chartLeft2, true);
+
+    $chartLeft3 = echarts.init(document.getElementById("chart-vleft-3"));
+    $chartLeft3.setOption(chartLeft3, true);
+
+    $chartCenter = echarts.init(document.getElementById("chart-vcenter"));
+    $chartCenter.setOption(chartRight1, true);
+
+    $chartRight1 = echarts.init(document.getElementById("chart-vright-1"));
+    $chartRight1.setOption(chartRight1, true);
+
+    $chartGauge1 = echarts.init(document.getElementById("chart-vgauge-1"));
+    $chartGauge1.setOption(gauge, true);
+
+    $chartGauge2 = echarts.init(document.getElementById("chart-vgauge-2"));
+    $chartGauge2.setOption(gauge);
+  },
+  destroyed() {
+    $chartLeft1 = null;
+    $chartLeft2 = null;
+    $chartLeft3 = null;
+    $chartCenter = null;
+    $chartRight1 = null;
+    $chartGauge1 = null;
+    $chartGauge2 = null;
+  },
+};
+</script>
+<style scoped>
+/* .chart-center {
+  display: flex;
+  border: 1px solid #0000ff;
+  height: 200px;
+  flex-direction: column;
+  margin-top: 20px;
+}
+.chart-center .item {
+  text-align: center;
+  border: 1px solid #00c1b3;
+  flex: 1;
+} */
+.right-3 {
+  display: flex;
+  flex-direction: column;
+  /* margin-top: 20px; */
+}
+
+.right-3 .right-item {
+  flex: 1;
+  display: flex;
+  flex-direction: column;
+}
+
+.right-3 .item {
+  text-align: left;
+  border-bottom: 1px solid #549069;
+  flex: 1;
+  display: flex;
+  padding: 5px 10px;
+  margin: 0 10px;
+  font-size: 14px;
+  line-height: 30px;
+}
+
+.right-3 .item:last-child {
+  border-bottom: 0;
+}
+
+.right-3 .item > div {
+  color: white;
+}
+
+.right-3 .top {
+  width: 60px;
+  position: relative;
+}
+
+.right-3 .top span {
+  position: absolute;
+  width: 20px;
+  line-height: 20px;
+  top: 5px;
+  text-align: center;
+  border-radius: 5px;
+}
+
+.right-3 .top-1 span {
+  background: #e80d0d;
+}
+
+.right-3 .top-2 span {
+  background: #00c935;
+}
+
+.right-3 .top-3 span {
+  background: #0083f4;
+}
+
+.right-3 .num {
+  width: 88px;
+}
+
+.right-3 .pro-name {
+  flex: 1;
+}
+</style>
+
+
+
+
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/IviewCircle.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/IviewCircle.vue"
new file mode 100644
index 0000000..c166d91
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/IviewCircle.vue"
@@ -0,0 +1,102 @@
+<template>
+  <div class="demo-Circle">
+    <div style>
+      <i-circle
+        :size="size"
+        :trail-width="4"
+        :stroke-width="5"
+        :percent="75"
+        stroke-linecap="square"
+        stroke-color="#43a3fb"
+      >
+        <div class="demo-Circle-custom">
+          <h1>1500</h1>
+          <p>鏄ㄦ棩娲昏穬鐢ㄦ埛鏁伴噺</p>
+          <span>
+            鍗犳瘮
+            <i>{{1500/20000}}%</i>
+          </span>
+        </div>
+      </i-circle>
+    </div>
+    <div style>
+      <i-circle
+        :size="size"
+        :trail-width="4"
+        :stroke-width="5"
+        :percent="75"
+        stroke-linecap="square"
+        stroke-color="#43a3fb"
+      >
+        <div class="demo-Circle-custom">
+          <h1>12000</h1>
+          <p>涓婃湀娲昏穬鐢ㄦ埛鏁伴噺</p>
+          <span>
+            鍗犳瘮
+            <i>{{12000/150000}}%</i>
+          </span>
+        </div>
+      </i-circle>
+    </div>
+  </div>
+</template>
+<script>
+export default {
+  props:{
+    size:{
+      type:Number,
+      default:150
+    }
+  }
+}
+</script>
+<style scoped>
+.demo-Circle {
+  display: flex;
+}
+.demo-Circle > div {
+  flex: 1;
+  text-align: center;
+}
+.demo-Circle > div:first-child{
+  padding-left:10%;
+}
+
+.demo-Circle > div:last-child{
+  padding-right:10%;
+}
+</style>
+<style lang="less" scoped>
+.demo-Circle-custom {
+  & h1 {
+    color:#ffffff;
+    font-size: 28px;
+    font-weight: normal;
+  }
+  & p {
+    color: #ece8e8;
+    font-size: 14px;
+    margin: 10px 0 15px;
+  }
+  & span {
+    display: block;
+    padding-top: 15px;
+    color: wheat;
+    font-size: 14px;
+    &:before {
+      content: "";
+      display: block;
+      width: 50px;
+      height: 1px;
+      margin: 0 auto;
+      background: #e0e3e6;
+      position: relative;
+      top: -15px;
+    }
+  }
+  & span i {
+    font-style: normal;
+    color: white;
+  }
+}
+</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/head_bg.png" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/head_bg.png"
new file mode 100644
index 0000000..a2e45f6
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/head_bg.png"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/layout.less" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/layout.less"
new file mode 100644
index 0000000..3f6cffd
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/bigdata/layout.less"
@@ -0,0 +1,197 @@
+
+.big-data-container {
+  position: absolute;
+  overflow: hidden;
+  height: 100%;
+  width: 100%;
+  background-color: #1400a8;
+  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25' viewBox='0 0 1200 800'%3E%3Cdefs%3E%3CradialGradient id='a' cx='0' cy='800' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%230e0077'/%3E%3Cstop offset='1' stop-color='%230e0077' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='b' cx='1200' cy='800' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%2314057c'/%3E%3Cstop offset='1' stop-color='%2314057c' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='c' cx='600' cy='0' r='600' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%230d0524'/%3E%3Cstop offset='1' stop-color='%230d0524' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='d' cx='600' cy='800' r='600' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%231400a8'/%3E%3Cstop offset='1' stop-color='%231400a8' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='e' cx='0' cy='0' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%23000000'/%3E%3Cstop offset='1' stop-color='%23000000' stop-opacity='0'/%3E%3C/radialGradient%3E%3CradialGradient id='f' cx='1200' cy='0' r='800' gradientUnits='userSpaceOnUse'%3E%3Cstop offset='0' stop-color='%23130733'/%3E%3Cstop offset='1' stop-color='%23130733' stop-opacity='0'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect fill='url(%23a)' width='1200' height='800'/%3E%3Crect fill='url(%23b)' width='1200' height='800'/%3E%3Crect fill='url(%23c)' width='1200' height='800'/%3E%3Crect fill='url(%23d)' width='1200' height='800'/%3E%3Crect fill='url(%23e)' width='1200' height='800'/%3E%3Crect fill='url(%23f)' width='1200' height='800'/%3E%3C/svg%3E");
+  background-attachment: fixed;
+  background-size: cover;
+  .head {
+    height: 75px;
+    /* height: 1.05rem; */
+    background: url(./head_bg.png) no-repeat center center;
+    background-size: 100% 100%;
+    position: relative;
+    z-index: 100;
+  }
+}
+
+.head h1 {
+  margin: 0;
+  color: #fff;
+  text-align: center;
+  /* font-size: .4rem; */
+  /* line-height: .8rem; */
+  line-height: 71px;
+}
+
+.data-container {
+  /* margin: 5px 15px;
+        height:100%; */
+
+  margin: 0px 15px;
+  position: absolute;
+  left: 0;
+  right: 0;
+  top: 76px;
+  bottom: 0;
+}
+
+.data-container > div {
+  float: left;
+  /* border: 1px solid white; */
+  height: 100%;
+}
+
+.data-center {
+  padding: 0 0.9rem;
+  width: 40%;
+  display: flex;
+  flex-direction: column;
+  // .center-top{
+  //   height: 210px;
+  //   background: red;
+  // }
+.chart-center{
+  flex: 1;
+}
+}
+.chart-center{
+  width: 100%;
+display: flex;
+//  background: white;
+}
+.data-left,
+.data-right {
+  width: 30%;
+  display: flex;
+
+  flex-direction: column;
+}
+
+.data-left-item,
+.data-right-item,.center-top,.center-top-num,.chart-center {
+  border: 1px solid rgba(25, 186, 139, 0.17);
+  padding: 0 0.2rem 0.4rem 0.15rem;
+  background: rgba(255, 255, 255, 0.04);
+  background-size: 100% auto;
+  position: relative;
+  margin-bottom: 0.15rem;
+  z-index: 10;
+}
+
+.data-foot-line {
+  position: absolute;
+  bottom: 0;
+  width: 100%;
+  left: 0;
+}
+
+.data-foot-line:before,
+.data-foot-line:after {
+  position: absolute;
+  width: 10px;
+  height:10px;
+  content: "";
+  border-bottom: 2px solid #02a6b5;
+  bottom: 0;
+}
+
+.boxall:before,
+.data-foot-line:before {
+  border-left: 2px solid #02a6b5;
+  left: 0;
+}
+
+.boxall:after,
+.data-foot-line:after {
+  border-right: 2px solid #02a6b5;
+  right: 0;
+}
+
+.boxall:before,
+.boxall:after {
+  position: absolute;
+  width: 10px;
+  height: 10px;
+  content: "";
+  border-top: 2px solid #02a6b5;
+  top: 0;
+}
+
+.data-left-item:before,
+.data-right-item:before,
+.center-top-num:before,
+.center-top:before{
+  border-left: 2px solid #02a6b5;
+  left: 0;
+  position: absolute;
+  width: 10px;
+  height:10px;
+  content: "";
+  border-top: 2px solid #02a6b5;
+  top: 0;
+}
+
+.data-left-item:after,
+.data-right-item:after,
+.center-top-num:after,
+.center-top:after {
+  border-right: 2px solid #02a6b5;
+  right: 0;
+  position: absolute;
+  width: 10px;
+  height: 10px;
+  content: "";
+  border-top: 2px solid #02a6b5;
+  top: 0;
+}
+
+.data-left,
+.data-right {
+  /* display: flex; */
+}
+
+.data-left > .data-left-item,
+.data-right > .data-right-item {
+  flex: 1;
+  margin-bottom: 0.9rem;
+}
+
+.data-center  .title,
+.data-left > .data-left-item .title,
+.data-right > .data-right-item .title {
+  /* font-size: .2rem; */
+  font-size: 1rem;
+  padding: 7px 0;
+  color: #fff;
+  text-align: center;
+  /* line-height: .5rem; */
+}
+
+.data-center .chart-center{
+  width: 100%;
+}
+
+.center-top-num{
+  height: 80px;
+  padding-top: 7px;
+  margin-bottom: 0.8rem;
+  display: flex;
+  .item{
+    flex: 1;
+    text-align: center;
+  }
+  .text{
+    color: #fcf0d8;
+    font-size: 14px;
+  }
+  .num{
+    font-size: 34px;
+    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Helvetica Neue, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol;
+    font-weight: bold;
+    color: #67caca;
+  }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/chart.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/chart.vue"
new file mode 100644
index 0000000..3b0695a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/chart.vue"
@@ -0,0 +1,101 @@
+<template>
+  <div class="m-charts">
+    <el-tabs
+      v-model="name"
+      @tab-click="tabClick"
+      type="border-card"
+      style="height: 100%; width: 100%; box-shadow: none"
+    >
+      <el-tab-pane name="bar">
+        <template #label>
+          <span><i class="el-icon-date"></i> 鏌辩姸鍥� </span>
+        </template>
+        <div
+          :style="{ height: heigth + 'px', width: width + 'px' }"
+          id="bar-0001"
+        ></div>
+      </el-tab-pane>
+      <el-tab-pane name="pie" :lazy="false" label="娑堟伅涓績">
+        <template #label>
+          <span><i class="el-icon-date"></i> 楗肩姸鍥� </span>
+        </template>
+        <div
+          :style="{ height: heigth + 'px', width: width + 'px' }"
+          id="pie-0001"
+        ></div>
+      </el-tab-pane>
+      <el-tab-pane name="line" :lazy="false" label="瑙掕壊绠$悊">
+        <template #label>
+          <span><i class="el-icon-date"></i> 鎶樼嚎鍥� </span>
+        </template>
+        <div
+          :style="{ height: heigth + 'px', width: width + 'px' }"
+          id="line-0001"
+        ></div>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+<script>
+let echarts = require("echarts");
+import options from "./chartOptions";
+let $bar;
+let $pie;
+let $line;
+export default {
+  mounted() {
+    $bar = echarts.init(document.getElementById("bar-0001"));
+    $bar.setOption(this.options.bar);
+  },
+  created() {
+    this.heigth = document.documentElement.clientHeight - 190;
+    this.width = document.documentElement.clientWidth - 240;
+  },
+  methods: {
+    tabClick(name) {
+      if (name.props.name == "pie") {
+        if (!$pie) {
+          $pie = echarts.init(document.getElementById("pie-0001"));
+          $pie.setOption(this.options.pie);
+
+        }
+      } else if (name.props.name == "line") {
+        if (!$line) {
+          $line = echarts.init(document.getElementById("line-0001"));
+          $line.setOption(this.options.line);
+         
+        }
+      }
+    },
+  },
+  data() {
+    return {
+      name: "bar",
+      heigth: 450,
+      width: 1000,
+      options: options,
+    };
+  },
+};
+</script>
+<style lang="less" scoped>
+.m-charts {
+  position: absolute;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: #f1f1f1;
+  margin: auto 0;
+  padding: 12px;
+  .m-tabs {
+    background: white;
+  }
+}
+.m-charts ::v-deep(.el-tabs__content) {
+  height: calc(100% - 45px);
+}
+.m-charts ::v-deep(.el-tab-pane) {
+  height: 100%;
+}
+</style>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/flex.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/flex.vue"
new file mode 100644
index 0000000..e94823a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/flex.vue"
@@ -0,0 +1,386 @@
+<template>
+  <div class="home-contianer">
+    <div>
+      <div class="order-title">
+        <h2>璁㈠崟缁熻</h2>
+      </div>
+      <div
+        data-v-542f4644
+        class="ivu-row"
+        style="padding: 15px; background: white"
+      >
+        <div
+          v-for="item in topColor"
+          :key="item.name"
+          class="ivu-col ivu-col-span-6"
+          style="padding-left: 8px; padding-right: 8px"
+        >
+          <div
+            data-v-542f4644
+            class="ivu-card"
+            :style="{ background: item.background }"
+          >
+            <div class="icon-left">
+              <i :class="item.icon" />
+            </div>
+            <div class="ivu-card-body">
+              <div class="demo-color-name">{{ item.name }}</div>
+              <div class="demo-color-desc">#{{ item.qty }}</div>
+            </div>
+          </div>
+        </div>
+      </div>
+
+      <div class="numbers">
+        
+        <div class="item" v-for="index in 8" :key="index">
+          <div class="number">
+            <!-- {{value}} -->
+            {{index * 1000}}
+          </div>
+          <div>Order total</div>
+        </div>
+      </div>
+
+      <div class="order-title">
+        <h2>璁㈠崟鏌ヨ</h2>
+      </div>
+     
+      <div class="order-range">
+        <div
+          class="order-item"
+          v-for="(item, index) in totalRange"
+          :key="index"
+        >
+          <div class="total">
+            <div class="number">
+              {{item.qty}}
+            </div>
+          </div>
+          <div class="name">{{ titleLeft + item.name }}</div>
+          <div class="date">
+            {{ beginDate.replace(/-/g, ".") }} --
+            {{ endDate.replace(/-/g, ".") }}
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+
+
+export default {
+  data() {
+    return {
+      beginDate: "",
+      endDate: "",
+      n: 90,
+      topColor: [
+        {
+          name: "璁㈠崟鏁�",
+          desc: "#205",
+          background: "rgb(25, 190, 107)",
+          icon: "el-icon-shopping-cart-full",
+          qty: 6000,
+          key: "total",
+        },
+        {
+          name: "宸蹭粯娆�",
+          desc: "#412",
+          background: "rgb(45, 183, 245)",
+          icon: "el-icon-wallet",
+          qty: 7100,
+          key: "total",
+        },
+        {
+          name: "寰呭彂璐�",
+          desc: "#412",
+          background: "#f2b458",
+          icon: "el-icon-shopping-cart-1",
+          qty: 500,
+          key: "hasPay",
+        },
+        {
+          name: "閰嶉�佷腑",
+          desc: "#412",
+          background: "rgb(84, 110, 122)",
+          icon: "el-icon-shopping-cart-2",
+          qty: 800,
+          key: "notShip",
+        },
+        {
+          name: "宸插畬鎴�",
+          desc: "#412",
+          background: "rgb(45, 183, 245)",
+          icon: "el-icon-set-up",
+          qty: 1880,
+          key: "completed",
+        },
+        {
+          name: "閫�璐ц鍗�",
+          desc: "#12",
+          background: "rgb(237, 64, 20)",
+          icon: "el-icon-data-analysis",
+          qty: 2290,
+          key: "refund",
+        },
+      ],
+      totalRange: [
+        {
+          name: "璁㈠崟鏁�",
+          desc: "#205",
+          background: "rgb(25, 190, 107)",
+          icon: "ios-cart",
+          qty: 1290,
+          key: "total",
+        },
+        {
+          name: "宸蹭粯娆�",
+          desc: "#412",
+          background: "rgb(45, 183, 245)",
+          icon: "ios-cash",
+          qty: 3450,
+          key: "total",
+        },
+        {
+          name: "寰呭彂璐�",
+          desc: "#412",
+          background: "rgb(255, 153, 0)",
+          icon: "md-bus",
+          qty: 200,
+          key: "hasPay",
+        },
+        {
+          name: "閰嶉�佷腑",
+          desc: "#412",
+          background: " rgb(84, 110, 122)",
+          icon: "md-pin",
+          qty: 7000,
+          key: "notShip",
+        },
+        {
+          name: "浜ゆ槗瀹屾垚",
+          desc: "#412",
+          background: "rgb(45, 183, 245)",
+          icon: "ios-help-buoy",
+          qty: 8900,
+          key: "completed",
+        },
+        {
+          name: "閫�璐ц鍗�",
+          desc: "#12",
+          background: "rgb(237, 64, 20)",
+          icon: "ios-navigate",
+          qty: 2450,
+          key: "refund",
+        },
+      ],
+      value1: "1",
+      titleLeft: "",
+      dateNow: "",
+    };
+  },
+  methods: {
+    getDate() {
+      var date = new Date();
+      var year = date.getFullYear();
+      var month = date.getMonth() + 1;
+      var day = date.getDate();
+      var hour = date.getHours();
+      var minutes = date.getMinutes();
+      var second = date.getSeconds();
+      this.beginDate =
+        year +
+        "-" +
+        (month < 10 ? "0" + month : month) +
+        "-" +
+        (day < 10 ? "0" + day : day);
+      this.endDate = this.beginDate;
+      this.dateNow = this.beginDate;
+    },
+    search() {
+      if (this.dateNow == this.beginDate && this.dateNow == this.endDate) {
+        this.titleLeft = "浠婃棩";
+      } else {
+        this.titleLeft = "褰撴湡";
+      }
+    },
+  },
+  created() {
+    this.getDate();
+  },
+  mounted() {},
+};
+</script>
+<style scoped>
+.home-contianer {
+  background: #efefef;
+  width: 100%;
+  height: 100%;
+  /* padding: 20px; */
+}
+
+.ivu-card-body {
+  text-align: center;
+  padding: 20px 5px;
+  /* padding-left: 80px; */
+  font-size: 16px;
+}
+.demo-color-name {
+  color: #fff;
+  font-size: 14px;
+}
+.demo-color-desc {
+  color: white;
+  /* opacity: 0.7; */
+  font-size: 20px;
+  margin-top: 2px;
+}
+.ivu-card {
+  box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47);
+  display: flex;
+  position: relative;
+      padding-top: 10px;
+    border-radius: 5px;
+}
+.ivu-card .icon-left {
+  width: 85px;
+}
+.ivu-card .ivu-card-body {
+  flex: 1;
+}
+.ivu-card .icon-left {
+  text-align: center;
+  border-right: 1px solid;
+  padding: 8px 0px;
+  height: 100%;
+
+  font-size: 50px;
+  color: white;
+}
+.ivu-row {
+  border-bottom: 2px dotted #eee;
+  padding: 15px;
+  margin-bottom: 15px;
+  display: flex;
+}
+
+.ivu-row > div {
+  flex: 1;
+}
+
+.h5-desc {
+  padding-top: 10px;
+}
+</style>
+
+<style lang="less" scoped>
+.jn-day-total {
+  display: flex;
+  padding: 15px;
+  background: white;
+  .date-text {
+    line-height: 36px;
+    padding: 0 15px;
+  }
+  .date {
+    margin-right: 20px;
+  }
+  .btn {
+    margin-left: 10px;
+  }
+}
+.order-title {
+  h2 {
+    padding: 7px 15px;
+    font-weight: 500;
+    background: white;
+    border-bottom: 1px dotted #d4d4d4;
+  }
+}
+
+.order-range {
+  padding: 0 15px;
+  background: white;
+  background: white;
+  display: flex;
+  // flex-direction: row-reverse;
+}
+
+.order-range .order-item {
+  box-shadow: 0 3px 13px rgba(117, 114, 114, 0.47);
+  flex: 1;
+  border-radius: 6px;
+  font-size: 14px;
+  text-align: center;
+  border: 1px solid #e6e6e6;
+  margin: 7px;
+}
+
+.order-range .total {
+  color: white;
+  font-size: 50px;
+  font-weight: bold;
+  line-height: 100px;
+  background: #55ce80;
+  font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB",
+    "Microsoft YaHei", "寰蒋闆呴粦", Arial, sans-serif;
+}
+.order-range .number {
+  transition: transform 0.8s;
+}
+.order-range .number:hover {
+  cursor: pointer;
+  transform: scale(1.2);
+}
+.order-range .name {
+  font-size: 20px;
+  padding: 10px;
+}
+
+.order-range .date {
+  padding: 1px 0 20px 0;
+  color: #9e9e9e;
+  font-size: 13px;
+}
+</style>
+
+
+<style lang="less" scoped>
+.numbers {
+    margin-bottom: 15px;
+  border-radius: 5px;
+  border: 1px solid #eaeaea;
+  background: white;
+  display: flex;
+
+  padding: 20px 0px;
+  .item {
+    flex: 1;
+    text-align: center;
+    border-right: 1px solid #e5e5e5;
+  }
+  .item > 銆�div:first-child {
+    word-break: break-all;
+    color: #282727;
+    font-size: 30px;
+    // padding-bottom: 12px;
+  }
+  .item > 銆�div:last-child {
+    font-size: 13px;
+    color: #777;
+  }
+  .item:last-child {
+    border-right: none;
+  }
+  .number {
+    cursor: pointer;
+    transition: transform 0.8s;
+  }
+  .number:hover {
+    transform: scale(1.2);
+    color: #03c10b !important;
+  }
+}
+</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/formChart.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/formChart.vue"
new file mode 100644
index 0000000..25d4f10
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/charts/formChart.vue"
@@ -0,0 +1,118 @@
+<template>
+  <div class="c-container">
+    <div class="item">
+      <div class="left">
+        <VolHeader
+          icon="md-apps"
+          text="鏌辩姸鍥�"
+          style="padding-left: 10px; margin-bottom: 5px"
+        ></VolHeader>
+        <div  style="height: calc(100% - 45px)" :id="bar"></div>
+      </div>
+      <div class="right">
+        <VolHeader
+          icon="md-apps"
+          text="鍩虹琛ㄥ崟"
+          style="padding-left: 10px; margin-bottom: 20px"
+        ></VolHeader>
+        <VolForm
+          style="padding-right: 30px"
+          ref="myform1"
+          :loadKey="true"
+          :label-width="80"
+          :formFields="formFields1"
+          :formRules="formRules1"
+        ></VolForm>
+      </div>
+    </div>
+
+    <div class="item">
+      <div class="left">
+        <VolHeader
+          icon="md-apps"
+          text="琛ㄥ崟灞炴�у瓧娈靛彧璇�"
+          style="padding-left: 10px; margin-bottom: 20px"
+        ></VolHeader>
+        <VolForm
+          style="padding-right: 30px"
+          ref="myform1"
+          :loadKey="true"
+          :formFields="formFields2"
+          :formRules="formRules2"
+        ></VolForm>
+      </div>
+      <div class="right">
+        <VolHeader
+          icon="md-apps"
+          text="楗肩姸鍥捐〃"
+          style="padding-left: 10px"
+        ></VolHeader>
+        <div style="height: calc(100% - 30px)" :id="pie"></div>
+      </div>
+    </div>
+  </div>
+</template>
+<script>
+import VolHeader from '@/components/basic/VolHeader.vue';
+import VolForm from '@/components/basic/VolForm.vue';
+let echarts = require('echarts');
+import options from './chartOptions';
+import {
+  formFields1,
+  formRules1,
+  formFields2,
+  formRules2
+} from './formOptions';
+export default {
+  components: { VolForm, VolHeader },
+  data() {
+    return {
+      formFields1: formFields1,
+      formRules1: formRules1,
+      formFields2: formFields2,
+      formRules2: formRules2,
+      bar: 'b-' + ~~(Math.random(10000, 100000) * 100000),
+      pie: 'p-' + ~~(Math.random(10000, 100000) * 100000),
+      options: options
+    };
+  },
+  mounted() {
+    let $bar = echarts.init(document.getElementById(this.bar));
+    $bar.setOption(this.options.bar);
+
+    this.options.pie.legend.top = 50;
+    this.options.pie.legend.right = 80;
+    this.options.pie.legend.orient = 'vertical';
+    let $pie = echarts.init(document.getElementById(this.pie));
+    $pie.setOption(this.options.pie);
+  }
+};
+</script>
+<style lang="less" scoped>
+.c-container {
+  position: absolute;
+  height: 100%;
+  width: 100%;
+  background: #f1f1f1;
+  display: flex;
+  flex-direction: column;
+  padding: 3px;
+  .item {
+    flex:1;
+    height:0;
+    display: flex;
+    > div {
+      flex: 1;
+      width: 0;
+      // margin: 10px;
+      background: #fff;
+    }
+    .left {
+      margin: 4px;
+    }
+    .right {
+      margin: 4px;
+    }
+  }
+}
+</style>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceInfo.vue"
new file mode 100644
index 0000000..65f1f75
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceInfo.vue"
@@ -0,0 +1,365 @@
+
+ <template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+<script>
+import extend from "@/extension/quartzJob/deviceInfo.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "璁惧淇℃伅",
+      name: "deviceInfo",
+      url: "/DeviceInfo/",
+      sortName: "createDate",
+    });
+    const editFormFields = ref({
+      deviceCode: "",
+      deviceName: "",
+      deviceType: "",
+      deviceStatus: "",
+      deviceIp: "",
+      devicePort: "",
+      devicePlcType: "",
+      deviceRemark: "",
+    });
+    const editFormOptions = ref([
+      [
+        {
+          title: "璁惧缂栧彿",
+          required: true,
+          field: "deviceCode",
+          type: "string",
+        },
+        {
+          title: "璁惧鍚嶇О",
+          required: true,
+          field: "deviceName",
+          type: "string",
+        },
+        {
+          title: "璁惧绫诲瀷",
+          required: true,
+          field: "deviceType",
+          type: "select",
+          dataKey: "deviceType",
+          data: [],
+        },
+        {
+          title: "璁惧鐘舵��",
+          required: true,
+          field: "deviceStatus",
+          type: "select",
+          dataKey: "deviceStatus",
+          data: [],
+        },
+      ],
+      [
+        { title: "璁惧IP", required: true, field: "deviceIp", type: "string" },
+        {
+          title: "璁惧绔彛",
+          required: true,
+          field: "devicePort",
+          type: "string",
+        },
+        {
+          title: "PLC绫诲瀷",
+          required: true,
+          field: "devicePlcType",
+          type: "select",
+          dataKey: "devicePlcType",
+          data: [],
+        },
+        {
+          title: "澶囨敞",
+          field: "deviceRemark",
+          type: "string",
+        },
+      ],
+    ]);
+    const searchFormFields = ref({
+      deviceCode: "",
+      deviceType: "",
+      deviceStatus: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "璁惧缂栧彿", field: "deviceCode" },
+        {
+          title: "璁惧绫诲瀷",
+          field: "deviceType",
+          type: "select",
+          dataKey: "deviceType",
+          data: [],
+        },
+        {
+          title: "璁惧鐘舵��",
+          field: "deviceStatus",
+          type: "select",
+          dataKey: "deviceStatus",
+          data: [],
+        },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "deviceCode",
+        title: "璁惧缂栧彿",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "deviceName",
+        title: "璁惧鍚嶇О",
+        type: "string",
+        link: true,
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "deviceType",
+        title: "璁惧绫诲瀷",
+        type: "string",
+        width: 150,
+        align: "left",
+        bind: { key: "deviceType", data: [] },
+      },
+      {
+        field: "deviceStatus",
+        title: "璁惧鐘舵��",
+        type: "string",
+        width: 90,
+        align: "left",
+        bind: { key: "deviceStatus", data: [] },
+      },
+      {
+        field: "deviceIp",
+        title: "璁惧IP",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "devicePort",
+        title: "璁惧绔彛",
+        type: "int",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "devicePlcType",
+        title: "PLC绫诲瀷",
+        type: "string",
+        width: 120,
+        align: "left",
+        bind: { key: "devicePlcType", data: [] },
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "deviceRemark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+    ]);
+    const detail = ref({
+      cnName: "璁惧鍗忚淇℃伅",
+      table: "DeviceProtocol",
+      columns: [
+        {
+          field: "id",
+          title: "Id",
+          type: "int",
+          width: 90,
+          hidden: true,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "deviceId",
+          title: "璁惧涓婚敭",
+          type: "string",
+          width: 90,
+          hidden: true,
+          readonly: true,
+          require: true,
+          align: "left",
+        },
+        {
+          field: "deviceChildCode",
+          title: "璁惧瀛愮紪鍙�",
+          type: "string",
+          edit: { type: "" },
+          width: 150,
+          require: true,
+          align: "left",
+          sortable: true,
+        },
+        {
+          field: "deviceProDataBlock",
+          title: "鍗忚鏁版嵁鍧�",
+          type: "string",
+          width: 100,
+          require: true,
+          align: "left",
+          edit: { type: "" },
+        },
+        {
+          field: "deviceProOffset",
+          title: "鍋忕Щ閲�",
+          type: "decimal",
+          width: 90,
+          edit: { type: "number" },
+          require: true,
+          align: "left",
+        },
+        {
+          field: "deviceProDataType",
+          title: "鏁版嵁绫诲瀷",
+          type: "string",
+          width: 90,
+          require: true,
+          align: "left",
+          edit: { type: "" },
+        },
+        {
+          field: "deviceProDataLength",
+          title: "鏁版嵁闀垮害",
+          type: "int",
+          width: 90,
+          require: true,
+          align: "left",
+          edit: { type: "" },
+        },
+        {
+          field: "deviceProParamName",
+          title: "鍙傛暟鍚嶇О",
+          type: "string",
+          width: 150,
+          require: true,
+          align: "left",
+          edit: { type: "" },
+        },
+        {
+          field: "deviceProParamType",
+          title: "鍙傛暟绫诲瀷",
+          type: "string",
+          width: 150,
+          require: true,
+          align: "left",
+          edit: { type: "" },
+        },
+        {
+          field: "deviceProParamDes",
+          title: "鍙傛暟璇存槑",
+          type: "string",
+          width: 130,
+          require: true,
+          align: "left",
+          edit: { type: "" },
+        },
+        {
+          field: "creater",
+          title: "鍒涘缓浜�",
+          type: "string",
+          width: 90,
+          align: "left",
+          sortable: true,
+        },
+        {
+          field: "creater",
+          title: "鍒涘缓浜�",
+          type: "string",
+          width: 90,
+          align: "left",
+        },
+        {
+          field: "createDate",
+          title: "鍒涘缓鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+        },
+        {
+          field: "modifier",
+          title: "淇敼浜�",
+          type: "string",
+          width: 100,
+          align: "left",
+        },
+        {
+          field: "modifyDate",
+          title: "淇敼鏃堕棿",
+          type: "datetime",
+          width: 160,
+          align: "left",
+        },
+      ],
+      sortName: "createDate",
+      key: "id",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocol.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocol.vue"
new file mode 100644
index 0000000..6d3ea40
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocol.vue"
@@ -0,0 +1,229 @@
+
+<template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+  <script>
+import extend from "@/extension/quartzJob/deviceProtocol.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "璁惧鍗忚淇℃伅",
+      name: "deviceProtocol",
+      url: "/DeviceProtocol/",
+      sortName: "id",
+    });
+    const editFormFields = ref({
+      deviceCode: "",
+      deviceName: "",
+      deviceType: "",
+      deviceStatus: "",
+      deviceIp: "",
+      devicePort: "",
+      devicePlcType: "",
+      deviceRemark: "",
+    });
+    const editFormOptions = ref([
+      [
+        {
+          title: "璁惧缂栧彿",
+          required: true,
+          field: "deviceCode",
+          type: "string",
+        },
+        {
+          title: "璁惧鍚嶇О",
+          required: true,
+          field: "deviceName",
+          type: "string",
+        },
+        {
+          title: "璁惧绫诲瀷",
+          required: true,
+          field: "deviceType",
+          type: "string",
+        },
+        {
+          title: "璁惧鐘舵��",
+          required: true,
+          field: "deviceStatus",
+          type: "string",
+        },
+      ],
+      [
+        { title: "璁惧IP", required: true, field: "deviceIp", type: "string" },
+        {
+          title: "璁惧绔彛",
+          required: true,
+          field: "devicePort",
+          type: "string",
+        },
+        {
+          title: "PLC绫诲瀷",
+          required: true,
+          field: "devicePlcType",
+          type: "string",
+        },
+        {
+          title: "澶囨敞",
+          field: "deviceRemark",
+          type: "string",
+        },
+      ],
+    ]);
+    const searchFormFields = ref({
+      deviceCode: "",
+      deviceType: "",
+      deviceStatus: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "璁惧缂栧彿", field: "deviceCode" },
+        { title: "璁惧绫诲瀷", field: "deviceType" },
+        { title: "璁惧鐘舵��", field: "deviceStatus" },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "deviceId",
+        title: "璁惧涓婚敭",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "deviceChildCode",
+        title: "璁惧瀛愮紪鍙�",
+        type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "deviceProDataBlock",
+        title: "鍗忚鏁版嵁鍧�",
+        type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "deviceProOffset",
+        title: "鍋忕Щ閲�",
+        type: "decimal",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "deviceProDataType",
+        title: "鏁版嵁绫诲瀷",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "deviceProDataLength",
+        title: "鏁版嵁闀垮害",
+        type: "int",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "deviceProParamName",
+        title: "鍙傛暟鍚嶇О",
+        type: "string",
+        width: 200,
+        align: "left",
+      },
+      {
+        field: "deviceProParamType",
+        title: "鍙傛暟绫诲瀷",
+        type: "string",
+        width: 180,
+        align: "left",
+      },
+      {
+        field: "deviceProParamDes",
+        title: "鍙傛暟璇存槑",
+        type: "string",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "deviceProRemark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+    ]);
+    const detail = ref({
+      cnName: "",
+      table: "",
+      columns: [],
+      sortName: "",
+      key: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
+  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocolDetail.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocolDetail.vue"
new file mode 100644
index 0000000..6dd1be7
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/deviceProtocolDetail.vue"
@@ -0,0 +1,207 @@
+
+<template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+  <script>
+import extend from "@/extension/quartzJob/deviceProtocolDetail.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "璁惧鍗忚鏄庣粏淇℃伅",
+      name: "deviceProtocolDetail",
+      url: "/DeviceProtocolDetail/",
+      sortName: "createDate",
+    });
+    const editFormFields = ref({
+      deviceType: "",
+      deviceProParamName: "",
+      protocolDetailType: "",
+      protocalDetailValue: "",
+      protocolDetailDes: "",
+    });
+    const editFormOptions = ref([
+      [
+        {
+          title: "璁惧绫诲瀷",
+          required: true,
+          field: "deviceType",
+          type: "select",
+          dataKey: "deviceType",
+          data: [],
+        },
+        {
+          title: "鍙傛暟鍚嶇О",
+          required: true,
+          field: "deviceProParamName",
+          type: "string",
+        },
+        {
+          title: "鏄庣粏绫诲瀷",
+          required: true,
+          field: "protocolDetailType",
+          type: "string",
+        },
+        {
+          title: "鏄庣粏鍙栧��",
+          required: true,
+          field: "protocalDetailValue",
+          type: "string",
+        },
+      ],
+      [
+        {
+          title: "鏄庣粏璇存槑",
+          field: "protocolDetailDes",
+          type: "textarea",
+        },
+      ],
+    ]);
+    const searchFormFields = ref({
+      deviceType: "",
+      deviceProParamName: "",
+      protocolDetailType: "",
+    });
+    const searchFormOptions = ref([
+      [
+      {
+          title: "璁惧绫诲瀷",
+          field: "deviceType",
+          type: "select",
+          dataKey: "deviceType",
+          data: [],
+        },
+        {
+          title: "鍙傛暟鍚嶇О",
+          field: "deviceProParamName",
+          type: "like",
+        },
+        {
+          title: "鏄庣粏绫诲瀷",
+          field: "protocolDetailType",
+          type: "like",
+        },
+        {
+          title: "鏄庣粏鍙栧��",
+          field: "protocalDetailValue",
+          type: "like",
+        },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "deviceType",
+        title: "璁惧绫诲瀷",
+        type: "string",
+        width: 180,
+        align: "left",
+        bind: { key: "deviceType", data: [] },
+      },
+      {
+        field: "deviceProParamName",
+        title: "璁惧鍗忚鍙傛暟鍚嶇О",
+        type: "string",
+        width: 180,
+        align: "left",
+      },
+      {
+        field: "protocolDetailType",
+        title: "璁惧鍗忚鏄庣粏绫诲瀷",
+        type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "protocalDetailValue",
+        title: "璁惧鍗忚鏄庣粏鍙栧��",
+        type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "protocolDetailDes",
+        title: "璁惧鍗忚鏄庣粏璇存槑",
+        type: "string",
+        width: 350,
+        align: "left",
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "remark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+    ]);
+    const detail = ref({
+      cnName: "",
+      table: "",
+      columns: [],
+      sortName: "",
+      key: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
+  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/dispatchInfo.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/dispatchInfo.vue"
new file mode 100644
index 0000000..3e88503
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/quartzJob/dispatchInfo.vue"
@@ -0,0 +1,247 @@
+
+<template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+  <script>
+import extend from "@/extension/quartzJob/dispatchInfo.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "璋冨害鏈嶅姟閰嶇疆淇℃伅",
+      name: "dispatchInfo",
+      url: "/DispatchInfo/",
+      sortName: "createDate",
+    });
+    const editFormFields = ref({
+      name: "",
+      jobGroup: "",
+      assemblyName: "",
+      className: "",
+      intervalSecond: "",
+      beginTime: "",
+      endTime: "",
+      remark: "",
+    });
+    const editFormOptions = ref([
+      [
+        {
+          title: "浠诲姟鍚嶇О",
+          required: true,
+          field: "name",
+          type: "string",
+        },
+        {
+          title: "浠诲姟鍒嗙粍",
+          required: true,
+          field: "jobGroup",
+          type: "select",
+          dataKey: "deviceType",
+          data: [],
+        },
+        {
+          title: "绋嬪簭闆嗗悕绉�",
+          required: true,
+          field: "assemblyName",
+          type: "string",
+          type: "select",
+          dataKey: "jobAssembly",
+          data: [],
+        },
+        {
+          title: "浠诲姟鎵�鍦ㄧ被",
+          required: true,
+          field: "className",
+          type: "string",
+          type: "select",
+          dataKey: "jobClassName",
+          data: [],
+        },
+      ],
+      [
+        {
+          title: "闂撮殧鏃堕棿",
+          required: true,
+          field: "intervalSecond",
+          type: "number",
+        },
+        {
+          title: "寮�濮嬫椂闂�",
+          field: "beginTime",
+          type: "datetime",
+        },
+        {
+          title: "缁撴潫鏃堕棿",
+          field: "endTime",
+          type: "datetime",
+        },
+        {
+          title: "澶囨敞",
+          field: "remark",
+          type: "string",
+        },
+      ],
+    ]);
+    const searchFormFields = ref({
+      name: "",
+      jobGroup: "",
+      assemblyName: "",
+      className: "",
+    });
+    const searchFormOptions = ref([
+      [
+         {
+          title: "浠诲姟鍚嶇О",
+          field: "name",
+          type: "like",
+        },
+        {
+          title: "浠诲姟鍒嗙粍",
+          field: "jobGroup",
+          type: "select",
+          dataKey: "deviceType",
+          data: [],
+        },
+        {
+          title: "绋嬪簭闆嗗悕绉�",
+          field: "assemblyName",
+          type: "like",
+        },
+        {
+          title: "浠诲姟鎵�鍦ㄧ被",
+          field: "className",
+          type: "like",
+        },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "name",
+        title: "浠诲姟鍚嶇О",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "jobGroup",
+        title: "浠诲姟鍒嗙粍",
+        type: "string",
+        width: 180,
+        align: "left",
+        bind: { key: "deviceType", data: [] },
+      },
+      {
+        field: "assemblyName",
+        title: "绋嬪簭闆嗗悕绉�",
+        type: "string",
+        width: 180,
+        align: "left",
+      },
+      {
+        field: "className",
+        title: "浠诲姟鎵�鍦ㄧ被",
+        type: "int",
+        width: 200,
+        align: "left",
+      },
+      {
+        field: "intervalSecond",
+        title: "鎵ц闂撮殧鏃堕棿",
+        type: "int",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "beginTime",
+        title: "寮�濮嬫椂闂�",
+        type: "datetime",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "endTime",
+        title: "缁撴潫鏃堕棿",
+        type: "int",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "remark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+    ]);
+    const detail = ref({
+      cnName: "",
+      table: "",
+      columns: [],
+      sortName: "",
+      key: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
+  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/system/Sys_Role1.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/system/Sys_Role1.vue"
new file mode 100644
index 0000000..19ed48a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/system/Sys_Role1.vue"
@@ -0,0 +1,72 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/system/Sys_Role.js姝ゅ缂栧啓
+ -->
+<template>
+    <view-grid ref="grid"
+               :columns="columns"
+               :detail="detail"
+               :editFormFields="editFormFields"
+               :editFormOptions="editFormOptions"
+               :searchFormFields="searchFormFields"
+               :searchFormOptions="searchFormOptions"
+               :table="table"
+               :extend="extend">
+    </view-grid>
+</template>
+<script>
+    import extend from "@/extension/system/Sys_Role1.js";
+    import { ref, defineComponent } from "vue";
+    export default defineComponent({
+        setup() {
+            const table = ref({
+                key: 'Role_Id',
+                footer: "Foots",
+                cnName: '瑙掕壊绠$悊',
+                name: 'Sys_Role',
+                url: "/Sys_Role/",
+                sortName: "Role_Id"
+            });
+            const editFormFields = ref({"ParentId":[],"RoleName":"","DeptName":"","Enable":"","Creator":"","CreateDate":"","Modifier":"","ModifyDate":""});
+            const editFormOptions = ref([[{"dataKey":"tree_roles","data":[],"title":"鐖剁骇ID","required":true,"field":"ParentId","type":"cascader"},
+                               {"title":"瑙掕壊鍚嶇О","required":true,"field":"RoleName"}],
+                              [{"title":"閮ㄩ棬鍚嶇О","field":"DeptName"},
+                               {"dataKey":"enable","data":[],"title":"鏄惁鍚敤","field":"Enable","type":"switch"}],
+                              [{"title":"鍒涘缓浜�","field":"Creator","disabled":true},
+                               {"title":"鍒涘缓鏃堕棿","field":"CreateDate","disabled":true,"type":"datetime"}],
+                              [{"title":"淇敼浜�","field":"Modifier","disabled":true},
+                               {"title":"淇敼鏃堕棿","field":"ModifyDate","disabled":true}]]);
+            const searchFormFields = ref({"RoleName":"","DeptName":"","Enable":"","CreateDate":"","ModifyDate":""});
+            const searchFormOptions = ref([[{"title":"瑙掕壊鍚嶇О","field":"RoleName","type":"text"},{"title":"閮ㄩ棬鍚嶇О","field":"DeptName","type":"text"},{"dataKey":"enable","data":[],"title":"鏄惁鍚敤","field":"Enable","type":"select"}],[{"title":"鍒涘缓鏃堕棿","field":"CreateDate","type":"datetime"},{"title":"淇敼鏃堕棿","field":"ModifyDate","type":"datetime"}]]);
+            const columns = ref([{field:'Role_Id',title:'瑙掕壊ID',type:'int',width:70,readonly:true,require:true,align:'left',sortable:true},
+                      // {field:'ParentId',title:'鐖剁骇ID',type:'int',bind:{ key:'tree_roles',data:[]},width:70,require:true,align:'left'},
+                       {field:'RoleName',title:'瑙掕壊鍚嶇О',type:'string',link:true,width:90,require:true,align:'left'},
+                       {field:'Dept_Id',title:'閮ㄩ棬ID',type:'int',width:90,hidden:true,align:'left'},
+                       {field:'DeptName',title:'閮ㄩ棬鍚嶇О',type:'string',width:90,align:'left'},
+                       {field:'Enable',title:'鏄惁鍚敤',type:'byte',bind:{ key:'enable',data:[]},width:90,align:'left'},
+                       {field:'OrderNo',title:'鎺掑簭',type:'int',width:90,hidden:true,align:'left'},
+                       {field:'Creator',title:'鍒涘缓浜�',type:'string',width:130,readonly:true,align:'left'},
+                       {field:'CreateDate',title:'鍒涘缓鏃堕棿',type:'datetime',width:90,readonly:true,align:'left',sortable:true},
+                       {field:'Modifier',title:'淇敼浜�',type:'string',width:130,readonly:true,align:'left'},
+                       {field:'ModifyDate',title:'淇敼鏃堕棿',type:'datetime',width:90,readonly:true,align:'left',sortable:true}]);
+            const detail = ref({
+                cnName: "#detailCnName",
+                columns: [],
+                sortName: "",
+                key: ""
+            });
+            return {
+                table,
+                extend,
+                editFormFields,
+                editFormOptions,
+                searchFormFields,
+                searchFormOptions,
+                columns,
+                detail,
+            };
+        },
+    });
+</script>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue"
new file mode 100644
index 0000000..bffac18
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/taskinfo/task.vue"
@@ -0,0 +1,252 @@
+
+<template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+  <script>
+import extend from "@/extension/taskinfo/task.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "taskId",
+      footer: "Foots",
+      cnName: "浠诲姟淇℃伅",
+      name: "task",
+      url: "/Task/",
+      sortName: "CreateDate",
+    });
+    const editFormFields = ref({
+      taskNum:"",
+      palletCode: "",
+      roadway: "",
+      taskType:"",
+      taskState:"",
+      wmsId:"",
+      sourceAddress: "",
+      targetAddress: "",
+      currentAddress: "",
+      nextAddress: "",
+      creater: "",
+      createDate: "",
+      grade: ""
+    });
+    const editFormOptions = ref([[{ title: "浼樺厛绾�", field: "grade", type: "int" },]]);
+    const searchFormFields = ref({
+      taskNum: "",
+      palletCode: "",
+      roadway: "",
+      sourceAddress: "",
+      targetAddress: "",
+      currentAddress: "",
+      nextAddress: "",
+      creater: "",
+      createDate: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "浠诲姟鍙�", field: "taskNum", type: "int" },
+        { title: "鎵樼洏缂栧彿", field: "palletCode", type: "like" },
+        {
+          title: "浠诲姟绫诲瀷",
+          field: "taskType",
+          type: "selectList",
+          dataKey: "taskType",
+          data: [],
+        },
+        {
+          title: "浠诲姟鐘舵��",
+          field: "taskState",
+          type: "selectList",
+          dataKey: "taskState",
+          data: [],
+        },
+      ],
+      [
+        { title: "璧峰鍦板潃", field: "sourceAddress", type: "like" },
+        { title: "鐩爣鍦板潃", field: "targetAddress", type: "like" },
+        { title: "褰撳墠浣嶇疆", field: "currentAddress", type: "like" },
+        { title: "涓嬩竴浣嶇疆", field: "nextAddress", type: "like" },
+      ],
+      [
+        { title: "宸烽亾鍙�", field: "roadway", type: "like" },
+        { title: "鍒涘缓浜�", field: "creater", type: "like" },
+        { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "taskId",
+        title: "TaskId",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "taskNum",
+        title: "浠诲姟鍙�",
+        type: "int",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "palletCode",
+        title: "鎵樼洏缂栧彿",
+        type: "string",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "roadway",
+        title: "宸烽亾鍙�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "taskType",
+        title: "浠诲姟绫诲瀷",
+        type: "int",
+        width: 90,
+        align: "left",
+        bind: { key: "taskType", data: [] },
+      },
+      {
+        field: "taskState",
+        title: "浠诲姟鐘舵��",
+        type: "int",
+        width: 150,
+        align: "left",
+        bind: { key: "taskState", data: [] },
+      },
+      {
+        field: "sourceAddress",
+        title: "璧峰鍦板潃",
+        type: "int",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "targetAddress",
+        title: "鐩爣鍦板潃",
+        type: "string",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "currentAddress",
+        title: "褰撳墠浣嶇疆",
+        type: "string",
+        width: 110,
+        align: "left",
+      },
+      {
+        field: "nextAddress",
+        title: "涓嬩竴浣嶇疆",
+        type: "string",
+        width: 110,
+        align: "left",
+      },
+      {
+        field: "exceptionMessage",
+        title: "寮傚父淇℃伅",
+        type: "string",
+        width: 90,
+        align: "left",
+        hidden: true,
+      },
+      {
+        field: "grade",
+        title: "浼樺厛绾�",
+        type: "int",
+        width: 60,
+        align: "left",
+      },
+      {
+        field: "dispatchertime",
+        title: "浠诲姟涓嬪彂鏃堕棿",
+        type: "datetime",
+        width: 110,
+        align: "left",
+      },
+      {
+        field: "wmsId",
+        title: "WMS浠诲姟涓婚敭",
+        type: "int",
+        width: 120,
+        align: "left",
+        hidden: true,
+      },
+      
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 150,
+        align: "left",
+      },
+      
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "remark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+        hidden: true,
+      },
+    ]);
+    const detail = ref({
+      cnName: "",
+      table: "",
+      columns: [],
+      sortName: "",
+      key: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
+  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_Hty.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_Hty.vue"
new file mode 100644
index 0000000..a043770
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/taskinfo/task_Hty.vue"
@@ -0,0 +1,246 @@
+
+<template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+  <script>
+import extend from "@/extension/taskinfo/task_Hty.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "taskId",
+      footer: "Foots",
+      cnName: "浠诲姟淇℃伅",
+      name: "task_Hty",
+      url: "/Task_Hty/",
+      sortName: "CreateDate",
+    });
+    const editFormFields = ref({});
+    const editFormOptions = ref([]);
+    const searchFormFields = ref({
+      taskNum: "",
+      palletCode: "",
+      roadway: "",
+      sourceAddress: "",
+      targetAddress: "",
+      currentAddress: "",
+      nextAddress: "",
+      creater: "",
+      createDate: "",
+    });
+    const searchFormOptions = ref([
+      [
+        { title: "浠诲姟鍙�", field: "taskNum", type: "int" },
+        { title: "鎵樼洏缂栧彿", field: "palletCode", type: "like" },
+        {
+          title: "浠诲姟绫诲瀷",
+          field: "taskType",
+          type: "selectList",
+          dataKey: "taskType",
+          data: [],
+        },
+        {
+          title: "浠诲姟鐘舵��",
+          field: "taskState",
+          type: "selectList",
+          dataKey: "taskState",
+          data: [],
+        },
+      ],
+      [
+        { title: "璧峰鍦板潃", field: "sourceAddress", type: "like" },
+        { title: "鐩爣鍦板潃", field: "targetAddress", type: "like" },
+        { title: "褰撳墠浣嶇疆", field: "currentAddress", type: "like" },
+        { title: "涓嬩竴浣嶇疆", field: "nextAddress", type: "like" },
+      ],
+      [
+        { title: "宸烽亾鍙�", field: "roadway", type: "like" },
+        { title: "鐢熶骇浜х嚎", field: "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
+        { title: "鍒涘缓浜�", field: "creater", type: "like" },
+        { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
+      ],
+    ]);
+    const columns = ref([
+      {
+        field: "taskId",
+        title: "TaskId",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "taskNum",
+        title: "浠诲姟鍙�",
+        type: "int",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "palletCode",
+        title: "鎵樼洏缂栧彿",
+        type: "string",
+        width: 200,
+        align: "left",
+      },
+      {
+        field: "roadway",
+        title: "宸烽亾鍙�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "taskType",
+        title: "浠诲姟绫诲瀷",
+        type: "int",
+        width: 90,
+        align: "left",
+        bind: { key: "taskType", data: [] },
+      },
+      {
+        field: "taskState",
+        title: "浠诲姟鐘舵��",
+        type: "int",
+        width: 150,
+        align: "left",
+        bind: { key: "taskState", data: [] },
+      },
+      {
+        field: "sourceAddress",
+        title: "璧峰鍦板潃",
+        type: "int",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "targetAddress",
+        title: "鐩爣鍦板潃",
+        type: "string",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "currentAddress",
+        title: "褰撳墠浣嶇疆",
+        type: "string",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "nextAddress",
+        title: "涓嬩竴浣嶇疆",
+        type: "string",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "productionLine",
+        title: "浜х嚎",
+        type: "string",
+        width: 70,
+        align: "left",
+        bind: { key: "ProductionLine", data: [] } 
+      },
+      {
+        field: "exceptionMessage",
+        title: "寮傚父淇℃伅",
+        type: "string",
+        width: 90,
+        align: "left",
+        hidden: true,
+      },
+      {
+        field: "grade",
+        title: "浼樺厛绾�",
+        type: "int",
+        width: 60,
+        align: "left",
+      },
+      {
+        field: "dispatchertime",
+        title: "浠诲姟涓嬪彂鏃堕棿",
+        type: "datetime",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "wMSId",
+        title: "WMS浠诲姟涓婚敭",
+        type: "int",
+        width: 120,
+        align: "left",
+        hidden: true,
+      },
+      
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "remark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+        hidden: true,
+      },
+    ]);
+    const detail = ref({
+      cnName: "",
+      table: "",
+      columns: [],
+      sortName: "",
+      key: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
+  
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_SelectionStandards.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_SelectionStandards.vue"
index 7b34e94..8a1f0fe 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_SelectionStandards.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_SelectionStandards.vue"
@@ -62,7 +62,7 @@
         });
         const searchFormOptions = ref([
             [
-                { "title": "閫傜敤杞﹀瀷", "field": "carType", type: "like" },
+                { "title": "閫傜敤杞﹀瀷", "field": "carType", type: "text" },
                 //{ "title": "璐т綅鐘舵��", "field": "locationStatus", "type": "select", dataKey: "LocationState", data: [] },
                 { "title": "鍔ㄦ嫋灞炴��", "field": "mttype", type: "text" },
             ],
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/check/Dt_CheckResult.vue" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/check/Dt_CheckResult.vue"
index 0e1017c..4c86cc4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/check/Dt_CheckResult.vue"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSClient/src/views/widesea_wms/check/Dt_CheckResult.vue"
@@ -41,7 +41,7 @@
             { field: 'equipNo', title: '璁惧缂栧彿', type: 'string', width: 110, align: 'left', hidden: true },
             //{ field: 'wheels_SequenceNum', title: '搴忓垪鍙�', type: 'string', width: 110, align: 'left', sort: true, link: true, },
             { field: 'cltm', title: '杞﹁疆鏉$爜', type: 'string', width: 150, align: 'left' },
-            { field: 'checkType', title: '绫诲瀷(杞�/鐩�)', type: 'string', width: 80, align: 'left' },
+            { field: 'checkType', title: '绫诲瀷(杞�/鐩�)', type: 'string', width: 80, align: 'left', bind: { key: "IscheckType", data: [{key:"1",value:'杞�'},{key:"2",value:'鐩�'}] }  },
             { field: 'gkzjI1', title: '姣傚瓟A1', type: 'string', width: 75, align: 'left' },
             { field: 'gkzjI2', title: '姣傚瓟A2', type: 'string', width: 75, align: 'left' },
             { field: 'gkzjI3', title: '姣傚瓟A3', type: 'string', width: 75, align: 'left' },
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v7.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v7.bin"
new file mode 100644
index 0000000..e496b81
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v7.bin"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v9.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v9.bin"
deleted file mode 100644
index 35091ed..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.metadata.v9.bin"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v7.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v7.bin"
new file mode 100644
index 0000000..995275c
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v7.bin"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v9.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v9.bin"
deleted file mode 100644
index d5ce478..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/ProjectEvaluation/widesea_wmsserver.projects.v9.bin"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/DesignTimeBuild/.dtbcache.v2" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/DesignTimeBuild/.dtbcache.v2"
index 431eaad..8968413 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/DesignTimeBuild/.dtbcache.v2"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/DesignTimeBuild/.dtbcache.v2"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
index 85ef36f..16f3eba 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
index 7931da5..51d1add 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin"
index 0f4d989..b130189 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Release/net6.0/WIDESEA_BusinessServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Release/net6.0/WIDESEA_BusinessServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Release/net6.0/WIDESEA_BusinessServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Release/net6.0/WIDESEA_BusinessesRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Release/net6.0/WIDESEA_BusinessesRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Release/net6.0/WIDESEA_BusinessesRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Release/net6.0/WIDESEA_Common.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Release/net6.0/WIDESEA_Common.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Release/net6.0/WIDESEA_Common.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Release/net6.0/WIDESEA_DTO.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Release/net6.0/WIDESEA_DTO.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Release/net6.0/WIDESEA_DTO.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Release/net6.0/WIDESEA_IBusinessServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Release/net6.0/WIDESEA_IBusinessServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Release/net6.0/WIDESEA_IBusinessServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Release/net6.0/WIDESEA_IBusinessesRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Release/net6.0/WIDESEA_IBusinessesRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Release/net6.0/WIDESEA_IBusinessesRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Release/net6.0/WIDESEA_IRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Release/net6.0/WIDESEA_IRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Release/net6.0/WIDESEA_IRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Release/net6.0/WIDESEA_IServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Release/net6.0/WIDESEA_IServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Release/net6.0/WIDESEA_IServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ToAPP/IToAPPService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ToAPP/IToAPPService.cs"
index d2d430b..eae8ca1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ToAPP/IToAPPService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/ToAPP/IToAPPService.cs"
@@ -13,5 +13,6 @@
         WebResponseContent SaveCLinfo(SaveModel saveModel);
 
         WebResponseContent SaveCZInfo(SaveModel saveModel);
+        WebResponseContent SaveCZInfo2(SaveModel saveModel);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Release/net6.0/WIDESEA_IStoragIntegrationServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Release/net6.0/WIDESEA_IStoragIntegrationServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Release/net6.0/WIDESEA_IStoragIntegrationServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Release/net6.0/WIDESEA_IStorageBasicRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Release/net6.0/WIDESEA_IStorageBasicRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Release/net6.0/WIDESEA_IStorageBasicRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IDt_WheelsStockService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IDt_WheelsStockService.cs"
index 470944c..579b250 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IDt_WheelsStockService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/Stock/IDt_WheelsStockService.cs"
@@ -4,4 +4,6 @@
 {
 
     Dt_WheelsStock GetSelectionWheelsStock(List<Dt_WheelsStock> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes,string wheelsPosition,string newOrOld);
+
+    Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld);
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Release/net6.0/WIDESEA_IStorageBasicServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Release/net6.0/WIDESEA_IStorageBasicServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Release/net6.0/WIDESEA_IStorageBasicServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Release/net6.0/WIDESEA_IStorageOutOrderRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Release/net6.0/WIDESEA_IStorageOutOrderRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Release/net6.0/WIDESEA_IStorageOutOrderRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Release/net6.0/WIDESEA_IStorageOutOrderServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Release/net6.0/WIDESEA_IStorageOutOrderServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Release/net6.0/WIDESEA_IStorageOutOrderServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Release/net6.0/WIDESEA_IStorageTaskRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Release/net6.0/WIDESEA_IStorageTaskRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Release/net6.0/WIDESEA_IStorageTaskRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Release/net6.0/WIDESEA_IStorageTaskServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Release/net6.0/WIDESEA_IStorageTaskServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Release/net6.0/WIDESEA_IStorageTaskServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/OldWheelsStock/Dt_WheelsStock_Old.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/OldWheelsStock/Dt_WheelsStock_Old.cs"
index b9a9299..8cf82af 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/OldWheelsStock/Dt_WheelsStock_Old.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/GZ_ZC/OldWheelsStock/Dt_WheelsStock_Old.cs"
@@ -236,5 +236,14 @@
         [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "璐т綅鍙�")]
         public string Locate { get; set; }
 
+        /// <summary>
+        /// 鐘舵��  0-鍒涘缓 1-鍦ㄥ簱  2-宸查�夐厤 3-棰勯�夐厤 4-鎸囧畾鍑哄簱
+        /// </summary>
+        [ImporterHeader(Name = "鐘舵��")]
+        [ExporterHeader(DisplayName = "鐘舵��")]
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鐘舵��")]
+        public int? Wheels_CurrentStatue { get; set; } = 1;
+
+
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Release/net6.0/WIDESEA_Model.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Release/net6.0/WIDESEA_Model.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Release/net6.0/WIDESEA_Model.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Release/net6.0/WIDESEA_Repository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Release/net6.0/WIDESEA_Repository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Release/net6.0/WIDESEA_Repository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Release/net6.0/WIDESEA_Services.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Release/net6.0/WIDESEA_Services.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Release/net6.0/WIDESEA_Services.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs"
index a243234..863eb06 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/Partial/SaveCZInfo.cs"
@@ -413,6 +413,379 @@
             }
         }
 
+
+
+        public WebResponseContent SaveCZInfo2(SaveModel saveModel)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                //濡傚綋鍓嶅瓨鍦ㄦ湭寮�濮嬪叆搴撶殑杞﹁疆鎴栧埗鍔ㄧ洏鏁版嵁,鍒欑姝繚瀛樻柊鏁版嵁 浠ラ槻鏁版嵁娣蜂贡
+                var waitInbound = _CZInfo_MesRepository.QueryFirst(x => x.CurrentStatue == "0");
+                if (waitInbound != null) 
+                    throw new Exception("褰撳墠瀛樺湪鏈紑濮嬪叆搴撶殑杞﹁酱鏁版嵁,璇峰厛涓婃灦鍚姩鍚庡啀淇濆瓨淇℃伅!");
+
+                //杞﹁酱鏉$爜
+                string czCode = saveModel.MainData["cztm"].ToString();
+                if (string.IsNullOrEmpty(czCode))
+                    throw new Exception($"杞﹁酱鏉$爜涓嶈兘涓虹┖");
+
+                //杞﹁酱鍙�
+                string czh = saveModel.MainData["czh"].ToString();
+                if (string.IsNullOrEmpty(czh))
+                    throw new Exception($"杞﹁酱鍙蜂笉鑳戒负绌�");
+                //var clinfo = _InWheels_MesRepository.QueryFirst(x => x.Wheels_code == czCode);
+                //if (clinfo != null) throw new Exception("杞﹁疆褰曞叆淇℃伅宸插瓨鍦�");
+
+                //搴忓垪鍙�
+                //string madeUnit = saveModel.MainData["xlh"].ToString();
+                //杞鏉$爜  
+                string ldtm = saveModel.MainData["ldtm"].ToString();
+                //杞﹀瀷
+                string Cartype = saveModel.MainData["chexing"].ToString();
+                if (string.IsNullOrEmpty(Cartype)) throw new Exception("閫夐厤澶辫触锛氳溅杞磋溅鍨嬪弬鏁颁负绌�");
+
+                //杞﹁酱鍨嬪彿
+                string czxh = saveModel.MainData["czxh"].ToString();
+
+                //杞﹁疆鍨嬪彿
+                string clxh = saveModel.MainData["clxh"].ToString();
+
+                //鍔ㄦ嫋灞炴��
+                string mttype = saveModel.MainData["mttype"].ToString();
+
+                //宸﹁疆搴х洿寰凙1
+                string zlzA1 = saveModel.MainData["zlzA1"].ToString();
+                //宸﹁疆搴х洿寰凙1
+                string zlzA2 = saveModel.MainData["zlzA2"].ToString();
+                //宸﹁疆搴х洿寰凙1
+                string zlzA3 = saveModel.MainData["zlzA3"].ToString();
+                //宸﹁疆搴х洿寰凙
+                string zlzA = saveModel.MainData["zlza"].ToString();
+
+                //宸﹁疆搴х洿寰凚1
+                string zlzB1 = saveModel.MainData["zlzB1"].ToString();
+                //宸﹁疆搴х洿寰凚1
+                string zlzB2 = saveModel.MainData["zlzB2"].ToString();
+                //宸﹁疆搴х洿寰凚1
+                string zlzB3 = saveModel.MainData["zlzB3"].ToString();
+                //宸﹁疆搴х洿寰凚
+                string zlzB = saveModel.MainData["zlzb"].ToString();
+
+                //宸﹁疆搴х洿寰凜1
+                string zlzC1 = saveModel.MainData["zlzC1"].ToString();
+                //宸﹁疆搴х洿寰凜1
+                string zlzC2 = saveModel.MainData["zlzC2"].ToString();
+                //宸﹁疆搴х洿寰凜1
+                string zlzC3 = saveModel.MainData["zlzC3"].ToString();
+                //宸﹁疆搴х洿寰凜
+                string zlzC = saveModel.MainData["zlzc"].ToString();
+
+                //鍙宠疆搴х洿寰凙1
+                string ylzA1 = saveModel.MainData["ylzA1"].ToString();
+                //鍙宠疆搴х洿寰凙1
+                string ylzA2 = saveModel.MainData["ylzA2"].ToString();
+                //鍙宠疆搴х洿寰凙1
+                string ylzA3 = saveModel.MainData["ylzA3"].ToString();
+                //鍙宠疆搴х洿寰凙
+                string ylzA = saveModel.MainData["ylza"].ToString();
+
+                //鍙宠疆搴х洿寰凚1
+                string ylzB1 = saveModel.MainData["ylzB1"].ToString();
+                //鍙宠疆搴х洿寰凚1
+                string ylzB2 = saveModel.MainData["ylzB2"].ToString();
+                //鍙宠疆搴х洿寰凚1
+                string ylzB3 = saveModel.MainData["ylzB3"].ToString();
+                //鍙宠疆搴х洿寰凚
+                string ylzB = saveModel.MainData["ylzb"].ToString();
+
+                //鍙宠疆搴х洿寰凜1
+                string ylzC1 = saveModel.MainData["ylzC1"].ToString();
+                //鍙宠疆搴х洿寰凜1
+                string ylzC2 = saveModel.MainData["ylzC2"].ToString();
+                //鍙宠疆搴х洿寰凜1
+                string ylzC3 = saveModel.MainData["ylzC3"].ToString();
+                //鍙宠疆搴х洿寰凜
+                string ylzC = saveModel.MainData["ylzc"].ToString();
+
+                //宸﹁疆搴х洿寰�
+                string zlzzj = saveModel.MainData["zlzzj"].ToString();
+                //鍙宠疆搴х洿寰�
+                string ylzzj = saveModel.MainData["ylzzj"].ToString();
+
+                //鏂版棫
+                string newOrOld = saveModel.MainData["NOdirection"].ToString();
+                if (string.IsNullOrEmpty(newOrOld)) throw new Exception("鏈�夋嫨鏂版棫绫诲瀷,璇烽�夋嫨!");
+
+                //杞﹁疆浣嶇疆
+                string wheelsPosition = saveModel.MainData["wheelsPosition"].ToString();
+                if (string.IsNullOrEmpty(wheelsPosition)) throw new Exception("鏈�夋嫨杞﹁疆浣嶇疆,璇烽�夋嫨!");
+
+                //宸﹁疆绛夌骇
+                string leftLevel = saveModel.MainData["zlzdj"].ToString();
+                if (string.IsNullOrEmpty(leftLevel)) throw new Exception("閫夐厤澶辫触锛氳溅杞村乏杞骇绛夌骇鍙傛暟涓虹┖");
+                //鍙宠疆绛夌骇
+                string rightLevel = saveModel.MainData["ylzdj"].ToString();
+                if (string.IsNullOrEmpty(rightLevel)) throw new Exception("閫夐厤澶辫触锛氳溅杞村彸杞骇绛夌骇鍙傛暟涓虹┖");
+
+                //缁翠慨浠诲姟
+                string wxrw = saveModel.MainData["wxrw"].ToString();
+                if (string.IsNullOrEmpty(wxrw)) throw new Exception("閫夐厤澶辫触锛氱淮淇换鍔″弬鏁颁负绌�");
+
+                string level = string.Empty;
+                //string rightlevel = string.Empty;
+                if ("all".Equals(wheelsPosition))
+                {
+                    level = LevelChangeHelper.LevelChangeType(leftLevel);
+                    if (string.IsNullOrEmpty(level)) throw new Exception("绛夌骇杞崲澶辫触,璇锋鏌ユ帴鍙g瓑绾у弬鏁�");
+                }
+                else if ("left".Equals(wheelsPosition))
+                {
+                    level = LevelChangeHelper.LevelChangeType(leftLevel);
+                    if (string.IsNullOrEmpty(level)) throw new Exception("绛夌骇杞崲澶辫触,璇锋鏌ユ帴鍙g瓑绾у弬鏁�");
+                    //level = leftLevel;
+                }
+                else if ("rihgt".Equals(wheelsPosition))
+                {
+                    level = LevelChangeHelper.LevelChangeType(rightLevel);
+                    if (string.IsNullOrEmpty(level)) throw new Exception("绛夌骇杞崲澶辫触,璇锋鏌ユ帴鍙g瓑绾у弬鏁�");
+                    //level = rightLevel;
+                }
+
+                string rw = CheckTaskChangeHelper.CheckTaskChange(wxrw);
+                if (string.IsNullOrEmpty(rw)) throw new Exception("缁翠慨浠诲姟杞崲澶辫触,璇锋鏌ョ淮淇换鍔″弬鏁�");
+
+                if (rw != newOrOld) throw new Exception("閫夐厤澶辫触:閫夐厤鏂版棫杞笌缁翠慨浠诲姟瑙f瀽涓嶄竴鑷�");
+
+                Dt_SelectionStandards selectionStandards = _SelectionStandardsRepository.QueryFirst(x => x.CarType.Contains(Cartype) && x.mttype == mttype && x.neworold == newOrOld && level.Contains(x.gkdj));
+                if (selectionStandards == null) throw new Exception($"姝よ溅鍨媨Cartype}鐨勯�夐厤鏍囧噯寮傚父,璇锋牳瀵归�夐厤鏍囧噯淇℃伅!");
+
+                Dt_CZInfo_mes CZInfo_Mes = new Dt_CZInfo_mes
+                {
+                    CZTM = czCode,
+                    CHEXING = Cartype,
+                    CreateDate = DateTime.Now,
+                    Creater = "admin",
+                    CurrentStatue = "1",
+                    CZH = czh,
+                    CZXH = czxh,
+                    LDTM = ldtm,
+                    MTTYPE = mttype,
+                    ZLZA1 = zlzA1,
+                    ZLZA2 = zlzA2,
+                    ZLZA3 = zlzA3,
+                    ZLZA = zlzA,
+                    ZLZB1 = zlzB1,
+                    ZLZB2 = zlzB2,
+                    ZLZB3 = zlzB3,
+                    ZLZB = zlzB,
+                    ZLZC1 = zlzC1,
+                    ZLZC2 = zlzC2,
+                    ZLZC3 = zlzC3,
+                    ZLZC = zlzC,
+                    YLZA1 = ylzA1,
+                    YLZA2 = ylzA2,
+                    YLZA3 = ylzA3,
+                    YLZA = ylzA,
+                    YLZB1 = ylzB1,
+                    YLZB2 = ylzB2,
+                    YLZB3 = ylzB3,
+                    YLZB = ylzB,
+                    YLZC1 = ylzC1,
+                    YLZC2 = ylzC2,
+                    YLZC3 = ylzC3,
+                    YLZC = ylzC,
+                    ZLZZJ = zlzzj,
+                    YLZZJ = ylzzj,
+                    ZLZDJ = leftLevel,
+                    YLZDJ = rightLevel,
+                    WXRW = wxrw
+                };
+
+                //宸﹀嚭搴撹溅杞�
+                Dt_WheelsStock leftContainer = null;
+                //鍙冲嚭搴撹溅杞�
+                Dt_WheelsStock rightContainer = null;
+
+                //宸﹀嚭搴撹溅杞�
+                Dt_WheelsStock_Old leftContainer2 = null;
+                //鍙冲嚭搴撹溅杞�
+                Dt_WheelsStock_Old rightContainer2 = null;
+
+
+                //鍚屾俯鏃堕棿
+                var hourpara = _configService.GetByConfigKey(CateGoryConst.CONFIG_SYS_Parameters, SysConfigConst.TempHour);
+                int hour = hourpara.ConfigValue.ObjToInt();
+
+                int knum = 1;
+
+
+                //鎵惧嚭鎵�鏈夌鍚堟潯浠剁殑搴撳瓨杞﹁疆
+                var WheelsList = _WheelsStockRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.Wheels_mttype == CZInfo_Mes.MTTYPE && x.Wheels_ldxh == clxh && x.Wheels_NewOrOld == newOrOld && x.CreateDate.AddHours(hour) <= DateTime.Now);
+                if (null != WheelsList && WheelsList.Count > 0)
+                {
+                     knum = 2;
+                }
+                var Wheelsdata=dt_WheelsStock_OldRepository.QueryData(x => x.Wheels_CurrentStatue == 1 && x.dqtz_state == CZInfo_Mes.MTTYPE && x.axes_type == clxh && x.repair_item == newOrOld);
+                if (null != Wheelsdata && Wheelsdata.Count > 0)
+                {
+                    knum = 3;
+                }
+
+
+                //x.Wheels_CarType  == CZInfo_Mes.CHEXING && x.Wheels_ldtm == CZInfo_Mes.LDTM && selectionStandards.CarType.Contains(x.Wheels_CarType)
+                if (knum!=1)
+                {
+                    if ("all".Equals(wheelsPosition) || string.IsNullOrEmpty(wheelsPosition))
+                    {
+                        if (null == leftContainer)
+                        {
+                            if(knum==2)
+                            {
+                                leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld);
+                                if (null != leftContainer)
+                                    WheelsList.Remove(leftContainer);
+                            }
+
+                            if (knum == 3)
+                            {
+                                leftContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "left", newOrOld);
+                                if (null != leftContainer2)
+                                    Wheelsdata.Remove(leftContainer2);
+                            }
+                            
+                        }
+                        if (null == rightContainer)
+                        {
+                            if(knum ==2)
+                            {
+                                rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld);
+                                if (null != rightContainer)
+                                    WheelsList.Remove(rightContainer);
+                            }
+
+                            if(knum == 3)
+                            {
+                                rightContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "right", newOrOld);
+                                if (null != rightContainer2)
+                                    Wheelsdata.Remove(rightContainer2);
+                            }
+                            
+                        }
+                        //if (null == leftContainer || null == rightContainer)
+                    }
+                    else if ("left".Equals(wheelsPosition))
+                    {
+                        if (knum == 2)
+                        {
+                            leftContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "left", newOrOld);
+                        }
+                        if (knum == 3)
+                        {
+                            leftContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "left", newOrOld);
+                        }
+
+                        //if (null == leftContainer)
+                    }
+                    else if ("right".Equals(wheelsPosition))
+                    {
+                        if (knum == 2)
+                        {
+                            rightContainer = _WheelsStockService.GetSelectionWheelsStock(WheelsList, selectionStandards, CZInfo_Mes, "right", newOrOld);
+                        }
+                        if (knum == 3)
+                        {
+                            rightContainer2 = _WheelsStockService.GetSelectionWheels(Wheelsdata, selectionStandards, CZInfo_Mes, "right", newOrOld);
+                        }
+                        //if (null == rightContainer)
+                    }
+                }
+
+                if ("all".Equals(wheelsPosition))
+                {
+                    if (knum == 2)
+                    {
+                        if (null == leftContainer || null == rightContainer)
+                            return content.Error("鏈壘鍒颁袱渚у彲鍖归厤鐨勫嚭搴撹溅杞�,杞﹀瀷锛�" + Cartype);
+                    }
+                    if (knum == 3)
+                    {
+                        if (null == leftContainer2 || null == rightContainer2)
+                            return content.Error("鏈壘鍒颁袱渚у彲鍖归厤鐨勫嚭搴撹溅杞�,杞﹀瀷锛�" + Cartype);
+                    }
+                }
+
+                if (knum == 2)
+                {
+                    if (null != leftContainer || null != rightContainer)
+                    {
+                        List<Dt_WheelsStock> wheelsStocks = new List<Dt_WheelsStock>();
+                        if (null != leftContainer)
+                        {
+                            leftContainer.Wheels_CurrentStatue = 3;
+
+                            wheelsStocks.Add(leftContainer);
+                        }
+                        if (null != rightContainer)
+                        {
+                            rightContainer.Wheels_CurrentStatue = 3;
+                            wheelsStocks.Add(rightContainer);
+                        }
+
+                        _unitOfWorkManage.BeginTran(); //寮�鍚簨鍔�
+
+                        _WheelsStockRepository.UpdateData(wheelsStocks);    //鏇存柊搴撳瓨鏁版嵁
+
+                        return content;
+                    }
+                    else
+                    {
+                        _unitOfWorkManage.RollbackTran();  //鍥炴粴浜嬪姟
+                        return content.Error("鏈壘鍒板彲鍖归厤鐨勫嚭搴撹溅杞�,杞﹀瀷锛�" + Cartype);
+                    }
+                }
+                else if (knum == 3)
+                {
+                    if (null != leftContainer2 || null != rightContainer2)
+                    {
+                        List<Dt_WheelsStock_Old> wheelsStocks = new List<Dt_WheelsStock_Old>();
+                        if (null != leftContainer2)
+                        {
+                            leftContainer2.Wheels_CurrentStatue = 3;
+
+                            wheelsStocks.Add(leftContainer2);
+                        }
+                        if (null != rightContainer2)
+                        {
+                            rightContainer2.Wheels_CurrentStatue = 3;
+                            wheelsStocks.Add(rightContainer2);
+                        }
+
+                        _unitOfWorkManage.BeginTran(); //寮�鍚簨鍔�
+
+                        dt_WheelsStock_OldRepository.UpdateData(wheelsStocks);    //鏇存柊搴撳瓨鏁版嵁
+
+                        return content;
+                    }
+                    else
+                    {
+                        _unitOfWorkManage.RollbackTran();  //鍥炴粴浜嬪姟
+                        return content.Error("鏈壘鍒板彲鍖归厤鐨勫嚭搴撹溅杞�,杞﹀瀷锛�" + Cartype);
+                    }
+                }
+                else
+                {
+                    return content.Error("鏈壘鍒板彲鍖归厤鐨勫嚭搴撹溅杞�,杞﹀瀷锛�" + Cartype);
+                }
+
+                
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return content.Error($"涓婃灦澶辫触:{ex.Message}");
+            }
+        }
         private Dt_Task CreateOutTask(Dt_WheelsStock wheelsStock, string CZTM)
         {
             CheckInfo checkInfo = new CheckInfo()
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/ToAPPService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/ToAPPService.cs"
index 13b03fa..e0855a1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/ToAPPService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ToAPP/ToAPPService.cs"
@@ -27,9 +27,11 @@
         private readonly IDt_SelectionStandardsRepository _SelectionStandardsRepository;
         private readonly IDt_WheelsStockService _WheelsStockService;
         private readonly IDt_CZInfo_mesRepository _CZInfo_MesRepository;
+        private readonly IDt_WheelsStock_OldRepository dt_WheelsStock_OldRepository;
+
         private readonly IUnitOfWorkManage _unitOfWorkManage;
 
-        public ToAPPService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_InWheels_mesRepository inWheels_MesRepository, IDt_WheelsStockRepository wheelsStockRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IDt_WheelsStockService wheelsStockService, IDt_CZInfo_mesRepository cZInfo_MesRepository, IUnitOfWorkManage unitOfWorkManage)
+        public ToAPPService(ILocationInfoRepository locationRepository, IDt_TaskRepository taskRepository, ISys_ConfigService configService, IDt_InWheels_mesRepository inWheels_MesRepository, IDt_WheelsStockRepository wheelsStockRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IDt_WheelsStockService wheelsStockService, IDt_CZInfo_mesRepository cZInfo_MesRepository,  IUnitOfWorkManage unitOfWorkManage, IDt_WheelsStock_OldRepository dt_WheelsStock_OldRepository)
         {
             _InWheels_MesRepository = inWheels_MesRepository;
             _locationRepository = locationRepository;
@@ -40,6 +42,7 @@
             _WheelsStockService = wheelsStockService;
             _CZInfo_MesRepository = cZInfo_MesRepository;
             _unitOfWorkManage = unitOfWorkManage;
+            this.dt_WheelsStock_OldRepository = dt_WheelsStock_OldRepository;
         }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ZY/Partial/ZY_GetCLInfo.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ZY/Partial/ZY_GetCLInfo.cs"
index 1b0410c..dbbb9d3 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ZY/Partial/ZY_GetCLInfo.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/ZY/Partial/ZY_GetCLInfo.cs"
@@ -6,6 +6,7 @@
 using WIDESEA_Common.ZY;
 using WIDESEA_Core;
 using WIDESEA_Core.Helper;
+using WIDESEA_IStoragIntegrationServices;
 
 namespace WIDESEA_StoragIntegrationServices
 {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Release/net6.0/WIDESEA_StoragIntegrationServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Release/net6.0/WIDESEA_StoragIntegrationServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Release/net6.0/WIDESEA_StoragIntegrationServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Release/net6.0/WIDESEA_StorageBasicRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Release/net6.0/WIDESEA_StorageBasicRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Release/net6.0/WIDESEA_StorageBasicRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs"
index 73fd5fb..c520dd4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Stock/Dt_WheelsStockService.cs"
@@ -9,6 +9,11 @@
 using WIDESEA_Core;
 using WIDESEA_StorageBasicRepository;
 using WIDESEAWCS_BasicInfoRepository;
+using WIDESEA_IStoragIntegrationServices;
+using WIDESEA.Common;
+using WIDESEA_Common.ZY;
+using Autofac.Core;
+using NetTaste;
 
 namespace WIDESEA_StorageBasicService;
 
@@ -16,10 +21,12 @@
 {
     private readonly IDt_WheelsStock_htyRepository _WheelsStock_HtyRepository;
     private readonly IDt_SelectionStandardsRepository _SelectionStandardsRepository;
-    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository) : base(BaseDal)
+    private readonly IToZYService _toZYService;
+    public Dt_WheelsStockService(IDt_WheelsStockRepository BaseDal, IDt_WheelsStock_htyRepository WheelsStock_HtyRepository, IDt_SelectionStandardsRepository selectionStandardsRepository, IToZYService toZYService) : base(BaseDal)
     {
         _SelectionStandardsRepository = selectionStandardsRepository;
         _WheelsStock_HtyRepository = WheelsStock_HtyRepository;
+        _toZYService = toZYService;
     }
 
     /// <summary>
@@ -120,4 +127,112 @@
         }
         return WheelsList.OrderBy(x => x.CreateDate).FirstOrDefault();
     }
+
+
+
+    public Dt_WheelsStock_Old GetSelectionWheels(List<Dt_WheelsStock_Old> wheelsStocks, Dt_SelectionStandards selectionStandards, Dt_CZInfo_mes CZInfo_Mes, string wheelsPosition, string newOrOld)
+    {
+        //杩囩泩閲忎笂闄�
+        decimal selectionUpperValue = selectionStandards.upperValue;
+        //杩囩泩閲忎笅闄�
+        decimal selectionLowerValue = selectionStandards.lowerValue;
+
+        decimal mesStand = 0;
+        string level = string.Empty;
+
+
+        if ("left".Equals(wheelsPosition))  //鍖归厤宸﹁疆搴ц疆瀛�
+        {
+            mesStand = decimal.Parse(CZInfo_Mes.ZLZZJ);
+            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.ZLZDJ);
+            wheelsStocks = wheelsStocks.Where(x =>  x.venderno == level && x.repair_item == newOrOld).ToList();
+        }
+        else    //鍚﹀垯鍖归厤鍙宠疆搴ц疆瀛�
+        {
+            mesStand = decimal.Parse(CZInfo_Mes.YLZZJ);
+            level = LevelChangeHelper.LevelChangeType(CZInfo_Mes.YLZDJ);
+            wheelsStocks = wheelsStocks.Where(x =>  x.venderno == level && x.repair_item == newOrOld).ToList();
+        }
+        foreach (var item in wheelsStocks)
+        {
+            string Wheels_gkcc = "";
+            string Wheels_gkzja = "";
+            string Wheels_gkzjb = "";
+            string Wheels_gkzjc = "";
+
+            SaveModel saveModel = new SaveModel();
+            saveModel.MainData = new Dictionary<string, object>
+            {
+                { "cltm", item.wheel_code }
+            };
+            WebResponseContent webResponse= _toZYService.ZY_GetCLInfo(saveModel);
+            if (webResponse.Status)
+            {
+                var dta = JsonConvert.DeserializeObject<CLInfo_ZY>(webResponse.Data.ToString());
+
+                Wheels_gkcc = dta.gkcc;
+                // 姣傚瓟a鐣岄潰鍧囧��
+                Wheels_gkzja = dta.GKZJA;
+                //姣傚瓟b鐣岄潰鍧囧��
+                Wheels_gkzjb = dta.GKZJB;
+                //姣傚瓟c鐣岄潰鍧囧��
+                Wheels_gkzjc = dta.GKZJC;
+            }
+
+            if(Wheels_gkcc !="" && Wheels_gkzja!="" && Wheels_gkzjb !="" && Wheels_gkzjc != "")
+            {
+                //鏌ュ嚭鏉ュ湪鑼冨洿涔嬪鐨勮繘琛屽垹闄�
+                if (mesStand - (decimal.Parse(Wheels_gkcc)) < selectionLowerValue && mesStand - (decimal.Parse(Wheels_gkcc)) > selectionUpperValue)
+                {
+
+                    wheelsStocks.Remove(item);
+                }
+                if (selectionStandards.isCantainGK)
+                {
+                    //鎴潰杩囩泩閲忎笂闄�
+                    decimal selectionUpperValue_gk = selectionStandards.upperValue_gk;
+                    //鎴潰杩囩泩閲忎笅闄�
+                    decimal selectionLowerValue_gk = selectionStandards.lowerValue_gk;
+
+                    if ("left".Equals(wheelsPosition))
+                    {
+                        decimal ZLZA = decimal.Parse(CZInfo_Mes.ZLZA);
+                        decimal ZLZB = decimal.Parse(CZInfo_Mes.ZLZB);
+                        decimal ZLZC = decimal.Parse(CZInfo_Mes.ZLZC);
+
+                        //鍒ゆ柇鍙栧弽锛岃繘琛屽垹闄�
+                        if (ZLZA - (decimal.Parse(Wheels_gkzja)) < selectionLowerValue_gk && ZLZA - (decimal.Parse(Wheels_gkzja)) > selectionUpperValue_gk
+                            && ZLZB - (decimal.Parse(Wheels_gkzjb)) < selectionLowerValue_gk && ZLZB - (decimal.Parse(Wheels_gkzjb)) > selectionUpperValue_gk
+                            && ZLZC - (decimal.Parse(Wheels_gkzjc)) < selectionLowerValue_gk && ZLZC - (decimal.Parse(Wheels_gkzjc)) > selectionUpperValue_gk)
+                        {
+                            wheelsStocks.Remove(item);
+                        }
+                    }
+                    else
+                    {
+                        decimal YLZA = decimal.Parse(CZInfo_Mes.YLZA);
+                        decimal YLZB = decimal.Parse(CZInfo_Mes.YLZB);
+                        decimal YLZC = decimal.Parse(CZInfo_Mes.YLZC);
+
+                        if (YLZA - (decimal.Parse(Wheels_gkzja)) >= selectionLowerValue_gk && YLZA - (decimal.Parse(Wheels_gkzja)) <= selectionUpperValue_gk
+                            && YLZB - (decimal.Parse(Wheels_gkzjb)) >= selectionLowerValue_gk && YLZB - (decimal.Parse(Wheels_gkzjb)) <= selectionUpperValue_gk
+                            && YLZC - (decimal.Parse(Wheels_gkzjc)) >= selectionLowerValue_gk && YLZC - (decimal.Parse(Wheels_gkzjc)) <= selectionUpperValue_gk)
+                        {
+                            wheelsStocks.Remove(item);
+                        }
+
+
+                    }
+                }
+            }
+            
+
+        }
+
+        return wheelsStocks.OrderBy(x => x.dt_ins).FirstOrDefault();
+    }
+
+
+
+    
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj"
index 973ce58..eb7d4d1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/WIDESEA_StorageBasicServices.csproj"
@@ -21,6 +21,7 @@
     <ProjectReference Include="..\WIDESEA_IStorageOutOrderService\WIDESEA_IStorageOutOrderServices.csproj" />
     <ProjectReference Include="..\LogLibrary\LogLibrary.csproj" />
     <ProjectReference Include="..\WIDESEA_IStorageTaskService\WIDESEA_IStorageTaskServices.csproj" />
+    <ProjectReference Include="..\WIDESEA_IStoragIntegrationServices\WIDESEA_IStoragIntegrationServices.csproj" />
   </ItemGroup>
 
 </Project>
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Release/net6.0/WIDESEA_StorageBasicServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Release/net6.0/WIDESEA_StorageBasicServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Release/net6.0/WIDESEA_StorageBasicServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Release/net6.0/WIDESEA_StorageOutOrderRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Release/net6.0/WIDESEA_StorageOutOrderRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Release/net6.0/WIDESEA_StorageOutOrderRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Release/net6.0/WIDESEA_StorageOutOrderServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Release/net6.0/WIDESEA_StorageOutOrderServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Release/net6.0/WIDESEA_StorageOutOrderServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Release/net6.0/WIDESEA_StorageTaskRepository.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Release/net6.0/WIDESEA_StorageTaskRepository.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Release/net6.0/WIDESEA_StorageTaskRepository.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Release/net6.0/WIDESEA_StorageTaskServices.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Release/net6.0/WIDESEA_StorageTaskServices.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Release/net6.0/WIDESEA_StorageTaskServices.csproj.CopyComplete"
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/APP/ToAPPController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/APP/ToAPPController.cs"
index 72121c2..b21a925 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/APP/ToAPPController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/APP/ToAPPController.cs"
@@ -41,4 +41,14 @@
     {
         return _AppService.SaveCZInfo(input);
     }
+    /// <summary>
+    /// 淇濆瓨棰勯�夎溅杞翠俊鎭�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    [HttpPost, Route("SaveCZInfo2"), AllowAnonymous]
+    public WebResponseContent SaveCZInfo2([FromBody] SaveModel input)
+    {
+        return _AppService.SaveCZInfo2(input);
+    }
 }
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
index 2270a05..7e13d68 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
@@ -11,11 +11,11 @@
   //杩炴帴瀛楃涓�
   //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
   //"ConnectionString": "Data Source=192.168.5.251;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=MX_LDY_WMS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionString": "Data Source=.;Initial Catalog=ZCLDY_WIDESEAWMS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WMSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //"ConnectionStringWCS": "Data Source=192.168.5.251;Initial Catalog=WIDESEAWCS_TEST;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionStringWCS": "Data Source=.\\LIULEI;Initial Catalog=MX_LDY_WCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionStringWCS": "Data Source=.;Initial Catalog=ZCLDY_WIDESEAWCS;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //璺ㄥ煙
   "Cors": {
     "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Release/net6.0/WIDESEA_WMSServer.csproj.CopyComplete" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Release/net6.0/WIDESEA_WMSServer.csproj.CopyComplete"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Release/net6.0/WIDESEA_WMSServer.csproj.CopyComplete"

--
Gitblit v1.9.3