/// <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); }
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)); }
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)); }
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)); }
public ContentResult GetAttendance(string id, DateTime date) { var bll = new WorkmeetingBLL(); var state = bll.GetAttendance(id, date); return(Content(state)); }
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())); }
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)); }
/// <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()); }
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)); }
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)); }
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)); }
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 })); }
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)); }
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())); }
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())); }
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)); }
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)); }
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)); }
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 })); }
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)); }