陈勇
2026-03-30 7154cc02c0fa9ef6786a19da0281bf6982fa61bd
ÏîÄ¿´úÂë/WMS/WMSServer/WIDESEA_StoragIntegrationServices/WCS/Partial/RequestInboundRoadWayNo.cs
@@ -28,6 +28,13 @@
            WebResponseContent response = new WebResponseContent();
            try
            {
                //如任务已存在则 è¿”回此任务
                var checkTask = _taskRepository.QueryFirst(x => x.PalletCode == json.PalletCode && x.PVI == json.PVI);
                if (checkTask != null)
                {
                    return response.OK("申请入库成功", data: checkTask);
                }
                //屏蔽MES
                if (json.Position == "EL01RB")
                {
@@ -63,15 +70,23 @@
                    roadWays = _roadWayRepository.QueryData(x => x.WirteCar == 2);
                }
                //var locations = _locationRepository.QueryData(x => (x.LocationType == carInfo.CarType || x.LocationType == 3) && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == (int)EnableEnum.Enable);
                var maxGroup = _locationRepository.QueryData(x => (x.LocationType == carInfo.CarType || x.LocationType == 3) && x.LocationStatus == (int)LocationEnum.Free && x.EnalbeStatus == (int)EnableEnum.Enable)
                                .GroupBy(x => x.RoadwayNo)
                                .OrderByDescending(g => g.Count()) // æ ¹æ®æ¯ä¸ªç»„的元素数量排序
                                .ToList(); // å–出数量最多的组
                if (maxGroup.Count == 0) return response.Error(12, "无可用库位");
                Dictionary<string, int> result = new Dictionary<string, int>();
                foreach (var item in maxGroup)
                {
                    var number = _taskRepository.QueryData(x => x.TargetAddress == item.Key).Count();
                    var number = _taskRepository.QueryData(x => x.RoadwayNo == item.Key && x.CarType == carInfo.CarType && (x.TaskType == (int)TaskInboundTypeEnum.Inbound || x.TaskType == (int)TaskInboundTypeEnum.InTray)).Count();
                    if (item.Count() - number <= 0)
                    {
                        continue;
                    }
                    result.Add(item.Key, item.Count() - number);
                }
@@ -83,7 +98,7 @@
                if (stationList.Count > 1)
                {
                    var task = _taskRepository.QueryData(x => x.Roadway == stationList.FirstOrDefault().Roadway).OrderByDescending(x => x.CreateDate).FirstOrDefault();
                    var task = _taskRepository.QueryData(x => x.Roadway == stationList.FirstOrDefault().Roadway && x.TaskType == (int)TaskInboundTypeEnum.Inbound).OrderByDescending(x => x.CreateDate).FirstOrDefault();
                    if (task != null) station = stationList.Where(x => x.stationChildCode != task.NextAddress && x.stationChildCode != task.CurrentAddress).FirstOrDefault();
                    else station = stationList.FirstOrDefault();
                }
@@ -114,7 +129,8 @@
                    TaskNum = _taskRepository.GetTaskNo().Result,
                    Creater = "Systeam",
                    PVI = json.PVI,
                    CarType = carInfo.CarType,
                    RoadwayNo = station.RoadwayNo
                };
                _unitOfWorkManage.BeginTran();