From b0b5deb5825684bca5b3fa7c2ab59f60ce0e799f Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期二, 07 四月 2026 16:36:57 +0800
Subject: [PATCH] fix: 修复移库任务号重复问题,优化策略优先处理正常任务,避免任务堵塞
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs | 43 ++++++++++++++++++++++++++++++++++++++++---
1 files changed, 40 insertions(+), 3 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs"
index d1595b2..b2f563c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs"
@@ -59,6 +59,11 @@
int LocationType = 1;
string Roadway = "0";
+ if(mES_In.startPosition == "1206")
+ {
+ mES_In.startPosition = "1205";
+ }
+
string SourceAddress = mES_In.startPosition;
string TargetAddress = "";
string CurrentAddress = mES_In.startPosition;
@@ -76,8 +81,40 @@
{
LocationType = 3;
}
- Roadway = _locationInfoService.AccessingTunnel(dt_Warehouse.WarehouseId, LocationType);
- if (Roadway == "0") return apiResponse.Error($"WMS鏈兘鏌ヨ閬撳搴斿贩閬撶紪鍙凤紝浠撳簱缂栫爜锛歿mES_In.warehouseNo}");
+
+ // 鏌ヨ姣忎釜宸烽亾鍙风殑浠诲姟鏁伴噺
+ List<RoadwayTaskCount> roadwayTaskCounts;
+
+ // 鏍规嵁 WarehouseId 鑾峰彇瀵瑰簲鐨勫贩閬撳垪琛�
+ var roadwayList = WarehouseId == 1
+ ? new[] { "1", "2" }
+ : new[] { "3", "4", "5" };
+
+ // 鏌ヨ鏁版嵁搴撲腑鐨勫疄闄呮暟鎹�
+ var queryData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == (LocationType.ToString() == "3" ? "1" : LocationType.ToString()))
+ .GroupBy(x => x.Roadway)
+ .Select(g => new RoadwayTaskCount
+ {
+ Roadway = g.Key,
+ TaskCount = g.Count()
+ })
+ .ToList();
+
+ // 鍚堝苟鎵�鏈夐渶瑕佺殑宸烽亾锛岀‘淇濇瘡涓贩閬撻兘鏈夊搴旂殑 TaskCount
+ roadwayTaskCounts = roadwayList
+ .Select(roadway => new RoadwayTaskCount
+ {
+ Roadway = roadway,
+ TaskCount = queryData.FirstOrDefault(x => x.Roadway == roadway)?.TaskCount ?? 0
+ })
+ .ToList();
+
+ //var taskCount = BaseDal.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == LocationType.ToString()).Count();
+
+ Roadway = _locationInfoService.AccessingTunnel(dt_Warehouse.WarehouseId, LocationType, roadwayTaskCounts);
+
+ //if (Roadway == "0") return apiResponse.Error($"WMS鏈兘鏌ヨ閬撳搴斿贩閬撶紪鍙凤紝浠撳簱缂栫爜锛歿mES_In.warehouseNo}");
+ if (Roadway == "0") return apiResponse.Error($"褰撳墠浠撳簱宸茬粡婊★細{mES_In.warehouseNo}");
//鑾峰彇瀵瑰簲PLC绔欏彴淇℃伅
Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(Roadway);
NextAddress = _Roadwayinfo.InStationCode;
@@ -112,7 +149,6 @@
task.Grade = 1;
task.Creater = "MES";
task.CreateDate = DateTime.Now;
-
int taskid=BaseDal.AddData(task);
//鍒涘缓浠诲姟鍚庯紝鍒ゆ柇鏄惁鏄骇绾垮洖搴撶殑浠诲姟
@@ -136,6 +172,7 @@
{
Dt_Task deltaskin = BaseDal.QueryData(x => x.TaskId == taskid).FirstOrDefault();
deltaskin.TaskStatus = (int)InTaskStatusEnum.PLC_InExecuting;
+ deltaskin.Dispatchertime = DateTime.Now;
string Result = MesInTaskStatusEnum.Start.GetDescription();
BaseDal.UpdateData(deltaskin);
//璋冨彇涓婃父绯荤粺鍙嶉寮�濮嬩换鍔�
--
Gitblit v1.9.3