Ejemplo n.º 1
0
 private void GetAllPost(V_EMPLOYEEPOST ent)//获取当前员工、公司、岗位、部门、联系电话
 {
     if (ent != null && ent.EMPLOYEEPOSTS != null)
     {
         txtCreateUserName.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.EMPLOYEECNAME; //员工姓名
     }
 }
Ejemplo n.º 2
0
 private void GetAllPost(V_EMPLOYEEPOST ent)//获取当前员工、公司、岗位、部门、联系电话
 {
     if (ent != null && ent.EMPLOYEEPOSTS != null)
     {
         txtCreateUserName.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.EMPLOYEECNAME; //员工姓名
     }
 }
Ejemplo n.º 3
0
 void client_GetEmployeeDetailByIDCompleted(object sender, GetEmployeeDetailByIDCompletedEventArgs e)
 {
     if (e.Result != null)
     {
         employeepost = e.Result;
         GetAllPost(e.Result);
     }
 }
Ejemplo n.º 4
0
 void client_GetEmployeeDetailByIDCompleted(object sender, GetEmployeeDetailByIDCompletedEventArgs e)
 {
     if (e.Result != null)
     {
         employeepost = e.Result;
         GetAllPost(e.Result);
     }
 }
Ejemplo n.º 5
0
        /// <summary>
        /// 根据员工ID获取考勤方案信息
        /// </summary>
        /// <param name="employeeID"></param>
        /// <returns></returns>
        public IQueryable <T_HR_OUTPLANDAYS> GetOutPlanDaysRdListByEmployeeID(string employeeID)
        {
            EmployeeBLL    bll    = new EmployeeBLL();
            V_EMPLOYEEPOST entity = bll.GetEmployeeDetailByID(employeeID);

            if (entity == null)
            {
                return(null);
            }

            if (entity.T_HR_EMPLOYEE == null)
            {
                return(null);
            }

            string strPostID = string.Empty, strDepartmentID = string.Empty, strCompanyID = string.Empty;
            string strIsAgenPost = Convert.ToInt32(Common.IsAgencyPost.No).ToString();//主岗位

            if (entity.T_HR_EMPLOYEE.EMPLOYEESTATE == Convert.ToInt32(Common.EmployeeState.Dimission).ToString())
            {
                strPostID       = entity.T_HR_EMPLOYEE.OWNERPOSTID;
                strDepartmentID = entity.T_HR_EMPLOYEE.OWNERDEPARTMENTID;
                strCompanyID    = entity.T_HR_EMPLOYEE.OWNERCOMPANYID;
            }
            else
            {
                if (entity.EMPLOYEEPOSTS == null)
                {
                    return(null);
                }

                if (entity.EMPLOYEEPOSTS.Count() == 0)
                {
                    return(null);
                }

                strPostID       = entity.EMPLOYEEPOSTS.FirstOrDefault(ep => ep.ISAGENCY == strIsAgenPost).T_HR_POST.POSTID;
                strDepartmentID = entity.EMPLOYEEPOSTS.FirstOrDefault(ep => ep.ISAGENCY == strIsAgenPost).T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID;
                strCompanyID    = entity.EMPLOYEEPOSTS.FirstOrDefault(ep => ep.ISAGENCY == strIsAgenPost).T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID;
            }

            var ent = dal.GetObjects().Include("T_HR_VACATIONSET").Where(s => employeeID.Contains(s.T_HR_VACATIONSET.ASSIGNEDOBJECTID));

            if (ent.Count() == 0)
            {
                ent = dal.GetObjects().Include("T_HR_VACATIONSET").Where(s => s.T_HR_VACATIONSET.ASSIGNEDOBJECTID == strPostID);
                if (ent.Count() == 0)
                {
                    ent = dal.GetObjects().Include("T_HR_VACATIONSET").Where(s => s.T_HR_VACATIONSET.ASSIGNEDOBJECTID == strDepartmentID);
                    if (ent.Count() == 0)
                    {
                        ent = dal.GetObjects().Include("T_HR_VACATIONSET").Where(s => s.T_HR_VACATIONSET.ASSIGNEDOBJECTID == strCompanyID);
                    }
                }
            }
            return(ent);
        }
 /// <summary>
 /// 获取当前员工、联系电话
 /// </summary>
 /// <param name="ent">员工信息实体</param>
 private void GetAllPost(V_EMPLOYEEPOST ent)
 {
     if (ent != null && ent.EMPLOYEEPOSTS != null)
     {
         textCreateUser.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.EMPLOYEECNAME; //员工姓名
         if (ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE != null)
         {
             textTell.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE;//手机号码
         }
     }
 }
Ejemplo n.º 7
0
 private void GetAllPost(V_EMPLOYEEPOST ent)//获取当前员工、公司、岗位、部门、联系电话
 {
     if (ent != null && ent.EMPLOYEEPOSTS != null)
     {
         txtCreateUser.Text   = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.EMPLOYEECNAME;                                        //员工姓名
         txtCompanyId.Text    = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.CNAME;                       //公司
         txtDepartmentId.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME; //部门
         if (ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE != null)
         {
             txtTELL.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE;//手机号码
         }
     }
 }
Ejemplo n.º 8
0
        public string GetXmlString(string Formid)
        {
            T_HR_OUTAPPLYCONFIRM Info = GetOutApplyConfirmByID(Formid);
            //SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY LEFTOFFICECATEGORY = cbxEmployeeType.SelectedItem as SMT.Saas.Tools.PermissionWS.T_SYS_DICTIONARY;
            decimal?stateValue = Convert.ToDecimal("1");
            string  checkState = string.Empty;
            string  checkStateDict
                = sysDicbll.GetSysDictionaryByCategoryArray(new string[] { "CHECKSTATE" }).Where(p => p.DICTIONARYVALUE == stateValue).FirstOrDefault().DICTIONARYNAME;

            checkState = checkStateDict == null ? "" : checkStateDict;

            V_EMPLOYEEPOST employee = new V_EMPLOYEEPOST();

            using (EmployeeBLL bll = new EmployeeBLL())
            {
                employee = bll.GetEmployeeDetailByID(Info.EMPLOYEEID);
            }
            decimal?postlevelValue = Convert.ToDecimal(employee.EMPLOYEEPOSTS[0].POSTLEVEL.ToString());
            string  postLevelName  = string.Empty;
            string  postLevelDict
                = sysDicbll.GetSysDictionaryByCategoryArray(new string[] { "CHECKSTATE" }).Where(p => p.DICTIONARYVALUE == stateValue).FirstOrDefault().DICTIONARYNAME;

            postLevelName = postLevelDict == null ? "" : postLevelDict;

            //decimal? overTimeValue = Convert.ToDecimal(Info);
            SMT.SaaS.MobileXml.MobileXml             mx       = new SMT.SaaS.MobileXml.MobileXml();
            List <SMT.SaaS.MobileXml.AutoDictionary> AutoList = new List <SMT.SaaS.MobileXml.AutoDictionary>();

            AutoList.Add(basedata("T_HR_OUTAPPLYCONFIRM", "CURRENTEMPLOYEENAME", employee.T_HR_EMPLOYEE.EMPLOYEECNAME, employee.T_HR_EMPLOYEE.EMPLOYEECNAME));
            AutoList.Add(basedata("T_HR_OUTAPPLYCONFIRM", "CHECKSTATE", "1", checkState));
            AutoList.Add(basedata("T_HR_OUTAPPLYCONFIRM", "POSTLEVEL", employee.EMPLOYEEPOSTS[0].POSTLEVEL.ToString(), postLevelName));
            AutoList.Add(basedata("T_HR_OUTAPPLYCONFIRM", "EMPLOYEENAM", Info.EMPLOYEENAME, Info.EMPLOYEENAME));
            AutoList.Add(basedata("T_HR_OUTAPPLYCONFIRM", "OWNERCOMPANYID", Info.OWNERCOMPANYID, Info.EMPLOYEENAME));
            AutoList.Add(basedata("T_HR_OUTAPPLYCONFIRM", "OWNERDEPARTMENTID", Info.OWNERDEPARTMENTID, Info.OWNERDEPARTMENTID));
            AutoList.Add(basedata("T_HR_OUTAPPLYCONFIRM", "OWNERPOSTID", Info.OWNERPOSTID, Info.OWNERPOSTID));

            string StrSource   = GetBusinessObject("T_HR_OUTAPPLYCONFIRM");
            string outApplyXML = mx.TableToXml(Info, null, StrSource, AutoList);

            return(outApplyXML);
        }
Ejemplo n.º 9
0
 void client_GetEmployeeDetailByIDCompleted(object sender, GetEmployeeDetailByIDCompletedEventArgs e)
 {
     if (e.Error != null && e.Error.Message != "")
     {
         //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(e.Error.Message));
         ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("ERRORINFO"),
                                        Utility.GetResourceStr("CONFIRM"), MessageIcon.Error);
     }
     else
     {
         if (e.Result != null)
         {
             V_EMPLOYEEPOST tempEnt = e.Result;
             FormMaster.EMPLOYEEID   = tempEnt.T_HR_EMPLOYEE.EMPLOYEEID;
             FormMaster.EMPLOYEECODE = tempEnt.T_HR_EMPLOYEE.EMPLOYEECODE;
             FormMaster.EMPLOYEENAME = tempEnt.T_HR_EMPLOYEE.EMPLOYEECNAME;
             txtDepartment.Text      = tempEnt.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME;
             txtPost.Text            = tempEnt.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_POSTDICTIONARY.POSTNAME;
         }
     }
 }
 private void GetAllPost(V_EMPLOYEEPOST ent)//获取当前员工、公司、岗位、部门、联系电话
 {
     if (ent != null && ent.EMPLOYEEPOSTS != null)
     {
         txtCreateUser.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.EMPLOYEECNAME; //员工姓名
         txtCompanyId.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.CNAME;//公司
         txtDepartmentId.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME;//部门
         if (ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE != null)
         {
             txtTELL.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE;//手机号码
         }
     }
 }
Ejemplo n.º 11
0
        /// <summary>
        /// 根据权限过滤
        /// </summary>
        /// <param name="filterString"></param>
        /// <param name="queryParas"></param>
        /// <param name="userID"></param>
        /// <param name="entityName"></param>
        protected void SetOrganizationFilter(ref string filterString, ref System.Collections.Generic.List <object> queryParas, string employeeID, string entityName)
        {
            //获取用户
            SysUserBLL UserBll = new SysUserBLL();
            T_SYS_USER user    = UserBll.GetUserByEmployeeID(employeeID);

            V_EMPLOYEEPOST vemp = employeeBll.GetEmployeeDetailByID(user.EMPLOYEEID);

            if (vemp == null)
            {
                return;
            }
            T_HR_EMPLOYEE emp = vemp.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE;


            //获取正常的角色用户权限

            IQueryable <V_Permission> plist = UserBll.GetUserMenuPerms(entityName, user.SYSUSERID);

            IQueryable <V_Permission> perms = plist;

            if (perms == null)
            {
                return;
            }

            //获取查询的权限,值越小,权限越大
            int maxPerm  = -1;
            var permlist = perms.Where(p => p.Permission.PERMISSIONVALUE == "3");

            if (permlist.Count() > 0)
            {
                maxPerm = permlist.Min(p => Convert.ToInt32(p.RoleMenuPermission.DATARANGE));
            }
            //perms.Where(p => p.Permission.PERMISSIONVALUE == "3").Min(p => Convert.ToInt32(p.RoleMenuPermission.DATARANGE));
            //var maxPerm = "2";



            //if (!emp.T_HR_EMPLOYEEPOST.IsLoaded)
            //{
            //    emp.T_HR_EMPLOYEEPOST.Load();
            //}

            //获取自定义权限
            int custPerm = GetCustomPerms(entityName, emp);

            if (custPerm < maxPerm)
            {
                maxPerm = custPerm;
            }

            //看整个公司的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Company))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " (";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERCOMPANYID==@" + queryParas.Count().ToString();


                    //暂时先去掉
                    //if (!ep.T_HR_POSTReference.IsLoaded)
                    //    ep.T_HR_POSTReference.Load();

                    //if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENTReference.IsLoaded == false)
                    //    ep.T_HR_POST.T_HR_DEPARTMENTReference.Load();

                    //if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENT != null && ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.IsLoaded == false)
                    //    ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANYReference.Load();

                    queryParas.Add(ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);

                    i++;
                }
                filterString += ") ";
            }


            //看部门的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Department))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " (";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERDEPARTMENTID==@" + queryParas.Count().ToString();

                    if (!ep.T_HR_POSTReference.IsLoaded)
                    {
                        ep.T_HR_POSTReference.Load();
                    }

                    if (ep.T_HR_POST != null && ep.T_HR_POST.T_HR_DEPARTMENTReference.IsLoaded == false)
                    {
                        ep.T_HR_POST.T_HR_DEPARTMENTReference.Load();
                    }

                    queryParas.Add(ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID);

                    i++;
                }
                filterString += ") ";
            }


            //看岗位的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Post))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " (";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERPOSTID==@" + queryParas.Count().ToString();

                    if (!ep.T_HR_POSTReference.IsLoaded)
                    {
                        ep.T_HR_POSTReference.Load();
                    }

                    queryParas.Add(ep.T_HR_POST.POSTID);

                    i++;
                }
                filterString += ") ";
            }

            //看员工
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Employee))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += "OWNERID==@" + queryParas.Count().ToString();
                queryParas.Add(employeeID);
            }
        }
Ejemplo n.º 12
0
        /// <summary>
        /// 根据传回的xml生成员工离职确认
        /// </summary>
        /// <param name="eGFunc"></param>
        /// <returns></returns>
        private static string AddLeftOfficeConfirm(IEnumerable <XElement> eGFunc)
        {
            try
            {
                if (eGFunc.Count() == 0)
                {
                    return("");
                }

                string strEmployeeID        = string.Empty;
                string strOwnerID           = string.Empty;
                string strOwnerPostID       = string.Empty;
                string strOwnerDepartmentID = string.Empty;
                string strOwnerCompanyID    = string.Empty;
                string strDimissionID       = string.Empty;

                foreach (var q in eGFunc)
                {
                    string strName = q.Attribute("Name").Value;
                    switch (strName)
                    {
                    case "EMPLOYEEID":
                        strEmployeeID = q.Attribute("Value").Value;
                        break;

                    case "OWNERID":
                        strOwnerID = q.Attribute("Value").Value;
                        break;

                    case "OWNERPOSTID":
                        strOwnerPostID = q.Attribute("Value").Value;
                        break;

                    case "OWNERDEPARTMENTID":
                        strOwnerDepartmentID = q.Attribute("Value").Value;
                        break;

                    case "OWNERCOMPANYID":
                        strOwnerCompanyID = q.Attribute("Value").Value;
                        break;

                    case "DIMISSIONID":
                        strDimissionID = q.Attribute("Value").Value;
                        break;
                    }
                }


                PersonnelService ser = new PersonnelService();

                T_HR_LEFTOFFICECONFIRM entity = new T_HR_LEFTOFFICECONFIRM();
                entity.CONFIRMID       = Guid.NewGuid().ToString();
                entity.T_HR_LEFTOFFICE = new T_HR_LEFTOFFICE();
                //entity.T_HR_LEFTOFFICE.DIMISSIONID = strDimissionID.Replace("{", "").Replace("}", "");
                //  entity.T_HR_PENSIONDETAIL = new T_HR_PENSIONDETAIL();
                entity.CHECKSTATE         = ((int)CheckStates.UnSubmit).ToString();
                entity.CREATEDATE         = DateTime.Now;
                entity.OWNERID            = strEmployeeID;
                entity.OWNERPOSTID        = strOwnerPostID;
                entity.OWNERDEPARTMENTID  = strOwnerDepartmentID;
                entity.OWNERCOMPANYID     = strOwnerCompanyID;
                entity.CREATEUSERID       = strOwnerID;
                entity.CREATEPOSTID       = strOwnerPostID;
                entity.CREATEDEPARTMENTID = strOwnerDepartmentID;
                entity.CREATECOMPANYID    = strOwnerCompanyID;
                T_HR_LEFTOFFICE leftOffice = ser.GetLeftOfficeByEmployeeIDAndPostID(strEmployeeID, strOwnerPostID);
                if (leftOffice != null)
                {
                    entity.LEFTOFFICECATEGORY          = leftOffice.LEFTOFFICECATEGORY;
                    entity.LEFTOFFICEDATE              = leftOffice.LEFTOFFICEDATE;
                    entity.LEFTOFFICEREASON            = leftOffice.LEFTOFFICEREASON;
                    entity.REMARK                      = leftOffice.REMARK;
                    entity.T_HR_LEFTOFFICE.DIMISSIONID = leftOffice.DIMISSIONID;
                    entity.EMPLOYEECNAME               = leftOffice.T_HR_EMPLOYEE.EMPLOYEECNAME;
                    entity.APPLYDATE                   = leftOffice.APPLYDATE;
                    entity.EMPLOYEEPOSTID              = leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID;
                    V_EMPLOYEEPOST eps = ser.GetEmployeeDetailByID(leftOffice.T_HR_EMPLOYEE.EMPLOYEEID);
                    entity.EMPLOYEEID   = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
                    entity.CREATEUSERID = leftOffice.T_HR_EMPLOYEE.CREATEUSERID;
                    foreach (T_HR_EMPLOYEEPOST ep in eps.EMPLOYEEPOSTS)
                    {
                        if (ep.EMPLOYEEPOSTID == leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID)
                        {
                            entity.OWNERID           = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID;
                            entity.OWNERPOSTID       = ep.T_HR_POST.POSTID;
                            entity.OWNERDEPARTMENTID = ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID;
                            entity.OWNERCOMPANYID    = ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID;
                        }
                    }
                }



                ser.LeftOfficeConfirmAdd(entity);
                return(entity.CONFIRMID);
            }
            catch (Exception e)
            {
                string abc = "<HR>Message=[" + e.Message + "]" + "<HR>Source=[" + e.Source + "]<HR>StackTrace=[" + e.StackTrace + "]<HR>TargetSite=[" + e.TargetSite + "]";
                Tracer.Debug(abc);
                return(abc);
            }
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 绩效控件手动打分,并返回结果
        /// </summary>
        /// <param name="kpiPoint"></param>
        /// <param name="formCode"></param>
        /// <param name="flowID"></param>
        /// <param name="lastStepCode"></param>
        /// <param name="AppraiseeID"></param>
        /// <param name="AppraiserID"></param>
        /// <param name="score"></param>
        /// <param name="scoretype"></param>
        /// <returns></returns>
        public T_HR_KPIRECORD SaveKPIRecord(T_HR_KPIPOINT kpiPoint, string formCode, string flowID, string lastStepCode, string AppraiseeID, string AppraiserID, int score, int scoretype)
        {
            try
            {
                bool isAdd = false; //判断是否为添加的标示。
                // 1s 冉龙军
                // 改stepID为stepCode(当流程中有重复的步骤时,此方法不可取)
                //T_HR_KPIRECORD record = GetKPIRecord(formCode, flowID, lastStepCode);
                T_HR_KPIRECORD record = GetKPIRecord(formCode, flowID, kpiPoint.STEPID);
                // 1e
                if (record == null)
                {
                    isAdd  = true;
                    record = InitialKPIRecord(formCode, flowID, lastStepCode, kpiPoint);
                }
                // 1s 冉龙军
                else
                {
                    if (record.OWNERCOMPANYID != null && record.OWNERDEPARTMENTID != null && record.OWNERPOSTID != null &&
                        record.OWNERID != null)
                    {
                    }
                    else
                    {
                        if (string.IsNullOrEmpty(AppraiseeID))
                        {
                        }
                        else
                        {
                            // 绩效所有者
                            using (EmployeeBLL kpiDetailEmployeeBLL = new EmployeeBLL())
                            {
                                V_EMPLOYEEPOST kpiDetailRecord = kpiDetailEmployeeBLL.GetEmployeeDetailByID(AppraiseeID);
                                if (kpiDetailRecord != null && kpiDetailRecord.EMPLOYEEPOSTS[0] != null &&
                                    kpiDetailRecord.EMPLOYEEPOSTS[0].T_HR_POST != null &&
                                    kpiDetailRecord.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT != null &&
                                    kpiDetailRecord.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY != null)
                                {
                                    record.OWNERCOMPANYID =
                                        kpiDetailRecord.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID;
                                    record.OWNERDEPARTMENTID =
                                        kpiDetailRecord.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID;
                                    record.OWNERPOSTID  = kpiDetailRecord.EMPLOYEEPOSTS[0].T_HR_POST.POSTID;
                                    record.OWNERID      = AppraiseeID;
                                    record.CREATEUSERID = AppraiseeID;
                                }
                            }
                        }
                    }
                }
                // 1e
                switch (scoretype)
                {
                //系统评分
                case 0:
                    record.SYSTEMSCORE  = score;
                    record.APPRAISEEID  = AppraiseeID;
                    record.UPDATEUSERID = AppraiseeID;
                    break;

                //手动评分
                case 1:
                    record.MANUALSCORE  = score;
                    record.APPRAISEEID  = AppraiseeID;
                    record.APPRAISERID  = AppraiserID;
                    record.UPDATEUSERID = AppraiserID;
                    break;

                //抽查评分
                case 2:
                    record.RANDOMSCORE    = score;
                    record.APPRAISEEID    = AppraiseeID;
                    record.RANDOMPERSONID = AppraiserID;
                    record.UPDATEUSERID   = AppraiserID;
                    break;

                // 1s 冉龙军
                //抽查评分
                case 3:
                    record.RANDOMPERSONID = AppraiserID;
                    break;
                    // 1e
                }

                //判断打分是否已经全部打完
                // 1s 冉龙军
                //if ((kpiPoint.T_HR_SCORETYPE.ISSYSTEMSCORE.Trim() == "0" || record.SYSTEMSCORE != null)         //不需要机打,或者已经打过
                //    && (kpiPoint.T_HR_SCORETYPE.ISMANUALSCORE.Trim() == "0" || record.MANUALSCORE != null)      //不需要人打,或者已经打过
                //    && (kpiPoint.T_HR_SCORETYPE.ISRANDOMSCORE.Trim() == "0" || record.RANDOMSCORE != null))     //不需要抽查,或者已经打过
                //{
                //    record.SUMSCORE = CulcalateScore(record);
                //}
                #region 全部打完才出总分
                //if (kpiPoint != null && kpiPoint.T_HR_SCORETYPE != null)
                //{
                //    if ((kpiPoint.T_HR_SCORETYPE.ISSYSTEMSCORE.Trim() == "0" || record.SYSTEMSCORE != null) //不需要机打,或者已经打过
                //        && (kpiPoint.T_HR_SCORETYPE.ISMANUALSCORE.Trim() == "0" || record.MANUALSCORE != null)
                //        //不需要人打,或者已经打过
                //        && (kpiPoint.T_HR_SCORETYPE.ISRANDOMSCORE.Trim() == "0" || record.RANDOMSCORE != null))
                //    //不需要抽查,或者已经打过
                //    {
                //        record.SUMSCORE = CulcalateScore(record);
                //    }
                //}
                #endregion
                // 计算总分
                record.SUMSCORE = CulcalateScore(record);

                // 1e
                KPIRecordBll bll = new KPIRecordBll();

                record.UPDATEDATE = System.DateTime.Now; //修改时间
                if (isAdd)
                {
                    bll.KPIRecordAdd(record); //添加KPI明细记录
                }
                else
                {
                    bll.KPIRecordUpdate(record); //修改KPI明细记录
                }

                SumPerformanceBll bllSumPerf = new SumPerformanceBll();
                bllSumPerf.SaveMyRecordByKPIRd(record);

                return(record);
            }
            catch (Exception ex)
            {
                Utility.SaveLog("绩效控件执行手动打分出错,出错原因:" + ex.ToString());
                return(null);
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        /// 根据员工ID获取员工的带薪假期的天数,调休假天数,及已休假天数。
        /// </summary>
        /// <param name="employeeID">员工ID</param>
        /// <param name="date">日期</param>
        /// <returns></returns>
        public List <V_EMPLOYEELEAVE> GetEmployeeLeaveByEmployeeID(string employeeID, DateTime date)
        {
            List <V_EMPLOYEELEAVE> leaveList = new List <V_EMPLOYEELEAVE>();

            try
            {
                //获取员工组织架构
                EmployeeBLL    employeeBll  = new EmployeeBLL();
                V_EMPLOYEEPOST employeePost = employeeBll.GetEmployeeDetailByID(employeeID);
                //获取员工的入职信息
                EmployeeEntryBLL   entryBll  = new EmployeeEntryBLL();
                T_HR_EMPLOYEEENTRY entry     = entryBll.GetEmployeeEntryByEmployeeID(employeeID);
                DateTime           entryDate = entry.ENTRYDATE.Value;
                int    m            = Utility.DateDiff(entryDate, date, "M");
                string departmentID = employeePost.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID;
                string comparyID    = employeePost.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID;


                var ent = from a in dal.GetObjects().Include("T_HR_LEAVETYPESET")
                          join al in dal.GetObjects <T_HR_ATTENDFREELEAVE>().Include("T_HR_ATTENDANCESOLUTION").Include("T_HR_LEAVETYPESET") on a.T_HR_LEAVETYPESET.LEAVETYPESETID equals al.T_HR_LEAVETYPESET.LEAVETYPESETID
                          join ad in dal.GetObjects <T_HR_ATTENDANCESOLUTION>() on al.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID equals ad.ATTENDANCESOLUTIONID
                          join at in dal.GetObjects <T_HR_ATTENDANCESOLUTIONASIGN>() on ad.ATTENDANCESOLUTIONID equals at.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID
                          where (at.ASSIGNEDOBJECTID == departmentID || at.ASSIGNEDOBJECTID == comparyID) &&
                          a.MINIMONTH <= m &&
                          a.MAXMONTH >= m
                          select new V_EMPLOYEELEAVE()
                {
                    EmployeeID                = employeeID,
                    EmployeeCode              = employeePost.T_HR_EMPLOYEE.EMPLOYEECODE,
                    EmployeeName              = employeePost.T_HR_EMPLOYEE.EMPLOYEECNAME,
                    LeaveTypeName             = a.T_HR_LEAVETYPESET.LEAVETYPENAME,
                    LeaveTypeSetID            = a.T_HR_LEAVETYPESET.LEAVETYPESETID,
                    MaxDays                   = a.T_HR_LEAVETYPESET.MAXDAYS.Value,
                    FineType                  = a.T_HR_LEAVETYPESET.FINETYPE,
                    IsPerfectAttendanceFactor = a.ISPERFECTATTENDANCEFACTOR,
                    LeaveDays                 = a.LEAVEDAYS.Value
                };
                leaveList = ent.Count() > 0 ? ent.ToList() : null;

                //获取年度考勤结算日
                AttendanceSolutionAsignBLL bll = new AttendanceSolutionAsignBLL();
                var    tempEnt = bll.GetAttendanceSolutionAsignByEmployeeID(employeeID);
                string strDate = tempEnt.T_HR_ATTENDANCESOLUTION.YEARLYBALANCEDATE;
                string strType = tempEnt.T_HR_ATTENDANCESOLUTION.YEARLYBALANCETYPE; //结算方式
                //获取加班调休假的天数
                EmployeeLevelDayCountBLL leaveDaybll = new EmployeeLevelDayCountBLL();
                AdjustLeaveBLL           adjustbll   = new AdjustLeaveBLL();
                decimal leaveDays = leaveDaybll.GetLevelDayCountByEmployeeID(employeeID, date, strDate);

                V_EMPLOYEELEAVE leave = new V_EMPLOYEELEAVE();
                ent = from a in dal.GetObjects <T_HR_LEAVETYPESET>()
                      where !string.IsNullOrEmpty(a.LEAVETYPEVALUE)
                      select new V_EMPLOYEELEAVE
                {
                    EmployeeID     = employeeID,
                    EmployeeCode   = employeePost.T_HR_EMPLOYEE.EMPLOYEECODE,
                    EmployeeName   = employeePost.T_HR_EMPLOYEE.EMPLOYEECNAME,
                    LeaveTypeName  = a.LEAVETYPENAME,
                    LeaveTypeSetID = a.LEAVETYPESETID,
                    MaxDays        = a.MAXDAYS.Value,
                    FineType       = a.FINETYPE,
                    LeaveDays      = leaveDays
                };
                leave = ent.Count() > 0 ? ent.FirstOrDefault() : null;
                if (leave != null)
                {
                    leaveList.Add(leave);
                }
                //获取已休天数,并算出可休假天数
                foreach (var obj in leaveList)
                {
                    //剩余可休假为累计的情况
                    if (strType == "1")
                    {
                        //往年可休假的总数
                        decimal leaveHistoryDays = leaveDaybll.GetLevelDayCountHistoryByEmployeeID(employeeID, date, strDate);
                        //往年已休假的总数
                        decimal UsedUpDays = adjustbll.GetUseUpHistory(obj.LeaveTypeSetID, obj.EmployeeID, date, strDate);
                        obj.LeaveDays += leaveHistoryDays - UsedUpDays;
                    }
                    obj.UsedLeaveDays    = adjustbll.GetUseUp(obj.LeaveTypeSetID, obj.EmployeeID, date, strDate);
                    obj.UseableLeaveDays = obj.LeaveDays - obj.UsedLeaveDays;
                }
            }
            catch (Exception ex)
            {
                Tracer.Debug(ex.ToString());
            }
            return(leaveList);
        }
Ejemplo n.º 15
0
        public void SetOrganizationFilter(ref string filterString, ref List <object> queryParas, string employeeID, string entityName)
        {
            //注意,用户总是能看到自己创建的记录

            //获取正常的角色用户权限

            int maxPerm = -1;

            //获取用户
            PermissionWS.T_SYS_USER user = PermClient.GetUserByEmployeeID(employeeID);
            //获取员工
            T_HR_EMPLOYEE emp = PersonClient.GetEmployeeByID(user.EMPLOYEEID);

            PermissionWS.V_Permission[] perms = PermClient.GetUserMenuPerms(entityName, user.SYSUSERID);

            bool hasPerms = true;

            if (perms == null)
            {
                // hasPerms = false;
                return;
            }
            else
            {
                //获取查询的权限,值越小,权限越大
                var tmpperms = perms.Where(p => p.Permission.PERMISSIONVALUE == "3").ToList();
                if (tmpperms == null || tmpperms.Count <= 0)
                {
                    hasPerms = false;
                }
                else
                {
                    maxPerm = tmpperms.Min(p => Convert.ToInt32(p.RoleMenuPermission.DATARANGE));
                }
            }

            if (hasPerms == false)
            {
                //if (!string.IsNullOrEmpty(filterString))
                //    filterString += " AND ";
                //filterString += " (1==0 OR CREATEUSERID==@" + queryParas.Count().ToString() + ")";
                //queryParas.Add(employeeID);
                filterString += "1 != 1";
                return;
            }


            //取员工岗位
            V_EMPLOYEEPOST emppost = PersonClient.GetEmployeeDetailByID(emp.EMPLOYEEID);

            emp.T_HR_EMPLOYEEPOST = emppost.EMPLOYEEPOSTS;


            //获取自定义权限
            int custPerm = GetCustomPerms(entityName, emp);

            if (custPerm < maxPerm)
            {
                maxPerm = custPerm;
            }

            //看整个集团的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Organize))
            {
                return;
            }

            //看整个公司的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Company))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " ((";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERCOMPANYID==@" + queryParas.Count().ToString();

                    queryParas.Add(ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID);

                    i++;
                }
                filterString += ") OR CREATEUSERID==@" + queryParas.Count().ToString() + ")";
                queryParas.Add(employeeID);
            }


            //看部门的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Department))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " ((";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERDEPARTMENTID==@" + queryParas.Count().ToString();

                    queryParas.Add(ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID);

                    i++;
                }

                filterString += ") OR CREATEUSERID==@" + queryParas.Count().ToString() + ")";
                queryParas.Add(employeeID);
            }


            //看岗位的
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Post))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " ((";
                int i = 0;
                foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST)
                {
                    if (i > 0)
                    {
                        filterString += " OR ";
                    }

                    filterString += "OWNERPOSTID==@" + queryParas.Count().ToString();

                    queryParas.Add(ep.T_HR_POST.POSTID);

                    i++;
                }
                filterString += ") OR CREATEUSERID==@" + queryParas.Count().ToString() + ")";
                queryParas.Add(employeeID);
            }

            //看员工
            if (Convert.ToInt32(maxPerm) == Convert.ToInt32(AssignObjectType.Employee))
            {
                if (!string.IsNullOrEmpty(filterString))
                {
                    filterString += " AND ";
                }

                filterString += " (( OWNERID==@" + queryParas.Count().ToString();
                queryParas.Add(employeeID);

                filterString += ") OR CREATEUSERID==@" + queryParas.Count().ToString() + ")";
                queryParas.Add(employeeID);
            }
        }
 /// <summary>
 /// 获取当前员工、联系电话
 /// </summary>
 /// <param name="ent">员工信息实体</param>
 private void GetAllPost(V_EMPLOYEEPOST ent)
 {
     if (ent != null && ent.EMPLOYEEPOSTS != null)
     {
         textCreateUser.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.EMPLOYEECNAME; //员工姓名
         if (ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE != null)
         {
             textTell.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.MOBILE;//手机号码
         }
     }
 }