using DeviceRepair.Models.Enum; using System.Collections.Generic; using System.Linq; namespace DeviceRepair.Models.Common { /// /// 当前年度计划完成进度 /// public class CurrentYearPlanSchedule { public CurrentYearPlanSchedule() { TimeOut = 0; Complete = 0; Current = 0; Future = 0; } public CurrentYearPlanSchedule(IList Datas) : this() { if (Datas == null || Datas.Count > 0) { Datas.ToList().ForEach(item => { for (int i = 0; i < 12; i++) { string fileName = $"{(new System.Globalization.CultureInfo("en-US")).DateTimeFormat.MonthNames[i].Substring(0, 3)}Status"; if (item.GetType().GetProperty(fileName) == null) return; EnumPlanCompleteStatus value = (EnumPlanCompleteStatus)item.GetType().GetProperty(fileName).GetValue(item, null); switch (value) { case EnumPlanCompleteStatus.None: break; case EnumPlanCompleteStatus.TimeOut: TimeOut += 1; break; case EnumPlanCompleteStatus.Complete: Complete += 1; break; case EnumPlanCompleteStatus.Current: Current += 1; break; case EnumPlanCompleteStatus.Future: Future += 1; break; default: break; } } }); } } /// /// 总数 /// public int Total { get; set; } /// /// 已超时 /// public int TimeOut { get; set; } /// /// 已完成 /// public int Complete { get; set; } /// /// 当前月待处理 /// public int Current { get; set; } /// /// 未来处理 /// public int Future { get; set; } public void CalcTotal() { Total = TimeOut + Complete + Current + Future; } public override string ToString() { return $"全年欲保养数:{Total}当月待保养数:{Current}全年已完成:{Complete}已超时数:{TimeOut}全年待完成数:{Current + Future}"; } } }