private List <string> GetStaffScore(DateTime stime, DateTime etime, string staffid, string staffname) { WK_TaskInfo conObj = new WK_TaskInfo(); conObj.Where(" {0} >= '{1}' and {2} <= '{3}' and ({4} like '%{5}%' or {6} like '%{7}%' or {8} like '%{9}%') ", WK_TaskInfo.Attribute.BeginTime.FieldName, stime.ToString("yyyy-MM-dd HH:mm:ss"), WK_TaskInfo.Attribute.EndTime.FieldName, etime.ToString("yyyy-MM-dd HH:mm:ss"), WK_TaskInfo.Attribute.PICEmpID.FieldName, ":" + staffid + ":1:" + staffname, WK_TaskInfo.Attribute.PICEmpID.FieldName, ":" + staffid + ":2:" + staffname, WK_TaskInfo.Attribute.PICEmpID.FieldName, ":" + staffid + ":3:" + staffname ); WK_TaskInfo valObj = new WK_TaskInfo(); valObj.CompRate = 0; valObj.ScoreNum = -1; valObj.ScoreNum_ME = -1; valObj.ScoreNum_BOSS = -1; List <WK_TaskInfo> tasks = BLLTable <WK_TaskInfo> .Factory(conn).Select(valObj, conObj); List <int> cr = new List <int>(); List <int> sn = new List <int>(); List <int> snme = new List <int>(); List <int> snboss = new List <int>(); foreach (WK_TaskInfo tk in tasks) { cr.Add(tk.CompRate); if (tk.ScoreNum >= 0) { sn.Add(tk.ScoreNum_ME); } if (tk.ScoreNum >= 0) { snme.Add(tk.ScoreNum_ME); } if (tk.ScoreNum_BOSS >= 0) { snboss.Add(tk.ScoreNum_BOSS); } } List <string> score = new List <string>(); if (tasks.Count > 0) { score.Add(staffid); score.Add(staffname); score.Add(stime.ToString("yyyy-MM-dd HH:mm:ss")); score.Add(etime.ToString("yyyy-MM-dd HH:mm:ss")); score.Add(tasks.Count.ToString()); score.Add(snme.Count > 0 ? (((snme.Sum() * 1.00) / snme.Count).ToString("F2") + " / " + snme.Count) : "-/-"); score.Add(sn.Count > 0 ? (((sn.Sum() * 1.00) / sn.Count).ToString("F2") + " / " + sn.Count) : "-/-"); score.Add(snboss.Count > 0 ? (((snboss.Sum() * 1.00) / snboss.Count).ToString("F2") + " / " + snboss.Count) : "-/-"); score.Add(cr.Count > 0 ? ((cr.Sum() * 1.00) / cr.Count).ToString("F2") : "-"); } return(score); }
private List<string> GetStaffScore(DateTime stime, DateTime etime, string staffid, string staffname) { WK_TaskInfo conObj = new WK_TaskInfo(); conObj.Where(" {0} >= '{1}' and {2} <= '{3}' and ({4} like '%{5}%' or {6} like '%{7}%' or {8} like '%{9}%') ", WK_TaskInfo.Attribute.BeginTime.FieldName, stime.ToString("yyyy-MM-dd HH:mm:ss"), WK_TaskInfo.Attribute.EndTime.FieldName, etime.ToString("yyyy-MM-dd HH:mm:ss"), WK_TaskInfo.Attribute.PICEmpID.FieldName, ":" + staffid + ":1:" + staffname, WK_TaskInfo.Attribute.PICEmpID.FieldName, ":" + staffid + ":2:" + staffname, WK_TaskInfo.Attribute.PICEmpID.FieldName, ":" + staffid + ":3:" + staffname ); WK_TaskInfo valObj = new WK_TaskInfo(); valObj.CompRate = 0; valObj.ScoreNum = -1; valObj.ScoreNum_ME = -1; valObj.ScoreNum_BOSS = -1; List<WK_TaskInfo> tasks = BLLTable<WK_TaskInfo>.Factory(conn).Select(valObj, conObj); List<int> cr = new List<int>(); List<int> sn = new List<int>(); List<int> snme = new List<int>(); List<int> snboss = new List<int>(); foreach (WK_TaskInfo tk in tasks) { cr.Add(tk.CompRate); if (tk.ScoreNum >= 0) sn.Add(tk.ScoreNum_ME); if (tk.ScoreNum >= 0) snme.Add(tk.ScoreNum_ME); if (tk.ScoreNum_BOSS >= 0) snboss.Add(tk.ScoreNum_BOSS); } List<string> score = new List<string>(); if (tasks.Count > 0) { score.Add(staffid); score.Add(staffname); score.Add(stime.ToString("yyyy-MM-dd HH:mm:ss")); score.Add(etime.ToString("yyyy-MM-dd HH:mm:ss")); score.Add(tasks.Count.ToString()); score.Add(snme.Count > 0 ? (((snme.Sum() * 1.00) / snme.Count).ToString("F2") + " / " + snme.Count) : "-/-"); score.Add(sn.Count > 0 ? (((sn.Sum() * 1.00) / sn.Count).ToString("F2") + " / " + sn.Count) : "-/-"); score.Add(snboss.Count > 0 ? (((snboss.Sum() * 1.00) / snboss.Count).ToString("F2") + " / " + snboss.Count) : "-/-"); score.Add(cr.Count > 0 ? ((cr.Sum() * 1.00) / cr.Count).ToString("F2") : "-"); } return score; }