Exemplo n.º 1
0
        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("");
            }
        }
Exemplo n.º 2
0
        /// <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("");
            }
        }
Exemplo n.º 3
0
        //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();
        }
Exemplo n.º 4
0
        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);
            }
        }
Exemplo n.º 5
0
        /// <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");
        }
Exemplo n.º 6
0
        // 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));
        }
Exemplo n.º 7
0
        /// <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"));
        }
Exemplo n.º 8
0
 /// <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;
             }
         }
     }
 }
Exemplo n.º 9
0
        /// <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);
        }
Exemplo n.º 10
0
        //生成每天所需要的打卡表和日考勤报表
        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);
                }
            }
        }
Exemplo n.º 11
0
        //如果审核通过 执行这段代码
        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();
        }
Exemplo n.º 12
0
        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"));
        }
Exemplo n.º 13
0
        //获取部门信息的列表
        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"));
        }
Exemplo n.º 14
0
        //无参数构造函数
        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;
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        //如果审核不通过就执行这个函数
        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);
            }
        }
Exemplo n.º 17
0
 public Program1()
 {
     db = new BonsaiiDbContext("Data source = 211.149.199.42,1433;initial catalog = bonsaii0000000008;user id = sa;password = admin123@;");
 }
Exemplo n.º 18
0
        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();
        }
Exemplo n.º 19
0
 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();
 }
Exemplo n.º 20
0
        /// <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();
            }
        }