protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { //设置默认值 if (string.IsNullOrEmpty(action)) { groupID = "36"; state = ((int)UserState.Normal).ToString(); } if (action == "search" && companyID > 0) { startDate = RequestHelper.GetQueryString <DateTime>("SearchStartDate"); endDate = RequestHelper.GetQueryString <DateTime>("SearchEndDate"); SearchStartDate.Text = startDate.ToString("d"); SearchEndDate.Text = endDate.ToString("d"); companyModel = CompanyBLL.ReadCompany(companyID); companyName = companyModel.CompanyName; CompanyInfo companySearch = new CompanyInfo(); companySearch.Field = "CompanyId"; companySearch.Condition = CompanyBLL.ReadCompanyIdList(companyID.ToString()); companySearch.State = 0; companySearch.GroupIdCondition = "0,3"; List <CompanyInfo> companyList = CompanyBLL.ReadCompanyList(companySearch); //有效学习统计开始 int AllPassCourseNum = 0, AllCourseNum = 0, AllUserNum = 0, TotalNum = 0, CompanyNum = 0; double PassAverage = 0.0, PerPassAverage = 0.0, PerAllAverage = 0.0; string NoPassCompanyName = string.Empty, AverageCourseNumCompanyName = string.Empty; StringBuilder MonthOut = new StringBuilder(); MonthOut.Append("<table class=\"listTable\">"); MonthOut.Append("<tr class=\"listTableHead\"><td colspan=\"11\">" + companyModel.CompanyName + " 人员数据统计["); if (startDate != DateTime.MinValue) { MonthOut.Append("从" + startDate.ToString("d")); } else { MonthOut.Append("从项目启动"); } MonthOut.Append("到" + endDate.ToString("d") + "]</td></tr>"); MonthOut.Append("<tr class=\"listTableHead\">"); MonthOut.Append("<td>店名</td>"); MonthOut.Append("<td>项目启动时间</td>"); MonthOut.Append("<td>系统登记<br />应考人数</td>"); MonthOut.Append("<td>累计参加<br />考试人数</td>"); MonthOut.Append("<td>累计学习<br />考试次数</td>"); MonthOut.Append("<td>考试通过<br />课程数量</td>"); MonthOut.Append("<td>人均学习<br />课程数量</td>"); MonthOut.Append("<td>人均通过<br />课程数量</td>"); MonthOut.Append("<td>参考人员<br />人均学习<br />课程数量</td>"); MonthOut.Append("<td>参考人员<br />人均通过<br />课程数量</td>"); MonthOut.Append("<td>课程考试<br />通过率</td>"); MonthOut.Append("</tr>"); endDate = endDate.AddDays(1); foreach (CompanyInfo _CompanyModel in companyList) { if (!string.IsNullOrEmpty(_CompanyModel.PostStartDate.ToString()) && Convert.ToDateTime(_CompanyModel.PostStartDate.ToString()) < endDate) { int PassCourseNum = 0, CourseNum = 0, UserNum = 0, Num = 0; UserSearchInfo userSearch = new UserSearchInfo(); userSearch.InCompanyID = _CompanyModel.CompanyId.ToString(); userSearch.InStatus = state; userSearch.InGroupID = groupID; userSearch.InWorkingPostID = postIdCondition; userSearch.InStudyPostID = studyPostIdCondition; List <UserInfo> userList = UserBLL.SearchUserList(userSearch); Num = userList.Count; TestPaperInfo TestPaperModel = new TestPaperInfo(); TestPaperModel.TestMinDate = startDate; TestPaperModel.TestMaxDate = endDate; TestPaperModel.UserIdCondition = UserBLL.ReadUserIdStr(userList); TestPaperModel.CompanyIdCondition = _CompanyModel.CompanyId.ToString(); List <TestPaperInfo> TempList = TestPaperBLL.NewReadList(TestPaperModel); string UserId = string.Empty; foreach (TestPaperInfo Info in TempList) { if (!StringHelper.CompareSingleString(UserId, Info.UserId.ToString())) { UserId += "," + Info.UserId.ToString(); } if (Info.IsPass == 1) { PassCourseNum += 1; } } if (UserId.StartsWith(",")) { UserId = UserId.Substring(1); } if (string.IsNullOrEmpty(UserId)) { UserNum = 0; } else { UserNum = UserId.Split(',').Length; } CourseNum = TempList.Count; double SinglePassRate; //单店课程通过率 if (CourseNum == 0) { SinglePassRate = 0; } else { SinglePassRate = (double)PassCourseNum / (double)CourseNum; } if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == companyID) { CompanyNum += 1; //通过率大于22%的公司数量 TotalNum += Num; //总人数 AllUserNum += UserNum; //总参加考试人数 AllCourseNum += CourseNum; //总考试课程数 AllPassCourseNum += PassCourseNum; //总通过考试课程数 } else { NoPassCompanyName += _CompanyModel.CompanySimpleName + " "; } MonthOut.Append("<tr class=\"listTableMain\">"); MonthOut.Append("<td>" + _CompanyModel.CompanySimpleName + "</td>"); MonthOut.Append("<td>" + Convert.ToDateTime(_CompanyModel.PostStartDate.ToString()).ToString("yyyy年M月") + "</td>"); MonthOut.Append("<td>" + Num.ToString() + "</td>"); MonthOut.Append("<td>" + UserNum.ToString() + "</td>"); MonthOut.Append("<td>" + CourseNum + "</td>"); MonthOut.Append("<td>" + PassCourseNum + "</td>"); if (Num == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { if (startDate == DateTime.MinValue || (endDate - startDate).Days > 7 || Math.Round(((double)CourseNum / Num), 1) >= 2.2) { MonthOut.Append("<td>" + Math.Round(((double)CourseNum / Num), 1) + "</td>"); } else { AverageCourseNumCompanyName += _CompanyModel.CompanySimpleName + " "; MonthOut.Append("<td style=\"background:#FF0000;\">" + Math.Round(((double)CourseNum / Num), 1) + "</td>"); } MonthOut.Append("<td>" + Math.Round(((double)PassCourseNum / Num), 1) + "</td>"); if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == companyID) { PerAllAverage += Math.Round(((double)CourseNum / Num), 1); PerPassAverage += Math.Round(((double)PassCourseNum / Num), 1); } } //计算参考人员人均值 if (UserNum == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { MonthOut.Append("<td>" + Math.Round(((double)CourseNum / UserNum), 1) + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)PassCourseNum / UserNum), 1) + "</td>"); } if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == companyID) { MonthOut.Append("<td>" + SinglePassRate.ToString("P") + "</td>"); PassAverage += SinglePassRate; } else { MonthOut.Append("<td style=\"background:#FF0000;\">" + SinglePassRate.ToString("P") + "</td>"); } MonthOut.Append("</tr>"); } } MonthOut.Append("<tr class=\"listTableHead\">"); MonthOut.Append("<td colspan=\"2\">" + companyModel.CompanySimpleName + "有效学习合计</td>"); MonthOut.Append("<td>" + TotalNum.ToString() + "</td>"); MonthOut.Append("<td>" + AllUserNum.ToString() + "</td>"); MonthOut.Append("<td>" + AllCourseNum + "</td>"); MonthOut.Append("<td>" + AllPassCourseNum + "</td>"); if (TotalNum == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { //MonthOut.Append("<td>" + Math.Round((PerAllAverage / CompanyNum), 1) + "</td>"); //MonthOut.Append("<td>" + Math.Round((PerPassAverage / CompanyNum), 1) + "</td>"); //MonthOut.Append("<td>" + (PassAverage / CompanyNum).ToString("P") + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)AllCourseNum / TotalNum), 1) + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)AllPassCourseNum / TotalNum), 1) + "</td>"); } if (AllUserNum == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { MonthOut.Append("<td>" + Math.Round(((double)AllCourseNum / AllUserNum), 1) + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)AllPassCourseNum / AllUserNum), 1) + "</td>"); } if (AllCourseNum == 0) { MonthOut.Append("<td>0</td>"); } else { MonthOut.Append("<td>" + ((double)AllPassCourseNum / (double)AllCourseNum).ToString("P") + "</td>"); } MonthOut.Append("</tr>"); MonthOut.Append("</table>"); if (AllCourseNum <= 0) { MonthOut.Insert(0, "<p>课程学习的考试通过率为 <span style=\"color:#FF0000;\"> 0 </span></p><br /></div>"); } else { MonthOut.Insert(0, "<p>课程学习的考试通过率为 <span style=\"color:#FF0000;\">" + ((double)AllPassCourseNum / (double)AllCourseNum).ToString("P") + "</span></p><br /></div>"); } MonthOut.Insert(0, "在孟特EMS考试系统中进行有效学习的人数为 <span style=\"color:#FF0000;\">" + TotalNum.ToString() + " 人</span></p><br /><p>累计进行了 <span style=\"color:#FF0000;\">" + AllCourseNum.ToString() + " 次</span>课程的学习,人均进行了 <span style=\"color:#FF0000;\">" + Math.Round(((double)AllCourseNum / TotalNum), 1) + " 次</span>课程考试</p><br /><p>其中学习通过 <span style=\"color:#FF0000;\">" + AllPassCourseNum + " 门</span>课程考试,人均通过 <span style=\"color:#FF0000;\">" + Math.Round(((double)AllPassCourseNum / TotalNum), 1) + " 门</span>课程</p><br />"); MonthOut.Insert(0, "到" + endDate.AddDays(-1).ToString("d")); if (startDate != DateTime.MinValue) { MonthOut.Insert(0, "从" + startDate.ToString("d")); } else { MonthOut.Insert(0, "从项目启动"); } if (companyModel.GroupId == 1 || companyModel.GroupId == 2) { MonthOut.Insert(0, "集团"); } else { MonthOut.Insert(0, "贵司"); } MonthOut.Insert(0, "<div style=\" text-align:left; font-size:14px;\"><p>"); MonthOut.Append("<div style=\"line-height:25px; text-align:left; font-size:14px;\"><p style=\"text-align:left; font-size:14px;\"><font color=\"red\">人均学习课程数量:</font>代表团队对学习重视的程度,越高代表越重视学习,建议<span style=\"color:#FF0000;\">不低于每周人均2.2门课程,每月人均8.5门课程</span>,低于指标者请部门领导对学习加大关注。</p>"); if (startDate != DateTime.MinValue && (endDate - startDate).Days <= 7 && !string.IsNullOrEmpty(AverageCourseNumCompanyName) && (companyModel.GroupId == 1 || companyModel.GroupId == 2)) { MonthOut.Append("<p style=\"text-align:left; color:#3366ff; font-size:14px;\">目前人均学习数量低于每周人均2.2门课程的团队有:<span style=\"color:#FF0000;\">" + AverageCourseNumCompanyName + "</span>;请相关领导予以关注。</p>"); // else if (string.IsNullOrEmpty(AverageCourseNumCompanyName) && (CompanyModel.GroupId == 1 || CompanyModel.GroupId == 2)) MonthOut.Append("<p style=\"text-align:left; color:#3366ff; font-size:14px;\">目前有效人均学习数量为: <span style=\"color:#FF0000;\">" + Math.Round(((double)AllCourseNum / TotalNum), 1) + " 次</span>,"); if (Math.Round(((double)AllCourseNum / TotalNum), 1) >= 2.2) { MonthOut.Append("表现良好,请再接再厉。</p>"); } else { MonthOut.Append("请相关领导予以关注。</p>"); } } MonthOut.Append("<br />"); MonthOut.Append("<p style=\"text-align:left; font-size:14px;\"><font color=\"red\">课程考试通过率:</font>通过率高代表团队学习认真,若<span style=\"color:#FF0000;\">通过率低于22%</span>,表示学员没有学习课程,只是通过不断考试来<span style=\"color:#FF0000;\">试图懵过考核</span>,请部门领导制止不当的学习行为。</p>"); if (!string.IsNullOrEmpty(NoPassCompanyName) && (companyModel.GroupId == 1 || companyModel.GroupId == 2)) { MonthOut.Append("<p style=\"text-align:left; color:#3366ff; font-size:14px;\">目前通过率低于22%的团队有: <span style=\"color:#FF0000;\">" + NoPassCompanyName + "</span>,请相关领导予以关注,以上4S店视为无效学习,全部数据不列入集团学习效果统计。</p>"); } else if (string.IsNullOrEmpty(NoPassCompanyName) && (companyModel.GroupId == 1 || companyModel.GroupId == 2)) { MonthOut.Append("<p style=\"text-align:left; color:#3366ff; font-size:14px;\">目前通过率为: <span style=\"color:#FF0000;\">" + ((double)AllPassCourseNum / (double)AllCourseNum).ToString("P") + "</span>,表现良好,请再接再厉。</p>"); } MonthOut.Append("</div>"); //有效学习统计结束 //有效学习统计开始 //AllPassCourseNum = 0; //AllCourseNum = 0; //AllUserNum = 0; //TotalNum = 0; //CompanyNum = 0; //MonthOut.Append("<br><br>"); //MonthOut.Append("<table class=\"listTable\">"); //MonthOut.Append("<tr class=\"listTableHead\"><td colspan=\"11\">" + companyModel.CompanyName + " 人员数据统计(除了删除人员以外的所有考试人员) ["); //if (startDate != DateTime.MinValue) MonthOut.Append("从" + startDate.ToString("d")); //else MonthOut.Append("从项目启动"); //MonthOut.Append("到" + endDate.AddDays(-1).ToString("d") + "]</td></tr>"); //MonthOut.Append("<tr class=\"listTableHead\">"); //MonthOut.Append("<td>店名</td>"); //MonthOut.Append("<td>项目启动时间</td>"); //MonthOut.Append("<td>系统登记<br />人数</td>"); //MonthOut.Append("<td>累计参加<br />考试人数</td>"); //MonthOut.Append("<td>累计学习<br />考试次数</td>"); //MonthOut.Append("<td>考试通过<br />课程数量</td>"); //MonthOut.Append("<td>人均学习<br />课程数量</td>"); //MonthOut.Append("<td>人均通过<br />课程数量</td>"); //MonthOut.Append("<td>参考人员<br />人均学习<br />课程数量</td>"); //MonthOut.Append("<td>参考人员<br />人均通过<br />课程数量</td>"); //MonthOut.Append("<td>课程考试<br />通过率</td>"); //MonthOut.Append("</tr>"); //foreach (CompanyInfo _CompanyModel in companyList) //{ // if (!string.IsNullOrEmpty(_CompanyModel.PostStartDate.ToString()) && Convert.ToDateTime(_CompanyModel.PostStartDate.ToString()) < endDate) // { // int PassCourseNum = 0, CourseNum = 0, UserNum = 0, Num = 0; // UserSearchInfo userSearch = new UserSearchInfo(); // userSearch.InCompanyID = _CompanyModel.CompanyId.ToString(); // userSearch.InStatus = state; // userSearch.InGroupID = groupID; // userSearch.InWorkingPostID = postIdCondition; // userSearch.InStudyPostID = studyPostIdCondition; // List<UserInfo> userList = UserBLL.SearchUserList(userSearch); // Num = userList.Count; // //应考人数(去除在待考分组的人) // //int YKNum = userList.FindAll(delegate(UserInfo TempModel) { return TempModel.Status == (int)UserState.Normal; }).Count; // //Num = YKNum; // TestPaperInfo TestPaperModel = new TestPaperInfo(); // TestPaperModel.TestMinDate = startDate; // TestPaperModel.TestMaxDate = endDate; // TestPaperModel.UserIdCondition = UserBLL.ReadUserIdStr(userList); // TestPaperModel.CompanyIdCondition = _CompanyModel.CompanyId.ToString(); // List<TestPaperInfo> TempList = TestPaperBLL.NewReadList(TestPaperModel); // string UserId = string.Empty; // foreach (TestPaperInfo Info in TempList) // { // if (!StringHelper.CompareSingleString(UserId, Info.UserId.ToString())) // { // UserId += "," + Info.UserId.ToString(); // } // if (Info.IsPass == 1) // { // PassCourseNum += 1; // } // } // if (UserId.StartsWith(",")) UserId = UserId.Substring(1); // if (string.IsNullOrEmpty(UserId)) // { // UserNum = 0; // } // else // { // UserNum = UserId.Split(',').Length; // } // CourseNum = TempList.Count; // double SinglePassRate; //单店课程通过率 // if (CourseNum == 0) // SinglePassRate = 0; // else // SinglePassRate = (double)PassCourseNum / (double)CourseNum; // if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == companyID) // { // CompanyNum += 1; //通过率大于22%的公司数量 // TotalNum += Num; //总人数 // AllUserNum += UserNum; //总参加考试人数 // AllCourseNum += CourseNum; //总考试课程数 // AllPassCourseNum += PassCourseNum; //总通过考试课程数 // } // else // { // NoPassCompanyName += _CompanyModel.CompanySimpleName + " "; // } // MonthOut.Append("<tr class=\"listTableMain\">"); // MonthOut.Append("<td>" + _CompanyModel.CompanySimpleName + "</td>"); // MonthOut.Append("<td>" + Convert.ToDateTime(_CompanyModel.PostStartDate.ToString()).ToString("yyyy年M月") + "</td>"); // MonthOut.Append("<td>" + Num.ToString() + "</td>"); // MonthOut.Append("<td>" + UserNum.ToString() + "</td>"); // MonthOut.Append("<td>" + CourseNum + "</td>"); // MonthOut.Append("<td>" + PassCourseNum + "</td>"); // if (Num == 0) // { // MonthOut.Append("<td>0</td>"); // MonthOut.Append("<td>0</td>"); // } // else // { // if (startDate == DateTime.MinValue || (endDate - startDate).Days > 7 || Math.Round(((double)CourseNum / Num), 1) >= 2.2) // { // MonthOut.Append("<td>" + Math.Round(((double)CourseNum / Num), 1) + "</td>"); // } // else // { // AverageCourseNumCompanyName += _CompanyModel.CompanySimpleName + " "; // MonthOut.Append("<td style=\"background:#FF0000;\">" + Math.Round(((double)CourseNum / Num), 1) + "</td>"); // } // MonthOut.Append("<td>" + Math.Round(((double)PassCourseNum / Num), 1) + "</td>"); // if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == companyID) // { // PerAllAverage += Math.Round(((double)CourseNum / Num), 1); // PerPassAverage += Math.Round(((double)PassCourseNum / Num), 1); // } // } // //计算参考人员人均值 // if (UserNum == 0) // { // MonthOut.Append("<td>0</td>"); // MonthOut.Append("<td>0</td>"); // } // else // { // MonthOut.Append("<td>" + Math.Round(((double)CourseNum / UserNum), 1) + "</td>"); // MonthOut.Append("<td>" + Math.Round(((double)PassCourseNum / UserNum), 1) + "</td>"); // } // if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == companyID) // { // MonthOut.Append("<td>" + SinglePassRate.ToString("P") + "</td>"); // PassAverage += SinglePassRate; // } // else // { // MonthOut.Append("<td style=\"background:#FF0000;\">" + SinglePassRate.ToString("P") + "</td>"); // } // MonthOut.Append("</tr>"); // } //} //MonthOut.Append("<tr class=\"listTableHead\">"); //MonthOut.Append("<td colspan=\"2\">" + companyModel.CompanySimpleName + "有效学习合计</td>"); //MonthOut.Append("<td>" + TotalNum.ToString() + "</td>"); //MonthOut.Append("<td>" + AllUserNum.ToString() + "</td>"); //MonthOut.Append("<td>" + AllCourseNum + "</td>"); //MonthOut.Append("<td>" + AllPassCourseNum + "</td>"); //if (TotalNum == 0) //{ // MonthOut.Append("<td>0</td>"); // MonthOut.Append("<td>0</td>"); //} //else //{ // //MonthOut.Append("<td>" + Math.Round((PerAllAverage / CompanyNum), 1) + "</td>"); // //MonthOut.Append("<td>" + Math.Round((PerPassAverage / CompanyNum), 1) + "</td>"); // //MonthOut.Append("<td>" + (PassAverage / CompanyNum).ToString("P") + "</td>"); // MonthOut.Append("<td>" + Math.Round(((double)AllCourseNum / TotalNum), 1) + "</td>"); // MonthOut.Append("<td>" + Math.Round(((double)AllPassCourseNum / TotalNum), 1) + "</td>"); //} //if (AllUserNum == 0) //{ // MonthOut.Append("<td>0</td>"); // MonthOut.Append("<td>0</td>"); //} //else //{ // MonthOut.Append("<td>" + Math.Round(((double)AllCourseNum / AllUserNum), 1) + "</td>"); // MonthOut.Append("<td>" + Math.Round(((double)AllPassCourseNum / AllUserNum), 1) + "</td>"); //} //if (AllCourseNum == 0) // MonthOut.Append("<td>0</td>"); //else // MonthOut.Append("<td>" + ((double)AllPassCourseNum / (double)AllCourseNum).ToString("P") + "</td>"); //MonthOut.Append("</tr>"); //MonthOut.Append("</table>"); //MonthOut.Append("<br><br>"); //有效学习统计结束 //岗位资质认证统计开始 MonthOut.Append("<table class=\"listTable\">"); MonthOut.Append("<tr class=\"listTableHead\"><td colspan=\"9\">" + companyModel.CompanyName + " 岗位资质认证统计 ["); if (startDate != DateTime.MinValue) { MonthOut.Append("从" + startDate.ToString("d")); } else { MonthOut.Append("从项目启动"); } MonthOut.Append("到" + endDate.AddDays(-1).ToString("d") + "]</td></tr>"); MonthOut.Append("<tr class=\"listTableHead\">"); MonthOut.Append("<td>店名</td>"); MonthOut.Append("<td>姓名</td>"); MonthOut.Append("<td>在职岗位</td>"); MonthOut.Append("<td>已通过的<br />认证岗位</td>"); //MonthOut.Append("<td>岗位考核<br />课程数量</td>"); MonthOut.Append("<td>累计通过<br />岗位数量</td>"); MonthOut.Append("<td>目前正在<br />学习岗位</td>"); MonthOut.Append("</tr>"); foreach (CompanyInfo _CompanyModel in companyList) { PostPassInfo PostPassModel = new PostPassInfo(); PostPassModel.SearchStartDate = startDate; PostPassModel.CreateDate = endDate; List <ReportPostPassInfo> PostPassList = PostPassBLL.PostPassReportList(PostPassModel, _CompanyModel.CompanyId.ToString()); foreach (ReportPostPassInfo Info in PostPassList) { MonthOut.Append("<tr class=\"listTableMain\">"); MonthOut.Append("<td>" + _CompanyModel.CompanySimpleName + "</td>"); MonthOut.Append("<td>" + Info.RealName + "</td>"); if (string.IsNullOrEmpty(Info.WorkingPostName)) { MonthOut.Append("<td>" + PostBLL.ReadPost(Info.WorkingPostId).PostName + "</td>"); } else { MonthOut.Append("<td>" + Info.WorkingPostName + "</td>"); } MonthOut.Append("<td>" + Info.PassPostName + "</td>"); MonthOut.Append("<td>" + Info.PassPostNum.ToString() + "</td>"); MonthOut.Append("<td>" + PostBLL.ReadPost(Info.StudyPostId).PostName + "</td>"); MonthOut.Append("</tr>"); } } MonthOut.Append("</table>"); //岗位资质认证统计结束 ReportList.InnerHtml = MonthOut.ToString(); ReportList.InnerHtml += HistoryData(companyList, endDate); } } }
protected override void PageLoad() { base.PageLoad(); base.Title = "综合情况统计表"; base.CheckUserPower("ReadEMSReport", PowerCheckType.Single); if (!base.ExistsSonCompany || Action == "Search" || !base.CompareUserPower("ManageGroupCompany", PowerCheckType.Single)) { if (EndDate == DateTime.MinValue) { EndDate = DateTime.Today; } List <CompanyInfo> sonCompanyList = new List <CompanyInfo>(); if (CompanyID <= 0) { CompanyID = base.UserCompanyID; } CompanyModel = CompanyBLL.ReadCompany(CompanyID); if (base.CompareUserPower("ManageGroupCompany", PowerCheckType.Single)) { //减少使用递归方法的频率 if (CompanyID != base.UserCompanyID) { sonCompanyList = CompanyBLL.ReadCompanyListByCompanyId(CompanyBLL.ReadCompanyIdList(CompanyID.ToString())); } else { sonCompanyList = base.SonCompanyList; } } else { sonCompanyList.Add(CompanyModel); } int AllPassCourseNum = 0, AllCourseNum = 0, AllUserNum = 0, TotalNum = 0, CompanyNum = 0; double PassAverage = 0.0, PerPassAverage = 0.0, PerAllAverage = 0.0; string NoPassCompanyName = string.Empty, AverageCourseNumCompanyName = string.Empty; StringBuilder MonthOut = new StringBuilder(); MonthOut.Append("<table class=\"evaluation_sheet\">"); MonthOut.Append("<tr><th colspan=\"11\">" + CompanyModel.CompanyName + " 在职人员数据统计 ["); if (StartDate != DateTime.MinValue) { MonthOut.Append("从" + StartDate.ToString("d")); } else { MonthOut.Append("从项目启动"); } MonthOut.Append("到" + EndDate.ToString("d") + "]</th></tr>"); MonthOut.Append("<tr>"); MonthOut.Append("<th>店名</th>"); MonthOut.Append("<th>项目启动时间</th>"); MonthOut.Append("<th>系统登记<br />人数</th>"); MonthOut.Append("<th>累计参加<br />考试人数</th>"); MonthOut.Append("<th>累计学习<br />考试次数</th>"); MonthOut.Append("<th>考试通过<br />课程数量</th>"); MonthOut.Append("<th>人均学习<br />课程数量</th>"); MonthOut.Append("<th>人均通过<br />课程数量</th>"); MonthOut.Append("<th>参考人员<br />人均学习<br />课程数量</th>"); MonthOut.Append("<th>参考人员<br />人均通过<br />课程数量</th>"); MonthOut.Append("<th>课程考试<br />通过率</th>"); MonthOut.Append("</tr>"); EndDate = EndDate.AddDays(1); foreach (CompanyInfo _CompanyModel in sonCompanyList) { if (_CompanyModel.CompanyId != CompanyID || !base.IsGroupCompany(_CompanyModel.GroupId)) { if (!string.IsNullOrEmpty(_CompanyModel.PostStartDate.ToString()) && Convert.ToDateTime(_CompanyModel.PostStartDate.ToString()) < EndDate) { string UserId = string.Empty; int PassCourseNum = 0, CourseNum = 0, UserNum = 0, Num = 0; UserSearchInfo userSearch = new UserSearchInfo(); userSearch.InCompanyID = _CompanyModel.CompanyId.ToString(); userSearch.StatusNoEqual = (int)UserState.Del; //userSearch.GroupId = 36; List <UserInfo> userList = UserBLL.SearchReportUserList(userSearch); Num = userList.Count; //应考人数(去除在待考分组的人) //int YKNum = userList.FindAll(delegate(UserInfo TempModel) { return TempModel.Status == (int)UserState.Normal; }).Count; //Num = YKNum; TestPaperInfo TestPaperModel = new TestPaperInfo(); TestPaperModel.TestMinDate = StartDate; TestPaperModel.TestMaxDate = EndDate; TestPaperModel.UserIdCondition = UserBLL.ReadUserIdStr(userList); TestPaperModel.CompanyIdCondition = _CompanyModel.CompanyId.ToString(); List <TestPaperInfo> TempList = TestPaperBLL.NewReadList(TestPaperModel); foreach (TestPaperInfo Info in TempList) { if (!StringHelper.CompareSingleString(UserId, Info.UserId.ToString())) { UserId += "," + Info.UserId.ToString(); } if (Info.IsPass == 1) { PassCourseNum += 1; } } if (UserId.StartsWith(",")) { UserId = UserId.Substring(1); } if (string.IsNullOrEmpty(UserId)) { UserNum = 0; } else { UserNum = UserId.Split(',').Length; } CourseNum = TempList.Count; double SinglePassRate; //单店课程通过率 if (CourseNum == 0) { SinglePassRate = 0; } else { SinglePassRate = (double)PassCourseNum / (double)CourseNum; } if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == CompanyID) { CompanyNum += 1; //通过率大于22%的公司数量 TotalNum += Num; //总人数 AllUserNum += UserNum; //总参加考试人数 AllCourseNum += CourseNum; //总考试课程数 AllPassCourseNum += PassCourseNum; //总通过考试课程数 } else { NoPassCompanyName += _CompanyModel.CompanySimpleName + " "; } MonthOut.Append("<tr>"); MonthOut.Append("<td>" + _CompanyModel.CompanySimpleName + "</td>"); MonthOut.Append("<td>" + Convert.ToDateTime(_CompanyModel.PostStartDate.ToString()).ToString("yyyy年M月") + "</td>"); MonthOut.Append("<td>" + Num.ToString() + "</td>"); MonthOut.Append("<td>" + UserNum.ToString() + "</td>"); MonthOut.Append("<td>" + CourseNum + "</td>"); MonthOut.Append("<td>" + PassCourseNum + "</td>"); if (Num == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { if (StartDate == DateTime.MinValue || (EndDate - StartDate).Days > 7 || Math.Round(((double)CourseNum / Num), 1) >= 2.2) { MonthOut.Append("<td>" + Math.Round(((double)CourseNum / Num), 1) + "</td>"); } else { AverageCourseNumCompanyName += _CompanyModel.CompanySimpleName + " "; MonthOut.Append("<td style=\"background:#FF0000;\">" + Math.Round(((double)CourseNum / Num), 1) + "</td>"); } MonthOut.Append("<td>" + Math.Round(((double)PassCourseNum / Num), 1) + "</td>"); if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == CompanyID) { PerAllAverage += Math.Round(((double)CourseNum / Num), 1); PerPassAverage += Math.Round(((double)PassCourseNum / Num), 1); } } //计算参考人员人均值 if (UserNum == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { MonthOut.Append("<td>" + Math.Round(((double)CourseNum / UserNum), 1) + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)PassCourseNum / UserNum), 1) + "</td>"); } if (SinglePassRate >= 0.22 || _CompanyModel.CompanyId == CompanyID) { MonthOut.Append("<td>" + SinglePassRate.ToString("P") + "</td>"); PassAverage += SinglePassRate; } else { MonthOut.Append("<td style=\"background:#FF0000;\">" + SinglePassRate.ToString("P") + "</td>"); } MonthOut.Append("</tr>"); } } } MonthOut.Append("<tr>"); MonthOut.Append("<td colspan=\"2\">" + CompanyModel.CompanySimpleName + "有效学习合计</td>"); MonthOut.Append("<td>" + TotalNum.ToString() + "</td>"); MonthOut.Append("<td>" + AllUserNum.ToString() + "</td>"); MonthOut.Append("<td>" + AllCourseNum + "</td>"); MonthOut.Append("<td>" + AllPassCourseNum + "</td>"); if (TotalNum == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { //MonthOut.Append("<td>" + Math.Round((PerAllAverage / CompanyNum), 1) + "</td>"); //MonthOut.Append("<td>" + Math.Round((PerPassAverage / CompanyNum), 1) + "</td>"); //MonthOut.Append("<td>" + (PassAverage / CompanyNum).ToString("P") + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)AllCourseNum / TotalNum), 1) + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)AllPassCourseNum / TotalNum), 1) + "</td>"); } if (AllUserNum == 0) { MonthOut.Append("<td>0</td>"); MonthOut.Append("<td>0</td>"); } else { MonthOut.Append("<td>" + Math.Round(((double)AllCourseNum / AllUserNum), 1) + "</td>"); MonthOut.Append("<td>" + Math.Round(((double)AllPassCourseNum / AllUserNum), 1) + "</td>"); } if (AllCourseNum == 0) { MonthOut.Append("<td>0</td>"); } else { MonthOut.Append("<td>" + ((double)AllPassCourseNum / (double)AllCourseNum).ToString("P") + "</td>"); } MonthOut.Append("</tr>"); MonthOut.Append("</table>"); MonthOut.Insert(0, "在孟特EMS考试系统中进行有效学习的人数为 <span style=\"color:#FF0000;\">" + TotalNum.ToString() + " 人</span></li><li>累计进行了 <span style=\"color:#FF0000;\">" + AllCourseNum.ToString() + " 次</span>课程的学习,人均进行了 <span style=\"color:#FF0000;\">" + Math.Round(((double)AllCourseNum / TotalNum), 1) + " 次</span>课程考试</li><li>其中学习通过 <span style=\"color:#FF0000;\">" + AllPassCourseNum + " 门</span>课程考试,人均通过 <span style=\"color:#FF0000;\">" + Math.Round(((double)AllPassCourseNum / TotalNum), 1) + " 门</span>课程</li><li>课程学习的考试通过率为 <span style=\"color:#FF0000;\">" + ((double)AllPassCourseNum / (double)AllCourseNum).ToString("P") + "</span></li></ul>"); MonthOut.Insert(0, "到" + EndDate.AddDays(-1).ToString("d")); if (StartDate != DateTime.MinValue) { MonthOut.Insert(0, "从" + StartDate.ToString("d")); } else { MonthOut.Insert(0, "从项目启动"); } if (CompanyModel.GroupId == 1 || CompanyModel.GroupId == 2) { MonthOut.Insert(0, "集团"); } else { MonthOut.Insert(0, "贵司"); } MonthOut.Insert(0, "<ul class=\"ReportList_count\"><li>"); MonthOut.Append("<ul class=\"ReportList_count\"><li><font color=\"red\">人均学习课程数量:</font>代表团队对学习重视的程度,越高代表越重视学习,建议<span style=\"color:#FF0000;\">不低于每周人均2.2门课程,每月人均8.5门课程</span>,低于指标者请部门领导对学习加大关注。</li>"); if (StartDate != DateTime.MinValue && (EndDate - StartDate).Days <= 7 && !string.IsNullOrEmpty(AverageCourseNumCompanyName) && (CompanyModel.GroupId == 1 || CompanyModel.GroupId == 2)) { MonthOut.Append("<li style=\"color:#3366ff;\">目前人均学习数量低于每周人均2.2门课程的团队有:<span style=\"color:#FF0000;\">" + AverageCourseNumCompanyName + "</span>;请相关领导予以关注。</li>"); // else if (string.IsNullOrEmpty(AverageCourseNumCompanyName) && (CompanyModel.GroupId == 1 || CompanyModel.GroupId == 2)) MonthOut.Append("<li style=\"color:#3366ff;\">目前有效人均学习数量为: <span style=\"color:#FF0000;\">" + Math.Round(((double)AllCourseNum / TotalNum), 1) + " 次</span>,"); if (Math.Round(((double)AllCourseNum / TotalNum), 1) >= 2.2) { MonthOut.Append("表现良好,请再接再厉。</li>"); } else { MonthOut.Append("请相关领导予以关注。</li>"); } } MonthOut.Append("<li><font color=\"red\">课程考试通过率:</font>通过率高代表团队学习认真,若<span style=\"color:#FF0000;\">通过率低于22%</span>,表示学员没有学习课程,只是通过不断考试来<span style=\"color:#FF0000;\">试图懵过考核</span>,请部门领导制止不当的学习行为。</li>"); if (!string.IsNullOrEmpty(NoPassCompanyName) && (CompanyModel.GroupId == 1 || CompanyModel.GroupId == 2)) { MonthOut.Append("<li style=\"color:#3366ff;\">目前通过率低于22%的团队有: <span style=\"color:#FF0000;\">" + NoPassCompanyName + "</span>,请相关领导予以关注,以上4S店视为无效学习,全部数据不列入集团学习效果统计。</li>"); } else if (string.IsNullOrEmpty(NoPassCompanyName) && (CompanyModel.GroupId == 1 || CompanyModel.GroupId == 2)) { MonthOut.Append("<li style=\"color:#3366ff; \">目前通过率为: <span style=\"color:#FF0000;\">" + ((double)AllPassCourseNum / (double)AllCourseNum).ToString("P") + "</span>,表现良好,请再接再厉。</li>"); } MonthOut.Append("</ul>"); //添加通过岗位报表 MonthOut.Append("<div class=\"split_line\"></div>"); MonthOut.Append("<table class=\"evaluation_sheet\">"); MonthOut.Append("<tr><th colspan=\"9\">" + CompanyModel.CompanyName + " 岗位资质认证统计 ["); if (StartDate != DateTime.MinValue) { MonthOut.Append("从" + StartDate.ToString("d")); } else { MonthOut.Append("从项目启动"); } MonthOut.Append("到" + EndDate.AddDays(-1).ToString("d") + "]</th></tr>"); MonthOut.Append("<tr>"); MonthOut.Append("<th>店名</th>"); MonthOut.Append("<th>姓名</th>"); MonthOut.Append("<th>在职岗位</th>"); MonthOut.Append("<th>已通过的<br />认证岗位</th>"); //MonthOut.Append("<th>岗位考核<br />课程数量</th>"); MonthOut.Append("<th>累计通过<br />岗位数量</th>"); MonthOut.Append("<th>目前正在<br />学习岗位</th>"); MonthOut.Append("</tr>"); foreach (CompanyInfo _CompanyModel in sonCompanyList) { if (_CompanyModel.State != 0) { continue; } if (_CompanyModel.CompanyId != CompanyID || !base.IsGroupCompany(_CompanyModel.GroupId)) { PostPassInfo PostPassModel = new PostPassInfo(); PostPassModel.SearchStartDate = StartDate; PostPassModel.CreateDate = EndDate; List <ReportPostPassInfo> PostPassList = PostPassBLL.PostPassReportList(PostPassModel, _CompanyModel.CompanyId.ToString()); foreach (ReportPostPassInfo Info in PostPassList) { MonthOut.Append("<tr>"); MonthOut.Append("<td>" + _CompanyModel.CompanySimpleName + "</td>"); MonthOut.Append("<td>" + Info.RealName + "</td>"); if (string.IsNullOrEmpty(Info.WorkingPostName)) { MonthOut.Append("<td>" + PostBLL.ReadPost(Info.WorkingPostId).PostName + "</td>"); } else { MonthOut.Append("<td>" + Info.WorkingPostName + "</td>"); } MonthOut.Append("<td>" + Info.PassPostName + "</td>"); MonthOut.Append("<td>" + Info.PassPostNum.ToString() + "</td>"); MonthOut.Append("<td>" + PostBLL.ReadPost(Info.StudyPostId).PostName + "</td>"); MonthOut.Append("</tr>"); } } } MonthOut.Append("</table>"); ReportContentHtml = MonthOut.ToString(); ReportContentHtml += HistoryData(sonCompanyList, EndDate); } }