From 824853fe17b79ed253cd52db58459806bf0371ee Mon Sep 17 00:00:00 2001
From: xiaoyang <xiaoyang@hnkhzn.com>
Date: 星期五, 08 十一月 2024 17:27:50 +0800
Subject: [PATCH] 11.08
---
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs | 223 +++-----------
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs | 395 ++++++++-----------------
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs | 5
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs | 17 +
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs | 31 +
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 138 +++++----
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs | 13
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs | 21 +
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs | 8
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs | 1
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs | 26 -
Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs | 7
12 files changed, 353 insertions(+), 532 deletions(-)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
index 7e1206a..91d5f89 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Core/Helper/HttpHelper.cs
+++ b/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;
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs
index 80735df..320f70e 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_DTO/WMS/RequestTaskDto.cs
+++ b/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; }
}
}
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 70f9860..71e16ac 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/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 鍚屾鍒癢MS
+
//鏆備笉鑰冭檻澶氫釜鍑哄簱鍙�
}
@@ -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)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
index cb46e26..16dccc6 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/CommonConveyorLineJob.cs
+++ b/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 鍚慦MS涓婃姤浠诲姟瀹屾垚
-
- 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 鍚慦MS璇锋眰绌烘墭鐩樹换鍔�
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>
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
index 6f9ab39..a6424b2 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob/Task/RequestInbound.cs
+++ b/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 鍚慦MS璇锋眰绌烘墭鐩樹换鍔�
-
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)
{
// 鏄犲皠浠诲姟鍛戒护
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
index 99582b3..fea5ff2 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs
+++ b/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);
}
}
}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs
index 525996e..8ca8d59 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/RequestTaskDto.cs
+++ b/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; }
}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs
new file mode 100644
index 0000000..2b109c5
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/Basic/UpdateStatusDto.cs
@@ -0,0 +1,21 @@
+锘縰sing 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; }
+ }
+}
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs
index 0f1ba4f..b83fc36 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MOM/ResultTrayCellsStatus.cs
+++ b/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>
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
index 8cc81fc..7b13658 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
+++ b/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);
}
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
index db6dbf3..5901b8a 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Dt_TaskService.cs
+++ b/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;
}
// 鍒涘缓涓�涓猅rayCellsStatusDto瀵硅薄锛屽苟璧嬪��
@@ -608,7 +539,7 @@
{
Software = "WMS",
TrayBarcode = input.PalletCode,
- EquipmentCode = "ECH001-B"
+ EquipmentCode = "ECH001-B"
};
// 璋冪敤GetTrayCellStatusAsync鏂规硶锛岃幏鍙栨暣鐩樼數鑺�
@@ -619,6 +550,8 @@
// 娣诲姞缁勭洏淇℃伅
// 灏哻ontent.Data杞崲涓篟esultTrayCellsStatus瀵硅薄
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 @@
// 鍒涘缓涓�涓狿rocessApplyDto瀵硅薄锛屽苟璧嬪��
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(); // 鍙栧嚭鏁伴噺鏈�灏戠殑缁�
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
index 7583011..58cf6b7 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
@@ -1,4 +1,5 @@
锘縰sing 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);
}
}
\ No newline at end of file
--
Gitblit v1.9.3