public List <SalaryStandard> GetAllStandardByOccId(int occId)
        {
            //throw new NotImplementedException();

            List <SalaryStandard> list = new List <SalaryStandard>();

            string sql = @"SELECT id, standardName FROM SalaryStandard WHERE id in(SELECT standardId FROM StandardMapOccupationName WHERE OccupationNameId=@OccupationNameId)";

            using (SqlDataReader reader = SQLHelper.ExecuteReader(sql, new SqlParameter("@OccupationNameId", occId)))
            {
                if (reader.HasRows)
                {
                    while (reader.Read())
                    {
                        SalaryStandard salaryStandard = new SalaryStandard {
                            Id = reader.GetInt32(0), StandardName = reader.GetString(1)
                        };
                        list.Add(salaryStandard);
                    }
                }
                else
                {
                    list = null;
                }
            }

            return(list);
        }
Example #2
0
        /// <summary>
        /// 保存薪酬标准
        /// </summary>
        /// <param name="salaryStandard">需要保存的薪酬标准</param>
        /// <returns>是否成功</returns>
        public bool SaveSalaryStandard(SalaryStandard salaryStandard)
        {
            //throw new NotImplementedException();

            ISalaryStandardDAL dAL = new SalaryStandardDAL();

            if (dAL.QueryById(salaryStandard.Id) != null)
            {
                if (dAL.Update(salaryStandard) > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                if (dAL.Add(salaryStandard) > 0)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }
Example #3
0
        public dynamic GetDefaultInfo()
        {
            SalaryStandard model = new SalaryStandard();

            try
            {
                model = _salaryStandardService.GetQueryable().FirstOrDefault();
            }
            catch (Exception ex)
            {
                LOG.Error("GetInfo", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Id,
                model.TitleInfoId,
                TitleInfoName = model.TitleInfo.Name,
                model.EffectiveDate,
                model.Description,
                model.Errors
            }, JsonRequestBehavior.AllowGet));
        }
Example #4
0
        public dynamic Insert(SalaryStandard model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Create", Core.Constants.Constant.MenuName.SalaryStandard, Core.Constants.Constant.MenuGroupName.Setting))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Add record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                model = _salaryStandardService.CreateObject(model, _titleInfoService, _salaryStandardDetailService, _salaryItemService);
            }
            catch (Exception ex)
            {
                LOG.Error("Insert Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
 public SalaryStandard VHasEffectiveDate(SalaryStandard salaryStandard)
 {
     if (salaryStandard.EffectiveDate == null || salaryStandard.EffectiveDate.Equals(DateTime.FromBinary(0)))
     {
         salaryStandard.Errors.Add("EffectiveDate", "Tidak valid");
     }
     return(salaryStandard);
 }
        public SalaryStandardDetail VHasSalaryStandard(SalaryStandardDetail salaryStandardDetail, ISalaryStandardService _salaryStandardService)
        {
            SalaryStandard salaryStandard = _salaryStandardService.GetObjectById(salaryStandardDetail.SalaryStandardId);

            if (salaryStandard == null)
            {
                salaryStandardDetail.Errors.Add("SalaryStandard", "Tidak ada");
            }
            return(salaryStandardDetail);
        }
        public SalaryStandard VHasTitleInfo(SalaryStandard salaryStandard, ITitleInfoService _titleInfoService)
        {
            TitleInfo titleInfo = _titleInfoService.GetObjectById(salaryStandard.TitleInfoId);

            if (titleInfo == null)
            {
                salaryStandard.Errors.Add("TitleInfo", "Tidak ada");
            }
            return(salaryStandard);
        }
 public bool ValidCreateObject(SalaryStandard salaryStandard, ITitleInfoService _titleInfoService)
 {
     VHasTitleInfo(salaryStandard, _titleInfoService);
     if (!isValid(salaryStandard))
     {
         return(false);
     }
     VHasEffectiveDate(salaryStandard);
     return(isValid(salaryStandard));
 }
        public string PrintError(SalaryStandard obj)
        {
            string erroroutput = "";
            KeyValuePair <string, string> first = obj.Errors.ElementAt(0);

            erroroutput += first.Key + "," + first.Value;
            foreach (KeyValuePair <string, string> pair in obj.Errors.Skip(1))
            {
                erroroutput += Environment.NewLine;
                erroroutput += pair.Key + "," + pair.Value;
            }
            return(erroroutput);
        }
Example #10
0
 public SalaryStandard CreateObject(SalaryStandard salaryStandard, ITitleInfoService _titleInfoService,
                                    ISalaryStandardDetailService _salaryStandardDetailService, ISalaryItemService _salaryItemService)
 {
     salaryStandard.Errors = new Dictionary <String, String>();
     if (_validator.ValidCreateObject(salaryStandard, _titleInfoService))
     {
         _repository.CreateObject(salaryStandard);
         if (!salaryStandard.Errors.Any())
         {
             foreach (var x in Enum.GetNames(typeof(Core.Constants.Constant.LegacySalaryItem)))
             {
                 SalaryStandardDetail ssd = new SalaryStandardDetail
                 {
                     SalaryStandardId = salaryStandard.Id,
                     SalaryItemId     = _salaryItemService.GetObjectByCode(x).Id,
                 };
                 _salaryStandardDetailService.CreateObject(ssd, this, _salaryItemService);
             }
         }
     }
     return(salaryStandard);
 }
Example #11
0
        public dynamic Update(SalaryStandard model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Edit", Core.Constants.Constant.MenuName.SalaryStandard, Core.Constants.Constant.MenuGroupName.Setting))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Edit record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                var data = _salaryStandardService.GetObjectById(model.Id);
                data.TitleInfoId   = model.TitleInfoId;
                data.EffectiveDate = model.EffectiveDate;
                data.Description   = model.Description;
                model = _salaryStandardService.UpdateObject(data, _titleInfoService);
            }
            catch (Exception ex)
            {
                LOG.Error("Update Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
Example #12
0
        public dynamic Delete(SalaryStandard model)
        {
            try
            {
                if (!AuthenticationModel.IsAllowed("Delete", Core.Constants.Constant.MenuName.SalaryStandard, Core.Constants.Constant.MenuGroupName.Setting))
                {
                    Dictionary <string, string> Errors = new Dictionary <string, string>();
                    Errors.Add("Generic", "You are Not Allowed to Delete Record");

                    return(Json(new
                    {
                        Errors
                    }, JsonRequestBehavior.AllowGet));
                }

                var data = _salaryStandardService.GetObjectById(model.Id);
                model = _salaryStandardService.SoftDeleteObject(data);
            }

            catch (Exception ex)
            {
                LOG.Error("Delete Failed", ex);
                Dictionary <string, string> Errors = new Dictionary <string, string>();
                Errors.Add("Generic", "Error " + ex);

                return(Json(new
                {
                    Errors
                }, JsonRequestBehavior.AllowGet));
            }

            return(Json(new
            {
                model.Errors
            }));
        }
        public bool isValid(SalaryStandard obj)
        {
            bool isValid = !obj.Errors.Any();

            return(isValid);
        }
 public bool ValidDeleteObject(SalaryStandard salaryStandard)
 {
     salaryStandard.Errors.Clear();
     return(isValid(salaryStandard));
 }
 public bool ValidUpdateObject(SalaryStandard salaryStandard, ITitleInfoService _titleInfoService)
 {
     salaryStandard.Errors.Clear();
     ValidCreateObject(salaryStandard, _titleInfoService);
     return(isValid(salaryStandard));
 }
Example #16
0
 public SalaryStandard UpdateObject(SalaryStandard salaryStandard, ITitleInfoService _titleInfoService)
 {
     return(salaryStandard = _validator.ValidUpdateObject(salaryStandard, _titleInfoService) ? _repository.UpdateObject(salaryStandard) : salaryStandard);
 }
Example #17
0
 public SalaryStandard SoftDeleteObject(SalaryStandard salaryStandard)
 {
     return(salaryStandard = _validator.ValidDeleteObject(salaryStandard) ?
                             _repository.SoftDeleteObject(salaryStandard) : salaryStandard);
 }
        /// <summary>
        /// 保存薪酬标准,编辑或添加
        /// </summary>
        /// <param name="formCollection">表单值容器</param>
        /// <returns>成功则重定向到刚刚保存的薪酬标准的详情页,否则回到源URL</returns>
        public ActionResult SaveStandard(FormCollection formCollection)
        {
            //薪酬管理的业务层
            ISalaryBLL salaryBLL = new SalaryBLL();

            //薪酬项目的业务层
            ISalaryItemBLL bLL = new SalaryItemBLL();

            //数据层Model的薪酬标准
            SalaryStandard salaryStandard = new SalaryStandard();

            Type type = salaryStandard.GetType();

            var props = type.GetProperties();

            //反射,遍历,把表单数据装载到对象的属性中
            foreach (var p in props)
            {
                if (p.Name != "StandardState" && p.Name != "Id")
                {
                    p.SetValue(salaryStandard, Convert.ChangeType(formCollection[p.Name], p.PropertyType));
                }
            }

            //装载id,因为当添加薪酬标准时,id为空,null类型不能转换
            salaryStandard.Id = Convert.ToInt32(formCollection["Id"]);

            //装载状态,枚举类型不能转换
            if (formCollection["StandardChecked"] == "Checked")
            {
                salaryStandard.StandardState = EnumState.StandardStateEnum.Checked;
            }
            else
            {
                salaryStandard.StandardState = EnumState.StandardStateEnum.WaitCheck;
            }

            //先保存该薪酬标准,否则,无法insert映射记录
            salaryBLL.SaveSalaryStandard(salaryStandard);

            //根据全局唯一的编号获取刚刚保存的薪酬标准的id
            salaryStandard.Id = salaryBLL.GetSalaryStandardIdByfileNumber(salaryStandard.StandardFileNumber);

            var itemcheckbox = formCollection["ItemCheckbox"];

            decimal total = 0;

            //遍历复选框,只有复选框勾选,下面对应的输入框的数值才有效
            foreach (var i in itemcheckbox.Split(','))
            {
                StandardMapItem tempMap = new StandardMapItem {
                    StandardId = salaryStandard.Id, ItemId = Convert.ToInt32(i), Amout = Convert.ToDecimal(formCollection["value" + i])
                };
                salaryBLL.SaveMapItem(tempMap);
                total += tempMap.Amout;
            }

            //更新总金额
            salaryStandard.Total = total;

            //判断该薪酬标准在映射表中有没有记录
            if (salaryBLL.GetAllStandardMapOccByStandardId(salaryStandard.Id) != null)
            {
                if (!salaryBLL.DeleteAllOccMapByStandardId(salaryStandard.Id))
                {
                    TempData["error"] = "保存失败";
                    return(Redirect(Request.UrlReferrer.AbsoluteUri));
                }
            }
            //往数据库添加未存在的映射关系
            for (int i = Convert.ToInt32(formCollection["eCount"]); i < 3; i++)
            {
                if (Convert.ToInt32(formCollection["occName" + i]) != 0)
                {
                    StandardMapOccupationName standardMapOccupationName = new StandardMapOccupationName {
                        StandardId = salaryStandard.Id, OccupationNameId = Convert.ToInt32(formCollection["occName" + i])
                    };
                    salaryBLL.SaveMapOcc(standardMapOccupationName);
                }
            }

            //重新保存一次薪酬标准
            if (salaryBLL.SaveSalaryStandard(salaryStandard))
            {
                TempData["info"] = "保存成功";
                return(RedirectToAction("DetailSalaryStandard", new { id = salaryStandard.Id }));
            }
            else
            {
                TempData["error"] = "保存失败";
                return(Redirect(Request.UrlReferrer.AbsoluteUri));
            }
        }
        /// <summary>
        /// 薪酬标准详情
        /// </summary>
        /// <param name="id">薪酬标准的id</param>
        /// <returns>薪酬标准详情页</returns>
        public ActionResult DetailSalaryStandard(string id)
        {
            ISalaryBLL salaryBLL = new SalaryBLL();

            ISalaryItemBLL salaryItemBLL = new SalaryItemBLL();

            IOccupationBLL occupationBLL = new OccupationBLL();

            //通过id查找到薪酬标准
            SalaryStandard salaryStandard = salaryBLL.GetSalaryStandardById(Convert.ToInt32(id));

            //视图模型薪酬标准
            Models.SalaryStandard salaryStandardView = new Models.SalaryStandard
            {
                Id                 = salaryStandard.Id,
                StandardName       = salaryStandard.StandardName,
                StandardFileNumber = salaryStandard.StandardFileNumber,
                Registrant         = salaryStandard.Registrant,
                RegistTime         = salaryStandard.RegistTime,
                DesignBy           = salaryStandard.DesignBy,
                Total              = salaryStandard.Total,
                StandardState      = salaryStandard.StandardState,
                CheckDesc          = salaryStandard.CheckDesc,
                CheckBy            = salaryStandard.CheckBy
            };

            //通过薪酬标准的id找到所有的项目映射关系
            List <StandardMapItem> tempMapList = salaryBLL.GetAllStandardMapItemByStandardId(salaryStandard.Id);

            //遍历映射关系,并把薪酬项目和薪酬项目的金额装载到视图模型薪酬标准的字典中
            foreach (var m in tempMapList)
            {
                SalaryItem        tempSalaryItem = salaryItemBLL.GetSalaryItemById(m.ItemId);
                Models.SalaryItem salaryItemView = new Models.SalaryItem {
                    Id = tempSalaryItem.Id, Name = tempSalaryItem.Name
                };
                salaryStandardView.ItemAmout.Add(salaryItemView, m.Amout);
            }

            //通过薪酬标准的id找到所有的职位映射关系
            List <StandardMapOccupationName> occList = salaryBLL.GetAllStandardMapOccByStandardId(salaryStandard.Id);

            if (occList != null)
            {
                foreach (var o in occList)
                {
                    OccupationName        tempOccName        = occupationBLL.GetOccupationNameById(o.OccupationNameId);
                    Models.OccupationName occupationNameView = new Models.OccupationName {
                        Id = tempOccName.Id, Name = tempOccName.Name
                    };
                    OccupationClass tempOccClass = occupationBLL.GetOccupationClassById(tempOccName.ClassId);
                    occupationNameView.OccupationClass = new Models.OccupationClass {
                        Id = tempOccClass.Id, Name = tempOccClass.Name
                    };
                    salaryStandardView.OccList.Add(occupationNameView);
                }
            }

            ViewData["salaryStandardView"] = salaryStandardView;

            return(View());
        }
        /// <summary>
        /// 控制器内部方法,通过id获取薪酬标准的详细信息
        /// </summary>
        /// <param name="id">薪酬标准的id</param>
        private void GetStandardById(string id)
        {
            ISalaryBLL salaryBLL = new SalaryBLL();

            ISalaryItemBLL salaryItemBLL = new SalaryItemBLL();

            IOccupationBLL occupationBLL = new OccupationBLL();

            //通过id查找到薪酬标准
            SalaryStandard salaryStandard = salaryBLL.GetSalaryStandardById(Convert.ToInt32(id));

            //视图模型薪酬标准
            Models.SalaryStandard salaryStandardView = new Models.SalaryStandard
            {
                Id                 = salaryStandard.Id,
                StandardName       = salaryStandard.StandardName,
                StandardFileNumber = salaryStandard.StandardFileNumber,
                Registrant         = salaryStandard.Registrant,
                RegistTime         = salaryStandard.RegistTime,
                DesignBy           = salaryStandard.DesignBy,
                Total              = salaryStandard.Total,
                StandardState      = salaryStandard.StandardState,
                CheckDesc          = salaryStandard.CheckDesc,
                CheckBy            = salaryStandard.CheckBy
            };

            //通过薪酬标准的id找到所有的项目映射关系
            List <StandardMapItem> tempMapList = salaryBLL.GetAllStandardMapItemByStandardId(salaryStandard.Id);

            //遍历映射关系,并把薪酬项目和薪酬项目的金额装载到视图模型薪酬标准的字典中
            foreach (var m in tempMapList)
            {
                SalaryItem        tempSalaryItem = salaryItemBLL.GetSalaryItemById(m.ItemId);
                Models.SalaryItem salaryItemView = new Models.SalaryItem {
                    Id = tempSalaryItem.Id, Name = tempSalaryItem.Name
                };
                salaryStandardView.ItemAmout.Add(salaryItemView, m.Amout);
            }

            //通过薪酬标准的id找到所有的职位映射关系
            List <StandardMapOccupationName> occList = salaryBLL.GetAllStandardMapOccByStandardId(salaryStandard.Id);

            if (occList != null)
            {
                foreach (var o in occList)
                {
                    OccupationName        tempOccName        = occupationBLL.GetOccupationNameById(o.OccupationNameId);
                    Models.OccupationName occupationNameView = new Models.OccupationName {
                        Id = tempOccName.Id, Name = tempOccName.Name
                    };
                    OccupationClass tempOccClass = occupationBLL.GetOccupationClassById(tempOccName.ClassId);
                    occupationNameView.OccupationClass = new Models.OccupationClass {
                        Id = tempOccClass.Id, Name = tempOccClass.Name
                    };
                    salaryStandardView.OccList.Add(occupationNameView);
                }
            }

            ViewData["salaryStandardView"] = salaryStandardView;


            //装载所有薪酬项目
            List <SalaryItem> salaryList = salaryItemBLL.GetAllSalaryItem();

            List <Models.SalaryItem> itemList = new List <Models.SalaryItem>();

            foreach (var item in salaryList)
            {
                Models.SalaryItem tempItem = new Models.SalaryItem
                {
                    Id   = item.Id,
                    Name = item.Name
                };
                itemList.Add(tempItem);
            }

            ViewData["itemList"] = itemList;

            //装载所有职位类型
            List <OccupationClass>        occClassList     = occupationBLL.GetAllOccupationClass();
            List <Models.OccupationClass> occClassListView = new List <Models.OccupationClass>();

            if (occClassList != null)
            {
                foreach (var oc in occClassList)
                {
                    Models.OccupationClass tempClass = new Models.OccupationClass()
                    {
                        Id = oc.Id, Name = oc.Name
                    };
                    occClassListView.Add(tempClass);
                }
            }
            ViewData["occClassListView"] = occClassListView;


            //装载所有该薪酬标准的职位类型下的所有职位
            List <Models.OccupationName> occNameList = new List <Models.OccupationName>();

            for (int i = 0; i < salaryStandardView.OccList.Count; i++)
            {
                List <OccupationName> tempList = occupationBLL.GetAllOccNameByClassId(salaryStandardView.OccList[i].OccupationClass.Id);
                foreach (var on in tempList)
                {
                    Models.OccupationName tempOccupationName = new Models.OccupationName {
                        Id = on.Id, Name = on.Name, OccupationClass = salaryStandardView.OccList[i].OccupationClass
                    };
                    occNameList.Add(tempOccupationName);
                }
            }
            ViewData["occNameList"] = occNameList;
        }
        public ActionResult SalaryPaymentDetail(string id)
        {
            ISalaryGrantBLL salaryGrantBLL = new SalaryGrantBLL();

            IStaffBLL staffBLL = new StaffBLL();

            ISalaryBLL salaryBLL = new SalaryBLL();

            ISalaryItemBLL salaryItemBLL = new SalaryItemBLL();

            IOrgBLL orgBLL = new OrgBLL();

            List <StaffPayment> staffPaymentList = salaryGrantBLL.GetAllStaffPaymentByPaymentId(Convert.ToInt32(id));

            List <Models.StaffPayment> staffPaymentListView = new List <Models.StaffPayment>();

            foreach (var sp in staffPaymentList)
            {
                Models.StaffPayment staffPayment = new Models.StaffPayment
                {
                    Id         = sp.Id,
                    OddAmout   = sp.OddAmout,
                    MinusAmout = sp.MinusAmout
                };

                //获取Model.StaffSalary,为StaffPayment装载StaffSalary
                StaffSalary        staffSalary     = salaryGrantBLL.GetStaffSalaryById(sp.StaffSalaryId);
                Models.StaffSalary staffSalaryView = new Models.StaffSalary
                {
                    Id = staffSalary.Id,
                    StaffFileNumber = staffSalary.StaffFileNumber
                };

                Staff staff = staffBLL.GetStaffById(staffSalary.StaffId);
                staffSalaryView.Staff = new Models.Staff {
                    Id = staff.Id, StaffName = staff.StaffName
                };

                ThirdOrg  thirdOrg  = orgBLL.GetThirdOrgById(staff.ThirdOrgId);
                SecondOrg secondOrg = orgBLL.GetSecondOrgById(thirdOrg.ParentOrgId);
                FirstOrg  firstOrg  = orgBLL.GetFirstOrgById(secondOrg.ParentOrgId);

                Models.FirstOrg firstOrgView = new Models.FirstOrg {
                    Id = firstOrg.Id, OrgLevel = firstOrg.OrgLevel, OrgName = firstOrg.OrgName
                };
                Models.SecondeOrg secondeOrgView = new Models.SecondeOrg {
                    Id = secondOrg.Id, OrgName = secondOrg.OrgName, OrgLevel = secondOrg.OrgLevel, ParentOrg = firstOrgView
                };
                staffSalaryView.ThirdOrg = new Models.ThirdOrg {
                    Id = thirdOrg.Id, ParentOrg = secondeOrgView, OrgLevel = thirdOrg.OrgLevel, OrgName = thirdOrg.OrgName
                };

                SalaryStandard        salaryStandard     = salaryBLL.GetSalaryStandardById(staffSalary.StandardId);
                Models.SalaryStandard salaryStandardView = new Models.SalaryStandard
                {
                    Id           = salaryStandard.Id,
                    StandardName = salaryStandard.StandardName,
                };
                List <StandardMapItem> standardMapItemList = salaryBLL.GetAllStandardMapItemByStandardId(salaryStandard.Id);
                foreach (var item in standardMapItemList)
                {
                    SalaryItem salaryItem = salaryItemBLL.GetSalaryItemById(item.ItemId);

                    Models.SalaryItem salaryItemView = new Models.SalaryItem
                    {
                        Id   = salaryItem.Id,
                        Name = salaryItem.Name
                    };

                    salaryStandardView.ItemAmout.Add(salaryItemView, item.Amout);;
                }

                staffSalaryView.SalaryStandard = salaryStandardView;

                staffPayment.StaffSalary = staffSalaryView;



                SalaryPayment salaryPayment = salaryGrantBLL.GetSalaryPaymentById(sp.PaymentId);
                staffPayment.SalaryPayment = new Models.SalaryPayment
                {
                    Id          = salaryPayment.Id,
                    TotalPerson = salaryPayment.TotalPerson,
                    TotalAmout  = salaryPayment.TotalAmout,
                    FileState   = salaryPayment.FileState,
                    FileNumber  = salaryPayment.FileNumber,
                    Registrant  = salaryPayment.Registrant,
                    RegistTime  = salaryPayment.RegistTime,
                    TotalReal   = salaryPayment.TotalReal,
                    CheckBy     = salaryPayment.CheckBy,
                    CheckTime   = salaryPayment.CheckTime
                };


                staffPaymentListView.Add(staffPayment);
            }

            ViewData["staffPaymentListView"] = staffPaymentListView;

            return(View());
        }
Example #22
0
        /// <summary>
        /// 控制器内部方法
        /// </summary>
        /// <param name="id">通过id装载视图模型Staff</param>
        private void GetStaffById(string id)
        {
            IStaffBLL staffBLL = new StaffBLL();

            IOrgBLL orgBLL = new OrgBLL();

            IOccupationBLL occupationBLL = new OccupationBLL();

            ISalaryBLL salaryBLL = new SalaryBLL();

            Staff staff = staffBLL.GetStaffById(Convert.ToInt32(id));

            Models.Staff staffView = new Models.Staff();

            Type type = typeof(Models.Staff);

            Type modelType = typeof(Staff);

            var props = type.GetProperties();

            foreach (var p in props)
            {
                if (modelType.GetProperty(p.Name) != null)
                {
                    p.SetValue(staffView, modelType.GetProperty(p.Name).GetValue(staff));
                }
            }

            ThirdOrg        thirdOrg        = orgBLL.GetThirdOrgById(staff.ThirdOrgId);
            SecondOrg       secondOrg       = orgBLL.GetSecondOrgById(thirdOrg.ParentOrgId);
            FirstOrg        firstOrg        = orgBLL.GetFirstOrgById(secondOrg.ParentOrgId);
            OccupationName  occupationName  = occupationBLL.GetOccupationNameById(staff.OccId);
            OccupationClass occupationClass = occupationBLL.GetOccupationClassById(occupationName.ClassId);
            SalaryStandard  salaryStandard  = salaryBLL.GetSalaryStandardById(staff.StandardId);
            TechnicalTitle  technicalTitle  = occupationBLL.GetTechnicalTitleById(staff.TechnicalTitleId);

            staffView.FirstOrg = new Models.FirstOrg {
                Id = firstOrg.Id, OrgLevel = firstOrg.OrgLevel, OrgName = firstOrg.OrgName
            };
            staffView.SecondeOrg = new Models.SecondeOrg {
                Id = secondOrg.Id, OrgName = secondOrg.OrgName, OrgLevel = secondOrg.OrgLevel, ParentOrg = staffView.FirstOrg
            };
            staffView.ThirdOrg = new Models.ThirdOrg {
                Id = thirdOrg.Id, ParentOrg = staffView.SecondeOrg, OrgLevel = thirdOrg.OrgLevel, OrgName = thirdOrg.OrgName
            };
            staffView.OccupationClass = new Models.OccupationClass {
                Id = occupationClass.Id, Name = occupationClass.Name
            };
            staffView.OccupationName = new Models.OccupationName {
                Id = occupationName.Id, Name = occupationName.Name, OccupationClass = staffView.OccupationClass
            };
            staffView.SalaryStandard = new Models.SalaryStandard {
                Id = salaryStandard.Id, StandardName = salaryStandard.StandardName, Total = salaryStandard.Total
            };
            staffView.TechnicalTitle = new Models.TechnicalTitle {
                Id = technicalTitle.Id, Name = technicalTitle.Name
            };

            ViewData["staffView"] = staffView;

            //装载所有职称
            List <Models.TechnicalTitle> list = new List <Models.TechnicalTitle>();

            List <TechnicalTitle> tempList = occupationBLL.GetAllTechnicalTitle();

            foreach (var tt in tempList)
            {
                Models.TechnicalTitle tempTechnicalTitle = new Models.TechnicalTitle
                {
                    Id   = tt.Id,
                    Name = tt.Name
                };
                list.Add(tempTechnicalTitle);
            }

            ViewData["tTitleList"] = list;

            //装载该职位的所有薪酬标准
            List <SalaryStandard> standardList = salaryBLL.GetAllStandardByOccId(staff.OccId);

            List <Models.SalaryStandard> standardListView = new List <Models.SalaryStandard>();

            foreach (var s in standardList)
            {
                Models.SalaryStandard tempStandard = new Models.SalaryStandard
                {
                    Id           = s.Id,
                    StandardName = s.StandardName,
                    Total        = s.Total
                };
                standardListView.Add(tempStandard);
            }

            ViewData["standardListView"] = standardListView;
        }