Ejemplo n.º 1
0
        public List <ReqRpt048Stage2GapModel> GetResault()
        {
            var list = new List <ReqRpt048Stage2GapModel>();

            if (!GapComputerEntities.Any())
            {
                return(list);
            }
            GetSplitGapEntities();
            foreach (var split in SplitedGapEntities)
            {
                split.Departments = GapComputerEntities.Where(w => w.StartTime <= split.StartTime && w.EndTime >= split.EndTime).Select(s => GetDeptCodeByReasonCode(s.ReasonCode)).ToList();
                foreach (var de in split.Departments)
                {
                    //更新list
                    if (string.IsNullOrEmpty(de))
                    {
                        continue;
                    }
                    var l = list.Where(w => w.Department == de);
                    if (l.Any())
                    {
                        l.First().HoldGap += split.UnitDuration;
                    }
                    else
                    {
                        list.Add(new ReqRpt048Stage2GapModel()
                        {
                            Department = de, HoldGap = split.UnitDuration
                        });
                    }
                }
            }
            return(list);
        }
Ejemplo n.º 2
0
        private void GetSplitGapEntities()
        {
            var timespans = GapComputerEntities.Select(s => s.StartTime).Union(GapComputerEntities.Select(s => s.EndTime)).Distinct().OrderBy(o => o).ToList();

            for (var i = 0; i < timespans.Count() - 1; i++)
            {
                SplitedGapEntities.Add(new ReqRpt048GapSplitTimeEntity()
                {
                    StartTime = timespans[i], EndTime = timespans[i + 1]
                });
            }
        }