/// <summary> /// 详情页面 /// </summary> /// <param name="deptid"></param> /// <param name="year">年份</param> /// <param name="month">月份</param> /// <returns></returns> public ActionResult Detail(string deptid, string year, string month) { var searchDept = new DepartmentBLL().GetList().FirstOrDefault(p => p.DepartmentId == deptid); if (searchDept == null) { searchDept = new DepartmentEntity(); } List <string> submituserids = new SelfEvaluateBLL().GetSubmitByDeptCode(searchDept.EnCode, year, month);//该部门下已提交人的人的Id var allUser = new UserBLL().GetList().Where(p => p.IsPresence == "1" && p.DepartmentCode.Contains(searchDept.DeptCode)).ToList(); List <string> submitUserNames = allUser.Where(p => submituserids.Contains(p.UserId) && p.IsPresence == "1").Select(p => p.RealName).ToList(); //已提交的人 List <string> notSubmitUserNames = allUser.Where(p => p.DepartmentCode != null && p.DepartmentCode.StartsWith(searchDept.EnCode) && !submituserids.Contains(p.UserId)).Select(x => x.RealName).ToList(); //未提交的人 EvaluateGroupSummaryEntity groupSummary = new SelfEvaluateBLL().GetSummary(year, month, searchDept.DepartmentId); //该部门的小结 ViewBag.SubmitUser = submitUserNames; //已提交的人数 ViewBag.NotSubmitUser = notSubmitUserNames; //未提交人 ViewBag.GroupSummary = groupSummary; //本单位的填报情况小结 //安全危害 DataTable dangerDT = new SelfEvaluateBLL().GetDangerCount(searchDept.EnCode, year, month); Dictionary <string, int> dangerKV = new Dictionary <string, int>(); if (dangerDT.Rows != null && dangerDT.Rows.Count > 0) { var dangerDrEnumerator = dangerDT.Rows.GetEnumerator(); while (dangerDrEnumerator.MoveNext()) { DataRow dangerCurrent = dangerDrEnumerator.Current as DataRow; string dangerName = dangerCurrent["DANGER"] == null ? "" : dangerCurrent["DANGER"].ToString(); if (!string.IsNullOrWhiteSpace(dangerName)) { dangerKV.Add(dangerName, dangerCurrent["COUNT"] == null ? 0 : Convert.ToInt32(dangerCurrent["COUNT"])); } } } //PPE需求 DataTable ppeDT = new SelfEvaluateBLL().GetPPECount(searchDept.DeptCode, year, month); Dictionary <string, int> ppeKV = new Dictionary <string, int>(); if (ppeDT.Rows != null && ppeDT.Rows.Count > 0) { var ppeDrEnumerator = ppeDT.Rows.GetEnumerator(); while (ppeDrEnumerator.MoveNext()) { DataRow ppeCurrent = ppeDrEnumerator.Current as DataRow; string ppeName = ppeCurrent["USEPPE"] == null ? "" : ppeCurrent["USEPPE"].ToString(); if (!string.IsNullOrWhiteSpace(ppeName)) { ppeKV.Add(ppeName, ppeCurrent["COUNT"] == null ? 0 : Convert.ToInt32(ppeCurrent["COUNT"])); } } } ViewBag.DangerKV = dangerKV; //安全危害 ViewBag.PPEKV = ppeKV; //PPE需求 // HSE培训与授权 DataTable hseDT = new SelfEvaluateBLL().GetHseCount(searchDept.DeptCode, year, month); List <HseEvaluateKv> hseKv = new List <HseEvaluateKv>(); if (hseDT.Rows != null && hseDT.Rows.Count > 0) { #region hse授权 int DGPXrs = 0, QZDZPXrs = 0, CNJDCPXrs = 0, YLRQrs = 0, GLSPXrs = 0, GLZYPXrs = 0, DHZYPXrs = 0, JSJZYPXrs = 0, GKZYPXrs = 0, JJPXrs = 0; //应参加人数 int DGPXwc = 0, QZDZPXwc = 0, CNJDCPXwc = 0, YLRQwc = 0, GLSPXwc = 0, GLZYPXwc = 0, DHZYPXwc = 0, JSJZYPXwc = 0, GKZYPXwc = 0, JJPXwc = 0; //完成的变量 int DGPXmt = 0, QZDZPXmt = 0, CNJDCPXmt = 0, YLRQmt = 0, GLSPXmt = 0, GLZYPXmt = 0, DHZYPXmt = 0, JSJZYPXmt = 0, GKZYPXmt = 0, JJPXmt = 0; //帽贴 int DGPXwwc = 0, QZDZPXwwc = 0, CNJDCPXwwc = 0, YLRQwwc = 0, GLSPXwwc = 0, GLZYPXwwc = 0, DHZYPXwwc = 0, JSJZYPXwwc = 0, GKZYPXwwc = 0, JJPXwwc = 0; //未完成 var hseDrEnumerator = hseDT.Rows.GetEnumerator(); while (hseDrEnumerator.MoveNext()) { DataRow hseCurrent = hseDrEnumerator.Current as DataRow; string nonepx = hseCurrent["NONEPX"] == DBNull.Value ? "0" : hseCurrent["NONEPX"].ToString();//是否无具体培训需求 planning(hseCurrent["DGPX"], ref DGPXwc, ref DGPXmt, ref DGPXwwc, ref DGPXrs, nonepx); planning(hseCurrent["QZDZPX"], ref QZDZPXwc, ref QZDZPXmt, ref QZDZPXwwc, ref QZDZPXrs, nonepx); planning(hseCurrent["CNJDCPX"], ref CNJDCPXwc, ref CNJDCPXmt, ref CNJDCPXwwc, ref CNJDCPXrs, nonepx); planning(hseCurrent["YLRQ"], ref YLRQwc, ref YLRQmt, ref YLRQwwc, ref YLRQrs, nonepx); planning(hseCurrent["GLSPX"], ref GLSPXwc, ref GLSPXmt, ref GLSPXwwc, ref GLSPXrs, nonepx); planning(hseCurrent["GLZYPX"], ref GLZYPXwc, ref GLZYPXmt, ref GLZYPXwwc, ref GLZYPXrs, nonepx); planning(hseCurrent["DHZYPX"], ref DHZYPXwc, ref DHZYPXmt, ref DHZYPXwwc, ref DHZYPXrs, nonepx); planning(hseCurrent["JSJZYPX"], ref JSJZYPXwc, ref JSJZYPXmt, ref JSJZYPXwwc, ref JSJZYPXrs, nonepx); planning(hseCurrent["GKZYPX"], ref GKZYPXwc, ref GKZYPXmt, ref GKZYPXwwc, ref GKZYPXrs, nonepx); planning(hseCurrent["JJPX"], ref JJPXwc, ref JJPXmt, ref JJPXwwc, ref JJPXrs, nonepx); } hseKv.Add(new HseEvaluateKv("电工培训", DGPXwc, DGPXmt, DGPXwwc, DGPXrs)); hseKv.Add(new HseEvaluateKv("起重吊装培训", QZDZPXwc, QZDZPXmt, QZDZPXwwc, QZDZPXrs)); hseKv.Add(new HseEvaluateKv("场内机动车培训", CNJDCPXwc, CNJDCPXmt, CNJDCPXwwc, CNJDCPXrs)); hseKv.Add(new HseEvaluateKv("压力容器", YLRQwc, YLRQmt, YLRQwwc, YLRQrs)); hseKv.Add(new HseEvaluateKv("锅炉水培训", GLSPXwc, GLSPXmt, GLSPXwwc, GLSPXrs)); hseKv.Add(new HseEvaluateKv("锅炉作业培训", GLZYPXwc, GLZYPXmt, GLZYPXwwc, GLZYPXrs)); hseKv.Add(new HseEvaluateKv("电焊作业培训", DHZYPXwc, DHZYPXmt, DHZYPXwwc, DHZYPXrs)); hseKv.Add(new HseEvaluateKv("脚手架作业培训", JSJZYPXwc, JSJZYPXmt, JSJZYPXwwc, JSJZYPXrs)); hseKv.Add(new HseEvaluateKv("高空作业培训", GKZYPXwc, GKZYPXmt, GKZYPXwwc, GKZYPXrs)); hseKv.Add(new HseEvaluateKv("急救培训", JJPXwc, JJPXmt, JJPXwwc, JJPXrs)); #endregion } ViewBag.hseKV = hseKv;//PPE需求 #region 安全参与 DataTable SafetyDT = new SelfEvaluateBLL().GetSafeCount(searchDept.DeptCode, year, month); List <HseEvaluateKv> safeKV = new List <HseEvaluateKv>(); if (SafetyDT.Rows != null && SafetyDT.Rows.Count > 0) { safeKV.Add(new HseEvaluateKv("安全观察卡", SafetyDT.Select(" AQGCK=4").Length, SafetyDT.Select(" AQGCK=3").Length, SafetyDT.Select(" AQGCK=2").Length, SafetyDT.Select(" AQGCK=1").Length, SafetyDT.Select(" AQGCK=0").Length)); safeKV.Add(new HseEvaluateKv("领先指标卡", SafetyDT.Select(" LXZBK=4").Length, SafetyDT.Select(" LXZBK=3").Length, SafetyDT.Select(" LXZBK=2").Length, SafetyDT.Select(" LXZBK=1").Length, SafetyDT.Select(" LXZBK=0").Length)); safeKV.Add(new HseEvaluateKv("安全会议", SafetyDT.Select(" AQHY=4").Length, SafetyDT.Select(" AQHY=3").Length, SafetyDT.Select(" AQHY=2").Length, SafetyDT.Select(" AQHY=1").Length, SafetyDT.Select(" AQHY=0").Length)); safeKV.Add(new HseEvaluateKv("作业安全交底", SafetyDT.Select(" ZYAQJD=4").Length, SafetyDT.Select(" ZYAQJD=3").Length, SafetyDT.Select(" ZYAQJD=2").Length, SafetyDT.Select(" ZYAQJD=1").Length, SafetyDT.Select(" ZYAQJD=0").Length)); safeKV.Add(new HseEvaluateKv("安全检查", SafetyDT.Select(" AQJC=4").Length, SafetyDT.Select(" AQJC=3").Length, SafetyDT.Select(" AQJC=2").Length, SafetyDT.Select(" AQJC=1").Length, SafetyDT.Select(" AQJC=0").Length)); safeKV.Add(new HseEvaluateKv("安全培训", SafetyDT.Select(" AQPX=4").Length, SafetyDT.Select(" AQPX=3").Length, SafetyDT.Select(" AQPX=2").Length, SafetyDT.Select(" AQPX=1").Length, SafetyDT.Select(" AQPX=0").Length)); } #endregion ViewBag.SafetyDT = safeKV;//PPE需求 //其他的统计页面上用ajax请求获取 return(View()); }
/// <summary> /// 获取列表数据 /// </summary> /// <returns></returns> public ActionResult GetTableData(FormCollection form) { try { dynamic queryJson = JsonConvert.DeserializeObject <ExpandoObject>(Request["queryJson"]); var user = OperatorProvider.Provider.Current(); //先找到当前用户所在的电厂 var searchDept = new DepartmentBLL().GetList().Where(p => p.EnCode.StartsWith(user.OrganizeCode)).OrderBy(x => x.EnCode).ToList();//当前电厂底下的部门数据。分组组装数据用 var parentCode = user.OrganizeCode; DataTable dt = new SelfEvaluateBLL().GetChartsData(queryJson.year, queryJson.month, user.DeptCode); var userList = new UserBLL().GetList(); var treeList = new List <TreeGridEntity>(); if (searchDept != null && searchDept.Count > 0) { //组装各个部门的数据 searchDept.ForEach(p => { TreeGird treeGird = new TreeGird() { Id = p.DepartmentId, Name = p.FullName, ParentId = p.ParentId, DeptId = p.DepartmentId, DeptCode = p.DeptCode, Nature = p.Nature }; decimal userCount = userList.Count(x => x.DepartmentCode.StartsWith(p.EnCode) && x.IsPresence == "1"); //总人数 treeGird.AllUserCount = userCount.ToString();; decimal allCount = 0; var drItem = dt.Select(" DEPTCODE LIKE '" + p.EnCode + "%'"); decimal sbumitUserCount = 0; foreach (DataRow dr in drItem) { allCount += dr["COUNT"] == DBNull.Value ? 0 : Convert.ToDecimal(dr["COUNT"]); //已提交总数 sbumitUserCount += dr["USERCOUNT"] == DBNull.Value ? 0 : Convert.ToDecimal(dr["USERCOUNT"]); //已提交总人数 } treeGird.SubmitCount = allCount.ToString(); treeGird.NotSubmitCount = ((userCount - sbumitUserCount) < 0 ? 0 : (userCount - sbumitUserCount)).ToString(); if (userCount < 1) { treeGird.CYD = "0%"; } else { treeGird.CYD = Math.Round(allCount / userCount * 100, 2).ToString() + "%";//百分比 参与度=已提交/应提交*100% } TreeGridEntity treeGridEntity = new TreeGridEntity() { parentId = treeGird.ParentId, entityJson = JsonConvert.SerializeObject(treeGird), expanded = false, hasChildren = true, id = treeGird.Id, text = treeGird.Name, code = treeGird.CYD }; treeList.Add(treeGridEntity); }); } var FristDpetDetail = searchDept.FirstOrDefault(x => x.EnCode == parentCode); if (FristDpetDetail != null && !user.IsSystem) { var FristDpet = treeList.FirstOrDefault(x => x.id == FristDpetDetail.DepartmentId); if (FristDpet != null) { FristDpet.parentId = "0"; } } return(Content(treeList.TreeJson())); } catch (Exception ex) { return(Error("查询失败:" + ex.Message)); } }