.gitignore
@@ -1237,25 +1237,76 @@ /Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/LogLibrary.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Core/obj/Debug/net6.0/WIDESEA_Core.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/obj/Debug/net6.0/WIDESEA_DTO.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessesRepository/obj/Debug/net6.0/WIDESEA_IBusinessesRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IBusinessServices/obj/Debug/net6.0/WIDESEA_IBusinessServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IRepository/obj/Debug/net6.0/WIDESEA_IRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IServices/obj/Debug/net6.0/WIDESEA_IServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicRepository/obj/Debug/net6.0/WIDESEA_IStorageBasicRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageBasicService/obj/Debug/net6.0/WIDESEA_IStorageBasicServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderRepository/obj/Debug/net6.0/WIDESEA_IStorageOutOrderRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageOutOrderService/obj/Debug/net6.0/WIDESEA_IStorageOutOrderServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskRepository/obj/Debug/net6.0/WIDESEA_IStorageTaskRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/obj/Debug/net6.0/WIDESEA_IStorageTaskServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.assets.cache /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/Debug/net6.0/WIDESEA_IStoragIntegrationServices.csproj.FileListAbsolute.txt /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/project.assets.json /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/project.nuget.cache /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/WIDESEA_IStoragIntegrationServices.csproj.nuget.dgspec.json /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStoragIntegrationServices/obj/WIDESEA_IStoragIntegrationServices.csproj.nuget.g.props /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Model/obj/Debug/net6.0/WIDESEA_Model.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoRepository/obj/WIDESEAWCS_IBasicInfoRepository.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/Debug/net6.0/WIDESEAWCS_IBasicInfoService.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_IBasicInfoService/obj/WIDESEAWCS_IBasicInfoService.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/Debug/net6.0/WIDESEAWCS_ISystemRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/obj/WIDESEAWCS_ISystemRepository.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessParameters/obj/WIDESEAWCS_IProcessRepository.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/Debug/net6.0/WIDESEAWCS_ProcessRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ProcessRepository/obj/WIDESEAWCS_ProcessRepository.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/Debug/net6.0/WIDESEAWCS_QuartzJob.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/obj/WIDESEAWCS_QuartzJob.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.removed.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/WIDESEAWCS_Server.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/Debug/net6.0/WIDESEAWCS_SystemRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/obj/WIDESEAWCS_SystemRepository.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/Debug/net6.0/WIDESEAWCS_SystemServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/obj/WIDESEAWCS_SystemServices.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/Debug/net6.0/WIDESEAWCS_TaskInfoRepository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoRepository/obj/WIDESEAWCS_TaskInfoRepository.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/obj/WIDESEAWCS_TaskInfoService.csproj.nuget.g.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.assets.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/Debug/net6.0/WIDESEAWCS_Tasks.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/project.assets.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/project.nuget.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.dgspec.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/obj/WIDESEAWCS_Tasks.csproj.nuget.g.props /Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/Debug/net6.0/LogLibrary.assets.cache /Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/LogLibrary.csproj.nuget.dgspec.json /Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/LogLibrary.csproj.nuget.g.props /Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/project.assets.json /Code Management/WMS/WIDESEA_WMSServer/LogLibrary/obj/project.nuget.cache /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Repository/obj/Debug/net6.0/WIDESEA_Repository.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Services/obj/Debug/net6.0/WIDESEA_Services.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicRepository/obj/Debug/net6.0/WIDESEA_StorageBasicRepository.GeneratedMSBuildEditorConfig.editorconfig @@ -1267,8 +1318,24 @@ /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.assets.cache /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/Debug/net6.0/WIDESEA_StoragIntegrationServices.GeneratedMSBuildEditorConfig.editorconfig /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/obj/WIDESEA_StoragIntegrationServices.csproj.nuget.g.props /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/WIDESEA_StoragIntegrationServices.csproj /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/Debug/net6.0/WIDESEA_Tasks.assets.cache /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/project.assets.json /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/project.nuget.cache /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Tasks/obj/WIDESEA_Tasks.csproj.nuget.dgspec.json /Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/obj/Debug/net6.0/staticwebassets.removed.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/åæå ¥åºè¾é线/Logs_20241118165252.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/éå1å·å åæº/Logs_20241118165246.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/éåå ¥åºè¾é线/Logs_20241118165251.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/éååºåºè¾é线/Logs_20241118165251.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/éç½®1å·å åæº/Logs_20241118165301.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/Log_PLCReadWrite/éç½®è¾é线/Logs_20241118165311.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/bin/Debug/net6.0/WIDESEAWCS_Server.staticwebassets.endpoints.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/EndpointInfo/WIDESEAWCS_Server.OpenApiFiles.cache /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/EndpointInfo/WIDESEAWCS_Server_V1.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/EndpointInfo/WIDESEAWCS_Server_V2.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets/msbuild.build.WIDESEAWCS_Server.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets/msbuild.WIDESEAWCS_Server.Microsoft.AspNetCore.StaticWebAssetEndpoints.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets/msbuild.WIDESEAWCS_Server.Microsoft.AspNetCore.StaticWebAssets.props /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.build.endpoints.json /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.references.upToDateCheck.txt /Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets.upToDateCheck.txt Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/CateGoryConst.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEAWCS_Common { /// <summary> /// å类常é /// </summary> public class CateGoryConst { /// <summary> /// IPæ¥å£å°å /// </summary> public const string CONFIG_SYS_IPAddress = "SYS_IPAddress"; } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Const/SysConfigKeyConst.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEAWCS_Common { public class SysConfigKeyConst { /// <summary> /// WMS BASE /// </summary> public const string WMSIP_BASE = "WMSIPBASE"; /// <summary> /// 请æ±ä»»å¡ /// </summary> public const string RequestTask = "RequestTask"; /// <summary> /// 请æ±ä»»å¡è´§ä½ /// </summary> public const string RequestLocation = "RequestLocation"; /// <summary> /// ä¿®æ¹ä»»å¡ç¶æ /// </summary> public const string UpdateTask = "UpdateTask"; /// <summary> /// ä»»å¡å®æ /// </summary> public const string CompleteTask = "CompleteTask"; /// <summary> /// 请æ±ç©ºæçä»»å¡ /// </summary> public const string RequestTrayInTask = "RequestTrayInTask"; /// <summary> /// 空æçå®çåºåºä»»å¡ /// </summary> public const string RequestTrayOutTask = "RequestTrayOutTask"; } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemRepository/ISys_ConfigRepository.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_ISystemRepository { public interface ISys_ConfigRepository : IRepository<Sys_Config> { } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ISystemServices/ISys_ConfigService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,36 @@ using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_Core; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_ISystemServices { public interface ISys_ConfigService : IService<Sys_Config> { /// <summary> /// è·åææç³»ç»é ç½® /// </summary> /// <returns></returns> List<Sys_Config> GetAll(); /// <summary> /// æ ¹æ®ç±»å«è·åç³»ç»é ç½® /// </summary> /// <param name="category">ç±»å«</param> /// <returns></returns> List<Sys_Config> GetConfigsByCategory(string category); /// <summary> /// æ ¹æ®ç±»å«åKeyè·åç³»ç»é ç½® /// </summary> /// <param name="category">ç±»å«</param> /// <param name="configKey">é ç½®Key</param> /// <returns></returns> Sys_Config GetByConfigKey(string category, string configKey); } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -63,7 +63,7 @@ /// <param name="palletCode">æçå·</param> /// <param name="sourceAddress">èµ·å§å°å</param> /// <returns></returns> WebResponseContent RequestWMSTask(string palletCode, string sourceAddress); Task<WebResponseContent> RequestWMSTask(string palletCode, string sourceAddress); /// <summary> /// æ ¹æ®è®¾å¤ç¼å·ãå½åå°åæ¥è¯¢è¾éçº¿æªæ§è¡çä»»å¡ Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Model/Models/System/Sys_Config.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,54 @@ using SqlSugar; using WIDESEAWCS_Core.DB.Models; using WIDESEAWCS_Core.Tenants; namespace WIDESEAWCS_Model.Models; /// <summary> /// ç³»ç»é 置表 /// </summary> [SugarTable("Sys_Config", "ç³»ç»é 置表"), MultiTenant] public class Sys_Config : BaseEntity { /// <summary> /// ä¸»é® /// </summary> [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "主é®")] public int Id { get; set; } /// <summary> /// é ç½®é® /// </summary> [SugarColumn(ColumnDescription = "é ç½®é®", Length = 255, IsNullable = false)] public string ConfigKey { get; set; } /// <summary> /// é ç½®å¼ /// </summary> [SugarColumn(ColumnDescription = "é ç½®å¼", IsNullable = false, ColumnDataType = "text")] public string ConfigValue { get; set; } /// <summary> /// åç±» /// </summary> [SugarColumn(ColumnDescription = "åç±»", Length = 255, IsNullable = false)] public string Category { get; set; } /// <summary> /// 夿³¨ /// </summary> [SugarColumn(ColumnDescription = "夿³¨", Length = 255, IsNullable = true)] public string Remark { get; set; } /// <summary> /// æåºç /// </summary> [SugarColumn(ColumnDescription = "æåºç ", IsNullable = true)] public int? SortCode { get; set; } /// <summary> /// ç¶æ /// </summary> [SugarColumn(ColumnDescription = "ç¶æ", Length = 20, IsNullable = true)] public string Status { get; set; } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_QuartzJob/ConveyorLine/CommonConveyorLine.cs
@@ -242,7 +242,7 @@ /// <exception cref="Exception"></exception> public T ReadCustomer<T>(string deviceChildCode, string deviceProParamType) where T : IDataTransfer, new() { if (!IsConnected) throw new Exception($"éè®¯è¿æ¥é误ï¼è¯·æ£æ¥ç½ç»"); if (!IsConnected) throw new Exception($"éè®¯è¿æ¥é误ï¼è¯·æ£æ¥ç½ç»:" + DeviceName); DeviceProDTO? devicePro = _deviceProDTOs.Where(x => x.DeviceProParamType == deviceProParamType && x.DeviceChildCode == deviceChildCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault(); if (devicePro == null) Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/WIDESEAWCS_Server.MvcApplicationPartsAssemblyInfo.cs
@@ -28,7 +28,7 @@ [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("WIDESEAWCS_SystemRepository")] [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("WIDESEAWCS_SystemServices")] [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("WIDESEAWCS_TaskInfoRepository")] [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("WIDESEAWCS_TaskInfoService")] [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("WIDESEAWCs_TaskInfoService")] [assembly: Microsoft.AspNetCore.Mvc.ApplicationParts.ApplicationPartAttribute("WIDESEAWCS_Tasks")] // ç± MSBuild WriteCodeFragment ç±»çæã Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets/msbuild.WIDESEAWCS_Server.Microsoft.AspNetCore.StaticWebAssets.props
ÎļþÒÑɾ³ý Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/obj/Debug/net6.0/staticwebassets/msbuild.build.WIDESEAWCS_Server.props
ÎļþÒÑɾ³ý Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemRepository/Sys_ConfigRepository.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_ISystemRepository; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_SystemRepository { public class Sys_ConfigRepository : RepositoryBase<Sys_Config>, ISys_ConfigRepository { public Sys_ConfigRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage) { } } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_SystemServices/Sys_ConfigService.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,38 @@  using System.Net; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_ISystemRepository; using WIDESEAWCS_ISystemServices; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Model.Models; namespace WIDESEA_Services { public class Sys_ConfigService : ServiceBase<Sys_Config, ISys_ConfigRepository>, ISys_ConfigService { private readonly IUnitOfWorkManage _unitOfWorkManage; public Sys_ConfigService(ISys_ConfigRepository repository, IUnitOfWorkManage unitOfWorkManage) : base(repository) { _unitOfWorkManage = unitOfWorkManage; } /// <inheritdoc/> public List<Sys_Config> GetAll() { return BaseDal.QueryData(); } /// <inheritdoc/> public List<Sys_Config> GetConfigsByCategory(string category) { return BaseDal.QueryData(x => x.Category == category).ToList(); } /// <inheritdoc/> public Sys_Config GetByConfigKey(string category, string configKey) { return BaseDal.QueryData(x => x.Category == category && x.ConfigKey == configKey).FirstOrDefault(); } } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -1,34 +1,18 @@ #region << ç æ¬ 注 é >> /*---------------------------------------------------------------- * å½å空é´ï¼WIDESEAWCS_TaskInfoService * å建è ï¼è¡ç«¥åº * å建æ¶é´ï¼2024/8/2 16:13:36 * çæ¬ï¼V1.0.0 * æè¿°ï¼ * * ---------------------------------------------------------------- * ä¿®æ¹äººï¼ * ä¿®æ¹æ¶é´ï¼ * çæ¬ï¼V1.0.1 * ä¿®æ¹è¯´æï¼ * *----------------------------------------------------------------*/ #endregion << ç æ¬ 注 é >>  using AutoMapper; using HslCommunication; using Newtonsoft.Json; using SqlSugar; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; using WIDESEAWCS_Common; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_DTO.WMS; using WIDESEAWCS_ISystemServices; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; @@ -42,6 +26,7 @@ private readonly IRouterService _routerService; private readonly ITaskExecuteDetailService _taskExecuteDetailService; private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository; private readonly ISys_ConfigService _sys_ConfigService; private readonly IMapper _mapper; private Dictionary<string, OrderByType> _taskOrderBy = new() @@ -57,12 +42,13 @@ public List<int> TaskOutboundTypes => typeof(TaskOutboundTypeEnum).GetEnumIndexList(); public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper) : base(BaseDal) public TaskService(ITaskRepository BaseDal, IRouterService routerService, ITaskExecuteDetailService taskExecuteDetailService, ITaskExecuteDetailRepository taskExecuteDetailRepository, IMapper mapper, ISys_ConfigService sys_ConfigService) : base(BaseDal) { _routerService = routerService; _taskExecuteDetailService = taskExecuteDetailService; _taskExecuteDetailRepository = taskExecuteDetailRepository; _mapper = mapper; _sys_ConfigService = sys_ConfigService; } /// <summary> @@ -87,7 +73,6 @@ if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { List<Dt_Router> routers = _routerService.QueryNextRoutes(item.RoadWay, item.TargetAddress); //æä¸èèå¤è·¯å¾ if (routers.Count > 0) { task.TaskState = (int)TaskOutStatusEnum.OutNew; @@ -98,7 +83,6 @@ else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { List<Dt_Router> routers = _routerService.QueryNextRoutes(item.SourceAddress, item.TargetAddress); //æä¸èèå¤è·¯å¾ if (routers.Count > 0) { task.TaskState = (int)TaskInStatusEnum.InNew; @@ -127,66 +111,42 @@ /// <param name="palletCode">æçå·</param> /// <param name="sourceAddress">èµ·å§å°å</param> /// <returns></returns> public WebResponseContent RequestWMSTask(string palletCode, string sourceAddress) public async Task<WebResponseContent> RequestWMSTask(string palletCode, string sourceAddress) { WebResponseContent content = new WebResponseContent(); try { #region 请æ±å ¥åºä»»å¡å··é // TODO: è°ç¨æ¥å£è·åä¸ä¸ä¸ªå°å // å建请æ±å¯¹è±¡ RequestTaskDto request = new RequestTaskDto() var hasTask = await BaseDal.QueryFirstAsync(x => x.PalletCode == palletCode); if (hasTask != null) { Position = sourceAddress, PalletCode = palletCode, }; return content.Error("å½åæçåå¨ä»»å¡"); } // åé请æ±å¹¶çå¾ ååº var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTaskAsync", request.ToJsonString()).Result; 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.RequestTask)?.ConfigValue; if (wmsBase == null || requestTask == null) { throw new InvalidOperationException("WMS IP æªé ç½®"); } var wmsIpAddrss = wmsBase + requestTask; // ååºååååºå 容 var result = await HttpHelper.PostAsync(wmsIpAddrss, new { Position = sourceAddress, PalletCode = palletCode }.ToJsonString()); content = JsonConvert.DeserializeObject<WebResponseContent>(result); WMSTaskDTO task = new WMSTaskDTO(); // æ£æ¥ç¶æå¹¶è¿å if (!content.Status) { task = new WMSTaskDTO() { TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), Grade = 1, PalletCode = palletCode, RoadWay = "CHSC01", SourceAddress = sourceAddress, TargetAddress = "1020", TaskState = (int)TaskOutStatusEnum.Line_OutExecuting, Id = 0, TaskType = (int)TaskOutboundTypeEnum.Outbound }; Dt_Task task1 = _mapper.Map<Dt_Task>(task); task1.CurrentAddress = task.SourceAddress; task1.NextAddress = "1020"; BaseDal.AddData(task1); return content.OK(); } else { // ååºåå任塿°æ® task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); // å¤çä»»å¡å¹¶è¿åç»æ content = ReceiveWMSTask(new List<WMSTaskDTO> { task }); // wms失败è¿åå»NGå£ä»»å¡ return content; } #endregion var task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); return ReceiveWMSTask(new List<WMSTaskDTO> { task }); } catch (Exception ex) { content = WebResponseContent.Instance.Error(ex.Message); return WebResponseContent.Instance.Error(ex.Message); } return content; } /// <summary> @@ -335,7 +295,7 @@ WebResponseContent content = new WebResponseContent(); try { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { @@ -367,7 +327,7 @@ /// <param name="status">ä»»å¡ç¶æ</param> public void UpdateTaskStatus(int taskNum, int status) { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return; task.TaskState = status; task.ModifyDate = DateTime.Now; @@ -383,7 +343,7 @@ WebResponseContent content = new WebResponseContent(); try { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); return UpdateTaskStatusToNext(task); } @@ -407,22 +367,19 @@ int oldState = task.TaskState; if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup) { if (task.TaskState >= (int)TaskOutStatusEnum.OutFinish) { return content = WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å¯è·³è½¬å°ä¸ä¸æ¥,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç¶æ:ã{task.TaskState}ã"); } int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); task.TaskState = nextStatus; if (task.TaskState == (int)TaskOutStatusEnum.Line_OutFinish) { task.ModifyDate = DateTime.Now; task.Modifier = "System"; BaseDal.DeleteData(task); } } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup) { if (task.TaskState >= (int)TaskInStatusEnum.InFinish) { return content = WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å¯è·³è½¬å°ä¸ä¸æ¥,ä»»å¡å·:ã{task.TaskNum}ã,ä»»å¡ç¶æ:ã{task.TaskState}ã"); } int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskInStatusEnum>(); task.TaskState = nextStatus; @@ -432,14 +389,24 @@ #region å ¥åºè°ç¨æ¥å£è·åè´§ä½å°å // TODO: è°ç¨æ¥å£è·åè´§ä½å°å // å建请æ±å¯¹è±¡ RequestTaskDto taskDto = new RequestTaskDto() var taskDto = new RequestTaskDto() { Position = task.NextAddress, PalletCode = task.PalletCode, }; // è·åWMSipå°å var configz = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBasez = configz.Where(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE).FirstOrDefault()?.ConfigValue; var requestLocation = configz.Where(x => x.ConfigKey == SysConfigKeyConst.RequestLocation).FirstOrDefault()?.ConfigValue; if (wmsBasez == null || requestLocation == null) { throw new InvalidOperationException("WMS IP æªé ç½®"); } var wmsIpAddrss = wmsBasez + requestLocation; // åé请æ±å¹¶çå¾ ååº var abc = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestLocationTaskAsync", taskDto.ToJsonString()).Result; var abc = HttpHelper.PostAsync(wmsIpAddrss, taskDto.ToJsonString()).Result; if (abc == null) return content.Error(); // ååºååååºå 容 @@ -450,13 +417,21 @@ return content; // ååºåå任塿°æ® WMSTaskDTO taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); var taskResult = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); task.CurrentAddress = task.NextAddress; task.NextAddress = taskResult.TargetAddress; task.TargetAddress = task.NextAddress; #endregion } else if (task.TaskState == (int)TaskInStatusEnum.SC_InFinish) { task.ModifyDate = DateTime.Now; task.Modifier = "System"; BaseDal.DeleteData(task); } } else @@ -476,12 +451,17 @@ _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工æå¨å°ä»»å¡ç¶æä»ã{oldState}ã跳转å°ã{task.TaskState}ã" : $"ç³»ç»èªå¨æµç¨ï¼ä»»å¡ç¶æä»ã{oldState}ã转å°ã{task.TaskState}ã"); #region æ´æ°ä»»å¡ç¶æ object request = new // è·åWMSipå°å var config = _sys_ConfigService.GetConfigsByCategory(CateGoryConst.CONFIG_SYS_IPAddress); var wmsBase = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.WMSIP_BASE)?.ConfigValue; var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.UpdateTask)?.ConfigValue; if (wmsBase == null || updateTask == null) { TaskNum = task.TaskNum, TaskState = task.TaskState }; var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result; throw new InvalidOperationException("WMS IP æªé ç½®"); } var wmsIpAddress = wmsBase + updateTask; var result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result; content = JsonConvert.DeserializeObject<WebResponseContent>(result); #endregion @@ -504,13 +484,13 @@ { try { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress); var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum && x.CurrentAddress == currentAddress); if (task == null) throw new Exception($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); string oldCurrentPos = task.CurrentAddress; string oldNextPos = task.NextAddress; List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); if (!routers.Any()) throw new Exception($"æªæ¾å°è®¾å¤è·¯ç±ä¿¡æ¯"); task.CurrentAddress = task.NextAddress; @@ -539,12 +519,12 @@ WebResponseContent content = new WebResponseContent(); try { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup && task.TaskState == (int)TaskOutStatusEnum.SC_OutExecuting) { List<Dt_Router> routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); var routers = _routerService.QueryNextRoutes(task.NextAddress, task.TargetAddress); if (!routers.Any()) return WebResponseContent.Instance.Error($"æªæ¾å°è®¾å¤è·¯ç±ä¿¡æ¯"); int nextStatus = task.TaskState.GetNextNotCompletedStatus<TaskOutStatusEnum>(); @@ -569,8 +549,6 @@ task.Modifier = "System"; BaseDal.UpdateData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºå ¥åºå®æ"); } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { @@ -590,16 +568,31 @@ { {"taskNum", taskNum} }; var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result; // è·å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 #region æ´æ°ä»»å¡ç¶æ object request = new var updateTask = config.FirstOrDefault(x => x.ConfigKey == SysConfigKeyConst.CompleteTask)?.ConfigValue; if (wmsBase == null || updateTask == null) { TaskNum = task.TaskNum, TaskState = task.TaskState }; result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result; throw new InvalidOperationException("WMS IP æªé ç½®"); } wmsIpAddress = wmsBase + updateTask; result = HttpHelper.PostAsync(wmsIpAddress, new { TaskNum = task.TaskNum, TaskState = task.TaskState }.ToJsonString()).Result; content = JsonConvert.DeserializeObject<WebResponseContent>(result); #endregion //content = WebResponseContent.Instance.OK(); @@ -621,14 +614,14 @@ WebResponseContent content = new WebResponseContent(); try { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); if (task.TaskState != (int)TaskInStatusEnum.InPending && task.TaskState != (int)TaskOutStatusEnum.OutPending) { return content = WebResponseContent.Instance.Error($"该任å¡ç¶æä¸å¯æ¢å¤,ä»»å¡å·:ã{taskNum}ã,ä»»å¡ç¶æ:ã{task.TaskState}ã"); } Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.IsNormal, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); var taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.IsNormal, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); if (taskExecuteDetail != null) { task.TaskState = taskExecuteDetail.TaskState; @@ -643,7 +636,6 @@ { task.TaskState = (int)TaskInStatusEnum.InNew; } //todo } task.ExceptionMessage = string.Empty; @@ -668,14 +660,14 @@ /// <returns>è¿åå¤çç»æ</returns> public WebResponseContent RollbackTaskStatusToLast(int taskNum) { WebResponseContent content = new(); WebResponseContent content = new WebResponseContent(); try { Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); var task = BaseDal.QueryFirst(x => x.TaskNum == taskNum); if (task == null) return WebResponseContent.Instance.Error($"æªæ¾å°è¯¥ä»»å¡ä¿¡æ¯,ä»»å¡å·:ã{taskNum}ã"); int oldState = task.TaskState; Dt_TaskExecuteDetail taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); var taskExecuteDetail = _taskExecuteDetailRepository.QueryFirst(x => x.TaskId == task.TaskId && x.TaskState < task.TaskState && x.TaskState > 0, new Dictionary<string, OrderByType> { { nameof(Dt_TaskExecuteDetail.TaskDetailId), OrderByType.Desc } }); if (taskExecuteDetail != null) { task.TaskState = taskExecuteDetail.TaskState; Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/WIDESEAWCS_TaskInfoService.csproj
@@ -9,6 +9,7 @@ <ItemGroup> <ProjectReference Include="..\WIDESEAWCS_BasicInfoService\WIDESEAWCS_BasicInfoService.csproj" /> <ProjectReference Include="..\WIDESEAWCS_ITaskInfoService\WIDESEAWCS_ITaskInfoService.csproj" /> <ProjectReference Include="..\WIDESEAWCS_SystemServices\WIDESEAWCS_SystemServices.csproj" /> </ItemGroup> </Project> Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -1,33 +1,16 @@ #region << ç æ¬ 注 é >> /*---------------------------------------------------------------- * å½å空é´ï¼WIDESEAWCS_Tasks.ConveyorLineJob * å建è ï¼è¡ç«¥åº * å建æ¶é´ï¼2024/8/2 16:13:36 * çæ¬ï¼V1.0.0 * æè¿°ï¼ * * ---------------------------------------------------------------- * ä¿®æ¹äººï¼ * ä¿®æ¹æ¶é´ï¼ * çæ¬ï¼V1.0.1 * ä¿®æ¹è¯´æï¼ * *----------------------------------------------------------------*/ #endregion << ç æ¬ 注 é >> using AutoMapper; using AutoMapper; using HslCommunication; using Newtonsoft.Json; using Quartz; using SqlSugar; using System.Reflection; using WIDESEAWCS_Common; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_DTO.TaskInfo; using WIDESEAWCS_IProcessRepository; using WIDESEAWCS_ISystemServices; using WIDESEAWCS_ITaskInfoRepository; using WIDESEAWCS_ITaskInfoService; using WIDESEAWCS_Model.Models; @@ -47,9 +30,10 @@ private readonly ITaskExecuteDetailService _taskExecuteDetailService; private readonly IRouterService _routerService; private readonly IPlatFormRepository _platFormRepository; private readonly ISys_ConfigService _sys_ConfigService; private readonly IMapper _mapper; public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository) public CommonConveyorLineJob(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, IRouterService routerService, IMapper mapper, ITaskRepository taskRepository, IPlatFormRepository platFormRepository, ISys_ConfigService sys_ConfigService) { _taskService = taskService; _taskExecuteDetailService = taskExecuteDetailService; @@ -57,9 +41,10 @@ _mapper = mapper; _taskRepository = taskRepository; _platFormRepository = platFormRepository; _sys_ConfigService = sys_ConfigService; } public Task Execute(IJobExecutionContext context) public async Task Execute(IJobExecutionContext context) { try { @@ -67,11 +52,20 @@ if (conveyorLine != null) { List<string> childDeviceCodes = _routerService.QueryAllPositions(conveyorLine.DeviceCode); List<Task> tasks = new List<Task>(); foreach (string childDeviceCode in childDeviceCodes) { //Task task = Task.Run(() => //{ await ProcessDeviceAsync(conveyorLine, childDeviceCode); } } } catch (Exception ex) { Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString()); } } private async Task ProcessDeviceAsync(CommonConveyorLine conveyorLine, string childDeviceCode) { ConveyorLineTaskCommand command = conveyorLine.ReadCustomer<ConveyorLineTaskCommand>(childDeviceCode); ConveyorLineTaskCommandWrite commandWrite = conveyorLine.ReadCustomer<ConveyorLineTaskCommandWrite>(childDeviceCode, "DeviceCommand"); if (command != null && commandWrite != null) @@ -146,24 +140,6 @@ } } } //}); //tasks.Add(task); Task.WaitAll(tasks.ToArray()); } } } catch (Exception ex) { Console.Out.WriteLine(nameof(CommonConveyorLineJob) + ":" + ex.ToString()); } finally { //WriteDebug("CommonConveyorLineJob", "test"); //Console.Out.WriteLine(DateTime.Now); } return Task.CompletedTask; } /// <summary> @@ -177,14 +153,9 @@ { try { // è·åä¸ä¸ä¸ªä»»å¡ var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); //var taskOut = _taskService.QueryNextConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); //return; // å¤çåºåºä»»å¡ HandleTaskOut(conveyorLine, command, childDeviceCode, ProtocalDetailValue, task); // å¦ææ²¡æåºåºä»»å¡ï¼å¤çæ°ä»»å¡ if (task == null && command.Barcode != "NoRead") { HandleNewTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); @@ -192,34 +163,9 @@ } catch (Exception ex) { return; Console.Out.WriteLine(ex.ToString()); } } #region è¾é线请æ±å ¥åºä¸ä¸å°å /// <summary> /// è¾é线请æ±å ¥åºä¸ä¸å°å /// </summary> /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> /// <param name="command">读åç请æ±ä¿¡æ¯</param> /// <param name="childDeviceCode">å设å¤ç¼å·</param> //public void RequestInNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode) //{ // Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); // if (task != null) // { // Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); // if (newTask != null) // { // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask); // taskCommand.InteractiveSignal = command.InteractiveSignal; // conveyorLine.SendCommand(taskCommand, childDeviceCode); // } // } //} #endregion /// <summary> /// è¾éçº¿å ¥åºå®æ @@ -230,15 +176,14 @@ /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> public void ConveyorLineInFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); if (task != null && task.TaskState != (int)TaskInStatusEnum.Line_InFinish) { ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); //conveyorLine.SetValue(ConveyorLineDBName.WriteInteractiveSignal, 0, childDeviceCode); WebResponseContent content = _taskService.UpdateTaskStatusToNext(task); //Console.Out.WriteLine(content.Serialize()); Console.Out.WriteLine(content.Serialize()); } } @@ -251,7 +196,7 @@ /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> public void RequestOutbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); if (task != null) { ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task); @@ -262,28 +207,6 @@ _taskService.UpdateTaskStatusToNext(task); } } /// <summary> /// è¾é线请æ±åºåºä¸ä¸å°å /// </summary> /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> /// <param name="command">读åç请æ±ä¿¡æ¯</param> /// <param name="childDeviceCode">å设å¤ç¼å·</param> public void RequestOutNextAddress(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode) { Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); if (task != null) { Dt_Task? newTask = _taskService.UpdatePosition(task.TaskNum, task.CurrentAddress); if (newTask != null) { ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(newTask); taskCommand.InteractiveSignal = command.InteractiveSignal; conveyorLine.SendCommand(taskCommand, childDeviceCode); } } } /// <summary> /// è¾é线åºåºå®æ /// </summary> @@ -292,7 +215,7 @@ /// <param name="childDeviceCode">å设å¤ç¼å·</param> public void ConveyorLineOutFinish(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { Dt_Task task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); var task = _taskService.QueryExecutingConveyorLineTask(command.TaskNum, childDeviceCode); if (task != null) { WebResponseContent content = new WebResponseContent(); @@ -312,6 +235,22 @@ ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); content = _taskService.UpdateTaskStatusToNext(task); } } /// <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 ProtocalDetailValue, 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> @@ -348,14 +287,20 @@ #region è°ç¨WMSè·ååºåºä»»å¡ WMSTaskDTO taskDTO = new WMSTaskDTO(); object dynamic = new // è·å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) { position = childDeviceCode, tag = (int)taskType, areaCdoe = roadWay, roadways = roadways }; var result = await HttpHelper.PostAsync("http://localhost:5000/api/Task/RequestTrayOutTaskAsync", dynamic.ToJsonString()); throw new InvalidOperationException("WMS IP æªé ç½®"); } var wmsIpAddress = wmsBase + requestTrayOutTask; var result = await HttpHelper.PostAsync(wmsIpAddress, new { position = childDeviceCode, tag = (int)taskType, areaCdoe = roadWay, roadways = roadways }.ToJsonString()); //var result = await HttpHelper.PostAsync("http://localhost:5000/api/Task/RequestTrayOutTaskAsync", dynamic.ToJsonString()); WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); @@ -382,22 +327,6 @@ Console.WriteLine($"{taskDTO.TaskType}å¼å«æå"); } return content; } /// <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 ProtocalDetailValue, 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); } } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -12,8 +12,8 @@ using WIDESEAWCS_QuartzJob; using WIDESEAWCS_Tasks.ConveyorLineJob; using HslCommunication; using OfficeOpenXml.ConditionalFormatting; using WIDESEAWCS_DTO.WMS; using WIDESEAWCS_Common; namespace WIDESEAWCS_Tasks { @@ -24,29 +24,22 @@ /// </summary> private void HandleTaskOut(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand 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); // æ è®°åé宿 ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // æ´æ°ä»»å¡ç¶æ _taskService.UpdateTaskStatusToNext(taskOut); } else if (taskOut.TaskType == (int)TaskOutboundTypeEnum.OutTray && taskOut.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) { // 宿WMSä»»å¡ CompleteWmsTask(taskOut, command, conveyorLine, childDeviceCode, ProtocalDetailValue); } } @@ -56,20 +49,13 @@ /// </summary> private void HandleNewTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { // ç¹å®æ¡ä»¶ä¸å建并åé空æçå ¥åºä»»å¡ if ((conveyorLine.DeviceCode == "1003" && childDeviceCode == "1016") || (conveyorLine.DeviceCode == "1005" && childDeviceCode == "1048")) { // 请æ±WMS空æçä»»å¡ CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); } else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1088") || (conveyorLine.DeviceCode == "1004" && childDeviceCode == "1339")) { // 请æ±WMSå ¥åºä»»å¡ RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); } else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1073") || (conveyorLine.DeviceCode == "1003" && childDeviceCode == "1002")) { //TODO åéç´æ¥å»NGå£ä»»å¡ } } @@ -78,7 +64,6 @@ /// </summary> private ConveyorLineTaskCommand MapTaskCommand(Dt_Task task, ConveyorLineTaskCommand command) { // 使ç¨mapperæ å°ä»»å¡å½ä»¤ var comm = _mapper.Map<ConveyorLineTaskCommand>(task); comm.InteractiveSignal = command.InteractiveSignal; return comm; @@ -89,25 +74,30 @@ /// </summary> private void CompleteWmsTask(Dt_Task taskOut, ConveyorLineTaskCommand command, CommonConveyorLine conveyorLine, string childDeviceCode, int ProtocalDetailValue) { // å¦ææ²¡ææ¡ç ä¿¡æ¯ï¼åè®¾ç½®ç®æ å°å为NGå°å if (command.Barcode == "NoRead") { var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == taskOut.TargetAddress).Capacity; taskOut.TargetAddress = NGAddress.ToString(); } // TODOè°ç¨WMSä»»å¡å®ææ¥å£ var keys = new Dictionary<string, object>() { {"taskNum", taskOut.TaskNum} }; var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync", keys).Result; 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); } } @@ -119,23 +109,23 @@ { if (command.Barcode != "NoRead") { // å建空æçä»»å¡DTO WMSTaskDTO taskDTO = CreateEmptyTrayTaskDto(command.Barcode, childDeviceCode); // å建并åéä»»å¡ WebResponseContent content = CreateAndSendTask(taskDTO); var taskDTO = CreateEmptyTrayTaskDto(command.Barcode, childDeviceCode); if (_taskRepository.QueryFirst(x => x.PalletCode == taskDTO.PalletCode) != null) { WriteInfo(conveyorLine.DeviceName, "å½åæçåå¨ä»»å¡"); return; } var content = CreateAndSendTask(taskDTO); if (content.Status) { // æ¥è¯¢ä»»å¡ Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); var task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); if (task != null) { // æ å°ä»»å¡å½ä»¤ ConveyorLineTaskCommand taskCommand = MapTaskCommand(task, command); // åéå½ä»¤å°è¾é线 var taskCommand = MapTaskCommand(task, command); conveyorLine.SendCommand(taskCommand, childDeviceCode); // æ è®°åé宿 ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // æ´æ°ä»»å¡ç¶æ _taskService.UpdateTaskStatusToNext(task); } } @@ -147,49 +137,51 @@ /// </summary> private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode) { #region åWMS请æ±ç©ºæçä»»å¡ WMSTaskDTO wMSTaskDTO = new WMSTaskDTO(); RequestTaskDto request = new RequestTaskDto() var request = new RequestTaskDto() { Position = childDeviceCode, PalletCode = barcode, }; var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTrayInTaskAsync", request.ToJsonString()).Result; 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 wMSTaskDTO; return new WMSTaskDTO(); WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); // æ£æ¥ç¶æå¹¶è¿å if (!content.Status) return wMSTaskDTO; return new WMSTaskDTO(); return JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); #endregion åWMS请æ±ç©ºæçä»»å¡ } /// <summary> /// 请æ±WMSä»»å¡ /// </summary> private void RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) private async void RequestWmsTask(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { // 请æ±WMSä»»å¡ if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status) var content = await _taskService.RequestWMSTask(command.Barcode, childDeviceCode); if (content.Status) { // æ¥è¯¢ä»»å¡ Dt_Task task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); var task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); if (task != null) { // æ å°ä»»å¡å½ä»¤ ConveyorLineTaskCommand taskCommand = MapTaskCommand(task, command); // åéå½ä»¤å°è¾é线 var taskCommand = MapTaskCommand(task, command); conveyorLine.SendCommand(taskCommand, childDeviceCode); // æ è®°åé宿 ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // æ´æ°ä»»å¡ç¶æ _taskService.UpdateTaskStatusToNext(task); } } else WriteInfo(conveyorLine.DeviceName, content.Message); } } } Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/Debug/net6.0/WIDESEA_Common.GeneratedMSBuildEditorConfig.editorconfig
ÎļþÒÑɾ³ý Code Management/WMS/WIDESEA_WMSServer/WIDESEA_Common/obj/WIDESEA_Common.csproj.nuget.g.props
ÎļþÒÑɾ³ý Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/AgingInOrOutInput/AgingInOrOutInputService.cs
@@ -23,7 +23,7 @@ try { input.SessionId = Guid.NewGuid().ToString(); input.EmployeeNo = "T00001"; input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/AgingInput", inputJson); @@ -52,7 +52,7 @@ try { input.SessionId = Guid.NewGuid().ToString(); input.EmployeeNo = "T00001"; input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/AgingOutput", inputJson); Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/CellState/CellStateService.cs
@@ -1,5 +1,6 @@ using LogLibrary.Log; using Masuit.Tools; using Newtonsoft.Json; using WIDESEA_Common; using WIDESEA_Core; using WIDESEA_DTO; @@ -30,7 +31,7 @@ try { input.SessionId = Guid.NewGuid().ToString(); input.EmployeeNo = "T00001"; input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/CellState", inputJson); @@ -71,6 +72,8 @@ { Console.WriteLine(err.Message.ToString()); LogFactory.GetLog("åçµè¯å±æ§è·å").Error(true, $"\r\r--------------------------------------"); LogFactory.GetLog("åçµè¯å±æ§è·å").Error(true, $"请æ±åæ°: {JsonConvert.SerializeObject(input)}"); LogFactory.GetLog("åçµè¯å±æ§è·å").Error(true, err.Message); LogFactory.GetLog("åçµè¯å±æ§è·å").Error(true, err.StackTrace); } return Task.FromResult<dynamic>(null); @@ -87,7 +90,7 @@ try { input.SessionId = Guid.NewGuid().ToString(); input.EmployeeNo = "T00001"; input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/TrayCellsStatus", inputJson); @@ -125,6 +128,8 @@ { Console.WriteLine(err.Message.ToString()); LogFactory.GetLog("æ´ççµè¯å±æ§è·å").Error(true, $"\r\r--------------------------------------"); LogFactory.GetLog("æ´ççµè¯å±æ§è·å").Error(true, $"请æ±åæ°: {JsonConvert.SerializeObject(input)}"); LogFactory.GetLog("æ´ççµè¯å±æ§è·å").Error(true, err.Message); LogFactory.GetLog("æ´ççµè¯å±æ§è·å").Error(true, err.StackTrace); } return content; Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/ProcessApply/ProcessApplyService.cs
@@ -24,7 +24,7 @@ try { input.SessionId = Guid.NewGuid().ToString(); input.EmployeeNo = "T00001"; input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputIson = input.ToDictionary(); var x = await HttpsClient.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/ProcessApply", inputIson); Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StoragIntegrationServices/MOM/Unbind/UnbindService.cs
@@ -28,7 +28,7 @@ input.SessionId = Guid.NewGuid().ToString(); input.Software = "WMS"; input.EquipmentCode = "ECH001-B"; input.EmployeeNo = "T00001"; input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); LogFactory.GetLog("æçåçµè¯è§£ç»1").Info(true, JsonConvert.SerializeObject(inputJson)); @@ -57,7 +57,7 @@ input.SessionId = Guid.NewGuid().ToString(); input.Software = "WMS"; input.EquipmentCode = "ECH001-B"; input.EmployeeNo = "T00001"; input.EmployeeNo = "MITest"; input.RequestTime = TimeZoneInfo.ConvertTimeToUtc(DateTime.Now).ToString("yyyy-MM-ddTHH:mm:ss.fffZ"); var inputJson = input.ToDictionary(); Console.WriteLine(inputJson); Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -396,6 +396,7 @@ { MaterielCode = "空æç", Id = 0, Status = (int)StockStateEmun.å·²å ¥åº } } }; @@ -407,6 +408,7 @@ private DtStockInfo CreateFullPalletStock(Dt_Task task, DtLocationInfo locationInf, DtBoxingInfo boxing) { var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>(); boxDetail.ForEach(x => { x.Status = (int)StockStateEmun.å·²å ¥åº; }); var stock = new DtStockInfo() { PalletCode = task.PalletCode, @@ -529,6 +531,7 @@ { Software = "WMS", TrayBarcode = input.PalletCode, //EquipmentCode = "EQ_CWJZ01" EquipmentCode = "ECH001-B" }; @@ -544,9 +547,9 @@ return content.Error(result.MOMMessage); // TODO è·åæ¬å°ææ¡å±æ§ä¸æ´ççµè¯å±æ§è·åçå¼è¿è¡å¯¹æ¯ï¼å¦æä¸è´åç»§ç»ï¼å¦åè¿åéè¯¯ä¿¡æ¯ var productions = await _productionRepository.QueryDataAsync(x => result.TrayBarcodePropertys.Select(x => x.TrayBarcodeProperty).ToList().Contains(x.TrayBarcodeProperty)); if (productions.Count <= 0) return content.Error("ææ¡å±æ§ä¸åå¨"); //var productions = await _productionRepository.QueryDataAsync(x => result.TrayBarcodePropertys.Select(x => x.TrayBarcodeProperty).ToList().Contains(x.TrayBarcodeProperty)); //if (productions.Count <= 0) // return content.Error("ææ¡å±æ§ä¸åå¨"); // è°ç¨CreateBoxingInfoæ¹æ³ï¼å建ç»çä¿¡æ¯ @@ -642,7 +645,11 @@ return content.OK(data: task); } return await CreateNewTask(input, null, 1); // è·åç®æ å°å List<string> strings = input.Position == "1016" ? new List<string>() { "CHSC01" } : new List<string>() { "JZSC01" }; return await CreateNewTask(input, strings, 1); //return await CreateNewTask(input, null, 1); } catch (Exception) { @@ -743,12 +750,20 @@ { // æ ¹æ®æçç±»åæ¥è¯¢åºåä¿¡æ¯ DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound ? QueryStockInfoForRealTray(areaCode, roadways) : QueryStockInfoForEmptyTray(areaCode, roadways); ? QueryStockInfoForRealTrayAsync(areaCode, roadways).Result : QueryStockInfoForEmptyTrayAsync(areaCode, roadways).Result; if (stockInfo == null) { return content.Error("åºåä¿¡æ¯ä¸åå¨"); } // æ°å¢éå¤ä»»å¡æ ¡éª var hasTask = BaseDal.QueryFirst(x => x.PalletCode == stockInfo.PalletCode); if (hasTask != null) { WMSTaskDTO taskDTO1 = CreateTaskDTO(hasTask); return content.OK("å·²åå¨ç©ºçåºåºä»»å¡", data: taskDTO1); } // å建æ°ä»»å¡å®ä¾ @@ -783,26 +798,33 @@ /// <summary> /// æ¥è¯¢å®çåºåä¿¡æ¯ /// </summary> private DtStockInfo QueryStockInfoForRealTray(string areaCode, List<string> roadways) private async Task<DtStockInfo> QueryStockInfoForRealTrayAsync(string areaCode, List<string> roadways) { // TODOæ¶é´æ ¹æ®MOMç³»ç»é ç½®çåºåºæ¶é´æ¥è·å,ææ¶ä¸ç¥éMOMè¿åçæ¶é´æ¯ä»ä¹æä»¥è¿éæµè¯æ¶å卿¹ return _stockInfoRepository.Db.Queryable<DtStockInfo>().Where(x => x.AreaCode == areaCode && Convert.ToDateTime(x.LinedProcessFeedbackTime) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo)) .Includes(x => x.LocationInfo) .Includes(x => x.StockInfoDetails) .OrderBy(x => x.CreateDate) .First(); //return _stockInfoRepository.QueryFirstNavAsync(x => x.AreaCode == areaCode && Convert.ToDateTime(x.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(x.SpecialParameterDuration)) < DateTime.Now // && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo) && x.StockInfoDetails.Any(x => x.Status == (int)StockStateEmun.å·²å ¥åº) && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).Result; var result = await _stockInfoRepository.QueryFirstNavAsync(x => x.AreaCode == areaCode && Convert.ToDateTime(x.LinedProcessFeedbackTime).AddHours(Convert.ToDouble(x.SpecialParameterDuration)) < DateTime.Now && x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo) && x.StockInfoDetails != null && x.StockInfoDetails.Any(detail => detail.Status == (int)StockStateEmun.å·²å ¥åº)); return result; } /// <summary> /// æ¥è¯¢ç©ºçåºåä¿¡æ¯ /// </summary> private DtStockInfo QueryStockInfoForEmptyTray(string areaCode, List<string> roadways) private async Task<DtStockInfo> QueryStockInfoForEmptyTrayAsync(string areaCode, List<string> roadways) { return _stockInfoRepository.Db.Queryable<DtStockInfo>().Where(x => x.AreaCode == areaCode && x.StockInfoDetails.Any(z => z.MaterielCode == "空æç") && roadways.Contains(x.LocationInfo.RoadwayNo)) .Includes(x => x.LocationInfo) .Includes(x => x.StockInfoDetails) .OrderBy(x => x.CreateDate) .First(); //return _stockInfoRepository.QueryFirstNavAsync(x => x.StockInfoDetails.Any(x => x.MaterielCode == "空æç") && roadways.Contains(x.LocationInfo.RoadwayNo) && x.StockInfoDetails.Any(x => x.Status == (int)StockStateEmun.å·²å ¥åº) && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).Result; var result = await _stockInfoRepository.QueryFirstNavAsync(x => x.StockInfoDetails != null && x.StockInfoDetails.Any(detail => detail.MaterielCode == "空æç") && roadways.Contains(x.LocationInfo.RoadwayNo) && x.StockInfoDetails.Any(detail => detail.Status == (int)StockStateEmun.å·²å ¥åº) && x.LocationInfo != null && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock); return result; } /// <summary> @@ -1296,7 +1318,8 @@ WebResponseContent content = new WebResponseContent(); // è·åç®æ å°å string ToAddress = await GetRoadWayAsync(process); //string ToAddress = await GetRoadWayAsync(process); string ToAddress = await GetRoadWayAsync(input, process); // å建æ°ä»»å¡å®ä¾ var task = new Dt_Task @@ -1386,7 +1409,7 @@ /// <param name="Direction">æ¹å</param> /// <param name="area">å ³ç³»åºå</param> /// <returns></returns> public async Task<string> GetRoadWayAsync(List<string> process) public async Task<string> GetRoadWayAsync(RequestTaskDto input, List<string> process) { var minGroup = _locationRepository.QueryData(x => process.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free) .GroupBy(x => x.RoadwayNo)