From 0b201eb98881f4381893c9765b530fa5d19e41ea Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期五, 01 五月 2026 10:56:20 +0800
Subject: [PATCH] 1
---
Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs | 72 +++++++++++++++++++++++++++++++++++-
1 files changed, 70 insertions(+), 2 deletions(-)
diff --git a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
index 06c1c36..7332c59 100644
--- a/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
+++ b/Code/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/RobotJob/RobotTaskProcessor.cs
@@ -124,6 +124,20 @@
}
/// <summary>
+ /// 鎸変换鍔$紪鍙疯幏鍙栨満鍣ㄤ汉浠诲姟
+ /// </summary>
+ /// <remarks>
+ /// 鐢ㄤ簬 RobotJob 蹇�熸煡鎵炬墽琛屼腑鐨勪换鍔★紝閬垮厤鍏ㄨ〃鎵弿銆�
+ /// 浼樺厛閫氳繃鐘舵�佷腑缂撳瓨鐨� CurrentTaskNum 瀹氫綅浠诲姟銆�
+ /// </remarks>
+ /// <param name="taskNum">鏈哄櫒浜轰换鍔$紪鍙�</param>
+ /// <returns>鍖归厤鐨勪换鍔″璞★紝濡傛灉娌℃湁鍒欒繑鍥� null</returns>
+ public Dt_RobotTask? GetTaskByNum(int taskNum)
+ {
+ return _robotTaskService.Repository.QueryFirst(x => x.RobotTaskNum == taskNum);
+ }
+
+ /// <summary>
/// 鎸夎澶囩紪鐮佽幏鍙栧綋鍓嶆満鍣ㄤ汉鐨勬墽琛屼腑浠诲姟
/// </summary>
/// <remarks>
@@ -186,6 +200,7 @@
// 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
state.CurrentTask = task;
+ state.CurrentTaskNum = task.RobotTaskNum;
if (isScanNG)
{
@@ -276,6 +291,7 @@
// 灏嗕换鍔″叧鑱斿埌鐘舵�佸璞�
state.CurrentTask = task;
+ state.CurrentTaskNum = task.RobotTaskNum;
if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
{
@@ -346,6 +362,7 @@
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
state.CurrentTask = task;
+ state.CurrentTaskNum = task.RobotTaskNum;
if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
{
@@ -389,6 +406,7 @@
{
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
state.CurrentTask = task;
+ state.CurrentTaskNum = task.RobotTaskNum;
if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
{
@@ -434,6 +452,7 @@
{
task.RobotTaskState = TaskRobotStatusEnum.RobotExecuting.GetHashCode();
state.CurrentTask = task;
+ state.CurrentTaskNum = task.RobotTaskNum;
if (_stateManager.TryUpdateStateSafely(state.IPAddress, state))
{
@@ -688,14 +707,63 @@
// 閫氶亾/浣嶇疆缂栧彿
Channel = x,
- // 鐢垫睜鏉$爜锛氬鏋滅姸鎬佷腑鏈夋潯鐮佸垪琛紝鍙栧搴斾綅缃殑鏉$爜锛涘惁鍒欎负绌�
+ // 鐢垫睜鏉$爜锛氫娇鐢ㄥ綋鍓嶆壒娆℃潯鐮佸垪琛紝鍙栧搴斾綅缃殑鏉$爜锛涘惁鍒欎负绌�
//CellBarcode = state.CellBarcode?.Count > 0 ? state.CellBarcode[x - 1] : ""
- CellBarcode = !state.CellBarcode.IsNullOrEmpty() ? state.CellBarcode[idx].ToString() ?? string.Empty : string.Empty
+ CellBarcode = !state.CurrentBatchBarcodes.IsNullOrEmpty() ? state.CurrentBatchBarcodes[idx].ToString() ?? string.Empty : string.Empty
})
.ToList()
};
}
+ /// <summary>
+ /// 鏋勫缓搴撳瓨鍥炰紶 DTO
+ /// </summary>
+ /// <remarks>
+ /// 鐢ㄤ簬鎷嗙洏鍜岀粍鐩樻搷浣滄椂锛屽悜 WMS 鍥炰紶搴撳瓨淇℃伅銆�
+ /// DTO 鍖呭惈婧愯揣浣嶃�佺洰鏍囪揣浣嶃�佹墭鐩樼爜浠ュ強姣忎釜浣嶇疆鐨勭數姹犳潯鐮併��
+ /// </remarks>
+ /// <param name="state">鏈哄櫒浜哄綋鍓嶇姸鎬�</param>
+ /// <param name="positions">鐢垫睜浣嶇疆鏁扮粍</param>
+ /// <returns>鏋勫缓濂界殑搴撳瓨 DTO</returns>
+ public static StockDTO BuildStockDTO1(RobotSocketState state, int[] positions)
+ {
+ return new StockDTO
+ {
+ // 婧愯緭閫佺嚎缂栧彿
+ SourceLineNo = state.CurrentTask.RobotSourceAddressLineCode,
+ // 婧愭墭鐩樺彿
+ SourcePalletNo = state.CurrentTask.RobotSourceAddressPalletCode,
+
+ // 鐩爣鎵樼洏鍙�
+ TargetPalletNo = state.CurrentTask.RobotTargetAddressPalletCode,
+
+ // 鐩爣杈撻�佺嚎缂栧彿
+ TargetLineNo = state.CurrentTask.RobotTargetAddressLineCode,
+
+ // 宸烽亾缂栧彿(鏈哄櫒浜哄悕绉�)
+ Roadway = state.CurrentTask.RobotRoadway,
+
+ // 鐢垫睜浣嶇疆璇︽儏鍒楄〃
+ // 杩囨护鎺変綅缃负 0 鎴栬礋鏁扮殑鏃犳晥鏁版嵁
+ // 鎸変綅缃紪鍙锋帓搴�
+ // 涓烘瘡涓綅缃敓鎴愬搴旂殑搴撳瓨璇︽儏
+ Details = positions
+ .Where(x => x > 0) // 杩囨护鏃犳晥浣嶇疆
+ .OrderBy(x => x) // 鎸変綅缃帓搴�
+ .Select((x, idx) => new StockDetailDTO
+ {
+ // 鏁伴噺锛氬鏋滃凡鏈変换鍔℃�绘暟锛屼娇鐢ㄤ换鍔℃�绘暟+褰撳墠浣嶇疆鏁帮紱鍚﹀垯鍙娇鐢ㄥ綋鍓嶄綅缃暟
+ Quantity = 1,
+
+ // 閫氶亾/浣嶇疆缂栧彿
+ Channel = x,
+
+ // 鐢垫睜鏉$爜锛氬彇褰撳墠鎵规鏉$爜鍒楄〃鐨勬渶鍚� N 涓紙N = 鏈夋晥浣嶇疆鏁帮級
+ CellBarcode = !state.CurrentBatchBarcodes.IsNullOrEmpty() ? state.CurrentBatchBarcodes[^(positions.Count(p => p > 0) - idx)].ToString() ?? string.Empty : string.Empty
+ })
+ .ToList()
+ };
+ }
/// <summary>
/// 璋冪敤鎷嗙洏 API
/// </summary>
--
Gitblit v1.9.3