From 1a02791b12af1c7dc0a7816c9ae60f5ede442de4 Mon Sep 17 00:00:00 2001
From: 刘磊 <1161824510@qq.com>
Date: 星期五, 15 十一月 2024 14:32:16 +0800
Subject: [PATCH] 1

---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/GlobalUsing.cs                                                    |    3 
 .gitignore                                                                                                                |  200 +++++
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs                                  |  548 +++++++--------
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs                                                |   18 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/Unbind/UnbindService.cs                       |    6 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs                                     |   45 +
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                           |  187 ++--
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs                                                 |   18 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/ProductionService.cs                        |   10 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs                           |  125 ---
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/MOM/ProductionModel.cs                                         |   79 ++
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/ProductionController.cs                         |   17 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs                                 |    2 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj.user                                     |    4 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs                           |  351 ++-------
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs |    3 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayCellsStatusDto.cs                                     |    0 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/ProductionRepository.cs                   |   15 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/CellStateDto.cs                                           |    0 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayUnbindDto.cs                                          |    0 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs                                             |   18 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs           |    4 
 Code Management/WCS/WIDESEAWCS_Client/src/api/http.js                                                                     |    2 
 Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js                                                                |    6 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs                                              |   36 
 Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.vue                                       |   68 +
 Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js                                               |    2 
 Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/Extend/Add.vue                                            |   76 ++
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs                                      |   13 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/IProductionRepository.cs                  |   12 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/ResultTrayCellsStatus.cs                                  |   38 +
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs                             |   32 
 /dev/null                                                                                                                 |   21 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayCellUnbindDto.cs                                      |    0 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs                                 |   27 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs                                                |    2 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs                                                |   21 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/MOM/RequestEqptRunDto.cs                                             |   21 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/IProductionService.cs                       |    5 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs                                                |   21 
 Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.js                                        |   77 ++
 41 files changed, 1,273 insertions(+), 860 deletions(-)

diff --git a/.gitignore b/.gitignore
index 22c6fc7..f359d4e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -974,28 +974,206 @@
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.csproj.CoreCompileInputs.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.csproj.CoreCompileInputs.cache
 *.txt
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_BasicInfoRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/WIDESEAWCS_BasicInfoRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoRepository/obj/WIDESEAWCS_BasicInfoRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/Debug/net6.0/WIDESEAWCS_BasicInfoService.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/WIDESEAWCS_BasicInfoService.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/obj/WIDESEAWCS_BasicInfoService.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/obj/Debug/net6.0/WIDESEAWCS_Common.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/obj/Debug/net6.0/WIDESEAWCS_Common.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/obj/Debug/net6.0/WIDESEAWCS_Common.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/obj/WIDESEAWCS_Common.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/obj/WIDESEAWCS_Common.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/Debug/net6.0/WIDESEAWCS_Communicator.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/Debug/net6.0/WIDESEAWCS_Communicator.csproj.AssemblyReference.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/Debug/net6.0/WIDESEAWCS_Communicator.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/Debug/net6.0/WIDESEAWCS_Communicator.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/WIDESEAWCS_Communicator.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Communicator/obj/WIDESEAWCS_Communicator.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/Debug/net6.0/WIDESEAWCS_Core.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/Debug/net6.0/WIDESEAWCS_Core.csproj.AssemblyReference.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/Debug/net6.0/WIDESEAWCS_Core.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/Debug/net6.0/WIDESEAWCS_Core.csproj.FileListAbsolute.txt
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/Debug/net6.0/WIDESEAWCS_Core.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/WIDESEAWCS_Core.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/obj/WIDESEAWCS_Core.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Debug/net6.0/WIDESEAWCS_DTO.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/Debug/net6.0/WIDESEAWCS_DTO.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/WIDESEAWCS_DTO.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/obj/WIDESEAWCS_DTO.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.csproj.CoreCompileInputs.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.pack.json
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.csproj.CoreCompileInputs.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.genruntimeconfig.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.csproj.CoreCompileInputs.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.csproj.CoreCompileInputs.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CoreCompileInputs.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.csproj.CoreCompileInputs.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/appsettings.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/WIDESEAWCS_ISystemServices.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/WIDESEAWCS_ISystemServices.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/WIDESEAWCS_ITaskInfoRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/WIDESEAWCS_ITaskInfoRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoService.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/WIDESEAWCS_ITaskInfoService.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/obj/WIDESEAWCS_ITaskInfoService.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Debug/net6.0/WIDESEAWCS_Model.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/Debug/net6.0/WIDESEAWCS_Model.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/WIDESEAWCS_Model.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/obj/WIDESEAWCS_Model.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Debug/net6.0/WIDESEAWCS_IProcessRepository.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/Debug/net6.0/WIDESEAWCS_IProcessRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.assets.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.csproj.AssemblyReference.cache
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.g.props
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/WIDESEAWCS_Server.staticwebassets.runtime.json
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.build.json
 /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.development.json
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/obj/Debug/net6.0/WIDESEAWCS_ISystemServices.csproj.CoreCompileInputs.cache
-/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_ITaskInfoRepository.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.pack.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.genruntimeconfig.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/Debug/net6.0/WIDESEAWCS_TaskInfoService.csproj.CoreCompileInputs.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.assets.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/project.assets.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/project.nuget.cache
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.dgspec.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.g.props
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+/Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/LogLibrary.assets.cache
+/Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/LogLibrary.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/LogLibrary.csproj.nuget.dgspec.json
+/Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/LogLibrary.csproj.nuget.g.props
+/Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/project.assets.json
+/Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/project.nuget.cache
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.assets.cache
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/project.assets.json
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/project.nuget.cache
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/WIDESEA_IStoragIntegrationServices.csproj.nuget.dgspec.json
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/WIDESEA_IStoragIntegrationServices.csproj.nuget.g.props
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.assets.cache
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.assets.cache
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.GeneratedMSBuildEditorConfig.editorconfig
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/project.assets.json
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/project.nuget.cache
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/WIDESEA_Tasks.csproj.nuget.dgspec.json
+/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/bin/Debug/net6.0/Logs/202411/鎶ユ枃.docx
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
+/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/appsettings.json
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js b/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
index c81ff8f..c648172 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
@@ -19,7 +19,7 @@
 }
 
 else if (process.env.NODE_ENV == 'production') {
-    axios.defaults.baseURL = 'http://115.159.85.185:9291/';
+    axios.defaults.baseURL = 'http://127.0.0.1:9291/';
 }
 if (!axios.defaults.baseURL.endsWith('/')) {
     axios.defaults.baseURL+="/";
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js b/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js
index e700d90..d882861 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js
@@ -31,7 +31,7 @@
         icon: "el-icon-document", //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
         type: "primary", //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
         onClick: function () {
-          this.$Message.success("鐐瑰嚮浜嗘寜閽�");
+          this.$Message.success("寮�鍚湇鍔�");
         },
       });
     },
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
index dd89d76..d6982b4 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
@@ -2,6 +2,7 @@
 using System.Collections.Generic;
 using System.Linq;
 using System.Net.Http.Headers;
+using System.Security.Policy;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -9,16 +10,22 @@
 {
     public class HttpHelper
     {
-        public static async Task<string> GetAsync(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null)
+        public static async Task<string> GetAsync(string serviceAddress, Dictionary<string, object> parameters, string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
             try
             {
                 string result = string.Empty;
                 using HttpClient httpClient = new HttpClient();
                 httpClient.Timeout = new TimeSpan(0, 0, 60);
+                // 灏嗗弬鏁版嫾鎺ュ埌URL涓�
+                string queryString = string.Join("&", parameters.Select(x => $"{x.Key}={x.Value}"));
+                serviceAddress += "?" + queryString;
 
-                foreach (var header in headers)
-                    httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                if (headers != null)
+                {
+                    foreach (var header in headers)
+                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                }
 
                 result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync();
                 return result;
@@ -41,9 +48,11 @@
                     using HttpClient httpClient = new HttpClient();
                     httpClient.Timeout = new TimeSpan(0, 0, 60);
 
-                    foreach (var header in headers)
-                        httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
-
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
                     result = await httpClient.PostAsync(serviceAddress, httpContent).Result.Content.ReadAsStringAsync();
                 }
                 return result;
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/MOM/RequestEqptRunDto.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/MOM/RequestEqptRunDto.cs
new file mode 100644
index 0000000..0cac9cd
--- /dev/null
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/MOM/RequestEqptRunDto.cs
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_DTO.MOM
+{
+    public class RequestEqptRunDto : BasicDto
+    {
+        /// <summary>
+        /// 浜哄憳瀵嗙爜
+        /// </summary>
+        public string Password { get; set; }
+
+        /// <summary>
+        /// 璁惧妯″紡
+        /// </summary>
+        public string EquipmentModel { get; set; }
+    }
+}
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs
index 80735df..91dc7b9 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs
@@ -1,10 +1,4 @@
-锘縰sing System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-
-namespace WIDESEAWCS_DTO.WMS
+锘縩amespace WIDESEAWCS_DTO.WMS
 {
     public class RequestTaskDto
     {
@@ -17,5 +11,15 @@
         /// 鎵樼洏鍙�
         /// </summary>
         public string PalletCode { get; set; }
+
+        /// <summary>
+        /// 绌烘墭鐩樺彲鍏ュ贩鍒�
+        /// </summary>
+        public string PositionList { get; set; }
+
+        /// <summary>
+        /// 浠诲姟绫诲瀷
+        /// </summary>
+        public string RequestType { get; set; } = string.Empty;
     }
 }
\ No newline at end of file
diff --git "a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/1\345\217\267\345\240\206\345\236\233\346\234\272/Logs_20241029105644.txt" "b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/1\345\217\267\345\240\206\345\236\233\346\234\272/Logs_20241029105644.txt"
deleted file mode 100644
index 18bf97e..0000000
--- "a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/1\345\217\267\345\240\206\345\236\233\346\234\272/Logs_20241029105644.txt"
+++ /dev/null
@@ -1,21 +0,0 @@
-锘�[淇℃伅] 2024-10-29 10:56:44.068 Thread:[013] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[淇℃伅] 2024-10-29 13:44:23.506 Thread:[006] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[鑷村懡] 2024-10-29 13:45:58.521 Thread:[025] 1鍙峰爢鍨涙満 : 鏁版嵁璇诲彇澶辫触锛屾暟鎹被鍨嬶細銆怋yte銆戯紝鍦板潃锛氥�怐B106.3.0銆戯紝閿欒淇℃伅锛氥�怱ocket Exception -> 鐢变簬杩炴帴鏂瑰湪涓�娈垫椂闂村悗娌℃湁姝g‘绛斿鎴栬繛鎺ョ殑涓绘満娌℃湁鍙嶅簲锛岃繛鎺ュ皾璇曞け璐ャ�傘�� : 閿欒淇℃伅锛氭暟鎹鍙栧け璐ワ紝鏁版嵁绫诲瀷锛氥�怋yte銆戯紝鍦板潃锛氥�怐B106.3.0銆戯紝閿欒淇℃伅锛氥�怱ocket Exception -> 鐢变簬杩炴帴鏂瑰湪涓�娈垫椂闂村悗娌℃湁姝g‘绛斿鎴栬繛鎺ョ殑涓绘満娌℃湁鍙嶅簲锛岃繛鎺ュ皾璇曞け璐ャ�傘��
-閿欒婧愶細WIDESEAWCS_Communicator
-閿欒鍫嗘爤锛�   at WIDESEAWCS_Communicator.SiemensS7.GetContent[T](OperateResult`1 operateResult, String address) in D:\Git\BaiBuLiKu\Code Management\WCS\WIDESEAWCS_Server\WIDESEAWCS_Communicator\Siemens\SiemensS7Communicator.cs:line 128
-閿欒绫诲瀷锛歐IDESEAWCS_Communicator.CommunicationException
-閿欒鏂规硶锛歋ystem.Object GetContent[T](HslCommunication.OperateResult`1[T], System.String)
-/=================================================[    Exception    ]================================================/
-[淇℃伅] 2024-10-29 13:57:52.096 Thread:[015] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[鑷村懡] 2024-10-29 16:15:15.195 Thread:[014] 1鍙峰爢鍨涙満 : 鏁版嵁璇诲彇澶辫触锛屾暟鎹被鍨嬶細銆怋yte銆戯紝鍦板潃锛氥�怐B106.2.0銆戯紝閿欒淇℃伅锛氥�怱ocket Exception -> 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆傘�� : 閿欒淇℃伅锛氭暟鎹鍙栧け璐ワ紝鏁版嵁绫诲瀷锛氥�怋yte銆戯紝鍦板潃锛氥�怐B106.2.0銆戯紝閿欒淇℃伅锛氥�怱ocket Exception -> 杩滅▼涓绘満寮鸿揩鍏抽棴浜嗕竴涓幇鏈夌殑杩炴帴銆傘��
-閿欒婧愶細WIDESEAWCS_Communicator
-閿欒鍫嗘爤锛�   at WIDESEAWCS_Communicator.SiemensS7.GetContent[T](OperateResult`1 operateResult, String address) in D:\Git\BaiBuLiKu\Code Management\WCS\WIDESEAWCS_Server\WIDESEAWCS_Communicator\Siemens\SiemensS7Communicator.cs:line 128
-閿欒绫诲瀷锛歐IDESEAWCS_Communicator.CommunicationException
-閿欒鏂规硶锛歋ystem.Object GetContent[T](HslCommunication.OperateResult`1[T], System.String)
-/=================================================[    Exception    ]================================================/
-[淇℃伅] 2024-10-29 16:28:32.603 Thread:[009] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[淇℃伅] 2024-10-29 16:36:53.574 Thread:[015] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[淇℃伅] 2024-10-29 16:41:42.983 Thread:[004] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[淇℃伅] 2024-10-29 16:42:32.779 Thread:[006] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[淇℃伅] 2024-10-29 16:54:17.155 Thread:[009] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
-[淇℃伅] 2024-10-29 17:36:01.450 Thread:[016] 1鍙峰爢鍨涙満 : PLC杩炴帴鎴愬姛锛孖P锛氥��192.168.0.101銆戯紝Port锛氥��102銆�
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 63d8ec4..830c4ce 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -22,6 +22,7 @@
 using Newtonsoft.Json;
 using SqlSugar;
 using System.Diagnostics.CodeAnalysis;
+using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_Core.BaseServices;
@@ -131,47 +132,55 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                #region 鐪熷疄鏁版嵁
+                #region 璇锋眰鍏ュ簱浠诲姟宸烽亾
                 // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
-                //// 鍒涘缓璇锋眰瀵硅薄
-                //RequestTaskDto request = new RequestTaskDto()
-                //{
-                //    Position = sourceAddress,
-                //    PalletCode = palletCode,
-                //};
-
-                //// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
-                //var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
-
-                //// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
-                //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                //// 妫�鏌ョ姸鎬佸苟杩斿洖
-                //if (!content.Status)
-                //    return content;
-
-                //// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
-                //WMSTaskDTO task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-
-                //// 澶勭悊浠诲姟骞惰繑鍥炵粨鏋�
-                //content = ReceiveWMSTask(new List<WMSTaskDTO> { task });
-
-                #endregion
-
-                WMSTaskDTO taskDTO = new WMSTaskDTO()
+                // 鍒涘缓璇锋眰瀵硅薄
+                RequestTaskDto request = new RequestTaskDto()
                 {
-                    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                    Grade = 1,
+                    Position = sourceAddress,
                     PalletCode = palletCode,
-                    RoadWay = "CHSC01",
-                    SourceAddress = sourceAddress,
-                    TargetAddress = "CHSC01",
-                    TaskState = (int)TaskInStatusEnum.InNew,
-                    Id = 0,
-                    TaskType = (int)TaskInboundTypeEnum.Inbound
                 };
 
-                content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+                // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
+
+                // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+                WMSTaskDTO task = new WMSTaskDTO();
+                // 妫�鏌ョ姸鎬佸苟杩斿洖
+                if (!content.Status)
+                {
+                    task = new WMSTaskDTO()
+                    {
+                        TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
+                        Grade = 1,
+                        PalletCode = palletCode,
+                        RoadWay = "CHSC01",
+                        SourceAddress = sourceAddress,
+                        TargetAddress = "1020",
+                        TaskState = (int)TaskOutStatusEnum.Line_OutExecuting,
+                        Id = 0,
+                        TaskType = (int)TaskOutboundTypeEnum.Outbound
+                    };
+
+                    Dt_Task task1 = _mapper.Map<Dt_Task>(task);
+                    task1.CurrentAddress = task.SourceAddress;
+                    task1.NextAddress = "1020";
+                    BaseDal.AddData(task1);
+                    return content.OK();
+                }
+                else
+                {
+                    // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                    task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+                    // 澶勭悊浠诲姟骞惰繑鍥炵粨鏋�
+                    content = ReceiveWMSTask(new List<WMSTaskDTO> { task });
+                }
+
+
+
+                #endregion
             }
             catch (Exception ex)
             {
@@ -419,46 +428,33 @@
 
                     if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish)
                     {
-                        if (task.Roadway.Contains("CH"))
+
+                        #region 鍏ュ簱璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                        // TODO: 璋冪敤鎺ュ彛鑾峰彇璐т綅鍦板潃
+                        // 鍒涘缓璇锋眰瀵硅薄
+                        RequestTaskDto taskDto = new RequestTaskDto()
                         {
-                            Random random = new Random();
-                            task.CurrentAddress = task.NextAddress;
-                            task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(0, 0).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}";
-                            task.TargetAddress = task.NextAddress;
-                        }
-                        else
-                        {
-                            Random random = new Random();
-                            task.CurrentAddress = task.NextAddress;
-                            task.NextAddress = "002-020-001";
-                            task.TargetAddress = task.NextAddress;
-                        }
+                            Position = task.NextAddress,
+                            PalletCode = task.PalletCode,
+                        };
 
-                        #region 鐪熷疄鏁版嵁
-                        // TODO: 璋冪敤鎺ュ彛鑾峰彇涓嬩竴涓湴鍧�
-                        //// 鍒涘缓璇锋眰瀵硅薄
-                        //RequestTaskDto request = new RequestTaskDto()
-                        //{
-                        //    Position = task.NextAddress,
-                        //    PalletCode = task.PalletCode,
-                        //};
+                        // 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
+                        var abc = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestLocationTaskAsync", taskDto.ToJsonString()).Result;
+                        if (abc == null)
+                            return content.Error();
+                        // 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
+                        content = JsonConvert.DeserializeObject<WebResponseContent>(abc);
 
-                        //// 鍙戦�佽姹傚苟绛夊緟鍝嶅簲
-                        //var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
+                        // 妫�鏌ョ姸鎬佸苟杩斿洖
+                        if (!content.Status)
+                            return content;
 
-                        //// 鍙嶅簭鍒楀寲鍝嶅簲鍐呭
-                        //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                        // 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
+                        WMSTaskDTO taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
 
-                        //// 妫�鏌ョ姸鎬佸苟杩斿洖
-                        //if (!content.Status)
-                        //    return content;
-
-                        //// 鍙嶅簭鍒楀寲浠诲姟鏁版嵁
-                        //WMSTaskDTO taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-
-                        //task.CurrentAddress = task.NextAddress;
-                        //task.NextAddress = taskResult.TargetAddress;
-                        //task.TargetAddress = task.NextAddress;
+                        task.CurrentAddress = task.NextAddress;
+                        task.NextAddress = taskResult.TargetAddress;
+                        task.TargetAddress = task.NextAddress;
                         #endregion
 
                     }
@@ -478,6 +474,16 @@
                 BaseDal.UpdateData(task);
 
                 _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"浜哄伐鎵嬪姩灏嗕换鍔$姸鎬佷粠銆恵oldState}銆戣烦杞埌銆恵task.TaskState}銆�" : $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�");
+
+                #region  鏇存柊浠诲姟鐘舵��
+                object request = new
+                {
+                    TaskNum = task.TaskNum,
+                    TaskState = task.TaskState
+                };
+                var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                #endregion
 
                 content = WebResponseContent.Instance.OK();
             }
@@ -550,7 +556,7 @@
                     BaseDal.UpdateData(task);
 
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄嚭搴撳畬鎴�");
-                    //todo 鍚屾鍒癢MS
+
 
                     //鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
                 }
@@ -565,24 +571,6 @@
                     _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"鍫嗗灈鏈哄叆搴撳畬鎴�");
 
 
-                    //var x = new { taskNum = taskNum };
-                    //var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result;
-                    //content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                    //WMSTaskDTO taskDTO = new WMSTaskDTO()
-                    //{
-                    //    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                    //    Grade = 1,
-                    //    PalletCode = task.PalletCode + "S",
-                    //    RoadWay = "SC01",
-                    //    SourceAddress = task.TargetAddress,
-                    //    TargetAddress = "CLOutAreaA",
-                    //    TaskState = (int)TaskOutStatusEnum.OutNew,
-                    //    Id = 0,
-                    //    TaskType = (int)TaskOutboundTypeEnum.Outbound
-                    //};
-
-                    //content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
                 }
                 else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
                 {
@@ -595,6 +583,25 @@
                 {
                     throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵taskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
                 }
+
+
+                #region WMS鍚屾浠诲姟瀹屾垚
+                var keys = new Dictionary<string, object>()
+                {
+                    {"taskNum", taskNum}
+                };
+                var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                #endregion
+                #region  鏇存柊浠诲姟鐘舵��
+                object request = new
+                {
+                    TaskNum = task.TaskNum,
+                    TaskState = task.TaskState
+                };
+                result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result;
+                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+                #endregion
                 //content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index ec87b7c..3bd8816 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -175,140 +175,28 @@
         /// <param name="ProtocalDetailValue">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
         public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue)
         {
-            // 鑾峰彇涓嬩竴涓换鍔�
-            var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode);
-            //var taskOut = _taskService.QueryNextConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
-            //return;
-            // 澶勭悊鍑哄簱浠诲姟
-            HandleTaskOut(conveyorLine, command, childDeviceCode, ProtocalDetailValue, task);
-
-            // 濡傛灉娌℃湁鍑哄簱浠诲姟锛屽鐞嗘柊浠诲姟
-            if (task == null)
+            try
             {
-                HandleNewTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
+                // 鑾峰彇涓嬩竴涓换鍔�
+                var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode);
+                //var taskOut = _taskService.QueryNextConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+                //return;
+                // 澶勭悊鍑哄簱浠诲姟
+                HandleTaskOut(conveyorLine, command, childDeviceCode, ProtocalDetailValue, task);
+
+                // 濡傛灉娌℃湁鍑哄簱浠诲姟锛屽鐞嗘柊浠诲姟
+                if (task == null && command.Barcode != "NoRead")
+                {
+                    HandleNewTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
+                }
             }
-
-            #region 鑰佺増鏈�
-
-            //var taskNew = _taskService.QueryCraneConveyorLineTask(command.Barcode.ObjToInt(), childDeviceCode);
-            //var Taskout = _taskService.QueryNextConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
-            //if (Taskout != null)
-            //{
-            //    // 绌烘墭鐩樹换鍔�
-            //    if (Taskout.TaskType == (int)TaskOutboundTypeEnum.OutTray)
-            //    {
-            //        ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
-            //        taskCommand.InteractiveSignal = command.InteractiveSignal;
-            //        if (command.Barcode == "")
-            //        {
-            //            var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity;
-            //            taskCommand.TargetAddress = NGAddress;
-            //        }
-            //        conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-            //        ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-            //        _taskService.UpdateTaskStatusToNext(Taskout);
-            //    }
-            //    else if (Taskout.TaskType == (int)TaskOutboundTypeEnum.Outbound)
-            //    {
-            //        ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout);
-            //        taskCommand.InteractiveSignal = command.InteractiveSignal;
-            //        if (Taskout.TaskState == (int)TaskOutStatusEnum.SC_OutFinish)
-            //        {
-            //            if (command.Barcode == "")
-            //            {
-            //                var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity;
-            //                taskCommand.TargetAddress = NGAddress;
-            //            }
-            //            conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-            //            ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-            //            _taskService.UpdateTaskStatusToNext(Taskout);
-            //        }
-            //        else if (Taskout.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
-            //        {
-            //            if (command.Barcode == "")
-            //            {
-            //                var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity;
-            //                taskCommand.TargetAddress = NGAddress;
-
-            //                conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-            //                ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-            //                _taskService.UpdateTaskStatusToNext(Taskout);
-            //            }
-            //            else
-            //            {
-            //                // todo 璋冪敤WMS浠诲姟瀹屾垚鎺ュ彛
-            //                var x = new { taskNum = Taskout.TaskNum };
-            //                var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result;
-            //                WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-            //                if (content.Status)
-            //                {
-            //                    ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-            //                    _taskService.UpdateTaskStatusToNext(Taskout);
-            //                }
-            //            }
-            //        }
-            //    }
-            //}
-            //if (taskNew == null)
-            //{
-            //    // 鍖栨垚->闄堝寲绌烘墭鐩樺洖娴�
-            //    if (conveyorLine.DeviceCode == "1003" && childDeviceCode == "1016")
-            //    {
-            //        //TODO 璋冪敤WMS鍒涘缓鍖栨垚->闄堝寲绌烘墭鐩樺洖娴�
-            //        WMSTaskDTO taskDTO = new WMSTaskDTO()
-            //        {
-            //            TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-            //            Grade = 1,
-            //            PalletCode = command.Barcode,
-            //            RoadWay = "CHSC01",
-            //            SourceAddress = childDeviceCode,
-            //            TargetAddress = "CHSC01",
-            //            TaskState = (int)TaskInStatusEnum.InNew,
-            //            Id = 0,
-            //            TaskType = (int)TaskInboundTypeEnum.InTray,
-            //        };
-            //        WebResponseContent content = CreateAndSendTask(taskDTO);
-            //        if (content.Status)
-            //        {
-            //            Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
-            //            if (task != null)
-            //            {
-            //                ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
-            //                taskCommand.InteractiveSignal = command.InteractiveSignal;
-            //                conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-            //                ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-            //                _taskService.UpdateTaskStatusToNext(task);
-            //            }
-            //        }
-            //    }
-            //    else
-            //    {
-            //        if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status)
-            //        {
-            //            Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
-            //            if (task != null)
-            //            {
-            //                ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task);
-            //                taskCommand.InteractiveSignal = command.InteractiveSignal;
-            //                conveyorLine.SendCommand(taskCommand, childDeviceCode);
-
-            //                ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
-
-            //                _taskService.UpdateTaskStatusToNext(task);
-            //            }
-            //        }
-            //    }
-            //}
-
-            #endregion
+            catch (Exception ex)
+            {
+                return;
+            }
         }
+
+        #region 杈撻�佺嚎璇锋眰鍏ュ簱涓嬩竴鍦板潃
 
         /// <summary>
         /// 杈撻�佺嚎璇锋眰鍏ュ簱涓嬩竴鍦板潃
@@ -316,20 +204,22 @@
         /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
         /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
         /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        public void RequestInNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
-        {
-            Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
-            if (task != null)
-            {
-                Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
-                if (newTask != null)
-                {
-                    ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask);
-                    taskCommand.InteractiveSignal = command.InteractiveSignal;
-                    conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                }
-            }
-        }
+        //public void RequestInNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
+        //{
+        //    Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode);
+        //    if (task != null)
+        //    {
+        //        Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress);
+        //        if (newTask != null)
+        //        {
+        //            ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask);
+        //            taskCommand.InteractiveSignal = command.InteractiveSignal;
+        //            conveyorLine.SendCommand(taskCommand, childDeviceCode);
+        //        }
+        //    }
+        //}
+
+        #endregion
 
         /// <summary>
         /// 杈撻�佺嚎鍏ュ簱瀹屾垚
@@ -348,7 +238,7 @@
                 //conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode);
                 WebResponseContent content = _taskService.UpdateTaskStatusToNext(task);
 
-                Console.Out.WriteLine(content.Serialize());
+                //Console.Out.WriteLine(content.Serialize());
             }
         }
 
@@ -418,19 +308,6 @@
                     taskCommand.TargetAddress = 0;
                 }
 
-                #region 鍚慦MS涓婃姤浠诲姟瀹屾垚
-
-                WMSTaskDTO wMSTaskDTO = new WMSTaskDTO();
-                var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", (new { taskNum = command.TaskNum }).ToJsonString()).Result;
-
-                content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                // 妫�鏌ョ姸鎬佸苟杩斿洖
-                if (!content.Status)
-                    return;
-
-                #endregion 鍚慦MS璇锋眰绌烘墭鐩樹换鍔�
-
                 conveyorLine.SendCommand(taskCommand, childDeviceCode);
                 ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true);
                 content = _taskService.UpdateTaskStatusToNext(task);
@@ -438,7 +315,64 @@
         }
 
         /// <summary>
-        /// 鍒涘缓浠诲姟骞跺彂閫佽姹�
+        /// 鐩戞祴绌烘墭鐩樺疄鐩樺嚭搴�
+        /// </summary>
+        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
+        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
+        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
+        /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
+        public async void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index, Platform platform)
+        {
+            try
+            {
+                TaskOutboundTypeEnum taskOutboundTypeEnum;
+                if (platform.PlatformType.Contains("OutTray"))
+                    taskOutboundTypeEnum = TaskOutboundTypeEnum.OutTray;
+                else
+                    taskOutboundTypeEnum = TaskOutboundTypeEnum.Outbound;
+                await CheckAndCreateTask(taskOutboundTypeEnum, childDeviceCode, index, platform.Stacker.Split(',')[0], platform.Stacker.Split(',').ToList());
+            }
+            catch (Exception)
+            {
+            }
+        }
+
+        /// <summary>
+        /// 妫�鏌ヤ换鍔″苟鍒涘缓鏂颁换鍔�
+        /// </summary>
+        private async Task CheckAndCreateTask(TaskOutboundTypeEnum taskType, string childDeviceCode, int index, string roadWay, List<string> roadways = null)
+        {
+            var tasks = _taskRepository.QueryData(x => x.TaskType == (int)taskType && x.TargetAddress == childDeviceCode);
+            if (tasks.Count < index)
+            {
+                #region 璋冪敤WMS鑾峰彇鍑哄簱浠诲姟
+
+                WMSTaskDTO taskDTO = new WMSTaskDTO();
+                object dynamic = new
+                {
+                    position = childDeviceCode,
+                    tag = (int)taskType,
+                    areaCdoe = roadWay,
+                    roadways = roadways
+                };
+                var result = await HttpHelper.PostAsync("http://localhost:5000/api/Task/RequestTrayOutTaskAsync", dynamic.ToJsonString());
+
+                WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
+
+                // 妫�鏌ョ姸鎬佸苟杩斿洖
+                if (!content.Status)
+                    return;
+
+                taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
+
+                #endregion
+
+                CreateAndSendTask(taskDTO);
+            }
+        }
+
+        /// <summary>
+        /// 鍒涘缓浠诲姟
         /// </summary>
         public WebResponseContent CreateAndSendTask(WMSTaskDTO taskDTO)
         {
@@ -448,103 +382,6 @@
                 Console.WriteLine($"{taskDTO.TaskType}鍛煎彨鎴愬姛");
             }
             return content;
-        }
-
-        /// <summary>
-        /// 闄堝寲绌烘墭鐩樺嚭搴�
-        /// </summary>
-        /// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        /// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        /// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        /// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        public void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index, Platform platform)
-        {
-            TaskOutboundTypeEnum taskOutboundTypeEnum;
-            if (platform.PlatformType.Contains("OutTray"))
-                taskOutboundTypeEnum = TaskOutboundTypeEnum.OutTray;
-            else
-                taskOutboundTypeEnum = TaskOutboundTypeEnum.Outbound;
-            CheckAndCreateTask(TaskOutboundTypeEnum.OutTray, childDeviceCode, index, platform.Stacker.Split(',')[0], platform.Stacker.Split(',').ToList());
-        }
-
-        #region
-        ///// <summary>
-        ///// 闄堝寲瀹炵洏鍑哄簱)
-        ///// </summary>
-        ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        ///// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        //public void ChuanhuaOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode)
-        //{
-        //    CheckAndCreateTask(TaskOutboundTypeEnum.Outbound, childDeviceCode, "CHSC01", "001-001-001");
-        //}
-
-        ///// 闈欑疆绌烘墭鐩樺嚭搴�
-        ///// </summary>
-        ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        ///// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        //public void EmptyTrayOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index)
-        //{
-        //    CheckAndCreateTask(TaskOutboundTypeEnum.OutTray, childDeviceCode, index, "JZSC01", "002-020-001");
-        //}
-        ///// <summary>
-        ///// 闈欑疆瀹炵洏鍑哄簱
-        ///// </summary>
-        ///// <param name="conveyorLine">杈撻�佺嚎瀹炰緥瀵硅薄</param>
-        ///// <param name="command">璇诲彇鐨勮姹備俊鎭�</param>
-        ///// <param name="childDeviceCode">瀛愯澶囩紪鍙�</param>
-        ///// <param name="index">绾夸綋褰撳墠bool璇诲彇鍋忕Щ鍦板潃</param>
-        //public void JingzhiOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index)
-        //{
-        //    CheckAndCreateTask(TaskOutboundTypeEnum.Outbound, childDeviceCode, index, "JZSC01", "002-000-001");
-        //}
-        #endregion
-
-        /// <summary>
-        /// 妫�鏌ヤ换鍔″苟鍒涘缓鏂颁换鍔�
-        /// </summary>
-        private void CheckAndCreateTask(TaskOutboundTypeEnum taskType, string childDeviceCode, int index, string roadWay, List<string> roadways = null)
-        {
-            var tasks = _taskRepository.QueryData(x => x.TaskType == (int)taskType && x.TargetAddress == childDeviceCode);
-            if (tasks.Count < index)
-            {
-                //var taskDTO = new WMSTaskDTO()
-                //{
-                //    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-                //    Grade = 1,
-                //    PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"),
-                //    RoadWay = roadWay,
-                //    SourceAddress = sourceAddress,
-                //    TargetAddress = childDeviceCode,
-                //    TaskState = (int)TaskOutStatusEnum.OutNew,
-                //    Id = 0,
-                //    TaskType = (int)taskType
-                //};
-                #region 璋冪敤WMS鑾峰彇鍑哄簱浠诲姟
-                WMSTaskDTO taskDTO = new WMSTaskDTO();
-                dynamic dynamic = new
-                {
-                    position = childDeviceCode,
-                    tag = (int)taskType,
-                    areaCdoe = roadWay,
-                    roadways = roadways
-                };
-                var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", dynamic.ToJsonString()).Result;
-
-                WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
-                // 妫�鏌ョ姸鎬佸苟杩斿洖
-                if (!content.Status)
-                    return;
-
-                taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString());
-                #endregion
-
-                CreateAndSendTask(taskDTO);
-            }
         }
 
         /// <summary>
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
index b904bad..ba0e4d3 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -44,7 +44,7 @@
                 // 鏇存柊浠诲姟鐘舵��
                 _taskService.UpdateTaskStatusToNext(taskOut);
             }
-            else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
+            else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting)
             {
                 // 瀹屾垚WMS浠诲姟
                 CompleteWmsTask(taskOut, command, conveyorLine, childDeviceCode, ProtocalDetailValue);
@@ -62,7 +62,7 @@
                 // 璇锋眰WMS绌烘墭鐩樹换鍔�
                 CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
             }
-            else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1088")||(conveyorLine.DeviceCode == "1004" && childDeviceCode == "1339"))
+            else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1088") || (conveyorLine.DeviceCode == "1004" && childDeviceCode == "1339"))
             {
                 // 璇锋眰WMS鍏ュ簱浠诲姟
                 RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue);
@@ -97,7 +97,11 @@
             }
 
             // TODO璋冪敤WMS浠诲姟瀹屾垚鎺ュ彛
-            var result = HttpHelper.GetAsync("http://127.0.0.1:8098/api/Task/CompleteTaskAsync", new { taskNum = taskOut.TaskNum }.ToJsonString()).Result;
+            var keys = new Dictionary<string, object>()
+                {
+                    {"taskNum", taskOut.TaskNum}
+                };
+            var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result;
             WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
             if (content.Status)
             {
@@ -143,32 +147,18 @@
         /// </summary>
         private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode)
         {
-            // 鍒涘缓骞惰繑鍥炵┖鎵樼洏浠诲姟DTO
-            //return new WMSTaskDTO
-            //{
-            //    TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")),
-            //    Grade = 1,
-            //    PalletCode = barcode,
-            //    RoadWay = "JZSC01",
-            //    SourceAddress = childDeviceCode,
-            //    TargetAddress = "JZSC01",
-            //    TaskState = (int)TaskInStatusEnum.InNew,
-            //    Id = 0,
-            //    TaskType = (int)TaskInboundTypeEnum.InTray,
-            //};
-
             #region 鍚慦MS璇锋眰绌烘墭鐩樹换鍔�
-
             WMSTaskDTO wMSTaskDTO = new WMSTaskDTO();
             RequestTaskDto request = new RequestTaskDto()
             {
                 Position = childDeviceCode,
                 PalletCode = barcode,
             };
-            var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result;
+            var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTrayInTaskAsync", request.ToJsonString()).Result;
+            if (result == null)
+                return wMSTaskDTO;
 
             WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result);
-
             // 妫�鏌ョ姸鎬佸苟杩斿洖
             if (!content.Status)
                 return wMSTaskDTO;
@@ -187,7 +177,7 @@
             if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status)
             {
                 // 鏌ヨ浠诲姟
-                Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode);
+                Dt_Task task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode);
                 if (task != null)
                 {
                     // 鏄犲皠浠诲姟鍛戒护
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index 0335a14..e9d9278 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -48,9 +48,7 @@
                 CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                 if (commonStackerCrane != null)
                 {
-                    //EqptRun(commonStackerCrane);
                     //EqptAlive(commonStackerCrane);
-                    //EqptStatus(commonStackerCrane);
                     //Console.Out.WriteLine(commonStackerCrane.DeviceName);
                     if (!commonStackerCrane.IsEventSubscribed)
                     {
@@ -301,52 +299,6 @@
             return stackerCraneTaskCommand;
         }
 
-        /// <summary>
-        /// 璁惧涓嶮OM绯荤粺瀵规帴锛岃澶囦笂绾�
-        /// </summary>
-        /// <param name="commonStackerCrane"></param>
-        public async void EqptRun(CommonStackerCrane commonStackerCrane)
-        {
-            if (!commonStackerCrane.StackerOnline)
-            {
-                BasicDto dto = new BasicDto
-                {
-                    EmployeeNo = "T00001",
-                    EquipmentCode = commonStackerCrane.DeviceCode,
-                    RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
-                    SessionId = Guid.NewGuid().ToString(),
-                    Software = commonStackerCrane.DeviceName,
-                };
-                var respone = await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptRun", dto.ToJsonString());
-                if (respone != null)
-                {
-                    var result = JsonConvert.DeserializeObject<ResponseEqptRunDto>(respone);
-                    if (result != null && result.Success)
-                    {
-                        var process = _processRepository.QueryData(x => x.EquipmentName == commonStackerCrane.DeviceName).FirstOrDefault();
-                        if (process == null)
-                        {
-                            ResponeRunDto runDto = JsonConvert.DeserializeObject<ResponeRunDto>(respone);
-                            process = new Dt_EquipmentProcess()
-                            {
-                                EquipmentName = commonStackerCrane.DeviceCode,
-                                EquipmentType = commonStackerCrane.DeviceName.Substring(commonStackerCrane.DeviceCode.IndexOf("鍫嗗灈鏈�")),
-                                WipOrderNo = runDto.WipOrderNo,
-                                ProductDesc = runDto.ProductDesc,
-                                ProcessValue = JsonConvert.SerializeObject(result)
-                            };
-                            var isResult = await _processRepository.AddDataAsync(process) > 0;
-                        }
-                        else
-                        {
-                            process.ProcessValue = JsonConvert.SerializeObject(result);
-                            var isResult = await _processRepository.UpdateDataAsync(process);
-                        }
-                        commonStackerCrane.StackerOnline = true;
-                    }
-                }
-            }
-        }
 
         /// <summary>
         /// 璁惧蹇冭烦
@@ -379,82 +331,5 @@
             }
         }
 
-        /// <summary>
-        /// 璁惧鐘舵��
-        /// </summary>
-        /// <param name="commonStackerCrane"></param>
-        public async void EqptStatus(CommonStackerCrane commonStackerCrane)
-        {
-            string code = string.Empty;
-            RequestAlertDto requestAlert = new RequestAlertDto()
-            {
-                EmployeeNo = "T00001",
-                EquipmentCode = commonStackerCrane.DeviceCode,
-                RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
-                SessionId = Guid.NewGuid().ToString(),
-                Software = commonStackerCrane.DeviceName,
-                AlertInfo = new List<AlertInfoDto>()
-            };
-            switch (commonStackerCrane.Status)
-            {
-                case DeviceStatus.Idle:
-                    code = "Waiting";
-                    break;
-
-                case DeviceStatus.Working:
-                    code = "Running";
-                    break;
-
-                case DeviceStatus.Fault:
-                    code = "Alerting";
-                    var alert = new AlertInfoDto()
-                    {
-                        AlertCode = "1001",
-                        AlertDescription = commonStackerCrane.StackerCraneStatusDes,
-                        AlertReset = "1"
-                    };
-                    requestAlert.AlertInfo.Add(alert);
-
-                    await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", requestAlert.ToJsonString());
-
-                    break;
-
-                case DeviceStatus.Unkonw:
-                    code = "Down";
-                    break;
-
-                case DeviceStatus.Offline:
-                    code = "Maintenance";
-                    break;
-
-                default:
-                    break;
-            }
-            if (code != "Alerting")
-            {
-                requestAlert.AlertInfo = new List<AlertInfoDto>();
-                var alert = new AlertInfoDto()
-                {
-                    AlertCode = "1001",
-                    AlertDescription = commonStackerCrane.StackerCraneStatusDes,
-                    AlertReset = "0"
-                };
-                await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", requestAlert.ToJsonString());
-            }
-            RequestEqptStatusDto requestEqptStatus = new RequestEqptStatusDto()
-            {
-                EmployeeNo = "T00001",
-                EquipmentCode = commonStackerCrane.DeviceCode,
-                RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"),
-                SessionId = Guid.NewGuid().ToString(),
-                Software = commonStackerCrane.DeviceName,
-                ChangeTime = DateTime.Now.ToString(),
-                Description = commonStackerCrane.StackerCraneStatusDes,
-                LocationID = "NA",
-                ReasonCode = "123",
-                StatusCode = code
-            };
-            var respone = await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptStatus", requestEqptStatus.ToJsonString());
-        }
     }
 }
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js b/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js
index 1dfc161..b0fb6fe 100644
--- a/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js
@@ -218,9 +218,9 @@
     }
   },
   {
-    path: '/zzzz',
-    name: 'zzzz',
-    component: () => import('@/views/widesea_wms/MOM/zzzz.vue'),
+    path: '/ProductionModel',
+    name: 'ProductionModel',
+    component: () => import('@/views/widesea_wms/MOM/ProductionModel.vue'),
     meta: {
       keepAlive: false
     }
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/Extend/Add.vue b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/Extend/Add.vue
new file mode 100644
index 0000000..230e978
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/Extend/Add.vue
@@ -0,0 +1,76 @@
+<template>
+    <div>
+        <vol-box v-model="showDetialBox" :lazy="true" :height="350" :width="600" :padding="15" title="鏂欐灞炴�х淮鎶�">
+            <el-form :inline="true" :model="TrayBarcodePropertys" label-width="auto" class="demo-form-inline">
+                <el-form-item label="鏂欐灞炴��:">
+                    <el-input v-model="TrayBarcodePropertys.TrayBarcodeProperty" placeholder="鏂欐灞炴��" />
+                </el-form-item>
+                <el-form-item label="鎵樼洏瀹归噺:">
+                    <el-input v-model="TrayBarcodePropertys.Capacity" placeholder="鎵樼洏瀹归噺" />
+                </el-form-item>
+                <el-button @click="addProductType" type="primary">娣诲姞浜у搧宸ュ簭</el-button>
+                <el-button @click="save" type="success">鎻愪氦鏁版嵁</el-button>
+                <el-row>
+                    <el-col :span="12">
+                        <el-form-item label="宸ュ簭:" v-for="(input, index) in TrayBarcodePropertys.ProcessCodes"
+                            :key="index">
+                            <el-input v-model="input.ProcessCode" placeholder="宸ュ簭" />
+                        </el-form-item>
+                    </el-col>
+                    <el-col :span="12">
+                        <el-form-item label="浜у搧绫诲瀷:" v-for="(input, index) in TrayBarcodePropertys.ProductTypes"
+                            :key="index">
+                            <el-input v-model="input.ProductType" placeholder="浜у搧绫诲瀷" />
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+        </vol-box>
+    </div>
+</template>
+
+<script>
+import VolBox from "@/components/basic/VolBox.vue";
+import http from "@/../src/api/http.js";
+export default {
+    components: { VolBox },
+    data() {
+        return {
+            showDetialBox: false,
+            TrayBarcodePropertys: {
+                TrayBarcodeProperty: '',
+                Capacity: 0,
+                ProcessCodes: [{ ProcessCode: '', }],
+                ProductTypes: [{ ProductType: '', }]
+            }
+        }
+    },
+    methods: {
+        addProductType() {
+            this.TrayBarcodePropertys.ProductTypes.push({ ProductType: '' })
+            this.TrayBarcodePropertys.ProcessCodes.push({ ProcessCode: '' })
+        },
+        open() {
+            this.showDetialBox = true
+        },
+        save() {
+            console.log(this.TrayBarcodePropertys)
+            let data = ({...this.TrayBarcodePropertys, ProcessCodes:JSON.stringify(this.TrayBarcodePropertys.ProcessCodes) , ProductTypes:JSON.stringify(this.TrayBarcodePropertys.ProductTypes)});
+            
+            debugger;
+            http.post('api/Production/AddData', data).then(res => {
+                if (res.code == 200) {
+                    // ElMessage.success(res.msg)
+                    this.$message.success('娣诲姞鎴愬姛')
+                    this.$parent.load();
+                } else {
+                    // ElMessage.error(res.msg)
+                    this.$message.error(x.message)
+                }
+            })
+        }
+    }
+}
+</script>
+
+<style lang="scss" scoped></style>
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.js b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.js
new file mode 100644
index 0000000..85acb05
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.js
@@ -0,0 +1,77 @@
+/*****************************************************************************************
+**  Author:jxx 2022
+**  QQ:283591387
+**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
+**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
+**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
+*****************************************************************************************/
+//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
+import gridBody from "./Extend/Add.vue"; //鑷畾涔夋墿灞曟煡璇㈢晫闈腑琛ㄦ牸浣撶粍浠�
+
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: gridBody,
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+        //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+          this.buttons.unshift({  //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+            name: '鎸夐挳', //鎸夐挳鍚嶇О
+            icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+            type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+            onClick: function () {
+              console.log("馃殌 ~ onInit ~ gridBody:", gridBody)
+              this.$refs.gridBody.open();
+            }
+          });
+
+        //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+        this.boxOptions.labelWidth = 150;
+    },
+    onInited() {
+      //妗嗘灦鍒濆鍖栭厤缃悗
+      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+      //this.detailOptions.columns.forEach(column=>{ });
+    },
+    searchBefore(param) {
+      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+      return true;
+    },
+    searchAfter(result) {
+      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
+      return true;
+    },
+    addBefore(formData) {
+      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
+      return true;
+    },
+    updateBefore(formData) {
+      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
+      return true;
+    },
+    rowClick({ row, column, event }) {
+      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
+      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+    },
+    modelOpenAfter(row) {
+      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
+      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
+      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
+      //(3)this.editFormFields.瀛楁='xxx';
+      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
+      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
+    }
+  }
+};
+export default extension;
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.vue b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.vue
new file mode 100644
index 0000000..1a82e6e
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/MOM/ProductionModel.vue
@@ -0,0 +1,68 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/material/Dt_MaterielInfo.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 "./ProductionModel.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: 'materielID',
+            footer: "Foots",
+            cnName: '鏂欐灞炴��',
+            name: 'ProductionModel',
+            url: "/Production/",
+            sortName: "MaterielID"
+        });
+        const editFormFields = ref({
+            "TrayBarcodeProperty": "",
+            "Capacity": "",
+
+        });
+        const editFormOptions = ref([
+            [
+                { "title": "鏂欐灞炴��", "field": "TrayBarcodeProperty", type: "text" },
+                { "title": "鎵樼洏瀹归噺", "field": "Capacity", type: "text" },
+            ]
+        ]);
+        const searchFormFields = ref({});
+        const searchFormOptions = ref([
+            [
+                { "title": "鏂欐灞炴��", "field": "TrayBarcodeProperty", type: "text" },
+                { "title": "鎵樼洏瀹归噺", "field": "Capacity", type: "text" },
+            ]
+        ]);
+        const columns = ref([{ field: 'id', title: 'ID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
+        { field: 'trayBarcodeProperty', title: '鏂欐灞炴��', type: 'string', width: 110, align: 'left', sort: true },
+        { field: 'processCodes', title: '宸ュ簭闆嗗悎', type: 'string', width: 120, align: 'left' },
+        { field: 'productTypes', title: '鐗╂枡缂栫爜/宸ヨ壓鍨嬪彿闆嗗悎', type: 'string', width: 110, align: 'left' },
+        { field: 'capacity', title: '鎵樼洏瀹归噺', type: 'string', width: 110, align: 'left' }]);
+        const detail = ref({
+            cnName: "#detailCnName",
+            table: "#detailTable",
+            columns: [],
+            sortName: "",
+            key: ""
+        });
+        return {
+            table,
+            extend,
+            editFormFields,
+            editFormOptions,
+            searchFormFields,
+            searchFormOptions,
+            columns,
+            detail,
+        };
+    },
+});
+</script>
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs
index 3436324..81bb1a4 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/DB/Models/BaseEntity.cs
@@ -50,7 +50,7 @@
         [ImporterHeader(Name = "鍒涘缓鑰�")]
         [ExporterHeader(DisplayName = "鍒涘缓鑰�")]
         [SugarColumn(IsNullable = false, IsOnlyIgnoreUpdate = true, ColumnDescription = "鍒涘缓鑰�")]
-        public string Creater { get; set; }
+        public string Creater { get; set; } = "Systeam";
 
         /// <summary>
         /// 鍒涘缓鏃堕棿
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs
index 21bbef2..fe41350 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/HostedService/SeedDataHostedService.cs
@@ -49,7 +49,7 @@
                 {
                     // 浣跨敤 myScopedService 鎵ц浠诲姟
 
-                    //await DBSeed.SeedAsync(_dbContext, _webRootPath);
+                    await DBSeed.SeedAsync(_dbContext, _webRootPath);
 
                     //澶氱鎴� 鍚屾
                     //await DBSeed.TenantSeedAsync(_dbContext);
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs
index 525996e..63a5ce1 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs
@@ -11,4 +11,22 @@
     /// 鎵樼洏鍙�
     /// </summary>
     public string PalletCode { get; set; }
+
+    /// <summary>
+    /// 绌烘墭鐩樺彲鍏ュ贩鍒�
+    /// </summary>
+    public string PositionList { get; set; }
+
+    /// <summary>
+    /// 浠诲姟绫诲瀷
+    /// </summary>
+    public string RequestType { get; set; } = string.Empty;
+}
+
+public class RequestOutTaskDto
+{
+    public string   Position { get; set; }
+    public int Tag { get; set; }
+    public string AreaCdoe { get; set; }
+    public List<string> Roadways { get; set; }
 }
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs
new file mode 100644
index 0000000..2b109c5
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs
@@ -0,0 +1,21 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO
+{
+    public class UpdateStatusDto
+    {
+        /// <summary>
+        /// 浠诲姟鍙�
+        /// </summary>
+        public int TaskNum { get; set; }
+
+        /// <summary>
+        /// 浠诲姟鐘舵��
+        /// </summary>
+        public int TaskState { get; set; }
+    }
+}
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellStateDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/CellStateDto.cs
similarity index 100%
rename from Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellStateDto.cs
rename to Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/CellStateDto.cs
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/ResultTrayCellsStatus.cs
similarity index 64%
rename from Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs
rename to Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/ResultTrayCellsStatus.cs
index 841ba73..48d00df 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/ResultTrayCellsStatus.cs
@@ -1,5 +1,8 @@
 锘縩amespace WIDESEA_DTO.MOM
 {
+    /// <summary>
+    /// 鎵樼洏鐢佃姱鐘舵��
+    /// </summary>
     public class ResultTrayCellsStatus : BasicResult
     {
         /// <summary>
@@ -16,6 +19,16 @@
         /// 缁戝畾浠g爜
         /// </summary>
         public string BindCode { get; set; }
+
+        /// <summary>
+        /// 鐢熶骇浜х嚎
+        /// </summary>
+        public string ProductionLine { get; set; }
+
+        /// <summary>
+        /// 褰撳墠宸ヨ壓宸ュ簭浠g爜
+        /// </summary>
+        public string ProcessCode { get; set; }
 
         /// <summary>
         /// 鏂欐灞炴�у垪琛�
@@ -38,6 +51,8 @@
         /// </summary>
         public int PositionNo { get; set; }
 
+        //public string BindCode { get; set; }
+
         /// <summary>
         /// 鐢佃姱鐘舵��
         /// </summary>
@@ -57,9 +72,30 @@
         /// <summary>
         /// 宸ュ簭
         /// </summary>
-        public string ProcessCode { get; set; }
+        public List<ProcessCodes> ProcessCodes { get; set; } = new List<ProcessCodes>();
 
         /// <summary>
+        /// 鎵樼洏瀹归噺
+        /// </summary>
+        public double Capacity { get; set; }
+
+        /// <summary>
+        /// 閫傜敤鐗╂枡缂栫爜/宸ヨ壓鍨嬪彿
+        /// </summary>
+        public List<ProductTypes> ProductType { get; set; } = new List<ProductTypes>();
+    }
+
+    public class ProcessCodes
+    {
+        /// <summary>
+        /// 宸ュ簭
+        /// </summary>
+        public string ProcessCode { get; set; }
+    }
+
+    public class ProductTypes
+    {
+        /// <summary>
         /// 閫傜敤鐗╂枡缂栫爜/宸ヨ壓鍨嬪彿
         /// </summary>
         public string ProductType { get; set; }
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/TrayCellUnbindDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayCellUnbindDto.cs
similarity index 100%
rename from Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/TrayCellUnbindDto.cs
rename to Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayCellUnbindDto.cs
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/TrayCellsStatusDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayCellsStatusDto.cs
similarity index 100%
rename from Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/TrayCellsStatusDto.cs
rename to Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayCellsStatusDto.cs
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/TrayUnbindDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayUnbindDto.cs
similarity index 100%
rename from Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/TrayUnbindDto.cs
rename to Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/CellState/TrayUnbindDto.cs
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs
index 58c02df..15c9ae6 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/Dt_EquipmentProcess.cs
@@ -64,7 +64,7 @@
     /// <summary>
     /// 琛ㄧず宸ヨ壓璺嚎涓婅澶囧弬鏁颁俊鎭殑妯″瀷銆�
     /// </summary>
-    public class EquipmentParameterInfo
+    public class EBParameterInfo
     {
         /// <summary>
         /// 鍙傛暟缂栫爜銆�
@@ -127,4 +127,38 @@
         [Required(ErrorMessage = "璁惧鍙傛暟淇℃伅鏄惁鍙敤鏄繀濉」銆�")]
         public string EquipmentAvailabilityFlag { get; set; }
     }
+
+
+    public class ResponseEqptRunDto : BasicResult
+    {
+        /// <summary>
+        /// 浜у搧鍚嶇О
+        /// </summary>
+        public string ProductDesc { get; set; }
+
+        /// <summary>
+        /// 棣栦欢鏁伴噺
+        /// </summary>
+        public string FirstArticleNum { get; set; }
+
+        /// <summary>
+        /// 璋冩満鏁伴噺
+        /// </summary>
+        public string DebugNum { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟鐗堟湰淇℃伅
+        /// </summary>
+        public string ParamVersion { get; set; }
+
+        /// <summary>
+        /// 鏄惁闇�瑕佽鍙栧弬鏁�
+        /// </summary>
+        public bool ParamRefreshFlag { get; set; }
+
+        /// <summary>
+        /// 鍙傛暟淇℃伅
+        /// </summary>
+        public List<EBParameterInfo> ParameterInfo { get; set; }
+    }
 }
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs
index f209253..5881e68 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResponeAgingInputDto.cs
@@ -6,6 +6,9 @@
 
 namespace WIDESEA_DTO.MOM
 {
+    /// <summary>
+    /// 鍏ュ簱
+    /// </summary>
     public class ResponeAgingInputDto : BasicResult
     {
         /// <summary>
@@ -19,8 +22,23 @@
         public string BindCode { get; set; }
 
         /// <summary>
+        /// 鐢熶骇浜х嚎
+        /// </summary>
+        public string ProductionLine { get; set; }
+
+        /// <summary>
         /// 鍏宠仈宸ュ簭杩斿洖鏃堕棿锛岃褰曟敞娑叉垨闈欑疆鏃堕暱銆�
         /// </summary>
         public string LinedProcessFeedbackTime { get; set; }
+
+        /// <summary>
+        /// 鐗瑰緛鍙傛暟杩斿洖(闈欑疆鏃堕暱)
+        /// </summary>
+        public string SpecialParameterDuration { get; set; }
+
+        /// <summary>
+        /// 鍗曚綅
+        /// </summary>
+        public string UomCode { get; set; }
     }
 }
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
index 8cc81fc..c63e2d2 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
@@ -124,7 +124,7 @@
     Task<WebResponseContent> CompleteAsync(int taskNum);
 
     /// <summary>
-    /// 璇锋眰浠诲姟
+    /// 璇锋眰浠诲姟宸烽亾
     /// </summary>
     /// <param name="position"></param>
     /// <param name="areaCode"></param>
@@ -134,6 +134,20 @@
     Task<WebResponseContent> RequestTaskAsync(RequestTaskDto input);
 
     /// <summary>
+    /// 璇锋眰浠诲姟璐т綅
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input);
+
+    /// <summary>
+    /// 璇锋眰绌烘墭鐩樹换鍔�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    Task<WebResponseContent> RequestTrayInTaskAsync(RequestTaskDto input);
+
+    /// <summary>
     /// 璇锋眰鎵樼洏浠诲姟
     /// </summary>
     /// <param name="position">鐩爣浣嶇疆</param>
@@ -141,5 +155,14 @@
     /// <param name="areaCode">鍖哄煙缂栫爜</param>
     /// <param name="roadways">宸烽亾鍒楄〃</param>
     /// <returns>杩斿洖缁撴灉闆�</returns>
-    Task<WebResponseContent> RequestTrayTaskAsync(string position, int tag, string areaCode, List<string> roadways);
+    Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> roadways);
+
+
+    /// <summary>
+    /// 浠诲姟鐘舵�佷慨鏀�
+    /// </summary>
+    /// <param name="input">璇锋眰鏁版嵁</param>
+    /// <returns></returns>
+    Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState);
+
 }
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs
index cdefd49..bd089e8 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/BasicModel/DtStockInfo.cs
@@ -41,6 +41,15 @@
         [SugarColumn(IsNullable = true, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
 
+        /// <summary>
+        /// 鍏宠仈宸ュ簭杩斿洖鏃堕棿锛堟敞娑瞈闈欑疆鏃堕暱锛�
+        /// </summary>
+        public string LinedProcessFeedbackTime { get; set; }
+
+        /// <summary>
+        /// 鐗瑰緛鍙傛暟杩斿洖(闈欑疆鏃堕暱)
+        /// </summary>
+        public string SpecialParameterDuration { get; set; }
 
         /// <summary>
         /// 鍖哄煙缂栫爜
@@ -59,7 +68,7 @@
         /// 璐т綅鏁版嵁
         /// </summary>
         [SugarColumn(ColumnName = "LocationInfo")]
-        [Navigate(NavigateType.OneToOne,nameof(LocationCode), nameof(DtLocationInfo.LocationCode))]
+        [Navigate(NavigateType.OneToOne, nameof(LocationCode), nameof(DtLocationInfo.LocationCode))]
         public DtLocationInfo? LocationInfo { get; set; }
     }
-}
+}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/MOM/ProductionModel.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/MOM/ProductionModel.cs
new file mode 100644
index 0000000..082f39f
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/MOM/ProductionModel.cs
@@ -0,0 +1,79 @@
+锘縰sing Newtonsoft.Json;
+using SqlSugar;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 琛ㄧず鐢熶骇杩囩▼涓殑鏂欐灞炴�у拰鐩稿叧宸ュ簭淇℃伅鐨勬ā鍨嬨��
+    /// </summary>
+    [SugarTable("ProductionModel", "鏂欐灞炴��")]
+    public class ProductionModel : BaseEntity
+    {
+        /// <summary>
+        /// 澶�  娉�:涓婚敭锛岃嚜鍔ㄥ闀�
+        /// </summary>
+        [SugarColumn(ColumnName = "Id", IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭锛岃嚜鍔ㄥ闀�")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 鏂欐灞炴�э紝鐢ㄤ簬鏍囪瘑鏂欐鐨勫敮涓�灞炴�с��
+        /// </summary>
+        [SugarColumn(ColumnName = "TrayBarcodeProperty", ColumnDescription = "鏂欐灞炴��", IsNullable = false)]
+        public string TrayBarcodeProperty { get; set; }
+
+        /// <summary>
+        /// 宸ュ簭闆嗗悎锛屽寘鍚墍鏈夌浉鍏崇殑宸ュ簭浠g爜銆�
+        /// </summary>
+        [SugarColumn(ColumnName = "ProcessCodes", ColumnDescription = "宸ュ簭闆嗗悎", IsNullable = false, Length = int.MaxValue)]
+        public string ProcessCodes { get; set; }
+
+        /// <summary>
+        /// 閫傜敤鐗╂枡缂栫爜/宸ヨ壓鍨嬪彿闆嗗悎锛屽寘鍚墍鏈夌浉鍏崇殑鐗╂枡缂栫爜鎴栧伐鑹哄瀷鍙枫��
+        /// </summary>
+        [SugarColumn(ColumnName = "ProductTypes", ColumnDescription = "閫傜敤鐗╂枡缂栫爜", IsNullable = false, Length = int.MaxValue)]
+        public string ProductTypes { get; set; }
+
+        /// <summary>
+        /// 鎵樼洏瀹归噺锛岃〃绀烘枡妗嗗彲浠ユ壙杞界殑鏈�澶х墿鍝佹暟閲忋��
+        /// </summary>
+        [SugarColumn(ColumnName = "Capacity", ColumnDescription = "鎵樼洏瀹归噺", IsNullable = false)]
+        public int Capacity { get; set; }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃伐搴忛泦鍚堬紝鍙嶅簭鍒楀寲JSON瀛楃涓蹭负List<ProcessCodes>銆�
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public List<ProcessCodesDTO> GetProcessCodes
+        {
+            get { return JsonConvert.DeserializeObject<List<ProcessCodesDTO>>(ProcessCodes); }
+            set { ProcessCodes = JsonConvert.SerializeObject(value); }
+        }
+
+        /// <summary>
+        /// 鑾峰彇鎴栬缃�傜敤鐗╂枡缂栫爜/宸ヨ壓鍨嬪彿闆嗗悎锛屽弽搴忓垪鍖朖SON瀛楃涓蹭负List<string>銆�
+        /// </summary>
+        [SugarColumn(IsIgnore = true)]
+        public List<ProductTypesDTO> GetProductTypes
+        {
+            get { return JsonConvert.DeserializeObject<List<ProductTypesDTO>>(ProductTypes); }
+            set { ProductTypes = JsonConvert.SerializeObject(value); }
+        }
+    }
+
+    public class ProcessCodesDTO
+    {
+        /// <summary>
+        /// 宸ュ簭
+        /// </summary>
+        public string ProcessCode { get; set; }
+    }
+
+    public class ProductTypesDTO
+    {
+        /// <summary>
+        /// 閫傜敤鐗╂枡缂栫爜/宸ヨ壓鍨嬪彿
+        /// </summary>
+        public string ProductType { get; set; }
+    }
+}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs
index d880a04..b33d0ed 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs
@@ -53,13 +53,12 @@
         {
             input.SessionId = Guid.NewGuid().ToString();
             input.EmployeeNo = "T00001";
-            input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); ;
+            input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); 
             var inputJson = input.ToDictionary();
             var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/AgingOutput", inputJson);
             content.OK(data: x);
             LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, $"\r\r--------------------------------------");
             LogFactory.GetLog("闈欑疆闄堝寲鍑哄簱锛堟暣鎵樼洏锛�").Info(true, x);
-            content.OK();
         }
         catch (Exception err)
         {
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs
index 5ed91fb..2a36c02 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs
@@ -30,8 +30,8 @@
             var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/ProcessApply", inputIson);
             if (x != null)
             {
-                var ResultProcess = JsonConvert.DeserializeObject<ResultProcessApply>(x);
-                content.OK(data: ResultProcess);
+                //var ResultProcess = JsonConvert.DeserializeObject<ResultProcessApply>(x);
+                content.OK(data: x);
             }
             LogFactory.GetLog("宸ヨ壓璺嚎鐢宠").Info(true, $"\r\r--------------------------------------");
             LogFactory.GetLog("宸ヨ壓璺嚎鐢宠").Info(true, x);
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/Unbind/UnbindService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/Unbind/UnbindService.cs
index 18f563a..f4f8c6e 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/Unbind/UnbindService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/Unbind/UnbindService.cs
@@ -26,6 +26,8 @@
         try
         {
             input.SessionId = Guid.NewGuid().ToString();
+            input.Software = "WMS";
+            input.EquipmentCode = "ECH001-B";
             input.EmployeeNo = "T00001";
             input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
             var inputJson = input.ToDictionary();
@@ -53,8 +55,8 @@
         try
         {
             input.SessionId = Guid.NewGuid().ToString();
-            input.Software = "闄堝寲鏈�";
-            input.EquipmentCode = "P1K10040";
+            input.Software = "WMS";
+            input.EquipmentCode = "ECH001-B";
             input.EmployeeNo = "T00001";
             input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ");
             var inputJson = input.ToDictionary();
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/IProductionRepository.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/IProductionRepository.cs
new file mode 100644
index 0000000..62463d0
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/IProductionRepository.cs
@@ -0,0 +1,12 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_StorageBasicRepository
+{
+    public interface IProductionRepository : IRepository<ProductionModel>
+    {
+    }
+}
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/ProductionRepository.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/ProductionRepository.cs
new file mode 100644
index 0000000..a58f43f
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/Production/ProductionRepository.cs
@@ -0,0 +1,15 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_StorageBasicRepository
+{
+    public class ProductionRepository : RepositoryBase<ProductionModel>, IProductionRepository
+    {
+        public ProductionRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/IProductionService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/IProductionService.cs
new file mode 100644
index 0000000..edb2e8d
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/IProductionService.cs
@@ -0,0 +1,5 @@
+锘縩amespace WIDESEA_StorageBasicServices;
+
+public interface IProductionService : IService<ProductionModel>
+{
+}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/ProductionService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/ProductionService.cs
new file mode 100644
index 0000000..2724493
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Production/ProductionService.cs
@@ -0,0 +1,10 @@
+锘縰sing WIDESEA_StorageBasicRepository;
+
+namespace WIDESEA_StorageBasicServices;
+
+public class ProductionService : ServiceBase<ProductionModel, IProductionRepository>, IProductionService
+{
+    public ProductionService(IProductionRepository BaseDal) : base(BaseDal)
+    {
+    }
+}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index 4529a37..dbe3053 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -34,6 +34,7 @@
     private readonly IProcessApplyService _processApplyService; //宸ヨ壓璺嚎
     private readonly IDt_AreaInfoRepository _areaInfoRepository; //鍖哄煙
     private readonly IAgingInOrOutInputService _agingInOrOutInputService; //闈欑疆\闄堝寲
+    private readonly IProductionRepository _productionRepository; //鐢熶骇
 
     public Dt_TaskService(IDt_TaskRepository BaseDal,
                                 IUnitOfWorkManage unitOfWorkManage,
@@ -54,7 +55,8 @@
                                 IProcessApplyService processApplyService,
                                 IDt_AreaInfoRepository areaInfoRepository,
                                 IAgingInOrOutInputService agingInOrOutInputService,
-                                IStockInfoDetailRepository stockInfoDetailRepository) : base(BaseDal)
+                                IStockInfoDetailRepository stockInfoDetailRepository,
+                                IProductionRepository productionRepository) : base(BaseDal)
     {
         _unitOfWorkManage = unitOfWorkManage;
         _outOrderRepository = outOrderRepository;
@@ -75,111 +77,13 @@
         _areaInfoRepository = areaInfoRepository;
         _agingInOrOutInputService = agingInOrOutInputService;
         _stockInfoDetailRepository = stockInfoDetailRepository;
+        _productionRepository = productionRepository;
     }
 
     #region 澶栭儴鎺ュ彛鏂规硶
 
     #region 鍑哄簱浠诲姟瀹屾垚
 
-    /// <summary>
-    /// 鍑哄簱浠诲姟瀹屾垚
-    /// </summary>
-    /// <param name="saveModel">浠诲姟鏁版嵁鍚堥泦</param>
-    /// <returns>杩斿洖缁撴灉闆�</returns>
-    //public async Task<WebResponseContent> CompleteStackTaskAsync(Dt_Task task, DtStockInfo stock)
-    //{
-    //    WebResponseContent content = new WebResponseContent();
-    //    try
-    //    {
-    //        if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound)
-    //        {
-    //            var process = await SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>()
-    //                 .FirstAsync(x => x.EquipmentName == task.Roadway);
-    //            EquipmentParameterInfo info = JsonConvert.DeserializeObject<EquipmentParameterInfo>(process.ProcessValue);
-    //            AgingOutputDto agingOutputDto = new AgingOutputDto()
-    //            {
-    //                OpFlag = 1,
-    //                EquipmentCode = stock.LocationInfo.RoadwayNo,
-    //                TrayBarcode = stock.PalletCode,
-    //                SerialNos = stock.StockInfoDetails.Select(x => new SerialNoOutDto()
-    //                {
-    //                    SlotNo = x.OrderNo.ToInt32(),
-    //                    SerialNo = x.SerialNumber,
-    //                    SerialNoResult = true,
-    //                    ParameterInfo = new List<ParameterInfo>()
-    //                    {
-    //                        new ParameterInfo()
-    //                        {
-    //                            LowerLomit =info.LowerControlLimit,
-    //                            UpperLimit = info.UpperControlLimit,
-    //                            ParameterResult = info.EquipmentAvailabilityFlag,
-    //                            ParameterCode = info.ParameterCode,
-    //                            ParameterDesc = info.Description,
-    //                            TargetValue = info.TargetValue,
-    //                            Value = info.TargetValue,
-    //                            DefectCode = info.UOMCode
-    //                        }
-    //                    }
-    //                }).ToList()
-    //            };
-    //            content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto);
-    //            var result = JsonConvert.DeserializeObject<BasicResult>(content.ToString());
-    //            if (!result.Success)
-    //            {
-    //                throw new Exception(result.MOMMessage);
-    //            }
-    //        }
-    //        // 鏇存柊搴撳瓨鐘舵��
-    //        var loation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
-    //        var detail = _stockInfoDetailRepository.QueryData(x => x.StockId == stock.Id);
-
-    //        // 璁剧疆搴撲綅鐘舵�佷负绌洪棽
-    //        loation.LocationStatus = LocationEnum.Free.ObjToInt();
-
-    //        // 鏇存柊浠诲姟鐘舵��
-    //        task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
-    //        task.CurrentAddress = task.NextAddress;
-    //        task.NextAddress = task.TargetAddress;
-
-    //        LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍫嗗灈鏈哄嚭搴撳畬鎴�", "鏇存柊搴撳瓨鐘舵�佷笌浠诲姟鐘舵��");
-
-    //        // 浜嬪姟澶勭悊
-    //        // 寮�濮嬩簨鍔�
-    //        _unitOfWorkManage.BeginTran();
-    //        // 鍒犻櫎搴撳瓨淇℃伅
-    //        var isStockUpdated = _stockInfoRepository.DeleteDataById(stock.Id);
-    //        // 鍒犻櫎搴撳瓨淇℃伅
-    //        var isStockDetailUpdated = _stockInfoDetailRepository.DeleteDataByIds(detail.Select(x => (object)x.Id).ToArray());
-    //        // 鍒犻櫎浠诲姟淇℃伅
-    //        var isTaskUpdated = BaseDal.DeleteDataById(task.TaskId);
-
-    //        // 濡傛灉搴撳瓨淇℃伅鍜屼换鍔′俊鎭兘鏇存柊鎴愬姛
-    //        if (isStockUpdated && isTaskUpdated && isStockDetailUpdated)
-    //        {
-    //            // 璁板綍鏃ュ織
-    //            LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍫嗗灈鏈哄嚭搴撳畬鎴�", $"浜嬪姟澶勭悊瀹屾垚锛屽簱瀛樼姸鎬佹洿鏂帮細{isStockUpdated}锛屼换鍔$姸鎬佹洿鏂�:{isTaskUpdated}");
-    //            // 鎻愪氦浜嬪姟
-    //            _unitOfWorkManage.CommitTran();
-    //            // 杩斿洖鎴愬姛缁撴灉
-    //            return content.OK("浠诲姟瀹屾垚鎴愬姛");
-    //        }
-    //        else
-    //        {
-    //            // 璁板綍鏃ュ織
-    //            LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍫嗗灈鏈哄嚭搴撳畬鎴�", $"浜嬪姟澶勭悊澶辫触锛屽簱瀛樼姸鎬佹洿鏂帮細{isStockUpdated}锛屼换鍔$姸鎬佹洿鏂�:{isTaskUpdated}");
-    //            // 鍥炴粴浜嬪姟
-    //            _unitOfWorkManage.RollbackTran();
-    //            // 杩斿洖澶辫触缁撴灉
-    //            return content.Error("浠诲姟鎴栧簱瀛樻洿鏂板け璐�");
-    //        }
-    //    }
-    //    catch (Exception err)
-    //    {
-    //        LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, $"绯荤粺寮傚父锛屽紓甯镐俊鎭細{err.Message}", "");
-    //        Console.WriteLine(err.Message);
-    //        return content.Error(err.Message);
-    //    }
-    //}
 
     public async Task<WebResponseContent> CompleteStackTaskAsync(Dt_Task task, DtStockInfo stock)
     {
@@ -190,7 +94,7 @@
             {
                 var process = await SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>()
                     .FirstAsync(x => x.EquipmentName == task.Roadway);
-                var info = JsonConvert.DeserializeObject<EquipmentParameterInfo>(process.ProcessValue);
+                var info = JsonConvert.DeserializeObject<ResponseEqptRunDto>(process.ProcessValue);
 
                 var agingOutputDto = MapToAgingOutputDto(stock, info);
                 content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto);
@@ -206,7 +110,7 @@
                 await UpdateLocationAsync(loc);
                 await DeleteStockInfoAsync(stock.Id);
                 await DeleteStockInfoDetailsAsync(stock.StockInfoDetails);
-                await DeleteTaskAsync(task.TaskId);
+                //await DeleteTaskAsync(task.TaskId);
             });
 
             return content.OK("浠诲姟瀹屾垚鎴愬姛");
@@ -218,39 +122,38 @@
         }
     }
 
-    private AgingOutputDto MapToAgingOutputDto(DtStockInfo stock, EquipmentParameterInfo info)
+    private AgingOutputDto MapToAgingOutputDto(DtStockInfo stock, ResponseEqptRunDto info)
     {
+        // TODO Value鍊兼牴鎹甅OM涓嬪彂鐨勯潤缃椂闂村埌褰撳墠鏃堕棿鐨勫垎閽熸暟
         return new AgingOutputDto
         {
             OpFlag = 1,
-            EquipmentCode = stock.LocationInfo.RoadwayNo,
+            Software = "WMS",
+            EquipmentCode = "ECH001-B",
             TrayBarcode = stock.PalletCode,
             SerialNos = stock.StockInfoDetails.Select(x => new SerialNoOutDto
             {
                 SlotNo = x.OrderNo.ToInt32(),
                 SerialNo = x.SerialNumber,
                 SerialNoResult = true,
-                ParameterInfo = new List<ParameterInfo>
-            {
-                new ParameterInfo
+                ParameterInfo = info.ParameterInfo.Select(y => new ParameterInfo()
                 {
-                    LowerLomit = info.LowerControlLimit,
-                    UpperLimit = info.UpperControlLimit,
-                    ParameterResult = info.EquipmentAvailabilityFlag,
-                    ParameterCode = info.ParameterCode,
-                    ParameterDesc = info.Description,
-                    TargetValue = info.TargetValue,
-                    Value = info.TargetValue,
-                    DefectCode = info.UOMCode
-                }
-            }
+                    LowerLomit = y.LowerControlLimit,
+                    UpperLimit = y.UpperControlLimit,
+                    ParameterResult = y.EquipmentAvailabilityFlag,
+                    ParameterCode = y.ParameterCode,
+                    ParameterDesc = y.Description,
+                    TargetValue = y.TargetValue,
+                    Value = ( DateTime.Parse(stock.LinedProcessFeedbackTime, null, System.Globalization.DateTimeStyles.RoundtripKind).ToLocalTime() - stock.CreateDate).TotalMinutes.ToString(),
+                    DefectCode = y.UOMCode
+                }).ToList()
             }).ToList()
         };
     }
 
     private void ValidateResponse(WebResponseContent content)
     {
-        var result = JsonConvert.DeserializeObject<BasicResult>(content.ToString());
+        var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString());
         if (!result.Success)
         {
             throw new Exception(result.MOMMessage);
@@ -262,10 +165,10 @@
         var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
         var details = _stockInfoDetailRepository.QueryData(x => x.StockId == stock.Id);
 
-        location.LocationStatus = LocationEnum.Free.ObjToInt();
-        task.TaskState = TaskOutStatusEnum.OutFinish.ObjToInt();
-        task.CurrentAddress = task.NextAddress;
-        task.NextAddress = task.TargetAddress;
+        location.LocationStatus = (int)LocationEnum.Free;
+        task.TaskState = (int)TaskOutStatusEnum.OutFinish;
+        //task.CurrentAddress = task.NextAddress;
+        //task.NextAddress = task.TargetAddress;
 
         LogFactory.GetLog("浠诲姟瀹屾垚").Info(true, "鏇存柊搴撳瓨鐘舵�佷笌浠诲姟鐘舵��");
         return (location, task);
@@ -346,7 +249,7 @@
     #region 鍏ュ簱浠诲姟瀹屾垚
 
     /// <summary>
-    /// 鍏ュ簱浠诲姟瀹屾垚
+    /// 瀹屾垚鍏ュ簱浠诲姟
     /// </summary>
     /// <param name="task">浠诲姟鏁版嵁鍚堥泦</param>
     /// <returns>杩斿洖缁撴灉闆�</returns>
@@ -522,10 +425,14 @@
                 .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo })
                 .ToList(),
             TrayBarcode = task.PalletCode,
-            OpFlag = 1
+            OpFlag = 1,
+            EquipmentCode = "ECH001-B",
+            Software = "WMS"
         };
         var result = _agingInOrOutInputService.GetOCVInputAsync(agingInputDto).Result;
-        stock.Remark = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()).LinedProcessFeedbackTime;
+        var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString());
+        stock.LinedProcessFeedbackTime = respone.LinedProcessFeedbackTime;
+        stock.SpecialParameterDuration = respone.SpecialParameterDuration;
 
         // 璁板綍鏃ュ織
         LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "鍏ュ簱浠诲姟瀹屾垚", $"璐т綅鍦板潃锛歿task.TargetAddress},淇敼鍚庤揣浣嶆暟鎹細{locationInf}");
@@ -559,7 +466,7 @@
         LogFactory.GetLog("浠诲姟瀹屾垚").InfoFormat(true, "楠岃瘉浠诲姟鏄惁瀛樺湪", JsonConvert.SerializeObject(task));
 
         // 楠岃瘉搴撳瓨鏄惁瀛樺湪
-        var stock = await _stockInfoRepository.QueryFirstAsync(x => x.PalletCode == task.PalletCode);
+        var stock = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode);
 
         // 鏍规嵁浠诲姟绫诲瀷璋冪敤鐩稿簲鐨勫畬鎴愪换鍔℃柟娉�
         switch (task.TaskType)
@@ -584,7 +491,7 @@
     #region 璇锋眰浠诲姟鍏ュ簱
 
     /// <summary>
-    /// 璇锋眰浠诲姟
+    /// 璇锋眰浠诲姟宸烽亾
     /// </summary>
     /// <param name="input">璇锋眰妯″瀷</param>
     /// <returns>鍖呭惈浠诲姟淇℃伅鐨勫搷搴斿唴瀹�</returns>
@@ -595,10 +502,34 @@
 
         try
         {
+            // 璋冪敤BaseDal.QueryFirstAsync鏂规硶锛屾煡璇换鍔�
+            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
+            if (task != null)
+            {
+                //if (task.TaskState == (int)TaskInStatusEnum.InNew)
+                {
+                    // 鍒涘缓WMS浠诲姟
+                    WMSTaskDTO taskDTO = new WMSTaskDTO()
+                    {
+                        TaskNum = task.TaskNum.Value,
+                        Grade = 1,
+                        PalletCode = task.PalletCode,
+                        RoadWay = task.Roadway,
+                        SourceAddress = task.SourceAddress,
+                        TargetAddress = task.Roadway,
+                        TaskState = task.TaskState.Value,
+                        Id = 0,
+                        TaskType = task.TaskType,
+                    };
+                    return content.OK(data: taskDTO);
+                }
+            }
             // 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪��
             TrayCellsStatusDto trayCells = new TrayCellsStatusDto()
             {
-                TrayBarcode = input.PalletCode
+                Software = "WMS",
+                TrayBarcode = input.PalletCode,
+                EquipmentCode = "ECH001-B"
             };
 
             // 璋冪敤GetTrayCellStatusAsync鏂规硶锛岃幏鍙栨暣鐩樼數鑺�
@@ -608,8 +539,19 @@
 
             // 娣诲姞缁勭洏淇℃伅
             // 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
-            var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.ToString());
+            var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString());
+            if (result.SerialNos.Count <= 0)
+                return content.Error(result.MOMMessage);
+
+            // TODO 鑾峰彇鏈湴鏂欐灞炴�т笌鏁寸洏鐢佃姱灞炴�ц幏鍙栫殑鍊艰繘琛屽姣旓紝濡傛灉涓�鑷村垯缁х画锛屽惁鍒欒繑鍥為敊璇俊鎭�
+            var productions = await _productionRepository.QueryDataAsync(x => result.TrayBarcodePropertys.Select(x => x.TrayBarcodeProperty).ToList().Contains(x.TrayBarcodeProperty));
+            if (productions.Count <= 0)
+                return content.Error("鏂欐灞炴�т笉瀛樺湪");
+
+            // 璋冪敤CreateBoxingInfo鏂规硶锛屽垱寤虹粍鐩樹俊鎭�
+
             var boxing = await CreateBoxingInfo(result, input.PalletCode);
+            if (boxing == null) return content.Error("缁勭洏澶辫触");
 
             // 璋冪敤GetProcessApplyAsync鏂规硶锛岃幏鍙栧伐鑹鸿矾绾�
             ProcessApplyDto process = await GetProcessApplyAsync(result);
@@ -617,13 +559,18 @@
             // 濡傛灉process涓簄ull锛屽垯杩斿洖content
             if (process == null) return content;
 
-            // 璋冪敤GetProcessResponseAsync鏂规硶锛岃幏鍙栧伐鑹哄搷搴�
-            var processResponse = await GetProcessResponseAsync(process, input.Position);
+            // 璋冪敤_processApplyService.GetProcessApplyAsync鏂规硶锛岃幏鍙栧伐鑹虹敵璇�
+            content = await _processApplyService.GetProcessApplyAsync(process);
 
-            // 璋冪敤BaseDal.QueryFirstAsync鏂规硶锛屾煡璇换鍔�
-            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
-            // 濡傛灉task涓嶄负null锛屽垯璋冪敤UpdateExistingTask鏂规硶锛屾洿鏂颁换鍔★紱鍚﹀垯璋冪敤CreateNewTask鏂规硶锛屽垱寤烘柊浠诲姟
-            content = task != null ? await UpdateExistingTask(input, task) : await CreateNewTask(processResponse, input);
+            // 濡傛灉鐘舵�佷负false锛屽垯杩斿洖null
+            if (!content.Status) return content.Error("宸ヨ壓鐢宠澶辫触");
+
+            //// 璋冪敤GetProcessResponseAsync鏂规硶锛岃幏鍙栧伐鑹哄搷搴�
+            //var processResponse = await GetProcessResponseAsync(process, input.Position);
+
+            List<string> strings = input.Position == "1088" ? new List<string>() { "CHSC01" } : new List<string>() { "JZSC01" };
+            // 璋冪敤CreateNewTask鏂规硶锛屽垱寤烘柊浠诲姟
+            content =  await CreateNewTask(input, strings);
             if (content.Status)
             {
                 var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing);
@@ -638,6 +585,70 @@
 
         // 杩斿洖content
         return content;
+    }
+
+    /// <summary>
+    /// 鏇存柊浠诲姟璐т綅
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
+            if (task == null)
+                return content.Error($"鏆傛湭鎵惧埌銆恵input.PalletCode}銆戠殑浠诲姟");
+
+            return content = await UpdateExistingTask(input, task);
+
+        }
+        catch (Exception err)
+        {
+
+            throw;
+        }
+    }
+
+    /// <summary>
+    /// 绌烘墭鐩樺叆搴撶敵璇�
+    /// </summary>
+    /// <param name="input"></param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> RequestTrayInTaskAsync(RequestTaskDto input)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+
+            // 璋冪敤BaseDal.QueryFirstAsync鏂规硶锛屾煡璇换鍔�
+            var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode);
+            if (task != null && task.TaskState == (int)TaskInStatusEnum.InNew)
+            {
+                // 鍒涘缓WMS浠诲姟
+                WMSTaskDTO taskDTO = new WMSTaskDTO()
+                {
+                    TaskNum = task.TaskNum.Value,
+                    Grade = 1,
+                    PalletCode = task.PalletCode,
+                    RoadWay = task.Roadway,
+                    SourceAddress = task.SourceAddress,
+                    TargetAddress = task.Roadway,
+                    TaskState = task.TaskState.Value,
+                    Id = 0,
+                    TaskType = task.TaskType,
+                };
+                return content.OK(data: task);
+            }
+
+            return await CreateNewTask(input, null, 1);
+        }
+        catch (Exception)
+        {
+
+            throw;
+        }
     }
 
     // 鑾峰彇鎵樼洏鍗曞厓鏍肩姸鎬�
@@ -671,6 +682,8 @@
         // 鍒涘缓涓�涓狿rocessApplyDto瀵硅薄锛屽苟璧嬪��
         return new ProcessApplyDto()
         {
+            EquipmentCode = "ECH001-B",
+            Software = "WMS",
             //WipOrderNo = result.BindCode,
             SerialNos = content.SerialNos.Select(item => new SerialNos
             {
@@ -697,13 +710,13 @@
         {
             case "1088":
                 return SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>()
-                    .Where(x => x.EquipmentType == "闄堝寲" && x.WipOrderNo == apply.WipOrderNo && x.ProductDesc == apply.ProductNo)
+                    .Where(x => x.EquipmentType == "闄堝寲" && x.WipOrderNo == apply.WipOrderNo || x.ProductDesc == apply.ProductNo)
                     .ToList();
 
             case "1339":
             case "1406":
                 return SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>()
-                    .Where(x => x.EquipmentType == "闈欑疆" && x.WipOrderNo == apply.WipOrderNo && x.ProductDesc == apply.ProductNo)
+                    .Where(x => x.EquipmentType == "闈欑疆" && x.WipOrderNo == apply.WipOrderNo || x.ProductDesc == apply.ProductNo)
                     .ToList();
 
             default:
@@ -713,104 +726,7 @@
 
     #endregion 璇锋眰浠诲姟鍏ュ簱
 
-    #region 璇锋眰鍑哄簱
-
-    //public async Task<WebResponseContent> RequestTrayTaskAsync(string position, int tag, string areaCdoe,List<string> roadways)
-    //{
-    //    WebResponseContent content = new WebResponseContent();
-    //    try
-    //    {
-    //        // 1==瀹炵洏 2 ==绌虹洏
-    //        if (tag == 1)
-    //        {
-    //            // 鏌ヨ搴撳瓨淇℃伅
-    //            DtStockInfo? stockInfo = _stockInfoRepository.QueryData(x => x.AreaCode == areaCdoe && Convert.ToDateTime(x.Remark) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo)).OrderBy(x => x.CreateDate).FirstOrDefault();
-    //            // 鍒涘缓鏂颁换鍔″疄渚�
-    //            var task = new Dt_Task()
-    //            {
-    //                Grade = 1,
-    //                Roadway = stockInfo.LocationInfo.RoadwayNo,
-    //                TargetAddress = position,
-    //                Dispatchertime = DateTime.Now,
-    //                MaterialNo = "",
-    //                NextAddress = position,
-    //                OrderNo = null,
-    //                PalletCode = stockInfo.PalletCode,
-    //                SourceAddress = stockInfo.LocationCode,
-    //                TaskState = (int)TaskOutStatusEnum.OutNew,
-    //                TaskType = (int)TaskOutboundTypeEnum.Outbound,
-    //                TaskNum = await BaseDal.GetTaskNo(),
-    //                Creater = "Systeam"
-    //            };
-    //            var taskId = await BaseDal.AddDataAsync(task);
-    //            bool isResult = taskId > 0;
-    //            if (isResult)
-    //            {
-    //                WMSTaskDTO taskDTO = new WMSTaskDTO()
-    //                {
-    //                    TaskNum = task.TaskNum.Value,
-    //                    Grade = 1,
-    //                    PalletCode = DateTime.Now.ToString("MMddHHmmss"),
-    //                    RoadWay = task.Roadway,
-    //                    SourceAddress = stockInfo.LocationCode,
-    //                    TargetAddress = task.Roadway,
-    //                    TaskState = (int)TaskOutStatusEnum.OutNew,
-    //                    Id = 0,
-    //                    TaskType = (int)TaskOutboundTypeEnum.OutTray
-    //                };
-    //                stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
-    //                _locationRepository.UpdateData(stockInfo.LocationInfo);
-    //                content.OK(data: taskDTO);
-    //            }
-    //        }
-    //        else
-    //        {
-    //            var stockInfo = _stockInfoRepository.QueryData(x => x.AreaCode == areaCdoe && x.StockInfoDetails.Any(z => z.MaterielCode == "绌烘墭鐩�") && roadways.Contains(x.LocationInfo.RoadwayNo)).OrderBy(x => x.CreateDate).FirstOrDefault();
-    //            // 鍒涘缓鏂颁换鍔″疄渚�
-    //            var task = new Dt_Task
-    //            {
-    //                CurrentAddress = stockInfo.LocationCode,
-    //                Grade = 1,
-    //                Roadway = stockInfo.LocationInfo.RoadwayNo,
-    //                TargetAddress = position,
-    //                Dispatchertime = DateTime.Now,
-    //                MaterialNo = "",
-    //                NextAddress = position,
-    //                OrderNo = null,
-    //                PalletCode = stockInfo.PalletCode,
-    //                SourceAddress = stockInfo.LocationCode,
-    //                TaskState = (int)TaskOutStatusEnum.OutNew,
-    //                TaskType = (int)TaskOutboundTypeEnum.OutTray,
-    //                TaskNum = await BaseDal.GetTaskNo(),
-    //                Creater = "Systeam"
-    //            };
-
-    //            var taskId = await BaseDal.AddDataAsync(task);
-    //            bool isResult = taskId > 0;
-    //            if (isResult)
-    //            {
-    //                WMSTaskDTO taskDTO = new WMSTaskDTO()
-    //                {
-    //                    TaskNum = task.TaskNum.Value,
-    //                    Grade = 1,
-    //                    PalletCode = DateTime.Now.ToString("MMddHHmmss"),
-    //                    RoadWay = task.Roadway,
-    //                    SourceAddress = stockInfo.LocationCode,
-    //                    TargetAddress = task.Roadway,
-    //                    TaskState = (int)TaskOutStatusEnum.OutNew,
-    //                    Id = 0,
-    //                    TaskType = (int)TaskOutboundTypeEnum.OutTray
-    //                };
-    //                content.OK(data: taskDTO);
-    //            }
-    //        }
-    //    }
-    //    catch (Exception ex)
-    //    {
-    //        throw;
-    //    }
-    //    return content;
-    //}
+    #region 璇锋眰鍑哄簱锛堝疄鐩�&绌虹洏锛�
 
     /// <summary>
     /// 璇锋眰鎵樼洏浠诲姟
@@ -820,13 +736,13 @@
     /// <param name="areaCode">鍖哄煙缂栫爜</param>
     /// <param name="roadways">宸烽亾缂栫爜闆嗗悎</param>
     /// <returns>杩斿洖缁撴灉闆�</returns>
-    public async Task<WebResponseContent> RequestTrayTaskAsync(string position, int tag, string areaCode, List<string> roadways)
+    public async Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> roadways)
     {
         WebResponseContent content = new WebResponseContent();
         try
         {
             // 鏍规嵁鎵樼洏绫诲瀷鏌ヨ搴撳瓨淇℃伅
-            DtStockInfo stockInfo = tag == 1
+            DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound
                 ? QueryStockInfoForRealTray(areaCode, roadways)
                 : QueryStockInfoForEmptyTray(areaCode, roadways);
 
@@ -846,7 +762,7 @@
 
             // 鍒涘缓浠诲姟DTO
             WMSTaskDTO taskDTO = CreateTaskDTO(task);
-            if (tag == 1)
+            //if (tag == 1)
             {
                 // 鏇存柊搴撳瓨浣嶇疆鐘舵�佷负涓嶅彲鐢�
                 stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
@@ -860,7 +776,7 @@
         {
             // 璁板綍寮傚父淇℃伅骞舵姏鍑�
             LogFactory.GetLog("璇锋眰鎵樼洏浠诲姟").Error(true, ex);
-            throw;
+            return content.Error(ex.Message);
         }
     }
 
@@ -869,9 +785,12 @@
     /// </summary>
     private DtStockInfo QueryStockInfoForRealTray(string areaCode, List<string> roadways)
     {
-        return _stockInfoRepository.QueryData(x => x.AreaCode == areaCode && Convert.ToDateTime(x.Remark) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo))
+        // TODO鏃堕棿鏍规嵁MOM绯荤粺閰嶇疆鐨勫嚭搴撴椂闂存潵鑾峰彇,鏆傛椂涓嶇煡閬揗OM杩斿洖鐨勬椂闂存槸浠�涔堟墍浠ヨ繖閲屾祴璇曟椂鍊欏湪鏀�
+        return _stockInfoRepository.Db.Queryable<DtStockInfo>().Where(x => x.AreaCode == areaCode && Convert.ToDateTime(x.LinedProcessFeedbackTime) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo))
+                                   .Includes(x => x.LocationInfo)
+                                   .Includes(x => x.StockInfoDetails)
                                    .OrderBy(x => x.CreateDate)
-                                   .FirstOrDefault();
+                                   .First();
     }
 
     /// <summary>
@@ -879,9 +798,11 @@
     /// </summary>
     private DtStockInfo QueryStockInfoForEmptyTray(string areaCode, List<string> roadways)
     {
-        return _stockInfoRepository.QueryData(x => x.AreaCode == areaCode && x.StockInfoDetails.Any(z => z.MaterielCode == "绌烘墭鐩�") && roadways.Contains(x.LocationInfo.RoadwayNo))
+        return _stockInfoRepository.Db.Queryable<DtStockInfo>().Where(x => x.AreaCode == areaCode && x.StockInfoDetails.Any(z => z.MaterielCode == "绌烘墭鐩�") && roadways.Contains(x.LocationInfo.RoadwayNo))
+                                   .Includes(x => x.LocationInfo)
+                                   .Includes(x => x.StockInfoDetails)
                                    .OrderBy(x => x.CreateDate)
-                                   .FirstOrDefault();
+                                   .First();
     }
 
     /// <summary>
@@ -900,8 +821,9 @@
             OrderNo = null,
             PalletCode = stockInfo.PalletCode,
             SourceAddress = stockInfo.LocationCode,
+            CurrentAddress = stockInfo.LocationCode,
             TaskState = (int)TaskOutStatusEnum.OutNew,
-            TaskType = tag == 1 ? (int)TaskOutboundTypeEnum.Outbound : (int)TaskOutboundTypeEnum.OutTray,
+            TaskType = tag == (int)TaskOutboundTypeEnum.Outbound ? (int)TaskOutboundTypeEnum.Outbound : (int)TaskOutboundTypeEnum.OutTray,
             TaskNum = BaseDal.GetTaskNo().Result,
             Creater = "System" // 淇鎷煎啓閿欒
         };
@@ -928,64 +850,82 @@
 
     #endregion 璇锋眰鍑哄簱
 
-    #region 闄堝寲璇锋眰鍑哄簱
+    #region 浠诲姟鐘舵�佹洿鏀�
 
-    // 闄堝寲璇锋眰鍑哄簱
-    public async Task<WebResponseContent> OutTrayByCh(string position)
+    /// <summary>
+    /// 鏇存柊浠诲姟鐘舵��&鍑哄簱瑙g洏
+    /// </summary>
+    /// <param name="taskNum"></param>
+    /// <param name="taskState"></param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState)
     {
         WebResponseContent content = new WebResponseContent();
         try
         {
-            var area = _areaInfoRepository.QueryFirst(x => x.AreaName == "闄堝寲鍖�");
+            var task = await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum);
+            if (task == null)
+                return content.Error("鏈壘鍒颁换鍔�");
 
-            // 鏌ヨ搴撳瓨淇℃伅
-            var stockInfo = _stockInfoRepository.QueryData(x => x.AreaCode == area.AreaCode && Convert.ToDateTime(x.Remark) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).OrderBy(x => x.CreateDate).FirstOrDefault();
-            // 鍒涘缓鏂颁换鍔″疄渚�
-            var task = new Dt_Task()
+            if (taskState == (int)TaskOutStatusEnum.Line_OutFinish)
             {
-                Grade = 1,
-                Roadway = stockInfo.LocationInfo.RoadwayNo,
-                TargetAddress = position,
-                Dispatchertime = DateTime.Now,
-                MaterialNo = "",
-                NextAddress = position,
-                OrderNo = null,
-                PalletCode = stockInfo.PalletCode,
-                SourceAddress = stockInfo.LocationCode,
-                TaskState = (int)TaskOutStatusEnum.OutNew,
-                TaskType = (int)TaskOutboundTypeEnum.OutTray,
-                TaskNum = await BaseDal.GetTaskNo(),
-                Creater = "Systeam"
-            };
-            var taskId = await BaseDal.AddDataAsync(task);
-            bool isResult = taskId > 0;
-            if (isResult)
-            {
-                WMSTaskDTO taskDTO = new WMSTaskDTO()
+                var taskHty = CreateHistoricalTask(task);
+                await _unitOfWorkManage.UseTranAsync(async () =>
                 {
-                    TaskNum = task.TaskNum.Value,
-                    Grade = 1,
-                    PalletCode = DateTime.Now.ToString("MMddHHmmss"),
-                    RoadWay = task.Roadway,
-                    SourceAddress = stockInfo.LocationCode,
-                    TargetAddress = task.Roadway,
-                    TaskState = (int)TaskOutStatusEnum.OutNew,
-                    Id = 0,
-                    TaskType = (int)TaskOutboundTypeEnum.OutTray
-                };
-                stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable;
-                _locationRepository.UpdateData(stockInfo.LocationInfo);
-                content.OK(data: taskDTO);
+                    var asb = await BaseDal.DeleteDataByIdAsync(task.TaskId);
+                    var asbHty = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
+                    if (asb && asbHty)
+                        content.OK();
+                    else
+                        throw new Exception();
+                });
+                content.OK();
+            }
+            else
+            {
+                task.TaskState = taskState;
+                var asb = await BaseDal.UpdateDataAsync(task);
+                if (asb)
+                    content.OK();
+                else
+                    content.Error();
             }
         }
         catch (Exception ex)
         {
-            throw;
+            content.Error(ex.Message);
         }
         return content;
     }
 
-    #endregion 闄堝寲璇锋眰鍑哄簱
+    #endregion
+
+    #region 鍑哄簱瑙g洏
+
+    /// <summary>
+    /// 鍑哄簱瑙g洏鎺ュ彛
+    /// </summary>
+    /// <param name="taskNum"></param>
+    /// <returns></returns>
+    public async Task<WebResponseContent> OutUnblockInterface(int taskNum)
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            var task = await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum);
+            if (task == null)
+                return content.Error("鏈壘鍒颁换鍔�");
+            task.TaskState = (int)TaskOutStatusEnum.Line_OutFinish;
+            var taskHty = CreateHistoricalTask(task);
+        }
+        catch (Exception ex)
+        {
+            content.Error(ex.Message);
+        }
+        return content;
+    }
+
+    #endregion
 
     #endregion 澶栭儴鎺ュ彛鏂规硶
 
@@ -1235,6 +1175,8 @@
                 isUpdateStock = await _stockInfoRepository.AddDataNavAsync(stock);
             }
 
+
+
             // 娣诲姞鍘嗗彶浠诲姟
             var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0;
 
@@ -1349,12 +1291,12 @@
     /// <param name="areaId">鍖哄煙ID</param>
     /// <param name="content">鍝嶅簲鍐呭</param>
     /// <returns></returns>
-    private async Task<WebResponseContent> CreateNewTask(List<Dt_EquipmentProcess> process, RequestTaskDto input)
+    private async Task<WebResponseContent> CreateNewTask(RequestTaskDto input, List<string> process = null, int flag = 0)
     {
         WebResponseContent content = new WebResponseContent();
-        List<string> strings = process.Select(x => x.EquipmentName).ToList();
+
         // 鑾峰彇鐩爣鍦板潃
-        string ToAddress = await GetRoadWayAsync(strings);
+        string ToAddress = await GetRoadWayAsync(process);
 
         // 鍒涘缓鏂颁换鍔″疄渚�
         var task = new Dt_Task
@@ -1370,7 +1312,7 @@
             PalletCode = input.PalletCode,
             SourceAddress = input.Position,
             TaskState = (int)TaskInStatusEnum.InNew,
-            TaskType = (int)TaskTypeEnum.Inbound,
+            TaskType = flag == 0 ? (int)TaskInboundTypeEnum.Inbound : (int)TaskInboundTypeEnum.InTray,
             TaskNum = await BaseDal.GetTaskNo(),
             Creater = "Systeam"
         };
@@ -1387,15 +1329,15 @@
                 // 鍒涘缓WMS浠诲姟
                 WMSTaskDTO taskDTO = new WMSTaskDTO()
                 {
-                    TaskNum = 0,
+                    TaskNum = task.TaskNum.Value,
                     Grade = 1,
-                    PalletCode = DateTime.Now.ToString("MMddHHmmss"),
+                    PalletCode = task.PalletCode,
                     RoadWay = task.Roadway,
-                    SourceAddress = input.Position,
+                    SourceAddress = task.SourceAddress,
                     TargetAddress = task.Roadway,
-                    TaskState = (int)TaskInStatusEnum.InNew,
+                    TaskState = task.TaskState.Value,
                     Id = 0,
-                    TaskType = (int)TaskInboundTypeEnum.Inbound,
+                    TaskType = task.TaskType,
                 };
                 content.OK(data: taskDTO);
             }
@@ -1448,6 +1390,22 @@
     {
         var minGroup = _locationRepository.QueryData(x => process.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free)
             .GroupBy(x => x.RoadwayNo)
+             .OrderByDescending(g => g.Count()) // 鏍规嵁姣忎釜缁勭殑鍏冪礌鏁伴噺鎺掑簭
+             .First(); // 鍙栧嚭鏁伴噺鏈�澶氱殑缁�
+
+        string minRoadwayNo = minGroup.Key; // 鏁伴噺鏈�澶氱殑缁勭殑Key
+
+        return minRoadwayNo;
+    }
+
+    /// <summary>
+    /// 鑾峰彇宸烽亾鎴栫珯鍙�
+    /// </summary>
+    /// <returns></returns>
+    public async Task<string> GetRoadWayAsync(int areaCode)
+    {
+        var minGroup = _locationRepository.QueryData(x => x.AreaId == areaCode && x.LocationStatus == (int)LocationEnum.Free)
+            .GroupBy(x => x.RoadwayNo)
              .OrderBy(g => g.Count()) // 鏍规嵁姣忎釜缁勭殑鍏冪礌鏁伴噺鎺掑簭
              .First(); // 鍙栧嚭鏁伴噺鏈�灏戠殑缁�
 
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/ProductionController.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/ProductionController.cs
new file mode 100644
index 0000000..b6fb594
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/ProductionController.cs
@@ -0,0 +1,17 @@
+锘�
+namespace WIDESEA_WMSServer.Controllers
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class ProductionController : ApiBaseController<IProductionService, ProductionModel>
+    {
+        public ProductionController(IProductionService service) : base(service)
+        {
+        }
+
+        public override ActionResult AddData([FromBody] ProductionModel options)
+        {
+            return base.AddData(options);
+        }
+    }
+}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
index 7583011..c804cb4 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
@@ -1,4 +1,5 @@
 锘縰sing WIDESEA_DTO;
+using static WIDESEA_DTO.RequestTaskDto;
 
 namespace WIDESEA_WMSServer.Controllers;
 
@@ -45,7 +46,7 @@
     }
 
     /// <summary>
-    /// 浠诲姟璇锋眰
+    /// 璇锋眰浠诲姟宸烽亾
     /// </summary>
     /// <param name="input">璇锋眰鏁版嵁</param>
     /// <returns></returns>
@@ -56,13 +57,47 @@
     }
 
     /// <summary>
-    /// 绌烘墭鐩樿姹�
+    /// 璇锋眰浠诲姟璐т綅
     /// </summary>
     /// <param name="input">璇锋眰鏁版嵁</param>
     /// <returns></returns>
-    [HttpPost, AllowAnonymous, Route("RequestTrayTaskAsync")]
-    public async Task<WebResponseContent> RequestTrayTaskAsync([FromBody] string position, int tag, string areaCdoe, List<string> roadways)
+    [HttpPost, AllowAnonymous, Route("RequestLocationTaskAsync")]
+    public async Task<WebResponseContent> UpdateExistingTask([FromBody] RequestTaskDto input)
     {
-        return await Service.RequestTrayTaskAsync(position, tag, areaCdoe, roadways);
+        return await Service.UpdateExistingTask(input);
     }
+
+    /// <summary>
+    /// 绌烘墭鐩樺叆搴撹姹�
+    /// </summary>
+    /// <param name="input">璇锋眰鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("RequestTrayInTaskAsync")]
+    public async Task<WebResponseContent> RequestTrayInTaskAsync([FromBody] RequestTaskDto input)
+    {
+        return await Service.RequestTrayInTaskAsync(input);
+    }
+
+    /// <summary>
+    /// 绌烘墭鐩�&婊$洏鍑哄簱璇锋眰
+    /// </summary>
+    /// <param name="input">璇锋眰鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("RequestTrayOutTaskAsync")]
+    public async Task<WebResponseContent> RequestTrayOutTaskAsync([FromBody] RequestOutTaskDto request)
+    {
+        return await Service.RequestTrayOutTaskAsync(request.Position, request.Tag, request.AreaCdoe, request.Roadways);
+    }
+
+    /// <summary>
+    /// 浠诲姟鐘舵�佷慨鏀�
+    /// </summary>
+    /// <param name="input">璇锋眰鏁版嵁</param>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("UpdateTaskStatus")]
+    public async Task<WebResponseContent> UpdateTaskStatus([FromBody] UpdateStatusDto input)
+    {
+        return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState);
+    }
+
 }
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/GlobalUsing.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/GlobalUsing.cs
index aa2f49c..16392e6 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/GlobalUsing.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/GlobalUsing.cs
@@ -12,4 +12,5 @@
 global using WIDESEA_Model.Models.System;
 global using WIDESEA_Core.Authorization;
 global using WIDESEA_Core.Utilities;
-global using WIDESEA_Model;
\ No newline at end of file
+global using WIDESEA_Model;
+global using WIDESEA_StorageBasicServices;
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj.user b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj.user
index 8814900..c3bce0e 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj.user
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/WIDESEA_WMSServer.csproj.user
@@ -1,8 +1,8 @@
 锘�<?xml version="1.0" encoding="utf-8"?>
 <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <PropertyGroup>
-    <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID>
-    <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath>
+    <Controller_SelectedScaffolderID>ApiControllerEmptyScaffolder</Controller_SelectedScaffolderID>
+    <Controller_SelectedScaffolderCategoryPath>root/Common/Api</Controller_SelectedScaffolderCategoryPath>
     <NameOfLastUsedPublishProfile>D:\Git\BaiBuLiKu\Code Management\WMS\WIDESEA_WMSServer\WIDESEA_WMSServer\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile>
   </PropertyGroup>
 </Project>
\ No newline at end of file

--
Gitblit v1.9.3