From a200871400d465620d45189b8068fafd0d95e01a Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 31 三月 2026 10:38:05 +0800
Subject: [PATCH] refactor: 整理TaskService任务流程结构
---
Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 94 ++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 93 insertions(+), 1 deletions(-)
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index d1d3f8e..fe278a6 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -74,5 +74,97 @@
_unitOfWorkManage = unitOfWorkManage;
}
+ /// <summary>
+ /// 鏌ユ壘鎵樼洏鏄惁瀛樺湪鏈畬鎴愪换鍔°��
+ /// </summary>
+ private async Task<WebResponseContent> GetTaskByPalletCodeAsync(string palletCode)
+ {
+ try
+ {
+ var task = await BaseDal.QueryFirstAsync(s => s.PalletCode == palletCode);
+ if (task == null)
+ return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑浠诲姟");
+
+ var taskDto = _mapper.Map<WMSTaskDTO>(task);
+ return WebResponseContent.Instance.OK("鏌ヨ鎴愬姛", taskDto);
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error($"鏌ヨ浠诲姟澶辫触: {ex.Message}");
+ }
+ }
+
+ /// <summary>
+ /// 淇濆瓨浠诲姟鍘嗗彶銆�
+ /// </summary>
+ private async Task<WebResponseContent> SaveTaskHistoryAsync(Dt_Task task, string operateType)
+ {
+ var historyTask = _mapper.Map<Dt_Task_Hty>(task);
+ historyTask.InsertTime = DateTime.Now;
+ historyTask.OperateType = operateType;
+
+ var saved = await _task_HtyService.Repository.AddDataAsync(historyTask) > 0;
+ return saved
+ ? WebResponseContent.Instance.OK()
+ : WebResponseContent.Instance.Error("浠诲姟鍘嗗彶淇濆瓨澶辫触");
+ }
+
+ /// <summary>
+ /// 淇濆瓨搴撳瓨鍘嗗彶銆�
+ /// </summary>
+ private async Task<WebResponseContent> SaveStockHistoryAsync(Dt_StockInfo stockInfo, string operateType)
+ {
+ var historyStock = _mapper.Map<Dt_StockInfo_Hty>(stockInfo);
+ historyStock.InsertTime = DateTime.Now;
+ historyStock.OperateType = operateType;
+
+ var saved = await _stockInfo_HtyService.Repository.AddDataAsync(historyStock) > 0;
+ return saved
+ ? WebResponseContent.Instance.OK()
+ : WebResponseContent.Instance.Error("搴撳瓨鍘嗗彶淇濆瓨澶辫触");
+ }
+
+ /// <summary>
+ /// 瀹屾垚浠诲姟鍚庣粺涓�澶勭悊銆�
+ /// </summary>
+ private async Task<WebResponseContent> CompleteTaskAsync(Dt_Task task, string operateType = "")
+ {
+ var deleteTaskResult = await BaseDal.DeleteDataAsync(task);
+ if (!deleteTaskResult)
+ return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+
+ return await SaveTaskHistoryAsync(task, operateType);
+ }
+
+ /// <summary>
+ /// 鏍规嵁宸烽亾纭畾鐩爣鍦板潃锛屾敮鎸佸鍑哄簱鍙h疆璇€��
+ /// </summary>
+ private string DetermineTargetAddress(string roadway, Dictionary<string, List<string>> addressMap)
+ {
+ if (string.IsNullOrWhiteSpace(roadway))
+ return "10080";
+
+ string? matchedPrefix = null;
+ foreach (var kvp in addressMap)
+ {
+ if (roadway.Contains(kvp.Key))
+ {
+ matchedPrefix = kvp.Key;
+ break;
+ }
+ }
+
+ if (matchedPrefix == null)
+ return "10080";
+
+ if (!addressMap.TryGetValue(matchedPrefix, out var addresses) || addresses == null || addresses.Count == 0)
+ return "10080";
+
+ if (addresses.Count == 1)
+ return addresses[0];
+
+ return _roundRobinService.GetNextAddress(matchedPrefix, addresses);
+ }
+
}
-}
\ No newline at end of file
+}
--
Gitblit v1.9.3