Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
@@ -17,8 +17,11 @@ using HttpClient httpClient = new HttpClient(); httpClient.Timeout = new TimeSpan(0, 0, 60); foreach (var header in headers) httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); if (headers != null) { foreach (var header in headers) httpClient.DefaultRequestHeaders.Add(header.Key, header.Value); } result = await httpClient.GetAsync(serviceAddress).Result.Content.ReadAsStringAsync(); return result; Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs
@@ -17,5 +17,10 @@ /// æçå· /// </summary> public string PalletCode { get; set; } /// <summary> /// 空æçå¯å ¥å··å° /// </summary> public string PositionList { get; set; } } } Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -22,6 +22,7 @@ using Newtonsoft.Json; using SqlSugar; using System.Diagnostics.CodeAnalysis; using System.Threading.Tasks; using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseServices; @@ -133,45 +134,53 @@ { #region ç宿°æ® // TODO: è°ç¨æ¥å£è·åä¸ä¸ä¸ªå°å //// å建请æ±å¯¹è±¡ //RequestTaskDto request = new RequestTaskDto() //{ // Position = sourceAddress, // PalletCode = palletCode, //}; //// åé请æ±å¹¶çå¾ ååº //var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result; //// ååºååååºå 容 //content = JsonConvert.DeserializeObject<WebResponseContent>(result); //// æ£æ¥ç¶æå¹¶è¿å //if (!content.Status) // return content; //// ååºåå任塿°æ® //WMSTaskDTO task = JsonConvert.DeserializeObject<WMSTaskDTO>(content.Data.ToString()); //// å¤çä»»å¡å¹¶è¿åç»æ //content = ReceiveWMSTask(new List<WMSTaskDTO> { task }); #endregion WMSTaskDTO taskDTO = new WMSTaskDTO() // å建请æ±å¯¹è±¡ RequestTaskDto request = new RequestTaskDto() { TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), Grade = 1, Position = sourceAddress, PalletCode = palletCode, RoadWay = "CHSC01", SourceAddress = sourceAddress, TargetAddress = "CHSC01", TaskState = (int)TaskInStatusEnum.InNew, Id = 0, TaskType = (int)TaskInboundTypeEnum.Inbound }; content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); // åé请æ±å¹¶çå¾ ååº var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTaskAsync", request.ToJsonString()).Result; // ååºååååºå 容 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 }); } #endregion } catch (Exception ex) { @@ -419,35 +428,22 @@ if (task.TaskState == (int)TaskInStatusEnum.Line_InFinish) { //if (task.Roadway.Contains("CH")) //{ // Random random = new Random(); // task.CurrentAddress = task.NextAddress; // task.NextAddress = $"{random.Next(1, 1).ToString().PadLeft(3, '0')}-{random.Next(0, 0).ToString().PadLeft(3, '0')}-{random.Next(1, 1).ToString().PadLeft(3, '0')}"; // task.TargetAddress = task.NextAddress; //} //else //{ // Random random = new Random(); // task.CurrentAddress = task.NextAddress; // task.NextAddress = "002-020-001"; // task.TargetAddress = task.NextAddress; //} #region ç宿°æ® // TODO: è°ç¨æ¥å£è·åä¸ä¸ä¸ªå°å // TODO: è°ç¨æ¥å£è·åè´§ä½å°å // å建请æ±å¯¹è±¡ RequestTaskDto request = new RequestTaskDto() RequestTaskDto taskDto = new RequestTaskDto() { Position = task.NextAddress, PalletCode = task.PalletCode, }; // åé请æ±å¹¶çå¾ ååº var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result; var abc = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTaskAsync", taskDto.ToJsonString()).Result; if (abc == null) return content.Error(); // ååºååååºå 容 content = JsonConvert.DeserializeObject<WebResponseContent>(result); content = JsonConvert.DeserializeObject<WebResponseContent>(abc); // æ£æ¥ç¶æå¹¶è¿å if (!content.Status) @@ -478,6 +474,16 @@ BaseDal.UpdateData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, App.User.UserId > 0 ? $"人工æå¨å°ä»»å¡ç¶æä»ã{oldState}ã跳转å°ã{task.TaskState}ã" : $"ç³»ç»èªå¨æµç¨ï¼ä»»å¡ç¶æä»ã{oldState}ã转å°ã{task.TaskState}ã"); #region æ´æ°ä»»å¡ç¶æ object request = new { TaskNum = task.TaskNum, TaskState = task.TaskState }; var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result; content = JsonConvert.DeserializeObject<WebResponseContent>(result); #endregion content = WebResponseContent.Instance.OK(); } @@ -550,7 +556,7 @@ BaseDal.UpdateData(task); _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºåºåºå®æ"); //todo 忥å°WMS //æä¸èèå¤ä¸ªåºåºå£ } @@ -565,12 +571,6 @@ _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"å åæºå ¥åºå®æ"); #region WMS忥任å¡å®æ var x = new { taskNum = taskNum }; var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result; content = JsonConvert.DeserializeObject<WebResponseContent>(result); #endregion } else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup) { @@ -583,6 +583,22 @@ { throw new Exception($"ä»»å¡ç±»åé误,æªæ¾å°è¯¥ä»»å¡ç±»å,ä»»å¡å·:ã{taskNum}ã,ä»»å¡ç±»å:ã{task.TaskType}ã"); } #region WMS忥任å¡å®æ //var x = new { taskNum = taskNum }; var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync?taskNum={taskNum}").Result; content = JsonConvert.DeserializeObject<WebResponseContent>(result); #endregion #region æ´æ°ä»»å¡ç¶æ object request = new { TaskNum = task.TaskNum, TaskState = task.TaskState }; result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/UpdateTaskStatus", request.ToJsonString()).Result; content = JsonConvert.DeserializeObject<WebResponseContent>(result); #endregion //content = WebResponseContent.Instance.OK(); } catch (Exception ex) Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
@@ -175,139 +175,25 @@ /// <param name="ProtocalDetailValue">线ä½å½åbool读ååç§»å°å</param> public void RequestInbound(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int ProtocalDetailValue) { // è·åä¸ä¸ä¸ªä»»å¡ 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") try { HandleNewTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); // è·åä¸ä¸ä¸ªä»»å¡ 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); } } #region èçæ¬ //var taskNew = _taskService.QueryCraneConveyorLineTask(command.Barcode.ObjToInt(), childDeviceCode); //var Taskout = _taskService.QueryNextConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); //if (Taskout != null) //{ // // 空æçä»»å¡ // if (Taskout.TaskType == (int)TaskOutboundTypeEnum.OutTray) // { // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout); // taskCommand.InteractiveSignal = command.InteractiveSignal; // if (command.Barcode == "") // { // var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity; // taskCommand.TargetAddress = NGAddress; // } // conveyorLine.SendCommand(taskCommand, childDeviceCode); // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // _taskService.UpdateTaskStatusToNext(Taskout); // } // else if (Taskout.TaskType == (int)TaskOutboundTypeEnum.Outbound) // { // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(Taskout); // taskCommand.InteractiveSignal = command.InteractiveSignal; // if (Taskout.TaskState == (int)TaskOutStatusEnum.SC_OutFinish) // { // if (command.Barcode == "") // { // var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity; // taskCommand.TargetAddress = NGAddress; // } // conveyorLine.SendCommand(taskCommand, childDeviceCode); // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // _taskService.UpdateTaskStatusToNext(Taskout); // } // else if (Taskout.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting) // { // if (command.Barcode == "") // { // var NGAddress = _platFormRepository.QueryFirst(x => x.PlatCode == Taskout.TargetAddress).Capacity; // taskCommand.TargetAddress = NGAddress; // conveyorLine.SendCommand(taskCommand, childDeviceCode); // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // _taskService.UpdateTaskStatusToNext(Taskout); // } // else // { // // todo è°ç¨WMSä»»å¡å®ææ¥å£ // var x = new { taskNum = Taskout.TaskNum }; // var result = HttpHelper.GetAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", x.ToJsonString()).Result; // WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); // if (content.Status) // { // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // _taskService.UpdateTaskStatusToNext(Taskout); // } // } // } // } //} //if (taskNew == null) //{ // // åæ->éå空æçåæµ // if (conveyorLine.DeviceCode == "1003" && childDeviceCode == "1016") // { // //TODO è°ç¨WMSå建åæ->éå空æçåæµ // WMSTaskDTO taskDTO = new WMSTaskDTO() // { // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), // Grade = 1, // PalletCode = command.Barcode, // RoadWay = "CHSC01", // SourceAddress = childDeviceCode, // TargetAddress = "CHSC01", // TaskState = (int)TaskInStatusEnum.InNew, // Id = 0, // TaskType = (int)TaskInboundTypeEnum.InTray, // }; // WebResponseContent content = CreateAndSendTask(taskDTO); // if (content.Status) // { // Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); // if (task != null) // { // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task); // taskCommand.InteractiveSignal = command.InteractiveSignal; // conveyorLine.SendCommand(taskCommand, childDeviceCode); // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // _taskService.UpdateTaskStatusToNext(task); // } // } // } // else // { // if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status) // { // Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); // if (task != null) // { // ConveyorLineTaskCommand taskCommand = _mapper.Map<ConveyorLineTaskCommand>(task); // taskCommand.InteractiveSignal = command.InteractiveSignal; // conveyorLine.SendCommand(taskCommand, childDeviceCode); // ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); // _taskService.UpdateTaskStatusToNext(task); // } // } // } //} #endregion catch (Exception ex) { return; } } /// <summary> @@ -418,18 +304,6 @@ taskCommand.TargetAddress = 0; } #region åWMS䏿¥ä»»å¡å®æ WMSTaskDTO wMSTaskDTO = new WMSTaskDTO(); var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/CompleteTaskAsync", (new { taskNum = command.TaskNum }).ToJsonString()).Result; content = JsonConvert.DeserializeObject<WebResponseContent>(result); // æ£æ¥ç¶æå¹¶è¿å if (!content.Status) return; #endregion åWMS请æ±ç©ºæçä»»å¡ conveyorLine.SendCommand(taskCommand, childDeviceCode); ConveyorLineSendFinish(conveyorLine, childDeviceCode, ProtocalDetailValue, true); @@ -437,18 +311,6 @@ } } /// <summary> /// å建任å¡å¹¶åéè¯·æ± /// </summary> public WebResponseContent CreateAndSendTask(WMSTaskDTO taskDTO) { var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); if (content.Status) { Console.WriteLine($"{taskDTO.TaskType}å¼å«æå"); } return content; } /// <summary> /// éå空æçåºåº @@ -457,14 +319,21 @@ /// <param name="command">读åç请æ±ä¿¡æ¯</param> /// <param name="childDeviceCode">å设å¤ç¼å·</param> /// <param name="index">线ä½å½åbool读ååç§»å°å</param> public void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index, Platform platform) public async void EmptyTrayReturn(CommonConveyorLine conveyorLine, ConveyorLineTaskCommand command, string childDeviceCode, int index, Platform platform) { TaskOutboundTypeEnum taskOutboundTypeEnum; if (platform.PlatformType.Contains("OutTray")) taskOutboundTypeEnum = TaskOutboundTypeEnum.OutTray; else taskOutboundTypeEnum = TaskOutboundTypeEnum.Outbound; CheckAndCreateTask(TaskOutboundTypeEnum.OutTray, childDeviceCode, index, platform.Stacker.Split(',')[0], platform.Stacker.Split(',').ToList()); try { TaskOutboundTypeEnum taskOutboundTypeEnum; if (platform.PlatformType.Contains("OutTray")) taskOutboundTypeEnum = TaskOutboundTypeEnum.OutTray; else taskOutboundTypeEnum = TaskOutboundTypeEnum.Outbound; await CheckAndCreateTask(taskOutboundTypeEnum, childDeviceCode, index, platform.Stacker.Split(',')[0], platform.Stacker.Split(',').ToList()); } catch (Exception) { } } #region @@ -506,33 +375,21 @@ /// <summary> /// æ£æ¥ä»»å¡å¹¶å建æ°ä»»å¡ /// </summary> private void CheckAndCreateTask(TaskOutboundTypeEnum taskType, string childDeviceCode, int index, string roadWay, List<string> roadways = null) private async Task CheckAndCreateTask(TaskOutboundTypeEnum taskType, string childDeviceCode, int index, string roadWay, List<string> roadways = null) { var tasks = _taskRepository.QueryData(x => x.TaskType == (int)taskType && x.TargetAddress == childDeviceCode); if (tasks.Count < index) { //var taskDTO = new WMSTaskDTO() //{ // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), // Grade = 1, // PalletCode = DateTime.Now.ToString("yyyyMMddHHmmss"), // RoadWay = roadWay, // SourceAddress = sourceAddress, // TargetAddress = childDeviceCode, // TaskState = (int)TaskOutStatusEnum.OutNew, // Id = 0, // TaskType = (int)taskType //}; #region è°ç¨WMSè·ååºåºä»»å¡ WMSTaskDTO taskDTO = new WMSTaskDTO(); dynamic dynamic = new object dynamic = new { position = childDeviceCode, tag = (int)taskType, areaCdoe = roadWay, roadways = roadways }; var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", dynamic.ToJsonString()).Result; var result = await HttpHelper.PostAsync("http://localhost:5000/api/Task/RequestTrayOutTaskAsync", dynamic.ToJsonString()); WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); @@ -548,6 +405,18 @@ } /// <summary> /// åå»ºä»»å¡ /// </summary> public WebResponseContent CreateAndSendTask(WMSTaskDTO taskDTO) { var content = _taskService.ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO }); if (content.Status) { Console.WriteLine($"{taskDTO.TaskType}å¼å«æå"); } return content; } /// <summary> /// è¾é线交äºå®æ /// </summary> /// <param name="conveyorLine">è¾é线å®ä¾å¯¹è±¡</param> Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
@@ -62,7 +62,7 @@ // 请æ±WMS空æçä»»å¡ CreateAndSendEmptyTrayTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); } else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1088")||(conveyorLine.DeviceCode == "1004" && childDeviceCode == "1339")) else if ((conveyorLine.DeviceCode == "1001" && childDeviceCode == "1088") || (conveyorLine.DeviceCode == "1004" && childDeviceCode == "1339")) { // 请æ±WMSå ¥åºä»»å¡ RequestWmsTask(conveyorLine, command, childDeviceCode, ProtocalDetailValue); @@ -97,7 +97,7 @@ } // TODOè°ç¨WMSä»»å¡å®ææ¥å£ var result = HttpHelper.GetAsync("http://127.0.0.1:8098/api/Task/CompleteTaskAsync", new { taskNum = taskOut.TaskNum }.ToJsonString()).Result; var result = HttpHelper.GetAsync($"http://127.0.0.1:5000/api/Task/CompleteTaskAsync?taskNum={taskOut.TaskNum}").Result; WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); if (content.Status) { @@ -143,32 +143,18 @@ /// </summary> private WMSTaskDTO CreateEmptyTrayTaskDto(string barcode, string childDeviceCode) { // å建并è¿å空æçä»»å¡DTO //return new WMSTaskDTO //{ // TaskNum = Convert.ToInt32(DateTime.Now.ToString("HHmmss")), // Grade = 1, // PalletCode = barcode, // RoadWay = "JZSC01", // SourceAddress = childDeviceCode, // TargetAddress = "JZSC01", // TaskState = (int)TaskInStatusEnum.InNew, // Id = 0, // TaskType = (int)TaskInboundTypeEnum.InTray, //}; #region åWMS请æ±ç©ºæçä»»å¡ WMSTaskDTO wMSTaskDTO = new WMSTaskDTO(); RequestTaskDto request = new RequestTaskDto() { Position = childDeviceCode, PalletCode = barcode, }; var result = HttpHelper.PostAsync("http:127.0.0.1:8098/api/Task/RequestTaskAsync", request.ToJsonString()).Result; var result = HttpHelper.PostAsync("http://127.0.0.1:5000/api/Task/RequestTrayInTaskAsync", request.ToJsonString()).Result; if (result == null) return wMSTaskDTO; WebResponseContent content = JsonConvert.DeserializeObject<WebResponseContent>(result); // æ£æ¥ç¶æå¹¶è¿å if (!content.Status) return wMSTaskDTO; @@ -187,7 +173,7 @@ if (_taskService.RequestWMSTask(command.Barcode, childDeviceCode).Status) { // æ¥è¯¢ä»»å¡ Dt_Task task = _taskService.QueryConveyorLineTask(conveyorLine.DeviceCode, childDeviceCode); Dt_Task task = _taskService.QueryBarCodeConveyorLineTask(command.Barcode, childDeviceCode); if (task != null) { // æ å°ä»»å¡å½ä»¤ Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
@@ -441,22 +441,24 @@ AlertDescription = commonStackerCrane.StackerCraneStatusDes, AlertReset = "0" }; await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", requestAlert.ToJsonString()); var S= await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptAlive", requestAlert.ToJsonString()); WriteInfo("EqptAlive", S); } RequestEqptStatusDto requestEqptStatus = new RequestEqptStatusDto() { EmployeeNo = "T00001", EquipmentCode = commonStackerCrane.DeviceCode, EquipmentCode = "ECH001-B", RequestTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), SessionId = Guid.NewGuid().ToString(), Software = commonStackerCrane.DeviceName, ChangeTime = DateTime.Now.ToString(), ChangeTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffZ"), Description = commonStackerCrane.StackerCraneStatusDes, LocationID = "NA", ReasonCode = "123", StatusCode = code }; var respone = await HttpHelper.PostAsync("http://ts-momapp01:12020/api/MachineIntegration/EqptStatus", requestEqptStatus.ToJsonString()); WriteInfo("EqptStatus", respone); } } } Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs
@@ -11,4 +11,17 @@ /// æçå· /// </summary> public string PalletCode { get; set; } /// <summary> /// 空æçå¯å ¥å··å° /// </summary> public string PositionList { get; set; } } public class RequestOutTaskDto { public string Position { get; set; } public int Tag { get; set; } public string AreaCdoe { get; set; } public List<string> Roadways { get; set; } } Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace WIDESEA_DTO { public class UpdateStatusDto { /// <summary> /// ä»»å¡å· /// </summary> public int TaskNum { get; set; } /// <summary> /// ä»»å¡ç¶æ /// </summary> public int TaskState { get; set; } } } Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs
@@ -11,6 +11,7 @@ /// çµè¯å表 /// </summary> public List<SerialNoDto> SerialNos { get; set; } = new List<SerialNoDto>(); public string BindCode { get; set; } public string TrayStatus { get; set; } /// <summary> Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
@@ -134,6 +134,13 @@ Task<WebResponseContent> RequestTaskAsync(RequestTaskDto input); /// <summary> /// 请æ±ç©ºæçä»»å¡ /// </summary> /// <param name="input"></param> /// <returns></returns> Task<WebResponseContent> RequestTrayInTaskAsync(RequestTaskDto input); /// <summary> /// è¯·æ±æçä»»å¡ /// </summary> /// <param name="position">ç®æ ä½ç½®</param> @@ -141,5 +148,13 @@ /// <param name="areaCode">åºåç¼ç </param> /// <param name="roadways">å··éå表</param> /// <returns>è¿åç»æé</returns> Task<WebResponseContent> RequestTrayTaskAsync(string position, int tag, string areaCode, List<string> roadways); Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> roadways); /// <summary> /// ä»»å¡ç¶æä¿®æ¹ /// </summary> /// <param name="input">è¯·æ±æ°æ®</param> /// <returns></returns> Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState); } Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
@@ -190,7 +190,7 @@ { var process = await SqlSugarHelper.Db.Queryable<Dt_EquipmentProcess>() .FirstAsync(x => x.EquipmentName == task.Roadway); var info = JsonConvert.DeserializeObject<EquipmentParameterInfo>(process.ProcessValue); var info = JsonConvert.DeserializeObject<List<EquipmentParameterInfo>>(process.ProcessValue); var agingOutputDto = MapToAgingOutputDto(stock, info); content = await _agingInOrOutInputService.GetOCVOutputAsync(agingOutputDto); @@ -218,7 +218,7 @@ } } private AgingOutputDto MapToAgingOutputDto(DtStockInfo stock, EquipmentParameterInfo info) private AgingOutputDto MapToAgingOutputDto(DtStockInfo stock, List<EquipmentParameterInfo> info) { return new AgingOutputDto { @@ -230,20 +230,17 @@ SlotNo = x.OrderNo.ToInt32(), SerialNo = x.SerialNumber, SerialNoResult = true, ParameterInfo = new List<ParameterInfo> { new ParameterInfo ParameterInfo = info.Select(x => new ParameterInfo() { LowerLomit = info.LowerControlLimit, UpperLimit = info.UpperControlLimit, ParameterResult = info.EquipmentAvailabilityFlag, ParameterCode = info.ParameterCode, ParameterDesc = info.Description, TargetValue = info.TargetValue, Value = info.TargetValue, DefectCode = info.UOMCode } } LowerLomit = x.LowerControlLimit, UpperLimit = x.UpperControlLimit, ParameterResult = x.EquipmentAvailabilityFlag, ParameterCode = x.ParameterCode, ParameterDesc = x.Description, TargetValue = x.TargetValue, Value = (DateTime.Now - stock.CreateDate).TotalMinutes.ToString(), DefectCode = x.UOMCode }).ToList() }).ToList() }; } @@ -346,91 +343,6 @@ #region å ¥åºä»»å¡å®æ /// <summary> /// å ¥åºä»»å¡å®æ /// </summary> /// <param name="task">任塿°æ®åé</param> /// <returns>è¿åç»æé</returns> //public async Task<WebResponseContent> CompleteInboundTaskAsync(Dt_Task task) //{ // WebResponseContent content = new WebResponseContent(); // try // { // var boxing = await _boxingInfoRepository.QueryFirstNavAsync(x => x.PalletCode == task.PalletCode); // var locationInf = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress); // locationInf.LocationStatus = (int)LocationEnum.InStock; // // å建åå²ä»»å¡å®ä¾æ¨¡å // var taskHty = CreateHistoricalTask(task); // // å建åºåå®ä¾æ¨¡å // DtStockInfo stock; // if (boxing == null) // { // // 空æç // stock = new DtStockInfo() // { // PalletCode = task.PalletCode, // LocationCode = task.TargetAddress, // CreateDate = DateTime.Now, // Creater = "system", // IsFull = boxing.IsFull, // StockInfoDetails = new List<DtStockInfoDetail>() // { // new DtStockInfoDetail() // { // MaterielCode = "空æç", // Id = 0, // } // } // }; // } // else // { // // å®ç // var boxDetail = boxing.BoxingInfoDetails.Adapt<List<DtStockInfoDetail>>(); // // å建åºåå®ä¾æ¨¡å // stock = new DtStockInfo() // { // PalletCode = task.PalletCode, // LocationCode = task.TargetAddress, // CreateDate = DateTime.Now, // Creater = "system", // IsFull = boxing.IsFull, // StockInfoDetails = boxDetail, // }; // AgingInputDto agingInputDto = new AgingInputDto() // { // SerialNos = boxing.BoxingInfoDetails // .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo }) // .ToList(), // TrayBarcode = task.PalletCode, // OpFlag = 1 // }; // var result = await _agingInOrOutInputService.GetOCVInputAsync(agingInputDto); // stock.Remark = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()).LinedProcessFeedbackTime; // LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "å ¥åºä»»å¡å®æ", $"è´§ä½å°åï¼{task.TargetAddress},ä¿®æ¹åè´§ä½æ°æ®ï¼{locationInf}"); // } // // æ§è¡æ°æ®åºäºå¡ // bool isResult = await ExecuteTransaction(stock, taskHty, locationInf, task.TaskId); // if (isResult) // content.OK("å ¥åºä»»å¡å®ææå"); // else // content.Error("å ¥åºä»»å¡å®æå¤±è´¥"); // } // catch (Exception err) // { // Console.WriteLine(err.Message.ToString()); // } // return content; //} /// <summary> /// å®æå ¥åºä»»å¡ /// </summary> /// <param name="task">任塿°æ®åé</param> @@ -522,10 +434,13 @@ .Select(item => new SerialNoInDto { SerialNo = item.SerialNumber, PositionNo = item.OrderNo }) .ToList(), TrayBarcode = task.PalletCode, OpFlag = 1 OpFlag = 1, EquipmentCode = "ECH001-B", Software = "WMS" }; var result = _agingInOrOutInputService.GetOCVInputAsync(agingInputDto).Result; stock.Remark = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()).LinedProcessFeedbackTime; var respone = JsonConvert.DeserializeObject<ResponeAgingInputDto>(result.Data.ToString()); stock.Remark = respone.LinedProcessFeedbackTime; // è®°å½æ¥å¿ LogFactory.GetLog("ä»»å¡å®æ").InfoFormat(true, "å ¥åºä»»å¡å®æ", $"è´§ä½å°åï¼{task.TargetAddress},ä¿®æ¹åè´§ä½æ°æ®ï¼{locationInf}"); @@ -595,12 +510,28 @@ try { // è°ç¨BaseDal.QueryFirstAsyncæ¹æ³ï¼æ¥è¯¢ä»»å¡ var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode); if (task != null) { content = await UpdateExistingTask(input, task); if (task.TaskState == (int)TaskInStatusEnum.InNew) { // å建WMSä»»å¡ WMSTaskDTO taskDTO = new WMSTaskDTO() { TaskNum = task.TaskNum.Value, Grade = 1, PalletCode = task.PalletCode, RoadWay = task.Roadway, SourceAddress = task.SourceAddress, TargetAddress = task.Roadway, TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, }; return content.OK(data: taskDTO); } content = await UpdateExistingTask(input, task); return content; } // å建ä¸ä¸ªTrayCellsStatusDto对象ï¼å¹¶èµå¼ @@ -608,7 +539,7 @@ { Software = "WMS", TrayBarcode = input.PalletCode, EquipmentCode = "ECH001-B" EquipmentCode = "ECH001-B" }; // è°ç¨GetTrayCellStatusAsyncæ¹æ³ï¼è·åæ´ççµè¯ @@ -619,6 +550,8 @@ // æ·»å ç»çä¿¡æ¯ // å°content.Data转æ¢ä¸ºResultTrayCellsStatus对象 var result = JsonConvert.DeserializeObject<ResultTrayCellsStatus>(content.Data.ToString()); if (result.SerialNos.Count <= 0) return content.Error(result.MOMMessage); var boxing = await CreateBoxingInfo(result, input.PalletCode); // è°ç¨GetProcessApplyAsyncæ¹æ³ï¼è·åå·¥èºè·¯çº¿ @@ -631,7 +564,7 @@ var processResponse = await GetProcessResponseAsync(process, input.Position); // 妿taskä¸ä¸ºnullï¼åè°ç¨UpdateExistingTaskæ¹æ³ï¼æ´æ°ä»»å¡ï¼å¦åè°ç¨CreateNewTaskæ¹æ³ï¼å建æ°ä»»å¡ content = task != null ? await UpdateExistingTask(input, task) : await CreateNewTask(processResponse, input); content = task != null ? await UpdateExistingTask(input, task) : await CreateNewTask(input, processResponse); if (content.Status) { var isBox = await _boxingInfoRepository.AddDataNavAsync(boxing); @@ -646,6 +579,41 @@ // è¿åcontent return content; } public async Task<WebResponseContent> RequestTrayInTaskAsync(RequestTaskDto input) { WebResponseContent content = new WebResponseContent(); try { // è°ç¨BaseDal.QueryFirstAsyncæ¹æ³ï¼æ¥è¯¢ä»»å¡ var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == input.PalletCode); if (task != null && task.TaskState == (int)TaskInStatusEnum.InNew) { // å建WMSä»»å¡ WMSTaskDTO taskDTO = new WMSTaskDTO() { TaskNum = task.TaskNum.Value, Grade = 1, PalletCode = task.PalletCode, RoadWay = task.Roadway, SourceAddress = task.SourceAddress, TargetAddress = task.Roadway, TaskState = task.TaskState.Value, Id = 0, TaskType = task.TaskType, }; return content.OK(data: task); } return await CreateNewTask(input, null, 1); } catch (Exception) { throw; } } // è·åæçåå æ ¼ç¶æ @@ -679,8 +647,8 @@ // å建ä¸ä¸ªProcessApplyDto对象ï¼å¹¶èµå¼ return new ProcessApplyDto() { EquipmentCode = "ECH001-B", Software = "WMS", EquipmentCode = "ECH001-B", Software = "WMS", //WipOrderNo = result.BindCode, SerialNos = content.SerialNos.Select(item => new SerialNos { @@ -723,104 +691,7 @@ #endregion 请æ±ä»»å¡å ¥åº #region 请æ±åºåº //public async Task<WebResponseContent> RequestTrayTaskAsync(string position, int tag, string areaCdoe,List<string> roadways) //{ // WebResponseContent content = new WebResponseContent(); // try // { // // 1==å®ç 2 ==空ç // if (tag == 1) // { // // æ¥è¯¢åºåä¿¡æ¯ // DtStockInfo? stockInfo = _stockInfoRepository.QueryData(x => x.AreaCode == areaCdoe && Convert.ToDateTime(x.Remark) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo)).OrderBy(x => x.CreateDate).FirstOrDefault(); // // å建æ°ä»»å¡å®ä¾ // var task = new Dt_Task() // { // Grade = 1, // Roadway = stockInfo.LocationInfo.RoadwayNo, // TargetAddress = position, // Dispatchertime = DateTime.Now, // MaterialNo = "", // NextAddress = position, // OrderNo = null, // PalletCode = stockInfo.PalletCode, // SourceAddress = stockInfo.LocationCode, // TaskState = (int)TaskOutStatusEnum.OutNew, // TaskType = (int)TaskOutboundTypeEnum.Outbound, // TaskNum = await BaseDal.GetTaskNo(), // Creater = "Systeam" // }; // var taskId = await BaseDal.AddDataAsync(task); // bool isResult = taskId > 0; // if (isResult) // { // WMSTaskDTO taskDTO = new WMSTaskDTO() // { // TaskNum = task.TaskNum.Value, // Grade = 1, // PalletCode = DateTime.Now.ToString("MMddHHmmss"), // RoadWay = task.Roadway, // SourceAddress = stockInfo.LocationCode, // TargetAddress = task.Roadway, // TaskState = (int)TaskOutStatusEnum.OutNew, // Id = 0, // TaskType = (int)TaskOutboundTypeEnum.OutTray // }; // stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; // _locationRepository.UpdateData(stockInfo.LocationInfo); // content.OK(data: taskDTO); // } // } // else // { // var stockInfo = _stockInfoRepository.QueryData(x => x.AreaCode == areaCdoe && x.StockInfoDetails.Any(z => z.MaterielCode == "空æç") && roadways.Contains(x.LocationInfo.RoadwayNo)).OrderBy(x => x.CreateDate).FirstOrDefault(); // // å建æ°ä»»å¡å®ä¾ // var task = new Dt_Task // { // CurrentAddress = stockInfo.LocationCode, // Grade = 1, // Roadway = stockInfo.LocationInfo.RoadwayNo, // TargetAddress = position, // Dispatchertime = DateTime.Now, // MaterialNo = "", // NextAddress = position, // OrderNo = null, // PalletCode = stockInfo.PalletCode, // SourceAddress = stockInfo.LocationCode, // TaskState = (int)TaskOutStatusEnum.OutNew, // TaskType = (int)TaskOutboundTypeEnum.OutTray, // TaskNum = await BaseDal.GetTaskNo(), // Creater = "Systeam" // }; // var taskId = await BaseDal.AddDataAsync(task); // bool isResult = taskId > 0; // if (isResult) // { // WMSTaskDTO taskDTO = new WMSTaskDTO() // { // TaskNum = task.TaskNum.Value, // Grade = 1, // PalletCode = DateTime.Now.ToString("MMddHHmmss"), // RoadWay = task.Roadway, // SourceAddress = stockInfo.LocationCode, // TargetAddress = task.Roadway, // TaskState = (int)TaskOutStatusEnum.OutNew, // Id = 0, // TaskType = (int)TaskOutboundTypeEnum.OutTray // }; // content.OK(data: taskDTO); // } // } // } // catch (Exception ex) // { // throw; // } // return content; //} #region 请æ±åºåºï¼å®ç&空çï¼ /// <summary> /// è¯·æ±æçä»»å¡ @@ -830,13 +701,13 @@ /// <param name="areaCode">åºåç¼ç </param> /// <param name="roadways">å··éç¼ç éå</param> /// <returns>è¿åç»æé</returns> public async Task<WebResponseContent> RequestTrayTaskAsync(string position, int tag, string areaCode, List<string> roadways) public async Task<WebResponseContent> RequestTrayOutTaskAsync(string position, int tag, string areaCode, List<string> roadways) { WebResponseContent content = new WebResponseContent(); try { // æ ¹æ®æçç±»åæ¥è¯¢åºåä¿¡æ¯ DtStockInfo stockInfo = tag == 1 DtStockInfo stockInfo = tag == (int)TaskOutboundTypeEnum.Outbound ? QueryStockInfoForRealTray(areaCode, roadways) : QueryStockInfoForEmptyTray(areaCode, roadways); @@ -856,7 +727,7 @@ // å建任å¡DTO WMSTaskDTO taskDTO = CreateTaskDTO(task); if (tag == 1) //if (tag == 1) { // æ´æ°åºåä½ç½®ç¶æä¸ºä¸å¯ç¨ stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; @@ -870,7 +741,7 @@ { // è®°å½å¼å¸¸ä¿¡æ¯å¹¶æåº LogFactory.GetLog("è¯·æ±æçä»»å¡").Error(true, ex); throw; return content.Error(ex.Message); } } @@ -879,9 +750,11 @@ /// </summary> private DtStockInfo QueryStockInfoForRealTray(string areaCode, List<string> roadways) { return _stockInfoRepository.QueryData(x => x.AreaCode == areaCode && Convert.ToDateTime(x.Remark) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && roadways.Contains(x.LocationInfo.RoadwayNo)) return _stockInfoRepository.Db.Queryable<DtStockInfo>().Where(x => x.AreaCode == areaCode && Convert.ToDateTime(x.Remark) < 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) .FirstOrDefault(); .First(); } /// <summary> @@ -889,9 +762,11 @@ /// </summary> private DtStockInfo QueryStockInfoForEmptyTray(string areaCode, List<string> roadways) { return _stockInfoRepository.QueryData(x => x.AreaCode == areaCode && x.StockInfoDetails.Any(z => z.MaterielCode == "空æç") && roadways.Contains(x.LocationInfo.RoadwayNo)) 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) .FirstOrDefault(); .First(); } /// <summary> @@ -910,8 +785,9 @@ OrderNo = null, PalletCode = stockInfo.PalletCode, SourceAddress = stockInfo.LocationCode, CurrentAddress = stockInfo.LocationCode, TaskState = (int)TaskOutStatusEnum.OutNew, TaskType = tag == 1 ? (int)TaskOutboundTypeEnum.Outbound : (int)TaskOutboundTypeEnum.OutTray, TaskType = tag == (int)TaskOutboundTypeEnum.Outbound ? (int)TaskOutboundTypeEnum.Outbound : (int)TaskOutboundTypeEnum.OutTray, TaskNum = BaseDal.GetTaskNo().Result, Creater = "System" // ä¿®æ£æ¼åé误 }; @@ -938,64 +814,31 @@ #endregion 请æ±åºåº #region éå请æ±åºåº #region ä»»å¡ç¶ææ´æ¹ // éå请æ±åºåº public async Task<WebResponseContent> OutTrayByCh(string position) public async Task<WebResponseContent> UpdateTaskStatus(int taskNum, int taskState) { WebResponseContent content = new WebResponseContent(); try { var area = _areaInfoRepository.QueryFirst(x => x.AreaName == "éååº"); // æ¥è¯¢åºåä¿¡æ¯ var stockInfo = _stockInfoRepository.QueryData(x => x.AreaCode == area.AreaCode && Convert.ToDateTime(x.Remark) < DateTime.Now && x.LocationInfo.LocationStatus == (int)LocationEnum.InStock).OrderBy(x => x.CreateDate).FirstOrDefault(); // å建æ°ä»»å¡å®ä¾ var task = new Dt_Task() { Grade = 1, Roadway = stockInfo.LocationInfo.RoadwayNo, TargetAddress = position, Dispatchertime = DateTime.Now, MaterialNo = "", NextAddress = position, OrderNo = null, PalletCode = stockInfo.PalletCode, SourceAddress = stockInfo.LocationCode, TaskState = (int)TaskOutStatusEnum.OutNew, TaskType = (int)TaskOutboundTypeEnum.OutTray, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" }; var taskId = await BaseDal.AddDataAsync(task); bool isResult = taskId > 0; if (isResult) { WMSTaskDTO taskDTO = new WMSTaskDTO() { TaskNum = task.TaskNum.Value, Grade = 1, PalletCode = DateTime.Now.ToString("MMddHHmmss"), RoadWay = task.Roadway, SourceAddress = stockInfo.LocationCode, TargetAddress = task.Roadway, TaskState = (int)TaskOutStatusEnum.OutNew, Id = 0, TaskType = (int)TaskOutboundTypeEnum.OutTray }; stockInfo.LocationInfo.LocationStatus = (int)LocationEnum.InStockDisable; _locationRepository.UpdateData(stockInfo.LocationInfo); content.OK(data: taskDTO); } var task = await BaseDal.QueryFirstAsync(x => x.TaskNum == taskNum); if (task == null) return content.Error("æªæ¾å°ä»»å¡"); task.TaskState = taskState; var asb = await BaseDal.UpdateDataAsync(task); if (asb) content.OK(); else content.Error(); } catch (Exception ex) { throw; content.Error(ex.Message); } return content; } #endregion éå请æ±åºåº #endregion #endregion å¤é¨æ¥å£æ¹æ³ @@ -1361,10 +1204,18 @@ /// <param name="areaId">åºåID</param> /// <param name="content">ååºå 容</param> /// <returns></returns> private async Task<WebResponseContent> CreateNewTask(List<Dt_EquipmentProcess> process, RequestTaskDto input) private async Task<WebResponseContent> CreateNewTask(RequestTaskDto input, List<Dt_EquipmentProcess> process = null, int flag = 0) { WebResponseContent content = new WebResponseContent(); List<string> strings = process.Select(x => x.EquipmentName).ToList(); List<string> strings = new List<string>(); if (process != null) { strings = process.Select(x => x.EquipmentName).ToList(); } else { strings = input.Position.Split(',').ToList(); } // è·åç®æ å°å string ToAddress = await GetRoadWayAsync(strings); @@ -1382,7 +1233,7 @@ PalletCode = input.PalletCode, SourceAddress = input.Position, TaskState = (int)TaskInStatusEnum.InNew, TaskType = (int)TaskTypeEnum.Inbound, TaskType = flag == 0 ? (int)TaskInboundTypeEnum.Inbound : (int)TaskInboundTypeEnum.InTray, TaskNum = await BaseDal.GetTaskNo(), Creater = "Systeam" }; @@ -1460,6 +1311,22 @@ { var minGroup = _locationRepository.QueryData(x => process.Contains(x.RoadwayNo) && x.LocationStatus == (int)LocationEnum.Free) .GroupBy(x => x.RoadwayNo) .OrderByDescending(g => g.Count()) // æ ¹æ®æ¯ä¸ªç»çå ç´ æ°éæåº .First(); // ååºæ°éæå¤çç» string minRoadwayNo = minGroup.Key; // æ°éæå¤çç»çKey return minRoadwayNo; } /// <summary> /// è·åå··éæç«å° /// </summary> /// <returns></returns> public async Task<string> GetRoadWayAsync(int areaCode) { var minGroup = _locationRepository.QueryData(x => x.AreaId == areaCode && x.LocationStatus == (int)LocationEnum.Free) .GroupBy(x => x.RoadwayNo) .OrderBy(g => g.Count()) // æ ¹æ®æ¯ä¸ªç»çå ç´ æ°éæåº .First(); // ååºæ°éæå°çç» Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
@@ -1,4 +1,5 @@ using WIDESEA_DTO; using static WIDESEA_DTO.RequestTaskDto; namespace WIDESEA_WMSServer.Controllers; @@ -56,13 +57,35 @@ } /// <summary> /// 空æçè¯·æ± /// 空æçå ¥åºè¯·æ± /// </summary> /// <param name="input">è¯·æ±æ°æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestTrayTaskAsync")] public async Task<WebResponseContent> RequestTrayTaskAsync([FromBody] string position, int tag, string areaCdoe, List<string> roadways) [HttpPost, AllowAnonymous, Route("RequestTrayInTaskAsync")] public async Task<WebResponseContent> RequestTrayInTaskAsync([FromBody] RequestTaskDto input) { return await Service.RequestTrayTaskAsync(position, tag, areaCdoe, roadways); return await Service.RequestTrayInTaskAsync(input); } /// <summary> /// 空æç&满çåºåºè¯·æ± /// </summary> /// <param name="input">è¯·æ±æ°æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("RequestTrayOutTaskAsync")] public async Task<WebResponseContent> RequestTrayOutTaskAsync([FromBody] RequestOutTaskDto request) { return await Service.RequestTrayOutTaskAsync(request.Position, request.Tag, request.AreaCdoe, request.Roadways); } /// <summary> /// ä»»å¡ç¶æä¿®æ¹ /// </summary> /// <param name="input">è¯·æ±æ°æ®</param> /// <returns></returns> [HttpPost, AllowAnonymous, Route("UpdateTaskStatus")] public async Task<WebResponseContent> UpdateTaskStatus([FromBody] UpdateStatusDto input) { return await Service.UpdateTaskStatus(input.TaskNum, input.TaskState); } }