| | |
| | | using Microsoft.AspNetCore.Http; |
| | | using Microsoft.AspNetCore.Mvc; |
| | | using OfficeOpenXml.FormulaParsing.Excel.Functions.Information; |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using System.Dynamic; |
| | | using System.Reflection; |
| | | using System.Threading.Tasks; |
| | | using WIDESEAWCS_Common.StackerCraneEnum; |
| | | using WIDESEAWCS_Core; |
| | | using WIDESEAWCS_Core.Caches; |
| | | using WIDESEAWCS_Core.Utilities; |
| | | using WIDESEAWCS_DTO.System; |
| | | using WIDESEAWCS_ITaskInfoRepository; |
| | | using WIDESEAWCS_ITaskInfoService; |
| | | using WIDESEAWCS_Model.Models; |
| | | using WIDESEAWCS_QuartzJob; |
| | | using WIDESEAWCS_QuartzJob.Repository; |
| | | using WIDESEAWCS_QuartzJob.Service; |
| | | using WIDESEAWCS_Server.Controllers.System; |
| | | using WIDESEAWCS_Tasks.ConveyorLineJob; |
| | | using WIDESEAWCS_Tasks.ShuttleCarJob; |
| | | using WIDESEAWCS_Tasks.StackerCraneJob; |
| | | using static WIDESEAWCS_Server.Controllers.LargeScreenController; |
| | | |
| | | namespace WIDESEAWCS_Server.Controllers |
| | | { |
| | |
| | | private readonly IDeviceInfoRepository _deviceInfoRepository; |
| | | private readonly IRouterService _routerService; |
| | | private readonly ICacheService _cacheService; |
| | | public LargeScreenController(ICacheService cacheService, IRouterService routerService, IDeviceInfoRepository deviceInfoRepository) |
| | | private readonly ITaskRepository _taskRepository; |
| | | private readonly ITaskService _taskService; |
| | | public LargeScreenController(ICacheService cacheService, IRouterService routerService, IDeviceInfoRepository deviceInfoRepository, ITaskRepository taskRepository, ITaskService taskService) |
| | | { |
| | | _deviceInfoRepository = deviceInfoRepository; |
| | | _routerService = routerService; |
| | | _cacheService = cacheService; |
| | | _taskRepository = taskRepository; |
| | | _taskService = taskService; |
| | | } |
| | | |
| | | [HttpPost, Route("GetTaskInfos")] |
| | | public WebResponseContent GetTaskInfos([FromBody] SaveModel model) |
| | | { |
| | | WebResponseContent webResponseContent = new WebResponseContent(); |
| | | List<TaskInfo> taskInfos = new List<TaskInfo>(); |
| | | List<DictionaryDTO> dictionaryDTOs = new List<DictionaryDTO>(); |
| | | try |
| | | { |
| | | var name = model.MainData["Name"].ToString(); |
| | | List<Dt_Task> dt_Tasks = new List<Dt_Task>(); |
| | | if (name == "å
¥åº") |
| | | { |
| | | dt_Tasks = _taskRepository.QueryData(x => !_taskService.TaskOutboundTypes.Contains(x.TaskType) && !_taskService.TaskRelocationTypes.Contains(x.TaskType)); |
| | | dt_Tasks = dt_Tasks.OrderByDescending(x => x.TaskType).Take(10).ToList(); |
| | | } |
| | | else |
| | | { |
| | | dt_Tasks = _taskRepository.QueryData(x => !_taskService.TaskInboundTypes.Contains(x.TaskType)); |
| | | dt_Tasks = dt_Tasks.OrderByDescending(x => x.TaskType).Take(10).ToList(); |
| | | } |
| | | if (dt_Tasks.Count > 0) |
| | | { |
| | | List<DictionaryDTO> taskTypeDTOs = GetDictionary(Sys_DictionaryController.GetVueDictionary("taskType").Data); |
| | | List<DictionaryDTO> taskStateDTOs = GetDictionary(Sys_DictionaryController.GetVueDictionary("taskState").Data); |
| | | foreach (var dt_Task in dt_Tasks) |
| | | { |
| | | TaskInfo taskInfo = new TaskInfo(); |
| | | taskInfo.PalletCode = dt_Task.PalletCode; |
| | | taskInfo.ShuttleCarCode = dt_Task.ShuttleCarCode; |
| | | taskInfo.TaskState = taskStateDTOs.Where(x => x.name == dt_Task.TaskState.ToString()).First().remark; |
| | | taskInfo.TaskType = taskTypeDTOs.Where(x => x.name == dt_Task.TaskType.ToString()).First().remark; |
| | | taskInfo.SourceAddress = dt_Task.SourceAddress; |
| | | taskInfo.TargetAddress = dt_Task.TargetAddress; |
| | | taskInfo.TaskNum = dt_Task.TaskNum; |
| | | taskInfos.Add(taskInfo); |
| | | } |
| | | } |
| | | webResponseContent.OK(data: taskInfos); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | webResponseContent.Error(ex.Message); |
| | | } |
| | | return webResponseContent; |
| | | } |
| | | /// <summary> |
| | | /// è·åç©¿æ¢è½¦çµé |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost, Route("GetShuttleCarInfos")] |
| | | public WebResponseContent GetShuttleCarInfos() |
| | | { |
| | | WebResponseContent webResponseContent = new WebResponseContent(); |
| | | int ElectricQuantity1 = 0; |
| | | int ElectricQuantity2 = 0; |
| | | try |
| | | { |
| | | var Device = _cacheService.Get(typeof(ShuttleCarTaskCommandR), "RGV01"); |
| | | if (Device != null) |
| | | { |
| | | ShuttleCarTaskCommandR? shuttleCar = Device as ShuttleCarTaskCommandR; |
| | | if (shuttleCar != null) ElectricQuantity1 = shuttleCar.ElectricQuantity; |
| | | } |
| | | Device = _cacheService.Get(typeof(ShuttleCarTaskCommandR), "RGV02"); |
| | | if (Device != null) |
| | | { |
| | | ShuttleCarTaskCommandR? shuttleCar = Device as ShuttleCarTaskCommandR; |
| | | if (shuttleCar != null) ElectricQuantity2 = shuttleCar.ElectricQuantity; |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | webResponseContent.Error(ex.Message); |
| | | } |
| | | return webResponseContent.OK(data: new |
| | | { |
| | | ElectricQuantity1, |
| | | ElectricQuantity2 |
| | | }); |
| | | } |
| | | /// <summary> |
| | | /// è·å设å¤ä¿¡æ¯ |
| | | /// </summary> |
| | |
| | | { |
| | | case "SpeStackerCrane"://å åæº |
| | | { |
| | | var Device = _cacheService.Get(typeof(StackerCraneTaskCommandR), item.DeviceCode); |
| | | var Device = _cacheService.Get(typeof(StackerCraneTaskCommandR), item.DeviceCode) as StackerCraneTaskCommandR; |
| | | if (Device != null) |
| | | { |
| | | DeviceInfo deviceInfo = new DeviceInfo() |
| | | { |
| | | DeviceName = item.DeviceName, |
| | | Deviceinfo = Device |
| | | DeviceCode = item.DeviceCode, |
| | | DeviceStatus = Device.Onlinestate == 1 ? "å¨çº¿" : "离线", |
| | | DeviceMachine = GetRunStatus(Device.RunStatus), |
| | | Err_Status = GetErr_Status(Device.Err_Status), |
| | | TaskID = Device.CurrentTaskNum |
| | | }; |
| | | devices.Add(deviceInfo); |
| | | } |
| | |
| | | case "CommonConveyorLine"://è¾é线 |
| | | { |
| | | List<string> childDeviceCodes = _routerService.QueryAllPositions(item.DeviceCode); |
| | | foreach (var childDeviceCode in childDeviceCodes) |
| | | List<string> strings = new List<string>() { "1003", "1006", "1007" }; |
| | | childDeviceCodes.AddRange(strings); |
| | | foreach (var childDeviceCode in childDeviceCodes.OrderBy(x => x)) |
| | | { |
| | | var Device = _cacheService.Get(typeof(ConveyorLineTaskCommandR), childDeviceCode); |
| | | var Device = _cacheService.Get(typeof(ConveyorLineTaskCommandR), childDeviceCode) as ConveyorLineTaskCommandR; |
| | | if (Device != null) |
| | | { |
| | | DeviceInfo deviceInfo = new DeviceInfo() |
| | | { |
| | | DeviceName = item.DeviceName, |
| | | Deviceinfo = Device |
| | | DeviceCode = childDeviceCode, |
| | | DeviceStatus = Device.inRead == 1 ? "å¯å" : "ä¸å¯å", |
| | | DeviceMachine = GetMachine(Device.Status), |
| | | TaskID = Device.TaskNum, |
| | | Err_Status = GetSpec(Device.Spec) |
| | | }; |
| | | devices.Add(deviceInfo); |
| | | } |
| | |
| | | break; |
| | | case "ShuttleCar"://ç©¿æ¢è½¦ |
| | | { |
| | | var Device = _cacheService.Get(typeof(ShuttleCarTaskCommandR), item.DeviceCode); |
| | | var Device = _cacheService.Get(typeof(ShuttleCarTaskCommandR), item.DeviceCode) as ShuttleCarTaskCommandR; |
| | | if (Device != null) |
| | | { |
| | | DeviceInfo deviceInfo = new DeviceInfo() |
| | | { |
| | | DeviceName = item.DeviceName, |
| | | Deviceinfo = Device |
| | | DeviceCode = item.DeviceCode, |
| | | DeviceStatus = Device.JoinStatus == 1 ? "å¨çº¿" : "离线", |
| | | DeviceMachine = GetStatus(Device.Status), |
| | | Err_Status = GetErrStatus(Device.Err_Status), |
| | | TaskID = Device.number |
| | | }; |
| | | devices.Add(deviceInfo); |
| | | } |
| | |
| | | break; |
| | | } |
| | | } |
| | | webResponseContent.OK(data: new |
| | | { |
| | | devices |
| | | }); |
| | | webResponseContent.OK(data: devices); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | |
| | | } |
| | | return webResponseContent; |
| | | } |
| | | List<DictionaryDTO> GetDictionary(object data) |
| | | { |
| | | List<DictionaryDTO> dictionaryDTOs = new List<DictionaryDTO>(); |
| | | List<object> a = data as List<object>; |
| | | foreach (var task in a) |
| | | { |
| | | dynamic dictionaryDTO = task; |
| | | DictionaryDTO dictionary = new DictionaryDTO |
| | | { |
| | | name = dictionaryDTO.key, |
| | | remark = dictionaryDTO.value, |
| | | }; |
| | | dictionaryDTOs.Add(dictionary); |
| | | } |
| | | return dictionaryDTOs; |
| | | } |
| | | public class DictionaryDTO |
| | | { |
| | | public string name { get; set; } |
| | | public string remark { get; set; } |
| | | } |
| | | public class TaskInfo |
| | | { |
| | | /// <summary> |
| | | /// ä»»å¡å· |
| | | /// </summary> |
| | | public int TaskNum { get; set; } |
| | | /// <summary> |
| | | /// æçå· |
| | | /// </summary> |
| | | public string PalletCode { get; set; } |
| | | /// <summary> |
| | | /// ç©¿æ¢è½¦ |
| | | /// </summary> |
| | | public string ShuttleCarCode { get; set; } |
| | | /// <summary> |
| | | /// ä»»å¡ç±»å |
| | | /// </summary> |
| | | public string TaskType { get; set; } |
| | | /// <summary> |
| | | /// ä»»å¡ç¶æ |
| | | /// </summary> |
| | | public string TaskState { get; set; } |
| | | /// <summary> |
| | | /// èµ·å§å°å |
| | | /// </summary> |
| | | public string SourceAddress { get; set; } |
| | | /// <summary> |
| | | /// ç®çå°å |
| | | /// </summary> |
| | | public string TargetAddress { get; set; } |
| | | } |
| | | public class DeviceInfo |
| | | { |
| | | //public string DeviceCode { get; set; } |
| | | /// <summary> |
| | | /// 设å¤å |
| | | /// </summary> |
| | | public string DeviceName { get; set; } |
| | | public object Deviceinfo { get; set; } |
| | | /// <summary> |
| | | /// 设å¤ç¼å· |
| | | /// </summary> |
| | | public string DeviceCode { get; set; } |
| | | /// <summary> |
| | | /// 设å¤ç¶æ |
| | | /// </summary> |
| | | public string DeviceStatus { get; set; } |
| | | /// <summary> |
| | | /// 设å¤ä¿¡æ¯ |
| | | /// </summary> |
| | | public string DeviceMachine { get; set; } |
| | | /// <summary> |
| | | /// æ
é |
| | | /// </summary> |
| | | public string Err_Status { get; set; } |
| | | public int TaskID { get; set; } |
| | | } |
| | | /// <summary> |
| | | /// è·åå åæºè¿è¡ç¶æ |
| | | /// </summary> |
| | | /// <param name="status"></param> |
| | | /// <returns></returns> |
| | | string GetRunStatus(ushort status) |
| | | { |
| | | string RunStatus = string.Empty; |
| | | switch (status) |
| | | { |
| | | case 1: RunStatus = "åå§åä¸"; break; |
| | | case 2: RunStatus = "æ
éæå"; break; |
| | | case 3: RunStatus = "æå¨æ¨¡å¼"; break; |
| | | case 4: RunStatus = "åæ¥æ¨¡å¼"; break; |
| | | case 5: RunStatus = "ç»´æ¤æ¨¡å¼"; break; |
| | | case 6: RunStatus = "åè´§æ£æ¥"; break; |
| | | case 7: RunStatus = "åè´§ç«ç¹å¤æ"; break; |
| | | case 8: RunStatus = "æ è´§è¿è¡"; break; |
| | | case 9: RunStatus = "请æ±åè´§"; break; |
| | | case 10: RunStatus = "åè´§æ¢è´§"; break; |
| | | case 11: RunStatus = "å货伸å"; break; |
| | | case 12: RunStatus = "åè´§æ¬é«"; break; |
| | | case 13: RunStatus = "åè´§åå"; break; |
| | | case 14: RunStatus = "åè´§å®æ"; break; |
| | | case 15: RunStatus = "æ¾è´§æ£æ¥"; break; |
| | | case 16: RunStatus = "æ¾è´§ç«ç¹å¤æ"; break; |
| | | case 17: RunStatus = "æè´§è¿è¡"; break; |
| | | case 18: RunStatus = "è¯·æ±æ¾è´§"; break; |
| | | case 19: RunStatus = "æ¾è´§æ¢è´§"; break; |
| | | case 20: RunStatus = "æ¾è´§ä¼¸å"; break; |
| | | case 21: RunStatus = "æ¾è´§éä½"; break; |
| | | case 22: RunStatus = "æ¾è´§åå"; break; |
| | | case 23: RunStatus = "æ¾è´§å®æ"; break; |
| | | case 24: RunStatus = "æ è´§å¾
å½"; break; |
| | | case 25: RunStatus = "æè´§å¾
å½"; break; |
| | | case 26: RunStatus = "åèªå¨æ¨¡å¼"; break; |
| | | } |
| | | return RunStatus; |
| | | } |
| | | /// <summary> |
| | | /// è·åå åæºæ
é代ç |
| | | /// </summary> |
| | | /// <param name="status"></param> |
| | | /// <returns></returns> |
| | | string GetErr_Status(ushort status) |
| | | { |
| | | string RunStatus = string.Empty; |
| | | switch (status) |
| | | { |
| | | case 1: RunStatus = "è´§åä¸å¨ä¸"; break; |
| | | case 2: RunStatus = "åè´§è´§æ¶æ è´§"; break; |
| | | case 3: RunStatus = "æ¾è´§è´§æ¶æè´§"; break; |
| | | case 4: RunStatus = "ä»»å¡éæ³"; break; |
| | | case 5: RunStatus = "è¡èµ°åå"; break; |
| | | case 6: RunStatus = "è¡èµ°åé¢å¨æ¥è¦"; break; |
| | | case 7: RunStatus = "è¡èµ°å µè½¬"; break; |
| | | case 8: RunStatus = "è¡èµ°å¤±é"; break; |
| | | case 9: RunStatus = "æååå"; break; |
| | | case 10: RunStatus = "æååé¢å¨æ¥è¦"; break; |
| | | case 11: RunStatus = "æåå µè½¬"; break; |
| | | case 12: RunStatus = "æå失é"; break; |
| | | case 13: RunStatus = "è´§å1åå"; break; |
| | | case 14: RunStatus = "è´§å1åé¢å¨æ¥è¦"; break; |
| | | case 15: RunStatus = "è´§å1å µè½¬"; break; |
| | | case 16: RunStatus = "è´§å1失é"; break; |
| | | case 17: RunStatus = "è´§å2åå"; break; |
| | | case 18: RunStatus = "è´§å2åé¢å¨æ¥è¦"; break; |
| | | case 19: RunStatus = "è´§å2å µè½¬"; break; |
| | | case 20: RunStatus = "è´§å2失é"; break; |
| | | case 21: RunStatus = "æ¥åæ
é"; break; |
| | | case 22: RunStatus = "åæé"; break; |
| | | case 23: RunStatus = "åæé"; break; |
| | | case 24: RunStatus = "è¡èµ°æé"; break; |
| | | case 25: RunStatus = "䏿é"; break; |
| | | case 26: RunStatus = "䏿é"; break; |
| | | case 27: RunStatus = "åéæé"; break; |
| | | case 28: RunStatus = "è´§ååæé"; break; |
| | | case 29: RunStatus = "è´§ååæé"; break; |
| | | case 30: RunStatus = "è´§ååæé"; break; |
| | | case 31: RunStatus = "å³è¶
å"; break; |
| | | case 32: RunStatus = "åè¶
å"; break; |
| | | case 33: RunStatus = "åè¶
å"; break; |
| | | case 34: RunStatus = "è¶
é«"; break; |
| | | case 35: RunStatus = "认åæ
é"; break; |
| | | case 36: RunStatus = "æ¾è´§æ è´§"; break; |
| | | case 37: RunStatus = "åè´§å®ææ è´§"; break; |
| | | case 38: RunStatus = "åè´§è´§åæè´§"; break; |
| | | case 39: RunStatus = "æ¾è´§å®ææè´§"; break; |
| | | case 40: RunStatus = "æåç¼ç "; break; |
| | | case 41: RunStatus = "è¡èµ°"; break; |
| | | case 42: RunStatus = "è´§å"; break; |
| | | case 43: RunStatus = "æç»³æ
é"; break; |
| | | case 44: RunStatus = "Aåä¸å¨ä¸"; break; |
| | | case 45: RunStatus = "Båä¸å¨ä¸"; break; |
| | | case 46: RunStatus = "åè´§åææè´§"; break; |
| | | case 47: RunStatus = "æ¾è´§åææè´§"; break; |
| | | case 48: RunStatus = "ä¸å¨åç«ç¹"; break; |
| | | case 49: RunStatus = "ä¸å¨å±ç«ç¹"; break; |
| | | case 50: RunStatus = "é讯æ
é"; break; |
| | | case 51: RunStatus = "å¸è´§è´§åååæè´§æ
é"; break; |
| | | case 52: RunStatus = "载货å°è¶
éè¿è½½"; break; |
| | | case 53: RunStatus = "é«åº¦ä¸ç¬¦"; break; |
| | | case 54: RunStatus = "å±ç»å®ä½ç½®è¶
éæ
é"; break; |
| | | case 55: RunStatus = "åç»å®ä½ç½®è¶
éæ
é"; break; |
| | | case 56: RunStatus = "åç»å®ä½ç½®è¶
éæ
é"; break; |
| | | case 57: RunStatus = "触æ¸å±é讯æ
é"; break; |
| | | } |
| | | return RunStatus; |
| | | } |
| | | string GetMachine(ushort machine) |
| | | { |
| | | string RunStatus = string.Empty; |
| | | switch (machine) |
| | | { |
| | | case 0: RunStatus = "å
³é"; break; |
| | | case 2: RunStatus = "æè´§"; break; |
| | | case 3: RunStatus = "çå¾
æä»¤"; break; |
| | | case 4: RunStatus = "空é²"; break; |
| | | case 12: RunStatus = "èªæ£é误"; break; |
| | | case 13: RunStatus = "æ åæ"; break; |
| | | case 14: RunStatus = "æåå°æ¥"; break; |
| | | case 15: RunStatus = "æ¥æ¶è¶
æ¶"; break; |
| | | case 16: RunStatus = "æ¥æ¶æå"; break; |
| | | case 17: RunStatus = "æåæ "; break; |
| | | case 19: RunStatus = "æ¾è¡è¶
æ¶"; break; |
| | | case 20: RunStatus = "æ¾è¡æå"; break; |
| | | } |
| | | return RunStatus; |
| | | } |
| | | string GetSpec(ushort spec) |
| | | { |
| | | string RunStatus = string.Empty; |
| | | switch (spec) |
| | | { |
| | | case 1: RunStatus = "å·¦è¶
"; break; |
| | | case 2: RunStatus = "å³è¶
"; break; |
| | | case 3: RunStatus = "åè¶
"; break; |
| | | case 4: RunStatus = "åè¶
"; break; |
| | | case 5: RunStatus = "è¶
é«"; break; |
| | | case 6: RunStatus = "è¶
é"; break; |
| | | } |
| | | return RunStatus; |
| | | } |
| | | string GetStatus(short status) |
| | | { |
| | | string Status = string.Empty; |
| | | switch (status) |
| | | { |
| | | case 0: Status = "å¾
æºä¸"; break; |
| | | case 1: Status = "å
¥åºä¸"; break; |
| | | case 2: Status = "åºåºä¸"; break; |
| | | case 3: Status = "ç§»åºä¸"; break; |
| | | case 4: Status = "çç¹ä¸"; break; |
| | | case 9: Status = "æå¨ä¸"; break; |
| | | case 10: Status = "å
çµä¸"; break; |
| | | case 13: Status = "Aä¾§åé¶ä¸"; break; |
| | | case 14: Status = "Bä¾§åé¶ä¸"; break; |
| | | case 15: Status = "Aä¾§åéä¸"; break; |
| | | case 16: Status = "Bä¾§åéä¸"; break; |
| | | } |
| | | return Status; |
| | | } |
| | | string GetErrStatus(short status) |
| | | { |
| | | string Status = string.Empty; |
| | | switch (status) |
| | | { |
| | | case 0: Status = "æ£å¸¸"; break; |
| | | case 1: Status = "åé²æä¿æ¤"; break; |
| | | case 2: Status = "åé²æä¿æ¤"; break; |
| | | case 3: Status = "é¡¶åè¶
æ¶"; break; |
| | | case 4: Status = "è¡èµ°è¶
æ¶"; break; |
| | | case 5: Status = "ååéæ¿å
æ
é"; break; |
| | | case 6: Status = "ååéæ¿å
æ
é"; break; |
| | | case 7: Status = "ååä¸åéæ¿å
æ
é"; break; |
| | | case 8: Status = "ååä¸åéæ¿å
æ
é"; break; |
| | | case 9: Status = "æ¥è¿å¼å
³æ
é"; break; |
| | | case 10: Status = "è¡èµ°å µè½¬æ¥è¦"; break; |
| | | case 11: Status = "Aä¾§æ¥åæ¥è¦"; break; |
| | | case 12: Status = "Bä¾§æ¥åæ¥è¦"; break; |
| | | case 13: Status = "è¡èµ°çµæºæ
é"; break; |
| | | case 14: Status = "é¡¶åçµæºæ
é"; break; |
| | | case 15: Status = "çµéä¸è¶³"; break; |
| | | } |
| | | return Status; |
| | | } |
| | | } |
| | | } |