using DOAN.Model.PBL; using DOAN.Model.PBL.Dto; using DOAN.Service.PBL.IService; using Infrastructure.Attribute; namespace DOAN.Service.PBL; [AppService(ServiceType = typeof(IBigScreenService), ServiceLifetime = LifeTime.Transient)] public class BigScreenService : BaseService, IBigScreenService { /// /// 查询料架灯 亮和灭 情况 /// /// public List SearchShelfLightInfomation() { var result = new List(); // 1 查询所有料架 var RackCodeArray = Context.Queryable().GroupBy(it => it.RackCode).Select(it => it.RackCode) .ToArray(); var DataSoure = Context.Queryable().ToList(); //2 查询每个料架层 for (var i = 0; i < RackCodeArray.Length; i++) { var RackCodeObject = new BIgScreenDtoLightPickupDto(); RackCodeObject.RackCode = RackCodeArray[i]; var LayerSheelfList = DataSoure.Where(it => it.RackCode == RackCodeArray[i]).ToList(); var LayerObjectfArray = new LayerObject[LayerSheelfList.Count]; if (LayerSheelfList != null && LayerSheelfList.Count > 0) { for (var j = 0; j < LayerSheelfList.Count; j++) { var LayerObject = new LayerObject(); LayerObject.LayerNum = LayerSheelfList[j].LayerNum; LayerObject.Partnumber = LayerSheelfList[j].Partnumber; LayerObject.MaxCapacity = LayerSheelfList[j].MaxCapacity; LayerObject.PackageNum = LayerSheelfList[j].PackageNum; LayerObject.isLight = LayerSheelfList[j].IsLight == 1 ? true : false; LayerObjectfArray[j] = LayerObject; } for (var j = 0; j < LayerSheelfList.Count; j++) { RackCodeObject.isLight = false; if (LayerSheelfList[j].IsLight == 1) { RackCodeObject.isLight = true; break; } } } RackCodeObject.LayerObjectArray = LayerObjectfArray; result.Add(RackCodeObject); } return result.OrderBy(it => it.RackCode).ToList(); } public List SearchfeedingMaterialInfomation() { var result = new List(); // 1 查询所有料架 var RackCodeArray = Context.Queryable().GroupBy(it => it.RackCode).Select(it => it.RackCode) .ToArray(); var DataSoure = Context.Queryable().ToList(); //2 查询每个料架层 for (var i = 0; i < RackCodeArray.Length; i++) { var RackCodeObject = new BigSreeenDtoFeedingMaterial(); RackCodeObject.RackCode = RackCodeArray[i]; var LayerSheelfList = DataSoure.Where(it => it.RackCode == RackCodeArray[i]).ToList(); var LayerObjectfArray = new LayerFeedingMaterialObject[LayerSheelfList.Count]; if (LayerSheelfList != null && LayerSheelfList.Count > 0) { for (var j = 0; j < LayerSheelfList.Count; j++) { var LayerObject = new LayerFeedingMaterialObject(); LayerObject.LayerNum = LayerSheelfList[j].LayerNum; LayerObject.Partnumber = LayerSheelfList[j].Partnumber; LayerObject.MaxCapacity = LayerSheelfList[j].MaxCapacity; LayerObject.PackageNum = LayerSheelfList[j].PackageNum; LayerObject.isFeedingMaterial = LayerSheelfList[j].PackageNum <= 2 ? true : false; LayerObjectfArray[j] = LayerObject; } for (var j = 0; j < LayerSheelfList.Count; j++) { RackCodeObject.isFeedingMaterial = false; if (LayerSheelfList[j].PackageNum <= 2) { RackCodeObject.isFeedingMaterial = true; break; } } } RackCodeObject.LayerObjectArray = LayerObjectfArray; result.Add(RackCodeObject); } return result.OrderBy(it => it.RackCode).ToList(); } }