From c2461f320a6b36390d8dd26d4ce11a62baa0e215 Mon Sep 17 00:00:00 2001
From: xxyy <cathay_xy@163.com>
Date: 星期五, 28 二月 2025 10:42:35 +0800
Subject: [PATCH] 更新 .gitignore 和优化任务处理逻辑
---
Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs | 117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 113 insertions(+), 4 deletions(-)
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index b66182f..fa9dab8 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -459,6 +459,10 @@
else
{
locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Distribute && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1);
+ if (locations == null)
+ {
+ locations = await _locationRepository.QueryDataAsync(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == requestTask.Roadways && x.EnalbeStatus == 1 && x.LocationType == 1);
+ }
}
if (locations == null)
@@ -800,14 +804,21 @@
{
try
{
- Thread.Sleep(10000);
+ Thread.Sleep(TimeSpan.FromMinutes(10));
+
var area = await _areaInfoRepository.QueryFirstAsync(x => x.AreaCode == "GWSC1");
+ var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
+ .Where(x => x.DeviceStatus == "1")
+ .Where(x => x.DeviceCode.Contains("GWSC"))
+ .ToList();
+ var deviceCode = devices.Select(x => x.DeviceCode).ToList();
var stockInfo = await _stockInfoRepository.Db.Queryable<DtStockInfo>()
.Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo
.Includes(x => x.StockInfoDetails) // 棰勫姞杞絊tockInfoDetails
.Where(x => x.AreaCode == area.AreaCode && x.OutboundTime < DateTime.Now && x.IsFull == true) // 杩囨护鏉′欢
.Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock && x.LocationInfo.AreaId == area.AreaID) // 杩囨护鏉′欢
+ .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
.OrderBy(x => x.OutboundTime) // 鎺掑簭
.ToListAsync(); // 鑾峰彇绗竴涓厓绱�
@@ -879,7 +890,7 @@
WebResponseContent content = new WebResponseContent();
try
{
- var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTO.Position);
+ var station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == taskDTO.Position && x.stationStatus == "1");
var locations = _locationRepository.QueryData(x => x.RoadwayNo == station.Roadway && x.LocationStatus == (int)LocationEnum.Free && x.LocationType == 1);
if (locations.Count > 10)
@@ -974,18 +985,29 @@
WebResponseContent content = new WebResponseContent();
try
{
- Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call");
+ //LogFactory.GetLog("甯告俯3鍑哄簱鑷冲寘瑁�").Info(true, $"甯告俯3鍑哄簱鑷冲寘瑁呬紶鍏ュ弬鏁帮細" + JsonConvert.SerializeObject(json, Formatting.Indented));
+ Dt_StationManager station = _stationManagerRepository.QueryFirst(x => x.stationChildCode == json.Position && x.stationType == 12 && x.stationArea == "Call");
+ if (station == null) { throw new Exception($"鏈壘鍒板寘瑁呯珯鍙颁俊鎭紝璇锋鏌ヤ紶鍏ュ弬鏁皗json.Position}"); }
+
+ var devices = SqlSugarHelper.DbWCS.Queryable<Dt_DeviceInfo>()
+ .Where(x => x.DeviceStatus == "1")
+ .Where(x => x.DeviceCode.Contains("GWSC"))
+ .ToList();
+ var deviceCode = devices.Select(x => x.DeviceCode).ToList();
+
+ //LogFactory.GetLog("甯告俯3鍑哄簱鑷冲寘瑁�").Info(true, $"甯告俯3鍑哄簱鑷冲寘瑁呬紶鍏ュ弬鏁帮細" + JsonConvert.SerializeObject(json, Formatting.Indented));
var stockInfo = _stockInfoRepository.Db.Queryable<DtStockInfo>()
.Where(x => x.ProductionLine == station.productLine)
.Includes(x => x.LocationInfo) // 棰勫姞杞絃ocationInfo
.Where(x => x.AreaCode == "CWSC3" && x.IsFull == true) // 杩囨护鏉′欢
.Where(x => x.LocationInfo.LocationStatus == (int)LocationEnum.InStock) // 杩囨护鏉′欢
+ .WhereIF(!deviceCode.IsNullOrEmpty(), x => deviceCode.Contains(x.LocationInfo.RoadwayNo))
.OrderBy(x => x.OutboundTime) // 鎺掑簭
.First(); // 鑾峰彇绗竴涓厓绱�
//DtStockInfo stockInfo = _stockInfoRepository.QueryFirst(X => X.IsFull && X.AreaCode == "CWSC3" && X.ProductionLine == station.productLine);
- if (stockInfo == null) throw new Exception("搴撳唴鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�");
+ if (stockInfo == null) throw new Exception($"搴撳唴{station.productLine}鏃犳弧瓒虫潯浠剁殑搴撳瓨鍙嚭搴�");
DtLocationInfo locationInfo = _locationRepository.QueryFirst(x => x.AreaId == 5 && x.LocationCode == stockInfo.LocationCode);
@@ -1153,4 +1175,91 @@
}
#endregion
+
+ #region 鍒嗗绌烘鍏ュ簱鏀逛负鐩存帴鍑哄簱
+
+ public async Task<WebResponseContent> SetEmptyOutbyInToOutAsync(RequestTaskDto request)
+ {
+ WebResponseContent content = new WebResponseContent();
+ var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == request.PalletCode);
+ if (!task.IsNullOrEmpty())
+ {
+ var fromStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == request.Position);
+ var toStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 7 && x.productLine == fromStation.productLine && x.stationArea == fromStation.stationArea);
+ if (!toStation.IsNullOrEmpty())
+ {
+ var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.AreaId == int.Parse(fromStation.stationArea));
+ task.TargetAddress = toStation.stationLocation;
+ task.NextAddress = toStation.stationChildCode;
+ task.Grade = 3;
+ task.TaskType = (int)TaskOutboundTypeEnum.InToOut;
+ task.TaskState = (int)TaskOutStatusEnum.OutNew;
+
+ location.LocationStatus = (int)LocationEnum.Free;
+
+ await _locationRepository.UpdateDataAsync(location);
+ await BaseDal.UpdateDataAsync(task);
+ return content.OK("鎴愬姛");
+ }
+ else
+ {
+ ConsoleHelper.WriteErrorLine("鍒嗗绌烘鍏ュ簱鏀逛负鐩存帴鍑哄簱:鏈壘鍒板搴旂珯鍙�");
+ content.Error("鏈壘鍒板搴旂珯鍙�");
+ }
+ }
+ else
+ {
+ ConsoleHelper.WriteErrorLine("鍒嗗绌烘鍏ュ簱鏀逛负鐩存帴鍑哄簱:鏈壘鍒颁换鍔�");
+ content.Error("鏈壘鍒颁换鍔�");
+ }
+ return content;
+ }
+
+ #endregion
+
+ #region 鍒嗗绌烘鍑哄簱鏀逛负鐩存帴鍑哄簱
+
+ /// <summary>
+ /// 鍒嗗绌烘鍑哄簱鏀逛负鐩存帴鍑哄簱
+ /// </summary>
+ /// <param name="request"></param>
+ /// <returns></returns>
+ public async Task<WebResponseContent> SetEmptyOutbyInToOutOneAsync(RequestTaskDto request)
+ {
+ WebResponseContent content = new WebResponseContent();
+ var task = await BaseDal.QueryFirstAsync(x => x.PalletCode == request.PalletCode);
+ if (!task.IsNullOrEmpty())
+ {
+ var toStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationChildCode == request.Position);
+ var fromStation = await _stationManagerRepository.QueryFirstAsync(x => x.stationType == 6 && x.productLine == toStation.productLine && x.stationArea == toStation.stationArea);
+ if (!fromStation.IsNullOrEmpty())
+ {
+ //var location = await _locationRepository.QueryFirstAsync(x => x.LocationCode == task.TargetAddress && x.AreaId == int.Parse(fromStation.stationArea));
+ task.SourceAddress = toStation.stationLocation;
+ task.CurrentAddress = toStation.stationChildCode;
+ task.Grade = 3;
+ task.TaskType = (int)TaskOutboundTypeEnum.InToOut;
+ task.TaskState = (int)TaskOutStatusEnum.OutNew;
+
+ //location.LocationStatus = (int)LocationEnum.Free;
+
+ //await _locationRepository.UpdateDataAsync(location);
+ await BaseDal.UpdateDataAsync(task);
+ return content.OK("鎴愬姛");
+ }
+ else
+ {
+ ConsoleHelper.WriteErrorLine("鍒嗗绌烘鍑哄簱鏀逛负鐩存帴鍑哄簱:鏈壘鍒板搴旂珯鍙�");
+ content.Error("鏈壘鍒板搴旂珯鍙�");
+ }
+ }
+ else
+ {
+ ConsoleHelper.WriteErrorLine("鍒嗗绌烘鍑哄簱鏀逛负鐩存帴鍑哄簱:鏈壘鍒颁换鍔�");
+ content.Error("鏈壘鍒颁换鍔�");
+ }
+ return content;
+ }
+
+ #endregion
}
\ No newline at end of file
--
Gitblit v1.9.3