Пример #1
0
        public ActionResult EditHouseUser(int id)
        {
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

            //获取要编辑的住宅业主
            T_HouseUser houseUser = houseUserBll.GetEntity(m => m.Id == id && m.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            if (houseUser != null)
            {
                //初始化返回页面模型
                HouseUserModel model = new HouseUserModel()
                {
                    Name        = houseUser.Name,
                    Phone       = houseUser.Phone,
                    BuildId     = houseUser.BuildDoor.BuildUnit.BuildId,
                    BuildList   = GetBuildList(),
                    UnitId      = houseUser.BuildDoor.UnitId,
                    UnitList    = GetUnitList(houseUser.BuildDoor.BuildUnit.BuildId),
                    DoorId      = houseUser.DoorId,
                    DoorList    = GetDoorList(houseUser.BuildDoor.UnitId),
                    Gender      = houseUser.Gender,
                    GenderList  = GetGenderList(),
                    Desc        = houseUser.Desc,
                    PayDesc     = houseUser.PayDesc,
                    ServiceDesc = houseUser.ServiceDesc
                };
                return(View(model));
            }
            else
            {
                return(RedirectToAction("HouseUserList"));
            }
        }
Пример #2
0
        public JsonResult AddHouseUser(HouseUserModel model)
        {
            JsonModel jm = new JsonModel();

            //如果表单验证成功
            if (ModelState.IsValid)
            {
                IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

                T_HouseUser houseuser = new T_HouseUser()
                {
                    Name            = model.Name,
                    Phone           = model.Phone,
                    Gender          = model.Gender,
                    DoorId          = model.DoorId,
                    Desc            = model.Desc,
                    PayDesc         = model.PayDesc,
                    ServiceDesc     = model.ServiceDesc,
                    PropertyPlaceId = GetSessionModel().PropertyPlaceId.Value,
                };
                //保存
                houseUserBll.Save(houseuser);

                //日志记录
                jm.Content = PropertyUtils.ModelToJsonString(model);
            }
            else
            {
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public ActionResult HouseUserList(HouseUserSearchModel Model)
        {
            int CompanyId = GetSessionModel().CompanyId.Value;

            //根据业主姓名查询
            Expression <Func <T_HouseUser, bool> > where = u => (string.IsNullOrEmpty(Model.Name) ? true : u.Name.Contains(Model.Name)) && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && u.PropertyPlace.CompanyId == CompanyId && u.PropertyPlace.PlaceType == ConstantParam.PLACE_TYPE_HOUSE;

            //根据小区名称查询
            if (Model.PropertyPlaceId != null)
            {
                where = PredicateBuilder.And(where, u => u.PropertyPlaceId == Model.PropertyPlaceId.Value);
            }

            //根据楼座,单元,单元户名称查询
            if (!string.IsNullOrEmpty(Model.Kword))
            {
                where = PredicateBuilder.And(where, u => u.BuildDoor.BuildUnit.Build.BuildName.Contains(Model.Kword) || u.BuildDoor.BuildUnit.UnitName.Contains(Model.Kword) || u.BuildDoor.DoorName.Contains(Model.Kword));
            }

            //排序
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

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

            Model.DataList = houseUserBll.GetPageList(where, sortModel.SortName, sortModel.IsAsc, Model.PageIndex) as PagedList <T_HouseUser>;

            //获取所有物业小区列表
            Model.PropertyPlaceList = GetPropertyPlaceList();

            return(View(Model));
        }
Пример #4
0
        public ActionResult HouseUserList(HouseUserSearchModel Model)
        {
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

            int propertyPlaceId = GetSessionModel().PropertyPlaceId.Value;

            Expression <Func <T_HouseUser, bool> > where = u => (string.IsNullOrEmpty(Model.Name) ? true : u.Name.Contains(Model.Name)) && u.DelFlag == ConstantParam.DEL_FLAG_DEFAULT && u.PropertyPlaceId == propertyPlaceId;
            //排序
            var sortModel = this.SettingSorting("Id", false);
            var list      = houseUserBll.GetPageList(where, sortModel.SortName, sortModel.IsAsc, Model.PageIndex);

            return(View(list));
        }
Пример #5
0
        public bool CheckUserExist(int doorId, int id)
        {
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

            // 业主住宅单元户已存在
            if (houseUserBll.Exist(m => m.DoorId == doorId && m.Id != id && m.DelFlag == ConstantParam.DEL_FLAG_DEFAULT))
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #6
0
        public ContentResult RemoteCheckExist(int doorId, int id)
        {
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

            // 业主住宅单元户已存在
            if (houseUserBll.Exist(m => m.DoorId == doorId && m.Id != id && m.DelFlag == ConstantParam.DEL_FLAG_DEFAULT))
            {
                // 校验不通过
                return(Content("false"));
            }
            else
            {
                return(Content("true"));
            }
        }
Пример #7
0
        public ActionResult DetailHouseUser(int id)
        {
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

            //获取要查看的住宅业主
            T_HouseUser houseUser = houseUserBll.GetEntity(m => m.Id == id && m.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            if (houseUser != null)
            {
                return(View(houseUser));
            }
            else
            {
                return(RedirectToAction("HouseUserList"));
            }
        }
Пример #8
0
        public JsonResult EditHouseUser(HouseUserModel model)
        {
            JsonModel jm = new JsonModel();

            //如果表单验证成功
            if (ModelState.IsValid)
            {
                IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

                T_HouseUser houseUser = houseUserBll.GetEntity(m => m.Id == model.Id && m.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);
                if (houseUser != null)
                {
                    houseUser.Name                        = model.Name;
                    houseUser.Phone                       = model.Phone;
                    houseUser.PropertyPlaceId             = GetSessionModel().PropertyPlaceId.Value;
                    houseUser.BuildDoor.BuildUnit.BuildId = model.BuildId;
                    houseUser.BuildDoor.UnitId            = model.UnitId;
                    houseUser.DoorId                      = model.DoorId;
                    houseUser.Gender                      = model.Gender;
                    houseUser.Desc                        = model.Desc;
                    houseUser.PayDesc                     = model.PayDesc;
                    houseUser.ServiceDesc                 = model.ServiceDesc;
                    //保存到数据库
                    if (houseUserBll.Update(houseUser))
                    {
                        //日志记录
                        jm.Content = PropertyUtils.ModelToJsonString(model);
                    }
                    else
                    {
                        jm.Msg = "编辑失败";
                    }
                }
                else
                {
                    jm.Msg = "该住宅业主不存在";
                }
            }
            else
            {
                jm.Msg = ConstantParam.JSON_RESULT_MODEL_CHECK_ERROR;
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
Пример #9
0
        public JsonResult DeleteHouseUser(int id)
        {
            JsonModel jm = new JsonModel();
            //获取要删除的住宅业主
            IHouseUserBLL houseUserBll = BLLFactory <IHouseUserBLL> .GetBLL("HouseUserBLL");

            T_HouseUser houseUser = houseUserBll.GetEntity(m => m.Id == id && m.DelFlag == ConstantParam.DEL_FLAG_DEFAULT);

            if (houseUser == null)
            {
                jm.Msg = "该住宅业主不存在";
            }
            else
            {
                //修改住宅业主的已删除标识
                houseUser.DelFlag = ConstantParam.DEL_FLAG_DELETE;
                //更新数据库
                houseUserBll.Update(houseUser);
                //操作日志
                jm.Content = "删除住宅业主" + houseUser.Name;
            }
            return(Json(jm, JsonRequestBehavior.AllowGet));
        }
Пример #10
0
        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));
        }
Пример #11
0
        public JsonResult ImportHouseUsers(ImportUsersModel Model)
        {
            JsonModel jm = new JsonModel();

            HttpPostedFileBase file = Model.file;
            //Model.file
            //存入的文件名
            string FileName;
            //存入的文件路径
            string savePath;

            string filename = Path.GetFileName(file.FileName);
            string fileEx   = System.IO.Path.GetExtension(filename); //获取上传文件的扩展名
            //string NoFileName = System.IO.Path.GetFileNameWithoutExtension(filename);//获取无扩展名的文件名
            string FileType = ".xls,.xlsx";                          //定义上传文件的类型字符串

            if (!FileType.Contains(fileEx))
            {
                jm.Msg  = "文件类型只能是xlsx格式的文件";
                jm.Code = "error";
                return(Json(jm, JsonRequestBehavior.AllowGet));
            }

            FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + fileEx;

            //存一份及时要导入的数据文件
            string path = AppDomain.CurrentDomain.BaseDirectory + "ImportData/ImportHouseUserData/";

            if (!Directory.Exists(path))
            {
                Directory.CreateDirectory(path);
            }

            savePath = Path.Combine(path, FileName);

            file.SaveAs(savePath);

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

            //当前物业小区Id
            var placePropertyId = GetSessionModel().PropertyPlaceId.Value;
            //读取存在的要导入的EXCEL数据文件
            DataTable dtHouseUser = ImportExcelFile(savePath);

            //如果文件中没有内容
            if (dtHouseUser.Rows.Count == 0)
            {
                jm.Msg = "文件内无业主信息";
                return(Json(jm, JsonRequestBehavior.AllowGet));
            }

            //有效业主信息列表
            var validateHouseUserlist = new List <T_HouseUser>();
            //无效业主信息列表
            var invalidateHouseUserList = new List <ImportHouseUserModel>();

            for (int i = 0; i < dtHouseUser.Rows.Count; i++)
            {
                //是否有效标记
                bool isValidated = true;

                var houseUserModel = new ImportHouseUserModel();

                //为导入的ImportHouseUserModel赋值,以便用于无效业主列表
                if (dtHouseUser.Rows[i][0] != DBNull.Value)
                {
                    houseUserModel.Name = dtHouseUser.Rows[i][0].ToString().Trim();
                }

                if (dtHouseUser.Rows[i][1] != DBNull.Value)
                {
                    houseUserModel.Gender = dtHouseUser.Rows[i][1].ToString().Trim();
                }

                if (dtHouseUser.Rows[i][2] != DBNull.Value)
                {
                    houseUserModel.Phone = dtHouseUser.Rows[i][2].ToString().Trim();
                }

                if (dtHouseUser.Rows[i][3] != DBNull.Value)
                {
                    houseUserModel.BuildName = dtHouseUser.Rows[i][3].ToString().Trim();
                }

                if (dtHouseUser.Rows[i][4] != DBNull.Value)
                {
                    houseUserModel.UnitName = dtHouseUser.Rows[i][4].ToString().Trim();
                }

                if (dtHouseUser.Rows[i][5] != DBNull.Value)
                {
                    houseUserModel.DoorName = dtHouseUser.Rows[i][5].ToString().Trim();
                }

                if (dtHouseUser.Rows[i][6] != DBNull.Value)
                {
                    houseUserModel.Desc = dtHouseUser.Rows[i][6].ToString().Trim();
                }

                //如果业主姓名没有就是无效
                if (string.IsNullOrEmpty(houseUserModel.Name))
                {
                    isValidated = false;
                }

                //如果电话没有或者填写不正确就是无效
                if (string.IsNullOrEmpty(houseUserModel.Phone) || !CheckPhoneValidate(houseUserModel.Phone))
                {
                    isValidated = false;
                }

                //如果楼座名称没有就是无效
                if (string.IsNullOrEmpty(houseUserModel.BuildName))
                {
                    isValidated = false;
                }

                //如果单元名称没有就是无效
                if (string.IsNullOrEmpty(houseUserModel.UnitName))
                {
                    isValidated = false;
                }

                //如果单元户名字没有就是无效
                if (string.IsNullOrEmpty(houseUserModel.DoorName))
                {
                    isValidated = false;
                }

                //获取楼座ID,如果没有将新建
                int buildId = GetBuildId(houseUserModel.BuildName, placePropertyId);
                //获取单元ID,如果没有将新建
                int unitId = GetBuildUnitId(houseUserModel.UnitName, buildId);
                //获取单元户ID,如果没有将新建
                int doorId = GetBuildDoorId(houseUserModel.DoorName, unitId);

                //楼座,单元,单元户有一个为0,就是无效数据
                if (buildId == 0 || unitId == 0 || doorId == 0)
                {
                    isValidated = false;
                }

                //如果单元户已经存在也是无效
                if (CheckUserExist(doorId, 0))
                {
                    isValidated = false;
                }

                if (isValidated)
                {
                    var houseuser = new T_HouseUser();
                    //当前物业小区Id
                    houseuser.PropertyPlaceId = placePropertyId;
                    //业主姓名
                    houseuser.Name = houseUserModel.Name;
                    //业主电话
                    houseuser.Phone = houseUserModel.Phone;
                    //业主单元户
                    houseuser.DoorId = doorId;
                    //业主备注
                    houseuser.Desc = houseUserModel.Desc;

                    //业主性别(男,女)
                    if (houseUserModel.Gender == "男")
                    {
                        houseuser.Gender = 1;
                    }

                    if (houseUserModel.Gender == "女")
                    {
                        houseuser.Gender = 0;
                    }

                    //将有效的业主加入到有效的列表里面
                    validateHouseUserlist.Add(houseuser);
                }
                else
                {
                    //将无效的业主加入到无效的列表里面
                    invalidateHouseUserList.Add(houseUserModel);
                }
            }


            bool check = true;

            //前符合要求的导入数据库
            if (validateHouseUserlist.Count > 0)
            {
                check = houseUserBll.ImportHouseUsers(validateHouseUserlist);
            }

            //如果有业主信息导入成功
            if (validateHouseUserlist.Count > 0 && check)
            {
                //部分导入失败
                if (invalidateHouseUserList.Count > 0)
                {
                    jm.Msg     = string.Format("业主信息导入成功{0}条,失败{1}条", validateHouseUserlist.Count, invalidateHouseUserList.Count);
                    jm.Content = GenerateInvalidateDataExcel(invalidateHouseUserList);
                }
                else
                {
                    jm.Content = string.Format("{0}条业主信息全部导入成功", validateHouseUserlist.Count);
                }
            }
            else
            {
                jm.Msg = "业主信息全部导入失败";
            }

            return(Json(jm, JsonRequestBehavior.AllowGet));
        }