Пример #1
0
        public ActionResult DoToFullMemeber([Bind(Include = "staffNr, isPassCheck, beFullAt, checkAt,beFullChecker,checkScore,remark")] FullMemberRecord record)
        {
            ResultMessage msg = new ResultMessage();

            if (record.isPassCheck)
            {
                if (record.beFullAt == null)
                {
                    msg.Content = "请填写转正日期";
                    return(Json(msg));
                }
            }

            IStaffService ss = new StaffService(Settings.Default.db);

            msg = ss.ToFullMember(record);

            // 创建转正记录##User##
            try
            {
                IMessageRecordService mrs = new MessageRecordService(Settings.Default.db);
                mrs.CreateStaffFullMemeberMessage(record.staffNr, (Session["user"] as User).id);
            }
            catch { }
            return(Json(msg));
        }
Пример #2
0
        public ActionResult DoResign([Bind(Include = "resignTypeId, staffNr, resignAt,resignChecker,remark")] ResignRecord record)
        {
            //用户创建员工离职记录:
            //•	离职原因(选择,不可空)
            //•	离职日期(选择,不可空)
            //•	离职批准人(输入,可空)
            //•	备注(输入,可空)
            //如果离职记录创建成功,则将人员在职状态改为:离职

            ResultMessage msg = new ResultMessage();

            IResignRecordService ss = new ResignRecordService(Settings.Default.db);

            msg = ss.Create(record);

            if (msg.Success)
            {
                IStaffService staffSi = new StaffService(Settings.Default.db);
                Staff         staff   = staffSi.FindByNr(record.staffNr);

                staff.workStatus = (int)WorkStatus.OffWork;
                staff.resignAt   = record.resignAt;
                staffSi.Update(staff);
            }

            // 创建离职记录##User##
            try
            {
                IMessageRecordService mrs = new MessageRecordService(Settings.Default.db);
                mrs.CreateStaffResignMessage(record.staffNr, (Session["user"] as User).id);
            }
            catch { }
            return(Json(msg));
        }
Пример #3
0
        public ActionResult UpdateActHour(int id)
        {
            ResultMessage msg          = new ResultMessage();
            double        actHour      = 0;
            double        actExtraHour = 0;

            if (!double.TryParse(Request.Form["actWorkingHourRound"], out actHour))
            {
                msg.Content = "工作日工时必须是数字";
                return(Json(msg));
            }

            // 加班时间可以为空
            // 如果加班为空, 直接写入0
            // 如果不为空, 则所填必须为数字
            if (!string.IsNullOrWhiteSpace(Request.Form["actExtraWorkingHourRound"]) && !double.TryParse(Request.Form["actExtraWorkingHourRound"], out actExtraHour))
            {
                msg.Content = "加班工时必须是数字";
                return(Json(msg));
            }

            bool handled = false;

            if (!bool.TryParse(Request.Form["isExceptionHandled"], out handled))
            {
                msg.Content = "是否处理值非法,请刷新页面重新填写";
                return(Json(msg));
            }

            IAttendanceRecordCalService ss     = new AttendanceRecordCalService(Settings.Default.db);
            AttendanceRecordCal         record = ss.FindById(id);

            string oldHour    = record.actWorkingHour.ToString();
            string oldActHour = record.actExtraWorkingHour.ToString();

            //判断加班类型是否为空, 如果为空, 就返回null
            // 如果做判断,直接使用int.Parse转,会报异常

            int?ExtraWorkType = null;

            if (!string.IsNullOrWhiteSpace(Request.Form["extraWorkType"]))
            {
                ExtraWorkType = int.Parse(Request.Form["extraWorkType"]);
            }

            msg = ss.UpdateActHourById(id, actHour, actExtraHour, handled, Request.Form["remark"], ExtraWorkType);

            string newHour    = actHour.ToString();
            string newActHour = actExtraHour.ToString();

            // 创建调整考勤记录##User##
            try
            {
                IMessageRecordService mrs = new MessageRecordService(Settings.Default.db);
                mrs.CreateStaffUpdateAttHourMessage(record.staffNr, (Session["user"] as User).id, oldHour, newHour, oldActHour, newActHour);
            }
            catch { }

            return(Json(msg));
        }
        /// <summary>
        /// Handle the "login" command
        /// </summary>
        /// <param name="command">Command to parse and execute</param>
        /// <param name="response">Message object to send to the user</param>
        private void HandleLoginCommand(Command command, Message response)
        {
            // Try authentication
            var authUser = AuthenticationService.AuthenticateUser(command.Arguments[0], command.Arguments[1]);

            // Check if authentication succeeded
            if (authUser == null)
            {
                response.Type    = MessageType.Error;
                response.Content = "Wrong credentials.";
                Net.SendMessage(_tcpClient.GetStream(), response);
                return;
            }

            // Check if a client is already connected to this account
            foreach (var user in ConnectedClients.Keys)
            {
                if (user.Username == authUser.Username)
                {
                    response.Type    = MessageType.Error;
                    response.Content = "Another client is already connected to this account";
                    Net.SendMessage(_tcpClient.GetStream(), response);
                    return;
                }
            }

            _user = authUser;

            // Add client to list of connected clients
            ConnectedClients.Add(_user, _tcpClient);

            response.Type    = MessageType.Info;
            response.Content = $"Logged in as {_user.Username}.";
            Net.SendMessage(_tcpClient.GetStream(), response);

            // Gather unread private messages
            List <PrivateMessageRecord> privateMessages = MessageRecordService.GetPrivateMessages(_user);

            //if (privateMessages.Count == 0) return;

            // Build the private messages block
            StringBuilder sb = new StringBuilder();

            sb.AppendLine($"=== You received {privateMessages.Count} private messages during your absence ===");
            foreach (var message in privateMessages)
            {
                sb.AppendLine($"[From: {message.Sender}] - {message.Content}");
            }
            sb.Append("=========================================");

            response.Type    = MessageType.Message;
            response.Content = sb.ToString();
            Net.SendMessage(_tcpClient.GetStream(), response);

            // Clear the list of unread private messages
            MessageRecordService.ClearPrivateMessages(_user);
        }
Пример #5
0
        public JsonResult changeJob(string[] changeJob)
        {
            //string StaffNr = changeJob[0];
            //int CompanyId = Convert.ToInt16(changeJob[1]);
            //int DepartmentId = Convert.ToInt16(changeJob[2]);
            //int JobTitleId = Convert.ToInt16(changeJob[3]);

            IStaffService ss            = new StaffService(Settings.Default.db);
            Staff         staff         = ss.FindByNr(changeJob[0]);
            string        oldCompany    = staff.Company == null ? string.Empty : staff.Company.name;
            string        oldDepartment = staff.Department == null ? string.Empty : staff.Department.name;
            string        oldJobTitle   = staff.JobTitle == null ? string.Empty : staff.JobTitle.name;
            string        oldJobStr     = string.Format("{0}-{1}-{2}", oldCompany, oldDepartment, oldJobTitle);
            bool          JobReturn     = ss.ChangeJob(changeJob);

            ResultMessage msg;

            if (JobReturn)
            {
                msg = new ResultMessage()
                {
                    Success = true
                };
                //将ID返回给前端用来删除
                msg.Content = "调岗成功";

                // 创建调岗记录##User##
                try
                {
                    Staff  newStaff           = ss.FindByNr(changeJob[0]);
                    string newCompany         = newStaff.Company == null ? string.Empty : newStaff.Company.name;
                    string newDepartment      = newStaff.Department == null ? string.Empty : newStaff.Department.name;
                    string newJobTitle        = newStaff.JobTitle == null ? string.Empty : newStaff.JobTitle.name;
                    string newJobStr          = string.Format("{0}-{1}-{2}", newCompany, newDepartment, newJobTitle);
                    IMessageRecordService mrs = new MessageRecordService(Settings.Default.db);

                    mrs.CreateStaffShiftJobMessage(changeJob[0], (Session["user"] as User).id, oldJobStr, newJobStr);
                }
                catch { }
            }
            else
            {
                msg = new ResultMessage()
                {
                    Success = false
                };
                msg.Content = "调岗失败";
            }

            return(Json(msg, JsonRequestBehavior.DenyGet));
        }
Пример #6
0
        public ActionResult Index(string allOrUnread = "unread", int?page = null)
        {
            ViewBag.allOrUnread = allOrUnread;

            MessageRecordSearchModel q = new MessageRecordSearchModel();

            int pageIndex = PagingHelper.GetPageIndex(page);
            IMessageRecordService          mrs     = new MessageRecordService(Settings.Default.db);
            IPagedList <MessageRecordView> records = mrs
                                                     .GetByCateAndAllOrUnread(MessageRecordCatetory.Alert, (allOrUnread == "all" ? true : false))
                                                     .ToPagedList <MessageRecordView>(pageIndex, Settings.Default.pageSize);

            ViewBag.Query = q;

            return(View(records));
        }
Пример #7
0
        private void Sf_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            try
            {
                string propertyName = e.PropertyName;
                if ((!string.IsNullOrEmpty(propertyName)) && Staff.ValueName.ContainsKey(propertyName))
                {
                    Staff  s         = sender as Staff;
                    object oldOValue = s.GetType().GetProperty(e.PropertyName + "_Was").GetValue(s, null);
                    string oldValue  = oldOValue == null ? "" : oldOValue.ToString();
                    object newOValue = s.GetType().GetProperty(e.PropertyName).GetValue(s, null);
                    string newValue  = newOValue == null ? "" : newOValue.ToString();

                    IMessageRecordService mrs = new MessageRecordService(this.context.Connection.ConnectionString);
                    mrs.CreateStaffBasicEdited(s.nr, s.OperatorId, Staff.ValueName[propertyName], oldValue, newValue);
                }
            }
            catch { }
        }
Пример #8
0
        public ActionResult Search([Bind(Include = "StaffNr,StaffNrAct")] MessageRecordSearchModel q)
        {
            string allOrUnread = Request.QueryString["allOrUnread"];

            ViewBag.allOrUnread = allOrUnread;


            int pageIndex = 0;

            int.TryParse(Request.QueryString.Get("page"), out pageIndex);
            pageIndex = PagingHelper.GetPageIndex(pageIndex);

            IMessageRecordService          mrs     = new MessageRecordService(Settings.Default.db);
            IPagedList <MessageRecordView> records = mrs
                                                     .GetByCateAndAllOrUnread(MessageRecordCatetory.Alert, (allOrUnread == "all" ? true : false), q)
                                                     .ToPagedList <MessageRecordView>(pageIndex, Settings.Default.pageSize);

            ViewBag.Query = q;

            return(View("Index", records));
        }
Пример #9
0
        /// <summary>
        /// 分发任务
        /// </summary>
        /// <param name="ts"></param>
        public void Dispatch(TaskSetting ts)
        {
            ITaskRoundService trs       = new TaskRoundService(this.DbString);
            TaskRound         taskRound = null;

            try
            {
                if (ts.LogTaskRound)
                {
                    taskRound = trs.Create(ts.TaskType);
                }
                LogUtil.Logger.Info("获取到任务信息:");
                LogUtil.Logger.Info(ts.TaskType);
                LogUtil.Logger.Info(ts.JsonParameter);
                switch (ts.TaskType)
                {
                case TaskType.CalAtt:
                    CalAttParameter          calAtt = JSONHelper.parse <CalAttParameter>(ts.JsonParameter);
                    IAttendanceRecordService ars    = new AttendanceRecordService(this.DbString);
                    //ars.CalculateAttendRecord(calAtt.AttCalculateDateTime, calAtt.ShiftCodes);
                    ars.CalculateAttendRecordWithExtrawork(calAtt.AttCalculateDateTime);
                    // add send email to queue
                    SendAttWarnEmailMessage(calAtt.AttCalculateDateTime, calAtt.ShiftCodes);
                    // create message record
                    SendAttWarnMsgRecordMessage(calAtt.AttCalculateDateTime, calAtt.ShiftCodes);
                    break;

                case TaskType.SendMail:
                    break;

                case TaskType.SendAttExceptionMail:
                    AttWarnEmailParameter       attWarn = JSONHelper.parse <AttWarnEmailParameter>(ts.JsonParameter);
                    IAttendanceRecordCalService arcs    = new AttendanceRecordCalService(this.DbString);
                    arcs.SendWarnEmail(attWarn.AttWarnDate);
                    break;

                case TaskType.ToFullMemeberWarn:
                    IMessageRecordService mrs = new MessageRecordService(this.DbString);
                    mrs.CreateToFullMemberMessage(ts.TaskCreateAt.Date);
                    break;

                case TaskType.AttExceptionWarn:
                    AttWarnParameter      attWarnP = JSONHelper.parse <AttWarnParameter>(ts.JsonParameter);
                    IMessageRecordService mrss     = new MessageRecordService(this.DbString);
                    mrss.CreateAttExceptionMessage(attWarnP.AttWarnDate);
                    break;

                case TaskType.ReStartSvc:
                    this.IsRestartSvc = true;
                    break;

                default:
                    throw new TaskTypeNotSupportException();
                }
                if (ts.LogTaskRound && taskRound != null)
                {
                    trs.FinishTaskByUniqId(taskRound.uuid, "任务运行成功");
                }
            }
            catch (Exception ex)
            {
                string msg = string.Format("{0}: {1}", ex.Message, ex.StackTrace);

                LogUtil.Logger.Error("任务执行错误:", ex);

                try
                {
                    if (ts.LogTaskRound && taskRound != null)
                    {
                        trs.FinishTaskByUniqId(taskRound.uuid, msg, true);
                    }
                }
                catch
                {
                }
                throw new Exception(msg, ex);
            }
        }