From c6e53b0983e6864d3d28d01894a2053305c2e3fb Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期四, 15 一月 2026 17:27:11 +0800
Subject: [PATCH] 1
---
WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs | 155 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 155 insertions(+), 0 deletions(-)
diff --git a/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index 4e6445b..ff6d505 100644
--- a/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -26,6 +26,7 @@
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
+using System.Net.Sockets;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
@@ -258,6 +259,63 @@
}
/// <summary>
+ /// 鎺ユ敹鎴愬搧锛岃緟鏂欙紝鑽按WMS浠诲姟淇℃伅
+ /// </summary>
+ /// <param name="taskDTOs">WMS浠诲姟瀵硅薄闆嗗悎</param>
+ /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+ public WebResponseContent ReceiveWMSCPTask([NotNull] List<WMSTaskDTO> taskDTOs)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ bool flag = false;
+ List<Dt_Task> tasks = new List<Dt_Task>();
+ List<Dt_Task> tasksOld = BaseDal.QueryData();
+ List<Dt_Router> routersAll = _routerRepository.QueryData();
+ List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData();
+ foreach (var item in taskDTOs)
+ {
+ if (tasksOld.FirstOrDefault(x => x.TaskNum == item.TaskNum || x.PalletCode == item.PalletCode) != null)
+ {
+ flag = true;
+ continue;
+ }
+ Dt_Task task = _mapper.Map<Dt_Task>(item);
+ task.Creater = "WMS";
+ task.TaskState = (int)TaskStatusEnum.New;
+
+ Dt_Router? router;
+
+ TaskTypeGroup taskTypeGroup = item.TaskType.GetTaskTypeGroup();
+ Dt_StationManger? stationManger;
+ if (taskTypeGroup == TaskTypeGroup.InboundGroup)
+ {
+ stationManger = stationMangers.FirstOrDefault(x => x.StationCode == item.NextAddress || x.StationDeviceCode == item.SourceAddress);
+ task.DeviceCode = stationManger.StationDeviceCode;
+ }
+ else
+ {
+ stationManger = stationMangers.FirstOrDefault(x => x.StationCode == item.NextAddress || x.StationDeviceCode == item.NextAddress);
+ task.TaskState = TaskStatusEnum.SC_Execute.ObjToInt();
+ task.DeviceCode = task.Roadway;
+ //鍑哄簱
+ }
+ tasks.Add(task);
+ }
+ BaseDal.AddData(tasks);
+
+ _taskExecuteDetailService.AddTaskExecuteDetail(tasks.Select(x => x.TaskNum).ToList(), "鎺ユ敹WMS浠诲姟");
+
+ content = (flag || tasks.Count > 0) ? WebResponseContent.Instance.OK("鎴愬姛") : WebResponseContent.Instance.Error("澶辫触");
+ }
+ catch (Exception ex)
+ {
+ content = WebResponseContent.Instance.Error($"浠诲姟鎺ユ敹閿欒,閿欒淇℃伅:{ex.Message}");
+ }
+ return content;
+ }
+
+ /// <summary>
/// 鏍规嵁鎵樼洏鍙枫�佽捣濮嬪湴鍧�鍚慦MS璇锋眰浠诲姟
/// </summary>
/// <param name="palletCode">鎵樼洏鍙�</param>
@@ -383,6 +441,103 @@
return content;
}
+
+ public WebResponseContent CPRequestWMSTaskSimple(string palletCode, string sourceAddress, int heightType, string courceAddress)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ string address = AppSettings.Get("WMSApiAddress");
+ if (string.IsNullOrEmpty(address))
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
+ }
+ string responseStr = HttpHelper.Get($"{address}/api/Task/CPDeviceRequestInboundTaskSimple?stationCode={sourceAddress}&palletCode={palletCode}&heightType={heightType}&courceAddress={courceAddress}");
+ WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
+ if (responseContent != null && responseContent.Status && responseContent.Data != null)
+ {
+ WMSTaskDTO? taskDTO = JsonConvert.DeserializeObject<WMSTaskDTO>(responseContent.Data.ToString());
+ if (taskDTO != null)
+ {
+ content = ReceiveWMSTask(new List<WMSTaskDTO> { taskDTO });
+ }
+ }
+
+ }
+ catch (Exception ex)
+ {
+ content = WebResponseContent.Instance.Error(ex.Message);
+ }
+ return content;
+ }
+
+ public WebResponseContent ApplyLocation(string palletCode)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ string address = AppSettings.Get("WMSApiAddress");
+ if (string.IsNullOrEmpty(address))
+ {
+ return WebResponseContent.Instance.Error($"鏈壘鍒癢MSApi鍦板潃");
+ }
+ string responseStr = HttpHelper.Get($"{address}/api/Task/ApplyLocation?palletCode={palletCode}");
+ WebResponseContent? responseContent = JsonConvert.DeserializeObject<WebResponseContent>(responseStr);
+ if (responseContent != null && responseContent.Status && responseContent.Data != null)
+ {
+ return responseContent;
+ }
+
+ }
+ catch (Exception ex)
+ {
+ content = WebResponseContent.Instance.Error(ex.Message);
+ }
+ return content;
+ }
+
+
+ public WebResponseContent LedShowTask(string stationCode, string palletCode, int taskType)
+ {
+ WebResponseContent content = new WebResponseContent();
+ try
+ {
+ string ledApiAddress = AppSettings.Get("LEDApiAddress");
+ if (string.IsNullOrEmpty(ledApiAddress))
+ {
+ return WebResponseContent.Instance.Error("鏈壘鍒癓ED鏈嶅姟鍦板潃");
+ }
+ string ipAddress = ledApiAddress;
+ int port = 8888; // 榛樿绔彛
+ string sendData = $"{stationCode}|{palletCode}|{taskType}";
+
+ using (TcpClient tcpClient = new TcpClient())
+ {
+ tcpClient.ReceiveTimeout = 5000;
+ tcpClient.SendTimeout = 5000;
+
+ tcpClient.Connect(ipAddress, port);
+
+ NetworkStream stream = tcpClient.GetStream();
+ byte[] data = Encoding.UTF8.GetBytes(sendData);
+ stream.Write(data, 0, data.Length);
+ stream.Flush();
+
+ Console.WriteLine($"鉁� TCP鏁版嵁鍙戦�佹垚鍔燂細{sendData}");
+ }
+
+ }
+ catch (SocketException socketEx)
+ {
+
+ }
+ catch (Exception ex)
+ {
+ content = WebResponseContent.Instance.Error($"LED鎺ㄩ�佸け璐ワ細{ex.Message}");
+ }
+ return content;
+ }
+
/// <summary>
///
/// </summary>
--
Gitblit v1.9.3