From 1dcd4ddb19f8740b835a93707b8d535e03288781 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期一, 30 三月 2026 13:35:42 +0800
Subject: [PATCH] feat(TaskService): 注入ITask_HtyService和IStockInfo_HtyService
---
Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs | 90 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 89 insertions(+), 1 deletions(-)
diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
index 7b1437a..ae80dca 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs
@@ -31,6 +31,8 @@
private readonly IConfiguration _configuration;
private readonly RoundRobinService _roundRobinService;
private readonly IMesService _mesService;
+ private readonly ITask_HtyService _task_HtyService;
+ private readonly IStockInfo_HtyService _stockInfo_HtyService;
public IRepository<Dt_Task> Repository => BaseDal;
@@ -51,7 +53,9 @@
HttpClientHelper httpClientHelper,
IConfiguration configuration,
RoundRobinService roundRobinService,
- IMesService mesService) : base(BaseDal)
+ IMesService mesService,
+ ITask_HtyService task_HtyService,
+ IStockInfo_HtyService stockInfo_HtyService) : base(BaseDal)
{
_mapper = mapper;
_stockInfoService = stockInfoService;
@@ -60,6 +64,8 @@
_configuration = configuration;
_roundRobinService = roundRobinService;
_mesService = mesService;
+ _task_HtyService = task_HtyService;
+ _stockInfo_HtyService = stockInfo_HtyService;
}
#region WCS閫昏緫澶勭悊
@@ -385,6 +391,47 @@
}
/// <summary>
+ /// 绌烘墭鐩樺叆搴撳畬鎴�
+ /// </summary>
+ public async Task<WebResponseContent> InboundFinishTaskTrayAsync(CreateTaskDto taskDto)
+ {
+ try
+ {
+ var task = await BaseDal.QueryFirstAsync(s => s.PalletCode == taskDto.PalletCode);
+ if (task == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑浠诲姟");
+
+ var location = await _locationInfoService.GetLocationInfo(task.Roadway, task.TargetAddress);
+ if (location == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑璐т綅");
+
+ var stockInfo = await _stockInfoService.GetStockInfoAsync(taskDto.PalletCode);
+ if (stockInfo == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴斿簱瀛樹俊鎭�");
+
+ return await ExecuteWithinTransactionAsync(async () =>
+ {
+ stockInfo.LocationCode = location.LocationCode;
+ stockInfo.LocationId = location.Id;
+ stockInfo.StockStatus = StockStatusEmun.绌烘墭鐩樺簱瀛�.GetHashCode();
+
+ location.LocationStatus = LocationStatusEnum.InStock.GetHashCode();
+
+ var updateLocationResult = await _locationInfoService.UpdateLocationInfoAsync(location);
+ var updateStockResult = await _stockInfoService.UpdateStockAsync(stockInfo);
+ if (!updateLocationResult || !updateStockResult)
+ return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+
+ var deleteResult = await BaseDal.DeleteDataAsync(task);
+ if (!deleteResult) return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+
+ return WebResponseContent.Instance.OK("浠诲姟瀹屾垚");
+ });
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error($"瀹屾垚浠诲姟澶辫触: {ex.Message}");
+ }
+ }
+
+ /// <summary>
/// 鍒涘缓绌烘墭鐩樺嚭搴撲换鍔�
/// </summary>
/// <param name="taskDto"></param>
@@ -428,6 +475,47 @@
}
/// <summary>
+ /// 绌烘墭鐩樺嚭搴撳畬鎴�
+ /// </summary>
+ public async Task<WebResponseContent> OutboundFinishTaskTrayAsync(CreateTaskDto taskDto)
+ {
+ try
+ {
+ var task = await BaseDal.QueryFirstAsync(s => s.PalletCode == taskDto.PalletCode);
+ if (task == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑浠诲姟");
+
+ var location = await _locationInfoService.GetLocationInfo(task.Roadway, task.SourceAddress);
+ if (location == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴旂殑璐т綅");
+
+ var stockInfo = await _stockInfoService.GetStockInfoAsync(taskDto.PalletCode);
+ if (stockInfo == null) return WebResponseContent.Instance.Error("鏈壘鍒板搴斿簱瀛樹俊鎭�");
+
+ return await ExecuteWithinTransactionAsync(async () =>
+ {
+ stockInfo.LocationId = 0;
+ stockInfo.LocationCode = null;
+ stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.GetHashCode();
+
+ location.LocationStatus = LocationStatusEnum.Free.GetHashCode();
+
+ var updateLocationResult = await _locationInfoService.UpdateLocationInfoAsync(location);
+ var updateStockResult = await _stockInfoService.UpdateStockAsync(stockInfo);
+ if (!updateLocationResult || !updateStockResult)
+ return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+
+ var deleteResult = await BaseDal.DeleteDataAsync(task);
+ if (!deleteResult) return WebResponseContent.Instance.Error("浠诲姟瀹屾垚澶辫触");
+
+ return WebResponseContent.Instance.OK("浠诲姟瀹屾垚");
+ });
+ }
+ catch (Exception ex)
+ {
+ return WebResponseContent.Instance.Error($"瀹屾垚浠诲姟澶辫触: {ex.Message}");
+ }
+ }
+
+ /// <summary>
/// 淇敼浠诲姟鐘舵�侊紙鏍规嵁浠诲姟ID淇敼涓烘寚瀹氱姸鎬侊級
/// </summary>
/// <param name="taskId"></param>
--
Gitblit v1.9.3