| | |
| | | 锘縰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; |
| | | |
| | |
| | | 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; } |
| | | } |
| | | } |
| | | } |