public ActionResult TableHtml(string year)
        {
            List <DeptMonthData> data = new List <DeptMonthData>();
            DataTable            dt   = new HseObserveBLL().GetWXX(year);

            if (dt.Rows != null && dt.Rows.Count > 0)
            {
                List <HseKeyValue> hseKeyValues = new List <HseKeyValue>();
                var enumtor = dt.Rows.GetEnumerator();
                while (enumtor.MoveNext())
                {
                    HseKeyValue keyValue = new HseKeyValue();
                    DataRow     dr       = enumtor.Current as DataRow;

                    keyValue.Key  = dr["CONTENT"] == null ? null : dr["CONTENT"].ToString();
                    keyValue.Str1 = dr["MONTH"] == null ? null : dr["MONTH"].ToString();
                    keyValue.Num1 = dr["COUNT"] == null ? 0 : Convert.ToInt32(dr["COUNT"]);
                    hseKeyValues.Add(keyValue);
                }
                ;
                List <string> contentList = hseKeyValues.Select(p => p.Key).Distinct().ToList();
                contentList.ForEach(p => {
                    DeptMonthData deptMonth = new DeptMonthData(year, true);
                    deptMonth.Ttile         = p;
                    deptMonth.MonthData.ForEach(x => {
                        x.Value = hseKeyValues.Where(hse => hse.Key == p && hse.Str1 == x.Key).Sum(d => d.Num1);
                    });
                    data.Add(deptMonth);
                });
            }
            var month = new DeptMonthData(year, true).MonthData.Select(p => p.Key).ToList();

            ViewBag.MonthInfo = month;
            return(View(data));
        }
        /// <summary>
        /// 获取危险项表格每月数据
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        public ActionResult GetWXX(FormCollection form)
        {
            try
            {
                var year = form["Year"];
                List <DeptMonthData> data = new List <DeptMonthData>();
                DataTable            dt   = new HseObserveBLL().GetWXX(year);
                if (dt.Rows != null && dt.Rows.Count > 0)
                {
                    List <HseKeyValue> hseKeyValues = new List <HseKeyValue>();
                    var enumtor = dt.Rows.GetEnumerator();
                    while (enumtor.MoveNext())
                    {
                        HseKeyValue keyValue = new HseKeyValue();
                        DataRow     dr       = enumtor.Current as DataRow;

                        keyValue.Key  = dr["CONTENT"] == null ? null : dr["CONTENT"].ToString();
                        keyValue.Str1 = dr["MONTH"] == null ? null : dr["MONTH"].ToString();
                        keyValue.Num1 = dr["COUNT"] == null ? 0 : Convert.ToInt32(dr["COUNT"]);
                        hseKeyValues.Add(keyValue);
                    }
                    ;
                    List <string> contentList = hseKeyValues.Select(p => p.Key).Distinct().ToList();
                    contentList.ForEach(p => {
                        DeptMonthData deptMonth = new DeptMonthData(year, true);
                        deptMonth.Ttile         = p;
                        deptMonth.MonthData.ForEach(x => {
                            x.Value = hseKeyValues.Where(hse => hse.Key == p && hse.Str1 == x.Key).Sum(d => d.Num1);
                        });
                        data.Add(deptMonth);
                    });
                }
                var month = new DeptMonthData(year, true).MonthData.Select(p => p.Key).ToList();
                return(Json(new { Code = 0, Data = new { Info = data, MonthInfo = month } }));
            }
            catch (Exception ex)
            {
                return(Json(new { Code = -1, ex.Message }));
            }
        }
        /// <summary>
        /// 查询本电厂各部门的参与率
        /// </summary>
        /// <param name="form"></param>
        /// <returns></returns>
        public ActionResult GetDeptCYL(FormCollection form)
        {
            try
            {
                var user = OperatorProvider.Provider.Current();
                //先找到当前用户所在的电厂
                var                  searchDept = new DepartmentBLL().GetList().Where(p => p.ParentId == user.OrganizeId || p.DepartmentId == user.OrganizeId).OrderBy(x => x.EnCode).ToList();//当前电厂与电厂底下的部门数据。分组组装数据用
                DataTable            dt         = new HseObserveBLL().GetDeptCYL(form["Year"], user.OrganizeCode);
                List <DeptMonthData> data       = new List <DeptMonthData>();
                var                  userList   = new UserBLL().GetList().Where(p => p.IsPresence == "1");
                if (searchDept != null && searchDept.Count > 0)
                {
                    //组装各个部门的数据
                    searchDept.ForEach(p =>
                    {
                        DeptMonthData deptMonth = new DeptMonthData(form["Year"]);
                        deptMonth.DeptName      = p.FullName;
                        //var drItem = dt.Select(" CREATEUSERDEPTCODE LIKE '" + p.EnCode + "%'");

                        //foreach (DataRow dr in drItem)
                        //{
                        //    decimal userCount = userList.Count(x => x.DepartmentCode.StartsWith(p.EnCode));    //总人数
                        //    var obj = deptMonth.MonthData.FirstOrDefault(x => x.Key == dr["Month"].ToString());
                        //    if (obj != null)
                        //    {
                        //        //参与度=(已提交卡总数/总人数*周数)*(实际提交人数/总人数)*100%

                        //        decimal count = dr["SUBMITCOUNT"] == null ? 0 : Convert.ToDecimal(dr["SUBMITCOUNT"]);    //已提交总数
                        //        decimal submitcount = dr["SUBMITUSER"] == null ? 0 : Convert.ToDecimal(dr["SUBMITUSER"]);    //已提交人数 (重复提交的人只算一次)
                        //        if (userCount > 0)//分母不为0
                        //        {
                        //            obj.Value = Math.Round((count / (userCount * 4)) * (submitcount / userCount) * 100, 2);//百分比
                        //        }
                        //    }
                        //}
                        #region 新
                        decimal userCount = userList.Count(x => x.DepartmentCode.StartsWith(p.EnCode));    //当前部门下的总人数
                        if (userCount > 0)
                        {
                            deptMonth.MonthData.ForEach(x =>//月份循环
                            {
                                //处理当前部门及子部门的数据
                                var drItem = dt.Select(" CREATEUSERDEPTCODE LIKE '" + p.EnCode + "%' AND MONTH='" + x.Key + "'");
                                if (drItem != null && drItem.Length > 0)
                                {
                                    decimal submitTotal     = 0; //已提交总数
                                    decimal submitUserCount = 0; //已提交人数 (重复提交的人只算一次)
                                    foreach (DataRow dr in drItem)
                                    {
                                        submitTotal     += dr["SUBMITCOUNT"] == null ? 0 : Convert.ToDecimal(dr["SUBMITCOUNT"]);
                                        submitUserCount += dr["SUBMITUSER"] == null ? 0 : Convert.ToDecimal(dr["SUBMITUSER"]);
                                    }
                                    //计算百分比  参与度=(已提交卡总数/总人数*周数)*(实际提交人数/总人数)*100%
                                    x.Value = Math.Round((submitTotal / (userCount * 4)) * (submitUserCount / userCount) * 100, 2);//百分比
                                }
                            });
                        }
                        #endregion
                        data.Add(deptMonth);
                    });
                }

                return(Json(new { Code = 0, Data = data }));
            }
            catch (Exception ex)
            {
                return(Json(new { Code = -1, ex.Message }));
            }
        }