Пример #1
0
        private void Init()
        {
            List <ControlError> errors          = new List <ControlError>();
            ParametersModel     parametersModel = new ParametersModel();

            try
            {
                #region positon

                List <Position> positions = _IPositionBll.GetAllPosition();
                parametersModel.PossitionList = new List <ParameterModel>();
                parametersModel.PossitionList.Add(new ParameterModel()
                {
                    PKID = "-1", Name = ""
                });
                parametersModel.PossitionList.AddRange(positions.Select(x => new ParameterModel
                {
                    PKID = x.Id.ToString(),
                    Name = x.Name
                }).ToList());

                #endregion

                #region department

                List <Department> deptList =
                    Tools.RemoteUnAuthDeparetment(_IDepartmentBll.GetAllDepartment(), AuthType.HRMIS, _Operator,
                                                  HrmisPowers.A401);
                if (!Tools.IsDeptListContainsDept(deptList, _Operator.Dept))
                {
                    deptList.Add(_Operator.Dept);
                }
                List <Department> departmentList = _IDepartmentBll.GenerateDeptListWithLittleParentDept(deptList);
                parametersModel.DepartmentList = new List <ParameterModel>();
                if (Powers.HasAuth(_Operator.Auths, AuthType.HRMIS, HrmisPowers.A401))
                {
                    parametersModel.DepartmentList.Add(new ParameterModel()
                    {
                        PKID = "-1", Name = ""
                    });
                }
                parametersModel.DepartmentList.AddRange(departmentList.Select(x => new ParameterModel
                {
                    PKID = x.Id.ToString(),
                    Name = x.Name
                }).ToList());

                #endregion

                #region type
                Dictionary <string, string> employeeTypeSource = EmployeeTypeUtility.GetAllEmployeeTypeEnum();
                parametersModel.EmployeeTypeList = new List <ParameterModel>();
                parametersModel.EmployeeTypeList.Add(new ParameterModel()
                {
                    PKID = "-1", Name = ""
                });
                parametersModel.EmployeeTypeList.AddRange(employeeTypeSource.Select(x => new ParameterModel
                {
                    PKID = x.Key,
                    Name = x.Value
                }).ToList());

                #endregion

                #region GradesType
                List <GradesType> gradesTypes = GradesType.GetAll();
                parametersModel.GradesTypeList = new List <ParameterModel>();
                parametersModel.GradesTypeList.Add(new ParameterModel()
                {
                    PKID = "-1", Name = ""
                });
                parametersModel.GradesTypeList.AddRange(gradesTypes.Select(x => new ParameterModel
                {
                    PKID = x.ID.ToString(),
                    Name = x.Name
                }).ToList());

                #endregion
            }
            catch (Exception ex)
            {
                errors.Add(new ControlError("lblMessage", ex.Message));
            }
            _ResponseString = PageUtility.FomartItemString(parametersModel, errors);
        }
Пример #2
0
        private void Search(NameValueCollection parameters)
        {
            List <ControlError>  errors            = new List <ControlError>();
            List <EmployeeModel> EmployeeModelList = new List <EmployeeModel>();
            string EmployeeName = parameters["EmployeeName"];
            int    employeeType = Convert.ToInt32(parameters["employeeType"]);
            int    positionID   = Convert.ToInt32(parameters["positionID"]);
            int    departmentID = Convert.ToInt32(parameters["departmentID"]);
            int?   gradesID     = Convert.ToInt32(parameters["gradesID"]);

            if (gradesID < 0)
            {
                gradesID = null;
            }
            int    EmployeeStatusId    = Convert.ToInt32(parameters["EmployeeStatusId"]);
            string recursionDepartment = parameters["recursionDepartment"];
            string ageFrom             = parameters["ageFrom"];
            string ageTo = parameters["ageTo"];

            try
            {
                ValidateAge(ageFrom, ageTo);
                EmployeeTypeEnum _employeeType =
                    EmployeeTypeUtility.GetEmployeeTypeByID(employeeType);
                List <Employee> _EmployeeList = _IEmployeeFacade.GetEmployeeBasicInfoByBasicConditionWithCompanyAge(
                    EmployeeName,
                    _employeeType, positionID, gradesID, departmentID, intAgeFrom, intAgeTo, recursionDepartment == "true",
                    EmployeeStatusId);
                _EmployeeList =
                    HrmisUtility.RemoteUnAuthEmployee(_EmployeeList, AuthType.HRMIS, _Operator, HrmisPowers.A401);
                List <Employee> employees = new List <Employee>();
                foreach (Employee emplyee in _EmployeeList)
                {
                    //根据所属公司id,得到所属公司名称
                    var temp = emplyee;
                    if (temp.EmployeeDetails == null || temp.EmployeeDetails.Work == null ||
                        temp.EmployeeDetails.Work.Company == null)
                    {
                    }
                    else
                    {
                        //todo noted by wsl transfer waiting for modify
                        temp.EmployeeDetails.Work.Company =
                            _IDepartmentBll.GetDepartmentById(
                                temp.EmployeeDetails.Work.Company.Id, new Account());
                    }
                    temp.EmployeeDetails              = temp.EmployeeDetails ?? new EmployeeDetails();
                    temp.EmployeeDetails.Work         = temp.EmployeeDetails.Work ?? new Work();
                    temp.EmployeeDetails.Work.Company = temp.EmployeeDetails.Work.Company ??
                                                        new Department();
                    employees.Add(temp);
                }
                //列表中没有查出当前员工的信息时,满足一下两个条件的任何一个,再次加载当前员工的信息
                //1.所选部门是当前员工的部门
                //2.所选部门包含当前员工的部门
                //如现实数据中王莎莉登录,无任何权限,只可看自己的信息
                if (_Operator.Name.Contains(EmployeeName) &&
                    !HrmisUtility.IsEmployeeListContainEmployee(employees, _Operator.Id))
                {
                    if (departmentID == -1)
                    {
                        GetCurrEmployee(employees, employeeType, positionID, gradesID, departmentID);
                    }
                    else if (departmentID != _Operator.Dept.Id)
                    {
                        Department selectedDept =
                            _IDepartmentBll.GetDepartmentById(departmentID, null);
                        if (selectedDept.IsExistDept(_Operator.Dept.Id))
                        {
                            GetCurrEmployee(employees, employeeType, positionID, gradesID, departmentID);
                        }
                    }
                    else
                    {
                        GetCurrEmployee(employees, employeeType, positionID, gradesID, departmentID);
                    }
                }
                EmployeeModelList = employees.Select(x => new EmployeeModel
                {
                    PKID         = x.Account.Id,
                    EmployeeName = "<div class='info' pkid='" + SecurityUtil.DECEncrypt(x.Account.Id.ToString()) + "'>" + x.Account.Name + "</div>",
                    EmployeeType = EmployeeTypeUtility.EmployeeTypeDisplay(x.EmployeeType),
                    Department   = x.Account.Dept.Name,
                    Company      = x.EmployeeDetails.Work.Company.Name,
                    Position     = x.Account.Position.Name,
                    WorkTime     =
                        x.EmployeeDetails.Work.ComeDate.ToString("yyyy-MM-dd")
                }).ToList();
            }
            catch (Exception ex)
            {
                errors.Add(new ControlError("lblMessage", ex.Message));
            }
            _ResponseString = PageUtility.FomartSearchString(EmployeeModelList, errors);
        }