private void GetAllPost(V_EMPLOYEEPOST ent)//获取当前员工、公司、岗位、部门、联系电话 { if (ent != null && ent.EMPLOYEEPOSTS != null) { txtCreateUserName.Text = ent.EMPLOYEEPOSTS[0].T_HR_EMPLOYEE.EMPLOYEECNAME; //员工姓名 } }
void client_GetEmployeeDetailByIDCompleted(object sender, GetEmployeeDetailByIDCompletedEventArgs e) { if (e.Result != null) { employeepost = e.Result; GetAllPost(e.Result); } }
/// <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;//手机号码 } } }
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;//手机号码 } } }
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); }
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;//手机号码 } } }
/// <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); } }
/// <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); } }
/// <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); } }
/// <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); }
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); } }