xiazhengtongxue
2026-04-07 b0b5deb5825684bca5b3fa7c2ab59f60ce0e799f
ÏîÄ¿´úÂë/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);
                        //调取上游系统反馈开始任务