Beispiel #1
0
        public ActionResult DeleteDoor(int id)
        {
            JsonModel     jm      = new JsonModel();
            IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            // 根据指定id值获取实体对象
            var door  = doorBll.GetEntity(index => index.Id == id);
            var count = door.HouseUsers.Where(p => p.DelFlag == 0).Count();

            if (door == null)
            {
                jm.Msg = "该单元户不存在";
            }
            else
            {
                if (doorBll.Delete(door))
                {
                    //操作日志
                    jm.Content = "删除单元户 " + door.DoorName;
                }
                else
                {
                    jm.Msg = "删除失败";
                }
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
        /// <summary>
        /// 获取单元户Id, 如果没有将新建一个单元户
        /// </summary>
        /// <param name="doorName"></param>
        /// <param name="unitId"></param>
        /// <returns></returns>
        private static int GetBuildDoorId(string doorName, int unitId)
        {
            int doorId = 0;
            //楼座接口
            IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            var door = doorBll.GetEntity(b => b.DoorName == doorName && b.UnitId == unitId);

            if (door != null)
            {
                doorId = door.Id;
            }
            else
            {
                door = new T_BuildDoor()
                {
                    DoorName = doorName,
                    UnitId   = unitId
                };

                try
                {
                    doorBll.Save(door);
                    doorId = door.Id;
                }
                catch (Exception)
                {
                    doorId = 0;
                }
            }

            return(doorId);
        }
Beispiel #3
0
        public ActionResult EditDoor(BuildDoorSearchModel model)
        {
            JsonModel jm = new JsonModel();

            //如果表单模型验证成功
            if (ModelState.IsValid)
            {
                IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

                T_BuildDoor doorInfo = doorBll.GetEntity(m => m.Id == model.DoorId);
                if (doorInfo != null)
                {
                    doorInfo.DoorName = model.DoorName;
                    // 保存到数据库
                    doorBll.Update(doorInfo);

                    //日志记录
                    jm.Content = PropertyUtils.ModelToJsonString(model);
                }
                else
                {
                    jm.Msg = "该单元户不存在";
                }
            }
            else
            {
                // 保存异常日志
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        public ActionResult AddDoor(BuildDoorSearchModel model)
        {
            JsonModel     jm      = new JsonModel();
            IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            if (doorBll.Exist(m => m.DoorName == model.DoorName && m.Id != model.DoorId && m.UnitId == model.UnitId))
            {
                jm.Msg = "该单元户名称已经存在";
            }
            //如果表单模型验证成功
            else if (ModelState.IsValid)
            {
                T_BuildDoor newDoor = new T_BuildDoor()
                {
                    DoorName = model.DoorName,
                    UnitId   = model.UnitId
                };
                // 保存到数据库
                doorBll.Save(newDoor);

                //日志记录
                jm.Content = PropertyUtils.ModelToJsonString(model);
            }
            else
            {
                // 保存异常日志
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
Beispiel #5
0
        /// <summary>
        /// 批量增加单元户的远程验证
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public string RemoteCheck(BuildDoorBatchAddModel model, int BuildId)
        {
            IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            var lamdaList = new List <Expression <Func <T_BuildDoor, bool> > >();

            foreach (var name in model.DoorName)
            {
                lamdaList.Add(r => r.DoorName == name);
            }
            Expression <Func <T_BuildDoor, bool> > lamda  = p => false;
            Expression <Func <T_BuildDoor, bool> > lamda1 = r => (r.UnitId == model.UnitId && r.BuildUnit.BuildId == model.BuildId);

            foreach (var expression in lamdaList)
            {
                lamda = PredicateBuilder.Or <T_BuildDoor>(lamda, expression);
            }

            lamda = PredicateBuilder.And(lamda, lamda1);

            var doorlist = doorBll.GetList(lamda);//查询

            if (doorlist.Count() > 0)
            {
                // 校验不通过
                return(string.Join(",", doorlist.ToList().Select(q => q.DoorName).Distinct().ToArray()));
            }
            else
            {
                // 校验通过
                return("");
            }
        }
Beispiel #6
0
        public ActionResult DoorList(BuildDoorSearchModel model)
        {
            // 获取单元户访问对象
            IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            int propertyPlaceId = GetSessionModel().PropertyPlaceId.Value;

            Expression <Func <T_BuildDoor, bool> > where = w => (model.UnitId == 0 ? true : w.UnitId == model.UnitId) && (string.IsNullOrEmpty(model.DoorName) ? true : w.DoorName.Contains(model.DoorName)) && (string.IsNullOrEmpty(model.UnitName) ? true : w.BuildUnit.UnitName.Contains(model.UnitName)) && (string.IsNullOrEmpty(model.BuildName) ? true : w.BuildUnit.Build.BuildName.Contains(model.BuildName)) && w.BuildUnit.Build.PropertyPlaceId == propertyPlaceId;

            // 排序模型
            var sortModel = this.SettingSorting("Id", false);

            model.List = doorBll.GetPageList(where, sortModel.SortName, sortModel.IsAsc, model.PageIndex) as PagedList <T_BuildDoor>;
            return(View(model));
        }
Beispiel #7
0
        /// <summary>
        /// 远程验证指定单元户名称是否存在
        /// </summary>
        /// <param name="doorName">单元户名称</param>
        /// <param name="id">单元户id,新增时恒为0,修改单元户名称时不为0</param>
        public ContentResult RemoteCheckExist(BuildDoorSearchModel model)
        {
            IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            // 单元户名称已存在
            if (doorBll.Exist(m => m.DoorName == model.DoorName && m.Id != model.DoorId && m.UnitId == model.UnitId))
            {
                // 校验不通过
                return(Content("false"));
            }
            else
            {
                return(Content("true"));
            }
        }
        /// <summary>
        /// 获取单元户列表
        /// </summary>
        /// <returns>户列表</returns>
        private List <SelectListItem> GetDoorList(int unitId)
        {
            //获取单元户列表
            IBuildDoorBLL DoorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            var sortModel = this.SettingSorting("Id", true);
            var list      = DoorBll.GetList(u => u.UnitId == unitId, sortModel.SortName, sortModel.IsAsc);

            //转换为下拉列表并返回
            return(list.Select(m => new SelectListItem()
            {
                Text = m.DoorName,
                Value = m.Id.ToString(),
                Selected = false
            }).ToList());
        }
        public JsonResult GetDoorList(int?unitId)
        {
            List <object> list = new List <object>();

            if (unitId == null)
            {
                return(Json(list, JsonRequestBehavior.AllowGet));
            }

            IBuildDoorBLL bll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            foreach (var item in bll.GetList(m => m.UnitId == unitId.Value).ToList())
            {
                list.Add(new { Value = item.Id.ToString(), Text = item.DoorName });
            }
            return(Json(list, JsonRequestBehavior.AllowGet));
        }
Beispiel #10
0
        public ActionResult EditDoor(int id)
        {
            IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

            var doorInfo = doorBll.GetEntity(index => index.Id == id);

            if (doorInfo != null)
            {
                BuildDoorSearchModel doorModel = new BuildDoorSearchModel();
                doorModel.BuildName = doorInfo.BuildUnit.Build.BuildName;
                doorModel.UnitName  = doorInfo.BuildUnit.UnitName;
                doorModel.UnitId    = doorInfo.BuildUnit.Id;
                doorModel.DoorId    = id;
                doorModel.DoorName  = doorInfo.DoorName;
                return(View(doorModel));
            }
            else
            {
                return(RedirectToAction("DoorList"));
            }
        }
Beispiel #11
0
        public ActionResult BatchAddDoor(BuildDoorBatchAddModel model, int BuildId)
        {
            JsonModel jm     = new JsonModel();
            var       unitId = model.UnitId;
            var       result = RemoteCheck(model, BuildId);

            if (!string.IsNullOrEmpty(result))
            {
                // 保存异常日志
                jm.Msg = result + "单元户名已存在";
                return(Json(jm, JsonRequestBehavior.AllowGet));
            }

            //如果表单模型验证成功
            if (ModelState.IsValid)
            {
                IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

                List <T_BuildDoor> list = new List <T_BuildDoor>();
                for (int i = 0; i < model.DoorName.Length; i++)
                {
                    T_BuildDoor newDoor = new T_BuildDoor()
                    {
                        DoorName = model.DoorName[i],
                        UnitId   = model.UnitId
                    };
                    list.Add(newDoor);
                }
                // 批量保存
                doorBll.BatchAddDoor(model.UnitId, list);
                //日志记录
                jm.Content = PropertyUtils.ModelToJsonString(model);
            }
            else
            {
                // 保存异常日志
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
        public ActionResult Index(int id = 1)
        {
            CompanyPlatformIndexModel model = new CompanyPlatformIndexModel();
            int CurrentCompanyId            = GetSessionModel().CompanyId.Value;

            //获取当前公司物业小区个数并赋值
            IPropertyPlaceBLL placeBll = BLLFactory <IPropertyPlaceBLL> .GetBLL("PropertyPlaceBLL");

            model.PlaceCount = placeBll.Count(u => u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && u.CompanyId == CurrentCompanyId);

            //获取当前公司下属小区物业人员总个数
            IPropertyUserBLL placeUserBll = BLLFactory <IPropertyUserBLL> .GetBLL("PropertyUserBLL");

            model.PlaceUserCount = placeUserBll.Count(u => u.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                      u.PropertyPlace.CompanyId == CurrentCompanyId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            //住宅业主个数
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

            model.HouseUserCount = houseUserBll.Count(u => u.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                      u.PropertyPlace.CompanyId == CurrentCompanyId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);
            //办公楼业主个数
            IBuildCompanyBLL buildCompanyBll = BLLFactory <IBuildCompanyBLL> .GetBLL("BuildCompanyBLL");

            model.BuildCompanyCount = buildCompanyBll.Count(u => u.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                            u.PropertyPlace.CompanyId == CurrentCompanyId && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            //获取物业公告个数
            IPostBLL postBLL = BLLFactory <IPostBLL> .GetBLL("PostBLL");

            int postCount = postBLL.Count(u => u.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                          u.PropertyPlace.CompanyId == CurrentCompanyId && u.PublishedFlag == ConstantParam.PUBLISHED_TRUE && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            model.PlacePostCount = postCount;


            //获取业主上报问题个数
            IQuestionBLL questionBLL = BLLFactory <IQuestionBLL> .GetBLL("QuestionBLL");

            int QuestionCount = questionBLL.Count(u => u.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                  u.PropertyPlace.CompanyId == CurrentCompanyId);

            //获取业主上报问题已处理个数
            int DisposedQuestionCount = questionBLL.Count(u => u.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                          u.PropertyPlace.CompanyId == CurrentCompanyId && u.Status == ConstantParam.DISPOSED);

            //设置上报问题处理率
            model.QuestionDisposedRate = Convert.ToDouble(DisposedQuestionCount) / QuestionCount;


            //获取巡检异常个数
            IInspectionResultBLL resultBLL = BLLFactory <IInspectionResultBLL> .GetBLL("InspectionResultBLL");

            int InspectionExceptionCount = resultBLL.Count(u => u.InspectionTimePlan.InspectionPlan.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                           u.InspectionTimePlan.InspectionPlan.PropertyPlace.CompanyId == CurrentCompanyId &&
                                                           u.Status == ConstantParam.EXCEPTION && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            //获取巡检异常已处理个数
            int DisposedInspectionExceptionCount = resultBLL.Count(u => u.InspectionTimePlan.InspectionPlan.PropertyPlace.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                                   u.InspectionTimePlan.InspectionPlan.PropertyPlace.CompanyId == CurrentCompanyId && u.Status == ConstantParam.EXCEPTION &&
                                                                   u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && u.DisposeStatus == ConstantParam.DISPOSED);

            //设置巡检异常处理率
            model.InspectionExceptionDisposedRate = Convert.ToDouble(DisposedInspectionExceptionCount) / InspectionExceptionCount;


            var dataList         = placeBll.GetList(u => u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && u.CompanyId == CurrentCompanyId).ToList();
            var ExpenseCountList = new List <ExpenseCountModel>();

            foreach (var item in dataList)
            {
                var m = new ExpenseCountModel();
                m.PlaceName = item.Name;
                //如果是住宅小区
                if (item.PlaceType == ConstantParam.PLACE_TYPE_HOUSE)
                {
                    IBuildDoorBLL doorBll = BLLFactory <IBuildDoorBLL> .GetBLL("BuildDoorBLL");

                    m.DoorCount = doorBll.Count(d => d.BuildUnit.Build.PropertyPlaceId == item.Id);

                    int ExpensedDoorCount = doorBll.Count(d => d.BuildUnit.Build.PropertyPlaceId == item.Id && d.HouseUserExpenseDetails.Count > 0 &&
                                                          d.HouseUserExpenseDetails.OrderByDescending(e => e.CreateDate).FirstOrDefault().IsPayed == ConstantParam.PAYED_TRUE);
                    m.ExpensedRate = Convert.ToDouble(ExpensedDoorCount) / m.DoorCount;
                }
                //如果是办公楼小区
                else if (item.PlaceType == ConstantParam.PLACE_TYPE_COMPANY)
                {
                    m.DoorCount = item.BuildCompanys.Count(c => c.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);
                    int ExpensedDoorCount = item.BuildCompanys.Count(c => c.HouseUserExpenseDetails.Count > 0 && c.DelFlag == ConstantParam.DEL_FLAG_DEFAULT &&
                                                                     c.HouseUserExpenseDetails.OrderByDescending(d => d.CreateDate).FirstOrDefault().IsPayed == ConstantParam.PAYED_TRUE);
                    m.ExpensedRate = Convert.ToDouble(ExpensedDoorCount) / m.DoorCount;
                }
                ExpenseCountList.Add(m);
            }
            model.ExpenseCountList = ExpenseCountList.OrderByDescending(m => m.ExpensedRate).ToPagedList(id, ConstantParam.PAGE_SIZE);
            return(View(model));
        }