xiazhengtongxue
2026-03-27 49e6ac0d3b52f19ead1a055bba9aaa99929686b7
ÏîÄ¿´úÂë/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,9 +81,38 @@
                    {
                        LocationType = 3;
                    }
                    var a = BaseDal.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == LocationType.ToString());
                    var taskCount = BaseDal.QueryData(x => x.WarehouseId == WarehouseId && x.PalletType == LocationType.ToString()).Count();
                    Roadway = _locationInfoService.AccessingTunnel(dt_Warehouse.WarehouseId, LocationType, taskCount);
                    // æŸ¥è¯¢æ¯ä¸ªå··é“号的任务数量
                    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站台信息