Example #1
0
        public ActionResult PlanDetail(int id)
        {
            //调用BLL层获取要查看详细的巡检任务
            IInspectionPlanBLL planBll = BLLFactory <IInspectionPlanBLL> .GetBLL("InspectionPlanBLL");

            var plan = planBll.GetEntity(c => c.Id == id && c.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            if (plan != null)
            {
                var PointCategorys = plan.PlanPoints.Select(p => new PointCategoryModel
                {
                    CategoryName = p.InspectionPoint.InspectionCategory.CategoryName,
                    PointName    = p.InspectionPoint.PointName,
                    PointMemo    = p.InspectionPoint.Memo
                }).ToList();

                List <string> CategoryList = PointCategorys.Select(p => p.CategoryName).Distinct().ToList();
                ViewBag.PointCategorys = PointCategorys;
                ViewBag.CategoryList   = CategoryList;
                return(View(plan));
            }
            else
            {
                return(RedirectToAction("PlanList"));
            }
        }
Example #2
0
        public ActionResult PlanList(InspectionPlanSearchModel model)
        {
            //1.初始化默认查询模型
            DateTime today = DateTime.Today;

            if (model.BeforeDate == null)
            {
                model.BeforeDate = today.AddDays(-today.Day + 1);
            }
            if (model.EndDate == null)
            {
                model.EndDate = today;
            }

            model.PlaceList = GetPlaceList();
            model.TypeList  = GetInspectionTypeList();

            int      currentCompanyId = GetSessionModel().CompanyId.Value;
            DateTime endDate          = model.EndDate.Value.AddDays(1);

            //2.查询条件:未删除、巡检开始日期范围、已发布、当前总公司
            Expression <Func <T_InspectionPlan, bool> > where = p => p.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && p.PublishedFlag == ConstantParam.PUBLISHED_TRUE &&
                                                                p.PropertyPlace.CompanyId == currentCompanyId && p.BeginDate < endDate && p.EndDate >= model.BeforeDate;
            //根据所属小区查询
            if (model.PlaceId != null)
            {
                where = PredicateBuilder.And(where, p => p.PropertyPlaceId == model.PlaceId.Value);
            }
            //根据巡检任务名称模糊查询
            if (!string.IsNullOrEmpty(model.PlanName))
            {
                where = PredicateBuilder.And(where, p => p.PlanName.Contains(model.PlanName));
            }
            //根据巡检类型查询
            if (model.Type != null)
            {
                where = PredicateBuilder.And(where, p => p.Type == model.Type.Value);
            }

            //3.根据查询条件调用BLL层 获取分页数据
            IInspectionPlanBLL planBll = BLLFactory <IInspectionPlanBLL> .GetBLL("InspectionPlanBLL");

            var sortModel = this.SettingSorting("Id", false);

            model.DataList = planBll.GetPageList(where, sortModel.SortName, sortModel.IsAsc, model.PageIndex) as PagedList <T_InspectionPlan>;

            return(View(model));
        }
Example #3
0
        public JsonResult GetDayPlanResultMonitorData(int PlaceId, string Date)
        {
            var data = new List <InspectionMonitorModel>();

            IInspectionPlanBLL planBll = BLLFactory <IInspectionPlanBLL> .GetBLL("InspectionPlanBLL");

            //获取当前小区有指定年月任务的的巡检
            var SelectStartDate = Convert.ToDateTime(Date);
            var SelectEndDate   = SelectStartDate.AddDays(1);

            var planList = planBll.GetList(p => p.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && p.PropertyPlaceId == PlaceId &&
                                           p.Type == ConstantParam.INSPECTION_TYPE_DAY && p.BeginDate < SelectEndDate && p.EndDate >= SelectStartDate).ToList();

            foreach (var plan in planList)
            {
                //如果不随机
                if (plan.IsRandom == ConstantParam.DELIVERY_FLAG_FALSE)
                {
                    foreach (var dayPlan in plan.TimePlans.Where(p => p.InspectionPlan.Type == ConstantParam.INSPECTION_TYPE_DAY))
                    {
                        DateTime start = SelectStartDate.AddHours(dayPlan.BeginNum);
                        DateTime end   = SelectStartDate.AddHours(dayPlan.EndNum);

                        string StatusColor = "";

                        var resultList = dayPlan.InspectionResults.Where(r => r.PlanDate >= SelectStartDate && r.PlanDate < SelectEndDate);
                        var count      = resultList.Select(r => r.PointId).Distinct().Count();
                        //如果存在巡检结果,则为已巡检
                        if (resultList != null && count > 0)
                        {
                            //如果全部巡检点都已巡检
                            if (plan.PlanPoints.Count == count)
                            {
                                //如果所有巡检点的巡检结果都正常
                                if (!resultList.Any(r => r.Status == 1))
                                {
                                    StatusColor = "#1AB394";
                                }
                                else
                                {
                                    StatusColor = "#F8AC59";
                                }
                            }
                            else
                            {
                                //巡检中
                                StatusColor = "#23C6C8";
                            }
                        }
                        //未巡检
                        else
                        {
                            StatusColor = "#D1DADE";
                        }
                        //未巡检完 已过期
                        if (end.Date.AddDays(1) < DateTime.Now && count < plan.PlanPoints.Count)
                        {
                            StatusColor = "#262626";
                        }
                        data.Add(new InspectionMonitorModel()
                        {
                            title = plan.PlanName,
                            start = start.ToString("yyyy-MM-dd HH"),
                            end   = end.ToString("yyyy-MM-dd HH"),
                            color = StatusColor,
                            url   = "/CompanyInspection/ResultDetail?PlanTimeId=" + dayPlan.Id + "&StartDate=" + start.ToString("yyyy-MM-dd") + "&EndDate=" + end.AddDays(1).ToString("yyyy-MM-dd")
                        });
                    }
                }
                else
                {
                    foreach (var dayPlan in plan.TimePlans.Where(p => p.InspectionPlan.Type == ConstantParam.INSPECTION_TYPE_DAY))
                    {
                        DateTime start = SelectStartDate;
                        DateTime end   = SelectStartDate.AddDays(1);

                        string StatusColor = "";

                        var resultList = dayPlan.InspectionResults.Where(r => r.PlanDate >= SelectStartDate && r.PlanDate < SelectEndDate);
                        var count      = resultList.Select(r => r.PointId).Distinct().Count();
                        //如果存在巡检结果,则为已巡检
                        if (resultList != null && count > 0)
                        {
                            //如果全部巡检点都已巡检
                            if (plan.PlanPoints.Count == count)
                            {
                                //如果所有巡检点的巡检结果都正常
                                if (!resultList.Any(r => r.Status == 1))
                                {
                                    StatusColor = "#1AB394";
                                }
                                else
                                {
                                    StatusColor = "#F8AC59";
                                }
                            }
                            else
                            {
                                //巡检中
                                StatusColor = "#23C6C8";
                            }
                        }
                        //未巡检
                        else
                        {
                            StatusColor = "#D1DADE";
                        }
                        //未巡检完 已过期
                        if (end < DateTime.Now && count < plan.PlanPoints.Count)
                        {
                            StatusColor = "#262626";
                        }
                        data.Add(new InspectionMonitorModel()
                        {
                            title = plan.PlanName + " 随机第" + dayPlan.Number + "次",
                            start = start.ToString("yyyy-MM-dd"),
                            end   = end.ToString("yyyy-MM-dd"),
                            color = StatusColor,
                            url   = "/CompanyInspection/ResultDetail?PlanTimeId=" + dayPlan.Id + "&StartDate=" + start.ToString("yyyy-MM-dd") + "&EndDate=" + end.ToString("yyyy-MM-dd")
                        });
                    }
                }
            }
            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Example #4
0
        public JsonResult GetMonthPlanResultMonitorData(int PlaceId, int Year, int Month)
        {
            var data = new List <InspectionMonitorModel>();

            IInspectionPlanBLL planBll = BLLFactory <IInspectionPlanBLL> .GetBLL("InspectionPlanBLL");

            //获取当前小区有指定年月任务的的巡检
            var SelectStartDate = Convert.ToDateTime(Year + " - " + Month);
            var SelectEndDate   = SelectStartDate.AddMonths(1);
            var planList        = planBll.GetList(p => p.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && p.PropertyPlaceId == PlaceId &&
                                                  p.Type == ConstantParam.INSPECTION_TYPE_MONTH && p.BeginDate < SelectEndDate && p.EndDate >= SelectStartDate).ToList();

            foreach (var plan in planList)
            {
                //如果不随机
                if (plan.IsRandom == ConstantParam.DELIVERY_FLAG_FALSE)
                {
                    //月巡检
                    foreach (var monthPlan in plan.TimePlans.Where(p => p.InspectionPlan.Type == ConstantParam.INSPECTION_TYPE_MONTH))
                    {
                        int   EndDayNum = monthPlan.EndNum;
                        int[] smalls    = new int[] { 4, 6, 9, 11 };
                        //如果是小月
                        if (smalls.Contains(Month))
                        {
                            if (monthPlan.BeginNum > 30)
                            {
                                continue;
                            }
                        }
                        else if (Month == 2)
                        {
                            //闰年
                            if ((Year % 4 == 0 && Year / 100 != 0) || (Year % 400 == 0))
                            {
                                if (monthPlan.BeginNum > 29)
                                {
                                    continue;
                                }
                            }
                            else
                            {
                                if (monthPlan.BeginNum > 28)
                                {
                                    continue;
                                }
                            }
                        }
                        DateTime start = SelectStartDate.AddDays(monthPlan.BeginNum - 1);

                        //如果不在巡检时间段内
                        if (start > plan.EndDate || start < plan.BeginDate)
                        {
                            continue;
                        }
                        DateTime end = start.AddDays(1);

                        string StatusColor = "";

                        var resultList = monthPlan.InspectionResults.Where(r => r.PlanDate >= SelectStartDate && r.PlanDate < SelectEndDate);
                        var count      = resultList.Select(r => r.PointId).Distinct().Count();
                        //如果存在巡检结果,则为已巡检
                        if (resultList != null && count > 0)
                        {
                            //如果全部巡检点都已巡检
                            if (count == plan.PlanPoints.Count)
                            {
                                //如果所有巡检点的巡检结果都正常
                                if (!resultList.Any(r => r.Status == 1))
                                {
                                    StatusColor = "#1AB394";
                                }
                                else
                                {
                                    StatusColor = "#F8AC59";
                                }
                            }
                            else
                            {
                                //巡检中
                                StatusColor = "#23C6C8";
                            }
                        }
                        //未巡检
                        else
                        {
                            StatusColor = "#D1DADE";
                        }
                        //未巡检完 已过期
                        if (end < DateTime.Now && count < plan.PlanPoints.Count)
                        {
                            StatusColor = "#262626";
                        }
                        data.Add(new InspectionMonitorModel()
                        {
                            title = plan.PlanName,
                            start = start.ToString("yyyy-MM-dd"),
                            end   = end.ToString("yyyy-MM-dd"),
                            color = StatusColor,
                            url   = "/CompanyInspection/ResultDetail?PlanTimeId=" + monthPlan.Id + "&StartDate=" + start.ToString("yyyy-MM-dd") + "&EndDate=" + end.ToString("yyyy-MM-dd")
                        });
                    }
                }
                else
                {
                    //月巡检
                    foreach (var monthPlan in plan.TimePlans.Where(p => p.InspectionPlan.Type == ConstantParam.INSPECTION_TYPE_MONTH))
                    {
                        DateTime start = SelectStartDate;
                        DateTime end   = SelectEndDate;

                        //如果不在巡检时间段内
                        if (end < plan.BeginDate || start > plan.EndDate)
                        {
                            continue;
                        }
                        if (start < plan.BeginDate)
                        {
                            start = plan.BeginDate;
                        }
                        if (end > plan.EndDate)
                        {
                            end = plan.EndDate.AddDays(1);
                        }

                        string StatusColor = "";

                        var resultList = monthPlan.InspectionResults.Where(r => r.PlanDate >= SelectStartDate && r.PlanDate < SelectEndDate);
                        var count      = resultList.Select(r => r.PointId).Distinct().Count();
                        //如果存在巡检结果,则为已巡检
                        if (resultList != null && count > 0)
                        {
                            //如果全部巡检点都已巡检
                            if (plan.PlanPoints.Count == count)
                            {
                                //如果所有巡检点的巡检结果都正常
                                if (!resultList.Any(r => r.Status == 1))
                                {
                                    StatusColor = "#1AB394";
                                }
                                else
                                {
                                    StatusColor = "#F8AC59";
                                }
                            }
                            else
                            {
                                //巡检中
                                StatusColor = "#23C6C8";
                            }
                        }
                        //未巡检
                        else
                        {
                            StatusColor = "#D1DADE";
                        }
                        //未巡检完 已过期
                        if (end < DateTime.Now && count < plan.PlanPoints.Count)
                        {
                            StatusColor = "#262626";
                        }
                        data.Add(new InspectionMonitorModel()
                        {
                            title = plan.PlanName + " 随机第" + monthPlan.Number + "次",
                            start = start.ToString("yyyy-MM-dd"),
                            end   = end.ToString("yyyy-MM-dd"),
                            color = StatusColor,
                            url   = "/CompanyInspection/ResultDetail?PlanTimeId=" + monthPlan.Id + "&StartDate=" + start.ToString("yyyy-MM-dd") + "&EndDate=" + end.ToString("yyyy-MM-dd")
                        });
                    }
                }
            }
            return(Json(data, JsonRequestBehavior.AllowGet));
        }