Пример #1
0
        /// <summary>
        /// 获取需要情况的任务库班组id
        /// </summary>
        /// <param name="group"></param>
        /// <returns></returns>
        private void jobGroup(List <WorkGroupSetEntity> group)
        {
            WorkmeetingBLL meet     = new WorkmeetingBLL();
            var            deptList = new List <string>();
            var            newStr   = string.Join(",", group.OrderBy(x => x.departmentid));

            foreach (var newGroup in group)
            {
                //获取之前绑定
                var oldGroup = GetWorkOrderGroup(newGroup.departmentid);
                var oldStr   = string.Join(",", oldGroup.OrderBy(x => x.departmentid));
                //如果没有差别不需要清理任务库
                if (newStr == oldStr)
                {
                    break;
                }
                foreach (var old in oldGroup)
                {
                    if (!deptList.Contains(old.departmentid))
                    {
                        deptList.Add(old.departmentid);
                    }
                }
                if (!deptList.Contains(newGroup.departmentid))
                {
                    deptList.Add(newGroup.departmentid);
                }
            }
            //清理绑定班组数据库

            meet.DeleteJobTemplateByDept(deptList);
        }
Пример #2
0
        public ActionResult GetAttendanceExportData3(string queryJson)
        {
            var user       = OperatorProvider.Provider.Current();
            var queryParam = queryJson.ToJObject();
            var bll        = new WorkmeetingBLL();
            var deptid     = string.Empty;
            var name       = string.Empty;
            var nowTime    = DateTime.Now;
            var start      = new DateTime(nowTime.Year, nowTime.Month, 1);
            var end        = start.AddMonths(1);

            //deptid
            if (!queryParam["deptid"].IsEmpty())
            {
                string pdeptid = queryParam["deptid"].ToString();
                var    tree    = new DepartmentBLL().GetSubDepartments(pdeptid, "");
                deptid = string.Join(",", tree.Select(x => x.DepartmentId));
            }
            //name deptname
            if (!queryParam["name"].IsEmpty())
            {
                name = queryParam["name"].ToString();
            }
            // start
            if (!queryParam["Start"].IsEmpty())
            {
                start = Convert.ToDateTime(queryParam["Start"].ToString());
            }
            //end
            if (!queryParam["End"].IsEmpty())
            {
                end = Convert.ToDateTime(queryParam["End"].ToString());
            }
            var isMenu = getMenu();
            //取出数据源
            int       total       = 0;
            DataTable exportTable = bll.GetAttendanceExportData3(name, deptid, start, end, isMenu);
            //设置导出格式
            ExcelConfig excelconfig = new ExcelConfig();

            //excelconfig.Title = "违章信息";
            //excelconfig.TitleFont = "微软雅黑";
            //excelconfig.TitlePoint = 25;
            excelconfig.HeadHeight      = 50;
            excelconfig.HeadPoint       = 12;
            excelconfig.HeadFont        = "宋体";
            excelconfig.FileName        = "考情统计导出.xls";
            excelconfig.IsAllSizeColumn = true;
            //每一列的设置,没有设置的列信息,系统将按datatable中的列名导出
            List <ColumnEntity> listColumnEntity = new List <ColumnEntity>();

            excelconfig.ColumnEntity = listColumnEntity;
            //ColumnEntity columnentity = new ColumnEntity();
            //excelconfig.ColumnEntity.Add(new ColumnEntity() { Column = "jobcontent", ExcelColumn = "作业内容", Width = 12, Alignment = "fill" });
            //excelconfig.ColumnEntity.Add(new ColumnEntity() { Column = "workquarters", ExcelColumn = "作业岗位", Width = 15 });

            //调用导出方法
            ExcelHelper.ExcelDownload(exportTable, excelconfig);
            return(Content(null));
        }
Пример #3
0
        public JsonResult GetMonthAttendance2(string userid, int year, int month)
        {
            var bll  = new WorkmeetingBLL();
            var data = bll.GetMonthAttendance2(userid, new DateTime(year, month, 1), new DateTime(year, month, 1).AddMonths(1).AddMinutes(-1));

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public JsonResult GetMonthAttendance(string userid, int year, int month)
        {
            var bll  = new WorkmeetingBLL();
            var data = bll.GetMonthAttendance(userid, year, month);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Пример #5
0
        public ContentResult GetAttendance(string id, DateTime date)
        {
            var bll   = new WorkmeetingBLL();
            var state = bll.GetAttendance(id, date);

            return(Content(state));
        }
Пример #6
0
        public ActionResult GetMore1()
        {
            WorkmeetingBLL workmeetingbll = new WorkmeetingBLL();
            var            user           = OperatorProvider.Provider.Current();
            var            data           = workmeetingbll.GetOverView(user.DeptId);
            var            result         = data.Select(x => new WorkmeetingEntity()
            {
                MeetingId = x.FullName, MeetingPerson = ((decimal)x.Layer.Value / x.SortCode.Value).ToString("p")
            }).ToList();
            DataTable dt = new DataTable();

            dt.Columns.Add("Bz");
            dt.Columns.Add("Num");
            foreach (WorkmeetingEntity w in result)
            {
                DataRow row = dt.NewRow();
                row[0] = w.MeetingId;
                row[1] = w.MeetingPerson;
                dt.Rows.Add(row);
            }

            var JsonData = new
            {
                rows = dt
            };

            return(Content(JsonData.ToJson()));
        }
Пример #7
0
        public JsonResult GetMeetings(string deptid)
        {
            var dept           = new DepartmentBLL().GetAuthorizationDepartment(deptid);
            var depts          = new DepartmentBLL().GetSubDepartments(dept.DepartmentId, "班组");
            var date           = DateTime.Today;
            var workorder      = new WorkOrderBLL();
            var num1           = 0;
            var num2           = 0;
            var num3           = 0;
            var num4           = 0;
            var workmeetingbll = new WorkmeetingBLL();
            var d         = new DateTime(date.Year, date.Month, 1);
            var list      = new List <string>();
            var meetings1 = new List <MeetingModel>();
            var meetings2 = new List <MeetingModel>();

            while (d <= date)
            {
                foreach (var item in depts)
                {
                    var ss = workorder.GetWorkOrderTotal(d, item.DepartmentId);
                    if (ss[0] != "无")
                    {
                        if (d == date)
                        {
                            num1++;
                        }
                        var meeting = workmeetingbll.HasMeeting(item.DepartmentId, d);
                        if (string.IsNullOrEmpty(meeting.MeetingId) || string.IsNullOrEmpty(meeting.OtherMeetingId))
                        {
                            list.Add(item.DepartmentId);
                            if (d == date)
                            {
                                num2++;
                            }
                            num4++;
                            meetings2.Add(new MeetingModel()
                            {
                                DeptName = item.FullName, MeetingDate = d, MeetingName = ss[0]
                            });
                        }
                        if (d == date)
                        {
                            meetings1.Add(new MeetingModel()
                            {
                                DeptName = item.FullName, Meeting1 = string.IsNullOrEmpty(meeting.MeetingId) ? "未开" : "已开", Meeting2 = string.IsNullOrEmpty(meeting.OtherMeetingId) ? "未开" : "已开"
                            });
                        }
                    }
                }
                d = d.AddDays(1);
            }
            num3 = list.Distinct().Count();


            return(Json(new { num1, num2, num3, num4, meetings1, meetings2 }, JsonRequestBehavior.AllowGet));
        }
Пример #8
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="fc"></param>
        /// <returns></returns>
        public ActionResult Index(FormCollection fc)
        {
            var from = fc.Get("from");
            var to   = fc.Get("to");
            var name = fc.Get("name");

            var dfrom = string.IsNullOrEmpty(from) ? null : (DateTime?)DateTime.Parse(from);
            var dto   = string.IsNullOrEmpty(to) ? null : (DateTime?)DateTime.Parse(to);

            var user = OperatorProvider.Provider.Current();
            var bll1 = new WorkmeetingBLL();
            var cnt1 = bll1.GetIndex(user.DeptId, dfrom, dto, name);

            ViewData["item2"] = cnt1;

            var bll2 = new ActivityBLL();
            var cnt2 = bll2.GetIndex(user.DeptId, dfrom, dto, name);

            ViewData["item3"] = cnt2;

            var bll3 = new ToolBorrowBLL();
            var cnt3 = bll3.GetList(user.UserId, user.DeptId, dfrom, dto, name);

            ViewData["item4"] = cnt3.Count();

            var bll4 = new DrugBLL();
            int cnt4 = bll4.GetOutListCount(user.DeptId, dfrom, dto, name);

            ViewData["item5"] = cnt4;

            int total = 0;
            var bll5  = new LllegalBLL();
            int cnt5  = bll5.GetList(user.DeptId, "", "", dfrom, dto, 1, 12, out total).Count();

            ViewData["item6"] = total;

            int total1 = 0;
            var bll6   = new NoticeBLL();
            int cnt6   = bll6.GetAllNotice(user.DeptId, dfrom, dto, name, 1, 12, out total1).Count();

            ViewData["item7"] = total1;

            int total2 = 0;
            var bll7   = new EmergencyBLL();
            int cnt7   = bll7.EmergencyReportGetPageList(user.DeptId, name, dfrom, dto, 1, 12, out total2).Count();

            ViewData["item8"] = total2;

            ViewData["from"] = from;
            ViewData["to"]   = to;
            ViewData["name"] = name;

            return(View());
        }
Пример #9
0
        public JsonResult GetAttendanceData2(string from, string to)
        {
            var dfrom  = DateTime.Parse(from);
            var dto    = DateTime.Parse(to);
            var user   = OperatorProvider.Provider.Current();
            var bll    = new WorkmeetingBLL();
            var isMenu = getMenu();
            var data   = bll.GetAttendanceData2(user.DeptId, dfrom, dto, isMenu);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Пример #10
0
        public ViewResult Duty(FormCollection fc)
        {
            var year  = int.Parse(fc.Get("year") ?? DateTime.Now.Year.ToString());
            var month = int.Parse(fc.Get("month") ?? DateTime.Now.Month.ToString());
            var date  = new DateTime(year, month, 1);

            date = date.AddDays(-date.Day);
            date = date.AddDays(-(int)date.DayOfWeek);
            var years = new List <dynamic>();

            for (int i = 0; i < 10; i++)
            {
                years.Add(new { value = (DateTime.Now.Year - i).ToString(), text = (DateTime.Now.Year - i).ToString() });
            }
            var months = new List <dynamic>();

            for (int i = 1; i <= 12; i++)
            {
                months.Add(new { value = i.ToString(), text = (i + "月") });
            }

            ViewData["date"]         = date;
            ViewData["currentmonth"] = month;
            ViewData["year"]         = new SelectList(years, "value", "text", year);
            ViewData["month"]        = new SelectList(months, "value", "text", month);

            var     user    = OperatorProvider.Provider.Current();
            UserBLL userBLL = new UserBLL();
            var     users   = userBLL.GetDeptUsers(user.DeptId).ToList();

            ViewData["users"] = users;

            var from = DateTime.Today.AddDays((1 - DateTime.Today.Day));

            from = from.AddDays(-GetDay(from.DayOfWeek));
            var to   = from.AddDays(42);
            var bll  = new WorkmeetingBLL();
            var data = bll.GetDutyData(user.DeptId, from, to);
            var list = new List <string>();
            var d    = from;

            while (d < to)
            {
                list.Add(string.Join(",", data.Where(x => x.UnSignDate.Ticks == d.Ticks).Select(x => x.UserName)));

                d = d.AddDays(1);
            }

            return(View(list));
        }
Пример #11
0
        public ViewResult Index(string year, string month)
        {
            if (string.IsNullOrEmpty(year))
            {
                year = DateTime.Now.Year.ToString();
            }
            if (string.IsNullOrEmpty(month))
            {
                month = DateTime.Now.Month.ToString();
            }

            var years = new List <dynamic>();

            for (int i = 0; i < 10; i++)
            {
                years.Add(new { value = (DateTime.Now.Year - i).ToString(), text = (DateTime.Now.Year - i).ToString() });
            }
            var months = new List <dynamic>();

            //for (int i = 1; i <= 12; i++)
            //{
            //    months.Add(new { value = i.ToString(), text = (i + "月") });
            //}
            months.Add(new { value = 1, text = ("一月") });
            months.Add(new { value = 2, text = ("二月") });
            months.Add(new { value = 3, text = ("三月") });
            months.Add(new { value = 4, text = ("四月") });
            months.Add(new { value = 5, text = ("五月") });
            months.Add(new { value = 6, text = ("六月") });
            months.Add(new { value = 7, text = ("七月") });
            months.Add(new { value = 8, text = ("八月") });
            months.Add(new { value = 9, text = ("九月") });
            months.Add(new { value = 10, text = ("十月") });
            months.Add(new { value = 11, text = ("十一月") });
            months.Add(new { value = 12, text = ("十二月") });

            ViewData["year"]  = new SelectList(years, "value", "text", year);
            ViewData["month"] = new SelectList(months, "value", "text", month);

            var user = OperatorProvider.Provider.Current();
            var bll  = new WorkmeetingBLL();
            //var data = bll.GetAttendanceData2(user.DeptId, new DateTime(int.Parse(year), int.Parse(month), 1), new DateTime(int.Parse(year), int.Parse(month), 1).AddMonths(1).AddMinutes(-1));
            var data = bll.GetAttendanceData(user.DeptId, int.Parse(year), int.Parse(month));

            return(View(data));
        }
Пример #12
0
        public JsonResult PostUserState(string id, int year, int month, int day, DayAttendanceEntity model)
        {
            var success = true;
            var message = string.Empty;
            var bll     = new WorkmeetingBLL();

            try
            {
                bll.PostUserState(id, new DateTime(year, month, day), model);
            }
            catch (Exception ex)
            {
                success = false;
                message = HttpUtility.JavaScriptStringEncode(ex.Message);
            }

            return(Json(new { success, message }));
        }
Пример #13
0
        public JsonResult GetDayAttendance2(int year, int month, int day, string id)
        {
            var success = true;
            var message = string.Empty;
            var bll     = new WorkmeetingBLL();
            var data    = default(DayAttendanceEntity);

            try
            {
                data = bll.GetDayAttendance4(id, new DateTime(year, month, day));
            }
            catch (Exception ex)
            {
                success = false;
                message = HttpUtility.JavaScriptStringEncode(ex.Message);
            }

            return(Json(new { success, message, data }, JsonRequestBehavior.AllowGet));
        }
Пример #14
0
        public ActionResult GetListDetailJson(string queryJson)
        {
            var watch      = CommonHelper.TimerStart();
            var bll        = new WorkmeetingBLL();
            var deptid     = string.Empty;
            var userId     = string.Empty;
            var nowTime    = DateTime.Now;
            var start      = new DateTime(nowTime.Year, nowTime.Month, 1);
            var end        = start.AddMonths(1);
            var queryParam = queryJson.ToJObject();

            //deptid
            if (!queryParam["deptId"].IsEmpty())
            {
                string pdeptid = queryParam["deptId"].ToString();
                var    tree    = new DepartmentBLL().GetSubDepartments(pdeptid, "");
                deptid = string.Join(",", tree.Select(x => x.DepartmentId));
            }
            //name deptname
            if (!queryParam["userId"].IsEmpty())
            {
                userId = queryParam["userId"].ToString();
            }
            // start
            if (!queryParam["Start"].IsEmpty())
            {
                start = Convert.ToDateTime(queryParam["Start"].ToString());
            }
            //end
            if (!queryParam["End"].IsEmpty())
            {
                end = Convert.ToDateTime(queryParam["End"].ToString());
            }
            var isMenu   = getMenu();
            var data     = bll.GetAttendanceUserData3(userId, deptid, start, end, isMenu);
            var JsonData = new
            {
                rows     = data,
                costtime = CommonHelper.TimerEnd(watch)
            };

            return(Content(JsonData.ToJson()));
        }
Пример #15
0
        public ActionResult GetListJson(Pagination pagination, string queryJson)
        {
            var     watch    = CommonHelper.TimerStart();
            var     bll      = new WorkmeetingBLL();
            decimal total    = 0;
            int     records  = 0;
            var     isMenu   = getMenu();
            var     data     = bll.GetAttendanceData3(pagination, queryJson, out total, out records, isMenu);
            var     JsonData = new
            {
                rows     = data,
                total    = total,
                page     = pagination.page,
                records  = records,
                costtime = CommonHelper.TimerEnd(watch)
            };

            return(Content(JsonData.ToJson()));
        }
Пример #16
0
        public JsonResult GetDutyPersons(DateTime date)
        {
            var success = true;
            var message = string.Empty;
            var data    = default(List <UnSignRecordEntity>);
            var bll     = new WorkmeetingBLL();

            var user = OperatorProvider.Provider.Current();

            try
            {
                data = bll.GetDutyPerson(user.DeptId, date);
            }
            catch (Exception ex)
            {
                success = false;
                message = HttpUtility.JavaScriptStringEncode(ex.Message);
            }

            return(Json(new { success, message, data }, JsonRequestBehavior.AllowGet));
        }
Пример #17
0
        public JsonResult GetDutyData(string deptid)
        {
            var from = DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek + 1);

            if (DateTime.Today.DayOfWeek == 0)
            {
                from = DateTime.Today.AddDays(-7);
            }
            var to   = from.AddDays(7);
            var bll  = new WorkmeetingBLL();
            var date = from;
            var data = new List <object>();

            while (date < to)
            {
                var d = bll.GetDutyPerson(deptid, date);
                data.Add(new { Date = date.Date, Day = date.ToString("ddd"), Data = d == null ? string.Empty : string.Join(",", d.Select(x => x.UserName).Distinct()) });
                date = date.AddDays(1);
            }
            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Пример #18
0
        public JsonResult GetDutyPerson(DateTime date)
        {
            var success = true;
            var message = string.Empty;
            var data    = string.Empty;
            var bll     = new WorkmeetingBLL();

            var user = OperatorProvider.Provider.Current();

            try
            {
                var persons = bll.GetDutyPerson(user.DeptId, date);
                data = persons == null ? string.Empty : string.Join(",", persons.Select(x => x.UserName).Distinct());
            }
            catch (Exception ex)
            {
                success = false;
                message = HttpUtility.JavaScriptStringEncode(ex.Message);
            }

            return(Json(new { success, message, data }, JsonRequestBehavior.AllowGet));
        }
Пример #19
0
        public JsonResult PostDutyPerson(FormCollection fc)
        {
            var success = true;
            var message = string.Empty;
            var data    = string.Empty;

            var json  = fc.Get("data");
            var model = Newtonsoft.Json.JsonConvert.DeserializeObject <WorkmeetingEntity>(json);

            var user = OperatorProvider.Provider.Current();
            var bll  = new WorkmeetingBLL();

            try
            {
                model.GroupId = user.DeptId;
                model.DutyPerson.ForEach(x =>
                {
                    x.UnSignRecordId = Guid.NewGuid().ToString();
                    x.UnSignDate     = model.MeetingStartTime.Date;
                    //x.StartTime = x.ReasonRemark == "白班" ? new DateTime(model.MeetingStartTime.Year, model.MeetingStartTime.Month, model.MeetingStartTime.Day, 8, 0, 0) : new DateTime(model.MeetingStartTime.Year, model.MeetingStartTime.Month, model.MeetingStartTime.Day, 18, 0, 0)
                });

                bll.PostDutyPerson(new List <WorkmeetingEntity>()
                {
                    model
                });
                data = model.DutyPerson == null ? string.Empty : string.Join(",", model.DutyPerson.Select(x => x.UserName).Distinct());
                //data = bll.GetDutyPerson(id);
            }
            catch (Exception ex)
            {
                success = false;
                message = HttpUtility.JavaScriptStringEncode(ex.Message);
            }

            return(Json(new { success, message, data }, JsonRequestBehavior.AllowGet));
        }
        public JsonResult Edit(string id, DepartmentTaskEntity model)
        {
            var user    = OperatorProvider.Provider.Current();
            var success = true;
            var message = "保存成功!";

            try
            {
                if (string.IsNullOrEmpty(id))
                {
                    model.TaskId       = Guid.NewGuid().ToString();
                    model.Status       = "未开始";
                    model.CreateUserId = model.ModifyUserId = user.UserId;
                    model.CreateUser   = model.ModifyUser = user.UserName;
                    model.CreateTime   = model.ModifyTime = DateTime.Now;
                    model.CreateDeptId = user.DeptId;
                    model.CreateDept   = user.DeptName;
                }
                else
                {
                    model.TaskId       = id;
                    model.ModifyTime   = DateTime.Now;
                    model.ModifyUserId = user.UserId;
                    model.ModifyUser   = user.UserName;
                }

                if (model.SubTasks == null)
                {
                    model.SubTasks = new List <DepartmentTaskEntity>();
                }
                foreach (var item in model.SubTasks)
                {
                    item.CreateUserId = item.ModifyUserId = user.UserId;
                    item.CreateUser   = item.ModifyUser = user.UserName;
                    item.CreateTime   = item.ModifyTime = DateTime.Now;
                    item.CreateDeptId = user.DeptId;
                    item.CreateDept   = user.DeptName;
                    item.ParentTaskId = model.TaskId;
                    if (item.Status != "已完成" && item.Status != "已取消")
                    {
                        item.Status = "未开始";
                    }
                }

                var bll = new DepartmentTaskBLL();
                bll.Edit(model);

                WorkmeetingBLL meetBll      = new WorkmeetingBLL();
                var            deptbll      = new DepartmentBLL();
                var            trainingtype = Config.GetValue("TrainingType");
                foreach (var item in model.SubTasks)
                {
                    if (item.IsPublish == true)
                    {
                        continue;
                    }

                    var dept = deptbll.GetEntity(item.DutyDepartmentId);
                    if (dept == null)
                    {
                        continue;
                    }
                    if (dept.Nature != "班组")
                    {
                        continue;
                    }

                    var job = new MeetingJobEntity();
                    job.JobId                 = Guid.NewGuid().ToString();
                    job.CreateDate            = DateTime.Now;
                    job.CreateUserId          = user.UserId;
                    job.GroupId               = dept.DepartmentId;
                    job.Relation              = new MeetingAndJobEntity();
                    job.Relation.MeetingJobId = Guid.NewGuid().ToString();
                    job.Relation.JobId        = job.JobId;
                    job.IsFinished            = job.Relation.IsFinished = "undo";
                    job.Relation.JobUserId    = item.DutyUserId;
                    job.Relation.JobUser      = item.DutyUser;
                    job.Job               = item.Content;
                    job.TemplateId        = item.TaskId;
                    job.StartTime         = DateTime.Parse(item.StartDate.Value.ToString("yyyy/MM/dd") + " 08:30");
                    job.EndTime           = DateTime.Parse(item.EndDate.Value.ToString("yyyy/MM/dd") + " 17:30");
                    job.RiskLevel         = "低风险";
                    job.TaskType          = "管理任务";
                    job.Relation.JobUsers = new List <JobUserEntity>()
                    {
                        new JobUserEntity()
                        {
                            UserId = item.DutyUserId, UserName = item.DutyUser, JobUserId = Guid.NewGuid().ToString(), JobType = "ischecker", CreateDate = DateTime.Now, MeetingJobId = job.Relation.MeetingJobId
                        }
                    };
                    if (job.DangerousList == null)
                    {
                        job.DangerousList = new List <JobDangerousEntity>();
                    }

                    job = meetBll.PostJob(job);
                    if (string.IsNullOrEmpty(job.Relation.StartMeetingId))
                    {
                        message = "任务已分配至班前会,等待下发。";
                    }
                    else
                    {
                        var meeting = meetBll.GetEntity(job.Relation.StartMeetingId);
                        if (meeting.IsOver)
                        {
                            message = "任务已下发。";
                        }
                        else
                        {
                            message = "任务已分配至班前会,等待下发。";
                        }
                    }

                    if (!string.IsNullOrEmpty(job.Relation.StartMeetingId))
                    {
                        var meeting = meetBll.GetDetail(job.Relation.StartMeetingId);
                        if (meeting != null && meeting.IsOver && job.NeedTrain)
                        {
                            if (trainingtype == "人身风险预控")
                            {
                                var training = new HumanDangerTrainingEntity()
                                {
                                    TrainingId = Guid.NewGuid().ToString(), TrainingTask = job.Job, CreateTime = DateTime.Now, CreateUserId = user.UserId, MeetingJobId = job.Relation.MeetingJobId, DeptId = job.GroupId, TrainingPlace = job.JobAddr, No = job.TicketCode
                                };
                                if (!string.IsNullOrEmpty(job.TemplateId))
                                {
                                    training.HumanDangerId = job.TemplateId;
                                }
                                training.TrainingUsers = job.Relation.JobUsers.Select(x => new TrainingUserEntity()
                                {
                                    TrainingUserId = Guid.NewGuid().ToString(), UserId = x.UserId, UserName = x.UserName, TrainingRole = x.JobType == "ischecker" ? 1 : 0
                                }).ToList();
                                new HumanDangerTrainingBLL().Add(training);
                            }
                            else
                            {
                                var dangerbll  = new DangerBLL();
                                var messagebll = new MessageBLL();

                                var danger = dangerbll.Save(job);
                                if (danger != null)
                                {
                                    messagebll.SendMessage("危险预知训练", danger.Id);
                                }
                            }
                        }
                    }
                    var msgbll = new MessageBLL();
                    msgbll.SendMessage("工作提示", job.Relation.MeetingJobId);

                    item.IsPublish = true;
                }

                bll.Publish(model.SubTasks.Where(x => x.IsPublish == true).ToList());
            }
            catch (Exception ex)
            {
                success = false;
                message = ex.Message;
            }
            return(Json(new AjaxResult()
            {
                type = success ? ResultType.success : ResultType.error, message = message
            }));
        }
Пример #21
0
        public ContentResult Export(int year, int month)
        {
            var date  = new DateTime(year, month, 1);
            var book  = new Workbook();
            var sheet = book.Worksheets[0];

            sheet.Name = "考勤统计";
            sheet.Cells[0, 0].PutValue("序号");
            sheet.Cells.SetColumnWidthPixel(0, 40);
            var style = sheet.Cells[0, 0].GetStyle();

            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[0, 0].SetStyle(style);

            sheet.Cells.Merge(0, 0, 2, 1);
            sheet.Cells[0, 1].PutValue("姓名");
            sheet.Cells.SetColumnWidthPixel(1, 60);
            style = sheet.Cells[0, 1].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[0, 1].SetStyle(style);

            sheet.Cells.Merge(0, 1, 2, 1);
            sheet.Cells[0, 2].PutValue("日期及出缺勤情况");
            style = sheet.Cells[0, 2].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[0, 2].SetStyle(style);

            var i = 0;

            while (date.AddDays(i).Month == date.Month)
            {
                i++;

                sheet.Cells[1, 1 + i].PutValue(i);
                sheet.Cells.SetColumnWidthPixel(1 + i, 30);
            }
            sheet.Cells.Merge(0, 2, 1, i);
            sheet.Cells[0, 1 + i + 1].PutValue("缺勤");
            sheet.Cells.SetColumnWidthPixel(1 + i + 1, 60);
            style = sheet.Cells[0, 1 + i + 1].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[0, 1 + i + 1].SetStyle(style);
            sheet.Cells.Merge(0, 1 + i + 1, 1, 6);

            sheet.Cells[1, 1 + i + 1].PutValue("病假");
            style = sheet.Cells[1, 1 + i + 1].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[1, 1 + i + 1].SetStyle(style);

            sheet.Cells[1, 1 + i + 2].PutValue("事假");
            style = sheet.Cells[1, 1 + i + 2].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[1, 1 + i + 2].SetStyle(style);

            sheet.Cells[1, 1 + i + 3].PutValue("调休");
            style = sheet.Cells[1, 1 + i + 3].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[1, 1 + i + 3].SetStyle(style);

            sheet.Cells[1, 1 + i + 4].PutValue("公休");
            style = sheet.Cells[1, 1 + i + 4].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[1, 1 + i + 4].SetStyle(style);

            sheet.Cells[1, 1 + i + 5].PutValue("出差");
            style = sheet.Cells[1, 1 + i + 5].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[1, 1 + i + 5].SetStyle(style);

            sheet.Cells[1, 1 + i + 6].PutValue("其他");
            style = sheet.Cells[1, 1 + i + 6].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            sheet.Cells[1, 1 + i + 6].SetStyle(style);

            var user = OperatorProvider.Provider.Current();
            var bll  = new WorkmeetingBLL();
            var data = bll.GetSigninData(user.DeptId, year, month);

            for (int j = 0; j < data.Count; j++)
            {
                sheet.Cells[j + 2, 0].PutValue(j + 1);
                sheet.Cells[j + 2, 1].PutValue(data[j].UserName);

                var cnt1 = 0d;
                var cnt2 = 0d;
                var cnt3 = 0d;
                var cnt4 = 0d;
                var cnt5 = 0d;
                var cnt6 = 0d;

                var m = 0;
                while (date.AddDays(m).Month == date.Month)
                {
                    var signins = data[j].Signins.Where(x => x.MeetingStartTime > date.AddDays(m) && x.MeetingStartTime < date.AddDays(m + 1)).ToList();

                    if (signins.Count > 0)
                    {
                        var g = signins.GroupBy(x => new { x.MeetingId, x.MeetingStartTime }).OrderByDescending(x => x.Key.MeetingStartTime).First();
                        switch (g.Count())
                        {
                        case 1:
                            if (g.First().IsSignin)
                            {
                                sheet.Cells[j + 2, m + 2].PutValue("/");
                            }
                            else
                            {
                                sheet.Cells[j + 2, m + 2].PutValue(g.First().Reason);
                                switch (g.First().Reason)
                                {
                                case "病假":
                                    cnt1 = cnt1 + 0.5;
                                    break;

                                case "事假":
                                    cnt2 = cnt2 + 0.5;
                                    break;

                                case "调休":
                                    cnt3 = cnt3 + 0.5;
                                    break;

                                case "公休":
                                    cnt4 = cnt4 + 0.5;
                                    break;

                                case "出差":
                                    cnt5 = cnt5 + 0.5;
                                    break;

                                case "其他":
                                    cnt6 = cnt6 + 0.5;
                                    break;

                                default:
                                    break;
                                }
                            }
                            break;

                        case 2:
                            var start = g.OrderBy(x => x.CreateDate).First();
                            var end   = g.OrderBy(x => x.CreateDate).Last();
                            switch (g.Count(x => x.IsSignin))
                            {
                            case 0:
                                sheet.Cells[j + 2, m + 2].PutValue(start.Reason);
                                switch (start.Reason)
                                {
                                case "病假":
                                    cnt1 = cnt1 + 0.5;
                                    break;

                                case "事假":
                                    cnt2 = cnt2 + 0.5;
                                    break;

                                case "调休":
                                    cnt3 = cnt3 + 0.5;
                                    break;

                                case "公休":
                                    cnt4 = cnt4 + 0.5;
                                    break;

                                case "出差":
                                    cnt5 = cnt5 + 0.5;
                                    break;

                                case "其他":
                                    cnt6 = cnt6 + 0.5;
                                    break;

                                default:
                                    break;
                                }
                                switch (end.Reason)
                                {
                                case "病假":
                                    cnt1 = cnt1 + 0.5;
                                    break;

                                case "事假":
                                    cnt2 = cnt2 + 0.5;
                                    break;

                                case "调休":
                                    cnt3 = cnt3 + 0.5;
                                    break;

                                case "公休":
                                    cnt4 = cnt4 + 0.5;
                                    break;

                                case "出差":
                                    cnt5 = cnt5 + 0.5;
                                    break;

                                case "其他":
                                    cnt6 = cnt6 + 0.5;
                                    break;

                                default:
                                    break;
                                }
                                break;

                            case 1:
                                var reason = start.IsSignin ? end.Reason : start.Reason;
                                sheet.Cells[j + 2, m + 2].PutValue(reason);
                                switch (reason)
                                {
                                case "病假":
                                    cnt1 = cnt1 + 0.5;
                                    break;

                                case "事假":
                                    cnt2 = cnt2 + 0.5;
                                    break;

                                case "调休":
                                    cnt3 = cnt3 + 0.5;
                                    break;

                                case "公休":
                                    cnt4 = cnt4 + 0.5;
                                    break;

                                case "出差":
                                    cnt5 = cnt5 + 0.5;
                                    break;

                                case "其他":
                                    cnt6 = cnt6 + 0.5;
                                    break;

                                default:
                                    break;
                                }
                                break;

                            default:
                                sheet.Cells[j + 2, m + 2].PutValue("/");
                                break;
                            }
                            break;

                        default:
                            break;
                        }
                    }

                    m++;
                }


                if (cnt1 > 0)
                {
                    sheet.Cells[j + 2, m + 2].PutValue(cnt1);
                }
                if (cnt2 > 0)
                {
                    sheet.Cells[j + 2, m + 2 + 1].PutValue(cnt2);
                }
                if (cnt3 > 0)
                {
                    sheet.Cells[j + 2, m + 2 + 2].PutValue(cnt3);
                }
                if (cnt4 > 0)
                {
                    sheet.Cells[j + 2, m + 2 + 3].PutValue(cnt4);
                }
                if (cnt5 > 0)
                {
                    sheet.Cells[j + 2, m + 2 + 4].PutValue(cnt5);
                }
                if (cnt6 > 0)
                {
                    sheet.Cells[j + 2, m + 2 + 5].PutValue(cnt6);
                }
            }

            style = sheet.Cells[0, 0].GetStyle();
            style.HorizontalAlignment = TextAlignmentType.Center;
            style.VerticalAlignment   = TextAlignmentType.Center;
            style.Borders[BorderType.TopBorder].Color        = System.Drawing.Color.Black;
            style.Borders[BorderType.TopBorder].LineStyle    = CellBorderType.Thin;
            style.Borders[BorderType.BottomBorder].Color     = System.Drawing.Color.Black;
            style.Borders[BorderType.BottomBorder].LineStyle = CellBorderType.Thin;
            style.Borders[BorderType.LeftBorder].Color       = System.Drawing.Color.Black;
            style.Borders[BorderType.LeftBorder].LineStyle   = CellBorderType.Thin;
            style.Borders[BorderType.RightBorder].Color      = System.Drawing.Color.Black;
            style.Borders[BorderType.RightBorder].LineStyle  = CellBorderType.Thin;

            var range = sheet.Cells.CreateRange(0, 0, data.Count + 2, i + 8);

            range.ApplyStyle(style, new StyleFlag()
            {
                All = true
            });

            book.Save(System.Web.HttpContext.Current.Response, "考勤统计表.xlsx", ContentDisposition.Attachment, new XlsSaveOptions(SaveFormat.Xlsx));

            return(Content(null));
        }