¶Ô±ÈÐÂÎļþ |
| | |
| | | |
| | | CodeManagement/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.444.19527/CodeChunks.db |
| | | CodeManagement/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.444.19527/CodeChunks.db-shm |
| | | CodeManagement/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.444.19527/CodeChunks.db-wal |
| | | CodeManagement/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.444.19527/SemanticSymbols.db |
| | | CodeManagement/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.444.19527/SemanticSymbols.db-shm |
| | | CodeManagement/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/CopilotIndices/17.13.444.19527/SemanticSymbols.db-wal |
| | | CodeManagement/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/87de0d9a-307b-4c51-93b4-45670f0ff4f3.vsidx |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/LogLibrary.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/LogLibrary.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/LogLibrary.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/LogLibrary.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/LogLibrary.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/LogLibrary/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/Debug/net6.0/WIDESEA_BusinessesRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/WIDESEA_BusinessesRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/WIDESEA_BusinessesRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessesRepository/obj/WIDESEA_BusinessesRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/Debug/net6.0/WIDESEA_BusinessServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/WIDESEA_BusinessServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/WIDESEA_BusinessServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_BusinessServices/obj/WIDESEA_BusinessServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/Debug/net6.0/WIDESEA_Cache.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/Debug/net6.0/WIDESEA_Cache.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/Debug/net6.0/WIDESEA_Cache.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/Debug/net6.0/WIDESEA_Cache.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/Debug/net6.0/WIDESEA_Cache.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/Debug/net6.0/WIDESEA_Cache.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/WIDESEA_Cache.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/WIDESEA_Cache.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Cache/obj/WIDESEA_Cache.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/WIDESEA_Common.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/WIDESEA_Common.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/WIDESEA_Common.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/WIDESEA_Core.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/WIDESEA_Core.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/WIDESEA_Core.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/WIDESEA_DTO.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/WIDESEA_DTO.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/WIDESEA_DTO.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/WIDESEA_IBusinessesRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/WIDESEA_IBusinessesRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/WIDESEA_IBusinessesRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/WIDESEA_IBusinessServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/WIDESEA_IBusinessServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/WIDESEA_IBusinessServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/WIDESEA_IRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/WIDESEA_IRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/WIDESEA_IRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/WIDESEA_IServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/WIDESEA_IServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/WIDESEA_IServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/WIDESEA_IStorageBasicRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/WIDESEA_IStorageBasicRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/WIDESEA_IStorageBasicRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/WIDESEA_IStorageBasicServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/WIDESEA_IStorageBasicServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/WIDESEA_IStorageBasicServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/WIDESEA_IStorageOutOrderRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/WIDESEA_IStorageOutOrderRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/WIDESEA_IStorageOutOrderRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/WIDESEA_IStorageOutOrderServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/WIDESEA_IStorageOutOrderServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/WIDESEA_IStorageOutOrderServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/WIDESEA_IStorageTaskRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/WIDESEA_IStorageTaskRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/WIDESEA_IStorageTaskRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/WIDESEA_IStorageTaskServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/WIDESEA_IStorageTaskServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/WIDESEA_IStorageTaskServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_IStoragIntegrationRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/WIDESEA_IStoragIntegrationRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/WIDESEA_IStoragIntegrationRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationRepository/obj/WIDESEA_IStoragIntegrationRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/WIDESEA_IStoragIntegrationServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/WIDESEA_IStoragIntegrationServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/WIDESEA_IStoragIntegrationServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/WIDESEA_Model.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/WIDESEA_Model.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/WIDESEA_Model.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/WIDESEA_Repository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/WIDESEA_Repository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/WIDESEA_Repository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/WIDESEA_Services.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/WIDESEA_Services.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/WIDESEA_Services.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/WIDESEA_StorageBasicRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/WIDESEA_StorageBasicRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/WIDESEA_StorageBasicRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/Debug/net6.0/WIDESEA_StorageBasicServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/WIDESEA_StorageBasicServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/WIDESEA_StorageBasicServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/obj/WIDESEA_StorageBasicServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_StorageOutOrderRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/WIDESEA_StorageOutOrderRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/WIDESEA_StorageOutOrderRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderRepository/obj/WIDESEA_StorageOutOrderRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/Debug/net6.0/WIDESEA_StorageOutOrderServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/WIDESEA_StorageOutOrderServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/WIDESEA_StorageOutOrderServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageOutOrderServices/obj/WIDESEA_StorageOutOrderServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/Debug/net6.0/WIDESEA_StorageTaskRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/WIDESEA_StorageTaskRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/WIDESEA_StorageTaskRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskRepository/obj/WIDESEA_StorageTaskRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/Debug/net6.0/WIDESEA_StorageTaskServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/WIDESEA_StorageTaskServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/WIDESEA_StorageTaskServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/obj/WIDESEA_StorageTaskServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/Debug/net6.0/WIDESEA_StoragIntegrationRepository.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/WIDESEA_StoragIntegrationRepository.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/WIDESEA_StoragIntegrationRepository.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationRepository/obj/WIDESEA_StoragIntegrationRepository.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/WIDESEA_StoragIntegrationServices.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/WIDESEA_StoragIntegrationServices.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/WIDESEA_StoragIntegrationServices.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/WIDESEA_Tasks.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/WIDESEA_Tasks.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/WIDESEA_Tasks.csproj.nuget.g.targets |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/staticwebassets.removed.txt |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.AssemblyInfo.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.AssemblyInfoInputs.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.assets.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.csproj.AssemblyReference.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.GeneratedMSBuildEditorConfig.editorconfig |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/WIDESEA_WMSServer.GlobalUsings.g.cs |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/project.assets.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/project.nuget.cache |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/WIDESEA_WMSServer.csproj.nuget.dgspec.json |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/WIDESEA_WMSServer.csproj.nuget.g.props |
| | | CodeManagement/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/WIDESEA_WMSServer.csproj.nuget.g.targets |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "name": "wideseawcs", |
| | | "version": "0.1.0", |
| | | "private": true, |
| | | "scripts": { |
| | | "serve": "vue-cli-service serve", |
| | | "build": "vue-cli-service build", |
| | | "test:unit": "vue-cli-service test:unit", |
| | | "lint": "vue-cli-service lint" |
| | | }, |
| | | "dependencies": { |
| | | "@element-plus/icons-vue": "^2.1.0", |
| | | "@microsoft/signalr": "^6.0.4", |
| | | "ali-oss": "^6.17.1", |
| | | "axios": "^0.21.1", |
| | | "bootstrap": "^5.3.3", |
| | | "core-js": "^3.6.5", |
| | | "echarts": "^5.0.2", |
| | | "element-plus": "^2.2.14", |
| | | "less": "^4.1.1", |
| | | "mitt": "^3.0.1", |
| | | "vue": "^3.2.37", |
| | | "vue-draggable-next": "^2.0.1", |
| | | "vue-router": "^4.0.0-0", |
| | | "vuex": "^4.0.0-0", |
| | | "wangeditor": "^4.7.6" |
| | | }, |
| | | "devDependencies": { |
| | | "@babel/plugin-syntax-dynamic-import": "^7.8.3", |
| | | "@vue/cli-plugin-babel": "~4.5.0", |
| | | "@vue/cli-plugin-eslint": "~4.5.0", |
| | | "@vue/cli-plugin-router": "~4.5.0", |
| | | "@vue/cli-plugin-unit-mocha": "~4.5.0", |
| | | "@vue/cli-plugin-vuex": "~4.5.0", |
| | | "@vue/cli-service": "~4.5.0", |
| | | "@vue/compiler-sfc": "^3.0.0", |
| | | "@vue/test-utils": "^2.0.0-0", |
| | | "babel-eslint": "^10.1.0", |
| | | "chai": "^4.1.2", |
| | | "cross-env": "^7.0.3", |
| | | "less": "^4.1.1", |
| | | "less-loader": "^7.3.0", |
| | | "stylus": "^0.54.7", |
| | | "stylus-loader": "^3.0.2" |
| | | }, |
| | | "eslintConfig": { |
| | | "root": true, |
| | | "env": { |
| | | "node": true |
| | | }, |
| | | "extends": [ |
| | | "plugin:vue/essential", |
| | | "@vue/standard" |
| | | ], |
| | | "rules": { |
| | | "indent": [ |
| | | 1, |
| | | 4 |
| | | ] |
| | | }, |
| | | "parserOptions": { |
| | | "parser": "babel-eslint" |
| | | } |
| | | }, |
| | | "eslintIgnore": [ |
| | | "*" |
| | | ], |
| | | "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" |
| | | } |
| | |
| | | { |
| | | //return true; |
| | | object? obj = null; |
| | | for (int i = 0; i < 3; i++) |
| | | for (int i = 0; i < 5; i++) |
| | | { |
| | | T readValue = Read<T>(address); |
| | | stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, readValue, value)); |
| | |
| | | stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAndReadCheckSuccess, address, value, readValue)); |
| | | return true; |
| | | } |
| | | else if (i < 2) |
| | | else if (i < 4) |
| | | { |
| | | Write(address, value); |
| | | } |
| | |
| | | { |
| | | //return true; |
| | | object? obj = null; |
| | | for (int i = 0; i < 3; i++) |
| | | { |
| | | T readValue = ReadCustomer<T>(address); |
| | | stringBuilder.AppendLine(string.Format(CommunicationInfoMessage.WriteAfterRead, address, JsonConvert.SerializeObject(readValue))); |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | | namespace WIDESEAWCS_IProcessService |
| | | { |
| | | public interface IPlatFormService : IService<Platform> |
| | | { |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | <Nullable>enable</Nullable> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\WIDESEAWCS_ISystemServices\WIDESEAWCS_ISystemServices.csproj" /> |
| | | <ProjectReference Include="..\WIDESEAWCS_ProcessParameters\WIDESEAWCS_IProcessRepository.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using WIDESEAWCS_Core.BaseServices; |
| | | using WIDESEAWCS_IProcessRepository; |
| | | using WIDESEAWCS_IProcessService; |
| | | using WIDESEAWCS_Model.Models; |
| | | |
| | | namespace WIDESEAWCS_ProcessService |
| | | { |
| | | public partial class PlatFormService:ServiceBase<Platform,IPlatFormRepository>,IPlatFormService |
| | | { |
| | | public PlatFormService(IPlatFormRepository BaseDal) : base(BaseDal) |
| | | { |
| | | |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <Project Sdk="Microsoft.NET.Sdk"> |
| | | |
| | | <PropertyGroup> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <ImplicitUsings>enable</ImplicitUsings> |
| | | <Nullable>enable</Nullable> |
| | | </PropertyGroup> |
| | | |
| | | <ItemGroup> |
| | | <ProjectReference Include="..\WIDESEAWCS_IProcessService\WIDESEAWCS_IProcessService.csproj" /> |
| | | <ProjectReference Include="..\WIDESEAWCS_QuartzJob\WIDESEAWCS_QuartzJob.csproj" /> |
| | | </ItemGroup> |
| | | |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "version": 1, |
| | | "isRoot": true, |
| | | "tools": { |
| | | "dotnet-ef": { |
| | | "version": "9.0.3", |
| | | "commands": [ |
| | | "dotnet-ef" |
| | | ], |
| | | "rollForward": false |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Microsoft.AspNetCore.Authorization; |
| | | using Microsoft.AspNetCore.DataProtection.KeyManagement; |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; |
| | | using Quartz.Util; |
| | | using SqlSugar; |
| | | using System.ComponentModel; |
| | | using System.Reflection; |
| | | using WIDESEAWCS_BasicInfoService; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.BaseController; |
| | | using WIDESEAWCS_Core.Enums; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO.BasicInfo; |
| | | using WIDESEAWCS_IProcessService; |
| | | using WIDESEAWCS_ITaskInfo_HtyService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | |
| | | namespace WIDESEAWCS_Server.Controllers.ProcessParameters |
| | | { |
| | | [Route("api/Platform")] |
| | | [ApiController] |
| | | public class PlatformController : ApiBaseController<IPlatFormService, Platform> |
| | | { |
| | | private readonly IHttpContextAccessor _httpContextAccessor; |
| | | public PlatformController(IPlatFormService service, IHttpContextAccessor httpContextAccessor) : base(service) |
| | | { |
| | | _httpContextAccessor = httpContextAccessor; |
| | | } |
| | | |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <!-- |
| | | https://go.microsoft.com/fwlink/?LinkID=208121. |
| | | --> |
| | | <Project> |
| | | <PropertyGroup> |
| | | <DeleteExistingFiles>false</DeleteExistingFiles> |
| | | <ExcludeApp_Data>false</ExcludeApp_Data> |
| | | <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish> |
| | | <LastUsedBuildConfiguration>Debug</LastUsedBuildConfiguration> |
| | | <LastUsedPlatform>Any CPU</LastUsedPlatform> |
| | | <PublishProvider>FileSystem</PublishProvider> |
| | | <PublishUrl>bin\Debug\net6.0\publish\</PublishUrl> |
| | | <WebPublishMethod>FileSystem</WebPublishMethod> |
| | | <_TargetId>Folder</_TargetId> |
| | | <SiteUrlToLaunchAfterPublish /> |
| | | <TargetFramework>net6.0</TargetFramework> |
| | | <ProjectGuid>487fa45b-ea1a-4aca-bb5b-0f6708f462c0</ProjectGuid> |
| | | <SelfContained>false</SelfContained> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <!-- |
| | | https://go.microsoft.com/fwlink/?LinkID=208121. |
| | | --> |
| | | <Project> |
| | | <PropertyGroup> |
| | | <_PublishTargetUrl>D:\Git\BaiBuSanlou\CodeManagement\WCS\WIDESEAWCS_Server\WIDESEAWCS_Server\bin\Debug\net6.0\publish\</_PublishTargetUrl> |
| | | <History>True|2025-03-27T05:37:49.9939026Z||;True|2025-03-27T13:29:20.1926150+08:00||;True|2025-03-26T23:19:20.7301591+08:00||;True|2025-03-26T23:17:14.1194337+08:00||;True|2025-03-26T23:06:39.1521743+08:00||;True|2025-03-26T22:45:13.0771457+08:00||;True|2025-03-26T15:49:56.7831444+08:00||;True|2025-03-26T11:17:59.8156703+08:00||;True|2025-03-25T10:07:06.2413400+08:00||;True|2025-03-24T22:07:19.1662430+08:00||;True|2025-03-24T17:46:50.5366700+08:00||;True|2025-03-23T22:21:52.3680226+08:00||;True|2025-03-23T22:04:03.0344904+08:00||;True|2025-03-23T18:11:25.3235647+08:00||;True|2025-03-23T16:46:42.6441101+08:00||;True|2025-03-22T17:15:44.8475192+08:00||;True|2025-03-22T16:40:56.2937788+08:00||;True|2025-03-22T16:16:19.5470008+08:00||;True|2025-03-22T15:49:39.1178646+08:00||;True|2025-03-22T15:44:56.2071472+08:00||;True|2025-03-22T15:38:57.0439012+08:00||;True|2025-03-22T15:02:20.9416020+08:00||;True|2025-03-22T14:33:13.6730569+08:00||;True|2025-03-21T23:34:47.6039521+08:00||;True|2025-03-21T02:10:54.8314020+08:00||;True|2025-03-18T16:25:46.4649995+08:00||;True|2025-02-19T11:41:36.9348078+08:00||;True|2025-02-18T18:28:41.9967285+08:00||;True|2025-02-18T18:25:36.2264950+08:00||;True|2025-02-18T10:30:56.5234743+08:00||;True|2025-02-15T15:24:40.7310549+08:00||;True|2025-02-15T14:26:13.5854743+08:00||;True|2025-02-15T14:23:09.9103735+08:00||;True|2025-02-15T14:11:58.0255348+08:00||;True|2025-02-15T13:55:31.3438054+08:00||;True|2025-02-15T13:47:31.3307267+08:00||;True|2025-02-15T13:46:24.9001959+08:00||;True|2025-02-15T13:23:47.4161644+08:00||;True|2025-02-15T13:10:20.4988808+08:00||;True|2025-02-15T13:05:10.7619905+08:00||;True|2025-02-15T12:55:42.2397751+08:00||;True|2025-02-15T12:43:42.1819119+08:00||;True|2025-02-15T10:19:42.3871047+08:00||;True|2025-01-03T16:15:25.4007394+08:00||;True|2025-01-03T15:59:55.6586669+08:00||;True|2025-01-03T15:58:54.7953589+08:00||;True|2025-01-03T15:54:46.8938743+08:00||;True|2025-01-03T15:30:32.7439557+08:00||;True|2025-01-03T15:27:53.2337341+08:00||;True|2025-01-03T15:24:30.7045349+08:00||;True|2025-01-02T14:13:36.7820311+08:00||;</History> |
| | | <LastFailureDetails /> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "$schema": "https://json.schemastore.org/launchsettings.json", |
| | | "iisSettings": { |
| | | "windowsAuthentication": false, |
| | | "anonymousAuthentication": true, |
| | | "iisExpress": { |
| | | "applicationUrl": "http://localhost:27002", |
| | | "sslPort": 0 |
| | | } |
| | | }, |
| | | "profiles": { |
| | | "WIDESEAWCS_Server": { |
| | | "commandName": "Project", |
| | | "dotnetRunMessages": true, |
| | | "launchBrowser": true, |
| | | "launchUrl": "swagger", |
| | | "applicationUrl": "http://localhost:5208", |
| | | "environmentVariables": { |
| | | "ASPNETCORE_ENVIRONMENT": "Development" |
| | | } |
| | | }, |
| | | "IIS Express": { |
| | | "commandName": "IISExpress", |
| | | "launchBrowser": true, |
| | | "launchUrl": "swagger", |
| | | "environmentVariables": { |
| | | "ASPNETCORE_ENVIRONMENT": "Development" |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <PropertyGroup> |
| | | <NameOfLastUsedPublishProfile>D:\Git\BaiBuSanlou\CodeManagement\WCS\WIDESEAWCS_Server\WIDESEAWCS_Server\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "Logging": { |
| | | "LogLevel": { |
| | | "Default": "Information", |
| | | "Microsoft.AspNetCore": "Warning" |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "urls": "http://*:9291", //webæå¡ç«¯å£ï¼å¦æç¨IISé¨ç½²ï¼æè¿ä¸ªå»æ |
| | | "Logging": { |
| | | "LogLevel": { |
| | | "Default": "Information", |
| | | "Microsoft.AspNetCore": "Warning" |
| | | } |
| | | }, |
| | | "dics": "deviceType,devicePlcType,jobAssembly,jobClassName,deviceStatus,taskType,taskState,inOutType", |
| | | "AllowedHosts": "*", |
| | | "ConnectionStringsEncryption": false, |
| | | "MainDB": "DB_WIDESEA", //å½å项ç®ç主åºï¼æå¯¹åºçè¿æ¥å符串çEnabledå¿
须为true |
| | | //è¿æ¥å符串 |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSDB3F;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //"ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCSDB_BB3F;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //è·¨å |
| | | "Cors": { |
| | | "PolicyName": "CorsIpAccess", //çç¥åç§° |
| | | "EnableAllIPs": true, //å½ä¸ºtrueæ¶ï¼å¼æ¾ææIPåå¯è®¿é®ã |
| | | // æ¯æå¤ä¸ªåå端å£ï¼æ³¨æç«¯å£å·åä¸è¦å¸¦/ææï¼æ¯å¦localhost:8000/ï¼æ¯éç |
| | | // 注æï¼http://127.0.0.1:1818 å http://localhost:1818 æ¯ä¸ä¸æ ·ç |
| | | "IPs": "http://127.0.0.1:8080,http://localhost:8080" |
| | | }, |
| | | "ApiName": "WIDESEA", |
| | | "ExpMinutes": 120, |
| | | "QuartzJobAutoStart": true, |
| | | "LogDeubgEnable": true |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "Id": 1, |
| | | "DeviceCode": "SC01", |
| | | "DeviceName": "1å·å åæº", |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceStatus": "1", |
| | | "DeviceIp": "127.0.0.1", |
| | | "DevicePort": 102, |
| | | "DevicePlcType": "SiemensS7", |
| | | "DeviceRemark": "1", |
| | | "ProtocolList": null, |
| | | "Creater": "1", |
| | | "CreateDate": "2024-08-23T11:32:25.507", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 3, |
| | | "DeviceCode": "1002", |
| | | "DeviceName": "è¾é线", |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceStatus": "1", |
| | | "DeviceIp": "127.0.0.1", |
| | | "DevicePort": 103, |
| | | "DevicePlcType": "SiemensS7", |
| | | "DeviceRemark": "1", |
| | | "ProtocolList": null, |
| | | "Creater": "1", |
| | | "CreateDate": "2024-08-23T11:32:25.507", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "Id": 1, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB106", |
| | | "DeviceProOffset": 2.0, |
| | | "DeviceProDataType": "byte", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "StackerCraneStatus", |
| | | "DeviceProParamType": "StackerCraneStatus", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 2, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB106", |
| | | "DeviceProOffset": 3.0, |
| | | "DeviceProDataType": "byte", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "StackerCraneAutoStatus", |
| | | "DeviceProParamType": "StackerCraneAutoStatus", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 3, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB106", |
| | | "DeviceProOffset": 18.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "CurrentTaskNum", |
| | | "DeviceProParamType": "CurrentTaskNum", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 4, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB106", |
| | | "DeviceProOffset": 22.0, |
| | | "DeviceProDataType": "byte", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "StackerCraneWorkStatus", |
| | | "DeviceProParamType": "StackerCraneWorkStatus", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 5, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 2.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "TaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 6, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 6.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WorkType", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 7, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 8.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "TrayType", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 8, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 10.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "StartRow", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 9, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 12.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "StartColumn", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 10, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 14.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "StartLayer", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 11, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 16.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "EndRow", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 12, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 18.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "EndColumn", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 13, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 20.0, |
| | | "DeviceProDataType": "int", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "EndLayer", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 14, |
| | | "DeviceId": 1, |
| | | "DeviceChildCode": "SC01", |
| | | "DeviceProDataBlock": "DB105", |
| | | "DeviceProOffset": 22.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "Barcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 15, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 0.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 16, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 2.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 17, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 30.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 18, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 34.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 19, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 50.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 20, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 52.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 21, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 80.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 22, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 84.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 23, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 100.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 24, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 102.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 25, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 130.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 26, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 134.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 27, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 150.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 28, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 152.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 29, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 180.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 30, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 184.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 31, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 200.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 32, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 202.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 33, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 230.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 34, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 234.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 35, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 250.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 36, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 252.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 37, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 280.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 38, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 284.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 39, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 300.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 40, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 302.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 41, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 330.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 42, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 334.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 43, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 350.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 44, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 352.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 45, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 380.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 46, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 384.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 47, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 400.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 48, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 402.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 49, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 430.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 50, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 438.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 51, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 450.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 52, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 452.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 53, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 480.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 54, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 484.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 55, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 500.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 56, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 502.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 57, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 530.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 58, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 534.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 59, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 550.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 60, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 552.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 61, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 580.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 62, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 584.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 63, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 600.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 64, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 602.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 65, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 630.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 66, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 634.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 67, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 650.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 68, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 652.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 69, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 680.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 70, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 684.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 71, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 700.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 72, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 702.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 73, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 730.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 74, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 734.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 75, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 750.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 76, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 752.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 77, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 780.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 78, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 784.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 79, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 800.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 80, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 802.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 81, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 830.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 82, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 834.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 83, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 850.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 84, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 852.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 85, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 880.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 86, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 884.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 87, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 900.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 88, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 902.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 89, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 930.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 90, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 934.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 91, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 950.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 92, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 952.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "ConveyorLineBarcode", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 93, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 980.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTargetAddress", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 94, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 984.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "ConveyorLineTaskNum", |
| | | "DeviceProParamType": "ReadDeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 95, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 0.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 96, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 2.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 97, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 30.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 98, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "101", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 34.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 99, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 50.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 100, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 52.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 101, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 80.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 102, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "102", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 84.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 103, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 100.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 104, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 102.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 105, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 130.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 106, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "103", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 134.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 107, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 150.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 108, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 152.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 109, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 180.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 110, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "104", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 184.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 111, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 200.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 112, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 202.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 113, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 230.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 114, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "105", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 234.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 115, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 250.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 116, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 252.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 117, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 280.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 118, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "106", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 284.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 119, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 300.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 120, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 302.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 121, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 330.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 122, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "107", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 334.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 123, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 350.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 124, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 352.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 125, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 380.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 126, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "108", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 384.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 127, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 400.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 128, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 402.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 129, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 430.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 130, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "109", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 438.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 131, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 450.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 132, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 452.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 133, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 480.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 134, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "110", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 484.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 135, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 500.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 136, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 502.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 137, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 530.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 138, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 534.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 139, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 550.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 140, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 552.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 141, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 580.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 142, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "112", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 584.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 143, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 600.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 144, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 602.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 145, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 630.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 146, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "113", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 634.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 147, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 650.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 148, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 652.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 149, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 680.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 150, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "114", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 684.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 151, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 700.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 152, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 702.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 153, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 730.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 154, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "115", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 734.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 155, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 750.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 156, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 752.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 157, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 780.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 158, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "116", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 784.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 159, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 800.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 160, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 802.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 161, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 830.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 162, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "117", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 834.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 163, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 850.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 164, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 852.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 165, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 880.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 166, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "118", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 884.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 167, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 900.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 168, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 902.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 169, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 930.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 170, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "119", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 934.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 171, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 950.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteInteractiveSignal", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 172, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 952.0, |
| | | "DeviceProDataType": "string", |
| | | "DeviceProDataLength": 25, |
| | | "DeviceProParamName": "WriteConveyorLineBarcode", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 173, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 980.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTargetAddress", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 174, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "120", |
| | | "DeviceProDataBlock": "DB90", |
| | | "DeviceProOffset": 984.0, |
| | | "DeviceProDataType": "dint", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "WriteConveyorLineTaskNum", |
| | | "DeviceProParamType": "DeviceCommand", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 175, |
| | | "DeviceId": 3, |
| | | "DeviceChildCode": "111", |
| | | "DeviceProDataBlock": "DB80", |
| | | "DeviceProOffset": 500.0, |
| | | "DeviceProDataType": "w", |
| | | "DeviceProDataLength": 1, |
| | | "DeviceProParamName": "IsOccupied", |
| | | "DeviceProParamType": "IsOccupied", |
| | | "DeviceProParamDes": "1", |
| | | "DeviceProRemark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:25.857", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "Id": 1, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneStatus", |
| | | "ProtocolDetailType": "Normal", |
| | | "ProtocalDetailValue": "1", |
| | | "ProtocolDetailDes": "设å¤ç¶æ(1:æ£å¸¸)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 2, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneStatus", |
| | | "ProtocolDetailType": "Fault", |
| | | "ProtocalDetailValue": "2", |
| | | "ProtocolDetailDes": "设å¤ç¶æ(2:æ
é)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 3, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneStatus", |
| | | "ProtocolDetailType": "EmergencyStop", |
| | | "ProtocalDetailValue": "3", |
| | | "ProtocolDetailDes": "设å¤ç¶æ(3:æ¥å)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 4, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneAutoStatus", |
| | | "ProtocolDetailType": "Maintenance", |
| | | "ProtocalDetailValue": "0", |
| | | "ProtocolDetailDes": "工使¨¡å¼(0:ç»´ä¿®)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 5, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneAutoStatus", |
| | | "ProtocolDetailType": "Manual", |
| | | "ProtocalDetailValue": "1", |
| | | "ProtocolDetailDes": "工使¨¡å¼(1:æå¨", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 6, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneAutoStatus", |
| | | "ProtocolDetailType": "SemiAutomatic", |
| | | "ProtocalDetailValue": "2", |
| | | "ProtocolDetailDes": "工使¨¡å¼(2:åèªå¨)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 7, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneAutoStatus", |
| | | "ProtocolDetailType": "Automatic", |
| | | "ProtocalDetailValue": "3", |
| | | "ProtocolDetailDes": "工使¨¡å¼(3:èªå¨)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 8, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneWorkStatus", |
| | | "ProtocolDetailType": "Standby", |
| | | "ProtocalDetailValue": "0", |
| | | "ProtocolDetailDes": "ä½ä¸ç¶æ(0:å¾
æº)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 9, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneWorkStatus", |
| | | "ProtocolDetailType": "PickUp", |
| | | "ProtocalDetailValue": "1", |
| | | "ProtocolDetailDes": "ä½ä¸ç¶æ(1:åè´§ä¸)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 10, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneWorkStatus", |
| | | "ProtocolDetailType": "PickUpCompleted", |
| | | "ProtocalDetailValue": "2", |
| | | "ProtocolDetailDes": "ä½ä¸ç¶æ(2:åè´§å®æ)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 11, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneWorkStatus", |
| | | "ProtocolDetailType": "Putting", |
| | | "ProtocalDetailValue": "4", |
| | | "ProtocolDetailDes": "ä½ä¸ç¶æ(4:æ¾è´§ä¸)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 12, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneWorkStatus", |
| | | "ProtocolDetailType": "PutCompleted", |
| | | "ProtocalDetailValue": "5", |
| | | "ProtocolDetailDes": "ä½ä¸ç¶æ(5:æ¾è´§å®æ)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 13, |
| | | "DeviceType": "CommonStackerCrane", |
| | | "DeviceProParamName": "StackerCraneWorkStatus", |
| | | "ProtocolDetailType": "WorkCompleted", |
| | | "ProtocalDetailValue": "6", |
| | | "ProtocolDetailDes": "ä½ä¸ç¶æ(6:ä»»å¡å®æ)", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 14, |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "ProtocolDetailType": "RequestInbound", |
| | | "ProtocalDetailValue": "1", |
| | | "ProtocolDetailDes": "1", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 15, |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "ProtocolDetailType": "RequestInNextAddress", |
| | | "ProtocalDetailValue": "2", |
| | | "ProtocolDetailDes": "2", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 32, |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "ProtocolDetailType": "ConveyorLineInFinish", |
| | | "ProtocalDetailValue": "3", |
| | | "ProtocolDetailDes": "3", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 34, |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceProParamName": "IsOccupied", |
| | | "ProtocolDetailType": "IsOccupied", |
| | | "ProtocalDetailValue": "0", |
| | | "ProtocolDetailDes": "0", |
| | | "Remark": null, |
| | | "Creater": "1", |
| | | "CreateDate": "2024-08-23T23:05:46", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 35, |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "ProtocolDetailType": "RequestOutbound", |
| | | "ProtocalDetailValue": "4", |
| | | "ProtocolDetailDes": "4", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 36, |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "ProtocolDetailType": "RequestOutNextAddress", |
| | | "ProtocalDetailValue": "5", |
| | | "ProtocolDetailDes": "5", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 37, |
| | | "DeviceType": "CommonConveyorLine", |
| | | "DeviceProParamName": "InteractiveSignal", |
| | | "ProtocolDetailType": "ConveyorLineOutFinish", |
| | | "ProtocalDetailValue": "6", |
| | | "ProtocolDetailDes": "6", |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:26.157", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "Id": 1, |
| | | "Name": "æµè¯", |
| | | "JobGroup": "CommonStackerCrane", |
| | | "AssemblyName": "WIDESEAWCS_Tasks", |
| | | "ClassName": "CommonStackerCraneJob", |
| | | "IntervalSecond": 1, |
| | | "BeginTime": null, |
| | | "EndTime": null, |
| | | "Remark": null, |
| | | "Creater": "1", |
| | | "CreateDate": "2024-08-23T11:32:26.513", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 3, |
| | | "Name": "æµè¯2", |
| | | "JobGroup": "CommonConveyorLine", |
| | | "AssemblyName": "WIDESEAWCS_Tasks", |
| | | "ClassName": "CommonConveyorLineJob", |
| | | "IntervalSecond": 1, |
| | | "BeginTime": null, |
| | | "EndTime": null, |
| | | "Remark": null, |
| | | "Creater": "1", |
| | | "CreateDate": "2024-08-23T11:32:26.513", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "Id": 42, |
| | | "StartPosi": "101", |
| | | "NextPosi": "102", |
| | | "InOutType": 1, |
| | | "ChildPosi": "102", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.067", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 43, |
| | | "StartPosi": "102", |
| | | "NextPosi": "103", |
| | | "InOutType": 1, |
| | | "ChildPosi": "103", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.07", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 44, |
| | | "StartPosi": "103", |
| | | "NextPosi": "104", |
| | | "InOutType": 1, |
| | | "ChildPosi": "104", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.07", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 45, |
| | | "StartPosi": "104", |
| | | "NextPosi": "105", |
| | | "InOutType": 1, |
| | | "ChildPosi": "105", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.07", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 46, |
| | | "StartPosi": "105", |
| | | "NextPosi": "106", |
| | | "InOutType": 1, |
| | | "ChildPosi": "106", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.073", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 47, |
| | | "StartPosi": "106", |
| | | "NextPosi": "107", |
| | | "InOutType": 1, |
| | | "ChildPosi": "107", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.073", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 48, |
| | | "StartPosi": "107", |
| | | "NextPosi": "108", |
| | | "InOutType": 1, |
| | | "ChildPosi": "108", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.073", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 49, |
| | | "StartPosi": "108", |
| | | "NextPosi": "109", |
| | | "InOutType": 1, |
| | | "ChildPosi": "109", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.073", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 50, |
| | | "StartPosi": "109", |
| | | "NextPosi": "110", |
| | | "InOutType": 1, |
| | | "ChildPosi": "110", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.077", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 51, |
| | | "StartPosi": "110", |
| | | "NextPosi": "SC01", |
| | | "InOutType": 1, |
| | | "ChildPosi": "SC01", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": 1, |
| | | "SrmColumn": 100, |
| | | "SrmLayer": 1, |
| | | "Depth": 1, |
| | | "IsEnd": true, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T23:34:41.077", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 52, |
| | | "StartPosi": "SC01", |
| | | "NextPosi": "111", |
| | | "InOutType": 2, |
| | | "ChildPosi": "111", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": 2, |
| | | "SrmColumn": 100, |
| | | "SrmLayer": 1, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.283", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 53, |
| | | "StartPosi": "111", |
| | | "NextPosi": "112", |
| | | "InOutType": 2, |
| | | "ChildPosi": "112", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.287", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 54, |
| | | "StartPosi": "112", |
| | | "NextPosi": "113", |
| | | "InOutType": 2, |
| | | "ChildPosi": "113", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.287", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 55, |
| | | "StartPosi": "113", |
| | | "NextPosi": "114", |
| | | "InOutType": 2, |
| | | "ChildPosi": "114", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.29", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 56, |
| | | "StartPosi": "114", |
| | | "NextPosi": "115", |
| | | "InOutType": 2, |
| | | "ChildPosi": "115", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.29", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 57, |
| | | "StartPosi": "115", |
| | | "NextPosi": "116", |
| | | "InOutType": 2, |
| | | "ChildPosi": "116", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.29", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 58, |
| | | "StartPosi": "116", |
| | | "NextPosi": "117", |
| | | "InOutType": 2, |
| | | "ChildPosi": "117", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.293", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 59, |
| | | "StartPosi": "117", |
| | | "NextPosi": "118", |
| | | "InOutType": 2, |
| | | "ChildPosi": "118", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.293", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 60, |
| | | "StartPosi": "118", |
| | | "NextPosi": "119", |
| | | "InOutType": 2, |
| | | "ChildPosi": "119", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": false, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.297", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "Id": 61, |
| | | "StartPosi": "119", |
| | | "NextPosi": "CLOutAreaA", |
| | | "InOutType": 2, |
| | | "ChildPosi": "120", |
| | | "ChildPosiDeviceCode": "1002", |
| | | "SrmRow": null, |
| | | "SrmColumn": null, |
| | | "SrmLayer": null, |
| | | "Depth": 1, |
| | | "IsEnd": true, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-25T00:05:09.297", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "DicId": 3, |
| | | "Config": "{valueField: 'Enable',\r\ntextField: 'Enable',\r\n containField: null,\r\n handler: null }", |
| | | "DBServer": "1", |
| | | "DBSql": null, |
| | | "DicName": "æ¯å¦å¼", |
| | | "DicNo": "enable", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-01-03T18:30:18.113" |
| | | }, |
| | | { |
| | | "DicId": 30, |
| | | "Config": "{valueField: 'Success',\r\n textField: 'Success', \r\n containField: null,\r\n handler: null }\r\n", |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "ååºç¶æ", |
| | | "DicNo": "restatus", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "æµè¯è¶
级管çå", |
| | | "ModifyDate": "2018-06-12T10:21:48" |
| | | }, |
| | | { |
| | | "DicId": 31, |
| | | "Config": "{valueField: 'LogType',\r\n textField: 'LogType', \r\n containField: null,\r\n handler: null }\r\n", |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "æ¥å¿ç±»å", |
| | | "DicNo": "log", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.927" |
| | | }, |
| | | { |
| | | "DicId": 32, |
| | | "Config": "{valueField: 'Role_Id',\r\n textField: 'RoleName', \r\n containField: ['Role_Id','RoleName'],\r\n handler: null }\r\n", |
| | | "DBServer": null, |
| | | "DBSql": "SELECT RoleId as 'key',RoleName as 'value' FROM Sys_Role WHERE Enable=1", |
| | | "DicName": "è§è²å表", |
| | | "DicNo": "roles", |
| | | "Enable": 1, |
| | | "OrderNo": 123, |
| | | "ParentId": 0, |
| | | "Remark": "sqlè¯å¥éè¦key,valueåï¼ç颿è½ç»å®æ°æ®æº", |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "æµè¯è¶
级管çå", |
| | | "ModifyDate": "2018-07-13T15:03:53" |
| | | }, |
| | | { |
| | | "DicId": 35, |
| | | "Config": "{\r\n valueField: 'AuditStatus',\r\n textField: 'AuditStatus',\r\n containField:null \r\n}", |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "å®¡æ ¸ç¶æ", |
| | | "DicNo": "audit", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-05-08T01:05:44.193" |
| | | }, |
| | | { |
| | | "DicId": 49, |
| | | "Config": "{\r\n valueField: 'Gender',\r\n textField: 'Gender',\r\n containField:null \r\n}", |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "æ§å«", |
| | | "DicNo": "gender", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "æµè¯è¶
级管çå", |
| | | "ModifyDate": "2018-07-23T11:10:28" |
| | | }, |
| | | { |
| | | "DicId": 50, |
| | | "Config": "{\r\n valueField: 'Enable',\r\n textField: 'Enable',\r\n containField:null \r\n}", |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "å¯ç¨ç¶æ", |
| | | "DicNo": "status", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicId": 59, |
| | | "Config": "{\r\n valueField: 'IsRegregisterPhone',\r\n textField: 'IsRegregisterPhone',\r\n containField:null \r\n}", |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "ææºç¨æ·", |
| | | "DicNo": "isphone", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2020-11-20T23:05:48.303" |
| | | }, |
| | | { |
| | | "DicId": 66, |
| | | "Config": null, |
| | | "DBServer": null, |
| | | "DBSql": "SELECT RoleId AS id,parentId,RoleId AS [key],RoleName AS value FROM Sys_Role", |
| | | "DicName": "级èè§è²", |
| | | "DicNo": "tree_roles", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2020-11-20T23:08:03.217" |
| | | }, |
| | | { |
| | | "DicId": 67, |
| | | "Config": null, |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "nav", |
| | | "DicNo": "nav", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicId": 70, |
| | | "Config": null, |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "è¯·æ±æ¹å¼", |
| | | "DicNo": "è¯·æ±æ¹å¼", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicId": 71, |
| | | "Config": null, |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "宿¶ä»»å¡ç¶æ", |
| | | "DicNo": "宿¶ä»»å¡ç¶æ", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicId": 72, |
| | | "Config": null, |
| | | "DBServer": null, |
| | | "DBSql": "SELECT DepartmentId AS 'key',DepartmentId AS 'id',ParentId AS parentId,DepartmentName as 'value' FROM Sys_Department", |
| | | "DicName": "ç»ç»æºæ", |
| | | "DicNo": "ç»ç»æºæ", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 10, |
| | | "DicList": null, |
| | | "Creater": "system", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicId": 75, |
| | | "Config": null, |
| | | "DBServer": null, |
| | | "DBSql": null, |
| | | "DicName": "æ¥å¿ç¶æ", |
| | | "DicNo": "LogState", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "ParentId": 0, |
| | | "Remark": null, |
| | | "SystemType": 1, |
| | | "DicList": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.233", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "DicListId": 3, |
| | | "DicName": "å¦", |
| | | "DicValue": "0", |
| | | "DicId": "3", |
| | | "Enable": null, |
| | | "OrderNo": 2, |
| | | "Remark": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-01-03T18:30:18.113" |
| | | }, |
| | | { |
| | | "DicListId": 4, |
| | | "DicName": "æ¯", |
| | | "DicValue": "1", |
| | | "DicId": "3", |
| | | "Enable": null, |
| | | "OrderNo": 1, |
| | | "Remark": null, |
| | | "Creater": "xxx", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-01-03T18:30:18.113" |
| | | }, |
| | | { |
| | | "DicListId": 22, |
| | | "DicName": "å
¶ä»", |
| | | "DicValue": "0", |
| | | "DicId": "30", |
| | | "Enable": null, |
| | | "OrderNo": 10, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2019-08-21T16:49:43" |
| | | }, |
| | | { |
| | | "DicListId": 23, |
| | | "DicName": "æå", |
| | | "DicValue": "1", |
| | | "DicId": "30", |
| | | "Enable": null, |
| | | "OrderNo": 100, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2019-08-21T16:49:43" |
| | | }, |
| | | { |
| | | "DicListId": 24, |
| | | "DicName": "å¼å¸¸", |
| | | "DicValue": "2", |
| | | "DicId": "30", |
| | | "Enable": null, |
| | | "OrderNo": 50, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2019-08-21T16:49:43" |
| | | }, |
| | | { |
| | | "DicListId": 25, |
| | | "DicName": "ç³»ç»", |
| | | "DicValue": "System", |
| | | "DicId": "31", |
| | | "Enable": null, |
| | | "OrderNo": 100, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.947" |
| | | }, |
| | | { |
| | | "DicListId": 26, |
| | | "DicName": "ç»é", |
| | | "DicValue": "Login", |
| | | "DicId": "31", |
| | | "Enable": null, |
| | | "OrderNo": 90, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.947" |
| | | }, |
| | | { |
| | | "DicListId": 27, |
| | | "DicName": "æ°å»º", |
| | | "DicValue": "Add", |
| | | "DicId": "31", |
| | | "Enable": null, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.943" |
| | | }, |
| | | { |
| | | "DicListId": 28, |
| | | "DicName": "å é¤", |
| | | "DicValue": "Del", |
| | | "DicId": "31", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.943" |
| | | }, |
| | | { |
| | | "DicListId": 29, |
| | | "DicName": "ç¼è¾", |
| | | "DicValue": "Edit", |
| | | "DicId": "31", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.943" |
| | | }, |
| | | { |
| | | "DicListId": 37, |
| | | "DicName": "å¾
å®¡æ ¸", |
| | | "DicValue": "0", |
| | | "DicId": "35", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-05-08T01:05:44.193" |
| | | }, |
| | | { |
| | | "DicListId": 38, |
| | | "DicName": "å®¡æ ¸éè¿", |
| | | "DicValue": "1", |
| | | "DicId": "35", |
| | | "Enable": null, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-05-08T01:05:44.193" |
| | | }, |
| | | { |
| | | "DicListId": 39, |
| | | "DicName": "å®¡æ ¸ä¸", |
| | | "DicValue": "2", |
| | | "DicId": "35", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-05-08T01:05:44.193" |
| | | }, |
| | | { |
| | | "DicListId": 71, |
| | | "DicName": "å¼å¸¸", |
| | | "DicValue": "Exception", |
| | | "DicId": "31", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.943" |
| | | }, |
| | | { |
| | | "DicListId": 90, |
| | | "DicName": "ç·", |
| | | "DicValue": "0", |
| | | "DicId": "49", |
| | | "Enable": null, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "æµè¯è¶
级管çå", |
| | | "ModifyDate": "2018-07-23T11:10:28" |
| | | }, |
| | | { |
| | | "DicListId": 91, |
| | | "DicName": "女", |
| | | "DicValue": "1", |
| | | "DicId": "49", |
| | | "Enable": null, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "æµè¯è¶
级管çå", |
| | | "ModifyDate": "2018-07-23T11:10:28" |
| | | }, |
| | | { |
| | | "DicListId": 96, |
| | | "DicName": "æªå¯ç¨", |
| | | "DicValue": "0", |
| | | "DicId": "50", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2019-08-16T18:17:47" |
| | | }, |
| | | { |
| | | "DicListId": 97, |
| | | "DicName": "å·²å¯ç¨", |
| | | "DicValue": "1", |
| | | "DicId": "50", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2019-08-16T18:17:47" |
| | | }, |
| | | { |
| | | "DicListId": 98, |
| | | "DicName": "å·²å é¤", |
| | | "DicValue": "2", |
| | | "DicId": "50", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2019-08-16T18:17:47" |
| | | }, |
| | | { |
| | | "DicListId": 128, |
| | | "DicName": "æ¯", |
| | | "DicValue": "1", |
| | | "DicId": "59", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2020-11-20T23:05:48.303" |
| | | }, |
| | | { |
| | | "DicListId": 129, |
| | | "DicName": "å¦", |
| | | "DicValue": "0", |
| | | "DicId": "59", |
| | | "Enable": 1, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "æµè¯è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2020-11-20T23:05:48.303" |
| | | }, |
| | | { |
| | | "DicListId": 144, |
| | | "DicName": "å·æ°Token", |
| | | "DicValue": "ReplaceToeken", |
| | | "DicId": "31", |
| | | "Enable": null, |
| | | "OrderNo": 110, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2022-04-04T13:21:54.937" |
| | | }, |
| | | { |
| | | "DicListId": 145, |
| | | "DicName": "Info", |
| | | "DicValue": "3", |
| | | "DicId": "30", |
| | | "Enable": null, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 423, |
| | | "DicName": "æ¯", |
| | | "DicValue": "1", |
| | | "DicId": "67", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 424, |
| | | "DicName": "å¦", |
| | | "DicValue": "0", |
| | | "DicId": "67", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 435, |
| | | "DicName": "å®¡æ ¸æªéè¿", |
| | | "DicValue": "3", |
| | | "DicId": "35", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-05-08T01:05:44.193" |
| | | }, |
| | | { |
| | | "DicListId": 436, |
| | | "DicName": "get", |
| | | "DicValue": "get", |
| | | "DicId": "70", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 437, |
| | | "DicName": "post", |
| | | "DicValue": "post", |
| | | "DicId": "70", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 438, |
| | | "DicName": "æ£å¸¸", |
| | | "DicValue": "0", |
| | | "DicId": "71", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 439, |
| | | "DicName": "æå", |
| | | "DicValue": "1", |
| | | "DicId": "71", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 442, |
| | | "DicName": "驳å", |
| | | "DicValue": "4", |
| | | "DicId": "35", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 443, |
| | | "DicName": "ç¦ç¨", |
| | | "DicValue": "DisEnable", |
| | | "DicId": "73", |
| | | "Enable": 1, |
| | | "OrderNo": 1, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "å¼å", |
| | | "ModifyDate": "2023-07-14T14:17:01.037" |
| | | }, |
| | | { |
| | | "DicListId": 444, |
| | | "DicName": "å¯ç¨", |
| | | "DicValue": "Enable", |
| | | "DicId": "73", |
| | | "Enable": 1, |
| | | "OrderNo": 0, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "å¼å", |
| | | "ModifyDate": "2023-07-14T14:17:01.017" |
| | | }, |
| | | { |
| | | "DicListId": 449, |
| | | "DicName": "ä¿¡æ¯", |
| | | "DicValue": "Info", |
| | | "DicId": "75", |
| | | "Enable": 0, |
| | | "OrderNo": 1, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 450, |
| | | "DicName": "æå", |
| | | "DicValue": "Sucess", |
| | | "DicId": "75", |
| | | "Enable": 0, |
| | | "OrderNo": 2, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 451, |
| | | "DicName": "失败", |
| | | "DicValue": "Error", |
| | | "DicId": "75", |
| | | "Enable": 0, |
| | | "OrderNo": 3, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 452, |
| | | "DicName": "1", |
| | | "DicValue": "1", |
| | | "DicId": "80", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-12-12T10:28:05.55" |
| | | }, |
| | | { |
| | | "DicListId": 453, |
| | | "DicName": "2", |
| | | "DicValue": "2", |
| | | "DicId": "80", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-12-12T10:28:05.55" |
| | | }, |
| | | { |
| | | "DicListId": 454, |
| | | "DicName": "3", |
| | | "DicValue": "3", |
| | | "DicId": "80", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-12-12T10:28:05.55" |
| | | }, |
| | | { |
| | | "DicListId": 455, |
| | | "DicName": "4", |
| | | "DicValue": "4", |
| | | "DicId": "80", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": "è¶
级管çå", |
| | | "ModifyDate": "2023-12-12T10:28:05.55" |
| | | }, |
| | | { |
| | | "DicListId": 456, |
| | | "DicName": "æªå®¡æ ¸", |
| | | "DicValue": "OrderState_Unaudited", |
| | | "DicId": "84", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "DicListId": 457, |
| | | "DicName": "å·²å®¡æ ¸", |
| | | "DicValue": "OrderState_Audited", |
| | | "DicId": "84", |
| | | "Enable": 0, |
| | | "OrderNo": null, |
| | | "Remark": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:22.553", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "MenuId": 1, |
| | | "MenuName": "ç¨æ·ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-user", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": ".", |
| | | "ParentId": 0, |
| | | "Url": null, |
| | | "OrderNo": 4000, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:07.567" |
| | | }, |
| | | { |
| | | "MenuId": 2, |
| | | "MenuName": "ç¨æ·ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_User", |
| | | "ParentId": 1, |
| | | "Url": "/Sys_User", |
| | | "OrderNo": 2000, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:14.03" |
| | | }, |
| | | { |
| | | "MenuId": 3, |
| | | "MenuName": "æé管ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "ivu-icon ivu-icon-ios-boat", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": ",", |
| | | "ParentId": 1, |
| | | "Url": "/permission", |
| | | "OrderNo": 1000, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:20.727" |
| | | }, |
| | | { |
| | | "MenuId": 4, |
| | | "MenuName": "è§è²ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Role", |
| | | "ParentId": 1, |
| | | "Url": "/Sys_Role", |
| | | "OrderNo": 900, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:23.177" |
| | | }, |
| | | { |
| | | "MenuId": 5, |
| | | "MenuName": "ç³»ç»è®¾ç½®", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-setting", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "ç³»ç»è®¾ç½®", |
| | | "ParentId": 0, |
| | | "Url": "/", |
| | | "OrderNo": 0, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:38.703" |
| | | }, |
| | | { |
| | | "MenuId": 6, |
| | | "MenuName": "èå设置", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Menu", |
| | | "ParentId": 5, |
| | | "Url": "/sysmenu", |
| | | "OrderNo": 10, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:42.007" |
| | | }, |
| | | { |
| | | "MenuId": 7, |
| | | "MenuName": "䏿æ¡ç»å®è®¾ç½®", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Dictionary", |
| | | "ParentId": 5, |
| | | "Url": "/Sys_Dictionary", |
| | | "OrderNo": 10, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuId": 8, |
| | | "MenuName": "æ¥å¿ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "xxx", |
| | | "ParentId": 0, |
| | | "Url": "/", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 9, |
| | | "MenuName": "æ¥å£æ¥å¿", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Log", |
| | | "ParentId": 8, |
| | | "Url": "/Sys_Log/Manager", |
| | | "OrderNo": 0, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:34.273" |
| | | }, |
| | | { |
| | | "MenuId": 10, |
| | | "MenuName": "设å¤ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "", |
| | | "ParentId": 0, |
| | | "Url": "/", |
| | | "OrderNo": 8000, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 11, |
| | | "MenuName": "设å¤ä¿¡æ¯", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Dt_DeviceInfo", |
| | | "ParentId": 10, |
| | | "Url": "/deviceInfo", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 12, |
| | | "MenuName": "ä»»å¡ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "", |
| | | "ParentId": 0, |
| | | "Url": "/", |
| | | "OrderNo": 7000, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 13, |
| | | "MenuName": "ä»»å¡ä¿¡æ¯", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"åæ»å°ä¸ä¸æ¥\",\"value\":\"Previous\"},{\"text\":\"跳转å°ä¸ä¸æ¥\",\"value\":\"Next\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Dt_Task", |
| | | "ParentId": 12, |
| | | "Url": "/task", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 14, |
| | | "MenuName": "设å¤å议信æ¯", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Dt_DeviceProtocol", |
| | | "ParentId": 10, |
| | | "Url": "/deviceProtocol", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 15, |
| | | "MenuName": "设å¤åè®®æç»ä¿¡æ¯", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Dt_DeviceProtocolDetail", |
| | | "ParentId": 10, |
| | | "Url": "/deviceProtocolDetail", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 16, |
| | | "MenuName": "è°åº¦æå¡é
置信æ¯", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Dt_DispatchInfo", |
| | | "ParentId": 10, |
| | | "Url": "/dispatchInfo", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 17, |
| | | "MenuName": "åºç¡ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "", |
| | | "ParentId": 0, |
| | | "Url": "/", |
| | | "OrderNo": 7000, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | }, |
| | | { |
| | | "MenuId": 18, |
| | | "MenuName": "è·¯ç±é
置信æ¯", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"æ¥çå
¨é¨è·¯ç±\",\"value\":\"ViewAllRouter\"},{\"text\":\"è·¯ç±é
ç½®\",\"value\":\"AddRouters\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Dt_Router", |
| | | "ParentId": 17, |
| | | "Url": "/router", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Menus": null, |
| | | "Actions": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:22.907", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-05-09T15:50:30.557" |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "RoleId": 1, |
| | | "DeptName": null, |
| | | "DeptId": 111, |
| | | "Enable": 1, |
| | | "ParentId": 0, |
| | | "RoleName": "è¶
级管çå", |
| | | "Roles": null, |
| | | "Creater": "è¶
级管çå", |
| | | "CreateDate": "2024-08-23T11:32:23.227", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-04-29T13:53:44.717" |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "AuthId": 136, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 1, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-02-22T09:31:16.363" |
| | | }, |
| | | { |
| | | "AuthId": 137, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 2, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-04-29T15:04:07.83" |
| | | }, |
| | | { |
| | | "AuthId": 138, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 3, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-02-22T09:31:16.363" |
| | | }, |
| | | { |
| | | "AuthId": 140, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 4, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-02-22T09:31:16.363" |
| | | }, |
| | | { |
| | | "AuthId": 141, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 5, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-02-22T09:31:16.363" |
| | | }, |
| | | { |
| | | "AuthId": 143, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 6, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-02-22T09:31:16.363" |
| | | }, |
| | | { |
| | | "AuthId": 144, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 7, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-04-29T15:00:47.033" |
| | | }, |
| | | { |
| | | "AuthId": 146, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 8, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-04-29T15:04:07.83" |
| | | }, |
| | | { |
| | | "AuthId": 148, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 9, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": "admin", |
| | | "ModifyDate": "2024-02-22T09:31:16.363" |
| | | }, |
| | | { |
| | | "AuthId": 153, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 10, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "AuthId": 154, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 12, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "AuthId": 155, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 13, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "AuthId": 156, |
| | | "AuthValue": "Search", |
| | | "MenuId": 11, |
| | | "RoleId": 1, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "AuthId": 157, |
| | | "AuthValue": "Search", |
| | | "MenuId": 11, |
| | | "RoleId": 2, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "AuthId": 158, |
| | | "AuthValue": "Search,Add,Delete,Update,Import,Export", |
| | | "MenuId": 10, |
| | | "RoleId": 2, |
| | | "UserId": null, |
| | | "Creater": "admin", |
| | | "CreateDate": "2024-08-23T11:32:23.527", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "User_Id": 1, |
| | | "UserName": "admin", |
| | | "Role_Id": 1, |
| | | "RoleName": "è¶
级管çå", |
| | | "PhoneNo": "", |
| | | "Remark": "", |
| | | "UserPwd": "j79rYYvCz4vdhcboB1Ausg==", |
| | | "UserTrueName": "è¶
级管çå", |
| | | "DeptName": "", |
| | | "Dept_Id": 0, |
| | | "Email": "", |
| | | "Enable": 1, |
| | | "Gender": 1, |
| | | "HeadImageUrl": "", |
| | | "LastModifyPwdDate": "2024-04-16T19:58:55", |
| | | "Address": "ç³»ç»æå¡å¨", |
| | | "AuditDate": "2024-04-16T00:54:06", |
| | | "AuditStatus": 1, |
| | | "Auditor": "è¶
级管çå", |
| | | "Token": "", |
| | | "TenantId": 0, |
| | | "Creater": "ç³»ç»", |
| | | "CreateDate": "2024-08-23T11:32:24.367", |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using HslCommunication; |
| | | using Mapster; |
| | | using Newtonsoft.Json; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | |
| | | namespace WIDESEAWCS_TaskInfoService |
| | | { |
| | | public partial class TaskService |
| | | { |
| | | /// <summary> |
| | | /// æ ¹æ®æçå·ãèµ·å§å°ååWMS请æ±ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="sourceAddress">èµ·å§å°å</param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> RequestTask(string palletCode, string EquiCodeMOM, string Roadways, string area, string CurrentChildCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); |
| | | if (hasTask != null) |
| | | { |
| | | return content.Error("å½åæçåå¨ä»»å¡"); |
| | | } |
| | | |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInTask)?.ConfigValue; |
| | | if (wmsBase == null || requestTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsBase + requestTask; |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = EquiCodeMOM, Roadways = Roadways, area = area, Position = CurrentChildCode }.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | if (!content.Status) |
| | | { |
| | | // wms失败è¿åå»NGå£ä»»å¡ |
| | | |
| | | return content; |
| | | } |
| | | |
| | | var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | return ReceiveByWMSTask(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #region æ ¹æ®æçå·ãç«å°åWMS请æ±ä»»å¡ |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçå·ãç«å°åWMS请æ±ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="stationManager">ç«å°</param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> RequestTask1(string palletCode, Dt_StationManager stationManager) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | StaticVariable.isLineRun = false; |
| | | var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); |
| | | if (hasTask != null) |
| | | { |
| | | return content.Error("å½åæçåå¨ä»»å¡"); |
| | | } |
| | | |
| | | var Station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea); |
| | | var tasks = await BaseDal.QueryFirstAsync(x => x.TaskType == (int)TaskOutboundTypeEnum.InToOut && x.TargetAddress == stationManager.stationLocation && x.CurrentAddress == Station.stationChildCode); |
| | | if (tasks != null) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"ã{stationManager.stationChildCode}ãå·²åå¨ç´æ¥åºåºä»»å¡ä»»å¡"); |
| | | return content.Error($"ã{stationManager.stationChildCode}ãå·²åå¨ç´æ¥åºåºä»»å¡ä»»å¡"); |
| | | } |
| | | |
| | | if (StaticVariable.isStackerRun) |
| | | { |
| | | if (stationManager.stationType == 7) |
| | | { |
| | | var runTask = await BaseDal.QueryFirstAsync(x => x.CurrentAddress == Station.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray); |
| | | if (runTask != null) |
| | | { |
| | | runTask.TargetAddress = stationManager.stationLocation; |
| | | runTask.NextAddress = stationManager.stationChildCode; |
| | | runTask.Grade = 3; |
| | | runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut; |
| | | runTask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | |
| | | var config1 = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.SetEmptyOutbyInToOutAsync)?.ConfigValue; |
| | | if (wmsBase1 == null || requestTask1 == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss1 = wmsBase1 + requestTask1; |
| | | |
| | | var result1 = await HttpHelper.PostAsync(wmsIpAddrss1, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = Station.stationChildCode }.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result1); |
| | | if (content.Status) |
| | | { |
| | | await BaseDal.UpdateDataAsync(runTask); |
| | | ConsoleHelper.WriteSuccessLine($"ã{runTask.PalletCode}ç´æ¥åºåºè³äºå°ã"); |
| | | return content.OK("æå"); |
| | | } |
| | | else |
| | | ConsoleHelper.WriteErrorLine(content.Message); |
| | | } |
| | | else |
| | | ConsoleHelper.WriteErrorLine($"ã{Station.stationChildCode}ãæªæ¾å°ç©ºæçå
¥åºä»»å¡"); |
| | | } |
| | | else if (stationManager.stationType == 6) |
| | | { |
| | | var emptyStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea); |
| | | var runTask = await BaseDal.QueryFirstAsync(x => x.NextAddress == emptyStation.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray); |
| | | if (runTask != null) |
| | | { |
| | | runTask.SourceAddress = stationManager.stationLocation; |
| | | runTask.CurrentAddress = stationManager.stationChildCode; |
| | | runTask.Grade = 3; |
| | | runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut; |
| | | runTask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | runTask.PalletCode = palletCode; |
| | | |
| | | var config1 = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask1 = config1.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.SetEmptyOutbyInToOutOneAsync)?.ConfigValue; |
| | | if (wmsBase1 == null || requestTask1 == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss1 = wmsBase1 + requestTask1; |
| | | |
| | | var result1 = await HttpHelper.PostAsync(wmsIpAddrss1, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = emptyStation.stationChildCode }.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result1); |
| | | if (content.Status) |
| | | { |
| | | await BaseDal.UpdateDataAsync(runTask); |
| | | ConsoleHelper.WriteSuccessLine($"ã{runTask.PalletCode}ç´æ¥åºåºè³äºå°ã"); |
| | | return content.OK("æå"); |
| | | } |
| | | else |
| | | ConsoleHelper.WriteErrorLine(content.Message); |
| | | } |
| | | } |
| | | } |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestInTask)?.ConfigValue; |
| | | if (wmsBase == null || requestTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsBase + requestTask; |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}ç«å°è¯·æ±ååºä¿¡æ¯:{content.ToJsonString()}"); |
| | | if (!content.Status) |
| | | { |
| | | // wms失败è¿åå»NGå£ä»»å¡ |
| | | //if (stationManager.stationChildCode != stationManager.stationNGChildCode) |
| | | //{ |
| | | // WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | // { |
| | | // Grade = 8, |
| | | // PalletCode = palletCode, |
| | | // SourceAddress = stationManager.stationLocation, |
| | | // TargetAddress = stationManager.stationNGLocation, |
| | | // RoadWay = stationManager.Roadway, |
| | | // TaskNum = 1000, |
| | | // TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | // TaskType = (int)TaskOutboundTypeEnum.InToOut |
| | | // }; |
| | | //} |
| | | return content; |
| | | } |
| | | |
| | | var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | ConsoleHelper.WriteSuccessLine(content.Data.ToString()); |
| | | return ReceiveByWMSTask(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | finally |
| | | { |
| | | StaticVariable.isLineRun = true; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçå·ãç«å°åWMS请æ±ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçå·</param> |
| | | /// <param name="stationManager">ç«å°</param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> RequestTask(string palletCode, Dt_StationManager stationManager) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | |
| | | // æ£æ¥å½åæçæ¯å¦åå¨ä»»å¡ |
| | | if (await HasTask(palletCode)) |
| | | { |
| | | return content.Error("å½åæçåå¨ä»»å¡"); |
| | | } |
| | | |
| | | //// æ£æ¥æ¯å¦å·²åå¨ç´æ¥åºåºä»»å¡ |
| | | //if (await HasDirectOutboundTask(stationManager)) |
| | | //{ |
| | | // return content.Error($"ã{stationManager.stationChildCode}ãå·²åå¨ç´æ¥åºåºä»»å¡ä»»å¡"); |
| | | //} |
| | | |
| | | //if (stationManager.stationType == 7) |
| | | //{ |
| | | // var result = await HandleStationType7(palletCode, stationManager); |
| | | // if (result != null) |
| | | // { |
| | | // return result; |
| | | // } |
| | | //} |
| | | //else if (stationManager.stationType == 6) |
| | | //{ |
| | | // var result = await HandleStationType6(palletCode, stationManager); |
| | | // if (result != null) |
| | | // { |
| | | // return result; |
| | | // } |
| | | //} |
| | | |
| | | // å起请æ±è·åå
¥åºä»»å¡ |
| | | content = await RequestInTask(palletCode, stationManager); |
| | | ConsoleHelper.WriteErrorLine($"{stationManager.stationChildCode}ç«å°è¯·æ±ååºä¿¡æ¯:{content.ToJsonString()}"); |
| | | |
| | | if (!content.Status) |
| | | { |
| | | return content; |
| | | } |
| | | |
| | | var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | ConsoleHelper.WriteSuccessLine(content.Data.ToString()); |
| | | return ReceiveByWMSTask(task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return WebResponseContent.Instance.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | // æ£æ¥å½åæçæ¯å¦åå¨ä»»å¡ |
| | | private async Task<bool> HasTask(string palletCode) |
| | | { |
| | | var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); |
| | | return hasTask != null; |
| | | } |
| | | |
| | | // æ£æ¥æ¯å¦å·²åå¨ç´æ¥åºåºä»»å¡ |
| | | private async Task<bool> HasDirectOutboundTask(Dt_StationManager stationManager) |
| | | { |
| | | var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea); |
| | | var tasks = await BaseDal.QueryFirstAsync(x => x.TaskType == (int)TaskOutboundTypeEnum.InToOut && x.TargetAddress == stationManager.stationLocation && x.CurrentAddress == station.stationChildCode); |
| | | return tasks != null; |
| | | } |
| | | |
| | | // å¤ç stationType 为 7 çæ
åµ |
| | | private async Task<WebResponseContent> HandleStationType7(Dt_StationManager stationManager) |
| | | { |
| | | var station = await _taskNeedBarcodeRepository.QueryFirstAsync(x => x.toArea == stationManager.stationChildCode && x.productLine == stationManager.productLine); |
| | | |
| | | return null; |
| | | } |
| | | |
| | | // å¤ç stationType 为 6 çæ
åµ |
| | | private async Task<WebResponseContent> HandleStationType6(string palletCode, Dt_StationManager stationManager) |
| | | { |
| | | var emptyStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == stationManager.productLine && x.stationArea == stationManager.stationArea); |
| | | var runTask = await BaseDal.QueryFirstAsync(x => x.NextAddress == emptyStation.stationChildCode && x.TaskState == (int)TaskInStatusEnum.Line_InFinish && x.TaskType == (int)TaskInboundTypeEnum.InTray); |
| | | |
| | | if (runTask != null) |
| | | { |
| | | runTask.SourceAddress = stationManager.stationLocation; |
| | | runTask.CurrentAddress = stationManager.stationChildCode; |
| | | runTask.Grade = 3; |
| | | runTask.TaskType = (int)TaskOutboundTypeEnum.InToOut; |
| | | runTask.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | runTask.PalletCode = palletCode; |
| | | |
| | | var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.SetEmptyOutbyInToOutAsync); |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = runTask.PalletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = emptyStation.stationChildCode }.ToJsonString()); |
| | | var content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | if (content.Status) |
| | | { |
| | | await BaseDal.UpdateDataAsync(runTask); |
| | | ConsoleHelper.WriteSuccessLine($"ã{runTask.PalletCode}ç´æ¥åºåºè³äºå°ã"); |
| | | return content.OK("æå"); |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteErrorLine(content.Message); |
| | | } |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | // è·å WMS 请æ±å°å |
| | | private string GetWmsIpAddress(string configKey) |
| | | { |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask = config.FirstOrDefault(x => x.ConfigKey == configKey)?.ConfigValue; |
| | | |
| | | if (wmsBase == null || requestTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | |
| | | return wmsBase + requestTask; |
| | | } |
| | | |
| | | // å起请æ±è·åå
¥åºä»»å¡ |
| | | private async Task<WebResponseContent> RequestInTask(string palletCode, Dt_StationManager stationManager) |
| | | { |
| | | var wmsIpAddrss = GetWmsIpAddress(SysConfigKeyConst.RequestInTask); |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = palletCode, EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode, ProductionLine = stationManager.productLine}.ToJsonString()); |
| | | return JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | } |
| | | |
| | | #endregion æ ¹æ®æçå·ãç«å°åWMS请æ±ä»»å¡ |
| | | |
| | | public async Task<WebResponseContent> RequestOutTaskToBZAsync(Dt_StationManager stationManager) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestOutTaskToBZ)?.ConfigValue; |
| | | if (wmsBase == null || requestTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsBase + requestTask; |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = stationManager.stationChildCode }.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (!content.Status) |
| | | { |
| | | //æ æ»¡è¶³æ¡ä»¶å¯åºåºè³å
è£
çåºå |
| | | return content; |
| | | } |
| | | |
| | | var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | ConsoleHelper.WriteSuccessLine(content.Data.ToString()); |
| | | |
| | | content = ReceiveWMSTask(new List<WMSTaskDTO> { task }); |
| | | |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶WMSä»»å¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="taskDTOs">WMSä»»å¡å¯¹è±¡éå</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent ReceiveByWMSTask([NotNull] WMSTaskDTO taskDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | ConsoleHelper.WriteSuccessLine($"æ¥æ¶å°ä»»å¡,任塿°æ®ï¼{JsonConvert.SerializeObject(taskDTO, Formatting.Indented)}"); |
| | | try |
| | | { |
| | | if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) |
| | | { |
| | | return content.OK(); |
| | | } |
| | | Dt_Task task = _mapper.Map<Dt_Task>(taskDTO); |
| | | task.Creater = "WMS"; |
| | | |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.OutTray) |
| | | { |
| | | // æ¥è¯¢ä¸ä¸ä¸ªè·¯ç± |
| | | List<Dt_Router> routers = _routerService.QueryNextRoutes(taskDTO.RoadWay, taskDTO.TargetAddress); |
| | | if (routers.Count > 0) |
| | | { |
| | | // 设置任å¡ç¶æä¸ºåºåºæ°å»º |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | // 设置å½åå°å为æºå°å |
| | | task.CurrentAddress = taskDTO.SourceAddress; |
| | | // 设置ä¸ä¸ä¸ªå°å为第ä¸ä¸ªåä½ç½® |
| | | task.NextAddress = routers.FirstOrDefault().ChildPosi; |
| | | } |
| | | else |
| | | { |
| | | // æ¥è¯¢ä»æºå°åå°ç®æ å°åçè·¯ç± |
| | | routers = _routerService.QueryNextRoutes(taskDTO.SourceAddress, taskDTO.TargetAddress); |
| | | if (routers.Count > 0) |
| | | { |
| | | // 设置任å¡ç¶æä¸ºåºåºå®æ |
| | | task.TaskState = (int)TaskOutStatusEnum.SC_OutFinish; |
| | | // 设置å½åå°å为æºå°å |
| | | task.CurrentAddress = taskDTO.SourceAddress; |
| | | // 设置ä¸ä¸ä¸ªå°å为第ä¸ä¸ªåä½ç½® |
| | | task.NextAddress = routers.FirstOrDefault().ChildPosi; |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay); |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.CurrentAddress = taskDTO.RoadWay; |
| | | task.NextAddress = stationinfo.stationChildCode; |
| | | task.SourceAddress = taskDTO.SourceAddress; |
| | | task.TargetAddress = taskDTO.TargetAddress; |
| | | //if (taskDTO.TaskType == (int)TaskOutboundTypeEnum.InToOut) |
| | | //{ |
| | | // task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | | //} |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) |
| | | { |
| | | var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.SourceAddress && x.Roadway == taskDTO.RoadWay); |
| | | task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | | task.SourceAddress = taskDTO.SourceAddress; |
| | | task.CurrentAddress = stationinfo.stationChildCode; |
| | | task.NextAddress = stationinfo.stationChildCode; |
| | | task.TargetAddress = taskDTO.TargetAddress; |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) |
| | | { |
| | | task.TaskState = (int)TaskStatus.Created; |
| | | task.SourceAddress = taskDTO.SourceAddress; |
| | | task.CurrentAddress = taskDTO.SourceAddress; |
| | | task.NextAddress = taskDTO.TargetAddress; |
| | | task.TargetAddress = taskDTO.TargetAddress; |
| | | } |
| | | |
| | | BaseDal.AddData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "æ¥æ¶WMSä»»å¡"); |
| | | |
| | | content = WebResponseContent.Instance.OK("æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"任塿¥æ¶é误,é误信æ¯:{ex.Message}"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶WMSä»»å¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="taskDTOs">WMSä»»å¡å¯¹è±¡éå</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent ReceiveByBZOtuTask([NotNull] WMSTaskDTO taskDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) |
| | | { |
| | | return content.OK(); |
| | | } |
| | | Dt_Task task = _mapper.Map<Dt_Task>(taskDTO); |
| | | task.Creater = "WMS"; |
| | | |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationLocation == taskDTO.TargetAddress && x.Roadway == taskDTO.RoadWay); |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.CurrentAddress = stationinfo.stationChildCode; |
| | | task.NextAddress = stationinfo.stationChildCode; |
| | | task.SourceAddress = taskDTO.SourceAddress; |
| | | task.TargetAddress = taskDTO.TargetAddress; |
| | | } |
| | | BaseDal.AddData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "æ¥æ¶WMSä»»å¡"); |
| | | |
| | | content = WebResponseContent.Instance.OK("æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"任塿¥æ¶é误,é误信æ¯:{ex.Message}"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 髿¸©åºåº |
| | | /// </summary> |
| | | /// <param name="taskDTO"></param> |
| | | /// <returns></returns> |
| | | public WebResponseContent ReceiveByWMSGWTask([NotNull] WMSTaskDTO taskDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (BaseDal.QueryFirst(x => x.TaskNum == taskDTO.TaskNum || x.PalletCode == taskDTO.PalletCode) != null) |
| | | { |
| | | return content.OK(); |
| | | } |
| | | Dt_Task task = _mapper.Map<Dt_Task>(taskDTO); |
| | | task.Creater = "WMS"; |
| | | |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.CurrentAddress = taskDTO.RoadWay; |
| | | task.NextAddress = "002-000-002"; |
| | | task.SourceAddress = taskDTO.SourceAddress; |
| | | task.TargetAddress = taskDTO.TargetAddress; |
| | | } |
| | | BaseDal.AddData(task); |
| | | |
| | | _taskExecuteDetailService.AddTaskExecuteDetail(task.WMSId, "æ¥æ¶WMSä»»å¡"); |
| | | |
| | | content = WebResponseContent.Instance.OK("æå"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"任塿¥æ¶é误,é误信æ¯:{ex.Message}"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¶WMSä»»å¡ä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="taskDTOs">WMSä»»å¡å¯¹è±¡éå</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public async Task<WebResponseContent> RequestFlow(Dt_StationManager stationManager) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestFlow)?.ConfigValue; |
| | | if (wmsBase == null || requestTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsBase + requestTask; |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode }.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | if (!content.Status) |
| | | { |
| | | return content; |
| | | } |
| | | Dt_StationManager dt_Station = content.Data as Dt_StationManager; |
| | | //dt_Station. |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"任塿¥æ¶é误,é误信æ¯:{ex.Message}"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®æçå·å设å¤å·æ¥è¯¢ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="taskNum">ä»»å¡å·</param> |
| | | /// <param name="currentAddress">å½åå°å</param> |
| | | /// <returns></returns> |
| | | public Dt_Task QueryTaskByPalletCode(string palletCode, string Roadway) |
| | | { |
| | | return BaseDal.QueryFirst(x => x.PalletCode == palletCode && x.Roadway == Roadway, TaskOrderBy); |
| | | } |
| | | |
| | | ///// <summary> |
| | | ///// æ ¹æ®è®¾å¤ç¼å·ãå½åå°åæ¥è¯¢è¾éçº¿æªæ§è¡çä»»å¡ |
| | | ///// </summary> |
| | | ///// <param name="deviceNo">设å¤ç¼å·</param> |
| | | ///// <param name="currentAddress">å½åå°å</param> |
| | | ///// <returns></returns> |
| | | //public Dt_Task QueryConveyorLineTask(string deviceNo, string currentAddress) |
| | | //{ |
| | | // return BaseDal.QueryFirst(x => (TaskInboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskInStatusEnum.InNew || TaskOutboundTypes.Contains(x.TaskType) && x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) && x.CurrentAddress == currentAddress, TaskOrderBy); |
| | | //} |
| | | |
| | | /// ä»»å¡å®æ |
| | | /// </summary> |
| | | /// <param name="taskNum">ä»»å¡ç¼å·</param> |
| | | /// <returns>è¿åå¤çç»æ</returns> |
| | | public WebResponseContent StackCraneTaskCompletedByStation(int taskNum) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); |
| | | if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); |
| | | |
| | | #region WMS忥任å¡å®æ |
| | | |
| | | var keys = new Dictionary<string, object>() |
| | | { |
| | | {"taskNum", taskNum} |
| | | }; |
| | | // è·åWMSipå°å |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; |
| | | if (wmsBase == null || completeTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddress = wmsBase + completeTask; |
| | | |
| | | var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result; |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | |
| | | #endregion WMS忥任å¡å®æ |
| | | |
| | | if (content.Status) |
| | | { |
| | | task.TaskState = 1; //ä»»å¡å®æ |
| | | var taskHty = task.Adapt<Dt_Task_Hty>(); |
| | | _taskHtyRepository.AddData(taskHty); |
| | | BaseDal.DeleteData(task); |
| | | } |
| | | |
| | | content.OK(data: task); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content = WebResponseContent.Instance.Error($"ä»»å¡å®æå¼å¸¸,ä»»å¡å·:ã{taskNum}ã"); |
| | | } |
| | | return content; |
| | | } |
| | | //public override WebResponseContent DeleteData(Dt_Task entity) |
| | | //{ |
| | | // return base.DeleteData(entity); |
| | | //} |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using HslCommunication; |
| | | using HslCommunication.Profinet.OpenProtocol; |
| | | using Mapster; |
| | | using Microsoft.AspNetCore.Mvc.ModelBinding.Validation; |
| | | using Microsoft.CodeAnalysis; |
| | | using Microsoft.VisualBasic; |
| | | using MoYu.Logging; |
| | | using Newtonsoft.Json; |
| | | using System.Text.RegularExpressions; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO.MOM; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | public partial class CommonConveyorLineJob |
| | | { |
| | | /// <summary> |
| | | /// å¤çåºåºä»»å¡ |
| | | /// </summary> |
| | | private void HandleTaskOut(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_Task taskOut) |
| | | { |
| | | if (taskOut == null) return; |
| | | //ConveyorLineTaskCommand? taskCommand = MapTaskCommand(taskOut, command); |
| | | |
| | | var next = taskOut.NextAddress; |
| | | var taskCommand = MapTaskCommand(taskOut, command); |
| | | taskOut.NextAddress = next; |
| | | |
| | | bool isOutTray = taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray; |
| | | bool isOutboundAndOutFinish = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.SC_OutFinish; |
| | | bool isOutboundAndLineOutExecuting = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting; |
| | | |
| | | if (isOutTray || isOutboundAndOutFinish || !isOutboundAndLineOutExecuting) |
| | | { |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | |
| | | var log = $"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº,ä¸ä¸ç®æ å°åã{taskCommand.TargetAddress}ã"; |
| | | ConsoleHelper.WriteWarningLine(log); |
| | | |
| | | _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | _taskService.UpdateTaskStatusToNext(taskOut); |
| | | } |
| | | else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) |
| | | { |
| | | CompleteWmsTask(taskOut, command, conveyorLine, childDeviceCode, ProtocalDetailValue); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤çæ°ä»»å¡ |
| | | /// </summary> |
| | | public async Task HandleNewTaskAsync(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) |
| | | { |
| | | var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode && x.stationPLC == conveyorLine.DeviceCode); |
| | | |
| | | switch (stationManager.stationType) |
| | | { |
| | | case 5: |
| | | case 1: |
| | | await RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue, stationManager); |
| | | break; |
| | | |
| | | case 2: |
| | | case 3: |
| | | case 4: |
| | | case 6: |
| | | await CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue, stationManager); |
| | | break; |
| | | |
| | | case 7: |
| | | RequestOutNextAddress(conveyorLine, command, childDeviceCode, ProtocalDetailValue); |
| | | break; |
| | | case 10: |
| | | ConveyorLineOutFinish(conveyorLine, command, childDeviceCode, ProtocalDetailValue); |
| | | break; |
| | | case 20: |
| | | await JZRequestInBound(conveyorLine, command, childDeviceCode, ProtocalDetailValue, stationManager); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ å°ä»»å¡å½ä»¤ |
| | | /// </summary> |
| | | private ConveyorLineTaskCommand MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand command) |
| | | { |
| | | // ä½¿ç¨æ£å表达å¼å¹é
类似 -æ°å çæ¨¡å¼ï¼å¹¶æ¿æ¢ä¸ºç©ºå符串 |
| | | task.NextAddress = Regex.Replace(task.NextAddress, @"-(\d+)", ""); |
| | | if (Convert.ToInt32(task.NextAddress) > 1999) |
| | | { |
| | | task.NextAddress = (Convert.ToInt32(task.NextAddress) - 1000).ToString(); |
| | | } |
| | | var comm = _mapper.Map<ConveyorLineTaskCommand>(task); |
| | | comm.InteractiveSignal = command.InteractiveSignal; |
| | | return comm; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 宿WMSä»»å¡ |
| | | /// </summary> |
| | | private void CompleteWmsTask(Dt_Task taskOut, ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue) |
| | | { |
| | | if (command.Barcode == "NoRead") |
| | | { |
| | | var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == taskOut.TargetAddress).Capacity; |
| | | taskOut.TargetAddress = NGAddress.ToString(); |
| | | } |
| | | |
| | | var keys = new Dictionary<string, object>() |
| | | { |
| | | {"taskNum", taskOut.TaskNum} |
| | | }; |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; |
| | | if (wmsBase == null || completeTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddress = wmsBase + completeTask; |
| | | |
| | | var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result; |
| | | WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (content.Status) |
| | | { |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | _taskService.UpdateTaskStatusToNext(taskOut); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建并åé空æçä»»å¡ |
| | | /// </summary> |
| | | public Task CreateAndSendEmptyTrayTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_StationManager stationManager) |
| | | { |
| | | if (command.Barcode != "NoRead") |
| | | { |
| | | string isTrue = string.Empty; |
| | | |
| | | ResultTrayCellsStatus result = GetResultTrayCellsStatus(command, stationManager); |
| | | |
| | | List<string> strings = stationManager.Roadway.Split(",").ToList(); |
| | | foreach (string item in strings) |
| | | { |
| | | isTrue = RequestInboundPlatform(item, result.ProductionLine, true); |
| | | if (isTrue != null) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | |
| | | WMSTaskDTO taskDTO = null; |
| | | if (isTrue != null && isTrue != string.Empty) |
| | | { |
| | | taskDTO = new WMSTaskDTO |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | Grade = 1, |
| | | PalletCode = command.Barcode, |
| | | RoadWay = childDeviceCode, |
| | | SourceAddress = childDeviceCode, |
| | | TargetAddress = isTrue, |
| | | TaskState = (int)TaskOutStatusEnum.SC_OutFinish, |
| | | Id = 2, |
| | | TaskType = (int)TaskOutboundTypeEnum.OutTray, |
| | | ProductionLine = result.ProductionLine, |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | taskDTO = CreateEmptyTrayTaskDto(command.Barcode, childDeviceCode); ; |
| | | } |
| | | |
| | | if (_taskRepository.QueryFirst(x => x.PalletCode == taskDTO.PalletCode) != null) |
| | | { |
| | | WriteInfo(conveyorLine.DeviceName, "å½åæçåå¨ä»»å¡"); |
| | | } |
| | | CreateEmptyTryTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue, taskDTO); |
| | | } |
| | | |
| | | return Task.CompletedTask; |
| | | } |
| | | public Task CreateEmptyTryTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, WMSTaskDTO taskDTO) |
| | | { |
| | | var content = CreateAndSendTask(taskDTO); |
| | | if (content.Status) |
| | | { |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | var next = task.NextAddress; |
| | | var taskCommand = MapTaskCommand(task, command); |
| | | task.NextAddress = next; |
| | | |
| | | var log = $"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{command.TaskNum}ã,æçæ¡ç ï¼ã{command.Barcode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº(空æç),ä¸ä¸ç®æ å°åã{taskCommand.TargetAddress}ã"; |
| | | ConsoleHelper.WriteWarningLine(log); |
| | | |
| | | _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | public ResultTrayCellsStatus GetResultTrayCellsStatus(ConveyorLineTaskCommand command, Dt_StationManager stationManager) |
| | | { |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.MOMIP_BASE)?.ConfigValue; |
| | | var ipAddress = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.TrayCellsStatus)?.ConfigValue; |
| | | if (wmsBase == null || ipAddress == null) |
| | | { |
| | | throw new InvalidOperationException("MOM IP æªé
ç½®"); |
| | | } |
| | | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() |
| | | { |
| | | Software = "WMS", |
| | | TrayBarcode = command.Barcode, |
| | | EquipmentCode = stationManager.stationEquipMOM, |
| | | SessionId = Guid.NewGuid().ToString(), |
| | | EmployeeNo = "MITest", |
| | | SceneType = "4", |
| | | RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") |
| | | }; |
| | | |
| | | var MOMIpAddress = wmsBase + ipAddress; |
| | | |
| | | var result = HttpHelper.PostAsync(MOMIpAddress, trayCells.ToJsonString()).Result; |
| | | WriteInfo("å
¥ç«æ ¡éª", $"ã{stationManager.stationChildCode}ãå
¥ç«æ ¡éªè¯·æ±åæ°ã{trayCells.ToJsonString()}ã"); |
| | | WriteInfo("å
¥ç«æ ¡éª", ""); |
| | | WriteInfo("å
¥ç«æ ¡éª", $"ã{stationManager.stationChildCode}ãå
¥ç«æ ¡éªè¿ååæ°ã{result}ã"); |
| | | ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); |
| | | return result1; |
| | | } |
| | | /// <summary> |
| | | /// å建空æçä»»å¡DTO |
| | | /// </summary> |
| | | private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode) |
| | | { |
| | | var request = new RequestTaskDto() |
| | | { |
| | | Position = childDeviceCode, |
| | | PalletCode = barcode, |
| | | }; |
| | | |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTrayInTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTrayInTask)?.ConfigValue; |
| | | if (wmsBase == null || requestTrayInTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsBase + requestTrayInTask; |
| | | var result = HttpHelper.PostAsync(wmsIpAddrss, request.ToJsonString()).Result; |
| | | if (result == null) |
| | | return new WMSTaskDTO(); |
| | | |
| | | WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (!content.Status) |
| | | return new WMSTaskDTO(); |
| | | |
| | | return JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 请æ±WMSä»»å¡ |
| | | /// </summary> |
| | | private async Task RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_StationManager stationManager) |
| | | { |
| | | string isTrue = string.Empty; |
| | | |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | |
| | | ResultTrayCellsStatus result = GetResultTrayCellsStatus(command, stationManager); |
| | | |
| | | if (result.SerialNos.Count == 0) |
| | | { |
| | | var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Traycontent.Status) |
| | | { |
| | | ConsoleHelper.WriteSuccessLine("äºå°ç©ºæ¡è¯·æ±åæµ"); |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | } |
| | | |
| | | List<string> strings = stationManager.Roadway.Split(",").ToList(); |
| | | foreach (string item in strings) |
| | | { |
| | | isTrue = RequestInboundPlatform(item, result.ProductionLine, false); |
| | | if (isTrue != null) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | if (isTrue != null && isTrue != string.Empty) |
| | | { |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | Grade = 1, |
| | | PalletCode = command.Barcode, |
| | | RoadWay = childDeviceCode, |
| | | SourceAddress = childDeviceCode, |
| | | TargetAddress = isTrue, |
| | | TaskState = (int)TaskOutStatusEnum.SC_OutFinish, |
| | | Id = 2, |
| | | TaskType = (int)TaskOutboundTypeEnum.OutTray, |
| | | ProductionLine = result.ProductionLine, |
| | | }; |
| | | var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); |
| | | if (Taskcontent.Status) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | |
| | | } |
| | | else |
| | | { |
| | | var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Taskcontent.Status) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æåå
¥éç½® |
| | | /// </summary> |
| | | /// <param name="conveyorLine"></param> |
| | | /// <param name="command"></param> |
| | | /// <param name="childDeviceCode"></param> |
| | | /// <param name="ProtocalDetailValue"></param> |
| | | /// <param name="stationManager"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="InvalidOperationException"></exception> |
| | | private async Task JZRequestInBound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue, Dt_StationManager stationManager) |
| | | { |
| | | try |
| | | { |
| | | StaticVariable.isLineRun = false; |
| | | |
| | | if (StaticVariable.isStackerRun) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | |
| | | ResultTrayCellsStatus resultTrayCellsStatus = GetResultTrayCellsStatus(command, stationManager); |
| | | |
| | | |
| | | //todo夿æ¯å¦ä¸ºç©ºæ¡ |
| | | var serialNosError = resultTrayCellsStatus.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | if (serialNosError.Count > 0 || !resultTrayCellsStatus.Success) |
| | | { |
| | | //NGæµç¨ |
| | | var platform = _platFormRepository.QueryFirst(x => x.ProductionLine == resultTrayCellsStatus.ProductionLine && x.DeviceCode == "1005"); |
| | | ConveyorLineTaskCommand conveyorLineTaskCommand = new ConveyorLineTaskCommand() |
| | | { |
| | | TaskNum = 1, |
| | | TargetAddress = Convert.ToInt32(platform.Capacity), |
| | | Barcode = resultTrayCellsStatus.TrayBarcode, |
| | | InteractiveSignal = command.InteractiveSignal |
| | | }; |
| | | conveyorLine.SendCommand(conveyorLineTaskCommand, childDeviceCode); |
| | | var logMessage = $"MOMæ°æ®å¼å¸¸,éè³äºå°ã{resultTrayCellsStatus.ProductionLine}ãå¼å¸¸å£ã{Convert.ToInt32(platform.Capacity)}ã"; |
| | | LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, conveyorLineTaskCommand.TargetAddress.ToString()); |
| | | return; |
| | | } |
| | | if (resultTrayCellsStatus.SerialNos.Count == 0) |
| | | { |
| | | var Traycontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | if (Traycontent.Status) |
| | | { |
| | | ConsoleHelper.WriteSuccessLine("åæç©ºæ¡è¯·æ±åæµéç½®"); |
| | | if (StaticVariable.isStackerRun) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsbase = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; |
| | | var address = configz.Where(x => x.ConfigKey == SysConfigKeyConst.QueryStockInfoForRealTrayJZAsync).FirstOrDefault()?.ConfigValue; |
| | | if (wmsbase == null || address == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsbase + address; |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { ProductLine = resultTrayCellsStatus.ProductionLine, PalletCode = command.Barcode }.ToJsonString()); |
| | | var StockInfocontent = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (StockInfocontent.Status) |
| | | { |
| | | var Taskcontent = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | ConsoleHelper.WriteErrorLine($"{JsonConvert.SerializeObject(Taskcontent)}"); |
| | | if (Taskcontent.Status) |
| | | { |
| | | if (StaticVariable.isStackerRun) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | #region |
| | | //if (task != null && task.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting && task.CurrentAddress == "1537") |
| | | //{ |
| | | // ConveyorLineTaskCommand command1 = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(stationManager.stationLocation); |
| | | |
| | | // if (command1.InteractiveSignal != 2) |
| | | // { |
| | | // ConsoleHelper.WriteSuccessLine("åæå®æè¯·æ±å
¥éç½®"); |
| | | // if (StaticVariable.isStackerRun == true) |
| | | // { |
| | | // ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | // } |
| | | // return; |
| | | // } |
| | | // else |
| | | // { |
| | | // ConsoleHelper.WriteWarningLine("åºåºä»»å¡æªå®æ"); |
| | | // return; |
| | | // } |
| | | //} |
| | | //else if (task != null && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) |
| | | //{ |
| | | // ConsoleHelper.WriteWarningLine("å·²åå¨éç½®åºåºä»»å¡"); |
| | | // return; |
| | | //} |
| | | //else |
| | | //{ |
| | | // var Task = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | // if (Task.Status) |
| | | // { |
| | | // if (StaticVariable.isStackerRun == true) |
| | | // { |
| | | // ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | // } |
| | | // } |
| | | // return; |
| | | //} |
| | | #endregion |
| | | } |
| | | else |
| | | { |
| | | WriteInfo(conveyorLine.DeviceName, Taskcontent.Message); |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | string isTrue = string.Empty; |
| | | |
| | | List<string> strings = stationManager.Roadway.Split(",").ToList(); |
| | | foreach (string item in strings) |
| | | { |
| | | isTrue = RequestInboundPlatform(item, resultTrayCellsStatus.ProductionLine, false); |
| | | if (isTrue != null) |
| | | { |
| | | break; |
| | | } |
| | | } |
| | | if (isTrue != null && isTrue != string.Empty) |
| | | { |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO |
| | | { |
| | | TaskNum = _taskRepository.GetTaskNo().Result, |
| | | Grade = 1, |
| | | PalletCode = command.Barcode, |
| | | RoadWay = isTrue, |
| | | SourceAddress = childDeviceCode, |
| | | TargetAddress = isTrue, |
| | | TaskState = (int)TaskOutStatusEnum.SC_OutFinish, |
| | | Id = 2, |
| | | TaskType = (int)TaskOutboundTypeEnum.InToOut, |
| | | ProductionLine = resultTrayCellsStatus.ProductionLine, |
| | | }; |
| | | var Taskcontent = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); |
| | | if (Taskcontent.Status) |
| | | { |
| | | if (StaticVariable.isStackerRun) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | return; |
| | | } |
| | | else |
| | | { |
| | | WriteInfo(conveyorLine.DeviceName, Taskcontent.Message); |
| | | return; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | var Task = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); |
| | | ConsoleHelper.WriteErrorLine($"{JsonConvert.SerializeObject(Task)}"); |
| | | if (Task.Status) |
| | | { |
| | | if (StaticVariable.isStackerRun) |
| | | { |
| | | ExecuteConveyorLineTask(conveyorLine, command, ProtocalDetailValue, childDeviceCode); |
| | | } |
| | | } |
| | | ConsoleHelper.WriteWarningLine("äºå°ç¼åä½å·²æ»¡"); |
| | | return; |
| | | } |
| | | |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ConsoleHelper.WriteWarningLine($"{ex.Message}"); |
| | | } |
| | | finally |
| | | { |
| | | StaticVariable.isLineRun = true; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ§è¡è¾éçº¿ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线对象</param> |
| | | /// <param name="command">è¾é线任å¡å½ä»¤</param> |
| | | /// <param name="ProtocalDetailValue">åè®®æç»å¼</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void ExecuteConveyorLineTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, int ProtocalDetailValue, string childDeviceCode) |
| | | { |
| | | // æ¥è¯¢ä»»å¡ä¿¡æ¯ |
| | | var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); |
| | | |
| | | if (task == null) return; |
| | | |
| | | // è·åé
ç½®å¼å¹¶è½¬æ¢ä¸ºå表 |
| | | var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; |
| | | var valueList = value.Split(',').ToList(); |
| | | |
| | | // æ¥å¿æ¨¡æ¿ |
| | | var logMessage = $"ã{conveyorLine._deviceName}ãä»»å¡å·ï¼ã{task.TaskNum}ã,æçæ¡ç ï¼ã{task.PalletCode}ãå·²å°è¾¾ã{childDeviceCode}ãè¯·æ±æ«ç å
¥åº(å®ç),ä¸ä¸ç®æ å°åã{{0}}ã"; |
| | | |
| | | // 夿任å¡çèµ·å§å°åæ¯å¦å¨é
ç½®åè¡¨ä¸ |
| | | if (valueList.Contains(task.SourceAddress)) |
| | | { |
| | | // è®¾ç½®ç®æ å°å为 "1000" |
| | | conveyorLine.SetValue(ConveyorLineDBName.WriteConveyorLineTargetAddress, "1000", childDeviceCode); |
| | | |
| | | // è®°å½æ¥å¿å¹¶åéå®æä¿¡å· |
| | | LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, "1000"); |
| | | } |
| | | else if (task.Roadway.Contains("JZ")) |
| | | { |
| | | // æ¥è¯¢æ¯å¦åå¨éç½®åºåºä»»å¡ |
| | | var outJZTask = _taskRepository.QueryData(x => x.Roadway == task.Roadway && |
| | | (x.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting || |
| | | x.TaskState == (int)TaskOutStatusEnum.SC_OutFinish || x.TaskState == (int)TaskOutStatusEnum.OutNew)); |
| | | |
| | | if (!outJZTask.Any()) |
| | | { |
| | | // æ å°ä»»å¡å½ä»¤ |
| | | var taskCommand = MapTaskCommand(task, command); |
| | | |
| | | // åéä»»å¡å½ä»¤ |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | |
| | | // è®°å½æ¥å¿å¹¶åéå®æä¿¡å· |
| | | LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, taskCommand.TargetAddress.ToString()); |
| | | |
| | | // æ´æ°ä»»å¡ç¶æ |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteWarningLine("å·²åå¨éç½®åºåºä»»å¡,éç½®å
¥åºä»»å¡æ æ³ä¸åè³çº¿ä½"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // æ å°ä»»å¡å½ä»¤ |
| | | var taskCommand = MapTaskCommand(task, command); |
| | | |
| | | // åéä»»å¡å½ä»¤ |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | |
| | | // è®°å½æ¥å¿å¹¶åéå®æä¿¡å· |
| | | LogAndSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, logMessage, taskCommand.TargetAddress.ToString()); |
| | | |
| | | // æ´æ°ä»»å¡ç¶æ |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è®°å½æ¥å¿å¹¶åéå®æä¿¡å· |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线对象</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | /// <param name="ProtocalDetailValue">åè®®æç»å¼</param> |
| | | /// <param name="logMessage">æ¥å¿æ¶æ¯æ¨¡æ¿</param> |
| | | /// <param name="targetAddress">ç®æ å°å</param> |
| | | private void LogAndSendFinish(CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue, string logMessage, string targetAddress) |
| | | { |
| | | // æ ¼å¼åæ¥å¿æ¶æ¯ |
| | | var log = string.Format(logMessage, targetAddress); |
| | | // è¾åºè¦åæ¥å¿ |
| | | ConsoleHelper.WriteWarningLine(log); |
| | | // è®°å½æ¥å¿ |
| | | _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | // åéå®æä¿¡å· |
| | | ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #region MyRegion |
| | | |
| | | #region << ç æ¬ 注 é >> |
| | | |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_Tasks.ConveyorLineJob |
| | | * å建è
ï¼è¡ç«¥åº |
| | | * å建æ¶é´ï¼2024/8/2 16:13:36 |
| | | * çæ¬ï¼V1.0.0 |
| | | * æè¿°ï¼ |
| | | * |
| | | * ---------------------------------------------------------------- |
| | | * ä¿®æ¹äººï¼ |
| | | * ä¿®æ¹æ¶é´ï¼ |
| | | * çæ¬ï¼V1.0.1 |
| | | * ä¿®æ¹è¯´æï¼ |
| | | * |
| | | *----------------------------------------------------------------*/ |
| | | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using AutoMapper; |
| | | using HslCommunication; |
| | | using Newtonsoft.Json; |
| | | using Quartz; |
| | | using SqlSugar; |
| | | using System.Reflection; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_BasicInfoService; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_Core.HttpContextUser; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_SignalR; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class CommonConveyorLine_AfterJob : JobBase, IJob |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IMapper _mapper; |
| | | private readonly IDt_StationManagerService _stationManagerService; |
| | | private readonly ISys_ConfigService _sys_ConfigService; |
| | | private readonly ICacheService _cacheService; |
| | | private readonly INoticeService _noticeService; |
| | | private readonly IDt_needBarcodeRepository _needBarcodeRepository; |
| | | private static List<string>? userTokenIds; |
| | | private static List<int>? userIds; |
| | | |
| | | public CommonConveyorLine_AfterJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IDt_StationManagerService stationManagerService, ISys_ConfigService sys_ConfigService, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | | _routerService = routerService; |
| | | _mapper = mapper; |
| | | _taskRepository = taskRepository; |
| | | _stationManagerService = stationManagerService; |
| | | _sys_ConfigService = sys_ConfigService; |
| | | _cacheService = cacheService; |
| | | _noticeService = noticeService; |
| | | _needBarcodeRepository = needBarcodeRepository; |
| | | } |
| | | |
| | | public async Task Execute(IJobExecutionContext context) |
| | | { |
| | | try |
| | | { |
| | | CommonConveyorLine_After conveyorLine = (CommonConveyorLine_After)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | if (conveyorLine != null) |
| | | { |
| | | List<Dt_StationManager> stationManagers = _stationManagerService.GetAllStationByDeviceCode(conveyorLine.DeviceCode); |
| | | foreach (var station in stationManagers) |
| | | { |
| | | ConveyorLineTaskCommand_After command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand_After>(station.stationChildCode); |
| | | |
| | | DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand_After.InteractiveSignal) && x.ProtocalDetailValue == command.InteractiveSignal.ToString()); |
| | | if (deviceProtocolDetails != null) |
| | | { |
| | | MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | if (method != null) |
| | | { |
| | | method.Invoke(this, new object[] { conveyorLine, command, station }); |
| | | } |
| | | } |
| | | //if (station.stationType == 6 && station.stationArea == "3") |
| | | //{ |
| | | // await GetEmptyTrayAsync(station, conveyorLine, command); |
| | | //} |
| | | |
| | | #region è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | |
| | | var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | | if (tokenInfos == null || !tokenInfos.Any()) |
| | | { |
| | | //throw new Exception(conveyorLine.DeviceName + "ç¼å䏿ªæ¾å°Tokenç¼å"); |
| | | continue; |
| | | } |
| | | var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList(); |
| | | var userIds = tokenInfos?.Select(x => x.UserId).ToList(); |
| | | |
| | | object obj = new |
| | | { |
| | | childDeviceCode = station.stationChildCode, |
| | | commandAfter = command, |
| | | }; |
| | | _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); |
| | | |
| | | #endregion è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.Out.WriteLine(nameof(CommonConveyorLine_AfterJob) + ":" + ex.ToString()); |
| | | } |
| | | finally |
| | | { |
| | | //WriteDebug("CommonConveyorLineJob", "test"); |
| | | //Console.Out.WriteLine(DateTime.Now); |
| | | } |
| | | return; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void RequestInbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, Dt_StationManager stationInfo) |
| | | { |
| | | var log = $"ã{conveyorLine.DeviceName}ã,æçå·ï¼ã{command.ConveyorLineBarcode}ã,ç«å°ï¼ã{stationInfo.remark}ã请æ±ä»»å¡"; |
| | | ConsoleHelper.WriteSuccessLine(log); |
| | | |
| | | _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | |
| | | var taskNew = _taskService.QueryTaskByPalletCode(command.ConveyorLineBarcode, stationInfo.Roadway); |
| | | if (taskNew == null) |
| | | { |
| | | if (_taskService.RequestTask(command.ConveyorLineBarcode, stationInfo).Result.Status) |
| | | { |
| | | Dt_Task task = _taskService.QueryTaskByPalletCode(command.ConveyorLineBarcode, stationInfo.Roadway); |
| | | if (task != null) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | else //妿任å¡è¯·æ±å¤±è´¥ |
| | | { |
| | | //å¦æè¯·æ±ä½ç½®ä¸NGä½ç½®ä¸è´ ååå½åä½ç½®è®©çº¿ä½éå |
| | | if (stationInfo.stationChildCode == stationInfo.stationNGChildCode) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 2, stationInfo.stationChildCode); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±ç©ºæ¡ |
| | | /// </summary> |
| | | /// <param name="conveyorLine"></param> |
| | | /// <param name="command"></param> |
| | | /// <param name="stationInfo"></param> |
| | | public void RequestEmptyOutbound(CommonConveyorLine_After conveyorLine, ConveyorLineTaskCommand_After command, Dt_StationManager stationInfo) |
| | | { |
| | | if (stationInfo.stationType != 7) return; |
| | | |
| | | var taskNew = _taskRepository.QueryData(x => x.TaskType == (int)TaskOutboundTypeEnum.OutTray); |
| | | //var need = _needBarcodeRepository.QueryFirst(x => x.toArea == stationInfo.stationChildCode && x.productLine == stationInfo.productLine); |
| | | //var cache = command.Reserved5; |
| | | //var proAddress = conveyorLine.DeviceProDTOs.Where(x => x.DeviceChildCode == stationInfo.stationChildCode).Where(x => x.DeviceProParamName == ConveyorLineDBName_After.Reserve5.ToString()).FirstOrDefault().DeviceProAddress; |
| | | var cache = Convert.ToInt16(conveyorLine.ReadValue(ConveyorLineDBName_After.Reserve5, stationInfo.stationChildCode)); |
| | | ConsoleHelper.WriteColorLine($"å·²ç»æ{taskNew.Count}个任å¡,å¯ä»¥æ¾{cache}个空æç", ConsoleColor.DarkCyan); |
| | | if (taskNew.Count + 1 < cache) //ä¸åå¨ç©ºæ¡åºåºä»»å¡ å请æ±WMSåºç©ºåº |
| | | { |
| | | //ConsoleHelper.WriteWarningLine("请æ±ç©ºæç"); |
| | | if (_taskService.RequestTask(command.ConveyorLineBarcode, stationInfo).Result.Status) |
| | | { |
| | | //need.inLineNum += 1; |
| | | //_needBarcodeRepository.UpdateData(need); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private async Task GetEmptyTrayAsync(Dt_StationManager stationManager, CommonConveyorLine_After commonConveyor, ConveyorLineTaskCommand_After conveyorLine) |
| | | { |
| | | ConveyorLineTaskCommand_After command = commonConveyor.ReadCustomer<ConveyorLineTaskCommand_After>((Convert.ToInt32(stationManager.stationChildCode) + 2).ToString()); |
| | | if (conveyorLine.HasPallet == 0 || command.HasPallet == 0) |
| | | { |
| | | var needBarcode = _needBarcodeRepository.QueryFirst(x => x.toArea == stationManager.stationChildCode); |
| | | |
| | | if (needBarcode.inLineNum < needBarcode.cacheNum) |
| | | { |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.GetFROutTrayToCW)?.ConfigValue; |
| | | if (wmsBase == null || requestTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsBase + requestTask; |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddrss, new { palletCode = "", EquiCodeMOM = stationManager.stationEquipMOM, Roadways = stationManager.Roadway, area = stationManager.stationArea, Position = stationManager.stationChildCode, ProductionLine = stationManager.productLine }.ToJsonString()); |
| | | WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (!content.Status) |
| | | { |
| | | //ConsoleHelper.WriteErrorLine($"å容å¼å«ç©ºæç失败{content.Message}"); |
| | | return; |
| | | } |
| | | WMSTaskDTO wMSTaskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | |
| | | ConsoleHelper.WriteSuccessLine(content.Data.ToString()); |
| | | List<WMSTaskDTO> wMSTaskDTOs = new List<WMSTaskDTO>() { wMSTaskDTO }; |
| | | _taskService.ReceiveWMSTask(wMSTaskDTOs); |
| | | needBarcode.inLineNum += 1; |
| | | _needBarcodeRepository.UpdateData(needBarcode); |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"å容空æçå
¥å£ã{stationManager.stationChildCode}ãå¨éæ°é>ç¼åæ°é"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"å容空æçå
¥å£ã{stationManager.stationChildCode}ãæç"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | #endregion |
¶Ô±ÈÐÂÎļþ |
| | |
| | | #region MyRegion |
| | | |
| | | #region << ç æ¬ 注 é >> |
| | | |
| | | /*---------------------------------------------------------------- |
| | | * å½å空é´ï¼WIDESEAWCS_Tasks.ConveyorLineJob |
| | | * å建è
ï¼è¡ç«¥åº |
| | | * å建æ¶é´ï¼2024/8/2 16:13:36 |
| | | * çæ¬ï¼V1.0.0 |
| | | * æè¿°ï¼ |
| | | * |
| | | * ---------------------------------------------------------------- |
| | | * ä¿®æ¹äººï¼ |
| | | * ä¿®æ¹æ¶é´ï¼ |
| | | * çæ¬ï¼V1.0.1 |
| | | * ä¿®æ¹è¯´æï¼ |
| | | * |
| | | *----------------------------------------------------------------*/ |
| | | |
| | | #endregion << ç æ¬ 注 é >> |
| | | |
| | | using Autofac.Core; |
| | | using AutoMapper; |
| | | using HslCommunication; |
| | | using Microsoft.CodeAnalysis; |
| | | using Newtonsoft.Json; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Math; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.RefAndLookup; |
| | | using Quartz; |
| | | using SqlSugar; |
| | | using System.Reflection; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_Core.HttpContextUser; |
| | | using WIDESEAWCS_DTO.MOM; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_IProcessRepository; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | using WIDESEAWCS_QuartzJob.DTO; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_SignalR; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; |
| | | using ICacheService = WIDESEAWCS_Core.Caches.ICacheService; |
| | | using Platform = WIDESEAWCS_Model.Models.Platform; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public partial class CommonConveyorLine_GWJob : JobBase, IJob |
| | | { |
| | | public readonly ITaskService _taskService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IPlatFormRepository _platFormRepository; |
| | | private readonly ISys_ConfigService _sys_ConfigService; |
| | | private readonly IMapper _mapper; |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly ICacheService _cacheService; |
| | | private readonly INoticeService _noticeService; |
| | | private readonly IDt_needBarcodeRepository _needBarcodeRepository; |
| | | private readonly IDeviceInfoRepository _deviceInfoRepository; |
| | | private static List<string>? userTokenIds; |
| | | private static List<int>? userIds; |
| | | |
| | | public CommonConveyorLine_GWJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService, IDt_StationManagerRepository stationManagerRepository, ICacheService cacheService, INoticeService noticeService, IDt_needBarcodeRepository needBarcodeRepository, IDeviceInfoRepository deviceInfoRepository) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | | _routerService = routerService; |
| | | _mapper = mapper; |
| | | _taskRepository = taskRepository; |
| | | _platFormRepository = platFormRepository; |
| | | _sys_ConfigService = sys_ConfigService; |
| | | _stationManagerRepository = stationManagerRepository; |
| | | _cacheService = cacheService; |
| | | _noticeService = noticeService; |
| | | _needBarcodeRepository = needBarcodeRepository; |
| | | _deviceInfoRepository = deviceInfoRepository; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | try |
| | | { |
| | | CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | if (conveyorLine != null) |
| | | { |
| | | #region ç«å°æ¹å¼ |
| | | |
| | | //List<Dt_StationManager> stationManagers = _stationManagerService.GetAllStationByDeviceCode(conveyorLine.DeviceCode); |
| | | |
| | | //foreach (var station in stationManagers) |
| | | //{ |
| | | // ConveyorLineTaskCommand_After command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand_After>(station.stationChildCode); |
| | | |
| | | // DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand_After.InteractiveSignal) && x.ProtocalDetailValue == command.InteractiveSignal.ToString()); |
| | | // if (deviceProtocolDetails != null) |
| | | // { |
| | | // MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | // if (method != null) |
| | | // { |
| | | // method.Invoke(this, new object[] { conveyorLine, command, station }); |
| | | // } |
| | | // } |
| | | //} |
| | | |
| | | #endregion ç«å°æ¹å¼ |
| | | |
| | | #region è·¯ç±æ¹å¼ |
| | | |
| | | List<string> childDeviceCodes = _routerService.QueryAllPositions(conveyorLine.DeviceCode); |
| | | foreach (string childDeviceCode in childDeviceCodes) |
| | | { |
| | | ConveyorLineTaskCommand_After command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand_After>(childDeviceCode); |
| | | if (command == null) continue; |
| | | if (command.ConveyorLineBarcode.Trim().Contains("\0")) command.ConveyorLineBarcode = ""; |
| | | |
| | | DeviceProtocolDetailDTO? deviceProtocolDetails = conveyorLine.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.DeviceProParamName == nameof(ConveyorLineTaskCommand_After.InteractiveSignal) && x.ProtocalDetailValue == command.InteractiveSignal.ToString()); |
| | | if (deviceProtocolDetails != null) |
| | | { |
| | | MethodInfo? method = GetType().GetMethod(deviceProtocolDetails.ProtocolDetailType); |
| | | if (method != null) |
| | | { |
| | | method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode }); |
| | | } |
| | | } |
| | | |
| | | if (childDeviceCode == "3464" || childDeviceCode == "3460" || childDeviceCode == "3456" ) |
| | | { |
| | | Platform platform = _platFormRepository.QueryFirst(x => x.DeviceCode == conveyorLine.DeviceCode && x.PlatCode == childDeviceCode && x.Status == "Active"); |
| | | if (platform != null) |
| | | { |
| | | if (command.HasPallet != 1) |
| | | { |
| | | MethodInfo? method = GetType().GetMethod(platform.ExecutionMethod); |
| | | if (method != null) |
| | | { |
| | | //var strings = platform.Location.Split(',').ToList(); |
| | | int count = 1; |
| | | method.Invoke(this, new object[] { conveyorLine, command, childDeviceCode, count, platform }); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | #region è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | |
| | | var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | | if (tokenInfos == null || !tokenInfos.Any()) |
| | | { |
| | | //throw new Exception(conveyorLine.DeviceName + "ç¼å䏿ªæ¾å°Tokenç¼å"); |
| | | continue; |
| | | } |
| | | var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList(); |
| | | var userIds = tokenInfos?.Select(x => x.UserId).ToList(); |
| | | |
| | | object obj = new |
| | | { |
| | | childDeviceCode, |
| | | commandAfter = command, |
| | | }; |
| | | _noticeService.LineData(userIds?.FirstOrDefault(), userTokenIds, new { conveyorLine.DeviceName, data = obj }); |
| | | |
| | | #endregion è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | } |
| | | |
| | | #endregion è·¯ç±æ¹å¼ |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.Out.WriteLine(nameof(CommonConveyorLine_GWJob) + ":" + ex.ToString()); |
| | | } |
| | | finally |
| | | { |
| | | //WriteDebug("CommonConveyorLineJob", "test"); |
| | | //Console.Out.WriteLine(DateTime.Now); |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> |
| | | public void RequestInbound(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | try |
| | | { |
| | | var task = _taskService.QueryBarCodeConveyorLineTask(command.ConveyorLineBarcode, childDeviceCode); |
| | | //HandleTaskOut(conveyorLine, command, childDeviceCode, task); |
| | | // && command.ConveyorLineBarcode != "NoRead" && !command.ConveyorLineBarcode.IsNotEmptyOrNull() |
| | | var log = $"ã{conveyorLine.DeviceName}ãæçå·ï¼ã{command.ConveyorLineBarcode}ãä»»å¡å·ï¼ã{command.ConveyorLineTaskNum}ã设å¤ç¼ç ï¼ã{childDeviceCode}ã"; |
| | | ConsoleHelper.WriteSuccessLine(log); |
| | | |
| | | _noticeService.Logs(userTokenIds, new { conveyorLine.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(conveyorLine.DeviceName, log); |
| | | |
| | | if (task == null) |
| | | { |
| | | HandleNewTask(conveyorLine, command, childDeviceCode); |
| | | } |
| | | else |
| | | { |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.Out.WriteLine(ex.ToString()); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±å
¥åºä¸ä¸å°å |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void RequestInNextAddress(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | if (command.ConveyorLineBarcode != task.PalletCode) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 2, childDeviceCode); |
| | | return; |
| | | } |
| | | |
| | | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); |
| | | if (newTask != null) |
| | | { |
| | | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTaskNum, newTask.TaskNum, childDeviceCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, newTask.NextAddress, childDeviceCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, command.ConveyorLineBarcode, childDeviceCode); |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); |
| | | //taskCommand.InteractiveSignal = command.InteractiveSignal; |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线å
¥åºå®æ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> |
| | | public void ConveyorLineInFinish(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | var task = _taskService.QueryExecutingTaskByBarcode(command.ConveyorLineBarcode, childDeviceCode); |
| | | if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) |
| | | { |
| | | //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | |
| | | WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); |
| | | |
| | | if (content.Status) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | } |
| | | |
| | | Console.Out.WriteLine(content.Serialize()); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±åºä¿¡æ¯ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> |
| | | public void RequestOutbound(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | |
| | | //ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | //if (task.TaskType == (int)TaskOutboundTypeEnum.OutTray) |
| | | //{ |
| | | // _taskService.UpdateTaskStatusToNext(task); |
| | | //} |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线请æ±åºåºä¸ä¸å°å |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void RequestOutNextAddress(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.MOMIP_BASE)?.ConfigValue; |
| | | var ipAddress = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.TrayCellsStatus)?.ConfigValue; |
| | | if (wmsBase == null || ipAddress == null) |
| | | { |
| | | throw new InvalidOperationException("MOM IP æªé
ç½®"); |
| | | } |
| | | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); |
| | | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() |
| | | { |
| | | Software = "WMS", |
| | | TrayBarcode = command.ConveyorLineBarcode, |
| | | EquipmentCode = stationManager.stationEquipMOM, |
| | | SessionId = Guid.NewGuid().ToString(), |
| | | EmployeeNo = "MITest", |
| | | SceneType = "1", |
| | | RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") |
| | | }; |
| | | |
| | | var MOMIpAddress = wmsBase + ipAddress; |
| | | |
| | | var result = HttpHelper.PostAsync(MOMIpAddress, trayCells.ToJsonString()).Result; |
| | | WriteInfo("å
¥ç«æ ¡éª", $"ã{childDeviceCode}ãå
¥ç«æ ¡éªè¯·æ±åæ°ã{trayCells.ToJsonString()}ã"); |
| | | WriteInfo("å
¥ç«æ ¡éª", ""); |
| | | WriteInfo("å
¥ç«æ ¡éª", $"ã{childDeviceCode}ãå
¥ç«æ ¡éªè¿ååæ°ã{result}ã"); |
| | | ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); |
| | | if (result1.Success || task.Remark != "NG") |
| | | { |
| | | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); |
| | | if (newTask != null) |
| | | { |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(newTask); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationNGChildCode); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线åºåºå®æ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | public void ConveyorLineOutFinish(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | try |
| | | { |
| | | var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | taskCommand.InteractiveSignal = command.InteractiveSignal; |
| | | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); |
| | | if (task.PalletCode != command.ConveyorLineBarcode) |
| | | { |
| | | //var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == task.TargetAddress).Capacity; |
| | | //taskCommand.ConveyorLineTargetAddress = (short)NGAddress; |
| | | taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationNGChildCode); |
| | | } |
| | | else |
| | | { |
| | | //Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); |
| | | taskCommand.ConveyorLineTargetAddress = Convert.ToInt16(stationManager.stationLocation); |
| | | } |
| | | |
| | | if (stationManager.stationPLC == "1007" && stationManager.stationArea == "Cache") //æ´æ°å¨éæ°æ® |
| | | { |
| | | dt_needBarcode needBarcode = _needBarcodeRepository.QueryFirst(x => x.productLine == stationManager.productLine && x.toArea == stationManager.stationChildCode); |
| | | |
| | | if (needBarcode != null) |
| | | { |
| | | if (needBarcode.inLineNum == 0 || needBarcode.inLineNum > 0) |
| | | { |
| | | needBarcode.inLineNum = 0; |
| | | } |
| | | else |
| | | { |
| | | needBarcode.inLineNum--; |
| | | } |
| | | _needBarcodeRepository.UpdateData(needBarcode); |
| | | } |
| | | } |
| | | content = _taskService.UpdateTaskStatusToNext(task); |
| | | var proAddress = conveyorLine.DeviceProDTOs |
| | | .FirstOrDefault(x => x.DeviceChildCode == childDeviceCode && x.DeviceProParamName == ConveyorLineDBName_After.InteractiveSignal.ToString()) |
| | | ?.DeviceProAddress; |
| | | string address = proAddress.Contains(".0") ? proAddress : proAddress + ".0"; |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTaskNum, taskCommand.ConveyorLineTaskNum, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, taskCommand.ConveyorLineTargetAddress, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, taskCommand.ConveyorLineBarcode, childDeviceCode); |
| | | conveyorLine.Communicator.Write(address, 1); |
| | | //conveyorLine.SetValue(ConveyorLineDBName_After.InteractiveSignal, taskCommand.InteractiveSignal, childDeviceCode); |
| | | //conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteInfo($"{conveyorLine.DeviceName}è¾é线åºåºå®æ", $"å¼å¸¸ä¿¡æ¯ã{JsonConvert.SerializeObject(ex.Message)}ã,åèç¹ã{childDeviceCode}ãæçå·ï¼ã{command.ConveyorLineBarcode}ã"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è¾é线交äºå®æ |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> |
| | | /// <param name="value">å¼</param> |
| | | //public void ConveyorLineSendFinish(CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDeValue, bool value) |
| | | //{ |
| | | // DeviceProDTO? devicePro = conveyorLine.DeviceProDTOs.Where(x => x.DeviceProParamType == nameof(DeviceCommand) && x.DeviceChildCode == childDeviceCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); |
| | | // string[] x = devicePro.DeviceProAddress.Split('.'); |
| | | // x[x.Length - 1] = (ProtocalDetailValue + 1).ToString(); |
| | | // string DeviceProAddress = string.Join(".", x); |
| | | // conveyorLine.Communicator.Write(DeviceProAddress, value); |
| | | //} |
| | | |
| | | /// <summary> |
| | | /// çæµç©ºæçå®çåºåº |
| | | /// </summary> |
| | | /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> |
| | | /// <param name="command">读åç请æ±ä¿¡æ¯</param> |
| | | /// <param name="childDeviceCode">å设å¤ç¼å·</param> |
| | | /// <param name="index">线ä½å½åbool读ååç§»å°å</param> |
| | | public async void EmptyTrayReturn(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, int index, Platform platform) |
| | | { |
| | | try |
| | | { |
| | | //WriteInfo("åºåº", $"ã{JsonConvert.SerializeObject(platform)}ã"); |
| | | TaskOutboundTypeEnum taskOutboundTypeEnum; |
| | | if (platform.PlatformType.Contains("OutTray")) |
| | | taskOutboundTypeEnum = TaskOutboundTypeEnum.OutTray; |
| | | else |
| | | taskOutboundTypeEnum = TaskOutboundTypeEnum.Outbound; |
| | | await CheckAndCreateTask(taskOutboundTypeEnum, childDeviceCode, index, platform); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ£æ¥ä»»å¡å¹¶å建æ°ä»»å¡ |
| | | /// </summary> |
| | | private async Task CheckAndCreateTask(TaskOutboundTypeEnum taskType, string childDeviceCode, int index, Platform platform) |
| | | { |
| | | var tasks = _taskRepository.QueryData(x => x.TaskType == (int)taskType && x.TargetAddress == childDeviceCode); |
| | | if (tasks.Count < platform.Capacity) |
| | | { |
| | | #region è°ç¨WMSè·ååºåºä»»å¡ |
| | | |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO(); |
| | | |
| | | // è·åWMSipå°å |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTrayOutTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTrayOutTask)?.ConfigValue; |
| | | if (wmsBase == null || requestTrayOutTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddress = wmsBase + requestTrayOutTask; |
| | | |
| | | var device = _deviceInfoRepository.QueryData(x => x.DeviceStatus == "1" && x.DeviceRemark == platform.Id.ToString()); |
| | | var deviceCode = device.Select(x => x.DeviceCode).ToList(); |
| | | List<string> strings = platform.Location.Split(',').ToList(); |
| | | |
| | | var result = await HttpHelper.PostAsync(wmsIpAddress, new { Position = childDeviceCode, Tag = (int)taskType, AreaCdoe = platform.Stacker, AreaCdoes = strings, platform.ProductionLine }.ToJsonString()); |
| | | //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()); |
| | | //WriteInfo("åºåº", $"ã{JsonConvert.SerializeObject(taskDTO)}ã"); |
| | | #endregion è°ç¨WMSè·ååºåºä»»å¡ |
| | | |
| | | CreateAndSendTask(taskDTO); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åå»ºä»»å¡ |
| | | /// </summary> |
| | | public WebResponseContent CreateAndSendTask(WMSTaskDTO taskDTO) |
| | | { |
| | | var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); |
| | | if (content.Status) |
| | | { |
| | | Console.WriteLine($"{taskDTO.TaskType}å¼å«æå"); |
| | | } |
| | | return content; |
| | | } |
| | | } |
| | | } |
| | | |
| | | #endregion |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Masuit.Tools; |
| | | using Masuit.Tools.Systems; |
| | | using Newtonsoft.Json; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_DTO.MOM; |
| | | using WIDESEAWCS_DTO.TaskInfo; |
| | | using WIDESEAWCS_DTO.WMS; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using static Microsoft.EntityFrameworkCore.DbLoggerCategory.Database; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | public partial class CommonConveyorLine_GWJob |
| | | { |
| | | /// <summary> |
| | | /// å¤çåºåºä»»å¡ |
| | | /// </summary> |
| | | private void HandleTaskOut(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, int ProtocalDetailValue, Dt_Task taskOut) |
| | | { |
| | | if (taskOut == null) return; |
| | | |
| | | var taskCommand = MapTaskCommand(taskOut, command); |
| | | |
| | | bool isOutTray = taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray; |
| | | bool isOutboundAndOutFinish = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.SC_OutFinish; |
| | | bool isOutboundAndLineOutExecuting = taskOut.TaskType == (int)TaskOutboundTypeEnum.Outbound && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting; |
| | | |
| | | if (isOutTray || isOutboundAndOutFinish || !isOutboundAndLineOutExecuting) |
| | | { |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | _taskService.UpdateTaskStatusToNext(taskOut); |
| | | } |
| | | else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) |
| | | { |
| | | CompleteWmsTask(taskOut, command, conveyorLine, childDeviceCode, ProtocalDetailValue); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å¤çæ°ä»»å¡ |
| | | /// </summary> |
| | | private void HandleNewTask(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); |
| | | |
| | | if (stationManager == null) |
| | | { |
| | | // Handle the case where stationManager is not found, if necessary |
| | | Console.WriteLine($"æªæ¾å°{childDeviceCode}ç«å°"); |
| | | return; |
| | | } |
| | | |
| | | // æ ¹æ®ç«ç±»åæ§è¡ç¸åºçæ¹æ³ |
| | | switch (stationManager.stationType) |
| | | { |
| | | case 8: |
| | | case 9: |
| | | case 11: |
| | | case 12: |
| | | var task = _taskService.QueryExecutingTaskByBarcode(command.ConveyorLineBarcode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | ExecuteStationAction(stationManager, conveyorLine, command, childDeviceCode); |
| | | } |
| | | break; |
| | | case 1: |
| | | case 6: |
| | | case 10: |
| | | ExecuteStationAction(stationManager, conveyorLine, command, childDeviceCode); |
| | | break; |
| | | } |
| | | |
| | | #region |
| | | //Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationPLC == conveyorLine.DeviceCode && x.stationChildCode == childDeviceCode); |
| | | |
| | | //if (stationManager.stationType == 8) |
| | | //{ |
| | | // var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | // if (task != null) |
| | | // { |
| | | // RequestInNextAddress(conveyorLine, command, childDeviceCode); |
| | | // } |
| | | //} |
| | | //else if (stationManager.stationType == 9) |
| | | //{ |
| | | // var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | // if (task != null) |
| | | // { |
| | | // ConveyorLineInFinish(conveyorLine, command, childDeviceCode); |
| | | // } |
| | | //} |
| | | //else if (stationManager.stationType == 1) |
| | | //{ |
| | | // if (stationManager.stationArea.Contains("GW")) |
| | | // { |
| | | // var taskGW = _taskRepository.QueryFirst(x => x.TargetAddress == childDeviceCode && x.TaskState == (int)TaskOutStatusEnum.OutFinish); |
| | | // if (taskGW != null) |
| | | // { |
| | | // command.ConveyorLineBarcode = taskGW.PalletCode; |
| | | // } |
| | | // } |
| | | // RequestWmsTask(conveyorLine, command, childDeviceCode); |
| | | //} |
| | | //else if (stationManager.stationType == 10) |
| | | //{ |
| | | // var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | // if (task != null) |
| | | // { |
| | | // RequestOutbound(conveyorLine, command, childDeviceCode); |
| | | // } |
| | | //} |
| | | //else if (stationManager.stationType == 11) |
| | | //{ |
| | | // var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | // if (task != null) |
| | | // { |
| | | // RequestOutNextAddress(conveyorLine, command, childDeviceCode); |
| | | // } |
| | | //} |
| | | //else if (stationManager.stationType == 12) |
| | | //{ |
| | | // var task = _taskService.QueryExecutingConveyorLineTask(command.ConveyorLineTaskNum, childDeviceCode); |
| | | // if (task != null) |
| | | // { |
| | | // ConveyorLineOutFinish(conveyorLine, command, childDeviceCode); |
| | | // } |
| | | //} |
| | | #endregion |
| | | } |
| | | |
| | | private void ExecuteStationAction(Dt_StationManager stationManager, CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | switch (stationManager.stationType) |
| | | { |
| | | case 8: |
| | | RequestInNextAddress(conveyorLine, command, childDeviceCode); |
| | | break; |
| | | |
| | | case 9: |
| | | ConveyorLineInFinish(conveyorLine, command, childDeviceCode); |
| | | break; |
| | | |
| | | case 10: |
| | | RequestOutbound(conveyorLine, command, childDeviceCode); |
| | | break; |
| | | |
| | | case 11: |
| | | RequestOutNextAddress(conveyorLine, command, childDeviceCode); |
| | | break; |
| | | |
| | | case 12: |
| | | ConveyorLineOutFinish(conveyorLine, command, childDeviceCode); |
| | | break; |
| | | |
| | | case 6: |
| | | CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode); |
| | | break; |
| | | case 16: |
| | | AbNormalStationBZTask(conveyorLine, command, childDeviceCode); |
| | | break; |
| | | case 1: |
| | | RequestWmsTask(conveyorLine, command, childDeviceCode, stationManager); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ å°ä»»å¡å½ä»¤ |
| | | /// </summary> |
| | | private ConveyorLineTaskCommand_After MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand_After command) |
| | | { |
| | | var comm = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | comm.ResponState = 1; |
| | | comm.InteractiveSignal = command.InteractiveSignal; |
| | | return comm; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 宿WMSä»»å¡ |
| | | /// </summary> |
| | | private void CompleteWmsTask(Dt_Task taskOut, ConveyorLineTaskCommand_After command, CommonConveyorLine_GW conveyorLine, string childDeviceCode, int ProtocalDetailValue) |
| | | { |
| | | if (command.ConveyorLineBarcode == "NoRead") |
| | | { |
| | | var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == taskOut.TargetAddress).Capacity; |
| | | taskOut.TargetAddress = NGAddress.ToString(); |
| | | } |
| | | |
| | | var keys = new Dictionary<string, object>() |
| | | { |
| | | {"taskNum", taskOut.TaskNum} |
| | | }; |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var completeTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; |
| | | if (wmsBase == null || completeTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddress = wmsBase + completeTask; |
| | | |
| | | var result = HttpHelper.GetAsync(wmsIpAddress, keys).Result; |
| | | WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (content.Status) |
| | | { |
| | | _taskService.UpdateTaskStatusToNext(taskOut); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建并åé空æçä»»å¡ |
| | | /// </summary> |
| | | public void CreateAndSendEmptyTrayTask(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | if (command.ConveyorLineBarcode != "NoRead") |
| | | { |
| | | #region |
| | | //var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | //var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.MOMIP_BASE)?.ConfigValue; |
| | | //var ipAddress = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.TrayCellsStatus)?.ConfigValue; |
| | | //if (wmsBase == null || ipAddress == null) |
| | | //{ |
| | | // throw new InvalidOperationException("MOM IP æªé
ç½®"); |
| | | //} |
| | | //var stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode); |
| | | //TrayCellsStatusDto trayCells = new TrayCellsStatusDto() |
| | | //{ |
| | | // Software = "WMS", |
| | | // TrayBarcode = command.ConveyorLineBarcode, |
| | | // EquipmentCode = stationManager.stationEquipMOM, |
| | | // SessionId = Guid.NewGuid().ToString(), |
| | | // EmployeeNo = "MITest", |
| | | // SceneType = "4", |
| | | // RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ") |
| | | //}; |
| | | |
| | | //var MOMIpAddress = wmsBase + ipAddress; |
| | | |
| | | //var result = HttpHelper.PostAsync(MOMIpAddress, trayCells.ToJsonString()).Result; |
| | | //WriteInfo("å
¥ç«æ ¡éª", $"ã{stationManager.stationChildCode}ãå
¥ç«æ ¡éªè¯·æ±åæ°ã{trayCells.ToJsonString()}ã"); |
| | | //WriteInfo("å
¥ç«æ ¡éª", ""); |
| | | //WriteInfo("å
¥ç«æ ¡éª", $"ã{stationManager.stationChildCode}ãå
¥ç«æ ¡éªè¿ååæ°ã{result}ã"); |
| | | //ResultTrayCellsStatus result1 = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(result); |
| | | |
| | | //if (result1.Success) |
| | | //{ |
| | | // var serialNosError = result1.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | // if (serialNosError.Count > 0) |
| | | // { |
| | | // if (result1.ProcessCode == "AG01") |
| | | // { |
| | | // var strings = new List<string>() { "2234", "2226", "2218" }; |
| | | // foreach (var item in strings) |
| | | // { |
| | | // var station = _stationManagerRepository.QueryFirst(x => x.productLine == result1.ProductionLine && x.stationChildCode == item); |
| | | // if (station != null) |
| | | // { |
| | | // IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == station.stationPLC); |
| | | // if (device != null) |
| | | // { |
| | | // CommonConveyorLine_After CommonConveyorLine_After = (CommonConveyorLine_After)device; |
| | | |
| | | // ConveyorLineTaskCommand_After taskCommand = new ConveyorLineTaskCommand_After() |
| | | // { |
| | | // ConveyorLineTaskNum = Convert.ToInt32(1), |
| | | // ConveyorLineTargetAddress = Convert.ToInt16(2234), |
| | | // ConveyorLineBarcode = command.ConveyorLineBarcode.ToString(), |
| | | // }; |
| | | // CommonConveyorLine_After.SendCommand(taskCommand, station.stationChildCode); |
| | | // CommonConveyorLine_After.SetValue(ConveyorLineDBName_After.ResponState, 1, station.stationChildCode); |
| | | // } |
| | | // //åéå°å容 |
| | | // return; |
| | | // } |
| | | // } |
| | | // } |
| | | // } |
| | | // else |
| | | // { |
| | | // var strings = new List<string>() { "2142", "2094", "2046" }; |
| | | |
| | | // foreach (var item in strings) |
| | | // { |
| | | // var station = _stationManagerRepository.QueryFirst(x => x.productLine == result1.ProductionLine && x.stationChildCode == item); |
| | | // if (station != null) |
| | | // { |
| | | // IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == station.stationPLC); |
| | | // if (device != null) |
| | | // { |
| | | // CommonConveyorLine_After CommonConveyorLine_After = (CommonConveyorLine_After)device; |
| | | // ConveyorLineTaskCommand_After conveyorLineAfter = CommonConveyorLine_After.ReadCustomer<ConveyorLineTaskCommand_After>(Convert.ToInt32(station.stationChildCode).ToString()); |
| | | // if (conveyorLineAfter.InteractiveSignal == 16) |
| | | // { |
| | | // var TaskNum = SnowFlake.LongId; |
| | | // Dt_Task task = new Dt_Task() |
| | | // { |
| | | // TaskNum = _taskRepository.GetTaskNo().Result, |
| | | // Grade = 1, |
| | | // PalletCode = command.ConveyorLineBarcode, |
| | | // Roadway = station.Roadway, |
| | | // SourceAddress = childDeviceCode, |
| | | // TargetAddress = station.stationChildCode, |
| | | // CurrentAddress = childDeviceCode, |
| | | // NextAddress = station.stationChildCode, |
| | | // TaskState = (int)TaskInStatusEnum.InNew, |
| | | // ExceptionMessage = "", |
| | | // TaskId = 0, |
| | | // TaskType = (int)TaskInboundTypeEnum.InTray, |
| | | // ProductionLine = result1.ProductionLine, |
| | | // }; |
| | | // _taskRepository.AddData(task); |
| | | // ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | // conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | // conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | // _taskService.UpdateTaskStatusToNext(task); |
| | | // } |
| | | // } |
| | | // //åéå°å容 |
| | | // return; |
| | | // } |
| | | // } |
| | | // var taskDTO = CreateEmptyTrayTaskDto(command.ConveyorLineBarcode, childDeviceCode); |
| | | |
| | | // if (_taskRepository.QueryFirst(x => x.PalletCode == taskDTO.PalletCode) != null) |
| | | // { |
| | | // WriteInfo(conveyorLine.DeviceName, "å½åæçåå¨ä»»å¡"); |
| | | // return; |
| | | // } |
| | | |
| | | // var content = CreateAndSendTask(taskDTO); |
| | | // if (content.Status) |
| | | // { |
| | | // var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | // if (task != null) |
| | | // { |
| | | // var taskCommand = MapTaskCommand(task, command); |
| | | // conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | // _taskService.UpdateTaskStatusToNext(task); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | //} |
| | | //else |
| | | //{ |
| | | // ConsoleHelper.WriteErrorLine(result1.MOMMessage); |
| | | //} |
| | | #endregion |
| | | |
| | | if (_taskRepository.QueryFirst(x => x.PalletCode == command.ConveyorLineBarcode) != null) |
| | | { |
| | | WriteInfo(conveyorLine.DeviceName, "å½åæçåå¨ä»»å¡"); |
| | | return; |
| | | } |
| | | |
| | | |
| | | var taskDTO = CreateEmptyTrayTaskDto(command.ConveyorLineBarcode, childDeviceCode); |
| | | |
| | | |
| | | var content = CreateAndSendTask(taskDTO); |
| | | if (content.Status) |
| | | { |
| | | var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | var taskCommand = MapTaskCommand(task, command); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建空æçä»»å¡DTO |
| | | /// </summary> |
| | | private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode) |
| | | { |
| | | var request = new RequestTaskDto() |
| | | { |
| | | Position = childDeviceCode, |
| | | PalletCode = barcode, |
| | | }; |
| | | |
| | | var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; |
| | | var requestTrayInTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.RequestTask)?.ConfigValue; |
| | | if (wmsBase == null || requestTrayInTask == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = wmsBase + requestTrayInTask; |
| | | var result = HttpHelper.PostAsync(wmsIpAddrss, request.ToJsonString()).Result; |
| | | if (result == null) |
| | | return new WMSTaskDTO(); |
| | | |
| | | WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (!content.Status) |
| | | return new WMSTaskDTO(); |
| | | |
| | | return JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 请æ±WMSä»»å¡ |
| | | /// </summary> |
| | | private async void RequestWmsTask(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, Dt_StationManager stationManager) |
| | | { |
| | | if (command.ConveyorLineBarcode.IsNullOrEmpty()) return; |
| | | |
| | | var Hastask = _taskService.QueryBarCodeConveyorLineTask(command.ConveyorLineBarcode, childDeviceCode); |
| | | if (Hastask != null) |
| | | { |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(Hastask); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | return; |
| | | } |
| | | |
| | | var content = await _taskService.RequestWMSTask(command.ConveyorLineBarcode, childDeviceCode); |
| | | if (content.Status) |
| | | { |
| | | var task = _taskService.QueryBarCodeConveyorLineTask(command.ConveyorLineBarcode, childDeviceCode); |
| | | if (task != null) |
| | | { |
| | | ConveyorLineTaskCommand_After taskCommand = _mapper.Map<ConveyorLineTaskCommand_After>(task); |
| | | conveyorLine.SendCommand(taskCommand, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | _taskService.UpdateTaskStatusToNext(task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | WriteInfo(conveyorLine.DeviceName, content.Message); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, stationManager.stationNGChildCode, childDeviceCode); |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 1, childDeviceCode); |
| | | ConsoleHelper.WriteErrorLine($"ã{conveyorLine.DeviceName}ãæçå·ï¼ã{command.ConveyorLineBarcode}ã请æ±ç¹ä½ï¼ã{childDeviceCode}ãå¼å¸¸ä¿¡æ¯ã{content.Message}ã"); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 髿¸©åºåºåä»»å¡å®æ 妿任塿 è¯NGåå°ä»»å¡æ¹ä¸ºå¼å¸¸æåºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="conveyorLine"></param> |
| | | /// <param name="command"></param> |
| | | /// <param name="childDeviceCode"></param> |
| | | /// <param name="task"></param> |
| | | /// <exception cref="Exception"></exception> |
| | | private void CreateAbNormalOutbound(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, Dt_Task task) |
| | | { |
| | | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode); |
| | | |
| | | if (stationManager == null || string.IsNullOrWhiteSpace(stationManager.stationNGChildCode) || string.IsNullOrWhiteSpace(stationManager.stationNGLocation)) |
| | | { |
| | | throw new Exception("æªé
ç½®ç«å°ç对åºNGå£ä¿¡æ¯"); |
| | | } |
| | | |
| | | task.SourceAddress = task.TargetAddress; |
| | | task.TargetAddress = stationManager.stationNGLocation; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | task.TaskType = (int)TaskOutboundTypeEnum.InToOut; |
| | | task.Grade = 10; //æ¤å¤ åºåºè³å¼å¸¸æåºå£çä»»å¡åºé¤ç«è¦å¤æä¼å
æ§è¡ |
| | | |
| | | _taskRepository.UpdateData(task); |
| | | //Dt_Task task= _taskRepository.QueryFirst(x=>) |
| | | //_taskRepository.QueryFirst() |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å
è£
å¼å¸¸æåºå£é»è¾ |
| | | /// </summary> |
| | | /// <param name="conveyorLine"></param> |
| | | /// <param name="command"></param> |
| | | /// <param name="childDeviceCode"></param> |
| | | private void AbNormalStationBZTask(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode) |
| | | { |
| | | Dt_StationManager stationManager = _stationManagerRepository.QueryFirst(x => x.stationChildCode == childDeviceCode && x.stationPLC == conveyorLine.DeviceCode); |
| | | |
| | | if (command.ConveyorLineBarcode.IsNullOrEmpty()) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ResponState, 2, childDeviceCode); |
| | | return; |
| | | } |
| | | |
| | | |
| | | if (conveyorLine.ReadValue(ConveyorLineDBName_After.InteractiveSignal, childDeviceCode).ObjToInt() == 0) //æçæ£åä¿¡å· |
| | | { |
| | | |
| | | }; |
| | | |
| | | conveyorLine.ReadValue(ConveyorLineDBName_After.InteractiveSignal, childDeviceCode); //æçææ çµè¯ä¿¡å· |
| | | |
| | | |
| | | |
| | | } |
| | | |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Masuit.Tools; |
| | | using Quartz; |
| | | using System.Diagnostics.CodeAnalysis; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_Common; |
| | | using WIDESEAWCS_Common.TaskEnum; |
| | | using WIDESEAWCS_Core.Caches; |
| | | using WIDESEAWCS_Core.Helper; |
| | | using WIDESEAWCS_Core.HttpContextUser; |
| | | using WIDESEAWCS_IProcessRepository; |
| | | using WIDESEAWCS_ISystemServices; |
| | | using WIDESEAWCS_ITaskInfo_HtyRepository; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.DeviceBase; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_QuartzJob.StackerCrane.Enum; |
| | | using WIDESEAWCS_SignalR; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_Tasks.StackerCraneJob; |
| | | |
| | | namespace WIDESEAWCS_Tasks |
| | | { |
| | | [DisallowConcurrentExecution] |
| | | public class CommonStackerCraneJob : JobBase, IJob |
| | | { |
| | | private readonly ITaskService _taskService; |
| | | private readonly ITaskExecuteDetailService _taskExecuteDetailService; |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly IRouterService _routerService; |
| | | private readonly IProcessRepository _processRepository; |
| | | private readonly ICacheService _cacheService; |
| | | private readonly INoticeService _noticeService; |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly ITask_HtyRepository _htyRepository; |
| | | private readonly ISys_ConfigService _sys_ConfigService; |
| | | private static List<string>? userTokenIds; |
| | | private static List<int>? userIds; |
| | | |
| | | public CommonStackerCraneJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IProcessRepository processRepository, ICacheService cacheService, INoticeService noticeService, IDt_StationManagerRepository stationManagerRepository, ITask_HtyRepository htyRepository, ISys_ConfigService sys_ConfigService) |
| | | { |
| | | _taskService = taskService; |
| | | _taskExecuteDetailService = taskExecuteDetailService; |
| | | _taskRepository = taskRepository; |
| | | _routerService = routerService; |
| | | _processRepository = processRepository; |
| | | _cacheService = cacheService; |
| | | _noticeService = noticeService; |
| | | _stationManagerRepository = stationManagerRepository; |
| | | _htyRepository = htyRepository; |
| | | _sys_ConfigService = sys_ConfigService; |
| | | } |
| | | |
| | | public Task Execute(IJobExecutionContext context) |
| | | { |
| | | try |
| | | { |
| | | CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams"); |
| | | if (commonStackerCrane != null) |
| | | { |
| | | if (!commonStackerCrane.IsEventSubscribed) |
| | | { |
| | | commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//订é
ä»»å¡å®æäºä»¶ |
| | | } |
| | | |
| | | if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal) |
| | | { |
| | | commonStackerCrane.CheckStackerCraneTaskCompleted();//鲿¢ä»»å¡å®æäºä»¶çæµè¶
æ¶ï¼åæå¨è§¦å䏿¬¡ |
| | | |
| | | if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby) |
| | | { |
| | | Dt_Task? task = null; |
| | | if (commonStackerCrane.DeviceName.Contains("éç½®")) |
| | | { |
| | | if (StaticVariable.isLineRun) |
| | | { |
| | | StaticVariable.isStackerRun = false; |
| | | task = GetTask(commonStackerCrane); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | task = GetTask(commonStackerCrane); |
| | | } |
| | | |
| | | if (task != null) |
| | | { |
| | | StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task); |
| | | if (stackerCraneTaskCommand != null) |
| | | { |
| | | var taskNum = commonStackerCrane.GetValue<StackerCraneDBName, int>(StackerCraneDBName.TaskNum); |
| | | //var taskBarCode = commonStackerCrane.GetValue<StackerCraneDBName, string>(StackerCraneDBName.Barcode); |
| | | ConsoleHelper.WriteColorLine($"ã{commonStackerCrane.DeviceName}ãå åæºä»»å¡å·ï¼ã{taskNum}ãä»»å¡ä»»å¡å·ï¼ã{task.TaskNum}ã", ConsoleColor.DarkBlue); |
| | | if (taskNum == 0) |
| | | { |
| | | ConsoleHelper.WriteColorLine($"ã{commonStackerCrane.DeviceName}ãä»»å¡å·ä¸ºã{0}ã,ä»»å¡å·ä¸ä¸è´å¯ä»¥ä¸åä»»å¡", ConsoleColor.DarkBlue); |
| | | |
| | | Thread.Sleep(1000); |
| | | bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand); |
| | | if (sendFlag) |
| | | { |
| | | //StringBuilder builder = new StringBuilder(); |
| | | //builder.AppendLine(); |
| | | //builder.AppendLine($"ã{commonStackerCrane.DeviceName}ãå åæºç¶æï¼ã{commonStackerCrane.StackerCraneStatusDes}ã,æ¶é´ï¼ã{DateTime.Now}ã"); |
| | | //builder.AppendLine($"ã{commonStackerCrane.DeviceName}ãæèªå¨ç¶æï¼ã{commonStackerCrane.StackerCraneAutoStatusDes}ã,æ¶é´ï¼ã{DateTime.Now}ã"); |
| | | //builder.AppendLine($"ã{commonStackerCrane.DeviceName}ãä½ä¸ç¶æï¼ã{commonStackerCrane.StackerCraneWorkStatusDes}ã,æ¶é´ï¼ã{DateTime.Now}ã"); |
| | | //builder.AppendLine($"ã{commonStackerCrane.DeviceName}ãä¸å任塿å,ã{JsonConvert.SerializeObject(stackerCraneTaskCommand, Formatting.Indented)}ã"); |
| | | //builder.AppendLine($"æ¶é´ï¼ã{DateTime.Now}ã"); |
| | | //builder.AppendLine(); |
| | | //ConsoleHelper.WriteColorLine(builder, ConsoleColor.Blue); |
| | | commonStackerCrane.LastTaskType = task.TaskType; |
| | | _taskService.UpdateTaskStatusToNext(task.TaskNum); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteColorLine($"ã{commonStackerCrane.DeviceName}ãä»»å¡å·ä¸ä¸ºã{0}ã,ä¸å¯ä»¥ä¸åä»»å¡", ConsoleColor.DarkBlue); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | #region è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | |
| | | var tokenInfos = _cacheService.Get<List<UserInfo>>("Cache_UserToken"); |
| | | if (tokenInfos != null && tokenInfos.Any()) |
| | | { |
| | | var userTokenIds = tokenInfos?.Select(x => x.Token_ID).ToList(); |
| | | var userIds = tokenInfos?.Select(x => x.UserId).ToList(); |
| | | |
| | | object obj = new |
| | | { |
| | | commonStackerCrane.StackerCraneStatusDes, |
| | | commonStackerCrane.StackerCraneAutoStatusDes, |
| | | commonStackerCrane.StackerCraneWorkStatusDes, |
| | | commonStackerCrane.DeviceCode, |
| | | commonStackerCrane.DeviceName, |
| | | commonStackerCrane.CurrentTaskNum, |
| | | commonStackerCrane.LastTaskNum, |
| | | }; |
| | | _noticeService.StackerData(userIds?.FirstOrDefault(), userTokenIds, new { commonStackerCrane.DeviceName, data = obj }); |
| | | } |
| | | |
| | | #endregion è°ç¨äºä»¶æ»çº¿éç¥å端 |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | WriteError("CommonConveyorLineJob", "test", ex); |
| | | ConsoleHelper.WriteErrorLine($"{ex.Message}"); |
| | | //Console.WriteLine(nameof(CommonStackerCraneJob) + ":" + ex.ToString()); |
| | | } |
| | | finally |
| | | { |
| | | StaticVariable.isStackerRun = true; |
| | | } |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®æäºä»¶è®¢é
çæ¹æ³ |
| | | /// </summary> |
| | | /// <param name="sender"></param> |
| | | /// <param name="e"></param> |
| | | private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e) |
| | | { |
| | | CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane; |
| | | if (commonStackerCrane != null) |
| | | { |
| | | if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5) |
| | | { |
| | | ConsoleHelper.WriteColorLine($"ã{commonStackerCrane.DeviceName}ãå åæºä½ä¸ç¶æï¼ã{(int)commonStackerCrane.StackerCraneWorkStatusValue}ãæ¶é´ã{DateTime.Now}ã", ConsoleColor.Magenta); |
| | | |
| | | string str = $"ã{commonStackerCrane.DeviceName}ãä»»å¡å®æ,ä»»å¡å·ï¼ã{e.TaskNum}ãæ¶é´ã{DateTime.Now}ã"; |
| | | WriteInfo(commonStackerCrane.DeviceName, str); |
| | | ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue); |
| | | var task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum); |
| | | |
| | | if (task == null) commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | |
| | | if (commonStackerCrane.DeviceCode.Contains("GW") && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.TargetAddress); |
| | | |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == station.stationPLC); |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)device; |
| | | var isResult = conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, task.PalletCode, task.TargetAddress); |
| | | if (!isResult) |
| | | { |
| | | var result = conveyorLine.GetValue<ConveyorLineDBName_After, string>(ConveyorLineDBName_After.ConveyorLineBarcode, task.TargetAddress); |
| | | if (result != task.PalletCode) |
| | | { |
| | | conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, task.PalletCode, task.TargetAddress); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | return; |
| | | } |
| | | |
| | | var content = _taskService.StackCraneTaskCompleted(e.TaskNum); |
| | | if ((commonStackerCrane.DeviceCode.Contains("CH") || commonStackerCrane.DeviceCode.Contains("JZ")) && task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum); |
| | | Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); |
| | | } |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && (task.TargetAddress == "002-071-001" || task.TargetAddress == "001-061-001")) |
| | | { |
| | | var TASKHTY = task.Adapt<Dt_Task_Hty>(); |
| | | _taskRepository.DeleteData(task); |
| | | _htyRepository.AddData(TASKHTY); |
| | | } |
| | | var isWorkType = commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5); |
| | | str = $"{commonStackerCrane.DeviceName}ãWMS|WCSä»»å¡å®æï¼ã{content.Status}ã,å åæºå®æä¿¡å·åå
¥ï¼ã{isWorkType}ã,ä»»å¡å·ï¼ã{e.TaskNum}ãæ¶é´ã{DateTime.Now}ã"; |
| | | WriteInfo(commonStackerCrane.DeviceName, str); |
| | | ConsoleHelper.WriteColorLine(str, ConsoleColor.Blue); |
| | | } |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åä»»å¡ |
| | | /// </summary> |
| | | /// <param name="commonStackerCrane">å åæºå¯¹è±¡</param> |
| | | /// <returns></returns> |
| | | private Dt_Task? GetTask(CommonStackerCrane commonStackerCrane) |
| | | { |
| | | Dt_Task task = null; |
| | | if (commonStackerCrane.LastTaskType == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | else |
| | | { |
| | | var lastTaskTypeGroup = commonStackerCrane.LastTaskType.GetValueOrDefault().GetTaskTypeGroup(); |
| | | if (lastTaskTypeGroup == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | if (task == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | task = _taskService.QueryStackerCraneOutTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | } |
| | | |
| | | if (task != null && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | // æ£æ¥å½ååºåºä»»å¡ç«å°æ¯å¦å
许æ¾è´§ |
| | | var occupiedStation = OutTaskStationIsOccupied(task); |
| | | if (occupiedStation == null) |
| | | { |
| | | // 妿å½ååºåºä»»å¡ç«å°ä¸å
许æ¾è´§ï¼æé¤å½åä»»å¡ï¼æ¥æ¾å
¶ä»åºåºä»»å¡ |
| | | |
| | | var log = $"ä»»å¡å·ï¼ã{task.TaskNum}ãåºåºå°åï¼ã{task.NextAddress}ãä¸å
许æ¾è´§"; |
| | | ConsoleHelper.WriteErrorLine(log); |
| | | |
| | | _noticeService.Logs(userTokenIds, new { commonStackerCrane.DeviceName, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(commonStackerCrane.DeviceName, log); |
| | | |
| | | task = FindAnotherOutboundTask(commonStackerCrane.DeviceCode, task.TaskId); |
| | | |
| | | if (task == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | return task; |
| | | } |
| | | |
| | | #region éç½®åºåºå¤ææ¯å¦è½æ§è¡ä»»å¡ |
| | | |
| | | if (!task.IsNullOrEmpty() && task.Roadway.Contains("JZ") && task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | // æ¥è¯¢æ¯å¦åå¨éç½®å
¥åºä»»å¡ |
| | | var inJZTask = _taskRepository.QueryData(x => x.Roadway == task.Roadway && |
| | | (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || |
| | | x.TaskState == (int)TaskInStatusEnum.SC_InExecuting || |
| | | x.TaskState == (int)TaskInStatusEnum.Line_InFinish)); |
| | | |
| | | ConsoleHelper.WriteErrorLine($"å½åé置线ä½åå¨å
¥åºä»»å¡{inJZTask.Count()}æ¡,{(inJZTask.Count() > 0 ? "å¯å
¥åº" : "ä¸å¯å
¥åº")}"); |
| | | if (!inJZTask.IsNullOrEmpty()) |
| | | return null; |
| | | } |
| | | |
| | | #endregion éç½®åºåºå¤ææ¯å¦è½æ§è¡ä»»å¡ |
| | | } |
| | | else if (task == null) |
| | | { |
| | | task = _taskService.QueryStackerCraneInTask(commonStackerCrane.DeviceCode); |
| | | } |
| | | return task; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// åºåºä»»å¡å¤æåºåºç«å°æ¯å¦è¢«å ç¨ |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns>妿æªè¢«å ç¨ï¼è¿åä¼ å
¥çä»»å¡ä¿¡æ¯ï¼å¦åï¼è¿ånull</returns> |
| | | private Dt_Task? OutTaskStationIsOccupied([NotNull] Dt_Task task) |
| | | { |
| | | Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault(); |
| | | if (task.Roadway.Contains("GW") || task.Roadway.Contains("CW")) |
| | | { |
| | | if (router != null) |
| | | { |
| | | IDevice? device = null; |
| | | if (task.Roadway.Contains("CW")) |
| | | { |
| | | device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode); |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)device; |
| | | if (conveyorLine.IsOccupied(task.NextAddress))//åºåºç«å°æªè¢«å ç¨ |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°åºåºç«å°ã{task.NextAddress}ã对åºçéè®¯å¯¹è±¡ï¼æ æ³å¤æåºåºç«å°æ¯å¦è¢«å ç¨"); |
| | | } |
| | | } |
| | | } |
| | | else |
| | | { |
| | | IDevice? device = null; |
| | | if (task.Roadway.Contains("GW")) |
| | | { |
| | | device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == "1004"); |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine_GW conveyorLine = (CommonConveyorLine_GW)device; |
| | | if (conveyorLine.IsOccupied(task.TargetAddress))//åºåºç«å°æªè¢«å ç¨ |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°åºåºç«å°ã{task.TargetAddress}ã对åºçéè®¯å¯¹è±¡ï¼æ æ³å¤æåºåºç«å°æ¯å¦è¢«å ç¨"); |
| | | } |
| | | } |
| | | //_taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°ç«å°ã{task.TargetAddress}ãä¿¡æ¯ï¼æ æ³æ ¡éªç«å°"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | if ((task.NextAddress == ("002-071-001") || task.NextAddress == ("001-061-001")) && (task.Roadway.Contains("CH")|| task.Roadway.Contains("JZ"))) |
| | | { |
| | | return task; |
| | | } |
| | | else |
| | | { |
| | | //Dt_Router? router = _routerService.QueryNextRoutes(task.Roadway, task.NextAddress).FirstOrDefault(); |
| | | if (router != null) |
| | | { |
| | | IDevice? device = Storage.Devices.FirstOrDefault(x => x.DeviceCode == router.ChildPosiDeviceCode); |
| | | if (device != null) |
| | | { |
| | | CommonConveyorLine conveyorLine = (CommonConveyorLine)device; |
| | | if (conveyorLine.IsOccupiedx(router.ChildPosi))//åºåºç«å°æªè¢«å ç¨ |
| | | { |
| | | return task; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°åºåºç«å°ã{router.ChildPosiDeviceCode}ã对åºçéè®¯å¯¹è±¡ï¼æ æ³å¤æåºåºç«å°æ¯å¦è¢«å ç¨"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°ç«å°ã{task.NextAddress}ãä¿¡æ¯ï¼æ æ³æ ¡éªç«å°"); |
| | | } |
| | | } |
| | | } |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¾å
¶ä»åºåºä»»å¡çè¾
婿¹æ³ï¼æé¤æå®ä»»å¡IDçä»»å¡ï¼ |
| | | /// </summary> |
| | | /// <param name="deviceCode">设å¤ä»£ç </param> |
| | | /// <param name="excludedTaskId">è¦æé¤çä»»å¡ID</param> |
| | | /// <returns></returns> |
| | | private Dt_Task? FindAnotherOutboundTask(string deviceCode, int excludedTaskId) |
| | | { |
| | | // å
è·åææç¬¦åæ¡ä»¶ï¼æé¤æå®ä»»å¡IDï¼çåºåºä»»å¡å表 |
| | | var allOutboundTasks = _taskService.QueryAllOutboundTasks(deviceCode); |
| | | var availableTasks = allOutboundTasks?.Where(t => excludedTaskId != t.TaskId && t.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup).ToList(); |
| | | |
| | | if (availableTasks == null || availableTasks.Count == 0) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | // éåå¯ç¨ä»»å¡åè¡¨ï¼æ£æ¥ä»»å¡ç«å°æ¯å¦å
许æ¾è´§ï¼æ¾å°ç¬¬ä¸ä¸ªå
许æ¾è´§çä»»å¡å°±è¿å |
| | | foreach (var candidateTask in availableTasks) |
| | | { |
| | | var occupiedStation = OutTaskStationIsOccupied(candidateTask); |
| | | if (occupiedStation != null) |
| | | { |
| | | return candidateTask; |
| | | } |
| | | var log = $"ä»»å¡å·ï¼ã{candidateTask.TaskNum}ãåºåºå°åï¼ã{candidateTask.NextAddress}ãä¸å
许æ¾è´§"; |
| | | ConsoleHelper.WriteErrorLine(log); |
| | | |
| | | _noticeService.Logs(userTokenIds, new { deviceCode, log = log, time = DateTime.Now.ToString("G"), color = "red" }); |
| | | WriteInfo(deviceCode, log); |
| | | } |
| | | |
| | | return null; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä»»å¡å®ä½è½¬æ¢æå½ä»¤Model |
| | | /// </summary> |
| | | /// <param name="task">ä»»å¡å®ä½</param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public StackerCraneTaskCommand? ConvertToStackerCraneTaskCommand([NotNull] Dt_Task task) |
| | | { |
| | | StackerCraneTaskCommand stackerCraneTaskCommand = new StackerCraneTaskCommand(); |
| | | |
| | | stackerCraneTaskCommand.Barcode = task.PalletCode; |
| | | stackerCraneTaskCommand.TaskNum = task.TaskNum; |
| | | stackerCraneTaskCommand.WorkType = 1; |
| | | stackerCraneTaskCommand.TrayType = 0; |
| | | stackerCraneTaskCommand.StartCommand = 1; |
| | | if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//夿æ¯å¦æ¯å
¥åºä»»å¡ |
| | | { |
| | | var value = _sys_ConfigService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStation, SysConfigKeyConst.JZNGInBoundStation).ConfigValue; |
| | | var valueList = value.Split(',').ToList(); |
| | | if ((valueList.Contains(task.SourceAddress)) && (task.Roadway.Contains("CH") || task.Roadway.Contains("JZ"))) |
| | | { |
| | | string[] souredCodes = task.CurrentAddress.Split("-"); |
| | | if (souredCodes.Length == 3) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(souredCodes[0]); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(souredCodes[1]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(souredCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"å
¥åºä»»å¡èµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.CurrentAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] targetCodes = task.NextAddress.Split("-"); |
| | | if (targetCodes.Length == 3) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2; |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"å
¥åºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.NextAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway); |
| | | if (routers.Count > 0) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow); |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer); |
| | | |
| | | string[] targetCodes = task.NextAddress.Split("-"); |
| | | if (targetCodes.Length == 3) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2; |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"å
¥åºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.NextAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°ç«å°ã{task.NextAddress}ãä¿¡æ¯ï¼æ æ³è·å对åºçå åæºåè´§ç«å°ä¿¡æ¯"); |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) |
| | | { |
| | | if (task.Roadway.Contains("GW")) |
| | | { |
| | | string[] endCodes = task.NextAddress.Split("-"); |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(endCodes[1]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(endCodes[2]); |
| | | string[] sourceCodes = task.SourceAddress.Split("-"); |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2; |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | if ((task.TargetAddress == "002-071-001" || task.TargetAddress == "001-061-001") && (task.Roadway.Contains("JZ") || task.Roadway.Contains("CH"))) |
| | | { |
| | | string[] endCodes = task.NextAddress.Split("-"); |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(endCodes[0]); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(endCodes[1]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(endCodes[2]); |
| | | string[] sourceCodes = task.SourceAddress.Split("-"); |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2; |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | List<Dt_Router> routers = _routerService.QueryNextRoutes(task.Roadway, task.TargetAddress); |
| | | if (routers.Count > 0) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(routers.FirstOrDefault().SrmRow); |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(routers.FirstOrDefault().SrmColumn); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(routers.FirstOrDefault().SrmLayer); |
| | | |
| | | string[] sourceCodes = task.CurrentAddress.Split("-"); |
| | | if (sourceCodes.Length == 3) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2; |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"åºåºä»»å¡èµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.CurrentAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"æªæ¾å°ç«å°ã{task.NextAddress}ãä¿¡æ¯ï¼æ æ³è·å对åºçå åæºæ¾è´§ç«å°ä¿¡æ¯"); |
| | | return null; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) |
| | | { |
| | | string[] targetCodes = task.NextAddress.Split("-"); |
| | | if (targetCodes.Length == 3) |
| | | { |
| | | stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]) % 2 != 0 ? (short)1 : (short)2; |
| | | stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]); |
| | | stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"ç§»åºä»»å¡ç»ç¹é误ï¼èµ·ç¹ï¼ã{task.NextAddress}ã"); |
| | | return null; |
| | | } |
| | | string[] sourceCodes = task.CurrentAddress.Split("-"); |
| | | if (sourceCodes.Length == 3) |
| | | { |
| | | stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]) % 2 != 0 ? (short)1 : (short)2; |
| | | stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]); |
| | | stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]); |
| | | } |
| | | else |
| | | { |
| | | //æ°æ®é
ç½®é误 |
| | | _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"ç§»åºä»»å¡èµ·ç¹é误ï¼èµ·ç¹ï¼ã{task.CurrentAddress}ã"); |
| | | return null; |
| | | } |
| | | } |
| | | return stackerCraneTaskCommand; |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "$schema": "https://json.schemastore.org/prettierrc", |
| | | "semi": false, |
| | | "tabWidth": 2, |
| | | "singleQuote": true, |
| | | "printWidth": 100, |
| | | "trailingComma": "none" |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "CurrentProjectSetting": null |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "ExpandedNodes": [ |
| | | "", |
| | | "\\src", |
| | | "\\src\\extension", |
| | | "\\src\\extension\\widesea_wms", |
| | | "\\src\\extension\\widesea_wms\\basicinfo" |
| | | ], |
| | | "PreviewInSolutionExplorer": false |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | /// <reference types="vite/client" /> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "name": "vol-vue3vite", |
| | | "version": "1.0.0", |
| | | "private": true, |
| | | "scripts": { |
| | | "serve": "vite --host", |
| | | "dev": "vite --host", |
| | | "buildWithCheck": "run-p type-check build-only", |
| | | "preview": "vite preview", |
| | | "test:unit": "vitest", |
| | | "build": "vite build", |
| | | "type-check": "vue-tsc --noEmit -p tsconfig.vitest.json --composite false", |
| | | "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore", |
| | | "format": "prettier --write src/", |
| | | "clean": "rimraf node_modules" |
| | | }, |
| | | "dependencies": { |
| | | "@amap/amap-jsapi-loader": "^1.0.1", |
| | | "@microsoft/signalr": "^7.0.3", |
| | | "ali-oss": "^6.17.1", |
| | | "axios": "^1.3.4", |
| | | "core-js": "^3.29.0", |
| | | "echarts": "^5.4.1", |
| | | "element-plus": "^2.2.32", |
| | | "less": "^4.1.3", |
| | | "pinia": "^2.0.32", |
| | | "rollup-plugin-commonjs": "^10.1.0", |
| | | "vite-plugin-commonjs": "^0.10.1", |
| | | "vue": "^3.2.47", |
| | | "vue-draggable-next": "^2.1.1", |
| | | "vue-router": "^4.1.6", |
| | | "vuex": "^4.1.0", |
| | | "wangeditor": "^4.7.15" |
| | | }, |
| | | "devDependencies": { |
| | | "@babel/eslint-parser": "^7.21.3", |
| | | "@rushstack/eslint-patch": "^1.2.0", |
| | | "@types/jsdom": "^21.1.0", |
| | | "@types/node": "^18.14.2", |
| | | "@vitejs/plugin-vue": "^4.0.0", |
| | | "@vitejs/plugin-vue-jsx": "^3.0.0", |
| | | "@vue/eslint-config-prettier": "^7.1.0", |
| | | "@vue/eslint-config-typescript": "^11.0.2", |
| | | "@vue/test-utils": "^2.3.0", |
| | | "@vue/tsconfig": "^0.1.3", |
| | | "eslint": "^8.36.0", |
| | | "eslint-plugin-vue": "^9.9.0", |
| | | "jsdom": "^21.1.0", |
| | | "npm-run-all": "^4.1.5", |
| | | "prettier": "^2.8.4", |
| | | "rimraf": "^4.1.2", |
| | | "rollup-plugin-visualizer": "^5.9.0", |
| | | "stylus": "^0.59.0", |
| | | "typescript": "~4.8.4", |
| | | "vite": "^4.5.10", |
| | | "vite-plugin-require-transform": "^1.0.21", |
| | | "vitest": "^0.29.1", |
| | | "vue-tsc": "^1.2.0" |
| | | }, |
| | | "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e" |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "extends": "@vue/tsconfig/tsconfig.web.json", |
| | | "include": ["env.d.ts", "src/**/*", "src/**/*.vue"], |
| | | "compilerOptions": { |
| | | "baseUrl": ".", |
| | | "allowJs": true,//jsæä»¶å¿½ç¥æç¤º |
| | | "paths": { |
| | | "@/*": ["./src/*"] |
| | | } |
| | | }, |
| | | |
| | | "references": [ |
| | | { |
| | | "path": "./tsconfig.node.json" |
| | | } |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "extends": "@vue/tsconfig/tsconfig.node.json", |
| | | "include": ["vite.config.*", "vitest.config.*", "cypress.config.*", "playwright.config.*"], |
| | | "compilerOptions": { |
| | | "composite": true, |
| | | "types": ["node"] |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { fileURLToPath } from 'node:url' |
| | | import commonjs from 'vite-plugin-commonjs' |
| | | |
| | | import { defineConfig } from 'vite' |
| | | import vue from '@vitejs/plugin-vue' |
| | | import vueJsx from '@vitejs/plugin-vue-jsx' |
| | | import { visualizer } from 'rollup-plugin-visualizer' |
| | | |
| | | // https://vitejs.dev/config/ |
| | | export default defineConfig({ |
| | | plugins: [ |
| | | commonjs(), |
| | | // commonjs({ |
| | | // // è¿éå¯ä»¥é
ç½®æä»¶çé项ï¼ä¾å¦æå®éè¦è½¬æ¢ç模åç |
| | | // include: 'node_modules/**', // å
å«node_modulesä¸çæææ¨¡å |
| | | // }), |
| | | vue(), |
| | | vueJsx(), |
| | | visualizer({ |
| | | filename: 'report_form_rollup-plugin-visualizer.html' |
| | | }), |
| | | //å¼ç¨åæç¤ºï¼ |
| | | // requireTransform({ |
| | | // fileRegex: /.js$|.ts$/ |
| | | // }) |
| | | ], |
| | | define: { |
| | | }, |
| | | optimizeDeps: { |
| | | exclude: ['vue'] |
| | | }, |
| | | build: { |
| | | commonjsOptions: { |
| | | transformMixedEsModules: true |
| | | }, |
| | | rollupOptions: { |
| | | output: { |
| | | //æ¯ä¸ªnode_modules模ååæä¸ä¸ªjsæä»¶ |
| | | manualChunks(id) { |
| | | if (id.includes('node_modules')) { |
| | | return id.toString().split('node_modules/')[1].split('/')[0].toString() |
| | | } |
| | | }, |
| | | // ç¨äºä»å
¥å£ç¹å建çåçæå
è¾åºæ ¼å¼[name]表示æä»¶å,[hash]表示该æä»¶å
容hashå¼ |
| | | // entryFileNames: 'assets/js/[name].[hash].js', // ç¨äºå½åä»£ç æåæ¶å建çå
±äº«åçè¾åºå½å |
| | | // chunkFileNames: 'assets/js/[name].[hash].js', // ç¨äºè¾åºéæèµæºçå½åï¼[ext]表示æä»¶æ©å±å |
| | | // assetFileNames: 'assets/[ext]/[name].[hash].[ext]' |
| | | entryFileNames: 'assets/js/[hash].js', // ç¨äºå½åä»£ç æåæ¶å建çå
±äº«åçè¾åºå½å |
| | | chunkFileNames: 'assets/js/[hash].js', // ç¨äºè¾åºéæèµæºçå½åï¼[ext]表示æä»¶æ©å±å |
| | | assetFileNames: 'assets/[ext]/[hash].[ext]' |
| | | } |
| | | }, |
| | | // outDir: 'dist', // è¾åºç®å½ï¼é»è®¤ä¸º 'dist' |
| | | // rollupOptions: { |
| | | // input: { |
| | | // main: 'src/main.js', // ä½ çå
¥å£æä»¶ |
| | | // } |
| | | // }, |
| | | sourcemap: false //çææºæ å°æä»¶ |
| | | }, |
| | | publicDir: 'public', // è¿éæå®äº public æä»¶å¤¹çä½ç½® |
| | | css: { |
| | | //æ¥çCSSå±äºåªä¸ªcssæä»¶ |
| | | devSourcemap: false |
| | | }, |
| | | server: { |
| | | port: 8081 |
| | | // proxy: { |
| | | // '/api': { |
| | | // target: 'http://xxxx.com', |
| | | // changeOrigin: true, |
| | | // rewrite: (path) => path.replace(/^\/api/, '') |
| | | // } |
| | | // } |
| | | }, |
| | | resolve: { |
| | | extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue', '.mjs'], |
| | | alias: { |
| | | '@': fileURLToPath(new URL('./src', import.meta.url)) |
| | | } |
| | | } |
| | | }) |
| | |
| | | using System.Linq; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using System.Timers; |
| | | using Timer = System.Timers.Timer; |
| | | |
| | | namespace WIDESEA_Common; |
| | | |
| | | public class HttpsClient |
| | | { |
| | | private static readonly Timer cleanupTimer; |
| | | |
| | | static HttpsClient() |
| | | { |
| | | // è®¾ç½®å®æ¶å¨ï¼æ¯10å鿏
ç䏿¬¡requestTrackerçæ°æ® |
| | | cleanupTimer = new Timer(10 * 60 * 1000); |
| | | cleanupTimer.Elapsed += CleanupRequestTracker; |
| | | cleanupTimer.AutoReset = true; |
| | | cleanupTimer.Enabled = true; |
| | | } |
| | | |
| | | private static readonly LogFactory LogFactory = new LogFactory(); |
| | | |
| | | // å°è£
ä¸ä¸ªç¨HttpClientåéGET请æ±çæ¹æ³æåæ° |
| | |
| | | |
| | | // ç¨äºè¿½è¸ªæ¯ä¸ªè¯·æ±çè°ç¨æ¬¡æ°åæåè¯·æ±æ¶é´ã |
| | | private static readonly Dictionary<string, (int Count, DateTime LastRequestTime)> requestTracker = new(); |
| | | |
| | | // å°è£
ä¸ä¸ªç¨HttpClientåéPost请æ±çæ¹æ³æåæ° |
| | | public static async Task<string> PostAsync(string url, Dictionary<string, object> parameters) |
| | | { |
| | | // å建ä¸ä¸ªæ°çåå
¸ï¼æé¤ RequestTime å SessionId |
| | | var filteredParameters = parameters.Where(p => p.Key != "RequestTime"&& p.Key != "SessionId").ToDictionary(p => p.Key, p => p.Value); |
| | | var filteredParameters = parameters.Where(p => p.Key != "RequestTime" && p.Key != "SessionId").ToDictionary(p => p.Key, p => p.Value); |
| | | |
| | | string requestKey = $"{url}:{JsonConvert.SerializeObject(filteredParameters)}"; |
| | | // æ£æ¥è¯·æ±æ¬¡æ°åæ¶é´éå¶ |
| | | // æ£æ¥è¯·æ±æ¬¡æ°åæ¶é´éå¶ |
| | | if (requestTracker.TryGetValue(requestKey, out var requestInfo)) |
| | | { |
| | | if (requestInfo.Count >= 5 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(3)) |
| | |
| | | Console.WriteLine("è¯·æ±æ¬¡æ°å·²è¾¾å°éå¶ï¼è¯·ç¨ååè¯ã"); |
| | | Console.WriteLine($"æ¥å£å°åï¼{url}"); |
| | | Console.WriteLine($"è¯·æ±æ°æ®ï¼{JsonConvert.SerializeObject(filteredParameters, Formatting.Indented)}"); |
| | | throw new Exception($"æ¥å£å°åï¼{url}---è¯·æ±æ¬¡æ°å·²è¾¾å°éå¶ï¼è¯·ç¨ååè¯ã"); |
| | | throw new Exception($"æ¥å£å°åï¼{url}---è¯·æ±æ¬¡æ°å·²è¾¾å°éå¶ï¼è¯·ç¨ååè¯ã"); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | // æ¸
çrequestTrackerçæ¹æ³ |
| | | private static void CleanupRequestTracker(object sender, ElapsedEventArgs e) |
| | | { |
| | | // è·åå½åæ¶é´ |
| | | DateTime now = DateTime.Now; |
| | | |
| | | // éåå¹¶æ¸
çrequestTrackerä¸è¶
è¿10åéçè®°å½ |
| | | var keysToRemove = requestTracker.Keys.Where(key => now > requestTracker[key].LastRequestTime.AddMinutes(10)).ToList(); |
| | | |
| | | foreach (var key in keysToRemove) |
| | | { |
| | | requestTracker.Remove(key); |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | int taskNum = _taskRepository.GetTaskNo().Result; |
| | | |
| | | WIDESEA_Model.Models.Dt_Task task = new WIDESEA_Model.Models.Dt_Task |
| | | Dt_Task task = new Dt_Task |
| | | { |
| | | CreateDate = DateTime.Now, |
| | | Creater = "HK", |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Mapster; |
| | | using Masuit.Tools; |
| | | using SixLabors.Fonts.Tables.AdvancedTypographic; |
| | | using SqlSugar; |
| | | using System.Text.RegularExpressions; |
| | | using WIDESEA_Cache; |
| | | using WIDESEA_Core; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_DTO.MOM; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEA_IServices; |
| | | using WIDESEA_IStoragIntegrationServices; |
| | | using WIDESEA_Model.Models; |
| | | using WIDESEAWCS_BasicInfoRepository; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | |
| | | namespace WIDESEA_StorageTaskServices; |
| | | |
| | | public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService |
| | | { |
| | | private readonly LogFactory LogFactory = new LogFactory(); |
| | | private readonly IUnitOfWorkManage _unitOfWorkManage; |
| | | private readonly IStockInfoRepository _stockInfoRepository; |
| | | private readonly IStockInfoDetailRepository _stockInfoDetailRepository; |
| | | private readonly IDt_Task_HtyRepository _task_HtyRepository; |
| | | private readonly IMapper _mapper; |
| | | private readonly ILocationInfoRepository _locationRepository; |
| | | private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository; |
| | | private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository; |
| | | private readonly IBoxingInfoRepository _boxingInfoRepository; //ç»ç |
| | | private readonly ICellStateService _cellStateService; //çµè¯å±æ§ |
| | | private readonly IProcessApplyService _processApplyService; //å·¥èºè·¯çº¿ |
| | | private readonly IDt_AreaInfoRepository _areaInfoRepository; //åºå |
| | | private readonly IAgingInOrOutInputService _agingInOrOutInputService; //éç½®\éå |
| | | private readonly IDt_StationManagerRepository _stationManagerRepository; |
| | | private readonly ISys_ConfigService _configService; |
| | | private readonly ISimpleCacheService _simpleCacheService; |
| | | |
| | | public Dt_TaskService(IDt_TaskRepository BaseDal, |
| | | IUnitOfWorkManage unitOfWorkManage, |
| | | IDt_OutOrderRepository outOrderRepository, |
| | | IStockInfoRepository stockInfoRepository, |
| | | IDt_Task_HtyRepository task_HtyRepository, |
| | | IMapper mapper, |
| | | ILocationInfoRepository locationRepository, |
| | | ITaskExecuteDetailRepository taskExecuteDetailRepository, |
| | | ILocationStatusChangeRecordRepository locationStatusChangeRecordRepository, |
| | | IBoxingInfoRepository boxingInfoRepository, |
| | | ICellStateService cellStateService, |
| | | IProcessApplyService processApplyService, |
| | | IDt_AreaInfoRepository areaInfoRepository, |
| | | IAgingInOrOutInputService agingInOrOutInputService, |
| | | IStockInfoDetailRepository stockInfoDetailRepository, |
| | | IDt_StationManagerRepository stationManagerRepository, |
| | | ISys_ConfigService configService, |
| | | ISimpleCacheService simpleCacheService) : base(BaseDal) |
| | | { |
| | | _unitOfWorkManage = unitOfWorkManage; |
| | | _stockInfoRepository = stockInfoRepository; |
| | | _task_HtyRepository = task_HtyRepository; |
| | | _mapper = mapper; |
| | | _locationRepository = locationRepository; |
| | | _taskExecuteDetailRepository = taskExecuteDetailRepository; |
| | | _locationStatusChangeRecordRepository = locationStatusChangeRecordRepository; |
| | | _boxingInfoRepository = boxingInfoRepository; |
| | | _cellStateService = cellStateService; |
| | | _processApplyService = processApplyService; |
| | | _areaInfoRepository = areaInfoRepository; |
| | | _agingInOrOutInputService = agingInOrOutInputService; |
| | | _stockInfoDetailRepository = stockInfoDetailRepository; |
| | | _stationManagerRepository = stationManagerRepository; |
| | | _configService = configService; |
| | | _simpleCacheService = simpleCacheService; |
| | | } |
| | | |
| | | #region å¤é¨æ¥å£æ¹æ³ |
| | | |
| | | #region åºåºä»»å¡å®æ |
| | | |
| | | public async Task<WebResponseContent> CompleteStackTaskAsync(Dt_Task task, DtStockInfo stock) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.Outbound) |
| | | { |
| | | if (!task.Roadway.Contains("FR") && stock.ProcessCode != "OCVB") |
| | | { |
| | | var agingOutputDto = MapToAgingOutputDto(stock); |
| | | content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto); |
| | | |
| | | if (content.Status) |
| | | { |
| | | var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString()); |
| | | |
| | | if (!result.Success && result.MessageCode == "E10001") |
| | | { |
| | | await HandleOutBoundError(stock, task); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | task.Remark = "NG"; |
| | | ConsoleHelper.WriteErrorLine("MOM鿥ç¹è¯NG"); |
| | | return content.Error("MOM鿥ç¹è¯NG"); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (task.Remark == "NG") |
| | | { |
| | | ConsoleHelper.WriteErrorLine("MOM鿥ç¹è¯NG"); |
| | | return content.Error("MOM鿥ç¹è¯NG"); |
| | | } |
| | | // æ´æ°åºåç¶æåä»»å¡ç¶æ |
| | | (var loc, var tas) = UpdateStockAndTaskStatus(stock, task); |
| | | var taskHty = task.Adapt<Dt_Task_Hty>(); |
| | | taskHty.FinishTime = DateTime.Now; |
| | | taskHty.OperateType = App.User.UserName != null ? (int)OperateTypeEnum.äººå·¥å®æ : (int)OperateTypeEnum.èªå¨å®æ; |
| | | taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System"; |
| | | |
| | | DtStockInfo_Hty stockInfo_Hty = stock.Adapt<DtStockInfo_Hty>(); |
| | | stockInfo_Hty.ModifyDate = DateTime.Now; |
| | | |
| | | // äºå¡å¤ç |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | if (task.TaskType != (int)TaskOutboundTypeEnum.OutQuality) |
| | | { |
| | | await DeleteStockInfoAsync(stock.Id); |
| | | await DeleteStockInfoDetailsAsync(stock.StockInfoDetails); |
| | | await AddStockInfoHtyAsync(stockInfo_Hty); |
| | | await UpdateLocationAsync(loc); //è´¨æ£ä»»å¡éè¦æç»éå®åºä½ |
| | | } |
| | | await DeleteTaskAsync(task.TaskId); |
| | | await AddTaskHtyAsync(taskHty); |
| | | }); |
| | | |
| | | return content.OK("ä»»å¡å®ææå", task.Remark); |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | LogFactory.GetLog("ä»»å¡å®æ").Error(true, $"ç³»ç»å¼å¸¸ï¼å¼å¸¸ä¿¡æ¯ï¼{err.Message}"); |
| | | return content.Error(err.Message); |
| | | } |
| | | } |
| | | |
| | | private AgingOutputDto MapToAgingOutputDto(DtStockInfo stock, ResponseEqptRunDto? info = null) |
| | | { |
| | | // TODO Value弿 ¹æ®MOMä¸åçéç½®æ¶é´å°å½åæ¶é´çåéæ° |
| | | var area = _areaInfoRepository.QueryFirst(x => x.AreaCode == stock.AreaCode); |
| | | if (area == null) |
| | | { |
| | | throw new Exception("æªæ¾å°å¯¹åºçåºåºä¿¡æ¯"); |
| | | } |
| | | |
| | | var parameterInfo = JsonConvert.DeserializeObject<List<ParameterInfo>>(stock.ParameterInfos).FirstOrDefault(y => y.Description.Contains("æ¶é´")); |
| | | if (parameterInfo == null) throw new Exception(""); |
| | | |
| | | var outHours = (DateTime.Now - (stock.LinedProcessFeedbackTime == null ? stock.CreateDate : stock.LinedProcessFeedbackTime.ToDateTime())).TotalHours; |
| | | |
| | | //if (stock.LinedProcessFeedbackTime == null) |
| | | //{ |
| | | // outHours = (DateTime.Now - stock.CreateDate).TotalHours; |
| | | //} |
| | | //else |
| | | //{ |
| | | // outHours = (DateTime.Now - stock.LinedProcessFeedbackTime.ToDateTime()).TotalHours; |
| | | //} |
| | | |
| | | var isNG = outHours > parameterInfo.LowerSpecificationsLimit.ToDouble() && outHours < parameterInfo.UpperSpecificationsLimit.ToDouble(); |
| | | |
| | | var defectCode = string.Empty; |
| | | if (!isNG) defectCode = "TQCK"; |
| | | return new AgingOutputDto |
| | | { |
| | | OpFlag = 1, |
| | | Software = area.Spare3, |
| | | EquipmentCode = area.Spare2, |
| | | TrayBarcode = stock.PalletCode, |
| | | SerialNos = stock.StockInfoDetails.Select(x => new SerialNoOutDto |
| | | { |
| | | SlotNo = x.OrderNo.ToInt32(), |
| | | SerialNo = x.SerialNumber, |
| | | SerialNoResult = true, //isNG, |
| | | ParameterInfo = new List<ParameterInfoOutput> { |
| | | new ParameterInfoOutput() { |
| | | Value = outHours.ToString(), |
| | | ParameterCode =parameterInfo.ParameterCode, |
| | | ParameterDesc = parameterInfo.Description, |
| | | ParameterResult = "OK", //isNG.ToString(), |
| | | TargetValue = parameterInfo.TargetValue, |
| | | LowerLimit = parameterInfo.LowerSpecificationsLimit, |
| | | UpperLimit = parameterInfo.UpperSpecificationsLimit, |
| | | DefectCode = defectCode, |
| | | UOMCode = parameterInfo.UOMCode, |
| | | } |
| | | } |
| | | }).ToList() |
| | | }; |
| | | } |
| | | |
| | | private (DtLocationInfo, Dt_Task) UpdateStockAndTaskStatus(DtStockInfo stock, Dt_Task task) |
| | | { |
| | | var location = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway); |
| | | //var details = _stockInfoDetailRepository.QueryData(x => x.StockId == stock.Id); |
| | | int lastStatus = location.LocationStatus; |
| | | location.LocationStatus = (int)LocationEnum.Free; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutFinish; |
| | | //task.CurrentAddress = task.NextAddress; |
| | | //task.NextAddress = task.TargetAddress; |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); |
| | | |
| | | LogFactory.GetLog("ä»»å¡å®æ").Info(true, "æ´æ°åºåç¶æä¸ä»»å¡ç¶æ"); |
| | | return (location, task); |
| | | } |
| | | |
| | | private async Task DeleteStockInfoAsync(int stockId) |
| | | { |
| | | var isStockUpdated = await _stockInfoRepository.DeleteDataByIdAsync(stockId); |
| | | if (!isStockUpdated) |
| | | { |
| | | throw new Exception("åºåä¿¡æ¯æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | |
| | | private async Task AddStockInfoHtyAsync(DtStockInfo_Hty dtStock) |
| | | { |
| | | var isStockAdd = await SqlSugarHelper.DbWMS.InsertNav(dtStock).IncludesAllFirstLayer().ExecuteCommandAsync(); |
| | | if (!isStockAdd) |
| | | { |
| | | throw new Exception("åºååå²ä¿¡æ¯æ·»å 失败"); |
| | | } |
| | | } |
| | | |
| | | private async Task UpdateLocationAsync(DtLocationInfo info) |
| | | { |
| | | var isStockUpdated = await _locationRepository.UpdateDataAsync(info); |
| | | if (!isStockUpdated) |
| | | { |
| | | throw new Exception("åºåä¿¡æ¯æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | |
| | | private async Task DeleteStockInfoDetailsAsync(IEnumerable<DtStockInfoDetail> details) |
| | | { |
| | | var ids = details.Select(x => (object)x.Id).ToArray(); |
| | | var isStockDetailUpdated = await _stockInfoDetailRepository.DeleteDataByIdsAsync(ids); |
| | | if (!isStockDetailUpdated) |
| | | { |
| | | throw new Exception("åºå详æ
ä¿¡æ¯æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | |
| | | private async Task DeleteTaskAsync(int taskId) |
| | | { |
| | | var isTaskUpdated = await BaseDal.DeleteDataByIdAsync(taskId); |
| | | if (!isTaskUpdated) |
| | | { |
| | | throw new Exception("ä»»å¡ä¿¡æ¯æ´æ°å¤±è´¥"); |
| | | } |
| | | } |
| | | |
| | | private async Task AddTaskHtyAsync(Dt_Task_Hty taskHty) |
| | | { |
| | | var isTaskAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; |
| | | if (!isTaskAdd) |
| | | { |
| | | throw new Exception("åå²ä»»å¡ä¿¡æ¯æ·»å 失败"); |
| | | } |
| | | } |
| | | |
| | | #endregion åºåºä»»å¡å®æ |
| | | |
| | | #region ç§»åºä»»å¡å®æ |
| | | |
| | | /// <summary> |
| | | /// ç§»åºä»»å¡å®æ |
| | | /// </summary> |
| | | /// <param name="saveModel">任塿°æ®åé</param> |
| | | /// <returns>è¿åç»æé</returns> |
| | | public async Task<WebResponseContent> CompleteTransferTaskAsync(Dt_Task task, DtStockInfo stock) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // æ´æ°è´§ä½ååºåä¿¡æ¯ |
| | | (DtStockInfo updateStock, DtLocationInfo locationInForm, DtLocationInfo locationInfoTo) = UpdateStockLocation(stock, task); |
| | | var taskHty = CreateHistoricalTask(task); |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "ç§»åºä»»å¡å®æ", $"è´§ä½å°åï¼{task.TargetAddress},ä¿®æ¹ååºåæ°æ®ï¼{JsonConvert.SerializeObject(updateStock)}ï¼åå
è´§ä½æ°æ®ï¼{locationInForm}"); |
| | | |
| | | // æ§è¡æ°æ®åºäºå¡ |
| | | bool isResult = await ExecuteTransaction(updateStock, taskHty, locationInForm, locationInfoTo, task.TaskId); |
| | | if (isResult) |
| | | content.OK("ç§»åºä»»å¡å®ææå"); |
| | | else |
| | | content.Error("ç§»åºä»»å¡å®æå¤±è´¥"); |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | Console.WriteLine(err.Message.ToString()); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | #endregion ç§»åºä»»å¡å®æ |
| | | |
| | | #region å
¥åºä»»å¡å®æ |
| | | |
| | | /// <summary> |
| | | /// 宿å
¥åºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="task">任塿°æ®åé</param> |
| | | /// <returns>è¿åç»æé</returns> |
| | | public async Task<WebResponseContent> CompleteInboundTaskAsync(Dt_Task task) |
| | | { |
| | | // åå§åååºå
容 |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.InNG || task.TaskType == (int)TaskInboundTypeEnum.InQuality) |
| | | { |
| | | task.TaskState = (int)TaskInStatusEnum.SC_InFinish; |
| | | // å建åå²ä»»å¡å®ä¾æ¨¡å |
| | | var taskHtyNG = CreateHistoricalTask(task); |
| | | |
| | | // æ§è¡æ°æ®åºäºå¡ |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | // æ·»å åå²ä»»å¡ |
| | | var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHtyNG) > 0; |
| | | |
| | | // å é¤ä»»å¡æ°æ® |
| | | var isTaskDelete = await Delete(task.TaskId); |
| | | if (!isTaskHtyAdd || !isTaskDelete) |
| | | throw new Exception("æ·»å 失败"); |
| | | }); |
| | | return content.OK("å
¥åºä»»å¡å®ææå"); |
| | | } |
| | | |
| | | // è·åè£
箱信æ¯åç®æ ä½ç½®ä¿¡æ¯ |
| | | var boxing = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); |
| | | var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.RoadwayNo == task.Roadway); |
| | | |
| | | int lastStatus = locationInf.LocationStatus; |
| | | // æ´æ°ç®æ ä½ç½®ç¶æä¸ºåºåä¸ |
| | | locationInf.LocationStatus = (int)LocationEnum.InStock; |
| | | |
| | | // å建åå²ä»»å¡å®ä¾æ¨¡å |
| | | var taskHty = CreateHistoricalTask(task); |
| | | |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.InQuality) |
| | | { |
| | | await _locationRepository.UpdateDataAsync(locationInf); |
| | | await _task_HtyRepository.AddDataAsync(taskHty); |
| | | await BaseDal.DeleteDataAsync(task); |
| | | |
| | | //è®°å½è´§ä½åå¨ä¿¡æ¯ |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum); |
| | | |
| | | return content.OK("å
¥åºä»»å¡å®ææå"); |
| | | } |
| | | // æ ¹æ®æ¯å¦æç»çä¿¡æ¯å建åºåå®ä¾æ¨¡å |
| | | DtStockInfo stock = boxing == null ? CreateEmptyPalletStock(task, locationInf) : CreateFullPalletStock(task, locationInf, boxing); |
| | | |
| | | // æ§è¡æ°æ®åºäºå¡ |
| | | bool isResult = await ExecuteTransaction(stock, taskHty, locationInf, task.TaskId, boxing); |
| | | if (isResult) |
| | | { |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInf, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum); |
| | | |
| | | stock.StockInfoDetails = new List<DtStockInfoDetail>() { { stock.StockInfoDetails[0] } }; |
| | | stock.LocationInfo = locationInf; |
| | | |
| | | content.OK("å
¥åºä»»å¡å®ææå"); |
| | | } |
| | | else |
| | | { |
| | | content.Error("å
¥åºä»»å¡å®æå¤±è´¥"); |
| | | } |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | // è®°å½å¼å¸¸ä¿¡æ¯å°æ§å¶å°åæ¥å¿ |
| | | Console.WriteLine(err.Message.ToString()); |
| | | LogFactory.GetLog("ä»»å¡å®æ").Error(true, err); |
| | | content.Error(err.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建空æççåºåå®ä¾æ¨¡å |
| | | /// </summary> |
| | | private DtStockInfo CreateEmptyPalletStock(Dt_Task task, DtLocationInfo locationInf) |
| | | { |
| | | var loation = _locationRepository.QueryFirst(x => x.RoadwayNo == task.Roadway && x.LocationCode == task.TargetAddress); |
| | | var area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); |
| | | return new DtStockInfo() |
| | | { |
| | | PalletCode = task.PalletCode, |
| | | LocationCode = task.TargetAddress, |
| | | CreateDate = DateTime.Now, |
| | | Creater = "system", |
| | | IsFull = false, |
| | | AreaCode = area.AreaCode ?? "", |
| | | LocationId = loation.Id, |
| | | ProductionLine = task.ProductionLine, |
| | | StockInfoDetails = new List<DtStockInfoDetail>() |
| | | { |
| | | new DtStockInfoDetail() |
| | | { |
| | | MaterielCode = "空æç", |
| | | Id = 0, |
| | | Status = (int)StockStateEmun.å·²å
¥åº |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建å容ç宿ççåºåå®ä¾æ¨¡å |
| | | /// </summary> |
| | | private DtStockInfo CreateFullPalletStockByFR(Dt_Task task, DtLocationInfo locationInf) |
| | | { |
| | | var loation = _locationRepository.QueryFirst(x => x.RoadwayNo == task.Roadway && x.LocationCode == task.TargetAddress); |
| | | var area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); |
| | | return new DtStockInfo() |
| | | { |
| | | PalletCode = task.PalletCode, |
| | | LocationCode = task.TargetAddress, |
| | | CreateDate = DateTime.Now, |
| | | Creater = "system", |
| | | IsFull = false, |
| | | AreaCode = area.AreaCode ?? "", |
| | | LocationId = loation.Id, |
| | | StockInfoDetails = new List<DtStockInfoDetail>() |
| | | { |
| | | new DtStockInfoDetail() |
| | | { |
| | | MaterielCode = "宿ç", |
| | | Id = 0, |
| | | Status = (int)StockStateEmun.å·²å
¥åº |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建å®ççåºåå®ä¾æ¨¡åå¹¶è°ç¨MOMå
¥åº |
| | | /// </summary> |
| | | private DtStockInfo CreateFullPalletStock(Dt_Task task, DtLocationInfo locationInf, DtBoxingInfo boxing) |
| | | { |
| | | var loation = _locationRepository.QueryFirst(x => x.RoadwayNo == task.Roadway && x.LocationCode == task.TargetAddress); |
| | | if (loation == null) |
| | | throw new Exception("æªæ¾å°å¯¹åºä½ç½®ä¿¡æ¯"); |
| | | |
| | | var area = new Dt_AreaInfo(); |
| | | if (task.Roadway.Contains("FR")) |
| | | { |
| | | area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); |
| | | } |
| | | else |
| | | { |
| | | //var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == task.SourceAddress); |
| | | //if (station.stationPLC == "1017") |
| | | // area = _areaInfoRepository.QueryFirst(x => x.AreaID == Convert.ToInt32(station.stationNGLocation)); |
| | | //else |
| | | // area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); |
| | | //if (area == null) |
| | | // throw new Exception("æªæ¾å°å¯¹åºåºåä¿¡æ¯"); |
| | | |
| | | if (boxing.ProcessCode == "OCV1") |
| | | area = _areaInfoRepository.QueryFirst(x => x.AreaID == 6); |
| | | else if (boxing.ProcessCode == "OCVB") |
| | | area = _areaInfoRepository.QueryFirst(x => x.AreaID == 7); |
| | | else |
| | | area = _areaInfoRepository.QueryFirst(x => x.AreaID == loation.AreaId); |
| | | |
| | | if (area == null) |
| | | throw new Exception("æªæ¾å°å¯¹åºåºåä¿¡æ¯"); |
| | | } |
| | | |
| | | var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>(); |
| | | boxDetail.ForEach(x => { x.Status = (int)StockStateEmun.å·²å
¥åº; }); |
| | | var stock = new DtStockInfo() |
| | | { |
| | | PalletCode = task.PalletCode, |
| | | LocationCode = task.TargetAddress, |
| | | CreateDate = DateTime.Now, |
| | | Creater = "system", |
| | | IsFull = boxing.IsFull, |
| | | AreaCode = area.AreaCode, |
| | | LocationId = loation.Id, |
| | | StockInfoDetails = boxDetail, |
| | | ProcessCode = boxing.ProcessCode, |
| | | NextProcessCode = boxing.NextProcessCode, |
| | | Remark = boxing.BoxingInfoDetails.Count().ToString(), |
| | | }; |
| | | |
| | | if (boxing.ProcessCode != "OCVB" && !task.Roadway.Contains("FR")) |
| | | { |
| | | // å¤ç请æ±åæ° |
| | | AgingInputDto agingInputDto = new AgingInputDto() |
| | | { |
| | | SerialNos = boxing.BoxingInfoDetails |
| | | .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo }) |
| | | .ToList(), |
| | | TrayBarcode = task.PalletCode, |
| | | OpFlag = 1, |
| | | EquipmentCode = area.Spare2, |
| | | Software = area.Spare3 |
| | | }; |
| | | |
| | | var result = _agingInOrOutInputService.GetOCVInputAsync(agingInputDto).Result; |
| | | var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()); |
| | | |
| | | bool isFull = false; |
| | | if (!task.Roadway.Contains("FR")) |
| | | { |
| | | isFull = respone.SpecialParameterDuration.IsNullOrEmpty(); |
| | | } |
| | | if (respone.ProductionLine == null || respone.ParameterInfos == null || respone.ParameterInfos.IsNullOrEmpty()) |
| | | { |
| | | throw new Exception($"MOMæ°æ®è¿åé误,产线{respone.ProductionLine},ParameterInfos{respone.ParameterInfos}"); |
| | | } |
| | | stock.LinedProcessFeedbackTime = respone.LinedProcessFeedbackTime; |
| | | stock.SpecialParameterDuration = respone.SpecialParameterDuration; |
| | | //2024å¹´11æ16æ¥ï¼æ°å¢å段计ç®åºåºåºæ¶é´ |
| | | stock.OutboundTime = Convert.ToDateTime(respone.LinedProcessFeedbackTime == null ? DateTime.Now : respone.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(respone.SpecialParameterDuration)); |
| | | stock.ProductionLine = respone.ProductionLine; |
| | | stock.ParameterInfos = respone.ParameterInfos.ToJsonString(); |
| | | stock.StockStatus = 1; |
| | | } |
| | | else |
| | | { |
| | | stock.OutboundTime = DateTime.Now; |
| | | stock.StockStatus = 1; |
| | | stock.ProductionLine = boxing.ProductionLine; |
| | | } |
| | | |
| | | // è®°å½æ¥å¿ |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "å
¥åºä»»å¡å®æ", $"è´§ä½å°åï¼{task.TargetAddress},ä¿®æ¹åè´§ä½æ°æ®ï¼{locationInf}"); |
| | | |
| | | return stock; |
| | | } |
| | | |
| | | #endregion å
¥åºä»»å¡å®æ |
| | | |
| | | #region ä»»å¡å®æ |
| | | |
| | | /// <summary> |
| | | /// å®æä»»å¡ |
| | | /// </summary> |
| | | /// <param name="taskNum">ä»»å¡ç¼å·</param> |
| | | /// <returns>è¿åç»æé</returns> |
| | | public async Task<WebResponseContent> CompleteAsync(int taskNum) |
| | | { |
| | | // åå§åååºå
容 |
| | | WebResponseContent content = new WebResponseContent(); |
| | | |
| | | // æå任塿°æ® |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "æå任塿°æ®", $"ä»»å¡å·ï¼{taskNum}"); |
| | | |
| | | // éªè¯ä»»å¡æ¯å¦åå¨ |
| | | var task = await GetByTaskNum(taskNum); |
| | | if (task == null) |
| | | { |
| | | return content.Error("ä»»å¡ä¸åå¨"); |
| | | } |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "éªè¯ä»»å¡æ¯å¦åå¨", JsonConvert.SerializeObject(task)); |
| | | |
| | | if (task.TaskType == (int)TaskOutboundTypeEnum.InToOut) |
| | | { |
| | | return await CompleteInToOutTaskAsync(task); |
| | | } |
| | | // éªè¯åºåæ¯å¦åå¨ |
| | | var stock = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); |
| | | |
| | | // æ ¹æ®ä»»å¡ç±»åè°ç¨ç¸åºç宿任塿¹æ³ |
| | | switch (task.TaskType) |
| | | { |
| | | case (int)TaskInboundTypeEnum.Inbound: |
| | | case (int)TaskInboundTypeEnum.InTray: |
| | | case (int)TaskInboundTypeEnum.InNG: |
| | | case (int)TaskInboundTypeEnum.InQuality: |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "å
¥åºä»»å¡", ""); |
| | | return await CompleteInboundTaskAsync(task); |
| | | |
| | | case (int)TaskOutboundTypeEnum.OutTray: |
| | | case (int)TaskOutboundTypeEnum.Outbound: |
| | | case (int)TaskOutboundTypeEnum.OutNG: |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "åºåºä»»å¡", ""); |
| | | return await CompleteStackTaskAsync(task, stock); |
| | | |
| | | case (int)TaskRelocationTypeEnum.Relocation: |
| | | return await CompleteTransferTaskAsync(task, stock); |
| | | |
| | | default: |
| | | return content.Error("ä»»å¡ç±»åä¸åå¨"); |
| | | } |
| | | } |
| | | |
| | | #endregion ä»»å¡å®æ |
| | | |
| | | #region 请æ±ä»»å¡å
¥åº |
| | | |
| | | public async Task<WebResponseContent> RequestTaskAsync(RequestTaskDto input) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | |
| | | try |
| | | { |
| | | // æ¥è¯¢ä»»å¡ |
| | | var task = await QueryTaskByPalletCode(input.PalletCode); |
| | | if (task != null) |
| | | { |
| | | return CreateAndReturnWMSTaskDTO(task); |
| | | } |
| | | |
| | | // æ¥è¯¢åºåä¿¡æ¯ï¼è¿éåç»è¦å®åè´¨æ£ååºé»è¾ï¼ |
| | | var stock = await QueryStockInfo(input.PalletCode); |
| | | if (stock != null) |
| | | { |
| | | Dt_Task taskNew = new Dt_Task |
| | | { |
| | | Grade = 1, |
| | | Roadway = stock.LocationInfo.RoadwayNo, |
| | | TargetAddress = stock.LocationInfo.RoadwayNo, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = stock.LocationInfo.RoadwayNo, |
| | | OrderNo = null, |
| | | PalletCode = stock.PalletCode, |
| | | SourceAddress = input.Position, |
| | | CurrentAddress = input.Position, |
| | | TaskState = stock.LocationInfo.RoadwayNo.Contains("CH") ? (int)TaskInStatusEnum.InNew : (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskInboundTypeEnum.InQuality, |
| | | TaskNum = BaseDal.GetTaskNo().Result, |
| | | Creater = "System", // ä¿®æ£æ¼åé误 |
| | | CreateDate = DateTime.Now, |
| | | TaskId = 0, |
| | | ProductionLine = stock.ProductionLine, |
| | | ProcessCode = stock.ProcessCode, |
| | | }; |
| | | |
| | | var taskDTO = CreateTaskDTO(taskNew); |
| | | BaseDal.AddData(taskNew); |
| | | return content.OK(data: taskDTO); |
| | | // TODOè´¨æ£ååº |
| | | } |
| | | |
| | | // æ ¹æ®ä½ç½®æ¥è¯¢åºåä¿¡æ¯ |
| | | var areaCode = Regex.Replace(input.Position, @"-(\d+)", ""); |
| | | var area = await QueryAreaInfoByPosition(areaCode); |
| | | if (area == null) |
| | | { |
| | | return content.Error("该ç¹ä½ä¸å¨åºåå表ä¸åå¨"); |
| | | } |
| | | |
| | | // å建并è·åæ´ççµè¯ç¶æ |
| | | TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, input.PalletCode); |
| | | content = await GetTrayCellStatusAsync(trayCells); |
| | | if (!content.Status) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"è·åçµè¯ç¶æå¤±è´¥:{content.Message}"); |
| | | return content; |
| | | } |
| | | |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | |
| | | if (!result.Success) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"è·åçµè¯ç¶æå¤±è´¥:{result.MOMMessage}"); |
| | | if (result.SerialNos.Count <= 0) |
| | | { |
| | | // 空æçå
¥åºé»è¾ |
| | | var staion = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position && x.stationType == 1 && x.remark == "IN"); |
| | | if (staion != null) |
| | | { |
| | | return await HandleErrorCells(input, area); |
| | | } |
| | | else |
| | | { |
| | | return await RequestTrayInTaskAsync(input); |
| | | } |
| | | } |
| | | else |
| | | return content.Error(result.MOMMessage); |
| | | } |
| | | |
| | | if (result.SerialNos.Count <= 0) |
| | | { |
| | | var config = _configService.GetByConfigKey(CateGoryConst.CONFIG_SYS_InStacker, SysConfigConst.InboundIsEmpty); |
| | | var strings = config.ConfigValue.Split(',').ToList(); |
| | | if (strings.Contains(input.Position)) |
| | | { |
| | | // todoéè³NGå£ |
| | | ConsoleHelper.WriteErrorLine($"å½åä½ç½®ä¸è½å
¥ç©ºæç"); |
| | | return content.Error("å½åä½ç½®ä¸è½å
¥ç©ºæç"); |
| | | } |
| | | else |
| | | return await RequestTrayInTaskAsync(input); |
| | | } |
| | | else |
| | | { |
| | | // å¤çå¼å¸¸çµè¯æ
åµ |
| | | var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | if (serialNosError.Count > 0) |
| | | { |
| | | return await HandleErrorCells(input, area, serialNosError); |
| | | } |
| | | |
| | | var boxing = CreateBoxingInfo(result, input.PalletCode); |
| | | if (boxing == null) return content.Error("ç»ç失败"); |
| | | |
| | | input.ProductionLine = result.ProductionLine; |
| | | return await ProcessBasedOnProcessCode(boxing, area, input, result); |
| | | } |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | // æ´è¯¦ç»çå¼å¸¸å¤çï¼å¯ä»¥æ ¹æ®å¼å¸¸ç±»åè®°å½ä¸åçé误æ¥å¿ç |
| | | content.Error(err.Message); |
| | | Console.WriteLine(err.Message); |
| | | } |
| | | |
| | | 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) |
| | | { |
| | | return content.Error(err.Message); |
| | | } |
| | | } |
| | | |
| | | /// <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 = CreateTaskDTO(task); |
| | | return content.OK(data: task); |
| | | } |
| | | |
| | | // æ ¹æ®ä½ç½®æ¥è¯¢åºåä¿¡æ¯ |
| | | var areaCode = Regex.Replace(input.Position, @"-(\d+)", ""); |
| | | var area = await QueryAreaInfoByPosition(areaCode); |
| | | if (area == null) |
| | | { |
| | | return content.Error("该ç¹ä½ä¸å¨åºåå表ä¸åå¨"); |
| | | } |
| | | |
| | | // è·åæ´ççµè¯å±æ§ç¶æ |
| | | TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, input.PalletCode); |
| | | content = await GetTrayCellStatusAsync(trayCells); |
| | | if (!content.Status) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"è·åçµè¯ç¶æå¤±è´¥:{content.Message}"); |
| | | return content; |
| | | } |
| | | |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | if (result.ProductionLine.IsNullOrEmpty()) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"å½åæçæ 产线,èç³»MOMæ·»å 产线"); |
| | | return content.Error("å½åæçæ 产线,èç³»MOMæ·»å 产线"); |
| | | } |
| | | |
| | | var stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 6 && x.stationChildCode == input.Position).FirstOrDefault(); |
| | | if (stationManagers == null) |
| | | { |
| | | stationManagers = _stationManagerRepository.QueryData(x => x.stationType == 1 && x.stationChildCode == input.Position).FirstOrDefault(); |
| | | if (stationManagers == null) |
| | | throw new Exception("æªæ¾å°ç©ºæçå
¥åºç«å°åå
¥åºç«å°é
ç½®"); |
| | | } |
| | | List<string> strings = stationManagers.Roadway.Split(',').ToList(); |
| | | |
| | | return await CreateNewTask(input, result.ProductionLine, result.ProcessCode, strings, 1); |
| | | } |
| | | catch (Exception) |
| | | { |
| | | throw; |
| | | } |
| | | } |
| | | |
| | | // è·åæçåå
æ ¼ç¶æ |
| | | private async Task<WebResponseContent> GetTrayCellStatusAsync(TrayCellsStatusDto trayCells) |
| | | { |
| | | // è°ç¨_cellStateService.GetTrayCellStatusAsyncæ¹æ³ï¼è·åæçåå
æ ¼ç¶æ |
| | | return await _cellStateService.GetTrayCellStatusAsync(trayCells); |
| | | } |
| | | |
| | | // è·åç»çä¿¡æ¯ |
| | | private DtBoxingInfo CreateBoxingInfo(ResultTrayCellsStatus result, string palletCode) |
| | | { |
| | | return new DtBoxingInfo |
| | | { |
| | | PalletCode = palletCode, |
| | | IsFull = true, |
| | | ProcessCode = result.ProcessCode, |
| | | ProductionLine = result.ProductionLine, |
| | | BoxingInfoDetails = result.SerialNos.Select(serialNoObj => new DtBoxingInfoDetail |
| | | { |
| | | SerialNumber = serialNoObj.SerialNo, |
| | | OrderNo = serialNoObj.PositionNo.ToString(), |
| | | Status = serialNoObj.SerialNoStatus, |
| | | MaterielCode = result.BindCode, |
| | | Remark = result.TrayBarcodePropertys.ToJsonString(), |
| | | }).ToList() |
| | | }; |
| | | } |
| | | |
| | | // è·åå·¥èºç³è¯· |
| | | private async Task<ProcessApplyDto> GetProcessApplyAsync(ResultTrayCellsStatus content) |
| | | { |
| | | // å建ä¸ä¸ªProcessApplyDto对象ï¼å¹¶èµå¼ |
| | | return new ProcessApplyDto() |
| | | { |
| | | //WipOrderNo = result.BindCode, |
| | | SerialNos = content.SerialNos.Select(item => new SerialNos |
| | | { |
| | | SerialNo = item.SerialNo |
| | | }).ToList() |
| | | }; |
| | | } |
| | | |
| | | #endregion 请æ±ä»»å¡å
¥åº |
| | | |
| | | #region 请æ±åºåºï¼å®ç&空çï¼ |
| | | |
| | | /// <summary> |
| | | /// è¯·æ±æçä»»å¡ |
| | | /// </summary> |
| | | /// <param name="position">ç®æ ä½ç½®</param> |
| | | /// <param name="tag">æçç±»åï¼1ï¼å®çï¼2ï¼ç©ºçï¼</param> |
| | | /// <param name="areaCode">åºåç¼ç </param> |
| | | /// <param name="roadways">å··éç¼ç éå</param> |
| | | /// <returns>è¿åç»æé</returns> |
| | | public async Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> areaCodes, string productionLine) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // è®°å½å¼å¸¸ä¿¡æ¯å¹¶æåº |
| | | LogFactory.GetLog($"{position}请æ±{productionLine}ä»»å¡").Info(true, $"{position}-{tag}-{areaCode}-{JsonConvert.SerializeObject(areaCodes)}-{productionLine}"); |
| | | // æ ¹æ®æçç±»åæ¥è¯¢åºåä¿¡æ¯ |
| | | DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound |
| | | ? areaCode != "CWSC1" ? await QueryStockInfoForRealTrayAsync(areaCode, areaCodes, productionLine) : await QueryStockInfoForRealTrayCWAsync(areaCodes, productionLine) |
| | | : await QueryStockInfoForEmptyTrayAsync(areaCode, position); |
| | | |
| | | if (stockInfo == null) |
| | | { |
| | | return content.Error("åºåä¿¡æ¯ä¸åå¨"); |
| | | } |
| | | |
| | | //ConsoleHelper.WriteColorLine(JsonConvert.SerializeObject(stockInfo), ConsoleColor.DarkMagenta); |
| | | |
| | | // æ°å¢éå¤ä»»å¡æ ¡éª |
| | | var hasTask = BaseDal.QueryFirst(x => x.PalletCode == stockInfo.PalletCode); |
| | | if (hasTask != null) |
| | | { |
| | | WMSTaskDTO taskDTO1 = CreateTaskDTO(hasTask); |
| | | return content.OK("å·²åå¨åºåºä»»å¡", data: taskDTO1); |
| | | } |
| | | |
| | | // å建æ°ä»»å¡å®ä¾ |
| | | var task = CreateTask(stockInfo, position, tag); |
| | | var taskId = await BaseDal.AddDataAsync(task); |
| | | bool isResult = taskId > 0; |
| | | if (!isResult) |
| | | { |
| | | return content.Error("ä»»å¡å建失败"); |
| | | } |
| | | |
| | | // å建任å¡DTO |
| | | WMSTaskDTO taskDTO = CreateTaskDTO(task); |
| | | //if (tag == 1) |
| | | { |
| | | // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo); |
| | | } |
| | | |
| | | // è¿åæåååº |
| | | return content.OK(data: taskDTO); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // è®°å½å¼å¸¸ä¿¡æ¯å¹¶æåº |
| | | LogFactory.GetLog("è¯·æ±æçä»»å¡").Error(true, ex); |
| | | ConsoleHelper.WriteErrorLine("请æ±ç©º/宿çä»»å¡" + ex.Message + "\r\n" + ex.StackTrace); |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢å®çåºåä¿¡æ¯ |
| | | /// </summary> |
| | | private async Task<DtStockInfo> QueryStockInfoForRealTrayAsync(string areaCode, List<string> devices, string productionLine) |
| | | { |
| | | try |
| | | { |
| | | var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == areaCode); |
| | | if (area == null) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"æ¥è¯¢å®çåºåä¿¡æ¯æ¶,æªæ¾å°åºå代ç 为{areaCode}çæ°æ®"); |
| | | return null; |
| | | } |
| | | |
| | | var outBoundMateriel = AppSettings.app<OutBoundMateriel>("OutBoundMateriel"); |
| | | List<string>? materielCodes = outBoundMateriel.Count != 0 |
| | | ? outBoundMateriel.Where(x => x.ProductionLine == productionLine && x.ProcessCode == area.AreaCode) |
| | | .Select(x => x.MaterielCode) |
| | | .ToList() |
| | | : null; |
| | | |
| | | var result = new DtStockInfo(); |
| | | |
| | | result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Includes(x => x.LocationInfo) |
| | | .Includes(x => x.StockInfoDetails) |
| | | .Where(x => x.AreaCode == areaCode && x.OutboundTime < DateTime.Now && x.IsFull) |
| | | .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine) |
| | | .WhereIF(!devices.IsNullOrEmpty(), x => devices.Contains(x.LocationInfo.RoadwayNo)) |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) |
| | | .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) |
| | | .OrderBy(x => x.OutboundTime) |
| | | .FirstAsync(); |
| | | |
| | | if (result.IsNullOrEmpty()) |
| | | ConsoleHelper.WriteErrorLine($"{area.AreaName}-{productionLine}æ¥è¯¢å®çåºåä¿¡æ¯å¤±è´¥:æªæ¾å°ç¬¦åæ¡ä»¶çæ°æ®"); |
| | | |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ConsoleHelper.WriteErrorLine("æ¥è¯¢å®çåºåä¿¡æ¯å¤±è´¥:" + ex.Message + "\r\n" + ex.StackTrace); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢å¸¸æ¸©å®çåºåä¿¡æ¯ |
| | | /// </summary> |
| | | private async Task<DtStockInfo> QueryStockInfoForRealTrayCWAsync(List<string> areaCodes, string productionLine) |
| | | { |
| | | try |
| | | { |
| | | var areaId = (await _areaInfoRepository.QueryDataAsync(x => areaCodes.Contains(x.AreaCode))).Select(x => x.AreaID).ToList(); |
| | | if (areaId.Count == 0) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"æ¥è¯¢å¸¸æ¸©å®çåºåä¿¡æ¯æ¶,æªæ¾å°åºå代ç 为{JsonConvert.SerializeObject(areaCodes)}çæ°æ®"); |
| | | return null; |
| | | } |
| | | |
| | | //var outBoundMateriel = AppSettings.app<OutBoundMateriel>("OutBoundMateriel"); |
| | | //List<string> materielCodes = null; |
| | | //if (outBoundMateriel.Count != 0) |
| | | //{ |
| | | // materielCodes = outBoundMateriel.Where(x => x.ProductionLine == productionLine && x.ProcessCode == areaCodes[0]).Select(x => x.MaterielCode).ToList(); |
| | | //} |
| | | |
| | | var outBoundMateriel = AppSettings.app<OutBoundMateriel>("OutBoundMateriel"); |
| | | List<string>? materielCodes = outBoundMateriel.Count != 0 |
| | | ? outBoundMateriel.Where(x => x.ProductionLine == productionLine && x.ProcessCode == areaCodes[0]) |
| | | .Select(x => x.MaterielCode) |
| | | .ToList() |
| | | : null; |
| | | |
| | | var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == "1") |
| | | .Where(x => x.DeviceCode.Contains("CWSC")) |
| | | .ToList().Select(x => x.DeviceCode).ToList(); |
| | | |
| | | var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Where(x => areaCodes.Contains(x.AreaCode) && x.OutboundTime < DateTime.Now && x.IsFull == true) // è¿æ»¤æ¡ä»¶ |
| | | .WhereIF(!productionLine.IsNullOrEmpty(), x => x.ProductionLine == productionLine) |
| | | .Includes(x=>x.LocationInfo) |
| | | .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && areaId.Contains(x.LocationInfo.AreaId) && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ |
| | | .Includes(x=>x.StockInfoDetails) |
| | | .WhereIF(!materielCodes.IsNullOrEmpty(), x => x.StockInfoDetails.Any(y => materielCodes.Contains(y.MaterielCode))) |
| | | .OrderBy(x => x.OutboundTime) // æåº |
| | | .FirstAsync(); // è·å第ä¸ä¸ªå
ç´ |
| | | |
| | | if (result.IsNullOrEmpty()) |
| | | ConsoleHelper.WriteErrorLine($"{JsonConvert.SerializeObject(areaCodes)}-{productionLine}æ¥è¯¢å¸¸æ¸©å®çåºåä¿¡æ¯å¤±è´¥:æªæ¾å°ç¬¦åæ¡ä»¶çæ°æ®"); |
| | | |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ConsoleHelper.WriteErrorLine("QueryStockInfoForRealTrayCWAsyncæ¥è¯¢å®çåºåä¿¡æ¯å¤±è´¥:" + ex.Message + "\r\n" + ex.StackTrace); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢ç©ºçåºåä¿¡æ¯ |
| | | /// </summary> |
| | | private async Task<DtStockInfo> QueryStockInfoForEmptyTrayAsync(string areaCode, string position) |
| | | { |
| | | try |
| | | { |
| | | var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == areaCode); |
| | | |
| | | ConsoleHelper.WriteColorLine(position + "..." + areaCode, ConsoleColor.Magenta); |
| | | var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == position && x.stationType == 17); |
| | | |
| | | ConsoleHelper.WriteColorLine(station.Roadway, ConsoleColor.Magenta); |
| | | var stackers = station.Roadway.Split(',').ToList(); |
| | | |
| | | var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == "1") |
| | | .Where(x => stackers.Contains(x.DeviceCode)) |
| | | .ToList().Select(x => x.DeviceCode).ToList(); |
| | | |
| | | var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Where(x => x.ProductionLine == station.productLine) |
| | | .Where(x => x.AreaCode == areaCode && x.IsFull == false) |
| | | .Includes(x=>x.StockInfoDetails) |
| | | .Where(x => x.StockInfoDetails.Any(y => y.MaterielCode == "空æç")) |
| | | .Includes(x=>x.LocationInfo) |
| | | .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ |
| | | .OrderBy(x => x.CreateDate) // æåº |
| | | .FirstAsync(); // 转æ¢ä¸ºå表 |
| | | |
| | | if (result.IsNullOrEmpty()) |
| | | ConsoleHelper.WriteErrorLine($"{area}-{station.productLine}æ¥è¯¢ç©ºçåºåä¿¡æ¯å¤±è´¥:æªæ¾å°ç¬¦åæ¡ä»¶çæ°æ®"); |
| | | |
| | | return result; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"QueryStockInfoForEmptyTrayAsyncæ¥è¯¢å®çåºåä¿¡æ¯å¤±è´¥:" + ex.Message + "\r\n" + ex.StackTrace); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建任å¡å®ä¾ |
| | | /// </summary> |
| | | private Dt_Task CreateTask(DtStockInfo stockInfo, string position, int tag) |
| | | { |
| | | return new Dt_Task |
| | | { |
| | | Grade = tag == 104 ? (stockInfo.LocationInfo.RoadwayNo.Contains("CWSC") ? 1 : 2) : (stockInfo.LocationInfo.RoadwayNo.Contains("CWSC") ? 2 : 1), |
| | | Roadway = stockInfo.LocationInfo.RoadwayNo, |
| | | TargetAddress = position, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = position, |
| | | OrderNo = null, |
| | | PalletCode = stockInfo.PalletCode, |
| | | SourceAddress = stockInfo.LocationCode, |
| | | CurrentAddress = stockInfo.LocationCode, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = tag, |
| | | TaskNum = BaseDal.GetTaskNo().Result, |
| | | Creater = "System", // ä¿®æ£æ¼åé误 |
| | | CreateDate = DateTime.Now, |
| | | TaskId = 0, |
| | | ProductionLine = stockInfo.ProductionLine, |
| | | ProcessCode = stockInfo.ProcessCode, |
| | | }; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建任å¡DTO |
| | | /// </summary> |
| | | private WMSTaskDTO CreateTaskDTO(Dt_Task task) |
| | | { |
| | | return new WMSTaskDTO |
| | | { |
| | | TaskNum = task.TaskNum.Value, |
| | | Grade = task.Grade.Value, |
| | | PalletCode = task.PalletCode, |
| | | RoadWay = task.Roadway, |
| | | SourceAddress = task.SourceAddress, |
| | | TargetAddress = task.TargetAddress, |
| | | TaskState = task.TaskState.Value, |
| | | Id = 0, |
| | | TaskType = task.TaskType, |
| | | ProductionLine = task.ProductionLine, |
| | | }; |
| | | } |
| | | |
| | | #endregion 请æ±åºåºï¼å®ç&空çï¼ |
| | | |
| | | #region ä»»å¡ç¶ææ´æ¹ |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ä»»å¡ç¶æ&åºåºè§£ç |
| | | /// </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 task = await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum); |
| | | if (task == null) |
| | | return content.Error("æªæ¾å°ä»»å¡"); |
| | | |
| | | if (taskState == (int)TaskOutStatusEnum.Line_OutFinish || taskState == (int)TaskInStatusEnum.SC_InFinish) |
| | | { |
| | | var taskHty = CreateHistoricalTask(task); |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | 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) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | #endregion ä»»å¡ç¶ææ´æ¹ |
| | | |
| | | #region æå®ä»»å¡åºåº |
| | | |
| | | public async Task<WebResponseContent> CreateAndSendOutboundTask(string locationCode, string palletCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // æ¥è¯¢åºåä¿¡æ¯ |
| | | var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.LocationCode == locationCode && x.PalletCode == palletCode); |
| | | if (stockInfo == null) |
| | | { |
| | | return content.Error("æªæ¥è¯¢å°å¯¹åºçåºåä¿¡æ¯"); |
| | | } |
| | | if (stockInfo.LocationInfo.LocationStatus != (int)LocationEnum.InStock) |
| | | { |
| | | return content.Error("该货ä½ç¶æä¸çäºãæè´§ã请æ¥çæ¯å¦å·²ç»æä»»å¡ï¼"); |
| | | } |
| | | |
| | | var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); |
| | | if (task != null) |
| | | { |
| | | return content.Error($"ã{palletCode}ãå·²åå¨ä»»å¡"); |
| | | } |
| | | |
| | | int taskType = 0; |
| | | if (stockInfo.IsFull) |
| | | taskType = (int)TaskOutboundTypeEnum.OutQuality; |
| | | else |
| | | taskType = (int)TaskOutboundTypeEnum.OutTray; |
| | | |
| | | if (stockInfo.AreaCode.Contains("CH")) |
| | | { |
| | | // å建并添å ä»»å¡å°æ°æ®åº |
| | | task = CreateTask(stockInfo, "002-071-001", taskType); |
| | | } |
| | | else |
| | | { |
| | | if (stockInfo.LocationInfo.RoadwayNo.Contains("JZSC")) |
| | | { |
| | | var targetAddress = "001-061-001"; |
| | | //if (stockInfo.LocationInfo.RoadwayNo == "JZSC4") |
| | | // targetAddress = "001-021-001"; |
| | | task = CreateTask(stockInfo, targetAddress, taskType); |
| | | } |
| | | } |
| | | //var taskId = await BaseDal.AddDataAsync(task); |
| | | //if (taskId <= 0) |
| | | //{ |
| | | // return content.Error("ä»»å¡å建失败"); |
| | | //} |
| | | |
| | | // å建任å¡ä¼ è¾ç¨çDTO对象 |
| | | var taskDTO = CreateTaskDTO(task); |
| | | |
| | | // è·åWMS IPå°åç¨äºåéä»»å¡è¯·æ± |
| | | var wmsIpAddress = GetWCSIpReceiveTask(); |
| | | if (wmsIpAddress == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | |
| | | var tasks = new List<WMSTaskDTO>() { taskDTO }; |
| | | // åéä»»å¡è¯·æ±å°WMS |
| | | var result = await HttpHelper.PostAsync(wmsIpAddress, tasks.ToJsonString()); |
| | | content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (content.Status) |
| | | { |
| | | // æ·»å ä»»å¡å°æ°æ®åº |
| | | await BaseDal.AddDataAsync(task); |
| | | // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine($"åçå¼å¸¸: {ex.Message}"); |
| | | content.Error(ex.Message); |
| | | } |
| | | |
| | | return content; |
| | | } |
| | | |
| | | private string GetWCSIpReceiveTask() |
| | | { |
| | | var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue; |
| | | var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue; |
| | | if (wmsBase == null || ipAddress == null) |
| | | { |
| | | return null; |
| | | } |
| | | return wmsBase + ipAddress; |
| | | } |
| | | |
| | | #endregion æå®ä»»å¡åºåº |
| | | |
| | | #region éç½®å¼å¸¸å£å
¥åº |
| | | |
| | | public async Task<WebResponseContent> CreateAndSendInboundTask(string palletCode, string position) |
| | | { |
| | | #region |
| | | //WebResponseContent content = new WebResponseContent(); |
| | | //try |
| | | //{ |
| | | // // æ¥è¯¢åºåä¿¡æ¯ |
| | | // var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == palletCode); |
| | | // if (stockInfo == null) |
| | | // { |
| | | // var taskOld = BaseDal.QueryFirst(x => x.PalletCode == palletCode); |
| | | // if (!taskOld.IsNullOrEmpty()) |
| | | // {// å建WMSä»»å¡ |
| | | // WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | // { |
| | | // TaskNum = taskOld.TaskNum.Value, |
| | | // Grade = 1, |
| | | // PalletCode = taskOld.PalletCode, |
| | | // RoadWay = taskOld.Roadway, |
| | | // SourceAddress = taskOld.CurrentAddress, |
| | | // TargetAddress = taskOld.TargetAddress, |
| | | // TaskState = taskOld.TaskState.Value, |
| | | // Id = 0, |
| | | // TaskType = taskOld.TaskType, |
| | | // }; |
| | | // return content.OK(data: taskDTO); |
| | | // } |
| | | // var area = _areaInfoRepository.QueryFirst(x => x.AreaID == 2); |
| | | // var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == position); |
| | | // TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, palletCode); |
| | | // content = await GetTrayCellStatusAsync(trayCells); |
| | | // if (!content.Status) return content; |
| | | |
| | | // ConsoleHelper.WriteErrorLine(content.ToJsonString()); |
| | | // var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | // if (!result.Success) return content.Error(result.MOMMessage); |
| | | |
| | | // if (result.SerialNos.Count > 0) |
| | | // { |
| | | // var boxing = CreateBoxingInfo(result, palletCode); |
| | | // if (boxing == null) return content.Error("ç»ç失败"); |
| | | |
| | | // // è·åå·¥èºè·¯çº¿ |
| | | // ProcessApplyDto process = await GetProcessApplyAsync(result); |
| | | // // èµå¼ä¸ä½è½¯ä»¶åç§°å设å¤ç¼ç |
| | | // process.Software = area.Spare3; |
| | | // process.EquipmentCode = area.Spare2; |
| | | // content = await _processApplyService.GetProcessApplyAsync(process); |
| | | // if (!content.Status) return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | |
| | | // var resultProcessApply = JsonConvert.DeserializeObject<ResultProcessApply>(content.Data.ToString()); |
| | | // if (!resultProcessApply.Success) return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | |
| | | // var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode.Contains(boxing.ProcessCode)).FirstOrDefault().Number.ToInt32(); |
| | | // foreach (var item in resultProcessApply.ProcessInfo) |
| | | // { |
| | | // if (item.Number.ToInt32() == number + 1) |
| | | // { |
| | | // boxing.NextProcessCode = item.ProcessCode; |
| | | // } |
| | | // } |
| | | // var location = await GetLocationDistributeAsync(station.Roadway); |
| | | |
| | | // ConsoleHelper.WriteErrorLine(location.ToJsonString()); |
| | | |
| | | // // å建æ°ä»»å¡å®ä¾ |
| | | // var task = new Dt_Task |
| | | // { |
| | | // CurrentAddress = station.stationLocation, |
| | | // Grade = 1, |
| | | // Roadway = station.Roadway, |
| | | // TargetAddress = location.LocationCode, |
| | | // Dispatchertime = DateTime.Now, |
| | | // MaterialNo = "", |
| | | // NextAddress = location.LocationCode, |
| | | // OrderNo = null, |
| | | // PalletCode = palletCode, |
| | | // SourceAddress = position, |
| | | // TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | // TaskType = (int)TaskInboundTypeEnum.Inbound, |
| | | // TaskNum = await BaseDal.GetTaskNo(), |
| | | // Creater = "Systeam" |
| | | // }; |
| | | |
| | | // // å建WMSä»»å¡ |
| | | // WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | // { |
| | | // TaskNum = task.TaskNum.Value, |
| | | // Grade = 1, |
| | | // PalletCode = task.PalletCode, |
| | | // RoadWay = task.Roadway, |
| | | // SourceAddress = task.SourceAddress, |
| | | // TargetAddress = task.TargetAddress, |
| | | // TaskState = task.TaskState.Value, |
| | | // Id = 0, |
| | | // TaskType = task.TaskType, |
| | | // }; |
| | | |
| | | // await _unitOfWorkManage.UseTranAsync(async () => |
| | | // { |
| | | // // æ·»å ä»»å¡å°æ°æ®åº |
| | | // await BaseDal.AddDataAsync(task); |
| | | // // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | // location.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | // await _locationRepository.UpdateDataAsync(location); |
| | | // await _boxingInfoRepository.AddDataNavAsync(boxing); |
| | | // }); |
| | | |
| | | // content.OK(data: taskDTO); |
| | | // } |
| | | // else |
| | | // content.Error(result.MOMMessage); |
| | | // } |
| | | // else |
| | | // { |
| | | // // TODOè´¨æ£ååº |
| | | // var area = _areaInfoRepository.QueryFirst(x => x.AreaID == 2); |
| | | // } |
| | | //} |
| | | //catch (Exception ex) |
| | | //{ |
| | | // content.Error(ex.Message); |
| | | //} |
| | | //return content; |
| | | #endregion éç½®å¼å¸¸å£å
¥åº |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | // æ¥è¯¢åºåä¿¡æ¯ |
| | | var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == palletCode); |
| | | if (stockInfo == null) |
| | | { |
| | | var taskOld = BaseDal.QueryFirst(x => x.PalletCode == palletCode); |
| | | if (taskOld != null) |
| | | { |
| | | // å建WMSä»»å¡ |
| | | WMSTaskDTO taskDTO = CreateWMSTaskDTO(taskOld); |
| | | return content.OK(data: taskDTO); |
| | | } |
| | | var area = _areaInfoRepository.QueryFirst(x => x.AreaID == 2); |
| | | var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == position); |
| | | TrayCellsStatusDto trayCells = CreateTrayCellsStatusDto(area, palletCode); |
| | | content = await GetTrayCellStatusAsync(trayCells); |
| | | if (!content.Status) return content; |
| | | |
| | | ConsoleHelper.WriteErrorLine(content.ToJsonString()); |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | if (result == null) return content.Error(result?.MOMMessage ?? "Deserialization error"); |
| | | |
| | | if (result.SerialNos.Count > 0) |
| | | { |
| | | var boxing = CreateBoxingInfo(result, palletCode); |
| | | if (boxing == null) return content.Error("ç»ç失败"); |
| | | |
| | | // è·åå·¥èºè·¯çº¿ |
| | | ProcessApplyDto process = await GetProcessApplyAsync(result); |
| | | // èµå¼ä¸ä½è½¯ä»¶åç§°å设å¤ç¼ç |
| | | process.Software = area.Spare3; |
| | | process.EquipmentCode = area.Spare2; |
| | | |
| | | content = await _processApplyService.GetProcessApplyAsync(process); |
| | | if (!content.Status) return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | |
| | | var resultProcessApply = JsonConvert.DeserializeObject<ResultProcessApply>(content.Data.ToString()) as ResultProcessApply; |
| | | if (resultProcessApply == null || !resultProcessApply.Success) return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | |
| | | var number = resultProcessApply.ProcessInfo.Where(x => x.ProcessCode.Contains(boxing.ProcessCode)).FirstOrDefault()?.Number.ToInt32() ?? 0; |
| | | foreach (var item in resultProcessApply.ProcessInfo) |
| | | { |
| | | if (item.Number.ToInt32() == number + 1) |
| | | { |
| | | boxing.NextProcessCode = item.ProcessCode; |
| | | } |
| | | } |
| | | var location = await GetLocationDistributeAsync(station.Roadway); |
| | | |
| | | ConsoleHelper.WriteErrorLine(location.ToJsonString()); |
| | | |
| | | // å建æ°ä»»å¡å®ä¾ |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = station.stationLocation, |
| | | Grade = 1, |
| | | Roadway = station.Roadway, |
| | | TargetAddress = location.LocationCode, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = location.LocationCode, |
| | | OrderNo = null, |
| | | PalletCode = palletCode, |
| | | SourceAddress = position, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskInboundTypeEnum.Inbound, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | |
| | | // å建WMSä»»å¡ |
| | | WMSTaskDTO taskDTO = CreateWMSTaskDTO(task); |
| | | |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | // æ·»å ä»»å¡å°æ°æ®åº |
| | | await BaseDal.AddDataAsync(task); |
| | | // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | location.LocationStatus = (int)LocationEnum.Lock; |
| | | await _locationRepository.UpdateDataAsync(location); |
| | | await _boxingInfoRepository.AddDataNavAsync(boxing); |
| | | }); |
| | | |
| | | content.OK(data: taskDTO); |
| | | } |
| | | else |
| | | { |
| | | var location = await GetLocationDistributeAsync(station.Roadway); |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = station.stationLocation, |
| | | Grade = 1, |
| | | Roadway = station.Roadway, |
| | | TargetAddress = location.LocationCode, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = location.LocationCode, |
| | | OrderNo = null, |
| | | PalletCode = palletCode, |
| | | SourceAddress = position, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskInboundTypeEnum.InTray, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | // å建WMSä»»å¡ |
| | | WMSTaskDTO taskDTO = CreateWMSTaskDTO(task); |
| | | |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | // æ·»å ä»»å¡å°æ°æ®åº |
| | | await BaseDal.AddDataAsync(task); |
| | | // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | location.LocationStatus = (int)LocationEnum.Lock; |
| | | await _locationRepository.UpdateDataAsync(location); |
| | | }); |
| | | |
| | | content.OK(data: taskDTO); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | // TODOè´¨æ£ååº |
| | | var area = _areaInfoRepository.QueryFirst(x => x.AreaID == 2); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // æ´è¯¦ç»çæ¥å¿è®°å½ï¼å¯ä½¿ç¨æ¥å¿æ¡æ¶æ¿æ¢ Console.WriteLine |
| | | Console.WriteLine($"Error in CreateAndSendInboundTask: {ex.Message}"); |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | private WMSTaskDTO CreateWMSTaskDTO(object source) |
| | | { |
| | | if (source is Dt_Task taskOld) |
| | | { |
| | | return new WMSTaskDTO() |
| | | { |
| | | TaskNum = taskOld.TaskNum.Value, |
| | | Grade = 1, |
| | | PalletCode = taskOld.PalletCode, |
| | | RoadWay = taskOld.Roadway, |
| | | SourceAddress = taskOld.SourceAddress, |
| | | TargetAddress = taskOld.TargetAddress, |
| | | TaskState = taskOld.TaskState.Value, |
| | | Id = 0, |
| | | TaskType = taskOld.TaskType, |
| | | ProductionLine = taskOld.ProductionLine |
| | | }; |
| | | } |
| | | else if (source is Dt_Task task) |
| | | { |
| | | return new WMSTaskDTO() |
| | | { |
| | | TaskNum = task.TaskNum.Value, |
| | | Grade = 1, |
| | | PalletCode = task.PalletCode, |
| | | RoadWay = task.Roadway, |
| | | SourceAddress = task.SourceAddress, |
| | | TargetAddress = task.TargetAddress, |
| | | TaskState = task.TaskState.Value, |
| | | Id = 0, |
| | | TaskType = task.TaskType, |
| | | ProductionLine = task.ProductionLine |
| | | }; |
| | | } |
| | | else |
| | | { |
| | | throw new ArgumentException("Invalid source object type for WMSTaskDTO creation."); |
| | | } |
| | | } |
| | | |
| | | #endregion å¤é¨æ¥å£æ¹æ³ |
| | | |
| | | #region éç½®æ¥è¯¢å®æ |
| | | public async Task<WebResponseContent> QueryStockInfoForRealTrayJZAsync(string ProductLine, string PalletCode) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == "1") |
| | | .Where(x => x.DeviceCode.Contains("JZSC")) |
| | | .ToList().Select(x => x.DeviceCode).ToList(); |
| | | |
| | | var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Where(x=> x.IsFull == true) // è¿æ»¤æ¡ä»¶ |
| | | .WhereIF(!ProductLine.IsNullOrEmpty(), x => x.ProductionLine == ProductLine) |
| | | .Includes(x => x.LocationInfo) |
| | | .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId==2 && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ |
| | | .Includes(x => x.StockInfoDetails) |
| | | .OrderBy(x => x.OutboundTime) // æåº |
| | | .FirstAsync(); |
| | | if (result.IsNullOrEmpty()) |
| | | content.Error(); |
| | | else |
| | | content.OK(); |
| | | LogFactory.GetLog($"éç½®æ¥è¯¢å®çåºå{ProductLine}").Info(true, $"æçå·ï¼{JsonConvert.SerializeObject(result.PalletCode)}-----产线{JsonConvert.SerializeObject(result.ProductionLine)}"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #endregion å¤é¨æ¥å£æ¹æ³ |
| | | |
| | | #region å
é¨è°ç¨æ¹æ³ |
| | | |
| | | /// <summary> |
| | | /// å建ä¸ä¸ªæ°çä»»å¡ |
| | | /// </summary> |
| | | /// <param name="model">任塿¨¡å</param> |
| | | /// <returns>å建çä»»å¡</returns> |
| | | public async Task<Dt_Task> Create(Dt_Task model) |
| | | { |
| | | return await BaseDal.Create(model); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éåå»ºä»»å¡ |
| | | /// </summary> |
| | | /// <param name="models">任塿¨¡åå表</param> |
| | | /// <returns>æ¯å¦å建æå</returns> |
| | | public async Task<bool> Create(List<Dt_Task> models) |
| | | { |
| | | return await BaseDal.Create(models); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å é¤ä¸ä¸ªä»»å¡ |
| | | /// </summary> |
| | | /// <param name="id">ä»»å¡ID</param> |
| | | /// <returns>æ¯å¦å 餿å</returns> |
| | | public async Task<bool> Delete(int id) |
| | | { |
| | | return await BaseDal.Delete(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éå é¤ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="ids">ä»»å¡IDå表</param> |
| | | /// <returns>æ¯å¦å 餿å</returns> |
| | | public async Task<bool> Delete(List<int> ids) |
| | | { |
| | | return await BaseDal.Delete(ids); |
| | | } |
| | | |
| | | public override WebResponseContent DeleteData(object[] key) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | // å建åå²ä»»å¡å®ä¾æ¨¡å |
| | | try |
| | | { |
| | | Dt_Task task = BaseDal.QueryFirst(x => x.TaskId == Convert.ToInt32(key[0])); |
| | | if (task == null) |
| | | { |
| | | return content.Error("æªæ¾å°ä»»å¡ä¿¡æ¯!"); |
| | | } |
| | | var taskHtyNG = CreateHistoricalTask(task, true); |
| | | |
| | | // æ§è¡æ°æ®åºäºå¡ |
| | | |
| | | // æ·»å åå²ä»»å¡ |
| | | var isTaskHtyAdd = _task_HtyRepository.AddData(taskHtyNG) > 0; |
| | | |
| | | // å é¤ä»»å¡æ°æ® |
| | | var isTaskDelete = BaseDal.Delete(task.TaskId); |
| | | |
| | | return content.OK("å 餿å!"); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error("å é¤ä»»å¡å¼å¸¸ï¼" + ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// éè¿IDè·åä»»å¡ |
| | | /// </summary> |
| | | /// <param name="id">ä»»å¡ID</param> |
| | | /// <returns>任塿¨¡å</returns> |
| | | public async Task<Dt_Task> GetById(int id) |
| | | { |
| | | return await BaseDal.GetById(id); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// è·åææä»»å¡å表 |
| | | /// </summary> |
| | | /// <returns>任塿¨¡åå表</returns> |
| | | public async Task<List<Dt_Task>> GetList() |
| | | { |
| | | return await BaseDal.GetList(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®åºåºè®¢åIDè·åä»»å¡å表 |
| | | /// </summary> |
| | | /// <param name="outOrderId">åºåºè®¢åID</param> |
| | | /// <returns>任塿¨¡åå表</returns> |
| | | public async Task<List<Dt_Task>> GetListByOutOrder(int outOrderId) |
| | | { |
| | | return await BaseDal.GetListByOutOrder(outOrderId); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®åºåºè®¢åIDåç¶æè·åä»»å¡å表 |
| | | /// </summary> |
| | | /// <param name="outOrderId">åºåºè®¢åID</param> |
| | | /// <param name="status">ä»»å¡ç¶æ</param> |
| | | /// <returns>任塿¨¡åå表</returns> |
| | | public async Task<List<Dt_Task>> GetListByOutOrderAndStatus(int outOrderId, int status) |
| | | { |
| | | return await BaseDal.GetListByOutOrderAndStatus(outOrderId, status); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®ç¶æè·åä»»å¡å表 |
| | | /// </summary> |
| | | /// <param name="status">ä»»å¡ç¶æ</param> |
| | | /// <returns>任塿¨¡åå表</returns> |
| | | public async Task<List<Dt_Task>> GetListByStatus(int status) |
| | | { |
| | | return await BaseDal.GetListByStatus(status); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°ä¸ä¸ªä»»å¡ |
| | | /// </summary> |
| | | /// <param name="model">任塿¨¡å</param> |
| | | /// <returns>æ¯å¦æ´æ°æå</returns> |
| | | public async Task<bool> Update(Dt_Task model) |
| | | { |
| | | return await BaseDal.UpdateDataAsync(model); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¹éæ´æ°ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="models">任塿¨¡åå表</param> |
| | | /// <returns>æ¯å¦æ´æ°æå</returns> |
| | | public async Task<bool> Update(List<Dt_Task> models) |
| | | { |
| | | return await BaseDal.UpdateDataAsync(models); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ£æ¥ä»»å¡æ¯å¦åå¨ |
| | | /// </summary> |
| | | /// <param name="palletCode">æçç¼ç </param> |
| | | /// <returns>任塿¯å¦åå¨</returns> |
| | | public bool IsExist(string palletCode) |
| | | { |
| | | return Db.Queryable<Dt_Task>().Any(x => x.PalletCode == palletCode); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®è´§ä½IDè·åä»»å¡ |
| | | /// </summary> |
| | | /// <param name="locationID"></param> |
| | | /// <returns></returns> |
| | | public async Task<Dt_Task> GetByLocation(string locationID) |
| | | { |
| | | return await BaseDal.QueryFirstAsync(x => x.SourceAddress == locationID); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®ä»»å¡å·è·åä»»å¡ |
| | | /// </summary> |
| | | /// <param name="taskNum"></param> |
| | | /// <returns></returns> |
| | | public async Task<Dt_Task> GetByTaskNum(int taskNum) |
| | | { |
| | | return await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum); |
| | | } |
| | | |
| | | #endregion å
é¨è°ç¨æ¹æ³ |
| | | |
| | | #region private å
鍿¹æ³ |
| | | |
| | | /// <summary> |
| | | /// å建åå²ä»»å¡è®°å½ |
| | | /// </summary> |
| | | /// <param name="task"></param> |
| | | /// <returns></returns> |
| | | private Dt_Task_Hty CreateHistoricalTask(Dt_Task task, bool isHand = false) |
| | | { |
| | | // æ´æ°ä»»å¡ç¶æ |
| | | task.TaskState = task.TaskType > 199 ? (int)TaskInStatusEnum.InFinish : (int)TaskOutStatusEnum.OutFinish; |
| | | task.CurrentAddress = task.NextAddress; |
| | | |
| | | // å建åå²ä»»å¡ |
| | | var taskHty = _mapper.Map<Dt_Task_Hty>(task); |
| | | taskHty.FinishTime = DateTime.Now; |
| | | taskHty.TaskId = 0; |
| | | taskHty.OperateType = isHand ? (int)OperateTypeEnum.人工å é¤ : App.User.UserName != null ? (int)OperateTypeEnum.äººå·¥å®æ : (int)OperateTypeEnum.èªå¨å®æ; |
| | | taskHty.SourceId = task.TaskId; |
| | | if (isHand) |
| | | { |
| | | taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System"; |
| | | } |
| | | taskHty.TaskState = task.TaskType > 199 ? (int)TaskInStatusEnum.InFinish : (int)TaskOutStatusEnum.OutFinish; |
| | | return taskHty; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ´æ°åºåä½ç½® |
| | | /// </summary> |
| | | /// <param name="stock">åºå对象</param> |
| | | /// <param name="toLocation">ç®æ ä½ç½®</param> |
| | | // æ´æ°åºååä½ç½®ä¿¡æ¯ |
| | | private (DtStockInfo, DtLocationInfo, DtLocationInfo) UpdateStockLocation(DtStockInfo stock, Dt_Task task) |
| | | { |
| | | //ä¿®æ¹æ¥æºåºä½å ç®æ åºä½ç¶æ |
| | | var fromLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway); |
| | | fromLocation.LocationStatus = LocationEnum.Free.ObjToInt(); |
| | | var toLocation = _locationRepository.QueryFirst(x => x.LocationCode == task.SourceAddress && x.RoadwayNo == task.Roadway); |
| | | toLocation.LocationStatus = LocationEnum.InStock.ObjToInt(); |
| | | |
| | | // å°åºåä½ç½®è®¾ç½®ä¸ºç®æ ä½ç½® |
| | | stock.LocationCode = task.TargetAddress; |
| | | |
| | | // è¿åæ´æ°åçåºååä½ç½®ä¿¡æ¯ |
| | | return (stock, fromLocation, toLocation); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ§è¡æ°æ®åºäºå¡ |
| | | /// </summary> |
| | | /// <param name="stock">åºå对象</param> |
| | | /// <param name="taskHty">åå²ä»»å¡å¯¹è±¡</param> |
| | | /// <param name="taskId">ä»»å¡ID</param> |
| | | /// <returns></returns> |
| | | private async Task<bool> ExecuteTransaction(DtStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo locationInfo, int taskId, DtBoxingInfo boxingInfo = null) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | try |
| | | { |
| | | var isUpdateStock = true; |
| | | var isDeleteBoxing = true; |
| | | if (taskHty.TaskType == (int)TaskTypeEnum.Outbound) |
| | | { |
| | | // æ´æ°åºå |
| | | isUpdateStock = await _stockInfoRepository.UpdateDataAsync(stock); |
| | | } |
| | | else |
| | | { |
| | | // æ·»å åºå |
| | | isUpdateStock = await _stockInfoRepository.AddDataNavAsync(stock); |
| | | if (boxingInfo != null) |
| | | { |
| | | isDeleteBoxing = await _boxingInfoRepository.Db.DeleteNav<DtBoxingInfo>(x => x.Id == boxingInfo.Id) |
| | | .Include(x => x.BoxingInfoDetails) |
| | | .ExecuteCommandAsync(); |
| | | } |
| | | } |
| | | |
| | | #region æ´æ°åºåä¿¡æ¯ï¼ææ¶ä¸éè¦ï¼ |
| | | //if (stock.IsFull) |
| | | //{ |
| | | // // æ¥è¯¢ç¬¦åæ¡ä»¶çåºåä¿¡æ¯ |
| | | // var stocks = _stockInfoRepository.QueryData(x => x.AreaCode == stock.AreaCode && x.ProductionLine == stock.ProductionLine && x.SpecialParameterDuration != stock.SpecialParameterDuration); |
| | | |
| | | // // æ¥è¯¢ä»»å¡ä¿¡æ¯ |
| | | // var tasks = BaseDal.QueryData(x => x.PalletCode != stock.PalletCode && x.ProductionLine == stock.ProductionLine).Select(x => x.PalletCode).ToList(); |
| | | |
| | | // if (stocks != null && stocks.Count > 0) |
| | | // { |
| | | // // è¿æ»¤åºéè¦æ´æ°çåºåä¿¡æ¯ |
| | | // var stocksToUpdate = stocks.Where(item => !tasks.Contains(item.PalletCode)).ToList(); |
| | | // foreach (var item in stocksToUpdate) |
| | | // { |
| | | // // æ´æ°åºåä¿¡æ¯çç¹å®åæ° |
| | | // item.SpecialParameterDuration = stock.SpecialParameterDuration; |
| | | // item.ParameterInfos = stock.ParameterInfos; |
| | | // item.OutboundTime = Convert.ToDateTime(item.LinedProcessFeedbackTime == null ? item.CreateDate : item.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(stock.SpecialParameterDuration)); |
| | | // } |
| | | // if (stocksToUpdate.Count > 0) |
| | | // { |
| | | // // 弿¥æ´æ°åºåä¿¡æ¯ |
| | | // var isUpdates = await _stockInfoRepository.UpdateDataAsync(stocksToUpdate); |
| | | // } |
| | | // } |
| | | //} |
| | | #endregion |
| | | |
| | | // æ·»å åå²ä»»å¡ |
| | | var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; |
| | | |
| | | // ä¿®æ¹ç§»åºåè´§ä½ç¶æ |
| | | var isUpdateLoc = _locationRepository.UpdateData(locationInfo); |
| | | |
| | | // å é¤ä»»å¡æ°æ® |
| | | var isTaskDelete = await Delete(taskId); |
| | | |
| | | // æäº¤æåæ»äºå¡ |
| | | if (isUpdateStock && isTaskHtyAdd && isTaskDelete && isUpdateLoc && isDeleteBoxing) |
| | | { |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "ä»»å¡å®æ", $"äºå¡å¤ç宿,æäº¤äºå¡ãæ·»å åå²ä»»å¡ï¼{isTaskHtyAdd},å é¤ä»»å¡æ°æ®ï¼{isTaskDelete},æ´æ°ææ·»å åºåï¼{isUpdateStock},ä¿®æ¹ç§»åºåè´§ä½ç¶æï¼{isUpdateLoc}"); |
| | | _unitOfWorkManage.CommitTran(); |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "ä»»å¡å®æ", $"æ°æ®å¤ç失败,è¯·æ£æ¥æ°æ®æ¯å¦æ£ç¡®,æ°æ®åæ»ãæ·»å åå²ä»»å¡ï¼{isTaskHtyAdd},å é¤ä»»å¡æ°æ®ï¼{isTaskDelete},æ´æ°åºåï¼{isUpdateStock},ä¿®æ¹ç§»åºåè´§ä½ç¶æï¼{isUpdateLoc}"); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return false; |
| | | } |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, $"ä»»å¡å®æ,ç³»ç»å¼å¸¸ï¼å¼å¸¸ä¿¡æ¯ï¼{err.Message}", "æ åæ°"); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw; // æåºå¼å¸¸ä»¥ä¾¿å¤é¨æè· |
| | | } |
| | | } |
| | | |
| | | #region ä»»å¡è¯·æ±æ¹æ³ |
| | | |
| | | private static readonly SemaphoreSlim _semaphoreUpdate = new SemaphoreSlim(1, 1); |
| | | // æ´æ°ä»»å¡è´§ä½ |
| | | |
| | | private async Task<WebResponseContent> UpdateExistingTask(RequestTaskDto input, Dt_Task task) |
| | | { |
| | | await _semaphoreUpdate.WaitAsync(); |
| | | try |
| | | { |
| | | if (task == null) |
| | | { |
| | | return new WebResponseContent().Error("ä»»å¡å¯¹è±¡ä¸ºç©º"); |
| | | } |
| | | |
| | | try |
| | | { |
| | | // å建WebResponseContent对象 |
| | | var content = new WebResponseContent(); |
| | | |
| | | // è·åç®æ å°ååæ´æ°ä»»å¡ç¶æ |
| | | |
| | | input.Position = Regex.Replace(input.Position, @"-(\d+)", ""); |
| | | if (Convert.ToInt32(input.Position) > 1999) |
| | | { |
| | | input.Position = (Convert.ToInt32(input.Position) - 1000).ToString(); |
| | | } |
| | | |
| | | if (task.TaskType == (int)TaskInboundTypeEnum.InNG) |
| | | { |
| | | // TODO æ ¹æ®å··éæ¥æ¾å¯¹åºNGå£ï¼ç°å¨é»è®¤å»éç½®å åæºçå¼å¸¸å£è´§ä½å· |
| | | task.CurrentAddress = input.Position; |
| | | task.TargetAddress = "002-021-000"; |
| | | task.NextAddress = "002-021-000"; |
| | | task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | | bool isResult = await BaseDal.UpdateDataAsync(task); |
| | | return content.OK(data: task); |
| | | } |
| | | else if (task.TaskType == (int)TaskInboundTypeEnum.InQuality) |
| | | { |
| | | var stockInfo = await _stockInfoRepository.QueryFirstNavAsync(x => x.PalletCode == input.PalletCode); |
| | | task.CurrentAddress = input.Position; |
| | | task.TargetAddress = stockInfo.LocationInfo.LocationCode; |
| | | task.NextAddress = stockInfo.LocationInfo.LocationCode; |
| | | task.TaskState = (int)TaskInStatusEnum.Line_InFinish; |
| | | bool isResult = await BaseDal.UpdateDataAsync(task); |
| | | return content.OK(data: task); |
| | | } |
| | | else |
| | | { |
| | | var location = await GetLocationDistributeAsync(task.Roadway); |
| | | if (location == null) |
| | | { |
| | | return content.Error("æ æ³è·åè´§ä½ä¿¡æ¯"); |
| | | } |
| | | |
| | | string toAddress = location.LocationCode; |
| | | int taskState = (int)TaskInStatusEnum.Line_InFinish; |
| | | int beforeStatus = location.LocationStatus; |
| | | // æ´æ°è´§ä½ä¿¡æ¯ |
| | | location.LocationStatus = (int)LocationEnum.Lock; |
| | | |
| | | // æ´æ°ä»»å¡ä¿¡æ¯ |
| | | MapTaskProperties(task, input, toAddress, taskState); |
| | | |
| | | // å¼å§äºå¡ |
| | | var isResult = await UpdateTaskAsync(task, location, beforeStatus); |
| | | if (!isResult) |
| | | { |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return content.Error("æ´æ°ä»»å¡å¤±è´¥"); |
| | | } |
| | | |
| | | // æäº¤äºå¡ |
| | | _unitOfWorkManage.CommitTran(); |
| | | return content.OK(data: task); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | // åæ»äºå¡ |
| | | _unitOfWorkManage.RollbackTran(); |
| | | // è¿éå¯ä»¥æ·»å æ¥å¿è®°å½ |
| | | return new WebResponseContent().Error($"æ´æ°ä»»å¡æ¶åçé误: {ex.Message}"); |
| | | } |
| | | } |
| | | catch (Exception) |
| | | { |
| | | throw; |
| | | } |
| | | finally { _semaphoreUpdate.Release(); } |
| | | } |
| | | |
| | | private void MapTaskProperties(Dt_Task task, RequestTaskDto input, string toAddress, int taskState) |
| | | { |
| | | task.CurrentAddress = input.Position; |
| | | task.TargetAddress = toAddress; |
| | | task.NextAddress = toAddress; |
| | | task.TaskState = taskState; |
| | | } |
| | | |
| | | // ä¿®æ¹ä»»å¡ |
| | | private async Task<bool> UpdateTaskAsync(Dt_Task task, DtLocationInfo location, int beforeStatus) |
| | | { |
| | | bool isResult = await BaseDal.UpdateDataAsync(task); |
| | | bool isTaskDetail = await _taskExecuteDetailRepository.AddDetailAsync(task, false, TaskDescription.GetTaskUpdateDescription(task.PalletCode, task.CurrentAddress, task.TargetAddress, TaskInStatusEnum.Line_InFinish.GetIntegralRuleTypeEnumDesc())); |
| | | |
| | | LocationChangeRecordDto changeRecordDto = new LocationChangeRecordDto() |
| | | { |
| | | AfterStatus = location.LocationStatus, |
| | | BeforeStatus = beforeStatus, |
| | | TaskNum = task.TaskNum.Value, |
| | | LocationId = location.Id, |
| | | LocationCode = location.LocationCode, |
| | | ChangeType = (int)StatusChangeTypeEnum.AutomaticStorage, |
| | | }; |
| | | |
| | | bool isUpdateChange = _locationStatusChangeRecordRepository.AddStatusChangeRecord(changeRecordDto); |
| | | bool isUpdateLo = await _locationRepository.UpdateDataAsync(location); |
| | | |
| | | return isResult && isUpdateLo && isTaskDetail; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// å建æ°ä»»å¡ |
| | | /// </summary> |
| | | /// <param name="input">è¯·æ±æ¨¡å</param> |
| | | /// <param name="process">å··é</param> |
| | | /// <param name="flag">æ è¯ï¼0-å
¥åºï¼1-空æçå
¥åºï¼2-NGå
¥åºï¼3-åºåºï¼</param> |
| | | /// <returns></returns> |
| | | private async Task<WebResponseContent> CreateNewTask(RequestTaskDto input, string productionLine, string processCode, List<string> process = null, int flag = 0) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | |
| | | // è·åç®æ å°å |
| | | //string ToAddress = await GetRoadWayAsync(process); |
| | | string ToAddress = string.Empty; |
| | | if (flag < 2) |
| | | ToAddress = await GetRoadWayAsync(process); |
| | | else |
| | | ToAddress = process[0]; |
| | | |
| | | // å建æ°ä»»å¡å®ä¾ |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 1, |
| | | Roadway = ToAddress, |
| | | TargetAddress = ToAddress, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = ToAddress, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = input.Position, |
| | | TaskState = flag == 3 ? (int)TaskOutStatusEnum.OutNew : (int)TaskInStatusEnum.InNew, |
| | | TaskType = flag == 0 ? (int)TaskInboundTypeEnum.Inbound : flag == 1 ? (int)TaskInboundTypeEnum.InTray : flag == 2 ? (int)TaskInboundTypeEnum.InNG : (int)TaskOutboundTypeEnum.Outbound, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = productionLine, |
| | | ProcessCode = processCode |
| | | }; |
| | | |
| | | // å°è¯æ·»å æ°ä»»å¡ |
| | | var taskId = await BaseDal.AddDataAsync(task); |
| | | bool isResult = taskId > 0; |
| | | if (isResult) |
| | | { |
| | | task.TaskId = taskId; |
| | | isResult = await _taskExecuteDetailRepository.AddDetailAsync(task, false, TaskDescription.GetTaskUpdateDescription(input.PalletCode, input.Position, ToAddress, TaskInStatusEnum.InNew.GetIntegralRuleTypeEnumDesc())); |
| | | |
| | | //var location = _locationRepository.QueryFirst(x => x.RoadwayNo == task.Roadway && x.LocationCode == task.TargetAddress); |
| | | //location.LocationStatus = (int)LocationEnum.Lock; |
| | | //var isLocation = _locationRepository.UpdateData(location); |
| | | |
| | | if (isResult) |
| | | { |
| | | // å建WMSä»»å¡ |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | { |
| | | TaskNum = task.TaskNum.Value, |
| | | Grade = 1, |
| | | PalletCode = task.PalletCode, |
| | | RoadWay = task.Roadway, |
| | | SourceAddress = task.SourceAddress, |
| | | TargetAddress = task.TargetAddress, |
| | | TaskState = task.TaskState.Value, |
| | | Id = 0, |
| | | TaskType = task.TaskType, |
| | | ProductionLine = task.ProductionLine |
| | | }; |
| | | content.OK(data: taskDTO); |
| | | } |
| | | else |
| | | content.Error("æ·»å ä»»å¡å¤±è´¥"); |
| | | } |
| | | else |
| | | content.Error("æ·»å ä»»å¡å¤±è´¥"); |
| | | return content; |
| | | } |
| | | |
| | | private static readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); |
| | | |
| | | /// <summary> |
| | | /// æ¥æ¾è´§ä½ |
| | | /// </summary> |
| | | /// <param name="IsFull">åºå主é®</param> |
| | | /// <param name="roadWay">å··é</param> |
| | | /// <returns></returns> |
| | | public async Task<DtLocationInfo> GetLocationDistributeAsync(string roadWay, bool IsFull = true) |
| | | { |
| | | #region è·åè´§ä½ |
| | | |
| | | await _semaphore.WaitAsync(); |
| | | try |
| | | { |
| | | List<DtLocationInfo> locations; |
| | | if (IsFull) |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay && x.EnalbeStatus == (int)EnableEnum.Enable); |
| | | } |
| | | else |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == roadWay && x.EnalbeStatus == (int)EnableEnum.Enable); |
| | | } |
| | | |
| | | if (locations == null) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | return locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault(); |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | Console.WriteLine(err.Message.ToString()); |
| | | return null; |
| | | } |
| | | finally |
| | | { |
| | | _semaphore.Release(); |
| | | } |
| | | |
| | | #endregion è·åè´§ä½ |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®å··éè·åå··éæç«å° |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | public async Task<string> GetRoadWayAsync(List<string> process) |
| | | { |
| | | var deviceCode = await SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == 1.ToString() && process.Contains(x.DeviceCode)) |
| | | .Select(x => x.DeviceCode).ToListAsync(); |
| | | |
| | | var minGroup = _locationRepository.QueryData(x => deviceCode.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free) |
| | | .GroupBy(x => x.RoadwayNo) |
| | | .OrderByDescending(g => g.Count()) // æ ¹æ®æ¯ä¸ªç»çå
ç´ æ°éæåº |
| | | .ToList(); // ååºæ°éæå¤çç» |
| | | |
| | | Dictionary<string, int> result = new Dictionary<string, int>(); |
| | | foreach (var item in minGroup) |
| | | { |
| | | var number = BaseDal.QueryData(x => x.TargetAddress == item.Key).Count(); |
| | | result.Add(item.Key, item.Count() - number); |
| | | } |
| | | |
| | | string minRoadwayNo = result.OrderByDescending(x => x.Value).FirstOrDefault().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()) // æ ¹æ®æ¯ä¸ªç»çå
ç´ æ°éæåº |
| | | .ToList(); // ååºæ°éæå°çç» |
| | | |
| | | Dictionary<string, int> result = new Dictionary<string, int>(); |
| | | foreach (var item in minGroup) |
| | | { |
| | | var number = BaseDal.QueryData(x => x.TargetAddress == item.Key).Count(); |
| | | result.Add(item.Key, item.Count() - number); |
| | | } |
| | | |
| | | string minRoadwayNo = result.OrderByDescending(x => x.Value).FirstOrDefault().Key; // æ°éæå¤çç»çKey |
| | | |
| | | return minRoadwayNo; |
| | | } |
| | | |
| | | // æ°çåºåºé误å¤çé»è¾ |
| | | private async Task HandleOutBoundError(DtStockInfo stock, Dt_Task task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | var area = _areaInfoRepository.QueryFirst(x => x.AreaCode == stock.AreaCode); |
| | | if (area == null) |
| | | { |
| | | throw new Exception("æªæ¾å°å¯¹åºçåºåºä¿¡æ¯"); |
| | | } |
| | | |
| | | var trayCells = new TrayCellsStatusDto |
| | | { |
| | | Software = area.Spare3, |
| | | TrayBarcode = task.PalletCode, |
| | | EquipmentCode = area.Spare2, |
| | | SceneType = area.Spare4 |
| | | }; |
| | | |
| | | content = await _cellStateService.GetTrayCellStatusAsync(trayCells); |
| | | if (!content.Status) return; |
| | | |
| | | var ResultTray = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | if (ResultTray.SerialNos.Count > 0) |
| | | { |
| | | var parameterInfo = GetParameterInfo(stock); |
| | | |
| | | var outHours = CalculateOutHours(stock); |
| | | var isNG = outHours > parameterInfo.LowerSpecificationsLimit.ToDouble() |
| | | && outHours < parameterInfo.UpperSpecificationsLimit.ToDouble(); |
| | | |
| | | var defectCode = !isNG ? "TQCK" : string.Empty; |
| | | |
| | | var outputDto = CreateAgingOutputDto(area, stock, ResultTray, parameterInfo, outHours, defectCode); |
| | | content = await _agingInOrOutInputService.GetOCVOutputAsync(outputDto); |
| | | |
| | | var result = JsonConvert.DeserializeObject<BasicResult>(content.Data.ToString()); |
| | | if (!result.Success) |
| | | task.Remark = "NG"; |
| | | } |
| | | } |
| | | |
| | | // 计ç®åºåºå°æ¶çæ¹æ³ |
| | | private double CalculateOutHours(DtStockInfo stock) => |
| | | (DateTime.Now - Convert.ToDateTime(stock.LinedProcessFeedbackTime ?? stock.CreateDate.ToString())).TotalHours; |
| | | |
| | | // çæ AgingOutputDto çå°è£
æ¹æ³ |
| | | private AgingOutputDto CreateAgingOutputDto(Dt_AreaInfo area, DtStockInfo stock, ResultTrayCellsStatus resultTray, |
| | | ParameterInfo parameterInfo, double outHours, string defectCode) |
| | | { |
| | | return new AgingOutputDto |
| | | { |
| | | OpFlag = 1, |
| | | Software = area.Spare3, |
| | | EquipmentCode = area.Spare2, |
| | | TrayBarcode = stock.PalletCode, |
| | | SerialNos = resultTray.SerialNos.Select(x => new SerialNoOutDto |
| | | { |
| | | SlotNo = x.PositionNo, |
| | | SerialNo = x.SerialNo, |
| | | SerialNoResult = true, |
| | | ParameterInfo = new List<ParameterInfoOutput> |
| | | { |
| | | new ParameterInfoOutput |
| | | { |
| | | Value = outHours.ToString(), |
| | | ParameterCode = parameterInfo.ParameterCode, |
| | | ParameterDesc = parameterInfo.Description, |
| | | ParameterResult = "OK", |
| | | TargetValue = parameterInfo.TargetValue, |
| | | LowerLimit = parameterInfo.LowerSpecificationsLimit, |
| | | UpperLimit = parameterInfo.UpperSpecificationsLimit, |
| | | DefectCode = defectCode, |
| | | } |
| | | } |
| | | }).ToList() |
| | | }; |
| | | } |
| | | |
| | | // è·ååæ°ä¿¡æ¯çè¾
婿¹æ³ |
| | | private ParameterInfo GetParameterInfo(DtStockInfo stock) => |
| | | JsonConvert.DeserializeObject<List<ParameterInfo>>(stock.ParameterInfos) |
| | | .FirstOrDefault(y => y.Description.Contains("æ¶é´")); |
| | | |
| | | #endregion ä»»å¡è¯·æ±æ¹æ³ |
| | | |
| | | #endregion private å
鍿¹æ³ |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | using Masuit.Tools; |
| | | using SqlSugar; |
| | | using WIDESEA_Common.CustomModels; |
| | | using WIDESEA_Core.Const; |
| | | using WIDESEA_DTO.MOM; |
| | | using WIDESEA_DTO.WMS; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob.Models; |
| | | |
| | | namespace WIDESEA_StorageTaskServices; |
| | | |
| | | public partial class Dt_TaskService : ServiceBase<Dt_Task, IDt_TaskRepository>, IDt_TaskService |
| | | { |
| | | #region 请æ±ä»»å¡å
¥åº |
| | | |
| | | /// <summary> |
| | | /// 请æ±å
¥åº |
| | | /// </summary> |
| | | /// <param name="input">è¯·æ±æ¨¡å</param> |
| | | /// <returns>å
å«ä»»å¡ä¿¡æ¯çååºå
容</returns> |
| | | public async Task<WebResponseContent> RequestInTask(RequestTaskDto input) |
| | | { |
| | | Console.WriteLine($"{JsonConvert.SerializeObject(input)}"); |
| | | // å建ä¸ä¸ªWebResponseContent对象 |
| | | WebResponseContent content = new WebResponseContent(); |
| | | 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.TargetAddress, |
| | | // TaskState = task.TaskState.Value, |
| | | // Id = 0, |
| | | // TaskType = task.TaskType, |
| | | // ProductionLine = task.ProductionLine, |
| | | //}; |
| | | WMSTaskDTO taskDTO = CreateTaskDTO(task); |
| | | return content.OK(data: taskDTO); |
| | | } |
| | | } |
| | | // è°ç¨CreateNewTaskæ¹æ³ï¼å建æ°ä»»å¡ |
| | | content = await CreateNewTask(input); |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | // 妿åçå¼å¸¸ï¼åè°ç¨content.Erroræ¹æ³ï¼è®°å½é误信æ¯ï¼å¹¶è¾åºéè¯¯ä¿¡æ¯ |
| | | content.Error(err.Message); |
| | | Console.WriteLine(err.Message); |
| | | } |
| | | // è¿åcontent |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="input">请æ±åæ°</param> |
| | | /// <param name="flag">宿¡ç©ºæ¡æ è¯</param> |
| | | /// <returns></returns> |
| | | private async Task<WebResponseContent> CreateNewTask(RequestTaskDto input) |
| | | { |
| | | try |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | |
| | | var stationinfo = _stationManagerRepository.QueryFirst(x => x.stationChildCode == input.Position); |
| | | |
| | | if (stationinfo == null) throw new Exception("æªç¥ç«å°"); |
| | | |
| | | if (stationinfo.stationType != 7) |
| | | { |
| | | if (input.PalletCode == null || input.PalletCode.Trim() == "") |
| | | return content.Error($"ã{stationinfo.remark}ãæçæ¡ç 为空"); |
| | | } |
| | | var task = await CreateNewTaskByStation(input, stationinfo); |
| | | |
| | | // å°è¯æ·»å æ°ä»»å¡ |
| | | if (task == null) return content.Error(); |
| | | var taskId = await BaseDal.AddDataAsync(task); |
| | | bool isResult = taskId > 0; |
| | | if (isResult) |
| | | { |
| | | // å建WMSä»»å¡ |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | { |
| | | TaskNum = task.TaskNum.Value, |
| | | Grade = task.Grade.Value, |
| | | PalletCode = task.PalletCode, |
| | | RoadWay = task.Roadway, |
| | | SourceAddress = task.SourceAddress, |
| | | TargetAddress = task.TargetAddress, |
| | | TaskState = task.TaskState.Value, |
| | | Id = 0, |
| | | TaskType = task.TaskType, |
| | | ProductionLine = task.ProductionLine |
| | | }; |
| | | content.OK(data: taskDTO); |
| | | } |
| | | else |
| | | content.Error("æ·»å ä»»å¡å¤±è´¥"); |
| | | return content; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ ¹æ®è¯·æ±åæ°åç«å° åä¸åä»»å¡å¤ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="stationManager"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | private async Task<Dt_Task> CreateNewTaskByStation(RequestTaskDto input, Dt_StationManager stationManager) |
| | | { |
| | | try |
| | | { |
| | | Dt_Task task = null; |
| | | switch (stationManager.stationType) |
| | | { |
| | | case 6: |
| | | case 1: |
| | | task = await CreateInTaskAsync(input, stationManager); break; |
| | | //case 2: |
| | | case 3: //å¼å¸¸æåºç»WCSå¤ç |
| | | //case 4: |
| | | case 5: |
| | | task = await CreateInToOutTaskAsync(input, stationManager); break; |
| | | case 7: |
| | | task = await CreateEmptyOutTaskAsync(input, stationManager); break; |
| | | case 15: |
| | | task = await CheckAbnormalTaskAsync(input, stationManager); break; |
| | | default: |
| | | throw new Exception("æªç¥ç«å°ç±»å"); |
| | | } |
| | | return task; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #region ç´æ¥åºåºä»»å¡ |
| | | |
| | | private async Task<Dt_Task> CreateInToOutTaskAsync(RequestTaskDto input, Dt_StationManager stationManager) |
| | | { |
| | | try |
| | | { |
| | | //if (stationManager.stationType != 5) throw new Exception("é误çè°å"); |
| | | |
| | | input.EquiCodeMOM = "24MEJQ11-1006-1"; |
| | | |
| | | // å建ä¸ä¸ªTrayCellsStatusDto对象ï¼å¹¶èµå¼ |
| | | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() |
| | | { |
| | | Software = "WMS", |
| | | TrayBarcode = input.PalletCode, |
| | | //EquipmentCode = "EQ_CWJZ01" |
| | | EquipmentCode = input.EquiCodeMOM |
| | | }; |
| | | |
| | | // è°ç¨GetTrayCellStatusAsyncæ¹æ³ï¼è·åæ´ççµè¯ |
| | | WebResponseContent content = await GetTrayCellStatusAsync(trayCells); |
| | | // å¦æç¶æä¸ºfalseï¼åè¿åcontent |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | |
| | | // ç»çä¿¡æ¯ |
| | | // å°content.Data转æ¢ä¸ºResultTrayCellsStatus对象 |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | |
| | | if (!result.Success) |
| | | { |
| | | var taskNG = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 1, |
| | | Roadway = input.Roadways, |
| | | TargetAddress = stationManager.stationNGLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = stationManager.stationNGChildCode, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskOutboundTypeEnum.InToOut, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | return taskNG; |
| | | } |
| | | |
| | | if (result.SerialNos.Count <= 0) |
| | | { |
| | | ConsoleHelper.WriteErrorLine(result.MOMMessage); |
| | | if (stationManager.stationType != 3) |
| | | { |
| | | var taskNG = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 3, |
| | | Roadway = input.Roadways, |
| | | TargetAddress = stationManager.stationNGLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = stationManager.stationNGChildCode, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskOutboundTypeEnum.InToOut, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System" |
| | | }; |
| | | return taskNG; |
| | | } |
| | | else |
| | | { |
| | | //æ çµè¯ â å½ç©ºæ¡ï¼ è¿æ¯è¿åå¼å¸¸ï¼ |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | // å¤çå¼å¸¸çµè¯æ
åµ |
| | | var serialNosError = result.SerialNos.Where(x => x.SerialNoStatus != 1 && x.SerialNoStatus != 4).ToList(); |
| | | if (serialNosError.Count > 0) |
| | | { |
| | | if (stationManager.stationType != 3) |
| | | { |
| | | var taskNG = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 1, |
| | | Roadway = input.Roadways, |
| | | TargetAddress = stationManager.stationNGLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = stationManager.stationNGChildCode, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskOutboundTypeEnum.InToOut, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | return taskNG; |
| | | } |
| | | else |
| | | { |
| | | Console.WriteLine($"ç«å°{stationManager.stationChildCode}MOMè¿åçµè¯å¼å¸¸:{result.MOMMessage}"); |
| | | return null; |
| | | } |
| | | } |
| | | //else |
| | | //{ |
| | | // throw new Exception($"ç«å°{stationManager.stationChildCode}MOMè¿åçµè¯å¼å¸¸:{result.MOMMessage}"); |
| | | //} |
| | | |
| | | var targetStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == stationManager.stationPLC && x.Roadway == stationManager.Roadway && x.stationType == 2); |
| | | |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 3, |
| | | Roadway = input.Roadways, |
| | | TargetAddress = targetStation.stationLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = input.Roadways, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskOutboundTypeEnum.InToOut, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | return task; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion ç´æ¥åºåºä»»å¡ |
| | | |
| | | #region å
¥åºä»»å¡ |
| | | |
| | | private async Task<Dt_Task> CreateInTaskAsync(RequestTaskDto input, Dt_StationManager stationManager) |
| | | { |
| | | if (stationManager.stationType != 1 && stationManager.stationType != 6) throw new Exception("é误çè°å"); |
| | | |
| | | DtLocationInfo locationInfo = null; |
| | | if (stationManager.stationType == 1 && stationManager.Roadway.Contains("FR")) |
| | | { |
| | | locationInfo = await RequestLocation(input, true); |
| | | } |
| | | else |
| | | { |
| | | locationInfo = await RequestLocation(input); |
| | | } |
| | | //DtLocationInfo locationInfo = await RequestLocation(input); |
| | | |
| | | if (locationInfo == null) throw new Exception("åºä½å·²æ»¡"); |
| | | |
| | | // å建ä¸ä¸ªTrayCellsStatusDto对象ï¼å¹¶èµå¼ |
| | | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() |
| | | { |
| | | Software = "WMS", |
| | | TrayBarcode = input.PalletCode, |
| | | //EquipmentCode = "EQ_CWJZ01" |
| | | EquipmentCode = input.EquiCodeMOM |
| | | }; |
| | | |
| | | // è°ç¨GetTrayCellStatusAsyncæ¹æ³ï¼è·åæ´ççµè¯ |
| | | WebResponseContent content = await GetTrayCellStatusAsync(trayCells); |
| | | // å¦æç¶æä¸ºfalseï¼åè¿åcontent |
| | | if (!content.Status) throw new Exception(content.Message); |
| | | |
| | | // å°content.Data转æ¢ä¸ºResultTrayCellsStatus对象 |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | |
| | | if (stationManager.stationType == 6 && result.ProductionLine.IsNullOrEmpty()) |
| | | { |
| | | ConsoleHelper.WriteErrorLine($"å½åæçæ 产线,èç³»MOMæ·»å 产线"); |
| | | throw new Exception("å½åæçæ 产线,èç³»MOMæ·»å 产线"); |
| | | } |
| | | |
| | | if (stationManager.stationType == 1) |
| | | { |
| | | #region |
| | | |
| | | if (result.SerialNos.Count <= 0) |
| | | { |
| | | ConsoleHelper.WriteErrorLine(result.MOMMessage); |
| | | var taskNG = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 1, |
| | | Roadway = input.Roadways, |
| | | TargetAddress = stationManager.stationNGLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = stationManager.stationNGChildCode, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskOutboundTypeEnum.InToOut, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | return taskNG; |
| | | } |
| | | |
| | | //Console.WriteLine(result); |
| | | //// 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 = CreateBoxingInfo(result, input.PalletCode); |
| | | if (boxing == null) throw new Exception("ç»ç失败"); |
| | | |
| | | //// è°ç¨GetProcessApplyAsyncæ¹æ³ï¼è·åå·¥èºè·¯çº¿ |
| | | //ProcessApplyDto process = await GetProcessApplyAsync(input, result); |
| | | |
| | | //// 妿process为nullï¼åè¿åcontent |
| | | //if (process == null) return content; |
| | | |
| | | //// è°ç¨_processApplyService.GetProcessApplyAsyncæ¹æ³ï¼è·åå·¥èºç³è¯· |
| | | //content = await _processApplyService.GetProcessApplyAsync(process); |
| | | |
| | | //// å¦æç¶æä¸ºfalseï¼åè¿ånull |
| | | //if (!content.Status) return content.Error("å·¥èºç³è¯·å¤±è´¥"); |
| | | |
| | | ////// è°ç¨GetProcessResponseAsyncæ¹æ³ï¼è·åå·¥èºååº |
| | | ////var processResponse = await GetProcessResponseAsync(process, input.Position); |
| | | var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); |
| | | #endregion å
¥åºä»»å¡ |
| | | } |
| | | |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 1, |
| | | Roadway = input.Roadways, |
| | | TargetAddress = locationInfo.LocationCode, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = input.Roadways, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = stationManager.stationType == 1 ? (int)TaskInboundTypeEnum.Inbound : (int)TaskInboundTypeEnum.InTray, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | int lastStatus = locationInfo.LocationStatus; |
| | | ConsoleHelper.WriteSuccessLine($"ä¿®æ¹åï¼" + lastStatus.ToString()); |
| | | locationInfo.LocationStatus = (int)LocationEnum.FreeDisable; |
| | | ConsoleHelper.WriteSuccessLine($"ä¿®æ¹åï¼" + locationInfo.LocationStatus.ToString()); |
| | | await UpdateLocationAsync(locationInfo); |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum); |
| | | |
| | | return task; |
| | | } |
| | | |
| | | #endregion 请æ±ä»»å¡å
¥åº |
| | | |
| | | #region åºä½åé
|
| | | |
| | | #region è·åè´§ä½ |
| | | |
| | | /// <summary> |
| | | /// |
| | | /// </summary> |
| | | /// <param name="requestTask">请æ±åæ°</param> |
| | | /// <param name="isCheckRequest">æ¯å¦æªæ£æµåºä½ç±»å</param> |
| | | /// <returns></returns> |
| | | private async Task<DtLocationInfo> RequestLocation(RequestTaskDto requestTask, bool isCheckRequest = false) |
| | | { |
| | | try |
| | | { |
| | | List<DtLocationInfo> locations; |
| | | if (isCheckRequest) |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 2 && x.Remark == "1"); |
| | | } |
| | | else |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Distribute && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1); |
| | | if (locations.IsNullOrEmpty()) |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1); |
| | | } |
| | | } |
| | | |
| | | if (locations == null) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | return locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault(); |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | Console.WriteLine(err.Message.ToString()); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | #endregion è·åè´§ä½ |
| | | |
| | | #region å¼å¸¸å£å
¥åºè·ååºä½ |
| | | |
| | | private async Task<DtLocationInfo> RequestLocationByAbnormal(RequestTaskDto requestTask, bool isCheckRequest = false) |
| | | { |
| | | try |
| | | { |
| | | List<DtLocationInfo> locations; |
| | | if (isCheckRequest) |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 2 && x.Remark == "1"); |
| | | } |
| | | else |
| | | { |
| | | locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1); |
| | | } |
| | | |
| | | if (locations == null) |
| | | { |
| | | return null; |
| | | } |
| | | |
| | | return locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault(); |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | Console.WriteLine(err.Message.ToString()); |
| | | return null; |
| | | } |
| | | } |
| | | |
| | | #endregion å¼å¸¸å£å
¥åºè·ååºä½ |
| | | |
| | | #endregion åºä½åé
|
| | | |
| | | // è·åå·¥èºç³è¯· |
| | | private Task<ProcessApplyDto> GetProcessApplyAsync(RequestTaskDto input, ResultTrayCellsStatus content) |
| | | { |
| | | // å建ä¸ä¸ªProcessApplyDto对象ï¼å¹¶èµå¼ |
| | | return Task.FromResult(new ProcessApplyDto() |
| | | { |
| | | EquipmentCode = input.EquiCodeMOM, |
| | | Software = "WMS", |
| | | //WipOrderNo = result.BindCode," |
| | | SerialNos = content.SerialNos.Select(item => new SerialNos |
| | | { |
| | | SerialNo = item.SerialNo |
| | | }).ToList() |
| | | }); |
| | | } |
| | | |
| | | #endregion 请æ±ä»»å¡å
¥åº |
| | | |
| | | #region å建空æ¡åºåºä»»å¡ |
| | | |
| | | public async Task<Dt_Task> CreateEmptyOutTaskAsync(RequestTaskDto input, Dt_StationManager stationManager) |
| | | { |
| | | try |
| | | { |
| | | if (stationManager.stationType != 7) throw new Exception("é误çè°å"); |
| | | |
| | | var stockInfo = await QueryStockInfoForEmptyTrayFRAsync("CWSC1", "10086", input.ProductionLine); |
| | | |
| | | if (stockInfo == null) return null; |
| | | |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 2, |
| | | Roadway = stockInfo.LocationInfo.RoadwayNo, |
| | | TargetAddress = stationManager.stationLocation, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = input.Position, |
| | | OrderNo = null, |
| | | PalletCode = stockInfo.PalletCode, |
| | | SourceAddress = stockInfo.LocationCode, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = (int)TaskOutboundTypeEnum.OutTray, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = stockInfo.ProductionLine, |
| | | }; |
| | | |
| | | var location = _locationRepository.QueryFirst(x => x.Id == stockInfo.LocationId); |
| | | if (location == null) return null; |
| | | location.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | _locationRepository.UpdateData(location); |
| | | |
| | | return task; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç´æ¥åºåºä»»å¡å®æ |
| | | |
| | | public async Task<WebResponseContent> CompleteInToOutTaskAsync(Dt_Task task) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //æ·»å åå² |
| | | var taskHty = CreateHistoricalTask(task); |
| | | // æ·»å åå²ä»»å¡ |
| | | var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; |
| | | //å é¤ä»»å¡ |
| | | BaseDal.DeleteData(task); |
| | | |
| | | return content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region å¼å¸¸å£ä»»å¡æ£æµ |
| | | |
| | | /// <summary> |
| | | /// å¼å¸¸æåºå£å
¥åºæ ¡éª ææå¼å¸¸äº¤ç»WCSååå°åNGå¤ç |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <param name="stationManager"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="Exception"></exception> |
| | | public async Task<Dt_Task> CheckAbnormalTaskAsync(RequestTaskDto input, Dt_StationManager stationManager) |
| | | { |
| | | try |
| | | { |
| | | if (stationManager.stationType != 15) throw new Exception(""); |
| | | |
| | | // å建ä¸ä¸ªTrayCellsStatusDto对象ï¼å¹¶èµå¼ |
| | | TrayCellsStatusDto trayCells = new TrayCellsStatusDto() |
| | | { |
| | | Software = "WMS", |
| | | TrayBarcode = input.PalletCode, |
| | | //EquipmentCode = "EQ_CWJZ01" |
| | | EquipmentCode = input.EquiCodeMOM |
| | | }; |
| | | |
| | | // è°ç¨GetTrayCellStatusAsyncæ¹æ³ï¼è·åæ´ççµè¯ |
| | | WebResponseContent content = await GetTrayCellStatusAsync(trayCells); |
| | | // å¦æç¶æä¸ºfalseï¼åè¿åcontent |
| | | if (!content.Status) //è·åæ´ççµè¯æ°æ®ï¼ å¦å¼å¸¸ 使ç¨ç©ºæ¡ç±»åå
¥åº |
| | | { |
| | | ConsoleHelper.WriteErrorLine(content.Message); |
| | | throw new Exception("MOMæ´ççµè¯å±æ§è·åå¼å¸¸"); |
| | | } |
| | | |
| | | // æ·»å ç»çä¿¡æ¯ |
| | | // å°content.Data转æ¢ä¸ºResultTrayCellsStatus对象 |
| | | var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); |
| | | if (result.SerialNos.Count <= 0) //å¦è°ç¨æå ä½çµè¯ä¸º0åå®ä¸ºç©ºç |
| | | { |
| | | DtLocationInfo EmptylocationInfo = await RequestLocationByAbnormal(input); |
| | | |
| | | if (EmptylocationInfo == null) throw new Exception("åºä½å·²æ»¡"); |
| | | |
| | | var Epmtytask = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 4, //ä¼å
å¤çå¼å¸¸æåºå£çä»»å¡ é²æ¢æ£å¸¸éæåºå¼å¸¸å£çä»»å¡å µçº¿ |
| | | Roadway = input.Roadways, |
| | | TargetAddress = EmptylocationInfo.LocationCode, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = input.Roadways, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskInboundTypeEnum.InTray, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | return Epmtytask; |
| | | } |
| | | |
| | | //Console.WriteLine(result); |
| | | //// 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 = CreateBoxingInfo(result, input.PalletCode); |
| | | if (boxing == null) throw new Exception("ç»ç失败"); |
| | | |
| | | if (!stationManager.Roadway.Contains("FR")) //éå容åºåº å
¥åºéªè¯å·¥èºè·¯çº¿ |
| | | { |
| | | // è°ç¨GetProcessApplyAsyncæ¹æ³ï¼è·åå·¥èºè·¯çº¿ |
| | | ProcessApplyDto process = await GetProcessApplyAsync(input, result); |
| | | |
| | | // 妿process为nullï¼åè¿åcontent |
| | | if (process == null) throw new Exception("å·¥èºè¯·æ±åæ°å¼å¸¸"); |
| | | |
| | | // è°ç¨_processApplyService.GetProcessApplyAsyncæ¹æ³ï¼è·åå·¥èºç³è¯· |
| | | content = await _processApplyService.GetProcessApplyAsync(process); |
| | | |
| | | // å¦æç¶æä¸ºfalseï¼åè¿ånull |
| | | if (!content.Status) throw new Exception("å·¥èºç³è¯·å¤±è´¥"); |
| | | } |
| | | ////// è°ç¨GetProcessResponseAsyncæ¹æ³ï¼è·åå·¥èºååº |
| | | ////var processResponse = await GetProcessResponseAsync(process, input.Position); |
| | | |
| | | DtLocationInfo locationInfo = null; |
| | | if (stationManager.Roadway.Contains("FR")) |
| | | { |
| | | locationInfo = await RequestLocation(input, true); |
| | | } |
| | | else |
| | | { |
| | | locationInfo = await RequestLocationByAbnormal(input); |
| | | } |
| | | //DtLocationInfo locationInfo = await RequestLocation(input); |
| | | |
| | | if (locationInfo == null) throw new Exception("åºä½å·²æ»¡"); |
| | | |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = input.Position, |
| | | Grade = 3, //ä¼å
å¤çå¼å¸¸æåºå£çä»»å¡ é²æ¢æ£å¸¸éæåºå¼å¸¸å£çä»»å¡å µçº¿ |
| | | Roadway = input.Roadways, |
| | | TargetAddress = locationInfo.LocationCode, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = input.Roadways, |
| | | OrderNo = null, |
| | | PalletCode = input.PalletCode, |
| | | SourceAddress = stationManager.stationLocation, |
| | | TaskState = (int)TaskInStatusEnum.Line_InFinish, |
| | | TaskType = (int)TaskInboundTypeEnum.Inbound, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = result.ProductionLine, |
| | | ProcessCode = result.ProcessCode, |
| | | }; |
| | | |
| | | var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); |
| | | |
| | | int lastStatus = locationInfo.LocationStatus; |
| | | |
| | | ConsoleHelper.WriteSuccessLine($"ä¿®æ¹åï¼" + lastStatus.ToString()); |
| | | locationInfo.LocationStatus = (int)LocationEnum.FreeDisable; |
| | | ConsoleHelper.WriteSuccessLine($"ä¿®æ¹åï¼" + locationInfo.LocationStatus.ToString()); |
| | | await UpdateLocationAsync(locationInfo); |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(locationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticStorage, task.TaskNum); |
| | | |
| | | return task; |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw new Exception(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç§»åºä»»å¡äºå¡ |
| | | |
| | | private async Task<bool> ExecuteTransaction(DtStockInfo stock, Dt_Task_Hty taskHty, DtLocationInfo fromLocation, DtLocationInfo toLocation, int taskId) |
| | | { |
| | | _unitOfWorkManage.BeginTran(); |
| | | try |
| | | { |
| | | var isUpdateStock = _stockInfoRepository.UpdateData(stock); |
| | | |
| | | // æ·»å åå²ä»»å¡ |
| | | var isTaskHtyAdd = await _task_HtyRepository.AddDataAsync(taskHty) > 0; |
| | | |
| | | // ä¿®æ¹ç§»åºåè´§ä½ç¶æ |
| | | var isUpdateLocF = _locationRepository.UpdateData(fromLocation); |
| | | var isUpdateLocT = _locationRepository.UpdateData(toLocation); |
| | | |
| | | // å é¤ä»»å¡æ°æ® |
| | | var isTaskDelete = await Delete(taskId); |
| | | |
| | | // æäº¤æåæ»äºå¡ |
| | | if (isUpdateStock && isTaskHtyAdd && isTaskDelete && isUpdateLocF && isUpdateLocT) |
| | | { |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "ä»»å¡å®æ", $"äºå¡å¤ç宿,æäº¤äºå¡ãæ·»å åå²ä»»å¡ï¼{isTaskHtyAdd},å é¤ä»»å¡æ°æ®ï¼{isTaskDelete},æ´æ°ææ·»å åºåï¼{isUpdateStock},ä¿®æ¹ç§»åºåè´§ä½ç¶æï¼{isUpdateLocF}"); |
| | | _unitOfWorkManage.CommitTran(); |
| | | return true; |
| | | } |
| | | else |
| | | { |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "ä»»å¡å®æ", $"æ°æ®å¤ç失败,è¯·æ£æ¥æ°æ®æ¯å¦æ£ç¡®,æ°æ®åæ»ãæ·»å åå²ä»»å¡ï¼{isTaskHtyAdd},å é¤ä»»å¡æ°æ®ï¼{isTaskDelete},æ´æ°åºåï¼{isUpdateStock},ä¿®æ¹ç§»åºåè´§ä½ç¶æï¼{isUpdateLocF}"); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | return false; |
| | | } |
| | | } |
| | | catch (Exception err) |
| | | { |
| | | LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, $"ä»»å¡å®æ,ç³»ç»å¼å¸¸ï¼å¼å¸¸ä¿¡æ¯ï¼{err.Message}", "æ åæ°"); |
| | | _unitOfWorkManage.RollbackTran(); |
| | | throw new Exception(err.Message); // æåºå¼å¸¸ä»¥ä¾¿å¤é¨æè· |
| | | } |
| | | } |
| | | |
| | | #endregion MyRegion |
| | | |
| | | #region æ£æµé«æ¸©åºæ¯å¦æå¯åºåºåºå |
| | | |
| | | public WebResponseContent StockCheckingAsync() |
| | | { |
| | | WebResponseContent webResponseContent = new WebResponseContent(); |
| | | try |
| | | { |
| | | Task.Run(async () => |
| | | { |
| | | while (true) |
| | | { |
| | | try |
| | | { |
| | | Thread.Sleep(TimeSpan.FromMinutes(10)); |
| | | |
| | | var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == "GWSC1"); |
| | | var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == "1") |
| | | .Where(x => x.DeviceCode.Contains("GWSC")) |
| | | .ToList(); |
| | | var deviceCode = devices.Select(x => x.DeviceCode).ToList(); |
| | | |
| | | var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Includes(x => x.LocationInfo) // é¢å è½½LocationInfo |
| | | .Includes(x => x.StockInfoDetails) // é¢å è½½StockInfoDetails |
| | | .Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // è¿æ»¤æ¡ä»¶ |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // è¿æ»¤æ¡ä»¶ |
| | | .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) |
| | | .OrderBy(x => x.OutboundTime) // æåº |
| | | .ToListAsync(); // è·å第ä¸ä¸ªå
ç´ |
| | | |
| | | if (stockInfo.Count <= 0) continue; |
| | | foreach (var item in stockInfo) |
| | | { |
| | | var hasTask = BaseDal.QueryFirst(x => x.PalletCode == item.PalletCode); |
| | | if (hasTask != null) |
| | | { |
| | | Console.WriteLine("å·²åå¨åºåºä»»å¡"); |
| | | continue; |
| | | } |
| | | |
| | | string position = string.Empty; |
| | | if (item.LocationInfo.RoadwayNo == "GWSC1") |
| | | position = "1059"; |
| | | else |
| | | position = "1065"; |
| | | |
| | | var task = CreateTask(item, position, (int)TaskOutboundTypeEnum.Outbound); |
| | | task.NextAddress = "002-000-002"; |
| | | // å建任å¡DTO |
| | | WMSTaskDTO taskDTO = CreateTaskDTO(task); |
| | | |
| | | var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var wmsBase = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue; |
| | | var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveTask)?.ConfigValue; |
| | | if (wmsBase == null || ipAddress == null) |
| | | { |
| | | throw new InvalidOperationException("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddress = wmsBase + ipAddress; |
| | | |
| | | var result = HttpHelper.PostAsync(wmsIpAddress, taskDTO.ToJsonString()).Result; |
| | | var content = JsonConvert.DeserializeObject<WebResponseContent>(result); |
| | | if (content.Status) |
| | | { |
| | | int lastStatus = item.LocationInfo.LocationStatus; |
| | | await BaseDal.AddDataAsync(task); |
| | | // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | item.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | await _locationRepository.UpdateDataAsync(item.LocationInfo); |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(item.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); |
| | | } |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine(ex.Message); |
| | | } |
| | | } |
| | | }); |
| | | return webResponseContent.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine(ex.Message.ToString()); |
| | | return webResponseContent.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion æ£æµé«æ¸©åºæ¯å¦æå¯åºåºåºå |
| | | |
| | | #region 常温补空æçè³å容 |
| | | |
| | | private static readonly Dictionary<string, (int Count, DateTime LastRequestTime)> requestTrackerToCW = new(); |
| | | |
| | | public async Task<WebResponseContent> GetFROutTrayToCW(RequestTaskDto taskDTO) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | //string requestKey = JsonConvert.SerializeObject(taskDTO); |
| | | //// æ£æ¥è¯·æ±æ¬¡æ°åæ¶é´éå¶ |
| | | //if (requestTrackerToCW.TryGetValue(requestKey, out var requestInfo)) |
| | | //{ |
| | | // if (requestInfo.Count > 5 && DateTime.Now < requestInfo.LastRequestTime.AddMinutes(2)) |
| | | // { |
| | | // // å¦æè¯·æ±æ¬¡æ°è¶
è¿éå¶ä¸æªè¶
è¿10åéï¼æåºå¼å¸¸ |
| | | // throw new InvalidOperationException("è¯·æ±æ¬¡æ°å·²è¾¾å°éå¶ï¼è¯·ç¨ååè¯ã"); |
| | | // } |
| | | //} |
| | | |
| | | //// æ´æ°è¯·æ±è·è¸ªä¿¡æ¯ |
| | | //if (requestTrackerToCW.ContainsKey(requestKey)) |
| | | //{ |
| | | // requestTrackerToCW[requestKey] = (requestInfo.Count + 1, DateTime.Now); |
| | | //} |
| | | //else |
| | | //{ |
| | | // requestTrackerToCW[requestKey] = (1, DateTime.Now); |
| | | //} |
| | | |
| | | var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTO.Position && x.stationStatus == "1"); |
| | | var locations = _locationRepository.QueryData(x => x.RoadwayNo == station.Roadway && x.LocationStatus == (int)LocationEnum.Free && x.LocationType == 1); |
| | | |
| | | if (locations.Count > 10) |
| | | { |
| | | ConsoleHelper.WriteColorLine(locations.Count.ToString(), ConsoleColor.Blue); |
| | | |
| | | var location = locations.OrderBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).FirstOrDefault(); |
| | | |
| | | var stockInfo = await QueryStockInfoForEmptyTrayFRAsync("CWSC1", "10086", taskDTO.ProductionLine); |
| | | |
| | | if (stockInfo != null) |
| | | { |
| | | var task = CreateTask(stockInfo, taskDTO.Position, (int)TaskOutboundTypeEnum.OutTray); |
| | | |
| | | // å建任å¡DTO |
| | | WMSTaskDTO wmsTask = CreateTaskDTO(task); |
| | | |
| | | // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ |
| | | int lastStatus = location.LocationStatus; |
| | | stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | location.LocationStatus = (int)LocationEnum.Distribute; |
| | | await _unitOfWorkManage.UseTranAsync(async () => |
| | | { |
| | | await BaseDal.AddDataAsync(task); |
| | | await _locationRepository.UpdateDataAsync(stockInfo.LocationInfo); |
| | | await _locationRepository.UpdateDataAsync(location); |
| | | }); |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(location, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); |
| | | |
| | | // è¿åæåååº |
| | | //requestTrackerToCW.Remove(requestKey); |
| | | |
| | | return content.OK(data: wmsTask); |
| | | } |
| | | else |
| | | content.Error("常温空æçæ°éä¸è¶³"); |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | content.Error(ex.Message); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// æ¥è¯¢ç©ºçåºåä¿¡æ¯ |
| | | /// </summary> |
| | | private async Task<DtStockInfo> QueryStockInfoForEmptyTrayFRAsync(string areaCode, string position, string productLine) |
| | | { |
| | | var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == areaCode); |
| | | |
| | | ConsoleHelper.WriteColorLine(position + "..." + areaCode, ConsoleColor.Magenta); |
| | | var station = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == position && x.stationType == 17); |
| | | |
| | | ConsoleHelper.WriteColorLine(station.Roadway, ConsoleColor.Magenta); |
| | | var stackers = station.Roadway.Split(',').ToList(); |
| | | |
| | | var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == "1") |
| | | .Where(x => stackers.Contains(x.DeviceCode)) |
| | | .ToList().Select(x => x.DeviceCode).ToList(); |
| | | |
| | | var result = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Includes(x => x.LocationInfo) |
| | | .Includes(x => x.StockInfoDetails) |
| | | .Where(x => x.AreaCode == areaCode && x.IsFull == false && x.ProductionLine == productLine) |
| | | .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID && x.LocationInfo.EnalbeStatus == (int)EnableEnum.Enable) // è¿æ»¤æ¡ä»¶ |
| | | .Where(x => x.StockInfoDetails.Any(y => y.MaterielCode == "空æç")) |
| | | .OrderBy(x => x.CreateDate) // æåº |
| | | .FirstAsync(); |
| | | |
| | | if (result.IsNullOrEmpty()) |
| | | ConsoleHelper.WriteColorLine($"常温{productLine}空æçåºåä¸è¶³", ConsoleColor.Red); |
| | | |
| | | return result; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region 常温3åºåºè³å
è£
|
| | | |
| | | // ç¨äºè¿½è¸ªæ¯ä¸ªè¯·æ±çè°ç¨æ¬¡æ°åæåè¯·æ±æ¶é´ã |
| | | private static readonly Dictionary<string, (int Count, DateTime LastRequestTime)> requestTracker = new(); |
| | | |
| | | /// <summary> |
| | | /// 常温3åºåºè³å
è£
|
| | | /// </summary> |
| | | /// <param name="json"></param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> RequestOutTaskToBZAsync(RequestTaskDto json) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | try |
| | | { |
| | | Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call"); |
| | | if (station == null) { throw new Exception($"æªæ¾å°å
è£
ç«å°ä¿¡æ¯ï¼è¯·æ£æ¥ä¼ å
¥åæ°{json.Position}"); } |
| | | |
| | | var deviceCode = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>() |
| | | .Where(x => x.DeviceStatus == "1") |
| | | .Where(x => x.DeviceCode.Contains("CWSC")) // è¿æ»¤æ¡ä»¶ |
| | | .ToList().Select(x => x.DeviceCode).ToList(); |
| | | |
| | | // ä¿®æ¹åçæ¥è¯¢ä»£ç |
| | | var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>() |
| | | .Includes(x => x.LocationInfo) |
| | | .Includes(x => x.StockInfoDetails) |
| | | .Where(x => x.ProductionLine == station.productLine) |
| | | .Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) |
| | | // å¢å 对 LocationInfo çç©ºå¼æ£æ¥ |
| | | .Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) |
| | | // å¢å 对 LocationInfo çç©ºå¼æ£æ¥ |
| | | .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo)) |
| | | .OrderBy(x => x.OutboundTime) |
| | | .FirstAsync(); |
| | | |
| | | if (stockInfo.IsNullOrEmpty()) throw new Exception($"CWSC3åºå
{station.productLine}æ æ»¡è¶³æ¡ä»¶çåºåå¯åºåº"); |
| | | |
| | | DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode); |
| | | |
| | | Dt_StationManager OutStation = _stationManagerRepository.QueryFirst(x => x.stationPLC == "1005" && x.stationType == 10 && x.Roadway == locationInfo.RoadwayNo && x.stationStatus == "1"); |
| | | |
| | | // å建æ°ä»»å¡å®ä¾ |
| | | var task = new Dt_Task |
| | | { |
| | | CurrentAddress = stockInfo.LocationCode, |
| | | Grade = 1, |
| | | Roadway = locationInfo.RoadwayNo, |
| | | TargetAddress = json.Position, |
| | | Dispatchertime = DateTime.Now, |
| | | MaterialNo = "", |
| | | NextAddress = OutStation.stationChildCode, |
| | | OrderNo = null, |
| | | PalletCode = stockInfo.PalletCode, |
| | | SourceAddress = stockInfo.LocationCode, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = (int)TaskOutboundTypeEnum.Outbound, |
| | | TaskNum = await BaseDal.GetTaskNo(), |
| | | Creater = "System", |
| | | ProductionLine = stockInfo.ProductionLine, |
| | | ProcessCode = stockInfo.ProcessCode, |
| | | }; |
| | | |
| | | WMSTaskDTO taskDTO = CreateTaskDTO(task); |
| | | |
| | | int lastStatus = locationInfo.LocationStatus; |
| | | |
| | | BaseDal.AddData(task); |
| | | stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; |
| | | _locationRepository.UpdateData(stockInfo.LocationInfo); |
| | | |
| | | _locationStatusChangeRecordRepository.AddLocationStatusChangeRecord(stockInfo.LocationInfo, lastStatus, (int)StatusChangeTypeEnum.AutomaticDelivery, task.TaskNum); |
| | | |
| | | return content.OK(data: taskDTO); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | Console.WriteLine($"CW3è³å
è£
åºåºå¼å¸¸:{ex.ToString()}"); |
| | | return content.Error($"失败ï¼{ex.Message}"); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region ç«è¦åºåº |
| | | |
| | | public WebResponseContent EmergencyTask(object obj) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | var emergencyTask = new DTSEmergencyTask(); |
| | | try |
| | | { |
| | | emergencyTask = JsonConvert.DeserializeObject<DTSEmergencyTask>(obj.ToString()); |
| | | |
| | | if (emergencyTask == null) throw new Exception("ç«è¦åæ°ä¸ºç©º"); |
| | | |
| | | DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.Row == emergencyTask.row && x.Column == emergencyTask.column && x.Layer == emergencyTask.layer && x.AreaId == emergencyTask.zone); |
| | | if (locationInfo == null) |
| | | { |
| | | throw new Exception("æªç¥åºä½"); |
| | | } |
| | | |
| | | //æ¥æ¾æ¶é²ç«å° |
| | | var station = _stationManagerRepository.QueryFirst(t => t.Roadway == locationInfo.RoadwayNo |
| | | && t.stationType == (int)StationManager.FireStation |
| | | /*&& t. == "Enable"*/); |
| | | if (station == null) |
| | | { |
| | | throw new Exception("æ¶é²ç«å°æªé
ç½®!"); |
| | | } |
| | | |
| | | //æ¥æ¾åºåä¿¡æ¯ |
| | | var stockInfo = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode && x.LocationInfo.RoadwayNo == locationInfo.RoadwayNo); |
| | | //æçç |
| | | string barcode = string.Empty; |
| | | if (stockInfo != null) |
| | | { |
| | | barcode = stockInfo.PalletCode; |
| | | } |
| | | else |
| | | { |
| | | //æ åºåä¿¡æ¯ï¼çæéæºæçç |
| | | barcode = "M" + DateTime.Now.ToString("MMddHHmmss") + "-" + new Random().Next(100, 1000); |
| | | } |
| | | |
| | | Dt_Task fireTask = BaseDal.QueryFirst(x => x.TaskType == 500 && x.SourceAddress == locationInfo.LocationCode && x.Roadway == station.Roadway); |
| | | |
| | | if (fireTask != null) |
| | | { |
| | | throw new Exception("已添å ç«è¦åºåºä»»å¡"); |
| | | } |
| | | |
| | | int taskNum = BaseDal.GetTaskNo().Result; |
| | | Dt_Task task = new Dt_Task |
| | | { |
| | | CreateDate = DateTime.Now, |
| | | Creater = "DTS", |
| | | CurrentAddress = locationInfo.LocationCode, |
| | | Grade = 1, |
| | | Dispatchertime = DateTime.Now, |
| | | PalletCode = barcode, |
| | | Roadway = station.Roadway, |
| | | SourceAddress = locationInfo.LocationCode, |
| | | TaskState = (int)TaskOutStatusEnum.OutNew, |
| | | TaskType = 500, |
| | | TargetAddress = station.stationLocation, |
| | | NextAddress = station.stationChildCode, |
| | | TaskNum = taskNum, //_taskRepository.GetTaskNo().Result, |
| | | TaskId = 0, |
| | | }; |
| | | |
| | | // å°è¯æ·»å æ°ä»»å¡ |
| | | WMSTaskDTO taskDTO = new WMSTaskDTO() |
| | | { |
| | | TaskNum = task.TaskNum.Value, |
| | | Grade = 1, |
| | | PalletCode = task.PalletCode, |
| | | RoadWay = task.Roadway, |
| | | SourceAddress = task.SourceAddress, |
| | | TargetAddress = task.TargetAddress, |
| | | TaskState = task.TaskState.Value, |
| | | Id = 0, |
| | | TaskType = 500, |
| | | }; |
| | | |
| | | var configs = _configService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); |
| | | var ipAddress = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.WCSIPAddress)?.ConfigValue; |
| | | var ReceiveByWMSTask = configs.FirstOrDefault(x => x.ConfigKey == SysConfigConst.ReceiveByWMSTask)?.ConfigValue; |
| | | if (ReceiveByWMSTask == null || ipAddress == null) |
| | | { |
| | | throw new Exception("WMS IP æªé
ç½®"); |
| | | } |
| | | var wmsIpAddrss = ipAddress + ReceiveByWMSTask; |
| | | |
| | | var respon = HttpHelper.Post(wmsIpAddrss, JsonConvert.SerializeObject(taskDTO)); |
| | | if (respon != null) |
| | | { |
| | | WebResponseContent respone = JsonConvert.DeserializeObject<WebResponseContent>(respon.ToString()); |
| | | if (respone.Status) |
| | | { |
| | | var taskId = BaseDal.AddData(task); |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("WCSå¤ç失败:" + respone.Message); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | throw new Exception("请æ±å¤ç失败"); |
| | | } |
| | | LogFactory.GetLog("DTSç«è¦åºåº").Info(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("DTSç«è¦åºåº").Info(true, obj.ToJsonString()); |
| | | return content.OK(); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | LogFactory.GetLog("DTSç«è¦åºåº").Info(true, $"\r\r--------------------------------------"); |
| | | LogFactory.GetLog("DTSç«è¦åºåº").Info(true, ex.Message); |
| | | return content.Error(ex.Message); |
| | | } |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region å容空æ¡å
¥åºæ¹ä¸ºç´æ¥åºåº |
| | | |
| | | public async Task<WebResponseContent> SetEmptyOutbyInToOutAsync(RequestTaskDto request) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == request.PalletCode); |
| | | if (!task.IsNullOrEmpty()) |
| | | { |
| | | var fromStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == request.Position); |
| | | var toStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == fromStation.productLine && x.stationArea == fromStation.stationArea); |
| | | if (!toStation.IsNullOrEmpty()) |
| | | { |
| | | var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.AreaId == int.Parse(fromStation.stationArea)); |
| | | task.TargetAddress = toStation.stationLocation; |
| | | task.NextAddress = toStation.stationChildCode; |
| | | task.Grade = 3; |
| | | task.TaskType = (int)TaskOutboundTypeEnum.InToOut; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | |
| | | location.LocationStatus = (int)LocationEnum.Free; |
| | | |
| | | await _locationRepository.UpdateDataAsync(location); |
| | | await BaseDal.UpdateDataAsync(task); |
| | | return content.OK("æå"); |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteErrorLine("å容空æ¡å
¥åºæ¹ä¸ºç´æ¥åºåº:æªæ¾å°å¯¹åºç«å°"); |
| | | content.Error("æªæ¾å°å¯¹åºç«å°"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteErrorLine("å容空æ¡å
¥åºæ¹ä¸ºç´æ¥åºåº:æªæ¾å°ä»»å¡"); |
| | | content.Error("æªæ¾å°ä»»å¡"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | #endregion |
| | | |
| | | #region å容空æ¡åºåºæ¹ä¸ºç´æ¥åºåº |
| | | |
| | | /// <summary> |
| | | /// å容空æ¡åºåºæ¹ä¸ºç´æ¥åºåº |
| | | /// </summary> |
| | | /// <param name="request"></param> |
| | | /// <returns></returns> |
| | | public async Task<WebResponseContent> SetEmptyOutbyInToOutOneAsync(RequestTaskDto request) |
| | | { |
| | | WebResponseContent content = new WebResponseContent(); |
| | | var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == request.PalletCode); |
| | | if (!task.IsNullOrEmpty()) |
| | | { |
| | | var toStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == request.Position); |
| | | var fromStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == toStation.productLine && x.stationArea == toStation.stationArea); |
| | | if (!fromStation.IsNullOrEmpty()) |
| | | { |
| | | //var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.AreaId == int.Parse(fromStation.stationArea)); |
| | | task.SourceAddress = toStation.stationLocation; |
| | | task.CurrentAddress = toStation.stationChildCode; |
| | | task.Grade = 3; |
| | | task.TaskType = (int)TaskOutboundTypeEnum.InToOut; |
| | | task.TaskState = (int)TaskOutStatusEnum.OutNew; |
| | | |
| | | //location.LocationStatus = (int)LocationEnum.Free; |
| | | |
| | | //await _locationRepository.UpdateDataAsync(location); |
| | | await BaseDal.UpdateDataAsync(task); |
| | | return content.OK("æå"); |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteErrorLine("å容空æ¡åºåºæ¹ä¸ºç´æ¥åºåº:æªæ¾å°å¯¹åºç«å°"); |
| | | content.Error("æªæ¾å°å¯¹åºç«å°"); |
| | | } |
| | | } |
| | | else |
| | | { |
| | | ConsoleHelper.WriteErrorLine("å容空æ¡åºåºæ¹ä¸ºç´æ¥åºåº:æªæ¾å°ä»»å¡"); |
| | | content.Error("æªæ¾å°ä»»å¡"); |
| | | } |
| | | return content; |
| | | } |
| | | |
| | | #endregion |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "version": 1, |
| | | "isRoot": true, |
| | | "tools": { |
| | | "dotnet-ef": { |
| | | "version": "8.0.6", |
| | | "commands": [ |
| | | "dotnet-ef" |
| | | ] |
| | | } |
| | | } |
| | | } |
| | |
| | | <Project> |
| | | <PropertyGroup> |
| | | <_PublishTargetUrl>E:\GET\BaiBuSanlou\CodeManagement\WMS\WIDESEA_WMSServer\WIDESEA_WMSServer\bin\Debug\net6.0\publish\</_PublishTargetUrl> |
| | | <History>True|2025-04-13T13:53:54.3630456Z||;True|2025-04-13T21:05:27.0963334+08:00||;True|2025-04-08T09:51:00.1295089+08:00||;True|2025-04-07T15:36:44.3718008+08:00||;True|2025-04-07T15:35:13.2684610+08:00||;True|2025-04-03T10:00:56.1299893+08:00||;True|2025-04-02T10:38:17.2340017+08:00||;True|2025-04-01T14:48:34.1671067+08:00||;True|2025-04-01T14:47:22.2881035+08:00||;True|2025-04-01T14:43:27.2800408+08:00||;True|2025-04-01T14:42:28.1987109+08:00||;True|2025-04-01T14:32:44.3686544+08:00||;True|2025-04-01T14:27:19.1197684+08:00||;True|2025-04-01T13:26:56.3796039+08:00||;True|2025-04-01T10:20:50.9479668+08:00||;True|2025-03-30T08:22:47.9431153+08:00||;True|2025-03-29T12:21:52.2204727+08:00||;True|2025-03-29T11:42:56.4404766+08:00||;True|2025-03-29T11:15:06.3696223+08:00||;True|2025-03-25T14:55:09.5690375+08:00||;True|2025-03-25T12:26:15.5805042+08:00||;True|2025-03-24T15:27:15.6778099+08:00||;True|2025-03-23T18:45:49.3752329+08:00||;True|2025-03-23T18:11:49.6069594+08:00||;True|2025-03-22T16:16:20.5712808+08:00||;True|2025-03-22T15:56:49.6683132+08:00||;True|2025-03-22T15:52:31.0442028+08:00||;True|2025-03-22T14:58:24.6661971+08:00||;True|2025-03-22T14:31:25.6401220+08:00||;True|2025-03-17T22:20:55.9814492+08:00||;True|2025-03-17T20:18:58.8930513+08:00||;True|2025-03-15T14:49:54.7776092+08:00||;True|2025-03-04T14:56:36.8156516+08:00||;True|2025-03-04T14:03:01.4762153+08:00||;True|2025-03-01T13:25:40.8549456+08:00||;True|2025-03-01T12:40:52.0649831+08:00||;True|2025-03-01T11:33:13.7154636+08:00||;True|2025-02-28T16:49:28.9187049+08:00||;True|2025-02-28T16:43:17.5832178+08:00||;True|2025-02-28T16:09:20.8077956+08:00||;True|2025-02-27T13:41:44.5879735+08:00||;True|2025-02-21T10:33:09.7726538+08:00||;True|2025-02-20T23:51:32.1400389+08:00||;True|2025-02-20T23:43:38.4536482+08:00||;True|2025-02-18T15:09:13.0567844+08:00||;True|2025-02-18T10:30:45.6690625+08:00||;True|2025-02-17T00:17:57.1953767+08:00||;True|2025-02-17T00:08:49.8489825+08:00||;True|2025-02-17T00:00:57.5511029+08:00||;True|2025-02-15T14:45:50.0466371+08:00||;True|2025-02-15T14:26:18.9252196+08:00||;True|2025-02-15T14:22:56.6840183+08:00||;True|2025-02-15T13:37:28.7588867+08:00||;True|2025-02-15T13:11:23.1821094+08:00||;True|2025-02-14T14:03:21.8968201+08:00||;True|2025-02-10T16:52:59.9322253+08:00||;</History> |
| | | <History>True|2025-04-08T01:51:00.1295089Z||;True|2025-04-07T15:36:44.3718008+08:00||;True|2025-04-07T15:35:13.2684610+08:00||;True|2025-04-03T10:00:56.1299893+08:00||;True|2025-04-02T10:38:17.2340017+08:00||;True|2025-04-01T14:48:34.1671067+08:00||;True|2025-04-01T14:47:22.2881035+08:00||;True|2025-04-01T14:43:27.2800408+08:00||;True|2025-04-01T14:42:28.1987109+08:00||;True|2025-04-01T14:32:44.3686544+08:00||;True|2025-04-01T14:27:19.1197684+08:00||;True|2025-04-01T13:26:56.3796039+08:00||;True|2025-04-01T10:20:50.9479668+08:00||;True|2025-03-30T08:22:47.9431153+08:00||;True|2025-03-29T12:21:52.2204727+08:00||;True|2025-03-29T11:42:56.4404766+08:00||;True|2025-03-29T11:15:06.3696223+08:00||;True|2025-03-25T14:55:09.5690375+08:00||;True|2025-03-25T12:26:15.5805042+08:00||;True|2025-03-24T15:27:15.6778099+08:00||;True|2025-03-23T18:45:49.3752329+08:00||;True|2025-03-23T18:11:49.6069594+08:00||;True|2025-03-22T16:16:20.5712808+08:00||;True|2025-03-22T15:56:49.6683132+08:00||;True|2025-03-22T15:52:31.0442028+08:00||;True|2025-03-22T14:58:24.6661971+08:00||;True|2025-03-22T14:31:25.6401220+08:00||;True|2025-03-17T22:20:55.9814492+08:00||;True|2025-03-17T20:18:58.8930513+08:00||;True|2025-03-15T14:49:54.7776092+08:00||;True|2025-03-04T14:56:36.8156516+08:00||;True|2025-03-04T14:03:01.4762153+08:00||;True|2025-03-01T13:25:40.8549456+08:00||;True|2025-03-01T12:40:52.0649831+08:00||;True|2025-03-01T11:33:13.7154636+08:00||;True|2025-02-28T16:49:28.9187049+08:00||;True|2025-02-28T16:43:17.5832178+08:00||;True|2025-02-28T16:09:20.8077956+08:00||;True|2025-02-27T13:41:44.5879735+08:00||;True|2025-02-21T10:33:09.7726538+08:00||;True|2025-02-20T23:51:32.1400389+08:00||;True|2025-02-20T23:43:38.4536482+08:00||;True|2025-02-18T15:09:13.0567844+08:00||;True|2025-02-18T10:30:45.6690625+08:00||;True|2025-02-17T00:17:57.1953767+08:00||;True|2025-02-17T00:08:49.8489825+08:00||;True|2025-02-17T00:00:57.5511029+08:00||;True|2025-02-15T14:45:50.0466371+08:00||;True|2025-02-15T14:26:18.9252196+08:00||;True|2025-02-15T14:22:56.6840183+08:00||;True|2025-02-15T13:37:28.7588867+08:00||;True|2025-02-15T13:11:23.1821094+08:00||;True|2025-02-14T14:03:21.8968201+08:00||;True|2025-02-10T16:52:59.9322253+08:00||;</History> |
| | | <LastFailureDetails /> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <!-- |
| | | https://go.microsoft.com/fwlink/?LinkID=208121. |
| | | --> |
| | | <Project> |
| | | <PropertyGroup> |
| | | <DeleteExistingFiles>false</DeleteExistingFiles> |
| | | <ExcludeApp_Data>false</ExcludeApp_Data> |
| | | <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish> |
| | | <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration> |
| | | <LastUsedPlatform>Any CPU</LastUsedPlatform> |
| | | <PublishProvider>FileSystem</PublishProvider> |
| | | <PublishUrl>bin\Release\net6.0\publish\</PublishUrl> |
| | | <WebPublishMethod>FileSystem</WebPublishMethod> |
| | | <_TargetId>Folder</_TargetId> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <!-- |
| | | https://go.microsoft.com/fwlink/?LinkID=208121. |
| | | --> |
| | | <Project> |
| | | <PropertyGroup> |
| | | <_PublishTargetUrl>E:\GIT\BaiBuSanlou\CodeManagement\WMS\WIDESEA_WMSServer\WIDESEA_WMSServer\bin\Release\net6.0\publish\</_PublishTargetUrl> |
| | | <History>True|2025-03-21T09:34:20.4988193Z;True|2025-03-21T17:20:47.4546962+08:00;True|2025-03-21T15:16:14.5782768+08:00;True|2025-03-21T12:03:22.7993576+08:00;True|2025-03-21T02:10:38.6772689+08:00;</History> |
| | | <LastFailureDetails /> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "$schema": "https://json.schemastore.org/launchsettings.json", |
| | | "iisSettings": { |
| | | "windowsAuthentication": false, |
| | | "anonymousAuthentication": true, |
| | | "iisExpress": { |
| | | "applicationUrl": "http://localhost:39740", |
| | | "sslPort": 0 |
| | | } |
| | | }, |
| | | "profiles": { |
| | | "WIDESEA_WMSServer": { |
| | | "commandName": "Project", |
| | | "dotnetRunMessages": true, |
| | | "launchBrowser": true, |
| | | //"launchUrl": "swagger", |
| | | "applicationUrl": "http://localhost:5230", |
| | | "environmentVariables": { |
| | | "ASPNETCORE_ENVIRONMENT": "Development" |
| | | } |
| | | }, |
| | | "IIS Express": { |
| | | "commandName": "IISExpress", |
| | | "launchBrowser": true, |
| | | //"launchUrl": "swagger", |
| | | "environmentVariables": { |
| | | "ASPNETCORE_ENVIRONMENT": "Development" |
| | | } |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="utf-8"?> |
| | | <Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> |
| | | <PropertyGroup> |
| | | <NameOfLastUsedPublishProfile>E:\GET\BaiBuSanlou\CodeManagement\WMS\WIDESEA_WMSServer\WIDESEA_WMSServer\Properties\PublishProfiles\FolderProfile.pubxml</NameOfLastUsedPublishProfile> |
| | | <Controller_SelectedScaffolderID>MvcControllerEmptyScaffolder</Controller_SelectedScaffolderID> |
| | | <Controller_SelectedScaffolderCategoryPath>root/Common/MVC/Controller</Controller_SelectedScaffolderCategoryPath> |
| | | </PropertyGroup> |
| | | </Project> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "Logging": { |
| | | "LogLevel": { |
| | | "Default": "Information", |
| | | "Microsoft.AspNetCore": "Warning" |
| | | } |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | { |
| | | "Logging": { |
| | | "LogLevel": { |
| | | "Default": "Information", |
| | | "Microsoft.AspNetCore": "Warning" |
| | | } |
| | | }, |
| | | "AllowedHosts": "*", |
| | | "urls": "http://*:5000", |
| | | "MainDB": "DB_WIDESEA", //å½å项ç®ç主åºï¼æå¯¹åºçè¿æ¥å符串çEnabledå¿
须为true |
| | | //è¿æ¥å符串 |
| | | "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WMSDB3F;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | "ConnectionStringWCS": "Data Source=.;Initial Catalog=WIDESEA_WCSDB3F;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False", |
| | | //è·¨å |
| | | "Cors": { |
| | | "PolicyName": "CorsIpAccess", //çç¥åç§° |
| | | "EnableAllIPs": true, //å½ä¸ºtrueæ¶ï¼å¼æ¾ææIPåå¯è®¿é®ã |
| | | // æ¯æå¤ä¸ªåå端å£ï¼æ³¨æç«¯å£å·åä¸è¦å¸¦/ææï¼æ¯å¦localhost:8000/ï¼æ¯éç |
| | | // 注æï¼http://127.0.0.1:1818 å http://localhost:1818 æ¯ä¸ä¸æ ·ç |
| | | "IPs": "http://127.0.0.1:8080,http://localhost:8080,http://127.0.0.1:8081,http://localhost:8081" |
| | | }, |
| | | |
| | | //ç¼å设置 |
| | | "CacheSettings": { |
| | | "UseRedis": false, //å¯ç¨redis |
| | | "RedisSettings": { |
| | | "Address": "127.0.0.1:6379", //å°å |
| | | "Password": "123456", //Redisæå¡å¯ç |
| | | "Db": 9, //é»è®¤åº |
| | | "ClearRedis": true //æ¯å¦æ¯æ¬¡å¯å¨é½æ¸
é¤Redisç¼å |
| | | } |
| | | }, |
| | | |
| | | "ApiName": "WIDESEA", |
| | | "ExpMinutes": 120, |
| | | |
| | | // éè¦ç§»åºçè¡ |
| | | "TransfertRows": "1,4,5,8", |
| | | |
| | | // å
许åºåºçç¼ç |
| | | "OutBoundMateriel": [ |
| | | //{ |
| | | // "MaterielCode": "CC01050001348", |
| | | // "ProductionLine": "ZJ-8", |
| | | // "ProcessCode": "CH001" |
| | | //} |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "MenuName": "ç¨æ·ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"}]", |
| | | "Icon": "el-icon-user", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "/", |
| | | "ParentId": 0, |
| | | "Url": null, |
| | | "OrderNo": 4000, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "ç¨æ·ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_User", |
| | | "ParentId": 1, |
| | | "Url": "/Sys_User", |
| | | "OrderNo": 2000, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "æé管ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"}]", |
| | | "Icon": "ivu-icon ivu-icon-ios-boat", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "/", |
| | | "ParentId": 1, |
| | | "Url": "/permission", |
| | | "OrderNo": 1000, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "è§è²ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Role", |
| | | "ParentId": 1, |
| | | "Url": "/Sys_Role", |
| | | "OrderNo": 900, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "ç³»ç»è®¾ç½®", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"}]", |
| | | "Icon": "el-icon-setting", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "/", |
| | | "ParentId": 0, |
| | | "Url": "/", |
| | | "OrderNo": 0, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "èå设置", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Menu", |
| | | "ParentId": 5, |
| | | "Url": "/sysmenu", |
| | | "OrderNo": 10, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "䏿æ¡ç»å®è®¾ç½®", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"æ°å»º\",\"value\":\"Add\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"ç¼è¾\",\"value\":\"Update\"},{\"text\":\"导å
¥\",\"value\":\"Import\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Dictionary", |
| | | "ParentId": 5, |
| | | "Url": "/Sys_Dictionary", |
| | | "OrderNo": 10, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "æ¥å¿ç®¡ç", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"}]", |
| | | "Icon": "el-icon-date", |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "/", |
| | | "ParentId": 0, |
| | | "Url": "/", |
| | | "OrderNo": 500, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | }, |
| | | { |
| | | "MenuName": "æ¥å£æ¥å¿", |
| | | "Auth": "[{\"text\":\"æ¥è¯¢\",\"value\":\"Search\"},{\"text\":\"å é¤\",\"value\":\"Delete\"},{\"text\":\"导åº\",\"value\":\"Export\"}]", |
| | | "Icon": null, |
| | | "Description": null, |
| | | "Enable": 1, |
| | | "TableName": "Sys_Log", |
| | | "ParentId": 8, |
| | | "Url": "/Sys_Log/Manager", |
| | | "OrderNo": 0, |
| | | "MenuType": 99, |
| | | "Creater": "admin", |
| | | "CreateDate": null, |
| | | "Modifier": null, |
| | | "ModifyDate": null |
| | | } |
| | | ] |
¶Ô±ÈÐÂÎļþ |
| | |
| | | [ |
| | | { |
| | | "UserName": "admin", |
| | | "Role_Id": "1", |
| | | "RoleName": "è¶
级管çå", |
| | | "PhoneNo": "", |
| | | "Remark": "", |
| | | "UserPwd": "j79rYYvCz4vdhcboB1Ausg==", |
| | | "UserTrueName": "è¶
级管çå", |
| | | "DeptName": "", |
| | | "Dept_Id": "0", |
| | | "Email": "", |
| | | "Enable": "1", |
| | | "Gender": "1", |
| | | "HeadImageUrl": "", |
| | | "LastModifyPwdDate": "2024-04-16 19:58:55", |
| | | "Address": "ç³»ç»æå¡å¨", |
| | | "AuditDate": "2024-04-16 00:54:06", |
| | | "AuditStatus": "1", |
| | | "Auditor": "è¶
级管çå", |
| | | "Token": "", |
| | | "SystemType": "1", |
| | | "Creater": "ç³»ç»", |
| | | "TenantId": 0 |
| | | } |
| | | ] |