From 41702c7ce4c88ad70f52d83d153dd4c596ff69d5 Mon Sep 17 00:00:00 2001 From: huangxiaoqiang <1247017146@qq.com> Date: 星期一, 26 五月 2025 15:29:36 +0800 Subject: [PATCH] 1 --- 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_StationManagerService.cs | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 210 insertions(+), 2 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_StationManagerService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_StationManagerService.cs" index 78476c8..954ee64 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_StationManagerService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/BasicInfo/Dt_StationManagerService.cs" @@ -1,4 +1,8 @@ -锘縰sing WIDESEA_IServices; +锘縰sing Org.BouncyCastle.Bcpg.OpenPgp; +using WIDESEA_Common; +using WIDESEA_DTO.AGV; +using WIDESEA_IServices; +using WIDESEA_StorageSocketServices; using WIDESEAWCS_BasicInfoRepository; using WIDESEAWCS_Model.Models; @@ -7,10 +11,214 @@ public partial class Dt_StationManagerService : ServiceBase<Dt_StationManager, IDt_StationManagerRepository>, IDt_StationManagerService { private readonly ISys_ConfigService _sys_ConfigService; + private readonly IDt_TaskRepository _taskRepository; - public Dt_StationManagerService(IDt_StationManagerRepository BaseDal, ISys_ConfigService sys_ConfigService) : base(BaseDal) + string url = AppSettings.Configuration["AGVIP"]; + public Dt_StationManagerService(IDt_StationManagerRepository BaseDal, ISys_ConfigService sys_ConfigService, IDt_TaskRepository taskRepository) : base(BaseDal) { _sys_ConfigService = sys_ConfigService; + _taskRepository = taskRepository; + } + public WebResponseContent GetStationStatus() + { + List<Station> status = new List<Station>(); + + StationStatus stationIn = GetStationStatus("B002"); + StationStatus stationOut = GetStationStatus("B001"); + //StationStatus stationIn = new StationStatus() + //{ + // WorkstationT="0", + // WorkstationO="0" + //}; + //StationStatus stationOut = new StationStatus() + //{ + // WorkstationT = "0", + // WorkstationO = "0" + //}; + List<OutStationStatus> outStationStatus = GetOutStationStatus(stationOut); + List<InStationStatus> inStationStatus = GetInStationStatus(stationIn); + + if(outStationStatus != null && outStationStatus.Count > 0) + { + foreach(OutStationStatus item in outStationStatus) + { + var station = BaseDal.QueryFirst(x => x.stationHasTask == "鎶芥鍑哄簱"&&x.HostName==item.StationName); + if(station != null) + { + status.Add(new Station() + { + Name = item.StationName, + Status = station.stationHasTask, + StationType = "鍑哄簱" + }); + } + else if (item.IsDistributionTask == "") + { + status.Add(new Station() + { + Name=item.StationName, + Status=item.StationEnable, + StationType = "鍑哄簱" + }); + } + else + { + status.Add(new Station() + { + Name = item.StationName, + Status = item.IsDistributionTask, + StationType = "鍑哄簱" + }); + } + } + } + + if (outStationStatus != null && outStationStatus.Count > 0) + { + foreach (InStationStatus item in inStationStatus) + { + var station = BaseDal.QueryFirst(x => x.stationHasTask == "鎶芥鍑哄簱" && x.HostName == item.StationName); + if (station != null) + { + status.Add(new Station() + { + Name = item.StationName, + Status = station.stationHasTask, + StationType="鍏ュ簱" + }); + } + else if (item.IsDistributionTask == "") + { + status.Add(new Station() + { + Name = item.StationName, + Status = item.StationEnable, + StationType = "鍏ュ簱" + }); + } + else + { + status.Add(new Station() + { + Name = item.StationName, + Status = item.IsDistributionTask, + StationType = "鍏ュ簱" + }); + } + } + } + foreach (var item in status) + { + switch (item.Status) + { + case "鍑哄簱": + item.Color = "#80dfdf"; + break; + case "鍏ュ簱": + item.Color = "#80bcfe"; + break; + case "绌洪棽": + item.Color = "#959595"; + break; + case "鏈夋枡": + item.Color = "#83b833"; + break; + case "鎶芥鍑哄簱": + item.Color = "#f59a23"; + break; + default: + break; + } + } + var obj = new StationStatusPair + { + Station = status, + }; + return WebResponseContent.Instance.OK(data:obj); + } + public List<OutStationStatus> GetOutStationStatus(StationStatus stationOut) + { + List<OutStationStatus> outStationStatus = new List<OutStationStatus>(); + var taskOutStationO = _taskRepository.QueryFirst(x => x.SourceAddress == "B001::1" || x.TargetAddress == "B001::1"); + var taskOutStationT = _taskRepository.QueryFirst(x => x.SourceAddress == "B001::2" || x.TargetAddress == "B001::2"); + outStationStatus.Add(new OutStationStatus() + { + StationName = "04", + StationEnable = stationOut.WorkstationO == "0" ? "绌洪棽" : "鏈夋枡", + IsDistributionTask = taskOutStationO == null ? "" : taskType(taskOutStationO), + }); + outStationStatus.Add(new OutStationStatus() + { + StationName = "03", + StationEnable = stationOut.WorkstationT == "0" ? "绌洪棽" : "鏈夋枡", + IsDistributionTask = taskOutStationT == null ? "" : taskType(taskOutStationT), + }); + return outStationStatus; + } + + public List<InStationStatus> GetInStationStatus(StationStatus stationIn) + { + List<InStationStatus> inStationStatus = new List<InStationStatus>(); + var taskOutStationO = _taskRepository.QueryFirst(x => x.SourceAddress == "B002::1" || x.TargetAddress == "B002::1"); + var taskOutStationT = _taskRepository.QueryFirst(x => x.SourceAddress == "B002::2" || x.TargetAddress == "B002::2"); + inStationStatus.Add(new InStationStatus() + { + StationName = "02", + StationEnable = stationIn.WorkstationO == "0" ? "绌洪棽" : "鏈夋枡", + IsDistributionTask = taskOutStationO == null ? "" : taskType(taskOutStationO), + }); + inStationStatus.Add(new InStationStatus() + { + StationName = "01", + StationEnable = stationIn.WorkstationT == "0" ? "绌洪棽" : "鏈夋枡", + IsDistributionTask = taskOutStationT == null ? "" : taskType(taskOutStationT), + }); + return inStationStatus; + } + public string taskType(Dt_Task task) + { + string TaskType = String.Empty; + if (task != null) + { + switch (task.TaskType) + { + case (int)TaskInboundTypeEnum.Inbound: + //鍏ュ簱 + TaskType = "鍏ュ簱"; + break; + case (int)TaskOutboundTypeEnum.Outbound: + //鍑哄簱 + TaskType = "鍑哄簱"; + break; + case (int)TaskRelocationTypeEnum.Relocation: + TaskType = "绉诲簱"; + break; + case (int)TaskStationTypeEnum.StationToStation: + TaskType = "绔欏彴鍑哄簱"; + break; + default: break; + } + + } + return TaskType; + } + public StationStatus GetStationStatus(string stationName) + { + string urlnew = url + "/ilns/ctrl/getState"; + var result = HttpsClient.PostAsync(urlnew, JsonConvert.DeserializeObject<Dictionary<string, object>>(new { ctrlName = "B001" }.ToJson())).Result; + return JsonConvert.DeserializeObject<StationStatus>(result.ToString()); + } + public class StationStatusPair + { + public List<Station> Station { get; set; } + } + public class Station + { + public string Name { get; set; } + + public string Status { get; set; } + public string StationType { get; set; } + public string Color { get; set; } } } } \ No newline at end of file -- Gitblit v1.9.3