public static string GenerateContractNumber(string abbr, string connString) { BonsaiiDbContext db = new BonsaiiDbContext(connString); ParamCodes tmp = db.ParamCodes.Where(p => p.ParamName == "合同编号").Single(); string date = DateTime.Now.ToString("yyyyMMdd"); string SerialNumber = null; //为流水号补充零 if (tmp.SerialNumber != 0) { SerialNumber = AddZero(tmp.Count, tmp.SerialNumber); //更员工号计数值 tmp.Count++; db.Entry(tmp).State = EntityState.Modified; db.SaveChanges(); } switch (tmp.CodeMethod) { case CodeMethod.Day: return(DateTime.Now.ToString("yyMMdd").ToString() + SerialNumber); case CodeMethod.Month: return(DateTime.Now.ToString("yyMM").ToString() + SerialNumber); case CodeMethod.Serial: return(tmp.Code.Substring(0, 10 - tmp.SerialNumber) + SerialNumber); case CodeMethod.Five: return(abbr + SerialNumber); default: return(""); } }
/// <summary> /// 根据单据类型编号,生成单号 /// </summary> /// <param name="BillTypeNumber">单据类型编号,连接字符串</param> /// <returns>单号</returns> public static string GenerateBillNumber(string BillTypeNumber, string connString) { BonsaiiDbContext db = new BonsaiiDbContext(connString); BillPropertyModels tmp = db.BillProperties.Where(p => p.Type == BillTypeNumber).Single(); string date = DateTime.Now.ToString("yyyyMMdd"); //为流水号补充零 string SerialNumber = AddZero(tmp.Count, tmp.SerialNumber); //更新单号的计数值 tmp.Count++; db.Entry(tmp).State = EntityState.Modified; db.SaveChanges(); switch (tmp.CodeMethod) { case CodeMethod.One: return(DateTime.Now.ToString("yyyyMMdd").ToString() + SerialNumber); case CodeMethod.Two: return(DateTime.Now.ToString("yyyyMM").ToString() + SerialNumber); case CodeMethod.Three: return(tmp.Code.Substring(0, 10 - tmp.SerialNumber) + SerialNumber); default: return(""); } }
//if (FileData != null) //{ // staff.HeadType = FileData.ContentType;//获取图片类型 // staff.Head = new byte[FileData.ContentLength];//新建一个长度等于图片大小的二进制地址 // FileData.InputStream.Read(staff.Head, 0, FileData.ContentLength);//将image读取到Logo中 //} public void GenerateImage() { BonsaiiDbContext db = new BonsaiiDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = Bonsaii0000000008;User ID = sa;Password = admin123@;"); Staff staff = db.Staffs.Where(p => p.StaffNumber.Equals("RSXZ000119")).Single(); MemoryStream ms = new MemoryStream((byte[])staff.Head); byte[] image = ms.ToArray(); FileStream fs = File.OpenWrite("D://test.png"); fs.Write(image, 0, image.Length); fs.Close(); }
public void GenerateMonty() { using (db = new BonsaiiDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = Bonsaii0000000008;User ID = sa;Password = admin123@;")) { for (int i = 1; i < 31; i++) { this.GenerateSignInCardStatusAndEveryDaySign(new DateTime(2016, 1, i)); } // this.Vacatedell(CurrentDate); // this.CheckOvertimeApplies(CurrentDate); } }
/// <summary> /// 从数据库中获取到所有的单据类别,并转换为SelectList /// </summary> /// <param name="connString">某个企业的连接字符串</param> /// <returns>可用于DropDownList显示的SelectList</returns> public static SelectList GetBillSortMethod(string connString) { BonsaiiDbContext db = new BonsaiiDbContext(connString); List<BillSort> BillSorts = db.BillSorts.ToList(); List<SelectListItem> list = new List<SelectListItem>(); foreach (BillSort tmp in BillSorts) { list.Add(new SelectListItem() { Value = tmp.Sort, Text = tmp.Name + "-" + tmp.Sort }); } return new SelectList(list, "Value", "Text"); }
// GET: /PlatformPush/Details/5 public ActionResult Details(int?id, string connString) { BonsaiiDbContext bonsaii = new BonsaiiDbContext(connString); if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } CompanyPush companypush = bonsaii.CompanyPushes.Find(id); if (companypush == null) { return(HttpNotFound()); } return(View(companypush)); }
/// <summary> /// 从数据库中获取到所有的单据类别,并转换为SelectList /// </summary> /// <param name="connString">某个企业的连接字符串</param> /// <returns>可用于DropDownList显示的SelectList</returns> public static SelectList GetBillSortMethod(string connString) { BonsaiiDbContext db = new BonsaiiDbContext(connString); List <BillSort> BillSorts = db.BillSorts.ToList(); List <SelectListItem> list = new List <SelectListItem>(); foreach (BillSort tmp in BillSorts) { list.Add(new SelectListItem() { Value = tmp.Sort, Text = tmp.Name + "-" + tmp.Sort }); } return(new SelectList(list, "Value", "Text")); }
/// <summary> /// 负责单据生成时的Counter的清零,月清零 /// </summary> public void SetZeroEachMonth() { //便利每一个公司 foreach (string tmpConn in ConnStrings) { //对于不同的企业,分别初始化不同的DbContext,来操作不同的企业数据库 using (db = new BonsaiiDbContext(tmpConn)) { List <BillPropertyModels> list = db.BillProperties.Where(p => p.CodeMethod.Equals(CodeMethod.Month)).ToList(); foreach (BillPropertyModels tmp in list) { tmp.Count = 1; db.Entry(tmp).State = EntityState.Modified; } } } }
/// <summary> /// 这个函数的调用顺序在:BaseController的构造函数和继承BaseController的构造函数调用之后才进行调用 /// </summary> /// <param name="requestContext"></param> protected override void Initialize(System.Web.Routing.RequestContext requestContext) { base.Initialize(requestContext); // UserData = Session["UserData"] as SessionData; if (Session["UserName"] != null) { this.UserName = Session["UserName"] as string; this.Name = Session["Name"] as string; this.CompanyId = Session["CompanyId"] as string; this.ConnectionString = Session["ConnectionString"] as string; this.CompanyFullName = Session["CompanyFullName"] as string; this.IsProved = (bool)Session["IsProved"]; } else { UserManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); var user = UserManager.FindById(User.Identity.GetUserId()); //既没有通过系统登录,也没有通过外部登录,跳转到登录页面 if (user == null) { Rederect(requestContext, Url.Action("Login", "Account")); } //通过外部登录或者浏览器保存的cookie和session信息自动进行了登录 this.UserName = user.UserName; this.Name = user.Name; this.CompanyId = user.CompanyId; this.ConnectionString = user.ConnectionString; this.CompanyFullName = user.CompanyFullName; this.IsProved = user.IsProved; Session["UserName"] = this.UserName; Session["Name"] = this.Name; Session["CompanyId"] = this.CompanyId; Session["ConnectionString"] = this.ConnectionString; Session["CompanyFullName"] = this.CompanyFullName; Session["IsProved"] = this.IsProved; } db = new BonsaiiDbContext(this.ConnectionString); //StateDescription = new Dictionary<int, string>(); //foreach (var tmp in db.States.ToList()) // StateDescription.Add(tmp.Id, tmp.Description); }
//生成每天所需要的打卡表和日考勤报表 public void GenerateEachDay() { // DateTime CurrentDate = DateTime.Now; DateTime CurrentDate = new DateTime(2015, 12, 31); foreach (string tmpConn in ConnStrings) { //对于不同的企业,分别初始化不同的DbContext,来操作不同的企业数据库 using (db = new BonsaiiDbContext(tmpConn)) { //按照排班生成最基本的打卡表和日考勤报表 this.GenerateSignInCardStatusAndEveryDaySign(CurrentDate); // this.Vacatedell(CurrentDate); // this.CheckOvertimeApplies(CurrentDate); } } }
//如果审核通过 执行这段代码 public static void PassStep(int id, string userName) { UserModels user = (from u in sdb.Users where u.UserName == userName select u).FirstOrDefault(); BonsaiiDbContext db = new BonsaiiDbContext(user.ConnectionString); AuditProcess auditProcess = db.AuditProcesses.Find(id); var item = (from p in db.AuditSteps where p.SId == auditProcess.SId select p).FirstOrDefault(); //表明item是最后一个节点。返回一个结果:审核成功 if (item.ApprovedToSId == -1) { //AuditApplication auditApplication = db.AuditApplications.Find(auditProcess.AId); //auditApplication.State = 3;//已审 ReturnStatus(auditProcess.AId, 3, userName); } else//如果不是最后一个节点,那么寻找下一个节点,插入到AuditProcess表中 { int temp = item.ApprovedToSId; var nextstep = (from p in db.AuditSteps where p.SId == temp select p).FirstOrDefault();//下一个节点 AuditProcess nextauditProcess = new AuditProcess(); nextauditProcess.AId = auditProcess.AId;//还是auditProcess的AId nextauditProcess.SId = nextstep.SId; nextauditProcess.TId = nextstep.TId; nextauditProcess.BType = auditProcess.BType; nextauditProcess.BNumber = auditProcess.BNumber; nextauditProcess.TypeName = auditProcess.TypeName; nextauditProcess.Info = auditProcess.Info; nextauditProcess.CreateDate = auditProcess.CreateDate; //还是记录auditProcess的申请时间; nextauditProcess.Result = 0; //待审核 nextauditProcess.Comment = null; nextauditProcess.DeadlineDate = DateTime.Now.AddDays(item.Days); //记录一下该节点最晚的审核时间; nextauditProcess.AuditDate = DateTime.Now; //实际的审核时间 nextauditProcess.Approver = nextstep.Approver; db.AuditProcesses.Add(nextauditProcess); db.SaveChanges(); Audit(nextstep.Approver, user.CompanyId); } // db.SaveChanges(); }
public static SelectList GetWorks(string connString) { BonsaiiDbContext db = new BonsaiiDbContext(connString); List <Works> works = db.Works.ToList(); List <SelectListItem> list = new List <SelectListItem>(); list.Insert(0, new SelectListItem() { Text = "-- 请选择班次--", }); foreach (Works tmp in works) { list.Add(new SelectListItem() { Value = tmp.Id.ToString(), Text = tmp.Name }); } return(new SelectList(list, "Value", "Text")); }
//获取部门信息的列表 public static SelectList GetDepartments(string connString) { BonsaiiDbContext db = new BonsaiiDbContext(connString); List <Department> departments = db.Departments.ToList(); List <SelectListItem> list = new List <SelectListItem>(); list.Insert(0, new SelectListItem() { Text = "--请选择部门--", }); foreach (Department tmp in departments) { list.Add(new SelectListItem() { Value = tmp.DepartmentId, Text = tmp.Name }); } return(new SelectList(list, "Value", "Text")); }
//无参数构造函数 public Tester() { db = new BonsaiiDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = Bonsaii0000000008;User ID = sa;Password = admin123@;"); sysdb = new SystemDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = BonsaiiSystem;User ID = sa;Password = admin123@;"); Tools = new CommonTool(); ConnStrings = sysdb.Users.Where(p => p.IsRoot == true).Select(p => p.ConnectionString).ToList(); this.OvertimeAheadMinutes = db.CheckingInParams.Find(1).Value; this.OvertimeBackMinutes = db.CheckingInParams.Find(2).Value; this.EvectionAheadMinutes = db.CheckingInParams.Find(3).Value; this.EvectionBackMinutes = db.CheckingInParams.Find(4).Value; this.LateMinutes = db.CheckingInParams.Find(5).Value; this.LateToHour = db.CheckingInParams.Find(6).Value; this.EarlyMinutes = db.CheckingInParams.Find(7).Value; this.EarlyToHour = db.CheckingInParams.Find(8).Value; this.EvectionNeedSignIn = db.CheckingInParamsBools.Find(1).Value; this.OvertimeNeedSignIn = db.CheckingInParamsBools.Find(2).Value; this.AbsentismMinutes = db.CheckingInParams.Find(9).Value; this.AbsentismHour = db.CheckingInParams.Find(10).Value; }
public static List <WorkDayModel> GetWorkDaysByStaffNumber(string StaffNumber, string connString) { BonsaiiDbContext db = new BonsaiiDbContext(connString); List <WorkDayModel> result = new List <WorkDayModel>(); List <WorkManages> tmpWorkManages = db.WorkManages.Where(p => p.StaffNumber.Equals(StaffNumber)).OrderBy(p => p.Date).ToList(); foreach (WorkManages tmp in tmpWorkManages) { List <WorkTimes> tmpWorkTimes = db.WorkTimes.Where(p => p.WorksId == tmp.WorksId).OrderBy(p => p.StartTime).ToList(); string tmpWorkTime = ""; foreach (WorkTimes tmpWT in tmpWorkTimes) { tmpWorkTime += tmpWT.StartTime + "-" + tmpWT.EndTime + "<br/>"; } result.Add(new WorkDayModel() { Date = tmp.Date, WorkTime = tmpWorkTime }); } return(result); }
//如果审核不通过就执行这个函数 public static void NotPassStep(int id, string userName) { UserModels user = (from u in sdb.Users where u.UserName == userName select u).FirstOrDefault(); BonsaiiDbContext db = new BonsaiiDbContext(user.ConnectionString); AuditProcess auditProcess = db.AuditProcesses.Find(id); // auditProcess.Result = 4;//直接返回结果就是不通过 var item = (from p in db.AuditSteps where p.SId == auditProcess.SId select p).FirstOrDefault(); if (item.NotApprovedToSId == -1)//如果不再需要执行下一步了,就直接返回审核失败 { ReturnStatus(auditProcess.AId, 4, userName); } else { int temp = item.NotApprovedToSId; var laststep = (from p in db.AuditSteps where p.SId == temp select p).FirstOrDefault();//返回上一个节点 AuditProcess lastauditProcess = new AuditProcess(); lastauditProcess.AId = auditProcess.AId;//还是这个AId lastauditProcess.SId = laststep.SId; lastauditProcess.TId = laststep.TId; lastauditProcess.BType = auditProcess.BType; lastauditProcess.BNumber = auditProcess.BNumber; lastauditProcess.TypeName = auditProcess.TypeName; lastauditProcess.Info = auditProcess.Info; lastauditProcess.CreateDate = auditProcess.CreateDate;//还是记录auditProcess的申请时间; lastauditProcess.Result = 0; lastauditProcess.Comment = null; lastauditProcess.DeadlineDate = DateTime.Now.AddDays(item.Days); //记录一下该节点最晚的审核时间; lastauditProcess.AuditDate = DateTime.Now; //AuditDate就记录为当前的时间; lastauditProcess.Approver = laststep.Approver; db.AuditProcesses.Add(lastauditProcess); db.SaveChanges(); Audit(laststep.Approver, user.CompanyId); } }
public Program1() { db = new BonsaiiDbContext("Data source = 211.149.199.42,1433;initial catalog = bonsaii0000000008;user id = sa;password = admin123@;"); }
public static void ReturnStatus(int auditProcessAId, byte status, string userName) { UserModels user = (from u in sdb.Users where u.UserName == userName select u).FirstOrDefault(); BonsaiiDbContext db = new BonsaiiDbContext(user.ConnectionString); AuditApplication application = db.AuditApplications.Find(auditProcessAId);//修改Application的状态 application.State = status; string btype = application.BType.Substring(0, 2); switch (btype) { case "21": { //员工 Staff someone = (from p in db.Staffs where (p.BillNumber == application.BNumber) && (p.BillTypeNumber == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; //已审 SystemDbContext sysdb = new SystemDbContext(); /*BindCodes*/ var Ucount = (from p in sysdb.BindCodes where (p.CompanyId == user.CompanyId && p.StaffNumber == someone.StaffNumber) select p).ToList(); if (Ucount.Count == 0) { //木有该员工 BindCode user1 = new BindCode(); string CompanyDbName = "Bonsaii" + user1.CompanyId; user1.ConnectionString = ConfigurationManager.AppSettings["UserDbConnectionString"] + CompanyDbName + ";"; //"Data Source = localhost,1433;Network Library = DBMSSOCN;Initial Catalog = " + CompanyDbName + ";User ID = test;Password = admin;"; user1.CompanyId = user1.CompanyId; user1.StaffNumber = someone.StaffNumber; user1.RealName = someone.Name; user1.BindingCode = someone.BindingCode; user1.Phone = someone.IndividualTelNumber; user1.BindTag = false; user1.LastTime = DateTime.Now; user1.IsAvail = true; sysdb.BindCodes.Add(user1); sysdb.SaveChanges(); } db.SaveChanges(); Push(someone.StaffNumber, user.CompanyId, status); } } break; case "22": { //变更 StaffChange someone = (from p in db.StaffChanges where (p.BillNumber == application.BNumber) && (p.BillTypeNumber == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; if (someone.AuditStatus == 3) { var staffId = (from p in db.Staffs where p.StaffNumber == someone.StaffNumber && p.ArchiveTag != true select p.Number).ToList().FirstOrDefault(); Staff staff = db.Staffs.Find(staffId); staff.Name = someone.Name; staff.Gender = someone.Gender; staff.Department = someone.Department; staff.WorkType = someone.WorkType; staff.Position = someone.Position; staff.IdentificationNumber = someone.IdentificationNumber; staff.Nationality = someone.Nationality; staff.IdentificationNumber = someone.IdentificationNumber; staff.Entrydate = someone.Entrydate; staff.ClassOrder = someone.ClassOrder; staff.ApplyOvertimeSwitch = staff.ApplyOvertimeSwitch; staff.JobState = someone.JobState; staff.AbnormalChange = someone.AbnormalChange; staff.FreeCard = someone.FreeCard; staff.WorkProperty = someone.WorkProperty; staff.WorkType = someone.WorkType; staff.Source = someone.Source; staff.QualifyingPeriodFull = someone.QualifyingPeriodFull; staff.MaritalStatus = someone.MaritalStatus; staff.BirthDate = someone.BirthDate; staff.NativePlace = someone.NativePlace; staff.HealthCondition = someone.HealthCondition; staff.Nation = someone.Nation; staff.Address = someone.Address; staff.VisaOffice = someone.VisaOffice; staff.HomeTelNumber = someone.HomeTelNumber; staff.EducationBackground = someone.EducationBackground; staff.GraduationSchool = someone.GraduationSchool; staff.SchoolMajor = someone.SchoolMajor; staff.Degree = someone.SchoolMajor; staff.Introducer = someone.Introducer; staff.IndividualTelNumber = someone.IndividualTelNumber; staff.BankCardNumber = someone.BankCardNumber; staff.UrgencyContactMan = someone.UrgencyContactMan; staff.UrgencyContactAddress = someone.UrgencyContactAddress; staff.UrgencyContactPhoneNumber = someone.UrgencyContactPhoneNumber; staff.PhysicalCardNumber = someone.PhysicalCardNumber; staff.LeaveDate = someone.LeaveDate; staff.LeaveType = someone.LeaveType; staff.LeaveReason = someone.LeaveReason; staff.AuditStatus = someone.AuditStatus; staff.HealthCondition = someone.HealthCondition; staff.ChangeTime = someone.RecordTime; staff.ChangePerson = someone.RecordPerson; staff.AuditTime = DateTime.Now; staff.AuditPerson = userName; staff.Head = someone.Head; staff.LogicCardNumber = someone.LogicCardNumber; staff.HeadType = someone.HeadType; staff.IDCardNumber = someone.IDCardNumber; staff.DeadlineDate = someone.DeadlineDate; } db.SaveChanges(); Push(someone.StaffNumber, user.CompanyId, status); } } break; case "23": { //离职 StaffApplication someone = (from p in db.StaffApplications where (p.BillNumber == application.BNumber) && (p.BillTypeNumber == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; if (someone.AuditStatus == 3) { //审核通过就在Staff里面把标志置为1 var staffId = (from p in db.Staffs where p.StaffNumber == someone.StaffNumber && p.ArchiveTag != true select p.Number).ToList().FirstOrDefault(); Staff staff = db.Staffs.Find(staffId); staff.ArchiveTag = true; //true 代表离职 staff.BindingCode = null; //要把信息写到离职档案中 StaffArchive staffArchive = new StaffArchive(); staffArchive.BillTypeNumber = someone.BillTypeNumber; staffArchive.BillTypeName = someone.BillTypeName; staffArchive.BillNumber = someone.BillNumber; staffArchive.StaffNumber = staff.StaffNumber; staffArchive.StaffName = staff.Name; staffArchive.LeaveDate = someone.HopeLeaveDate; staffArchive.Department = (from p in db.Departments where p.DepartmentId == staff.Department select p.Name).ToList().FirstOrDefault(); staffArchive.IdenticationNumber = staff.IdentificationNumber; staffArchive.RecordPerson = staff.RecordPerson; staffArchive.RecordTime = staff.RecordTime; staffArchive.BlackList = false; staffArchive.WorkPlus = false; staff.ArchiveTag = true; //true 代表离职 db.StaffArchives.Add(staffArchive); //Users表中离职; //修改系统表 SystemDbContext sysdb = new SystemDbContext(); var Ucount = (from p in sysdb.BindCodes where (p.CompanyId == user.CompanyId && p.StaffNumber == someone.StaffNumber) select p).SingleOrDefault(); if (Ucount != null) { sysdb.BindCodes.Remove(Ucount); sysdb.SaveChanges(); } db.SaveChanges(); Push(someone.StaffNumber, user.CompanyId, status); } } } break; case "24": { //技能 StaffSkill someone = (from p in db.StaffSkills where (p.BillNumber == application.BNumber) && (p.BillTypeNumber == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } Push(someone.StaffNumber, user.CompanyId, status); } break; case "25": { //招聘 Recruitments someone = (from p in db.Recruitments where (p.BillCode == application.BNumber) && (p.BillType == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } } break; case "26": { //培训 TrainStart someone = (from p in db.TrainStarts where (p.BillNumber == application.BNumber) && (p.BillTypeNumber == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } } break; case "27": { //合同 Contract someone = (from p in db.Contracts where (p.BillNumber == application.BNumber) && (p.BillTypeNumber == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; //已审 } } break; case "31": { //出差 EvectionApplies someone = (from p in db.EvectionApplies where (p.BillNumber == application.BNumber) && (p.BillType == application.BType) select p).SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } Push(someone.StaffNumber, user.CompanyId, status); } break; case "32": { //请假 VacateApplies someone = (from p in db.VacateApplies where (p.BillNumber == application.BNumber) && (p.BillType == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } Push(someone.StaffNumber, user.CompanyId, status); } break; case "33": { //加班 OvertimeApplies someone = (from p in db.OvertimeApplies where (p.BillNumber == application.BNumber) && (p.BillType == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { OvertimeApplies correct = db.OvertimeApplies.Find(someone.Id); correct.AuditPerson = someone.AuditPerson; correct.AuditStatus = status; correct.AuditStatusName = someone.AuditStatusName; correct.AuditTime = someone.AuditTime; correct.BillNumber = someone.BillNumber; correct.BillType = someone.BillType; correct.Date = someone.Date; correct.EndDateTime = someone.EndDateTime; correct.Hours = someone.Hours; correct.IsRead = someone.IsRead; correct.Reason = someone.Reason; correct.Remark = someone.Remark; correct.StaffNumber = someone.StaffNumber; correct.StartDateTime = someone.StartDateTime; db.SaveChanges(); } Push(someone.StaffNumber, user.CompanyId, status); } break; case "34": { //签卡 ChargeCardApplies someone = (from p in db.ChargeCardApplies where (p.BillNumber == application.BNumber) && (p.BillType == p.BillType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } Push(someone.StaffNumber, user.CompanyId, status); } break; case "35": { //调休 DaysOffApplies someone = (from p in db.DaysOffApplies where (p.BillNumber == application.BNumber) && (p.BillType == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } Push(someone.StaffNumber, user.CompanyId, status); } break; case "36": { //异地 VacateApplies someone = (from p in db.VacateApplies where (p.BillNumber == application.BNumber) && (p.BillType == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } Push(someone.StaffNumber, user.CompanyId, status); } break; case "37": { //值班 OnDutyApplies someone = (from p in db.OnDutyApplies where (p.BillNumber == application.BNumber) && (p.BillType == application.BType) select p).ToList().SingleOrDefault(); if (someone != null) { someone.AuditStatus = status; } Push(someone.StaffNumber, user.CompanyId, status); } break; default: break; } switch (btype) { case "27": { //合同 Contract someone = (from p in db.Contracts where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; //已审 } break; case "21": { //员工 Staff someone = (from p in db.Staffs where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; //已审 } break; case "24": { //技能 StaffSkill someone = (from p in db.StaffSkills where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; } break; case "26": { //培训 TrainStart someone = (from p in db.TrainStarts where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; } break; case "23": { //离职 StaffApplication someone = (from p in db.StaffApplications where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; if (someone.AuditStatus == 3) { //审核通过就在Staff里面把标志置为1 var staffId = (from p in db.Staffs where p.StaffNumber == someone.StaffNumber && p.ArchiveTag != true select p.Number).ToList().FirstOrDefault(); Staff staff = db.Staffs.Find(staffId); staff.ArchiveTag = true; //true 代表离职 //要把信息写到离职档案中 StaffArchive staffArchive = new StaffArchive(); staffArchive.BillTypeNumber = someone.BillTypeNumber; staffArchive.BillTypeName = someone.BillTypeName; staffArchive.StaffNumber = staff.StaffNumber; staffArchive.StaffName = staff.Name; staffArchive.Department = staff.Department; staffArchive.IdenticationNumber = staff.IdentificationNumber; staffArchive.RecordPerson = staff.RecordPerson; staffArchive.RecordTime = staff.RecordTime; staffArchive.BillNumber = Generate.GenerateBillNumber(staffArchive.BillTypeNumber, user.ConnectionString); db.StaffArchives.Add(staffArchive); db.SaveChanges(); } } break; case "22": { //变更 StaffChange someone = (from p in db.StaffChanges where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; if (someone.AuditStatus == 3) { var staffId = (from p in db.Staffs where p.StaffNumber == someone.StaffNumber && p.ArchiveTag != true select p.Number).ToList().FirstOrDefault(); Staff staff = db.Staffs.Find(staffId); staff.Name = someone.Name; staff.Gender = someone.Gender; staff.Department = someone.Department; staff.WorkType = someone.WorkType; staff.Position = someone.Position; staff.IdentificationNumber = someone.IdentificationNumber; staff.Nationality = someone.Nationality; staff.IdentificationNumber = someone.IdentificationNumber; staff.Entrydate = someone.Entrydate; staff.ClassOrder = someone.ClassOrder; staff.ApplyOvertimeSwitch = staff.ApplyOvertimeSwitch; staff.JobState = someone.JobState; staff.AbnormalChange = someone.AbnormalChange; staff.FreeCard = someone.FreeCard; staff.WorkProperty = someone.WorkProperty; staff.WorkType = someone.WorkType; staff.Source = someone.Source; staff.QualifyingPeriodFull = someone.QualifyingPeriodFull; staff.MaritalStatus = someone.MaritalStatus; staff.BirthDate = someone.BirthDate; staff.NativePlace = someone.NativePlace; staff.HealthCondition = someone.HealthCondition; staff.Nation = someone.Nation; staff.Address = someone.Address; staff.VisaOffice = someone.VisaOffice; staff.HomeTelNumber = someone.HomeTelNumber; staff.EducationBackground = someone.EducationBackground; staff.GraduationSchool = someone.GraduationSchool; staff.SchoolMajor = someone.SchoolMajor; staff.Degree = someone.SchoolMajor; staff.Introducer = someone.Introducer; staff.IndividualTelNumber = someone.IndividualTelNumber; staff.BankCardNumber = someone.BankCardNumber; staff.UrgencyContactMan = someone.UrgencyContactMan; staff.UrgencyContactAddress = someone.UrgencyContactAddress; staff.UrgencyContactPhoneNumber = someone.UrgencyContactPhoneNumber; staff.PhysicalCardNumber = someone.PhysicalCardNumber; staff.LeaveDate = someone.LeaveDate; staff.LeaveType = someone.LeaveType; staff.LeaveReason = someone.LeaveReason; staff.AuditStatus = someone.AuditStatus; staff.HealthCondition = someone.HealthCondition; staff.ChangeTime = someone.RecordTime; staff.ChangePerson = someone.RecordPerson; staff.AuditTime = DateTime.Now; staff.AuditPerson = user.Name; staff.Head = someone.Head; staff.LogicCardNumber = someone.LogicCardNumber; staff.HeadType = someone.HeadType; staff.IDCardNumber = someone.IDCardNumber; staff.DeadlineDate = someone.DeadlineDate; } db.SaveChanges(); } break; case "33": { //加班 OvertimeApplies someone = (from p in db.OvertimeApplies where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; Push(someone.StaffNumber, user.CompanyId, status); } break; case "32": { //请假 VacateApplies someone = (from p in db.VacateApplies where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; Push(someone.StaffNumber, user.CompanyId, status); } break; case "34": { //请假 ChargeCardApplies someone = (from p in db.ChargeCardApplies where p.BillNumber == application.BNumber select p).ToList().SingleOrDefault(); someone.AuditStatus = status; Push(someone.StaffNumber, user.CompanyId, status); } break; case "31": { //出差 EvectionApplies someone = (from p in db.EvectionApplies where p.BillNumber == application.BNumber select p).SingleOrDefault(); someone.AuditStatus = status; Push(someone.StaffNumber, user.CompanyId, status); } break; case "35": { //出差 DaysOffApplies someone = (from p in db.DaysOffApplies where p.BillNumber == application.BNumber select p).SingleOrDefault(); someone.AuditStatus = status; Push(someone.StaffNumber, user.CompanyId, status); } break; case "36": { //出差 OffSiteApplies someone = (from p in db.OffSiteApplies where p.BillNumber == application.BNumber select p).SingleOrDefault(); someone.AuditStatus = status; Push(someone.StaffNumber, user.CompanyId, status); } break; case "37": { //出差 OnDutyApplies someone = (from p in db.OnDutyApplies where p.BillNumber == application.BNumber select p).SingleOrDefault(); someone.AuditStatus = status; Push(someone.StaffNumber, user.CompanyId, status); } break; default: break; } db.SaveChanges(); }
public CounterManager() { sysdb = new SystemDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = BonsaiiSystem;User ID = sa;Password = admin123@;"); db = new BonsaiiDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = Bonsaii0000000008;User ID = sa;Password = admin123@;"); ConnStrings = sysdb.Users.Where(p => p.IsRoot == true).Select(p => p.ConnectionString).ToList(); }
/// <summary> /// 处理员工请假情况 /// </summary> /// <param name="CurrentDate">当前时间</param> public void VacateDell(DateTime CurrentDate) { BonsaiiDbContext db = new BonsaiiDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = Bonsaii0000000008;User ID = sa;Password = admin123@;"); SystemDbContext sysDb = new SystemDbContext("Data Source = 211.149.199.42,1433;Initial Catalog = BonsaiiSystem;User ID = sa;Password = admin123@;"); //获取请假表中未读的请假申请,条件为IsRead,当前员工号和,,以列表形式输出; List <VacateApplies> VacateApplies = db.VacateApplies.Where(p => p.IsRead == false && DbFunctions.TruncateTime(p.StartDateTime) <= CurrentDate && DbFunctions.TruncateTime(p.EndDateTime) >= CurrentDate && p.AuditStatus == 3).ToList(); List <EveryDaySignInDate> tmpEveryDay = db.EveryDaySignInDates.Where(p => p.Date == CurrentDate).ToList(); // 遍历请假申请表,从未读的请假申请中获取员工号,请假开始时间,请假结束时间,请假日期; foreach (VacateApplies va in VacateApplies) { //获取请假表中StartDateTime ,EndDateTime ,和CurrentDate做比较 //获取日考勤报表中的当前时间; EveryDaySignInDate everydaysignindate = null; try { everydaysignindate = tmpEveryDay.Where(p => p.Date == CurrentDate && p.StaffNumber == va.StaffNumber).Single(); } catch (Exception e) { Tools.WriteErrorLog(e); return; } List <SignInCardStatus> signincardstatus = db.SignInCardStatus.Where(p1 => p1.StaffNumber == va.StaffNumber && p1.WorkDate == CurrentDate).ToList(); foreach (SignInCardStatus sica in signincardstatus) { //遍历打卡表,获得NeedWorksTime,如果NeedWorksTime在请假表之间,便直接在打卡表中删除此点。 if (sica.NeedWorkTime >= va.StartDateTime.TimeOfDay && sica.NeedWorkTime <= va.EndDateTime.TimeOfDay) { db.SignInCardStatus.Remove(sica); db.SaveChanges(); } //向日考勤表报中写入数据,具体属性是添加请假类型和请假时数。 string BillType = va.BillType; string BillTypeName = null; try { BillTypeName = db.BillProperties.Where(p => p.Type == BillType).Single().TypeName; } catch (Exception e) { Tools.WriteErrorLog(e); return; } // 向日考勤报表中添加请假类型 everydaysignindate.VacateType = BillTypeName; //向日考勤报表中添加请假时数 //根据排班表和请假表中一样员工号获得员工的排班ID。根据排班ID获得Works中的TotalWorkHours // 获取请假表中请假时数 ,与Works表中规定的工作时数做判断,判断是否大于规定工作时间,如果大于则表示请假一整天,将请假时间赋值为规定工作时间 float Hours = CalcuteVacateHours(va.StaffNumber, va.StartDateTime, va.EndDateTime, CurrentDate); everydaysignindate.VacateHours = Hours; } // 保存所做编辑 db.Entry(everydaysignindate).State = EntityState.Modified; db.SaveChanges(); //设置请假表中的IsRead属性。如果请假结束时间 < CurrentDate,那么将IsRead属性设为ture if (va.EndDateTime <= CurrentDate) { va.IsRead = true; } db.Entry(va).State = EntityState.Modified; db.SaveChanges(); } }