private int GetCustomPerms(string menuCode, T_HR_EMPLOYEE emp) { int perm = 99; //过滤自定义的权限 foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST) { PermissionWS.T_SYS_ENTITYMENUCUSTOMPERM[] custPerms; //查看有没有岗位的特别权限 custPerms = PermClient.GetCustomPostMenuPerms(menuCode, ep.T_HR_POST.POSTID); if (custPerms != null && custPerms.Count() > 0) { perm = Convert.ToInt32(AssignedObjectType.Post); } //查看有没有部门的特别权限 custPerms = PermClient.GetCustomDepartMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID); if (custPerms != null && custPerms.Count() > 0) { perm = Convert.ToInt32(AssignedObjectType.Department); } //查看有没有公司的特别权限 custPerms = PermClient.GetCustomCompanyMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID); if (custPerms != null && custPerms.Count() > 0) { perm = Convert.ToInt32(AssignedObjectType.Company); } } return(perm); }
public void EmployeeAdd(T_HR_EMPLOYEE entity, string companyID, ref string strMsg) { using (EmployeeBLL bll = new EmployeeBLL()) { bll.EmployeeAdd(entity, companyID, ref strMsg); } }
public void EmployeeAddOrUpdate(T_HR_EMPLOYEE entity, ref string strMsg) { using (EmployeeBLL bll = new EmployeeBLL()) { bll.EmployeeAddOrUpdate(entity, ref strMsg); } }
/// <summary> /// 选择异动人员 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LookUp_FindClick(object sender, EventArgs e) { #region OrganizationLookup lookup = new OrganizationLookup(); lookup.SelectedObjType = OrgTreeItemTypes.Personnel; lookup.SelectedClick += (obj, ev) => { // SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; List <ExtOrgObj> ent = lookup.SelectedObj as List <ExtOrgObj>; if (ent != null && ent.Count > 0) { ExtOrgObj companyInfo = ent.FirstOrDefault(); ExtOrgObj post = (ExtOrgObj)companyInfo.ParentObject; string postid = post.ObjectID; // fromPostLevel=(post as SMT.Saas.Tools.OrganizationWS.T_HR_POST).POSTLEVEL.ToString(); ExtOrgObj dept = (ExtOrgObj)post.ParentObject; string deptid = dept.ObjectID; // ExtOrgObj corp = (ExtOrgObj)dept.ParentObject; SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY corp = (dept.ObjectInstance as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT).T_HR_COMPANY; string corpid = corp.COMPANYID; T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE(); temp = ent.FirstOrDefault().ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; lkEmployeeName.DataContext = temp; } }; lookup.Show <string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); #endregion }
private int GetCustomPerms(string menuCode, T_HR_EMPLOYEE emp) { int perm = 99; return(perm); //暂时未实现 //过滤自定义的权限 //emp = //if (!emp.T_HR_EMPLOYEEPOST.IsLoaded) //{ // emp.T_HR_EMPLOYEEPOST.Load(); //} if (emp != null) { foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST) { 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(); } IQueryable <T_SYS_ENTITYMENUCUSTOMPERM> custPerms; //查看有没有岗位的特别权限 EntityMenuCustomPermBLL bll = new EntityMenuCustomPermBLL(); custPerms = bll.GetCustomPostMenuPerms(menuCode, ep.T_HR_POST.POSTID); if (custPerms != null && custPerms.Count() > 0) { perm = Convert.ToInt32(AssignObjectType.Post); } //查看有没有部门的特别权限 custPerms = bll.GetCustomDepartMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID); if (custPerms != null && custPerms.Count() > 0) { perm = Convert.ToInt32(AssignObjectType.Department); } //查看有没有公司的特别权限 custPerms = bll.GetCustomCompanyMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID); if (custPerms != null && custPerms.Count() > 0) { perm = Convert.ToInt32(AssignObjectType.Company); } } } return(perm); }
private string CombinSalaryEmployeeInfo(T_HR_EMPLOYEE entEmployee) { string strTemp = string.Empty; if (entEmployee == null) { return(strTemp); } strTemp = entEmployee.EMPLOYEEID + ";" + entEmployee.OWNERCOMPANYID; return(strTemp); }
public EmployeeEntryAddForm(T_HR_EMPLOYEE ent, int employeeType) { InitializeComponent(); Employee = ent; this.employeeType = employeeType; this.Loaded += (sender, args) => { InitParas(); }; }
/// <summary> /// 获取当前员工ID隶属于公司的所有岗位 /// </summary> /// <param name="filterString"></param> /// <param name="queryParas"></param> /// <param name="employeeID"></param> private void SetPostFilter(ref string filterString, ref List <object> queryParas, string employeeID) { if (string.IsNullOrEmpty(filterString)) { return; } EmployeeBLL bll = new EmployeeBLL(); T_HR_EMPLOYEE emp = bll.GetEmployeeByID(employeeID); if (!emp.T_HR_EMPLOYEEPOST.IsLoaded) { emp.T_HR_EMPLOYEEPOST.Load(); } foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST) { 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(); } //var ent = DataContext.T_HR_DEPARTMENT.Where(s => s.T_HR_COMPANY.COMPANYID == ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID); //if (ent != null) //{ // foreach (var tempEnt in ent) // { // if (!string.IsNullOrEmpty(filterString)) // filterString += " OR "; // filterString += "T_HR_DEPARTMENT.DEPARTMENTID==@" + queryParas.Count().ToString(); // queryParas.Add(tempEnt.DEPARTMENTID); // } //} if (!string.IsNullOrEmpty(filterString)) { filterString += " OR "; } filterString += "POSTID==@" + queryParas.Count().ToString(); queryParas.Add(ep.T_HR_POST.POSTID); //下级公司 //SetInferiorCompany(ep, ref filterString, ref queryParas); } }
/// <summary> /// 未正式启用的考勤记录 /// </summary> /// <param name="entEmployees">员工集合</param> /// <param name="dtStart">上班起始日期</param> /// <param name="dtEnd">上班截止日期</param> public void DeleteUnEffectiveRecordByDate(T_HR_COMPANY entCompany, T_HR_EMPLOYEE entEmployee, DateTime dtStart, DateTime dtEnd, ref DateTime dtRes) { try { if (entEmployee == null) { return; } string strEmployeeID = entEmployee.EMPLOYEEID; var dels = from ac in dal.GetObjects() where ac.EMPLOYEEID == strEmployeeID && ac.OWNERCOMPANYID == entCompany.COMPANYID && ac.ATTENDANCEDATE >= dtStart && ac.ATTENDANCEDATE <= dtEnd orderby ac.ATTENDANCEDATE descending select ac; if (dels.Count() == 0) { return; } foreach (T_HR_ATTENDANCERECORD entAttRd in dels) { try { if (!string.IsNullOrWhiteSpace(entAttRd.ATTENDANCESTATE)) { continue; } Tracer.Debug("初始化考勤删除未启用的员工初始化考勤记录,员工姓名:" + entAttRd.EMPLOYEENAME + " 时间:" + entAttRd.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd")); dal.Delete(entAttRd); } catch (Exception ex) { Tracer.Debug("删除员工" + entEmployee.EMPLOYEECNAME + "考勤初始化记录异常:" + " 考勤日期:" + entAttRd.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd") + " 异常原因:" + ex.ToString()); continue; } } //dal.SaveContextChanges(); } catch (Exception ex) { dtRes = dtEnd; Utility.SaveLog("删除员工考勤初始化记录出错,执行函数为:DeleteUnEffectiveRecordByDate, 出错原因:" + ex.ToString()); } }
/// <summary> /// 选择员工 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LookUp_FindClick(object sender, EventArgs e) { //Dictionary<string, string> cols = new Dictionary<string, string>(); //cols.Add("EMPLOYEECODE", "T_HR_EMPLOYEE.EMPLOYEECODE"); //cols.Add("EMPLOYEECNAME", "T_HR_EMPLOYEE.EMPLOYEECNAME"); //cols.Add("EMPLOYEEENAME", "T_HR_EMPLOYEE.EMPLOYEEENAME"); //LookupForm lookup = new LookupForm(SMT.Saas.Tools.OrganizationWS.EntityNames.Employee, // typeof(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST[]), cols); //lookup.SelectedClick += (o, ev) => //{ // SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent = lookup.SelectedObj as SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST; ; // if (ent != null) // { // lkEmployeeName.DataContext = ent.T_HR_EMPLOYEE; // } //}; //lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); OrganizationLookup lookup = new OrganizationLookup(); lookup.SelectedObjType = OrgTreeItemTypes.Personnel; lookup.SelectedClick += (obj, ev) => { SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; if (ent != null) { lkEmployeeName.DataContext = ent; // SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE temp = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; T_HR_EMPLOYEE entity = new T_HR_EMPLOYEE(); entity.EMPLOYEEID = ent.EMPLOYEEID; entity.EMPLOYEECNAME = ent.EMPLOYEECNAME; entity.OWNERPOSTID = ent.OWNERPOSTID; entity.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID; entity.OWNERCOMPANYID = ent.OWNERCOMPANYID; PensionMaster.OWNERCOMPANYID = ent.OWNERCOMPANYID; PensionMaster.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID; PensionMaster.OWNERPOSTID = ent.OWNERPOSTID; PensionMaster.OWNERID = ent.EMPLOYEEID; //ent.OWNERID; ownerid为空 改成employeeid PensionMaster.T_HR_EMPLOYEE = entity; } }; lookup.Show <string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); }
/// <summary> /// 查看本公司的所有公司信息 /// </summary> /// <param name="filterString"></param> /// <param name="paras"></param> /// <param name="EmployeeID"></param> private void SetCompanyFilter(ref string filterString, ref List <object> queryParas, string employeeID) { if (string.IsNullOrEmpty(filterString)) { return; } EmployeeBLL bll = new EmployeeBLL(); T_HR_EMPLOYEE emp = bll.GetEmployeeByID(employeeID); if (!emp.T_HR_EMPLOYEEPOST.IsLoaded) { emp.T_HR_EMPLOYEEPOST.Load(); } foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST) { if (!string.IsNullOrEmpty(filterString)) { filterString += " OR "; } filterString += "COMPANYID==@" + 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); //查看是否有下级公司 SetInferiorCompany(ep, ref filterString, ref queryParas); } }
void client_GetPerformaceRewardByIDCompleted(object sender, GetPerformaceRewardByIDCompletedEventArgs e) { if (e.Error != null && !string.IsNullOrEmpty(e.Error.Message)) { Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(e.Error.Message)); } else { if (e.Result == null) { Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("NOTFOUND")); return; } performanceRewardRecord = e.Result; this.DataContext = performanceRewardRecord; T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE(); employee.EMPLOYEECNAME = performanceRewardRecord.EMPLOYEENAME; lkEmployeeName.DataContext = employee; RefreshUI(RefreshedTypes.AuditInfo); SetToolBar(); } }
public T_HR_EMPLOYEE GetQueryAgent(string UserId, string ModCode) { ProxySettingsBLL psbll = new ProxySettingsBLL(); PersonnelServiceClient psc = new PersonnelServiceClient(); if (psbll.IsExistAGENTForUser(UserId)) { T_OA_AGENTSET AgentList = psbll.GetQueryAgent(UserId, ModCode); T_HR_EMPLOYEE employee = null; if (AgentList != null) { T_HR_EMPLOYEEPOST[] tmps = psc.GetEmployeePostByPostID(AgentList.AGENTPOSTID); if (tmps != null && tmps.Count() > 0) { employee = tmps[0].T_HR_EMPLOYEE; } else { T_HR_EMPLOYEE[] tmp = psc.GetEmployeeLeader(UserId, 0); if (tmp != null && tmp.Count() > 0) { employee = tmp[0];//返回该岗位员工的直接上级 } } } else { T_HR_EMPLOYEE[] tmp = psc.GetEmployeeLeader(UserId, 0); if (tmp != null && tmp.Count() > 0) { employee = tmp[0];//返回该岗位员工的直接上级 } } return(employee); } return(null); }
/// <summary> /// 考勤异常提醒xml /// </summary> /// <param name="employeeCheck"></param> public void GetAbnormRecordCheckEngineXml(T_HR_EMPLOYEE entTemp) { DateTime dtStart = System.DateTime.Now; List <object> objArds = new List <object>(); objArds.Add(entTemp.OWNERCOMPANYID); objArds.Add("HR"); objArds.Add("T_HR_EMPLOYEE"); objArds.Add(entTemp.EMPLOYEEID); objArds.Add(dtStart.ToString("yyyy/MM/d")); objArds.Add(dtStart.ToString("HH:mm")); objArds.Add(""); objArds.Add(""); objArds.Add("你的考勤数据出现异常,请及时处理"); objArds.Add(""); objArds.Add(Utility.strEngineFuncWSSite); objArds.Add("EventTriggerProcess"); objArds.Add("<Para Name=\"AbnormRecordCheckAlarm\" Name=\"EMPLOYEEID\" Value=\"" + entTemp.EMPLOYEEID + "\"></Para>"); objArds.Add("Г"); objArds.Add("basicHttpBinding"); Utility.SendEngineEventTriggerData(objArds); }
private string GetAssignObjectName(string type, string objectID) { string name = ""; int objectType = -1; int.TryParse(type, out objectType); switch ((AssignObjectType)objectType) { case AssignObjectType.Company: CompanyBLL cbll = new CompanyBLL(); T_HR_COMPANY company = cbll.GetCompanyById(objectID); name = (company == null) ? "" : company.CNAME; break; case AssignObjectType.Department: DepartmentBLL dbll = new DepartmentBLL(); T_HR_DEPARTMENT depart = dbll.GetDepartmentById(objectID); name = (depart == null) ? "" : depart.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME; break; case AssignObjectType.Post: PostBLL pbll = new PostBLL(); T_HR_POST post = pbll.GetPostById(objectID); name = (post == null) ? "" : post.T_HR_POSTDICTIONARY.POSTNAME; break; case AssignObjectType.Employee: EmployeeBLL ebll = new EmployeeBLL(); T_HR_EMPLOYEE employee = ebll.GetEmployeeByID(objectID); name = (employee == null) ? "" : employee.EMPLOYEECNAME; break; } return(name); }
/// <summary> /// 员工入职录入社保记录 /// </summary> /// <param name="entity"></param> /// <returns></returns> public string PensionMasterByEmployeeAdd(T_HR_EMPLOYEE entity) { try { T_HR_PENSIONMASTER pension = new T_HR_PENSIONMASTER(); pension.PENSIONMASTERID = Guid.NewGuid().ToString(); pension.T_HR_EMPLOYEEReference.EntityKey = new System.Data.EntityKey(qualifiedEntitySetName + "T_HR_EMPLOYEE", "EMPLOYEEID", entity.EMPLOYEEID); pension.OWNERCOMPANYID = entity.OWNERCOMPANYID; pension.OWNERDEPARTMENTID = entity.OWNERDEPARTMENTID; pension.OWNERPOSTID = entity.OWNERPOSTID; pension.OWNERID = entity.OWNERID; pension.CREATEUSERID = entity.CREATEUSERID; pension.CREATEDATE = DateTime.Now; pension.ISVALID = "0"; dal.Add(pension); return("{SAVESUCCESSED}"); } catch (Exception ex) { SMT.Foundation.Log.Tracer.Debug(System.DateTime.Now.ToString() + "PensionMasterByEmployeeAdd:" + ex.Message); throw ex; } }
void DocDistrbuteClient_GetDocDistrbuteInfosCompleted(object sender, GetDocDistrbuteInfosCompletedEventArgs e) { try { if (e.Error == null) { if (e.Result != null) { List<SMT.SaaS.OA.UI.SmtOACommonOfficeService.T_OA_DISTRIBUTEUSER> distributeList = e.Result.ToList(); foreach (var h in distributeList) { object obj = new object(); SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj extOrgObj = new SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj(); if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Company).ToString()) { T_HR_COMPANY tmp = new T_HR_COMPANY(); tmp.COMPANYID = h.VIEWER; tmp.CNAME = ""; obj = tmp; } else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Department).ToString()) { T_HR_DEPARTMENT tmp = new T_HR_DEPARTMENT(); tmp.DEPARTMENTID = h.VIEWER; T_HR_DEPARTMENTDICTIONARY tmpdict = new T_HR_DEPARTMENTDICTIONARY(); tmpdict.DEPARTMENTNAME = ""; tmp.T_HR_DEPARTMENTDICTIONARY = tmpdict; obj = tmp; } else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Post).ToString()) { T_HR_POST tmp = new T_HR_POST(); tmp.POSTLEVEL = System.Convert.ToDecimal(h.VIEWER); T_HR_POSTDICTIONARY tmpdict = new T_HR_POSTDICTIONARY(); tmpdict.POSTNAME = ""; tmp.T_HR_POSTDICTIONARY = tmpdict; obj = tmp; } else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Personnel).ToString()) { T_HR_EMPLOYEE tmp = new T_HR_EMPLOYEE(); tmp.EMPLOYEEID = h.VIEWER; tmp.EMPLOYEECNAME = ""; obj = tmp; } extOrgObj.ObjectInstance = obj; issuanceExtOrgObj.Add(extOrgObj); } BindData(); } } else Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), e.Error.Message); } catch (Exception ex) { //HtmlPage.Window.Alert(ex.ToString()); Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(ex.Message.ToString())); } }
/// <summary> /// 获取指定条件的公共假期设置信息 /// </summary> /// <param name="strOrderBy">排序字段</param> /// <param name="strFilter">查询语句</param> /// <param name="objArgs">查询参数集合</param> /// <param name="employeeID">员工ID</param> /// <returns>返回请假类型</returns> public IQueryable <T_HR_LEAVETYPESET> GetLeaveTypeSetRdListByEmployeeID(string strOrderBy, string strFilter, string employeeID, params object[] objArgs) { var q = from l in dal.GetObjects <T_HR_LEAVETYPESET>() select l; if (objArgs.Count() > 0 && !string.IsNullOrEmpty(strFilter)) { q = q.Where(strFilter, objArgs); } EmployeeBLL employeeBLL = new EmployeeBLL(); T_HR_EMPLOYEE employee = employeeBLL.GetEmployeeByID(employeeID); if (employee == null) { //不存在员工 return(null); } string strBirthDay = string.Empty; string strSex = string.Empty; if (employee.BIRTHDAY != null) { strBirthDay = employee.BIRTHDAY.ToString(); } if (employee.SEX != null) { //0 女性 1 男性 strSex = employee.SEX.ToString(); } DateTime dtBirthday = new DateTime(); DateTime dtYouth = new DateTime(); DateTime.TryParse(strBirthDay, out dtBirthday); DateTime.TryParse(DateTime.Now.Year.ToString() + "-05-04", out dtYouth); List <T_HR_LEAVETYPESET> listSets = new List <T_HR_LEAVETYPESET>(); foreach (var ent in q) { //五四 if (ent.LEAVETYPEVALUE == "12") { //小于等于28岁才有五四青年节 if (dtBirthday.AddYears(28) >= dtYouth) { listSets.Add(ent); } } //三八 else if (ent.LEAVETYPEVALUE == "13") { if (strSex == "0") { listSets.Add(ent); } } else { if (ent.SEXRESTRICT != "2") { //性别不是为不限 if (ent.SEXRESTRICT == strSex) { listSets.Add(ent); } } else { listSets.Add(ent); } } } return(listSets.AsQueryable().OrderBy(strOrderBy)); }
/// <summary> /// 保存KPI明细记录信息(接口专用) /// </summary> /// <param name="kpirecord"></param> /// <param name="AppraiseeID"></param> /// <param name="AppraiserID"></param> /// <param name="score"></param> /// <param name="scoretype"></param> /// <returns></returns> public T_HR_KPIRECORD SaveKPIRecordInterface(T_HR_KPIRECORD kpirecord, string AppraiseeID, string AppraiserID, int score, int scoretype) { try { bool isAdd = false; //判断是否为添加的标示。 T_HR_KPIRECORD record = GetKPIRecordInterface(kpirecord.BUSINESSCODE); if (record == null) { isAdd = true; record = InitialKPIRecordInterface(kpirecord); } //获取权限字段 EmployeeBLL bllEmployee = new EmployeeBLL(); T_HR_EMPLOYEE ep = bllEmployee.GetEmployeeByID(AppraiseeID); if (ep != null) { record.OWNERID = ep.OWNERID; record.OWNERPOSTID = ep.OWNERPOSTID; record.OWNERDEPARTMENTID = ep.OWNERDEPARTMENTID; record.OWNERCOMPANYID = ep.OWNERCOMPANYID; } 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; } if (record.SYSTEMSCORE != null && //不需要机打,或者已经打过 record.MANUALSCORE != null && //不需要人打,或者已经打过 record.RANDOMSCORE != null) //不需要抽查,或者已经打过 { record.SUMSCORE = CulcalateScore(record); } using (KPIRecordBll bll = new KPIRecordBll()) { record.UPDATEDATE = System.DateTime.Now; //修改时间 if (isAdd) { bll.KPIRecordAddInterface(record); //添加KPI明细记录 } else { bll.KPIRecordUpdate(record); //修改KPI明细记录 } return(record); } } catch (Exception ex) { Utility.SaveLog(ex.ToString()); return(null); } }
public string UpdateEmployeeInfo(EmployeeInfo employeeInfo) { StringBuilder StrReturn = new StringBuilder(); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.OmitXmlDeclaration = true; try { using (XmlWriter writer = XmlWriter.Create(StrReturn, settings)) { var ents = from ent in dal.GetObjects <T_SYS_USER>() where ent.USERNAME == employeeInfo.loginAccount select ent; if (ents.Count() > 0) { PersonnelServiceClient client = new PersonnelServiceClient(); T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE(); if (ents.FirstOrDefault() != null) { T_SYS_USER UserInfo = ents.FirstOrDefault(); T_HR_EMPLOYEE CachePerson = client.GetEmployeeByID(UserInfo.EMPLOYEEID); CachePerson.REMARK = employeeInfo.Remark; CachePerson.OFFICEPHONE = employeeInfo.Tel; CachePerson.MOBILE = employeeInfo.Mobile; CachePerson.FAMILYADDRESS = employeeInfo.Address; string StringRef = ""; Tracer.Debug("更新员工信息" + UserInfo.EMPLOYEEID + " " + StringRef + System.DateTime.Now); if (CachePerson != null) { CachePerson.T_HR_RESUMEReference = null; client.EmployeeUpdate(CachePerson, UserInfo.OWNERCOMPANYID, ref StringRef); if (StringRef == "") { HrInstantMessageWS.InstantMessagingServiceClient InstantMessage = new InstantMessagingServiceClient(); EmployeeModel employeeHr = new EmployeeModel(); employeeHr = InstantMessage.GetSingelEmployee(UserInfo.EMPLOYEEID); if (employeeHr != null) { writer.WriteStartElement("BizRegReq"); writer.WriteStartElement("Employee"); writer.WriteAttributeString("EmployeeId", employeeHr.EmployeeId); writer.WriteAttributeString("EmployeeName", employeeHr.EmployeeName); writer.WriteAttributeString("LoginAccount", UserInfo.USERNAME); writer.WriteAttributeString("Sex", ""); writer.WriteAttributeString("Age", ""); writer.WriteAttributeString("PostName", "");//待完善 writer.WriteAttributeString("Email", employeeHr.Email); writer.WriteAttributeString("Address", employeeHr.Address); writer.WriteAttributeString("AddCode", "");//没有默认为空 writer.WriteAttributeString("Mobile", employeeHr.Mobile); writer.WriteAttributeString("Tel", employeeHr.Tel); writer.WriteAttributeString("Nation", ""); writer.WriteAttributeString("Province", ""); writer.WriteAttributeString("City", ""); writer.WriteAttributeString("Remark", employeeHr.Remark); writer.WriteEndElement(); //完成Employee节点 writer.WriteEndElement(); //完成BizRegReq节点 //writer.Flush(); } } else { ErrorMessage(writer, "修改员工信息错误,请联系管理员"); } } else { ErrorMessage(writer, "没有获取到该员工信息"); } } else { ErrorMessage(writer, "没有获取到该员工信息"); } } else { ErrorMessage(writer, "没有获取到该员工信息"); } writer.Flush(); } } catch (Exception ex) { using (XmlWriter catchError = XmlWriter.Create(StrReturn, settings)) { ErrorMessage(catchError, "服务器错误"); Tracer.Debug("即时通讯-UpdateEmployeeInfo:" + ex.ToString() + System.DateTime.Now); catchError.Flush(); } } return(StrReturn.ToString().Replace("\r", "").Replace("\n", "")); }
private int GetCustomPerms(string menuCode, T_HR_EMPLOYEE emp) { int perm = 99; //过滤自定义的权限 foreach (T_HR_EMPLOYEEPOST ep in emp.T_HR_EMPLOYEEPOST) { PermissionWS.T_SYS_ENTITYMENUCUSTOMPERM[] custPerms; //查看有没有岗位的特别权限 custPerms = PermClient.GetCustomPostMenuPerms(menuCode, ep.T_HR_POST.POSTID); if (custPerms != null && custPerms.Count() > 0) perm = Convert.ToInt32(AssignedObjectType.Post); //查看有没有部门的特别权限 custPerms = PermClient.GetCustomDepartMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID); if (custPerms != null && custPerms.Count() > 0) perm = Convert.ToInt32(AssignedObjectType.Department); //查看有没有公司的特别权限 custPerms = PermClient.GetCustomCompanyMenuPerms(menuCode, ep.T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID); if (custPerms != null && custPerms.Count() > 0) perm = Convert.ToInt32(AssignedObjectType.Company); } return perm; }
/// <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> /// 根据帐号获取员工信息 /// </summary> /// <param name="loginAccount"></param> /// <returns></returns> public string GetEmployeeInfo(string loginAccount) { StringBuilder StrReturn = new StringBuilder(); XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent = true; settings.OmitXmlDeclaration = true; try { using (XmlWriter writer = XmlWriter.Create(StrReturn, settings)) { using (CommDal <T_HR_EMPLOYEE> cdl = new CommDal <T_HR_EMPLOYEE>()) { var ents = from ent in cdl.GetObjects <T_HR_EMPLOYEE>() where ent.EMPLOYEEENAME == loginAccount select ent; if (ents.Count() > 0) { EmployeeModel employee = new EmployeeModel(); if (ents.FirstOrDefault() != null) { T_HR_EMPLOYEE UserInfo = ents.FirstOrDefault(); employee = GetSingelEmployee(UserInfo.EMPLOYEEID); if (employee != null) { writer.WriteStartElement("BizRegReq"); writer.WriteStartElement("Employee"); writer.WriteAttributeString("EmployeeId", employee.EmployeeId); writer.WriteAttributeString("EmployeeName", employee.EmployeeName); writer.WriteAttributeString("LoginAccount", employee.LoginAccount); writer.WriteAttributeString("Sex", employee.Sex); //writer.WriteAttributeString("Age", ""); writer.WriteAttributeString("PostName", employee.PostName); writer.WriteAttributeString("Email", employee.Email); writer.WriteAttributeString("Address", employee.Address); writer.WriteAttributeString("AddCode", "");//没有默认为空 writer.WriteAttributeString("Mobile", employee.Mobile); writer.WriteAttributeString("Tel", employee.Tel); writer.WriteAttributeString("Nation", ""); writer.WriteAttributeString("Province", ""); writer.WriteAttributeString("City", ""); writer.WriteAttributeString("PostID", employee.PostID); writer.WriteAttributeString("Remark", employee.Remark); writer.WriteAttributeString("CompanyName", employee.CompanyName); writer.WriteEndElement(); //完成Employee节点 writer.WriteEndElement(); //完成BizRegReq节点 } else { ErrorMessage(writer, "没有获取到该员工信息"); } } else { ErrorMessage(writer, "没有获取到该员工信息"); } } else { ErrorMessage(writer, "没有获取到该员工信息"); } writer.Flush(); } } } catch (Exception ex) { using (XmlWriter catchError = XmlWriter.Create(StrReturn, settings)) { ErrorMessage(catchError, "服务器错误"); Tracer.Debug("即时通讯-GetEmployeeInfo:" + ex.ToString() + System.DateTime.Now); catchError.Flush(); } } return(StrReturn.ToString().Replace("\r", "").Replace("\n", "")); }
private bool Save() { List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll(); RefreshUI(RefreshedTypes.ShowProgressBar); if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE) { SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; T_HR_EMPLOYEE ent = new T_HR_EMPLOYEE(); ent.EMPLOYEEID = employee.EMPLOYEEID; ent.EMPLOYEECNAME = employee.EMPLOYEECNAME; ent.OWNERPOSTID = employee.OWNERPOSTID; ent.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; ent.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeCheck.EMPLOYEECODE = employee.EMPLOYEECODE; EmployeeCheck.EMPLOYEENAME = employee.EMPLOYEECNAME; EmployeeCheck.OWNERID = employee.EMPLOYEEID; EmployeeCheck.OWNERPOSTID = employee.OWNERPOSTID; EmployeeCheck.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; EmployeeCheck.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeCheck.T_HR_EMPLOYEE = ent; //EmployeeCheck.T_HR_EMPLOYEE = employee; } else { //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME")); ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation); RefreshUI(RefreshedTypes.HideProgressBar); return false; } if (validators.Count > 0) { //could use the content of the list to show an invalid message summary somehow // Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), validators.Count.ToString() + " invalid validators"); RefreshUI(RefreshedTypes.HideProgressBar); return false; } if (string.IsNullOrEmpty(dpBeregulardate.Text.Trim())) { //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "BEREGULARDATE")); ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "BEREGULARDATE"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation); RefreshUI(RefreshedTypes.HideProgressBar); return false; } else { //对转正日期作校验 bool isRightTime = true; string strBeregularDate = dpBeregulardate.Text; string strReportDate = txtReportDate.Text; string strOndutyDate = txtOndutyDate.Text; //报道时间 DateTime beregularDate = Convert.ToDateTime(strBeregularDate); if(!string.IsNullOrEmpty(strReportDate)) { DateTime reportDate = Convert.ToDateTime(strReportDate); if (reportDate != null && reportDate > beregularDate) { isRightTime = false; } } //到岗时间 if (!string.IsNullOrEmpty(strOndutyDate)) { DateTime ondutyDate = Convert.ToDateTime(strOndutyDate); if (ondutyDate != null && ondutyDate > beregularDate) { isRightTime = false; } } //弹出警告窗 if (!isRightTime) { ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), "抱歉,转正时间须晚于入职时间和到岗时间.", Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation); RefreshUI(RefreshedTypes.HideProgressBar); return false; } } if (FormType == FormTypes.New) { EmployeeCheck.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID; EmployeeCheck.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID; EmployeeCheck.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID; EmployeeCheck.OWNERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; string strMsg = ""; client.EmployeeCheckAddAsync(EmployeeCheck, strMsg); } else { EmployeeCheck.UPDATEDATE = System.DateTime.Now; EmployeeCheck.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; ; client.EmployeeCheckUpdateAsync(EmployeeCheck, "Edit"); } return true; }
/// <summary> /// 选择异动人员 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LookUp_FindClick(object sender, EventArgs e) { #region 废弃代码 //Dictionary<string, string> cols = new Dictionary<string, string>(); //cols.Add("EMPLOYEECODE", "T_HR_EMPLOYEE.EMPLOYEECODE"); //cols.Add("EMPLOYEECNAME", "T_HR_EMPLOYEE.EMPLOYEECNAME"); //cols.Add("EMPLOYEEENAME", "T_HR_EMPLOYEE.EMPLOYEEENAME"); //LookupForm lookup = new LookupForm(SMT.Saas.Tools.OrganizationWS.EntityNames.Employee, // typeof(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST[]), cols); //lookup.SelectedClick += (o, ev) => //{ // SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent = lookup.SelectedObj as SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST; // if (ent != null) // { // lkEmployeeName.DataContext = ent.T_HR_EMPLOYEE; // HandleEmployeeChanged(ent); // } //}; //lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); #endregion #region OrganizationLookup lookup = new OrganizationLookup(); lookup.SelectedObjType = OrgTreeItemTypes.Personnel; lookup.SelectedClick += (obj, ev) => { // SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; List<ExtOrgObj> ent = lookup.SelectedObj as List<ExtOrgObj>; if (ent != null && ent.Count > 0) { ExtOrgObj companyInfo = ent.FirstOrDefault(); ExtOrgObj post = (ExtOrgObj)companyInfo.ParentObject; string postid = post.ObjectID; // fromPostLevel=(post as SMT.Saas.Tools.OrganizationWS.T_HR_POST).POSTLEVEL.ToString(); ExtOrgObj dept = (ExtOrgObj)post.ParentObject; string deptid = dept.ObjectID; // ExtOrgObj corp = (ExtOrgObj)dept.ParentObject; SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY corp = (dept.ObjectInstance as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT).T_HR_COMPANY; string corpid = corp.COMPANYID; T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE(); temp = ent.FirstOrDefault().ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; //如果是员工主兼互换,必须选择主岗位 zhangwei modify 2014-3-6 var selectPost = temp.T_HR_EMPLOYEEPOST.Where(s => s.T_HR_POST.POSTID == postid).FirstOrDefault(); if (isMainPostChanged && selectPost.ISAGENCY != "0") { MessageBox.Show("请选择主岗位"); return; } //异动前岗位级别 pgCaution.Text = string.Empty; if (temp.T_HR_EMPLOYEEPOST != null) { // fromPostLevel = temp.T_HR_EMPLOYEEPOST.FirstOrDefault().POSTLEVEL.ToString(); //postChange.FROMPOSTLEVEL = temp.T_HR_EMPLOYEEPOST.FirstOrDefault().POSTLEVEL; ///Modified by 罗捷 ///做是否是兼职岗位的判断 ///modified by zhangwei 去掉兼职岗位判断 2013-12-2 //string isAgencyPara = temp.T_HR_EMPLOYEEPOST.Where(s => s.T_HR_POST.POSTID == postid).FirstOrDefault().ISAGENCY; //BanChangeAgencyPost(isAgencyPara); postChange.FROMPOSTLEVEL = temp.T_HR_EMPLOYEEPOST.Where(s => s.T_HR_POST.POSTID == postid).FirstOrDefault().POSTLEVEL; fromPostLevel = postChange.FROMPOSTLEVEL.ToString(); foreach (T_SYS_DICTIONARY item in cbxFromPostLevel.ItemsSource) { if (item.DICTIONARYVALUE == postChange.FROMPOSTLEVEL) { cbxFromPostLevel.SelectedItem = item; break; } } } lkEmployeeName.DataContext = temp; PostChange.EMPLOYEECODE = temp.EMPLOYEECODE; PostChange.EMPLOYEENAME = temp.EMPLOYEECNAME; PostChange.OWNERID = temp.EMPLOYEEID; PostChange.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); postChange.T_HR_EMPLOYEE.EMPLOYEEID = temp.EMPLOYEEID; postChange.T_HR_EMPLOYEE.EMPLOYEECNAME = temp.EMPLOYEECNAME; postChange.T_HR_EMPLOYEE.OWNERPOSTID = temp.OWNERPOSTID; postChange.T_HR_EMPLOYEE.OWNERDEPARTMENTID = temp.OWNERDEPARTMENTID; postChange.T_HR_EMPLOYEE.OWNERCOMPANYID = temp.OWNERCOMPANYID; postChange.T_HR_EMPLOYEE.EMPLOYEECODE = temp.EMPLOYEECODE; postChange.T_HR_EMPLOYEE.EMPLOYEEENAME = temp.EMPLOYEEENAME; // txtFromCompanyID.Text = corp.ObjectName; txtFromCompanyID.Text = corp.CNAME; txtFromDepartmentID.Text = dept.ObjectName; txtFromPostID.Text = post.ObjectName; PostChange.FROMCOMPANYID = corp.COMPANYID; PostChange.FROMDEPARTMENTID = dept.ObjectID; PostChange.FROMPOSTID = post.ObjectID; client.GetAllPostByEmployeeIDAsync(PostChange.T_HR_EMPLOYEE.EMPLOYEEID); orgClient.GetPostByIdAsync(PostChange.FROMPOSTID, ""); //luojie 获取借款信息 isSave = false; if (pgCaution.Visibility==Visibility.Collapsed) ShowOuterPostchangeState(); //GetPersonAccountData(); } }; lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); #endregion }
/// <summary> /// 对指定公司,指定的员工,按照指定的考勤方案应用生成指定时段内的考勤初始化记录 /// </summary> /// <param name="entTemp"></param> /// <param name="entCompany"></param> /// <param name="entEmployees"></param> /// <param name="dtAsignDate"></param> /// <returns></returns> private string AsignAttendSolForEmployees(T_HR_ATTENDANCESOLUTIONASIGN entTemp, T_HR_COMPANY entCompany, List <T_HR_EMPLOYEE> entEmployees, DateTime dtAsignDate) { string strRes = string.Empty; try { decimal dWorkMode = entTemp.T_HR_ATTENDANCESOLUTION.WORKMODE.Value; string strAttendanceSolutionID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID; int iWorkMode = 0; int.TryParse(dWorkMode.ToString(), out iWorkMode); List <int> iWorkDays = new List <int>(); Utility.GetWorkDays(iWorkMode, ref iWorkDays); SchedulingTemplateDetailBLL bllTemplateDetail = new SchedulingTemplateDetailBLL(); List <T_HR_SCHEDULINGTEMPLATEDETAIL> entTemplateDetails = new List <T_HR_SCHEDULINGTEMPLATEDETAIL>(); var q = bllTemplateDetail.GetTemplateDetailRdListByAttendanceSolutionId(strAttendanceSolutionID); if (q == null) { Tracer.Debug("考勤初始化考勤班次不存在"); return("{NOTFOUND}"); } entTemplateDetails = q.ToList(); if (entTemplateDetails == null) { Tracer.Debug("考勤初始化考勤班次不存在"); return("{NOTFOUND}"); } if (entTemplateDetails.Count == 0) { Tracer.Debug("考勤初始化考勤班次不存在"); return("{NOTFOUND}"); } int iTotalDay = 0; //DateTime dtCheck = new DateTime(); DateTime dtStart = DateTime.Parse(dtAsignDate.ToString("yyyy-MM") + "-1"); //DateTime dtStart = DateTime.Parse("2012-10-1"); if (entTemp.STARTDATE > dtStart) { dtStart = entTemp.STARTDATE.Value; } DateTime dtInitAttandRecordEndDate = dtStart.AddMonths(1).AddDays(-1); AttendanceRecordBLL bllAttRd = new AttendanceRecordBLL(); EmployeeLevelDayCountBLL bllLevelDayCount = new EmployeeLevelDayCountBLL(); EmployeeEntryBLL bllEntry = new EmployeeEntryBLL(); LeftOfficeConfirmBLL bllConfirm = new LeftOfficeConfirmBLL(); //操作表T_HR_EMPLOYEELEVELDAYCOUNT数据的方式:0:直接逐条新增或修改; //1:先把要新增或修改的记录存到内存,然后一次性提交到数据库修改 Tracer.Debug("开始生成员工考勤初始化记录,总员工数:" + entEmployees.Count()); for (int n = 0; n < entEmployees.Count(); n++) { bool AttendNoCheck = false; try { T_HR_EMPLOYEE item_emp = entEmployees[n]; DateTime dtInitAttandRecordStartDate = new DateTime(); #region 判断是否免打卡 //如果是免打卡的用户,在这里还是需要初始化,因为结算的时候需要计算出勤天数 if (!entTemp.T_HR_ATTENDANCESOLUTIONReference.IsLoaded) { entTemp.T_HR_ATTENDANCESOLUTIONReference.Load(); } if (entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCETYPE == (Convert.ToInt32(Common.AttendanceType.NoCheck) + 1).ToString())//考勤方案设置为不考勤 { AttendNoCheck = true; Tracer.Debug("初始化员工,考勤方案设置为免打卡,员工姓名:" + entEmployees.FirstOrDefault().EMPLOYEECNAME + " 考勤方案名:" + entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONNAME); } #endregion #region 初始化开始日期大于结束日期 dtInitAttandRecordStartDate = dtStart; if (dtInitAttandRecordStartDate >= dtInitAttandRecordEndDate) { Tracer.Debug("初始化员工考勤记录被跳过,dtInitAttandRecordStartDate >= dtEnd" + ",员工姓名" + item_emp.EMPLOYEECNAME); continue; } #endregion #region 判断员工状态,是否有入职记录,是否已离职,入职,离职日期 string usedAttendSolutionName = ",使用的考勤方案:" + entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONNAME + ",当前线程id:" + Thread.CurrentThread.ManagedThreadId; Tracer.Debug("初始化员工考勤记录:员工状态:" + item_emp.EMPLOYEESTATE + ",员工姓名" + item_emp.EMPLOYEECNAME + usedAttendSolutionName); if (item_emp.EMPLOYEESTATE == "0") { T_HR_EMPLOYEEENTRY entEntry = bllEntry.GetEmployeeEntryByEmployeeID(item_emp.EMPLOYEEID); if (entEntry == null) { Tracer.Debug("初始化员工考勤记录被跳过,该员工入职为空" + ",员工姓名" + item_emp.EMPLOYEECNAME); continue; } TimeSpan tsStart = entEntry.ONPOSTDATE.Value - dtInitAttandRecordStartDate; TimeSpan tsEnd = dtInitAttandRecordEndDate - entEntry.ONPOSTDATE.Value; if (tsStart.Days >= 0 && tsEnd.Days >= 0) { Tracer.Debug("初始化员工考勤记录开始日期被修改:entEntry.ONPOSTDATE.Value > dtInitAttandRecordStartDate" + ",员工姓名" + item_emp.EMPLOYEECNAME + " 入职日期:" + entEntry.ENTRYDATE.Value.ToString("yyyy-MM-dd") + " 到岗日期:" + entEntry.ONPOSTDATE.Value.ToString("yyyy-MM-dd")); dtInitAttandRecordStartDate = new DateTime(entEntry.ONPOSTDATE.Value.Year, entEntry.ONPOSTDATE.Value.Month, entEntry.ONPOSTDATE.Value.Day); } if (tsEnd.Days < 0) { Tracer.Debug("初始化员工考勤记录被跳过:员工到岗日期大于考勤初始化结束日期entEntry.ONPOSTDATE.Value > dtEnd" + ",员工姓名" + item_emp.EMPLOYEECNAME + " 入职日期:" + entEntry.ENTRYDATE.Value.ToString("yyyy-MM-dd") + " 到岗日期:" + entEntry.ONPOSTDATE.Value.ToString("yyyy-MM-dd") + " 考勤初始化结束日期:" + dtInitAttandRecordEndDate); continue; } } if (item_emp.EMPLOYEESTATE == "1") { T_HR_EMPLOYEEENTRY entEntry = bllEntry.GetEmployeeEntryByEmployeeID(item_emp.EMPLOYEEID); if (entEntry == null) { Tracer.Debug("该员工入职为空" + ",员工姓名" + item_emp.EMPLOYEECNAME); continue; } if (entEntry.ONPOSTDATE.Value > dtInitAttandRecordStartDate && entEntry.ONPOSTDATE.Value < dtInitAttandRecordEndDate) { Tracer.Debug("初始化员工考勤记录开始日期被修改:entEntry.ONPOSTDATE.Value > dtInitAttandRecordStartDate" + ",员工姓名" + item_emp.EMPLOYEECNAME + " 入职日期:" + entEntry.ENTRYDATE.Value.ToString("yyyy-MM-dd") + " 到岗日期:" + entEntry.ONPOSTDATE.Value.ToString("yyyy-MM-dd")); dtInitAttandRecordStartDate = new DateTime(entEntry.ONPOSTDATE.Value.Year, entEntry.ONPOSTDATE.Value.Month, entEntry.ONPOSTDATE.Value.Day); } TimeSpan ts3 = entEntry.ONPOSTDATE.Value - dtInitAttandRecordEndDate; if (ts3.Days > 0) { Tracer.Debug("初始化员工考勤记录被跳过,员工入职日期大于本月最后一天" + ",员工姓名" + item_emp.EMPLOYEECNAME); continue; } } else if (item_emp.EMPLOYEESTATE == "2") { T_HR_LEFTOFFICECONFIRM entConfirm = bllConfirm.GetLeftOfficeConfirmByEmployeeId(item_emp.EMPLOYEEID); if (entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value < dtStart) { Tracer.Debug("初始化员工考勤记录被跳过,entConfirm.STOPPAYMENTDATE !=null && entConfirm.STOPPAYMENTDATE.Value < dtStart" + ",员工姓名" + item_emp.EMPLOYEECNAME); continue; } if (entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value > dtStart && entConfirm.STOPPAYMENTDATE.Value < dtInitAttandRecordEndDate) { dtInitAttandRecordEndDate = new DateTime(entConfirm.STOPPAYMENTDATE.Value.Year, entConfirm.STOPPAYMENTDATE.Value.Month, entConfirm.STOPPAYMENTDATE.Value.Day); } if (entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value < dtStart) { Tracer.Debug("初始化员工考勤记录被跳过,entConfirm.STOPPAYMENTDATE != null && entConfirm.STOPPAYMENTDATE.Value < dtStart" + ",员工姓名" + item_emp.EMPLOYEECNAME); continue; } } #endregion TimeSpan ts = dtInitAttandRecordEndDate.Subtract(dtInitAttandRecordStartDate); iTotalDay = ts.Days; T_HR_SCHEDULINGTEMPLATEMASTER entTemplateMaster = entTemplateDetails[0].T_HR_SCHEDULINGTEMPLATEMASTER; int iCircleDay = 0; if (entTemplateMaster.SCHEDULINGCIRCLETYPE == (Convert.ToInt32(Common.SchedulingCircleType.Month) + 1).ToString()) { iCircleDay = 31; } else if (entTemplateMaster.SCHEDULINGCIRCLETYPE == (Convert.ToInt32(Common.SchedulingCircleType.Week) + 1).ToString()) { iCircleDay = 7; } int iPeriod = iTotalDay / iCircleDay; if (iTotalDay % iCircleDay >= 0) { iPeriod += 1; } OutPlanDaysBLL bllOutPlanDays = new OutPlanDaysBLL(); IQueryable <T_HR_OUTPLANDAYS> entOutPlanDays = bllOutPlanDays.GetOutPlanDaysRdListByEmployeeID(item_emp.EMPLOYEEID); string strVacDayType = (Convert.ToInt32(Common.OutPlanDaysType.Vacation) + 1).ToString(); string strWorkDayType = (Convert.ToInt32(Common.OutPlanDaysType.WorkDay) + 1).ToString(); IQueryable <T_HR_OUTPLANDAYS> entVacDays = entOutPlanDays.Where(s => s.DAYTYPE == strVacDayType); IQueryable <T_HR_OUTPLANDAYS> entWorkDays = entOutPlanDays.Where(s => s.DAYTYPE == strWorkDayType && s.STARTDATE >= dtInitAttandRecordStartDate && s.ENDDATE <= dtInitAttandRecordEndDate); //IQueryable<T_HR_OUTPLANDAYS> entVacWorkDays = entOutPlanDays.Where(s => s.STARTDATE >= dtInitAttandRecordStartDate && s.ENDDATE <= dtInitAttandRecordEndDate); //例外工作日考勤初始化记录公共假期 CreateOutPlanWorkDay(entCompany, item_emp, entTemp, entTemplateDetails, entWorkDays, AttendNoCheck); //IQueryable<T_HR_OUTPLANDAYS> entVacWorkHalfDays // = entVacDays.Where(s => s.STARTDATE >= dtInitAttandRecordStartDate // && s.ENDDATE <= dtInitAttandRecordEndDate && s.ISHALFDAY=="1"); int addCount = 0; int updateCount = 0; for (int i = 0; i < iPeriod; i++) { for (int j = 0; j < iCircleDay; j++) { #region 开始生成员工考勤初始化记录 try { int m = (i * iCircleDay) + j; DateTime dtCurDate = dtInitAttandRecordStartDate.AddDays(m); if (dtCurDate > entTemp.ENDDATE.Value) { break; } bool isVacDay = false; if (iWorkDays.Contains(Convert.ToInt32(dtCurDate.DayOfWeek)) == false) { continue; } if (entVacDays.Count() > 0) { foreach (T_HR_OUTPLANDAYS item_Vac in entVacDays) { if (item_Vac.STARTDATE.Value <= dtCurDate && item_Vac.ENDDATE >= dtCurDate) { //如果是公共假期并未设置半天,设为公共假期不考勤 if (string.IsNullOrEmpty(item_Vac.ISHALFDAY)) { isVacDay = true; break; } if (!string.IsNullOrEmpty(item_Vac.ISHALFDAY) && item_Vac.ISHALFDAY == "0") { isVacDay = true; break; } else { //例外工作日考勤初始化记录(公共假期半天休息,还有半天上班也需要初始化考勤记录) } } } } if (isVacDay) { continue; } T_HR_SCHEDULINGTEMPLATEDETAIL item = entTemplateDetails.Where(c => c.SCHEDULINGDATE == (j + 1).ToString()).FirstOrDefault(); var qc = from ar in dal.GetObjects <T_HR_ATTENDANCERECORD>() where //ar.OWNERCOMPANYID == entCompany.COMPANYID && ar.EMPLOYEEID == item_emp.EMPLOYEEID && ar.ATTENDANCEDATE == dtCurDate select ar; T_HR_ATTENDANCERECORD entUpdate = qc.FirstOrDefault(); if (entUpdate == null) { T_HR_ATTENDANCERECORD entAttRd = new T_HR_ATTENDANCERECORD(); entAttRd.ATTENDANCERECORDID = System.Guid.NewGuid().ToString().ToUpper(); entAttRd.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID; entAttRd.EMPLOYEEID = item_emp.EMPLOYEEID; entAttRd.EMPLOYEECODE = item_emp.EMPLOYEECODE; entAttRd.EMPLOYEENAME = item_emp.EMPLOYEECNAME; entAttRd.ATTENDANCEDATE = dtCurDate; //外键实体 //entAttRd.T_HR_SHIFTDEFINE = item.T_HR_SHIFTDEFINE; entAttRd.T_HR_SHIFTDEFINEReference.EntityKey = new EntityKey("TM_SaaS_OA_EFModelContext.T_HR_SHIFTDEFINE", "SHIFTDEFINEID", item.T_HR_SHIFTDEFINE.SHIFTDEFINEID); //第一段工作时间 entAttRd.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME; entAttRd.FIRSTENDTIME = item.T_HR_SHIFTDEFINE.FIRSTENDTIME; //第二段工作时间 entAttRd.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME; entAttRd.SECONDENDTIME = item.T_HR_SHIFTDEFINE.SECONDENDTIME; //第三段工作时间 entAttRd.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME; entAttRd.THIRDENDTIME = item.T_HR_SHIFTDEFINE.THIRDENDTIME; //第四段工作时间 entAttRd.FOURTHENDTIME = item.T_HR_SHIFTDEFINE.FOURTHENDTIME; entAttRd.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME; //查询公共假期设置判断是否只上半天班公共假期 var qVacDay = from ent in entVacDays where ent.STARTDATE == entAttRd.ATTENDANCEDATE select ent; if (qVacDay.Count() > 0) { var set = qVacDay.FirstOrDefault(); if (!string.IsNullOrEmpty(set.ISHALFDAY)) { if (set.ISHALFDAY == "1") { if (set.PEROID == "0")//上午 { string msg = "考勤初始化(新增)-检测到假期设置了休假(半天):" + " 员工:" + entAttRd.EMPLOYEENAME + " 日期:" + entAttRd.ATTENDANCEDATE + " 休假分段(0上午):" + set.PEROID; Tracer.Debug(msg); entAttRd.REMARK = msg; entAttRd.NEEDFRISTATTEND = "0"; //上午不上班 entAttRd.NEEDSECONDATTEND = "1"; //下午上班 } else if (set.PEROID == "1") { string msg = "考勤初始化(新增)-检测到假期设置了休假(半天):" + " 员工:" + entAttRd.EMPLOYEENAME + " 日期:" + entAttRd.ATTENDANCEDATE + " 休假分段(1下午):" + set.PEROID; Tracer.Debug(msg); entAttRd.REMARK = msg; entAttRd.NEEDFRISTATTEND = "1"; //上午上班 entAttRd.NEEDSECONDATTEND = "0"; //下午不上班 } } } } //权限 entAttRd.OWNERCOMPANYID = item_emp.OWNERCOMPANYID; entAttRd.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID; entAttRd.OWNERPOSTID = item_emp.OWNERPOSTID; entAttRd.OWNERID = item_emp.OWNERID; entAttRd.CREATEUSERID = entTemp.CREATEUSERID; entAttRd.CREATEDATE = DateTime.Now; entAttRd.REMARK += entTemp.REMARK; entAttRd.UPDATEUSERID = entTemp.UPDATEUSERID; entAttRd.UPDATEDATE = DateTime.Now; entAttRd.CREATECOMPANYID = entTemp.CREATECOMPANYID; entAttRd.CREATEDEPARTMENTID = entTemp.CREATEDEPARTMENTID; entAttRd.CREATEPOSTID = entTemp.CREATEPOSTID; if (AttendNoCheck) { entAttRd.ATTENDANCESTATE = "1";//免打卡员工 Tracer.Debug("设置为免打孔员工,考勤默认为已出勤," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + entAttRd.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd") + usedAttendSolutionName); } else { entAttRd.ATTENDANCESTATE = string.Empty; //新生成的考勤记录,出勤状态为空 } Tracer.Debug("开始新增员工T_HR_ATTENDANCERECORD记录,日期:" + dtCurDate.ToString("yyyy-MM-dd") + ",员工姓名:" + item_emp.EMPLOYEECNAME + ",初始化考勤状态:" + entAttRd.ATTENDANCESTATE + usedAttendSolutionName); addCount += dal.Add(entAttRd); } else { if (AttendNoCheck) //免打孔 { entUpdate.ATTENDANCESTATE = "1"; //免打卡员工 //非免打卡员工,跳过 Tracer.Debug("设置为免打孔员工,考勤默认为已出勤," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + entUpdate.ATTENDANCEDATE.Value.ToString("yyyy-MM-dd") + usedAttendSolutionName); } else { if (!string.IsNullOrEmpty(entUpdate.ATTENDANCESTATE)) { Tracer.Debug("更新考勤初始化记录,已存在的考勤初始化记录状态为: " + entUpdate.ATTENDANCESTATE + " ,跳过不再生成" + ",员工姓名:" + item_emp.EMPLOYEECNAME + ",考勤状态:" + entUpdate.ATTENDANCESTATE + usedAttendSolutionName); continue; //如果存在直接跳过 } entUpdate.ATTENDANCESTATE = string.Empty; //新生成的考勤记录,出勤状态为空 } Tracer.Debug("更新考勤初始化记录,ATTENDANCESTATE考勤状态为空,日期:" + dtCurDate.ToString("yyyy-MM-dd") + ",员工姓名:" + item_emp.EMPLOYEECNAME + ",初始化考勤状态:" + entUpdate.ATTENDANCESTATE + usedAttendSolutionName); entUpdate.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID; entUpdate.EMPLOYEEID = item_emp.EMPLOYEEID; entUpdate.EMPLOYEECODE = item_emp.EMPLOYEECODE; entUpdate.EMPLOYEENAME = item_emp.EMPLOYEECNAME; entUpdate.ATTENDANCEDATE = dtCurDate; entUpdate.T_HR_SHIFTDEFINE = item.T_HR_SHIFTDEFINE; //第一段工作时间 entUpdate.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME; entUpdate.FIRSTENDTIME = item.T_HR_SHIFTDEFINE.FIRSTENDTIME; //第二段工作时间 entUpdate.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME; entUpdate.SECONDENDTIME = item.T_HR_SHIFTDEFINE.SECONDENDTIME; //第三段工作时间 entUpdate.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME; entUpdate.THIRDENDTIME = item.T_HR_SHIFTDEFINE.THIRDENDTIME; //第四段工作时间 entUpdate.FOURTHENDTIME = item.T_HR_SHIFTDEFINE.FOURTHENDTIME; entUpdate.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME; //查询公共假期设置判断是否只上半天班 var qVacDay = from ent in entVacDays where ent.STARTDATE == entUpdate.ATTENDANCEDATE select ent; if (qVacDay.Count() > 0) { var set = qVacDay.FirstOrDefault(); if (!string.IsNullOrEmpty(set.ISHALFDAY)) { if (set.ISHALFDAY == "1") { if (set.PEROID == "0")//上午 { string msg = "考勤初始化(修改)-检测到假期设置了休假(半天):" + " 员工:" + entUpdate.EMPLOYEENAME + " 日期:" + entUpdate.ATTENDANCEDATE + " 上班分段(0上午):" + set.PEROID; Tracer.Debug(msg); entUpdate.REMARK = msg; entUpdate.NEEDFRISTATTEND = "0"; //上午不上班休息 entUpdate.NEEDSECONDATTEND = "1"; //下午上班 } else if (set.PEROID == "1") { string msg = "考勤初始化(修改)-检测到假期设置了休假(半天):" + " 员工:" + entUpdate.EMPLOYEENAME + " 日期:" + entUpdate.ATTENDANCEDATE + " 上班分段(1下午):" + set.PEROID; Tracer.Debug(msg); entUpdate.REMARK = msg; entUpdate.NEEDFRISTATTEND = "1"; //上午上班 entUpdate.NEEDSECONDATTEND = "0"; //下午不上班休息 } } } } //权限 entUpdate.OWNERCOMPANYID = item_emp.OWNERCOMPANYID; entUpdate.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID; entUpdate.OWNERPOSTID = item_emp.OWNERPOSTID; entUpdate.OWNERID = item_emp.OWNERID; entUpdate.REMARK += entTemp.REMARK; entUpdate.UPDATEUSERID = entTemp.UPDATEUSERID; entUpdate.UPDATEDATE = DateTime.Now; updateCount += dal.Update(entUpdate); } } catch (Exception ex) { Tracer.Debug("生成考勤初始化记录出错:" + item_emp.EMPLOYEECNAME + ex.ToString() + usedAttendSolutionName); continue; } #endregion } } //bllLevelDayCount.CalculateEmployeeLevelDayCount(entTemp, item_emp, strOperationType); //int saveCount=dal.SaveContextChanges(); Tracer.Debug(n + "生成员工:" + item_emp.EMPLOYEECNAME + " 考勤记录成功,开始日期" + dtStart.ToString("yyyy-MM-dd") + "结束日期:" + dtInitAttandRecordEndDate.ToString("yyyy-MM-dd") + "共新增考勤记录" + addCount.ToString() + " 更新记录条数:" + updateCount + usedAttendSolutionName); } catch (Exception ex) { Tracer.Debug("生成考勤初始化记录出错:" + entEmployees[n].EMPLOYEECNAME + ex.ToString()); continue; } } Tracer.Debug("生成所有员工考勤记录成功,开始日期" + dtStart.ToString("yyyy-MM-dd") + "结束日期:" + dtInitAttandRecordEndDate.ToString("yyyy-MM-dd")); strRes = "{SAVESUCCESSED}"; } catch (Exception ex) { Tracer.Debug("生成考勤初始化记录出错:" + ex.ToString()); strRes = ex.Message.ToString(); } return(strRes); }
/// <summary> /// 对指定员工生成列外日期的考勤作息记录 /// </summary> /// <param name="entCompany">员工所在公司</param> /// <param name="item_emp">员工信息</param> /// <param name="entTemp">考勤方案分配</param> /// <param name="entTemplateDetails">作息方案</param> /// <param name="entWorkDays">调剂工作日</param> private void CreateOutPlanWorkDay(T_HR_COMPANY entCompany, T_HR_EMPLOYEE item_emp, T_HR_ATTENDANCESOLUTIONASIGN entTemp, List <T_HR_SCHEDULINGTEMPLATEDETAIL> entTemplateDetails, IQueryable <T_HR_OUTPLANDAYS> entWorkDays, bool AttendNoCheck) { if (entWorkDays == null) { return; } if (entWorkDays.Count() == 0) { return; } List <DateTime> listWorkDay = new List <DateTime>(); foreach (T_HR_OUTPLANDAYS entOutPlanDay in entWorkDays) { TimeSpan ts = entOutPlanDay.ENDDATE.Value.Subtract(entOutPlanDay.STARTDATE.Value); int iDayPeriod = ts.Days; iDayPeriod += 1;//实际天数应包含起始天数 for (int i = 0; i < iDayPeriod; i++) { DateTime dtTemp = entOutPlanDay.STARTDATE.Value.AddDays(i); listWorkDay.Add(dtTemp); } } if (listWorkDay.Count() == 0) { return; } for (int j = 0; j < listWorkDay.Count(); j++) { int m = 0; DateTime dtCurDate = listWorkDay[j]; m = dtCurDate.Day; T_HR_SCHEDULINGTEMPLATEDETAIL item = entTemplateDetails.Where(c => c.SCHEDULINGDATE == m.ToString()).FirstOrDefault(); var qc = from ar in dal.GetObjects <T_HR_ATTENDANCERECORD>() where //ar.OWNERCOMPANYID == entCompany.COMPANYID && ar.EMPLOYEEID == item_emp.EMPLOYEEID && ar.ATTENDANCEDATE == dtCurDate select ar; T_HR_ATTENDANCERECORD entUpdate = qc.FirstOrDefault(); if (entUpdate == null) { T_HR_ATTENDANCERECORD entAttRd = new T_HR_ATTENDANCERECORD(); entAttRd.ATTENDANCERECORDID = System.Guid.NewGuid().ToString().ToUpper(); entAttRd.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID; entAttRd.EMPLOYEEID = item_emp.EMPLOYEEID; entAttRd.EMPLOYEECODE = item_emp.EMPLOYEECODE; entAttRd.EMPLOYEENAME = item_emp.EMPLOYEECNAME; entAttRd.ATTENDANCEDATE = dtCurDate; if (item.T_HR_SHIFTDEFINE == null) { Tracer.Debug("生成员工列外工作日期错误,排班定义T_HR_SCHEDULINGTEMPLATEDETAIL:" + item.T_HR_SCHEDULINGTEMPLATEMASTER.TEMPLATENAME + " T_HR_SHIFTDEFINE为Null"); return; } entAttRd.T_HR_SHIFTDEFINEReference.EntityKey = new EntityKey("TM_SaaS_OA_EFModelContext.T_HR_SHIFTDEFINE", "SHIFTDEFINEID", item.T_HR_SHIFTDEFINE.SHIFTDEFINEID); //第一段工作时间 entAttRd.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME; entAttRd.FIRSTENDTIME = item.T_HR_SHIFTDEFINE.FIRSTENDTIME; //第二段工作时间 entAttRd.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME; entAttRd.SECONDENDTIME = item.T_HR_SHIFTDEFINE.SECONDENDTIME; //第三段工作时间 entAttRd.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME; entAttRd.THIRDENDTIME = item.T_HR_SHIFTDEFINE.THIRDENDTIME; //第四段工作时间 entAttRd.FOURTHENDTIME = item.T_HR_SHIFTDEFINE.FOURTHENDTIME; entAttRd.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME; //查询公共假期设置判断是否只上半天班公共假期 var q = from ent in entWorkDays where ent.STARTDATE == entAttRd.ATTENDANCEDATE select ent; if (q.Count() > 0) { var set = q.FirstOrDefault(); if (!string.IsNullOrEmpty(set.ISHALFDAY)) { if (set.ISHALFDAY == "1") { if (set.PEROID == "0")//上午 { string msg = "考勤初始化(新增)CreateOutPlanWorkDay-检测设置了半天工作日:" + " 员工:" + entAttRd.EMPLOYEENAME + " 日期:" + entAttRd.ATTENDANCEDATE + " 上班分段(0上午):" + set.PEROID; Tracer.Debug(msg); entAttRd.NEEDFRISTATTEND = "1"; //上午上班 entAttRd.NEEDSECONDATTEND = "0"; //下午不上班 entAttRd.REMARK = msg; } else if (set.PEROID == "1") { string msg = "考勤初始化(新增)-检测设置了半天工作日:" + " 员工:" + entAttRd.EMPLOYEENAME + " 日期:" + entAttRd.ATTENDANCEDATE + " 上班分段(1下午):" + set.PEROID; Tracer.Debug(msg); entAttRd.REMARK = msg; entAttRd.NEEDFRISTATTEND = "0"; //上午不上班 entAttRd.NEEDSECONDATTEND = "1"; //下午上班 } } } } entAttRd.ATTENDANCESTATE = string.Empty; //新生成的考勤记录,出勤状态为空 //权限 entAttRd.OWNERCOMPANYID = item_emp.OWNERCOMPANYID; entAttRd.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID; entAttRd.OWNERPOSTID = item_emp.OWNERPOSTID; entAttRd.OWNERID = item_emp.OWNERID; entAttRd.CREATEUSERID = entTemp.CREATEUSERID; entAttRd.CREATEDATE = DateTime.Now; entAttRd.REMARK += entTemp.REMARK; entAttRd.UPDATEUSERID = entTemp.UPDATEUSERID; entAttRd.UPDATEDATE = DateTime.Now; entAttRd.CREATECOMPANYID = entTemp.CREATECOMPANYID; entAttRd.CREATEDEPARTMENTID = entTemp.CREATEDEPARTMENTID; entAttRd.CREATEPOSTID = entTemp.CREATEPOSTID; if (AttendNoCheck) { entAttRd.ATTENDANCESTATE = "1"; //免打卡员工 } dal.Add(entAttRd); Tracer.Debug("初始化设置的例外工作日考勤记录新增记录," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + dtCurDate.ToString("yyyy-MM-dd")); } else { Tracer.Debug("初始化设置的例外工作日考勤记录已存在,跳过," + " 员工姓名" + item_emp.EMPLOYEECNAME + " 考勤初始化日期:" + dtCurDate.ToString("yyyy-MM-dd")); //continue;//如果已考勤直接跳过 if (!string.IsNullOrEmpty(entUpdate.ATTENDANCESTATE)) { continue; } entUpdate.ATTENDANCESOLUTIONID = entTemp.T_HR_ATTENDANCESOLUTION.ATTENDANCESOLUTIONID; entUpdate.EMPLOYEEID = item_emp.EMPLOYEEID; entUpdate.EMPLOYEECODE = item_emp.EMPLOYEECODE; entUpdate.EMPLOYEENAME = item_emp.EMPLOYEECNAME; entUpdate.ATTENDANCEDATE = dtCurDate; entUpdate.T_HR_SHIFTDEFINE = item.T_HR_SHIFTDEFINE; //第一段工作时间 entUpdate.FIRSTSTARTTIME = item.T_HR_SHIFTDEFINE.FIRSTSTARTTIME; entUpdate.FIRSTENDTIME = item.T_HR_SHIFTDEFINE.FIRSTENDTIME; //第二段工作时间 entUpdate.SECONDSTARTTIME = item.T_HR_SHIFTDEFINE.SECONDSTARTTIME; entUpdate.SECONDENDTIME = item.T_HR_SHIFTDEFINE.SECONDENDTIME; //第三段工作时间 entUpdate.THIRDSTARTTIME = item.T_HR_SHIFTDEFINE.THIRDSTARTTIME; entUpdate.THIRDENDTIME = item.T_HR_SHIFTDEFINE.THIRDENDTIME; //第四段工作时间 entUpdate.FOURTHENDTIME = item.T_HR_SHIFTDEFINE.FOURTHENDTIME; entUpdate.FOURTHSTARTTIME = item.T_HR_SHIFTDEFINE.FOURTHSTARTTIME; //查询公共假期设置判断是否只上半天班公共假期 var q = from ent in entWorkDays where ent.STARTDATE == entUpdate.ATTENDANCEDATE select ent; if (q.Count() > 0) { var set = q.FirstOrDefault(); if (!string.IsNullOrEmpty(set.ISHALFDAY)) { if (set.ISHALFDAY == "1") { if (set.PEROID == "0")//上午 { string msg = "考勤初始化(修改)CreateOutPlanWorkDay-检测设置了半天工作日:" + " 员工:" + entUpdate.EMPLOYEENAME + " 日期:" + entUpdate.ATTENDANCEDATE + " 上班分段(0上午):" + set.PEROID; Tracer.Debug(msg); entUpdate.REMARK = msg; entUpdate.NEEDFRISTATTEND = "1"; //上午上班 entUpdate.NEEDSECONDATTEND = "0"; //下午不上班 } else if (set.PEROID == "1") { string msg = "考勤初始化(修改)-检测设置了半天工作日:" + " 员工:" + entUpdate.EMPLOYEENAME + " 日期:" + entUpdate.ATTENDANCEDATE + " 上班分段(1下午):" + set.PEROID; Tracer.Debug(msg); entUpdate.REMARK = msg; entUpdate.NEEDFRISTATTEND = "0"; //上午不上班 entUpdate.NEEDSECONDATTEND = "1"; //下午上班 } } } } entUpdate.ATTENDANCESTATE = string.Empty; //新生成的考勤记录,出勤状态为空 //权限 entUpdate.OWNERCOMPANYID = item_emp.OWNERCOMPANYID; entUpdate.OWNERDEPARTMENTID = item_emp.OWNERDEPARTMENTID; entUpdate.OWNERPOSTID = item_emp.OWNERPOSTID; entUpdate.OWNERID = item_emp.OWNERID; entUpdate.REMARK += entTemp.REMARK; entUpdate.UPDATEUSERID = entTemp.UPDATEUSERID; entUpdate.UPDATEDATE = DateTime.Now; dal.UpdateFromContext(entUpdate); } } }
/// <summary> /// 根据传回的xml生成员工入职 /// </summary> /// <param name="eGFunc"></param> /// <returns></returns> private static string AddEmployeeEntry(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 Name = string.Empty; int PROBATIONPERIOD = 0; string Idnumber = string.Empty; string sex = string.Empty; string isAcceptemploied = string.Empty; string createuserid = 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 "NAME": Name = q.Attribute("Value").Value; break; case "IDCARDNUMBER": Idnumber = q.Attribute("Value").Value; break; case "SEX": sex = q.Attribute("Value").Value; break; case "PROBATIONPERIOD": PROBATIONPERIOD = int.Parse(q.Attribute("Value").Value); break; case "ISACCEPTEMPLOIED": isAcceptemploied = q.Attribute("Value").Value; break; case "CREATEUSERID": createuserid = q.Attribute("Value").Value; break; } } //if (isAcceptemploied != "2") //{ // return string.Empty; //} PersonnelService ser = new PersonnelService(); T_HR_EMPLOYEEENTRY entry = new T_HR_EMPLOYEEENTRY(); T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE(); T_HR_EMPLOYEEPOST epost = new T_HR_EMPLOYEEPOST(); employee.EMPLOYEEID = Guid.NewGuid().ToString(); employee.EMPLOYEECNAME = Name; employee.IDNUMBER = Idnumber.Replace("{", "").Replace("}", ""); employee.OWNERCOMPANYID = strOwnerCompanyID.Replace("{", "").Replace("}", ""); employee.OWNERDEPARTMENTID = strOwnerDepartmentID.Replace("{", "").Replace("}", ""); employee.OWNERPOSTID = strOwnerPostID.Replace("{", "").Replace("}", ""); employee.OWNERID = employee.EMPLOYEEID.Replace("{", "").Replace("}", ""); employee.CREATEDATE = DateTime.Now; employee.SEX = sex; employee.CREATEUSERID = createuserid; epost.EMPLOYEEPOSTID = Guid.NewGuid().ToString(); epost.ISAGENCY = "0"; epost.CREATEDATE = DateTime.Now; epost.T_HR_POST = new T_HR_POST(); epost.T_HR_POST.POSTID = employee.OWNERPOSTID; epost.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); epost.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID; epost.CREATEUSERID = createuserid; epost.CHECKSTATE = "0"; entry.EMPLOYEEENTRYID = Guid.NewGuid().ToString(); entry.CHECKSTATE = "0"; entry.PROBATIONPERIOD = PROBATIONPERIOD; entry.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); entry.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID; entry.CREATEDATE = System.DateTime.Now; entry.EMPLOYEEPOSTID = epost.EMPLOYEEPOSTID; entry.OWNERCOMPANYID = employee.OWNERCOMPANYID; entry.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; entry.OWNERPOSTID = employee.OWNERPOSTID; entry.OWNERID = employee.EMPLOYEEID; entry.CREATEUSERID = createuserid; ser.AddEmployeeEntry(employee, entry, epost); return(entry.EMPLOYEEENTRYID); } 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> /// 根据传回的xml生成员工合同 /// </summary> /// <param name="eGFunc"></param> /// <returns></returns> private static string AddEmployeeContract(IEnumerable <XElement> eGFunc) { SMT.Foundation.Log.Tracer.Debug("开始添加员工合同信息"); 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; 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; } } OrganizationService ser = new OrganizationService(); T_HR_EMPLOYEECONTRACT entity = new T_HR_EMPLOYEECONTRACT(); entity.EMPLOYEECONTACTID = Guid.NewGuid().ToString(); entity.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); entity.T_HR_EMPLOYEE.EMPLOYEEID = strEmployeeID.Replace("{", "").Replace("}", ""); // entity.T_HR_PENSIONDETAIL = new T_HR_PENSIONDETAIL(); SMT.Foundation.Log.Tracer.Debug("合同员工ID:" + entity.T_HR_EMPLOYEE.EMPLOYEEID); entity.CHECKSTATE = ((int)CheckStates.UnSubmit).ToString(); entity.EDITSTATE = ((int)EditStates.UnActived).ToString(); entity.CREATEDATE = DateTime.Now; entity.OWNERID = strOwnerID; entity.OWNERPOSTID = strOwnerPostID; entity.OWNERDEPARTMENTID = strOwnerDepartmentID; entity.OWNERCOMPANYID = strOwnerCompanyID; entity.CREATEUSERID = strOwnerID; entity.CREATEPOSTID = strOwnerPostID; entity.CREATEDEPARTMENTID = strOwnerDepartmentID; entity.CREATECOMPANYID = strOwnerCompanyID; string strMsg = ""; PersonnelService ps = new PersonnelService(); T_HR_EMPLOYEE emp = ps.GetEmployeeByID(entity.T_HR_EMPLOYEE.EMPLOYEEID); if (emp != null) { entity.OWNERID = emp.EMPLOYEEID; entity.OWNERPOSTID = emp.OWNERPOSTID; entity.OWNERDEPARTMENTID = emp.OWNERDEPARTMENTID; entity.OWNERCOMPANYID = emp.OWNERCOMPANYID; ps.EmployeeContractAdd(entity, ref strMsg); } else { SMT.Foundation.Log.Tracer.Debug("引擎触发员工合同记录失败"); } SMT.Foundation.Log.Tracer.Debug("合同工ID:" + entity.EMPLOYEECONTACTID); SMT.Foundation.Log.Tracer.Debug("开始添加员工信息:" + emp.EMPLOYEECNAME); SMT.Foundation.Log.Tracer.Debug("添加完员工信息的结果:" + strMsg); return(entity.EMPLOYEECONTACTID); } 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> /// 根据传回的XML,添加员工社保档案 /// </summary> /// <param name="xele"></param> private static string AddPensionMaster(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; 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; } } PersonnelService ser = new PersonnelService(); string employeeid = strEmployeeID.Replace("{", "").Replace("}", ""); //注释获取社保的原因:如果兼职的则存在,这样待办还是有,但实际社保却没有添加 //var pensionTmp = ser.GetPensionMasterByEmployeeID(employeeid); //if (pensionTmp == null) //{ T_HR_PENSIONMASTER entity = new T_HR_PENSIONMASTER(); entity.PENSIONMASTERID = Guid.NewGuid().ToString(); entity.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); entity.T_HR_EMPLOYEE.EMPLOYEEID = employeeid; // entity.T_HR_PENSIONDETAIL = new T_HR_PENSIONDETAIL(); entity.CARDID = string.Empty; entity.COMPUTERNO = string.Empty; entity.CHECKSTATE = ((int)CheckStates.UnSubmit).ToString(); entity.EDITSTATE = ((int)EditStates.UnActived).ToString(); entity.CREATEDATE = DateTime.Now; entity.OWNERID = strOwnerID; entity.OWNERPOSTID = strOwnerPostID; entity.OWNERDEPARTMENTID = strOwnerDepartmentID; entity.OWNERCOMPANYID = strOwnerCompanyID; entity.CREATEUSERID = strOwnerID; entity.CREATEPOSTID = strOwnerPostID; entity.CREATEDEPARTMENTID = strOwnerDepartmentID; entity.CREATECOMPANYID = strOwnerCompanyID; string strMsg = ""; T_HR_EMPLOYEE emp = ser.GetEmployeeByID(entity.T_HR_EMPLOYEE.EMPLOYEEID); if (emp != null) { entity.OWNERID = emp.EMPLOYEEID; entity.OWNERPOSTID = emp.OWNERPOSTID; entity.OWNERDEPARTMENTID = emp.OWNERDEPARTMENTID; entity.OWNERCOMPANYID = emp.OWNERCOMPANYID; } ser.PensionMasterAdd(entity, ref strMsg); return(entity.PENSIONMASTERID); //} //else //{ // return pensionTmp.PENSIONMASTERID; //} } 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); } }
public List <T_HR_PENSIONDETAIL> ReadExcelDataFirst() { string StrFile = FileName; List <T_HR_PENSIONDETAIL> ListDetails = new List <T_HR_PENSIONDETAIL>(); try { SMT.Foundation.Core.BaseDAL dal = new SMT.Foundation.Core.BaseDAL(); Dictionary <string, Int32> dictIndexs = new Dictionary <string, Int32>(); ReadExcelColumn(dictIndexs); //excel读取开始行号 int beginRow = Convert.ToInt32(ImportConfig.STARTROW.GetValueOrDefault(2)); //excel读取结束行号 int endRow = Convert.ToInt32(ImportConfig.ENDROW.GetValueOrDefault(2)); int i = 1; System.Text.UTF8Encoding code = new UTF8Encoding(); using (StreamReader sr = new StreamReader(StrFile, Encoding.GetEncoding("gb2312"))) { string line; // Read and display lines from the file until the end of // the file is reached. //while ((line = sr.ReadLine()) != null) while (!string.IsNullOrEmpty(line = sr.ReadLine())) { string[] lineTmp = line.Split(','); if (i >= beginRow && i <= endRow) { //创建一个实列 Type type = EntityInstance.GetType(); object entity = Activator.CreateInstance(type); //得到excel二维数组当前行中A列的值 //r = (Range)workSheet.Cells[i, "A"]; //string value = r.Text.ToString().Trim(); #region 实例化对像 foreach (T_HR_IMPORTSETDETAIL detail in ImportConfig.T_HR_IMPORTSETDETAIL) { if (!string.IsNullOrEmpty(detail.EXECELCOLUMN)) { //r = (Range)workSheet.Cells[i, detail.EXECELCOLUMN]; ////r = (Range)workSheet.Cells[i, "D"]; //string value = r.Text.ToString().Trim(); int index = 0; //把列名拆成字符数组 char[] tmps = detail.EXECELCOLUMN.ToUpper().ToCharArray(); if (tmps.Length == 1) { //列名是一个字母 直接从字典查出列对应的索引 index = dictIndexs[tmps[0].ToString()]; } else { //列名是双字符 计算出列对应的索引 index = (dictIndexs[tmps[0].ToString()] + 1) * 26 + (dictIndexs[tmps[1].ToString()]); } // int index = Convert.ToInt32(dictIndexs[detail.EXECELCOLUMN.ToUpper()]); string value = lineTmp[index].Trim(); PropertyInfo prop = type.GetProperty(detail.ENTITYCOLUMNCODE); if (prop != null) { if (!string.IsNullOrEmpty(value)) { if (prop.PropertyType.BaseType == typeof(System.ValueType)) { if (prop.PropertyType.ToString().Contains(typeof(DateTime).ToString())) { prop.SetValue(entity, Convert.ToDateTime(value), null); } else { decimal tmpValue; decimal.TryParse(value, out tmpValue); prop.SetValue(entity, tmpValue, null); } } else { prop.SetValue(entity, value, null); } } } } } #endregion PropertyInfo prop1 = type.GetProperty("PENSIONDETAILID"); prop1.SetValue(entity, Guid.NewGuid().ToString(), null); PropertyInfo prop2 = type.GetProperty("OWNERCOMPANYID"); prop2.SetValue(entity, paras["OWNERCOMPANYID"], null); PropertyInfo prop3 = type.GetProperty("OWNERDEPARTMENTID"); prop3.SetValue(entity, paras["OWNERDEPARTMENTID"], null); PropertyInfo prop4 = type.GetProperty("OWNERPOSTID"); prop4.SetValue(entity, paras["OWNERPOSTID"], null); PropertyInfo prop5 = type.GetProperty("OWNERID"); prop5.SetValue(entity, paras["OWNERID"], null); PropertyInfo prop6 = type.GetProperty("CREATEUSERID"); prop6.SetValue(entity, paras["CREATEUSERID"], null); PropertyInfo prop7 = type.GetProperty("PENSIONYEAR"); prop7.SetValue(entity, Convert.ToDecimal(paras["YEAR"]), null); PropertyInfo prop8 = type.GetProperty("PENSIONMOTH"); prop8.SetValue(entity, Convert.ToDecimal(paras["MONTH"]), null); PropertyInfo prop9 = type.GetProperty("CREATEDATE"); prop9.SetValue(entity, System.DateTime.Now, null); T_HR_PENSIONDETAIL tmpDetail = entity as T_HR_PENSIONDETAIL; string idnumber = string.Empty; if (string.IsNullOrEmpty(tmpDetail.IDNUMBER)) { idnumber = "Null0"; } else { idnumber = tmpDetail.IDNUMBER.ToString(); } //查询员工身份证号和正式员工是否存在 var employee = from e in dal.GetObjects <T_HR_EMPLOYEE>() where e.IDNUMBER == idnumber && e.EDITSTATE == "1" select e; if (employee.Count() > 0) { T_HR_EMPLOYEE entCurEmp = employee.FirstOrDefault(); if (tmpDetail.EMPLOYEEID != entCurEmp.EMPLOYEEID) { tmpDetail.EMPLOYEEID = entCurEmp.EMPLOYEEID; } } else { tmpDetail.IDNUMBER = idnumber + "此身份证号无效或员工已离职"; //Tracer.Debug("PensionImport:" + i.ToString() + "行,没有员工身份证为此号码:" + idnumber); } ListDetails.Add(tmpDetail); } i++; } } return(ListDetails); } catch (Exception ex) { //TODO: 写成导入日志 //throw ex; Tracer.Debug("My error" + ex.Message); return(null); } }
private void lkEmployee_FindClick(object sender, EventArgs e) { T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE(); Form.Salary.ResignForm form = new SMT.HRM.UI.Form.Salary.ResignForm(); EntityBrowser browser = new EntityBrowser(form); form.SaveClicked += (obj, ev) => { temp.EMPLOYEEID = form.SelectedEmployees.FirstOrDefault().EMPLOYEEID; temp.EMPLOYEECNAME = form.SelectedEmployees.FirstOrDefault().EMPLOYEENAME; temp.EMPLOYEECODE = form.SelectedEmployees.FirstOrDefault().EMPLOYEECODE; temp.OWNERID = form.SelectedEmployees.FirstOrDefault().OWNERID; temp.OWNERPOSTID = form.SelectedEmployees.FirstOrDefault().OWNERPOSTID; temp.OWNERDEPARTMENTID = form.SelectedEmployees.FirstOrDefault().OWNERDEPARTMENTID; temp.OWNERCOMPANYID = form.SelectedEmployees.FirstOrDefault().OWNERCOMPANYID; lkEmployee.DataContext = temp; lkEmployee.TxtLookUp.Text = temp.EMPLOYEECNAME + "-" + form.SelectedEmployees.FirstOrDefault().PostName + "-" + form.SelectedEmployees.FirstOrDefault().DepartmentName + "-" + form.SelectedEmployees.FirstOrDefault().CompanyName; }; //form.MinWidth = 450; form.Height = 450; browser.Height = 400; //browser.ReloadDataEvent += new EntityBrowser.refreshGridView(browser_ReloadDataEvent); browser.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); }
private bool Save() { // List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll(); string strMsg = ""; RefreshUI(RefreshedTypes.ShowProgressBar); if (string.IsNullOrEmpty(lkEmployeeName.TxtLookUp.Text)) { //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME")); ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation); RefreshUI(RefreshedTypes.HideProgressBar); return false; } //if (validators.Count > 0) //{ // Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("REQUIREDFIELDS")); // RefreshUI(RefreshedTypes.HideProgressBar); // return false; //} if (!SMT.SaaS.FrameworkUI.Common.Utility.CheckDataIsValid(Group1)) { RefreshUI(RefreshedTypes.HideProgressBar); return false; } if (cbInsuranceType.SelectedIndex < 0) { //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("STRINGNOTNULL", "INSURANCECATEGORY")); ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "INSURANCECATEGORY"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation); RefreshUI(RefreshedTypes.HideProgressBar); return false; } if (!string.IsNullOrEmpty(dpStartDate.Text) && !string.IsNullOrEmpty(dpLastDate.Text)) { DateTime startDate = Convert.ToDateTime(dpStartDate.Text); DateTime lastDate = Convert.ToDateTime(dpLastDate.Text); if (startDate > lastDate) { //Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("DATEERROR", "STARTDATE,LASTDATE")); ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("DATEERROR", "STARTDATE,LASTDATE"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation); RefreshUI(RefreshedTypes.HideProgressBar); return false; } } if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE) { SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE(); temp.EMPLOYEEID = employee.EMPLOYEEID; temp.EMPLOYEECNAME = employee.EMPLOYEECNAME; temp.EMPLOYEECODE = employee.EMPLOYEECODE; temp.EMPLOYEEENAME = employee.EMPLOYEEENAME; temp.OWNERPOSTID = employee.OWNERPOSTID; temp.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; temp.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeInsurance.OWNERID = employee.EMPLOYEEID; EmployeeInsurance.OWNERPOSTID = employee.OWNERPOSTID; EmployeeInsurance.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; EmployeeInsurance.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeInsurance.T_HR_EMPLOYEE = temp; } if (FormType == FormTypes.New) { //所属 EmployeeInsurance.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID; EmployeeInsurance.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID; EmployeeInsurance.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID; EmployeeInsurance.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; EmployeeInsurance.CREATEDATE = DateTime.Now; client.EmployeeInsuranceAddAsync(EmployeeInsurance, strMsg); } else { EmployeeInsurance.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; EmployeeInsurance.UPDATEDATE = DateTime.Now; client.EmployeeInsuranceUpdateAsync(EmployeeInsurance, strMsg, "Edit"); } return true; }
/// <summary> /// 获取确认单信息 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void client_GetLeftOfficeConfirmByIDCompleted(object sender, GetLeftOfficeConfirmByIDCompletedEventArgs e) { if (e.Error != null && e.Error.Message != "") { ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("ERRORINFO"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Error); } else { if (e.Result == null) { ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("ERROR"), Utility.GetResourceStr("NOTFOUND"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Error); return; } LeftOfficeConfirm = e.Result; client.GetAllPostByEmployeeIDAsync(LeftOfficeConfirm.EMPLOYEEID); if (FormType == FormTypes.Resubmit) { LeftOfficeConfirm.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString(); } if (LeftOfficeConfirm.CHECKSTATE != Convert.ToInt32(CheckStates.UnSubmit).ToString()) { dpStopPaymentDate.IsEnabled = false; dpConfirmDate.IsEnabled = false; } // this.DataContext = LeftOfficeConfirm.T_HR_LEFTOFFICE; this.DataContext = LeftOfficeConfirm; //显示所属公司和岗位 List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY> listCompany = Application.Current.Resources["SYS_CompanyInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY>; txtCompany.Text = (from ent in listCompany where ent.COMPANYID == LeftOfficeConfirm.OWNERCOMPANYID select ent).FirstOrDefault().CNAME; List<SMT.Saas.Tools.OrganizationWS.T_HR_POST> listPost = Application.Current.Resources["SYS_PostInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_POST>; //txtPost.Text = (from ent in listPost // where ent.POSTID == LeftOfficeConfirm.OWNERPOSTID // select ent).FirstOrDefault().T_HR_POSTDICTIONARY.POSTNAME; var postName = (from ent in listPost where ent.POSTID == LeftOfficeConfirm.OWNERPOSTID select ent).FirstOrDefault(); if (postName != null) { txtPost.Text = postName.T_HR_POSTDICTIONARY.POSTNAME; } else { oClient.GetPostByIdAsync(LeftOfficeConfirm.OWNERPOSTID); } //显示姓名 T_HR_EMPLOYEE etmp = new T_HR_EMPLOYEE(); etmp.EMPLOYEECNAME = LeftOfficeConfirm.EMPLOYEECNAME; etmp.EMPLOYEEID = LeftOfficeConfirm.EMPLOYEEID; lkEmployeeName.DataContext = etmp; //有离职申请 禁用控件 if (LeftOfficeConfirm.T_HR_LEFTOFFICE != null) { EnabledControl(); } if (LeftOfficeConfirm.STOPPAYMENTDATE != null) { dpStopPaymentDate.Text = LeftOfficeConfirm.STOPPAYMENTDATE.ToString(); } //if (LeftOfficeConfirm.CONFIRMDATE != null) //{ // dpConfirmDate.Text = LeftOfficeConfirm.CONFIRMDATE.ToString(); //} // fbClient.GetLeavingUserAsync(LeftOfficeConfirm.EMPLOYEEID); //oaClient.GetEmployeeNotReturnListByUserIdAsync(LeftOfficeConfirm.EMPLOYEEID); System.Collections.ObjectModel.ObservableCollection<string> CreateUserIDs = new System.Collections.ObjectModel.ObservableCollection<string>(); CreateUserIDs.Add(LeftOfficeConfirm.CREATEUSERID); CreateUserIDs.Add(LeftOfficeConfirm.EMPLOYEEID); client.GetEmployeeToEngineAsync(CreateUserIDs); //获取员工借还款 GetPersonAccountData(); } }
public string AddEmployeeEntry(T_HR_EMPLOYEE employee, T_HR_EMPLOYEEENTRY entity, T_HR_EMPLOYEEPOST ent) { using (EmployeeEntryBLL bll = new EmployeeEntryBLL()) { return bll.EmployeeEntryAdd(employee, entity, ent); } }
private bool Save() { string strMsg = ""; // List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll(); RefreshUI(RefreshedTypes.ShowProgressBar); if (!CheckData()) { needsubmit = false; isSubmit = false; return(false); } if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE) { SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; T_HR_EMPLOYEE ent = new T_HR_EMPLOYEE(); ent.EMPLOYEEID = employee.EMPLOYEEID; ent.EMPLOYEECNAME = employee.EMPLOYEECNAME; ent.OWNERPOSTID = employee.OWNERPOSTID; ent.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; ent.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeContract.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeContract.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; EmployeeContract.OWNERPOSTID = employee.OWNERPOSTID; EmployeeContract.OWNERID = employee.OWNERID; EmployeeContract.T_HR_EMPLOYEE = ent; } //上传的文件 //ctrFile.FormID = EmployeeContract.EMPLOYEECONTACTID; //ctrFile.Save(); //日期转换 if (falseRabtn.IsChecked == true) { EmployeeContract.TODATE = Convert.ToDateTime(dpEndDate.Text).ToShortDateString(); EmployeeContract.NOENDDATE = "0"; } else { EmployeeContract.NOENDDATE = "1"; dpEndDate.Text = ""; nudDay.Value = 0; nudDay.IsEnabled = false; employeeContractIsSet = false; } if (FormType == FormTypes.New) { //所属 EmployeeContract.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID; EmployeeContract.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID; EmployeeContract.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID; //EmployeeContract.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString(); client.EmployeeContractAddAsync(EmployeeContract, strMsg); } else { EmployeeContract.UPDATEDATE = System.DateTime.Now; EmployeeContract.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID;; //client.GetEmployeeContractEngineXmlAsync(EmployeeContract); client.EmployeeContractUpdateAsync(EmployeeContract, "Edit"); } return(true); }
public LeftOfficeConfirmForm(FormTypes formType, T_HR_LEFTOFFICE leftOffice) { InitializeComponent(); FormType = formType; LeftOfficeConfirm = new T_HR_LEFTOFFICECONFIRM(); LeftOfficeConfirm.T_HR_LEFTOFFICE = new T_HR_LEFTOFFICE(); LeftOfficeConfirm.T_HR_LEFTOFFICE.DIMISSIONID = leftOffice.DIMISSIONID; LeftOfficeConfirm.CONFIRMID = Guid.NewGuid().ToString(); LeftOfficeConfirm.EMPLOYEEID = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID; LeftOfficeConfirm.OWNERID = leftOffice.T_HR_EMPLOYEE.EMPLOYEEID; LeftOfficeConfirm.OWNERPOSTID = leftOffice.OWNERPOSTID; LeftOfficeConfirm.OWNERDEPARTMENTID = leftOffice.OWNERDEPARTMENTID; LeftOfficeConfirm.OWNERCOMPANYID = leftOffice.OWNERCOMPANYID; LeftOfficeConfirm.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; LeftOfficeConfirm.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString(); LeftOfficeConfirm.CREATEDATE = DateTime.Now; LeftOfficeConfirm.CONFIRMDATE = DateTime.Now; // this.dpConfirmDate.Text = DateTime.Now.ToString("yyyy/MM/dd");//奇怪 LeftOfficeConfirm.EMPLOYEECNAME = leftOffice.T_HR_EMPLOYEE.EMPLOYEECNAME; LeftOfficeConfirm.APPLYDATE = leftOffice.APPLYDATE; LeftOfficeConfirm.LEFTOFFICEDATE = leftOffice.LEFTOFFICEDATE; LeftOfficeConfirm.EMPLOYEEPOSTID = leftOffice.T_HR_EMPLOYEEPOST.EMPLOYEEPOSTID; LeftOfficeConfirm.LEFTOFFICECATEGORY = leftOffice.LEFTOFFICECATEGORY; LeftOfficeConfirm.LEFTOFFICEREASON = leftOffice.LEFTOFFICEREASON; LeftOfficeConfirm.REMARK = leftOffice.REMARK; List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY> listCompany = Application.Current.Resources["SYS_CompanyInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY>; txtCompany.Text = (from ent in listCompany where ent.COMPANYID == leftOffice.OWNERCOMPANYID select ent).FirstOrDefault().CNAME; List<SMT.Saas.Tools.OrganizationWS.T_HR_POST> listPost = Application.Current.Resources["SYS_PostInfo"] as List<SMT.Saas.Tools.OrganizationWS.T_HR_POST>; txtPost.Text = (from ent in listPost where ent.POSTID == leftOffice.OWNERPOSTID select ent).FirstOrDefault().T_HR_POSTDICTIONARY.POSTNAME; T_HR_EMPLOYEE ep = new T_HR_EMPLOYEE(); ep.EMPLOYEECNAME = LeftOfficeConfirm.EMPLOYEECNAME; ep.EMPLOYEEID = LeftOfficeConfirm.EMPLOYEEID; createUserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName; InitParas("fromLeftoffice"); conformID = "fromLeftoffice"; EnabledControl(); SetToolBar(); this.DataContext = LeftOfficeConfirm; lkEmployeeName.DataContext = ep; // fbClient.GetLeavingUserAsync(LeftOfficeConfirm.EMPLOYEEID); //oaClient.GetEmployeeNotReturnListByUserIdAsync(LeftOfficeConfirm.EMPLOYEEID); //获取员工借还款 client.GetAllPostByEmployeeIDAsync(LeftOfficeConfirm.EMPLOYEEID); GetPersonAccountData(); }
private void LookUp_FindClick(object sender, EventArgs e) { #region OrganizationLookup lookup = new OrganizationLookup(); lookup.SelectedObjType = OrgTreeItemTypes.Personnel; lookup.SelectedClick += (obj, ev) => { List<ExtOrgObj> ent = lookup.SelectedObj as List<ExtOrgObj>; if (ent != null && ent.Count > 0) { ExtOrgObj companyInfo = ent.FirstOrDefault(); ExtOrgObj post = (ExtOrgObj)companyInfo.ParentObject; string postid = post.ObjectID; ExtOrgObj dept = (ExtOrgObj)post.ParentObject; string deptid = dept.ObjectID; SMT.Saas.Tools.OrganizationWS.T_HR_COMPANY corp = (dept.ObjectInstance as SMT.Saas.Tools.OrganizationWS.T_HR_DEPARTMENT).T_HR_COMPANY; string corpid = corp.COMPANYID; T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE(); temp = ent.FirstOrDefault().ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; lkEmployeeName.DataContext = temp; Employee.FATHEREMPLOYEEID = temp.EMPLOYEEID; } }; lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); #endregion }
//获取发布对象 void DocDistrbuteClient_GetDocDistrbuteInfosCompleted(object sender, GetDocDistrbuteInfosCompletedEventArgs e) { try { if (e.Error == null) { if (e.Result != null) { List<SMT.SaaS.OA.UI.SmtOACommonOfficeService.T_OA_DISTRIBUTEUSER> distributeList = e.Result.ToList(); foreach (var h in distributeList) { object obj = new object(); SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj extOrgObj = new SMT.SaaS.FrameworkUI.OrganizationControl.ExtOrgObj(); if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Company).ToString()) { T_HR_COMPANY tmp = new T_HR_COMPANY(); tmp.COMPANYID = h.VIEWER; //tmp.CNAME = ""; tmp.CNAME = Utility.GetCompanyName(tmp.COMPANYID); obj = tmp; } else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Department).ToString()) { T_HR_DEPARTMENT tmp = new T_HR_DEPARTMENT(); tmp.DEPARTMENTID = h.VIEWER; T_HR_DEPARTMENTDICTIONARY tmpdict = new T_HR_DEPARTMENTDICTIONARY(); //tmpdict.DEPARTMENTNAME = ""; tmpdict.DEPARTMENTNAME = Utility.GetDepartmentName(h.VIEWER); tmp.T_HR_DEPARTMENTDICTIONARY = tmpdict; obj = tmp; } else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Post).ToString()) { T_HR_POST tmp = new T_HR_POST(); tmp.POSTLEVEL = System.Convert.ToDecimal(h.VIEWER); T_HR_POSTDICTIONARY tmpdict = new T_HR_POSTDICTIONARY(); //tmpdict.POSTNAME = ""; tmpdict.POSTNAME = Utility.GetPostName(h.VIEWER); tmp.T_HR_POSTDICTIONARY = tmpdict; obj = tmp; } else if (h.VIEWTYPE == ((int)SMT.SaaS.FrameworkUI.OrgTreeItemTypes.Personnel).ToString()) { T_HR_EMPLOYEE tmp = new T_HR_EMPLOYEE(); tmp.EMPLOYEEID = h.VIEWER; tmp.EMPLOYEECNAME = ""; obj = tmp; } extOrgObj.ObjectInstance = obj; issuanceExtOrgObj.Add(extOrgObj); } BindData(); } } else Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), e.Error.Message); } catch (Exception ex) { //HtmlPage.Window.Alert(ex.ToString()); Utility.ShowCustomMessage(MessageTypes.Error, Utility.GetResourceStr("ERROR"), Utility.GetResourceStr(ex.Message.ToString())); } }
void LeftOfficeForm_Loaded(object sender, RoutedEventArgs e) { //重载提交按钮-提交先保存 EntityBrowser entBrowser = this.FindParentByType<EntityBrowser>(); entBrowser.BtnSaveSubmit.Click -= new RoutedEventHandler(entBrowser.btnSubmit_Click); entBrowser.BtnSaveSubmit.Click += new RoutedEventHandler(BtnSaveSubmit_Click); #region 原来的 if (FormType == FormTypes.Browse || FormType == FormTypes.Audit) { this.IsEnabled = false; } #endregion if (FormType == FormTypes.New) { LeftOffice = new T_HR_LEFTOFFICE(); LeftOffice.DIMISSIONID = Guid.NewGuid().ToString(); LeftOffice.CREATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; LeftOffice.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString(); LeftOffice.CREATEDATE = DateTime.Now; leftOffice.APPLYDATE = DateTime.Now; LeftOffice.OWNERCOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID; LeftOffice.OWNERDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID; LeftOffice.OWNERPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID; LeftOffice.OWNERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; T_HR_EMPLOYEE employeeTmp = new T_HR_EMPLOYEE(); employeeTmp.EMPLOYEEID = Common.CurrentLoginUserInfo.EmployeeID; employeeTmp.EMPLOYEECNAME = Common.CurrentLoginUserInfo.EmployeeName; LeftOffice.T_HR_EMPLOYEE = employeeTmp; dpApplyDate.Text = System.DateTime.Now.ToShortDateString(); lkEmployeeName.DataContext = employeeTmp; createUserName = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeName; client.GetPostsActivedByEmployeeIDAsync(employeeTmp.EMPLOYEEID); SetToolBar(); } else { RefreshUI(RefreshedTypes.ShowProgressBar); lkEmployeeName.IsEnabled = false; GetEmployeeViewsPaging(); client.GetLeftOfficeByIDAsync(leftofficeID); } //设置默认值:新建时,离职类型只有辞职,其他的都不要 //cbxEmployeeType.SelectedValue = "1"; //cbxEmployeeType.IsEnabled = false; }
public decimal GetMaxDays(List <T_HR_EMPLOYEE> listEmployees, List <T_HR_EMPLOYEEENTRY> entrys, List <T_HR_EMPLOYEEPOST> employeePosts, T_HR_EMPLOYEELEVELDAYCOUNT employeeFreeCount, bool isBreak, List <T_HR_ATTENDFREELEAVE> freeLeaves) { decimal deDays = 0; try { //获取某个员工的入职信息 var qw = from ent in entrys where ent.T_HR_EMPLOYEE.EMPLOYEEID == employeeFreeCount.EMPLOYEEID select ent; //获取员工的岗位信息 var qp = from ent in employeePosts where ent.T_HR_EMPLOYEE.EMPLOYEEID == employeeFreeCount.EMPLOYEEID && ent.T_HR_EMPLOYEE.OWNERCOMPANYID == employeeFreeCount.OWNERCOMPANYID select ent; var entEmployees = from ent in listEmployees where ent.EMPLOYEEID == employeeFreeCount.EMPLOYEEID select ent; //isBreak 为true 调用处则跳出循环 if (qw == null) { isBreak = true; } if (qp == null) { isBreak = true; } if (entEmployees == null) { isBreak = true; } T_HR_EMPLOYEE entEmployee = entEmployees.FirstOrDefault(); T_HR_EMPLOYEEPOST entPost = qp.FirstOrDefault(); if (entPost == null) { isBreak = true; } T_HR_EMPLOYEEENTRY entEntry = qw.FirstOrDefault(); if (entEntry == null) { isBreak = true; } DateTime dtEntryDate = entEntry.ENTRYDATE.Value; TimeSpan tsWorkTime = DateTime.Now.Subtract(dtEntryDate); decimal dCurWorkAge = 0, dEmployeePostLevel = 0; dCurWorkAge = decimal.Round(tsWorkTime.Days / 30, 0); decimal.TryParse(entPost.POSTLEVEL.ToString(), out dEmployeePostLevel); foreach (T_HR_ATTENDFREELEAVE entAttendFreeLeave in freeLeaves) { T_HR_LEAVETYPESET entLeaveTypeSet = entAttendFreeLeave.T_HR_LEAVETYPESET; if (entLeaveTypeSet == null) { continue; } string strVacType = entLeaveTypeSet.LEAVETYPEVALUE; string strFineType = entLeaveTypeSet.FINETYPE; //如果是调休假,就不需要自动生成 if (strVacType == (Convert.ToInt32(Common.LeaveTypeValue.AdjustLeave) + 1).ToString()) { continue; } //获取假期标准的带薪假设置记录 FreeLeaveDaySetBLL bllFreeLeave = new FreeLeaveDaySetBLL(); IQueryable <T_HR_FREELEAVEDAYSET> entFreeLeaves = bllFreeLeave.GetFreeLeaveDaySetByLeaveTypeID(entLeaveTypeSet.LEAVETYPESETID); if (strFineType != (Convert.ToInt32(Common.LeaveFineType.Free) + 1).ToString()) { continue; } decimal dPostLevelStrict = 0; decimal.TryParse(entLeaveTypeSet.POSTLEVELRESTRICT, out dPostLevelStrict); if (dPostLevelStrict > dEmployeePostLevel) { continue; } if (entLeaveTypeSet.ENTRYRESTRICT == (Convert.ToInt32(Common.IsChecked.Yes) + 1).ToString()) { if (entEmployee.EMPLOYEESTATE != "1") { continue; } } if (entLeaveTypeSet.SEXRESTRICT != "2") { if (entLeaveTypeSet.SEXRESTRICT != entEmployee.SEX) { continue; } } if (!string.IsNullOrEmpty(entLeaveTypeSet.POSTLEVELRESTRICT)) { decimal dPostLeavlStrict = decimal.Parse(entLeaveTypeSet.POSTLEVELRESTRICT); } int j = -1; decimal dLeaveDay = 0; string LeaveDayName = string.Empty; if (entFreeLeaves.Count() > 0) { for (int i = 0; i < entFreeLeaves.Count(); i++) { if (entFreeLeaves.ToList()[i].MINIMONTH > dCurWorkAge) { continue; } if (entFreeLeaves.ToList()[i].MAXMONTH < dCurWorkAge) { continue; } dLeaveDay = entFreeLeaves.ToList()[i].LEAVEDAYS.Value; LeaveDayName = entLeaveTypeSet.LEAVETYPENAME; j = i; break; } } else { dLeaveDay = entLeaveTypeSet.MAXDAYS.Value; j = 1; } decimal dAddDays = 0; if (j > -1) { if (entFreeLeaves.Count() > 0) { if (j == 0) { dAddDays = dLeaveDay; } else { dAddDays = dLeaveDay - entFreeLeaves.ToList()[j - 1].LEAVEDAYS.Value; } } else { dAddDays = dLeaveDay; } } string strNumOfDecDefault = "0.5"; dAddDays = RoundOff(dAddDays, strNumOfDecDefault, 1); dLeaveDay = RoundOff(dLeaveDay, strNumOfDecDefault, 1); deDays = dAddDays; } } catch (Exception ex) { } return(deDays); }
private void ImportSalaryRecordItem(ref string UImsg, ref string msg, string strIDNUMBER, string strEmployeeName, string strSalaryItemName, string strSalaryItemSUM, T_HR_EMPLOYEE employee, T_HR_EMPLOYEESALARYRECORD record, T_HR_SALARYARCHIVE salaryAchive) { T_HR_EMPLOYEESALARYRECORDITEM SalaryItem = new T_HR_EMPLOYEESALARYRECORDITEM(); SalaryItem.SALARYRECORDITEMID = Guid.NewGuid().ToString(); SalaryItem.T_HR_EMPLOYEESALARYRECORDReference.EntityKey = new EntityKey(qualifiedEntitySetName + "T_HR_EMPLOYEESALARYRECORD", "EMPLOYEESALARYRECORDID", record.EMPLOYEESALARYRECORDID); var item = (from ent in dal.GetObjects <T_HR_SALARYARCHIVEITEM>() join entb in dal.GetObjects <T_HR_SALARYITEM>() on ent.SALARYITEMID equals entb.SALARYITEMID where entb.SALARYITEMNAME == strSalaryItemName && ent.T_HR_SALARYARCHIVE.SALARYARCHIVEID == salaryAchive.SALARYARCHIVEID select ent).FirstOrDefault(); if (item != null) { SalaryItem.SALARYITEMID = item.SALARYITEMID; SalaryItem.SALARYARCHIVEID = salaryAchive.SALARYARCHIVEID; SalaryItem.SALARYSTANDARDID = item.SALARYSTANDARDID; SalaryItem.ORDERNUMBER = item.ORDERNUMBER; SalaryItem.SUM = AES.AESEncrypt(strSalaryItemSUM); SalaryItem.REMARK = "文件导入"; SalaryItem.CREATEDATE = System.DateTime.Now; int iadd = dal.Add(SalaryItem); if (iadd >= 1) { msg = "薪资项目导入成功,受影响的条数:" + iadd + " 身份证号码:" + strIDNUMBER + " 导入的员工姓名:" + strEmployeeName + " 根据身份证号查到的员工姓名:" + employee.EMPLOYEECNAME + " 薪资项目名:" + strSalaryItemName + " 薪资项目金额:" + strSalaryItemSUM; UImsg += msg + System.Environment.NewLine; Tracer.Debug(msg); } else { msg = "薪资项目导入失败,受影响的条数:" + iadd + " 身份证号码:" + strIDNUMBER + " 导入的员工姓名:" + strEmployeeName + " 根据身份证号查到的员工姓名:" + employee.EMPLOYEECNAME + " 薪资项目名:" + strSalaryItemName + " 薪资项目金额:" + strSalaryItemSUM; UImsg += msg + System.Environment.NewLine; Tracer.Debug(msg); } } else { msg = "薪资项目导入在公司薪资项目或薪资档案中未找到相关薪资项目!" + " 身份证号码:" + strIDNUMBER + " 导入的员工姓名:" + strEmployeeName + " 根据身份证号查到的员工姓名:" + employee.EMPLOYEECNAME + " 薪资项目名:" + strSalaryItemName + " 薪资项目金额:" + strSalaryItemSUM; UImsg += msg + System.Environment.NewLine; Tracer.Debug(msg); } }
/// <summary> /// 保存 /// </summary> /// <returns></returns> private bool Save() { // List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll(); RefreshUI(RefreshedTypes.ShowProgressBar); SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; //是否选择员工 if (employee != null) { T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE(); temp.EMPLOYEEID = employee.EMPLOYEEID; temp.EMPLOYEECNAME = employee.EMPLOYEECNAME; temp.OWNERID = employee.EMPLOYEEID; temp.OWNERPOSTID = employee.OWNERPOSTID; temp.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; temp.OWNERCOMPANYID = employee.OWNERCOMPANYID; LeftOffice.T_HR_EMPLOYEE = temp; // flowClient.IsExistFlowDataByUserIDAsync(employee.EMPLOYEEID); // LeftOffice.T_HR_EMPLOYEE = employee; } else { ComfirmWindow.ConfirmationBoxs(Utility.GetResourceStr("CAUTION"), Utility.GetResourceStr("STRINGNOTNULL", "EMPLOYEENAME"), Utility.GetResourceStr("CONFIRM"), MessageIcon.Exclamation); RefreshUI(RefreshedTypes.HideProgressBar); return false; } SaveLeftOffice(); return true; }
/// <summary> /// 选择员工 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void LookUp_FindClick(object sender, EventArgs e) { //Dictionary<string, string> cols = new Dictionary<string, string>(); //cols.Add("EMPLOYEECODE", "T_HR_EMPLOYEE.EMPLOYEECODE"); //cols.Add("EMPLOYEECNAME", "T_HR_EMPLOYEE.EMPLOYEECNAME"); //cols.Add("EMPLOYEEENAME", "T_HR_EMPLOYEE.EMPLOYEEENAME"); //LookupForm lookup = new LookupForm(SMT.Saas.Tools.OrganizationWS.EntityNames.Employee, // typeof(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST[]), cols); //lookup.SelectedClick += (o, ev) => //{ // SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent = lookup.SelectedObj as SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST; ; // if (ent != null) // { // lkEmployeeName.DataContext = ent.T_HR_EMPLOYEE; // } //}; //lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); OrganizationLookup lookup = new OrganizationLookup(); lookup.SelectedObjType = OrgTreeItemTypes.Personnel; lookup.SelectedClick += (obj, ev) => { SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE ent = lookup.SelectedObj[0].ObjectInstance as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; if (ent != null) { lkEmployeeName.DataContext = ent; // SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE temp = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; T_HR_EMPLOYEE entity = new T_HR_EMPLOYEE(); entity.EMPLOYEEID = ent.EMPLOYEEID; entity.EMPLOYEECNAME = ent.EMPLOYEECNAME; entity.OWNERPOSTID = ent.OWNERPOSTID; entity.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID; entity.OWNERCOMPANYID = ent.OWNERCOMPANYID; PensionMaster.OWNERCOMPANYID = ent.OWNERCOMPANYID; PensionMaster.OWNERDEPARTMENTID = ent.OWNERDEPARTMENTID; PensionMaster.OWNERPOSTID = ent.OWNERPOSTID; PensionMaster.OWNERID = ent.EMPLOYEEID; //ent.OWNERID; ownerid为空 改成employeeid PensionMaster.T_HR_EMPLOYEE = entity; } }; lookup.Show<string>(DialogMode.Default, SMT.SAAS.Main.CurrentContext.Common.ParentLayoutRoot, "", (result) => { }); }
private bool Save() { string strMsg = ""; // List<SMT.SaaS.FrameworkUI.Validator.ValidatorBase> validators = Group1.ValidateAll(); RefreshUI(RefreshedTypes.ShowProgressBar); if (!CheckData()) { needsubmit = false; isSubmit = false; return false; } if (lkEmployeeName.DataContext is SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE) { SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE employee = lkEmployeeName.DataContext as SMT.Saas.Tools.PersonnelWS.T_HR_EMPLOYEE; T_HR_EMPLOYEE ent = new T_HR_EMPLOYEE(); ent.EMPLOYEEID = employee.EMPLOYEEID; ent.EMPLOYEECNAME = employee.EMPLOYEECNAME; ent.OWNERPOSTID = employee.OWNERPOSTID; ent.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; ent.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeContract.OWNERCOMPANYID = employee.OWNERCOMPANYID; EmployeeContract.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; EmployeeContract.OWNERPOSTID = employee.OWNERPOSTID; EmployeeContract.OWNERID = employee.OWNERID; EmployeeContract.T_HR_EMPLOYEE = ent; } //上传的文件 //ctrFile.FormID = EmployeeContract.EMPLOYEECONTACTID; //ctrFile.Save(); //日期转换 if (falseRabtn.IsChecked == true) { EmployeeContract.TODATE = Convert.ToDateTime(dpEndDate.Text).ToShortDateString(); EmployeeContract.NOENDDATE = "0"; } else { EmployeeContract.NOENDDATE = "1"; dpEndDate.Text = ""; nudDay.Value = 0; nudDay.IsEnabled = false; employeeContractIsSet = false; } if (FormType == FormTypes.New) { //所属 EmployeeContract.CREATECOMPANYID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].CompanyID; EmployeeContract.CREATEDEPARTMENTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].DepartmentID; EmployeeContract.CREATEPOSTID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.UserPosts[0].PostID; //EmployeeContract.CHECKSTATE = Convert.ToInt32(CheckStates.UnSubmit).ToString(); client.EmployeeContractAddAsync(EmployeeContract, strMsg); } else { EmployeeContract.UPDATEDATE = System.DateTime.Now; EmployeeContract.UPDATEUSERID = SMT.SAAS.Main.CurrentContext.Common.CurrentLoginUserInfo.EmployeeID; ; //client.GetEmployeeContractEngineXmlAsync(EmployeeContract); client.EmployeeContractUpdateAsync(EmployeeContract, "Edit"); } return true; }
private void HandleEmployeeChanged(SMT.Saas.Tools.OrganizationWS.V_EMPLOYEEPOST ent) { //给员工赋值 T_HR_EMPLOYEE temp = new T_HR_EMPLOYEE(); temp.EMPLOYEEID = ent.T_HR_EMPLOYEE.EMPLOYEEID; PostChange.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); postChange.T_HR_EMPLOYEE.EMPLOYEEID = temp.EMPLOYEEID; if (ent.EMPLOYEEPOSTS[0] != null) { txtFromCompanyID.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.CNAME; txtFromDepartmentID.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_DEPARTMENTDICTIONARY.DEPARTMENTNAME; ; txtFromPostID.Text = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_POSTDICTIONARY.POSTNAME; PostChange.FROMCOMPANYID = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.T_HR_COMPANY.COMPANYID; PostChange.FROMDEPARTMENTID = ent.EMPLOYEEPOSTS[0].T_HR_POST.T_HR_DEPARTMENT.DEPARTMENTID; PostChange.FROMPOSTID = ent.EMPLOYEEPOSTS[0].T_HR_POST.POSTID; // PostChange.FROMPOSTLEVEL = en } else { txtFromCompanyID.Text = ""; txtFromDepartmentID.Text = ""; txtFromPostID.Text = ""; PostChange.FROMCOMPANYID = ""; PostChange.FROMDEPARTMENTID = ""; PostChange.FROMPOSTID = ""; } }
/// <summary> /// 根据传回的xml生成员工入职 /// </summary> /// <param name="eGFunc"></param> /// <returns></returns> private static string AddEmployeeEntry(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 Name = string.Empty; int PROBATIONPERIOD = 0; string Idnumber = string.Empty; string sex = string.Empty; string isAcceptemploied = string.Empty; string createuserid = 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 "NAME": Name = q.Attribute("Value").Value; break; case "IDCARDNUMBER": Idnumber = q.Attribute("Value").Value; break; case "SEX": sex = q.Attribute("Value").Value; break; case "PROBATIONPERIOD": PROBATIONPERIOD = int.Parse(q.Attribute("Value").Value); break; case "ISACCEPTEMPLOIED": isAcceptemploied = q.Attribute("Value").Value; break; case "CREATEUSERID": createuserid = q.Attribute("Value").Value; break; } } //if (isAcceptemploied != "2") //{ // return string.Empty; //} PersonnelService ser = new PersonnelService(); T_HR_EMPLOYEEENTRY entry = new T_HR_EMPLOYEEENTRY(); T_HR_EMPLOYEE employee = new T_HR_EMPLOYEE(); T_HR_EMPLOYEEPOST epost = new T_HR_EMPLOYEEPOST(); employee.EMPLOYEEID = Guid.NewGuid().ToString(); employee.EMPLOYEECNAME = Name; employee.IDNUMBER = Idnumber.Replace("{", "").Replace("}", ""); employee.OWNERCOMPANYID = strOwnerCompanyID.Replace("{", "").Replace("}", ""); employee.OWNERDEPARTMENTID = strOwnerDepartmentID.Replace("{", "").Replace("}", ""); employee.OWNERPOSTID = strOwnerPostID.Replace("{", "").Replace("}", ""); employee.OWNERID = employee.EMPLOYEEID.Replace("{", "").Replace("}", ""); employee.CREATEDATE = DateTime.Now; employee.SEX = sex; employee.CREATEUSERID = createuserid; epost.EMPLOYEEPOSTID = Guid.NewGuid().ToString(); epost.ISAGENCY = "0"; epost.CREATEDATE = DateTime.Now; epost.T_HR_POST = new T_HR_POST(); epost.T_HR_POST.POSTID = employee.OWNERPOSTID; epost.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); epost.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID; epost.CREATEUSERID = createuserid; epost.CHECKSTATE = "0"; entry.EMPLOYEEENTRYID = Guid.NewGuid().ToString(); entry.CHECKSTATE = "0"; entry.PROBATIONPERIOD = PROBATIONPERIOD; entry.T_HR_EMPLOYEE = new T_HR_EMPLOYEE(); entry.T_HR_EMPLOYEE.EMPLOYEEID = employee.EMPLOYEEID; entry.CREATEDATE = System.DateTime.Now; entry.EMPLOYEEPOSTID = epost.EMPLOYEEPOSTID; entry.OWNERCOMPANYID = employee.OWNERCOMPANYID; entry.OWNERDEPARTMENTID = employee.OWNERDEPARTMENTID; entry.OWNERPOSTID = employee.OWNERPOSTID; entry.OWNERID = employee.EMPLOYEEID; entry.CREATEUSERID = createuserid; ser.AddEmployeeEntry(employee, entry, epost); return entry.EMPLOYEEENTRYID; } 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; } }
private string CombinSalaryEmployeeInfo(T_HR_EMPLOYEE entEmployee) { string strTemp = string.Empty; if (entEmployee == null) { return strTemp; } strTemp = entEmployee.EMPLOYEEID + ";" + entEmployee.OWNERCOMPANYID; return strTemp; }
public bool ReadExcelData() { string path = FileName; //Application exc = null; //Workbooks workBooks = null; //Workbook workBook = null; //Worksheet workSheet = null; //Range r = null; // object oMissing = System.Reflection.Missing.Value; SMT.Foundation.Core.BaseDAL dal = new SMT.Foundation.Core.BaseDAL(); try { dal.BeginTransaction(); //exc = new Application(); //exc.UserControl = true; //exc.Application.Workbooks.Open(path, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing, oMissing); //workBooks = exc.Workbooks; //workBook = workBooks[1]; //workSheet = (Worksheet)workBook.Worksheets[WorkSheetIndex <= 0 ? 1 : WorkSheetIndex]; //int colCount = workSheet.UsedRange.Columns.Count; //获得列数 //int rowCount = workSheet.UsedRange.Rows.Count; //获得行数 //Dictionary<string, string> dictIndexs = new Dictionary<string, string>(); //dictIndexs.Add("A", "0"); //dictIndexs.Add("B", "1"); //dictIndexs.Add("C", "2"); //dictIndexs.Add("D", "3"); //dictIndexs.Add("E", "4"); //dictIndexs.Add("F", "5"); //dictIndexs.Add("G", "6"); //dictIndexs.Add("H", "7"); //dictIndexs.Add("I", "8"); //dictIndexs.Add("J", "9"); //dictIndexs.Add("K", "10"); //dictIndexs.Add("L", "11"); //dictIndexs.Add("M", "12"); //dictIndexs.Add("N", "13"); //dictIndexs.Add("O", "14"); //dictIndexs.Add("P", "15"); //dictIndexs.Add("Q", "16"); //dictIndexs.Add("R", "17"); //dictIndexs.Add("S", "18"); //dictIndexs.Add("T", "19"); //dictIndexs.Add("U", "20"); //dictIndexs.Add("V", "21"); //dictIndexs.Add("W", "22"); //dictIndexs.Add("X", "23"); //dictIndexs.Add("Y", "24"); //dictIndexs.Add("Z", "25"); Dictionary <string, Int32> dictIndexs = new Dictionary <string, Int32>(); dictIndexs.Add("A", 0); dictIndexs.Add("B", 1); dictIndexs.Add("C", 2); dictIndexs.Add("D", 3); dictIndexs.Add("E", 4); dictIndexs.Add("F", 5); dictIndexs.Add("G", 6); dictIndexs.Add("H", 7); dictIndexs.Add("I", 8); dictIndexs.Add("J", 9); dictIndexs.Add("K", 10); dictIndexs.Add("L", 11); dictIndexs.Add("M", 12); dictIndexs.Add("N", 13); dictIndexs.Add("O", 14); dictIndexs.Add("P", 15); dictIndexs.Add("Q", 16); dictIndexs.Add("R", 17); dictIndexs.Add("S", 18); dictIndexs.Add("T", 19); dictIndexs.Add("U", 20); dictIndexs.Add("V", 21); dictIndexs.Add("W", 22); dictIndexs.Add("X", 23); dictIndexs.Add("Y", 24); dictIndexs.Add("Z", 25); //excel读取开始行号 int beginRow = Convert.ToInt32(ImportConfig.STARTROW.GetValueOrDefault(2)); //excel读取结束行号 int endRow = Convert.ToInt32(ImportConfig.ENDROW.GetValueOrDefault(2)); //if (endRow > rowCount) // endRow = rowCount; int i = 1; System.Text.UTF8Encoding code = new UTF8Encoding(); using (StreamReader sr = new StreamReader(path, Encoding.GetEncoding("gb2312"))) { string line; // Read and display lines from the file until the end of // the file is reached. //while ((line = sr.ReadLine()) != null) while (!string.IsNullOrEmpty(line = sr.ReadLine())) { string[] lineTmp = line.Split(','); if (i >= beginRow && i <= endRow) { //创建一个实列 Type type = EntityInstance.GetType(); object entity = Activator.CreateInstance(type); //得到excel二维数组当前行中A列的值 //r = (Range)workSheet.Cells[i, "A"]; //string value = r.Text.ToString().Trim(); #region 实例化对像 foreach (T_HR_IMPORTSETDETAIL detail in ImportConfig.T_HR_IMPORTSETDETAIL) { if (!string.IsNullOrEmpty(detail.EXECELCOLUMN)) { //r = (Range)workSheet.Cells[i, detail.EXECELCOLUMN]; ////r = (Range)workSheet.Cells[i, "D"]; //string value = r.Text.ToString().Trim(); int index = 0; //把列名拆成字符数组 char[] tmps = detail.EXECELCOLUMN.ToUpper().ToCharArray(); if (tmps.Length == 1) { //列名是一个字母 直接从字典查出列对应的索引 index = dictIndexs[tmps[0].ToString()]; } else { //列名是双字符 计算出列对应的索引 index = (dictIndexs[tmps[0].ToString()] + 1) * 26 + (dictIndexs[tmps[1].ToString()]); } // int index = Convert.ToInt32(dictIndexs[detail.EXECELCOLUMN.ToUpper()]); string value = lineTmp[index].Trim(); PropertyInfo prop = type.GetProperty(detail.ENTITYCOLUMNCODE); if (prop != null) { if (!string.IsNullOrEmpty(value)) { if (prop.PropertyType.BaseType == typeof(System.ValueType)) { if (prop.PropertyType.ToString().Contains(typeof(DateTime).ToString())) { prop.SetValue(entity, Convert.ToDateTime(value), null); } else { decimal tmpValue; decimal.TryParse(value, out tmpValue); prop.SetValue(entity, tmpValue, null); } } else { prop.SetValue(entity, value, null); } } } } } #endregion PropertyInfo prop1 = type.GetProperty("PENSIONDETAILID"); prop1.SetValue(entity, Guid.NewGuid().ToString(), null); PropertyInfo prop2 = type.GetProperty("OWNERCOMPANYID"); prop2.SetValue(entity, paras["OWNERCOMPANYID"], null); PropertyInfo prop3 = type.GetProperty("OWNERDEPARTMENTID"); prop3.SetValue(entity, paras["OWNERDEPARTMENTID"], null); PropertyInfo prop4 = type.GetProperty("OWNERPOSTID"); prop4.SetValue(entity, paras["OWNERPOSTID"], null); PropertyInfo prop5 = type.GetProperty("OWNERID"); prop5.SetValue(entity, paras["OWNERID"], null); PropertyInfo prop6 = type.GetProperty("CREATEUSERID"); prop6.SetValue(entity, paras["CREATEUSERID"], null); PropertyInfo prop7 = type.GetProperty("PENSIONYEAR"); prop7.SetValue(entity, Convert.ToDecimal(paras["YEAR"]), null); PropertyInfo prop8 = type.GetProperty("PENSIONMOTH"); prop8.SetValue(entity, Convert.ToDecimal(paras["MONTH"]), null); PropertyInfo prop9 = type.GetProperty("CREATEDATE"); prop9.SetValue(entity, System.DateTime.Now, null); T_HR_PENSIONDETAIL tmpDetail = entity as T_HR_PENSIONDETAIL; string idnumber = string.Empty; if (string.IsNullOrEmpty(tmpDetail.IDNUMBER)) { idnumber = "Null0"; } else { idnumber = tmpDetail.IDNUMBER.ToString(); } //根据身份证号 查询员工 如果没有找到就不插入此条记录 var employee = from e in dal.GetObjects <T_HR_EMPLOYEE>() where e.IDNUMBER == idnumber && e.EDITSTATE == "1" select e; if (employee.Count() > 0) { //删除旧的记录 var oldDetail = from c in dal.GetObjects <T_HR_PENSIONDETAIL>() where c.PENSIONMOTH == tmpDetail.PENSIONMOTH && c.PENSIONYEAR == tmpDetail.PENSIONYEAR && c.IDNUMBER == idnumber select c; if (oldDetail.Count() > 0) { dal.DeleteFromContext(oldDetail.FirstOrDefault()); } T_HR_EMPLOYEE entCurEmp = employee.FirstOrDefault(); if (tmpDetail.EMPLOYEEID != entCurEmp.EMPLOYEEID) { tmpDetail.EMPLOYEEID = entCurEmp.EMPLOYEEID; entity = tmpDetail; } //插入数据到数据库 dal.AddToContext(entity); // dal.Add(entity); } else { Tracer.Debug("PensionImport:" + i.ToString() + "行,没有员工身份证为此号码:" + idnumber); } } i++; } } dal.SaveContextChanges(); dal.CommitTransaction(); CommDal <T_HR_PENSIONDETAIL> cdal = new CommDal <T_HR_PENSIONDETAIL>(); // string strSql = @" update t_hr_pensiondetail a set a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b where a.computerno // = b.computerno),a.employeeid= (select employeeid from t_hr_pensionmaster b where a.computerno = b.computerno) // ,a.CARDID= (select CARDID from t_hr_pensionmaster b where a.computerno = b.computerno)"; //string strSql = @" update t_hr_pensiondetail a set a.employeeid= (select employeeid from t_hr_employee b where a.idnumber = b.IDNUMBER)"; //string strSql = " update t_hr_pensiondetail a set a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b where a.computerno" // +"= b.computerno and b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"'),a.employeeid= (select employeeid from t_hr_pensionmaster b where a.computerno = b.computerno and b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')" // +" ,a.CARDID= (select CARDID from t_hr_pensionmaster b where a.computerno = b.computerno b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')" // +" ,a.OWNERID=(select employeeid from t_hr_pensionmaster b where a.computerno = b.computerno b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')" // +" ,a.OWNERPOSTID=(select c.OWNERPOSTID from t_hr_pensionmaster b ,t_hr_employee c where a.computerno = b.computerno and b.employeeid= c.employeeid + b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"') " // +" ,a.OWNERDEPARTMENTID=(select c.OWNERDEPARTMENTID from t_hr_pensionmaster b ,t_hr_employee c where a.computerno = b.computerno and b.employeeid= c.employeeid b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')" // +" ,a.OWNERCOMPANYID=(select c.OWNERCOMPANYID from t_hr_pensionmaster b ,t_hr_employee c where a.computerno = b.computerno and b.employeeid= c.employeeid b.ownercompanyid='" + paras["OWNERCOMPANYID"]+"')" // +" where a.PENSIONYEAR='" + paras["YEAR"] + "' and a.PENSIONMOTH='" + paras["MONTH"] + "'"; //cdal.ExecuteCustomerSql(strSql); //strSql = "update t_hr_pensiondetail a set a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b where a.employeeid = b.employeeid),a.cardid =(select b.cardid from t_hr_pensionmaster b where a.employeeid = b.employeeid)"; string strSql = " update t_hr_pensiondetail a set a.pensionmasterid = (select pensionmasterid from t_hr_pensionmaster b,t_hr_employee c where a.IDNUMBER= c.IDNUMBER and b.employeeid=c.employeeid and b.editstate=1)" + " ,a.employeeid= (select employeeid from t_hr_employee c where a.IDNUMBER = c.IDNUMBER )" + " ,a.CARDID= (select CARDID from t_hr_pensionmaster b ,t_hr_employee c where a.IDNUMBER = c.IDNUMBER and b.employeeid=c.employeeid and b.editstate=1)" + " ,a.OWNERID=(select employeeid from t_hr_employee c where a.IDNUMBER = c.IDNUMBER )" + " ,a.OWNERPOSTID=(select c.OWNERPOSTID from t_hr_employee c where a.IDNUMBER= c.IDNUMBER ) " + " ,a.OWNERDEPARTMENTID=(select c.OWNERDEPARTMENTID from t_hr_employee c where a.IDNUMBER= c.IDNUMBER )" + " ,a.OWNERCOMPANYID=(select c.OWNERCOMPANYID from t_hr_employee c where a.IDNUMBER = c.IDNUMBER )" + " where a.PENSIONYEAR='" + paras["YEAR"] + "' and a.PENSIONMOTH='" + paras["MONTH"] + "' and a.CREATEUSERID='" + paras["CREATEUSERID"] + "'"; cdal.ExecuteCustomerSql(strSql); return(true); } catch (Exception ex) { //TODO: 写成导入日志 //throw ex; Tracer.Debug("My error" + ex.Message); dal.RollbackTransaction(); return(false); } finally { //关闭当前的excel进程 //exc.Application.Workbooks.Close(); //exc.Quit(); //System.Runtime.InteropServices.Marshal.ReleaseComObject(exc); //IntPtr t = new IntPtr(exc.Hwnd); //exc = null; //int kid = 0; //GetWindowThreadProcessId(t, out kid); //System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(kid); //p.Kill(); } }