コード例 #1
0
        /// <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());
        }
コード例 #2
0
        /// <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));
            }
        }