From 3590ec552055adb6a20fa2b6424b4326b586eecd Mon Sep 17 00:00:00 2001
From: huangxiaoqiang <1247017146@qq.com>
Date: 星期一, 02 六月 2025 17:45:04 +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