Example #1
0
        public JsonResult Create([Bind(Include = "staffNr,attendanceDate, actWorkingHour, remark, actExtraWorkingHour, extraWorkType")] AttendanceRecordCal arc)
        {
            ResultMessage msg = new ResultMessage();

            try
            {
                msg = DoValidation(arc);

                if (!msg.Success)
                {
                    return(Json(msg, JsonRequestBehavior.AllowGet));
                }
                else
                {
                    IAttendanceRecordCalService arcs = new AttendanceRecordCalService(Settings.Default.db);
                    bool isSucceed = arcs.Create(arc);

                    msg.Success = isSucceed;
                    msg.Content = isSucceed ? "" : "创建失败";

                    return(Json(msg, JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                return(Json(new ResultMessage()
                {
                    Success = false, Content = ex.Message
                }, JsonRequestBehavior.AllowGet));
            }
        }
Example #2
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));
        }
Example #3
0
        // GET: AttendanceRecordCal/Delete/5
        public ActionResult Delete(int id)
        {
            IAttendanceRecordCalService arcs = new AttendanceRecordCalService(Settings.Default.db);

            AttendanceRecordCal record = arcs.FindById(id);

            SetExtraWorkTypeList(record.extraworkType);



            if (record != null)
            {
                AbsenceRecordView   absenceRecord   = new AbsenceRecordService(Settings.Default.db).FindViewByStaffNrAndDate(record.staffNr, record.attendanceDate);
                ExtraWorkRecordView extraWorkRecord = new ExtraWorkRecordService(Settings.Default.db).FindViewByStaffNrAndDate(record.staffNr, record.attendanceDate);

                List <AttendanceRecordDetailView> records = new List <AttendanceRecordDetailView>();
                IAttendanceRecordDetailService    s       = new AttendanceRecordDetailService(Settings.Default.db);
                records = s.GetDetailsViewByStaffAndDateWithExtrawork(record.staffNr, record.attendanceDate);
                ViewData["attendRecords"]   = records;
                ViewData["absenceRecord"]   = absenceRecord;
                ViewData["extraWorkRecord"] = extraWorkRecord;
            }
            else
            {
                SetExtraWorkTypeList(null);
            }


            return(View(record));
        }
Example #4
0
        public ActionResult Index(int?page)
        {
            int pageIndex = PagingHelper.GetPageIndex(page);
            AttendanceRecordCalSearchModel q  = new AttendanceRecordCalSearchModel();
            IAttendanceRecordCalService    ss = new AttendanceRecordCalService(Settings.Default.db);

            IPagedList <AttendanceRecordCalView> records = ss.SearchCalView(q).ToPagedList(pageIndex, Settings.Default.pageSize);

            ViewBag.Query = q;

            SetExtraWorkTypeList(null);

            return(View(records));
        }
Example #5
0
        public ActionResult Search([Bind(Include = "CompanyId,DepartmentId,StaffNr,IsException,IsExceptionHandled,AttendanceDateFrom,AttendanceDateEnd")] AttendanceRecordCalSearchModel q)
        {
            int pageIndex = 0;

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

            IAttendanceRecordCalService          ss      = new AttendanceRecordCalService(Settings.Default.db);
            IPagedList <AttendanceRecordCalView> records = ss.SearchCalView(q).ToPagedList(pageIndex, Settings.Default.pageSize);

            ViewBag.Query = q;

            SetExtraWorkTypeList(null);

            return(View("Index", records));
        }
Example #6
0
        public ActionResult Delete(int id, FormCollection collection)
        {
            ResultMessage msg = new ResultMessage();

            try
            {
                IAttendanceRecordCalService arcs = new AttendanceRecordCalService(Settings.Default.db);
                bool isSucceed = arcs.DeleteById(id);

                msg.Success = isSucceed;
                msg.Content = isSucceed ? "" : "删除失败";

                return(Json(msg, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(new ResultMessage()
                {
                    Success = false, Content = ex.Message
                }, JsonRequestBehavior.AllowGet));
            }
        }
Example #7
0
        public ActionResult ExceptionList()
        {
            IAttendanceRecordCalService ss = new AttendanceRecordCalService(Settings.Default.db);
            DateTime startDate             = DateTime.Now.Date.AddDays(-20);
            DateTime endDate = DateTime.Now.Date;

            if (!string.IsNullOrEmpty(Request.QueryString["startDate"]))
            {
                DateTime.TryParse(Request.QueryString["startDate"], out startDate);
            }
            if (!string.IsNullOrEmpty(Request.QueryString["endDate"]))
            {
                DateTime.TryParse(Request.QueryString["endDate"], out endDate);
            }


            List <AttendanceRecordCalExceptionView> records = ss.GetCalExceptionHandleList(startDate, endDate);

            for (var d = startDate; d <= endDate; d = d.AddDays(1))
            {
                if (records.Where(s => s.attendanceDate.Equals(d)).FirstOrDefault() == null)
                {
                    records.Add(new AttendanceRecordCalExceptionView()
                    {
                        attendanceDate          = d,
                        isExceptionHandledCount = 0
                    });
                }
            }
            records = records.OrderByDescending(s => s.attendanceDate).ToList();

            ViewBag.startDate = startDate.ToString("yyyy-MM-dd");
            ViewBag.endDate   = endDate.ToString("yyyy-MM-dd");

            return(View(records));
        }
Example #8
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);
            }
        }