public ActionResult SetIsApplyStudy(int studyId, int classId, int studentId) { using (var db = new XkSystem.Models.DbContext()) { var tb = db.Table <Study.Entity.tbStudyClassStudent>().Where(d => d.tbStudy.Id == studyId && d.tbClass.Id == classId && d.tbStudent.Id == studentId).FirstOrDefault(); if (tb != null) { tb.IsDeleted = true; tb.UpdateTime = DateTime.Now; if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改晚自习模式"); } } else { var tbStudent = new Study.Entity.tbStudyClassStudent(); tbStudent.tbClass = db.Set <Basis.Entity.tbClass>().Find(classId); tbStudent.tbStudent = db.Set <Student.Entity.tbStudent>().Find(studentId); tbStudent.tbStudy = db.Set <Study.Entity.tbStudy>().Find(studyId); db.Set <Study.Entity.tbStudyClassStudent>().Add(tbStudent); if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改晚自习模式"); } } } return(Code.MvcHelper.Post(null, Url.Action("List"))); }
public ActionResult Insert(List <int> ids, int studyId, int classId) { using (var db = new XkSystem.Models.DbContext()) { var error = new List <string>(); var studyClassStudentList = (from p in db.Table <Study.Entity.tbStudyClassStudent>() where p.tbStudy.Id == studyId && p.tbClass.Id == classId && p.tbStudy.IsDeleted == false && p.tbClass.IsDeleted == false && p.tbStudent.IsDeleted == false select p.tbStudent.Id).ToList(); var check = (from p in db.Table <Study.Entity.tbStudyClassStudent>() where p.tbClass.IsDeleted == false && p.tbStudent.IsDeleted == false && p.tbStudy.IsDeleted == false && p.tbClass.Id != classId && ids.Contains(p.tbStudent.Id) select new { p.tbStudent.StudentCode, p.tbStudent.StudentName, p.tbClass.ClassName, p.tbStudy.StudyName }).ToList(); if (check.Count > 0) { error.AddError(string.Join("\r\n", check.Select(d => d.StudentCode + "(" + d.StudentName + ")已在" + d.StudyName + d.ClassName).ToList())); } else { var studentList = (from p in db.Table <Student.Entity.tbStudent>() where ids.Contains(p.Id) && studyClassStudentList.Contains(p.Id) == false select p).ToList(); foreach (var student in studentList) { var tb = new Study.Entity.tbStudyClassStudent(); tb.tbClass = db.Set <Basis.Entity.tbClass>().Find(classId); tb.tbStudent = student; tb.tbStudy = db.Set <Study.Entity.tbStudy>().Find(studyId); db.Set <Study.Entity.tbStudyClassStudent>().Add(tb); } if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加了晚自习班级学生"); } } return(Code.MvcHelper.Post(error)); } }
public ActionResult Import(Models.StudyClassStudent.Import vm) { if (ModelState.IsValid) { var file = Request.Files[nameof(vm.UploadFile)]; var fileSave = System.IO.Path.GetTempFileName(); file.SaveAs(fileSave); using (var db = new XkSystem.Models.DbContext()) { #region 1、Excel模版校验 if (Code.Common.GetFileType(file.FileName) != Code.FileType.Excel) { ModelState.AddModelError("", "上传的文件不是正确的EXCLE文件!"); return(View(vm)); } var dt = Code.NpoiHelper.ExcelToDataTable(fileSave, System.IO.Path.GetExtension(file.FileName), string.Empty); if (dt == null) { ModelState.AddModelError("", "无法读取上传的文件,请检查文件格式是否正确!"); return(View(vm)); } var tbList = new List <string>() { "行政班", "学号", "姓名" }; var Text = string.Empty; foreach (var a in tbList) { if (!dt.Columns.Contains(a.ToString())) { Text += a + ","; } } if (!string.IsNullOrEmpty(Text)) { ModelState.AddModelError("", "上传的EXCEL晚自习内容与预期不一致,缺少对应的字段:" + Text); return(View(vm)); } #endregion #region 2、Excel数据读取 foreach (System.Data.DataRow dr in dt.Rows) { var dtoStudyClassStudent = new Dto.StudyClassStudent.Import() { ClassName = Convert.ToString(dr["行政班"]), StudentCode = Convert.ToString(dr["学号"]), StudentName = Convert.ToString(dr["姓名"]) }; if (vm.ImportList.Where(d => d.ClassName == dtoStudyClassStudent.ClassName && d.StudentCode == dtoStudyClassStudent.StudentCode && d.StudentName == dtoStudyClassStudent.StudentName).Count() == 0) { vm.ImportList.Add(dtoStudyClassStudent); } } vm.ImportList.RemoveAll(d => string.IsNullOrEmpty(d.ClassName) && string.IsNullOrEmpty(d.StudentCode) && string.IsNullOrEmpty(d.StudentName) ); if (vm.ImportList.Count == 0) { ModelState.AddModelError("", "Excel未读取到任何有效数据!"); return(View(vm)); } #endregion #region 3、Excel格式校验 //学生列表 var StudyClassStudentList = (from p in db.Table <Study.Entity.tbStudyClassStudent>() .Include(d => d.tbStudent) .Include(d => d.tbStudy) .Include(d => d.tbClass) select p).ToList(); var StudyClassList = (from p in db.Table <Study.Entity.tbStudyClass>() .Include(d => d.tbStudy) .Include(d => d.tbClass) where p.tbStudy.Id == vm.StudyId && p.tbStudy.IsDeleted == false && p.tbClass.IsDeleted == false select p).ToList(); //学生列表 var StudentList = (from p in db.Table <Student.Entity.tbStudent>() select p).ToList(); var StudyName = db.Set <Study.Entity.tbStudy>().Find(vm.StudyId).StudyName; foreach (var item in vm.ImportList) { if (string.IsNullOrEmpty(item.ClassName)) { item.Error = item.Error + "行政班不能为空!"; continue; } else { if (StudyClassList.Where(d => d.tbClass.ClassName == item.ClassName).Count() == decimal.Zero) { item.Error = item.Error + "行政班没有参加【" + StudyName + "】"; continue; } } if (string.IsNullOrEmpty(item.StudentCode)) { item.Error = item.Error + "学号不能为空!"; continue; } else { if (StudentList.Where(d => d.StudentCode == item.StudentCode).Count() == decimal.Zero) { item.Error = item.Error + "学生不存在数据库!"; continue; } } if (string.IsNullOrEmpty(item.StudentName)) { item.Error = item.Error + "姓名不能为空!"; continue; } else { if (StudentList.Where(d => d.StudentName == item.StudentName).Count() == decimal.Zero) { item.Error = item.Error + "学生不存在数据库!"; continue; } } if (StudyClassStudentList.Where(d => d.tbStudy.Id == vm.StudyId && d.tbClass.ClassName == item.ClassName && d.tbStudent.StudentCode == item.StudentCode).Count() > 0) { item.Error += "系统中已存在该记录!"; continue; } } if (vm.ImportList.Where(d => string.IsNullOrEmpty(d.Error) == false).Count() > 0) { vm.ImportList.RemoveAll(d => string.IsNullOrEmpty(d.Error)); return(View(vm)); } #endregion #region 4、Excel执行导入 var addStudyClassStudentList = new List <Study.Entity.tbStudyClassStudent>(); foreach (var item in vm.ImportList) { Study.Entity.tbStudyClassStudent tb = null; if (StudyClassStudentList.Where(d => d.tbStudy.Id == vm.StudyId && d.tbClass.ClassName == item.ClassName && d.tbStudent.StudentCode == item.StudentCode).Count() == decimal.Zero) { tb = new Study.Entity.tbStudyClassStudent(); tb.tbStudy = db.Set <Study.Entity.tbStudy>().Find(vm.StudyId); tb.tbClass = db.Table <Basis.Entity.tbClass>().Where(d => d.ClassName == item.ClassName).FirstOrDefault(); tb.tbStudent = db.Table <Student.Entity.tbStudent>().Where(d => d.StudentCode == item.StudentCode).FirstOrDefault(); addStudyClassStudentList.Add(tb); } } db.Set <Study.Entity.tbStudyClassStudent>().AddRange(addStudyClassStudentList); if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("批量导入了晚自习行政班学生"); vm.Status = true; } #endregion } } vm.ImportList.RemoveAll(d => string.IsNullOrEmpty(d.Error)); return(View(vm)); }
public ActionResult List(Models.StudyClass.List vm) { using (var db = new XkSystem.Models.DbContext()) { var arrystr = new string[] { }; var txtCboxId = Request["CboxId"] != null ? Request["CboxId"].Split(',') : arrystr; var txtClassId = Request["txtClassId"] != null ? Request["txtClassId"].Split(',') : arrystr; var txtRoomId = Request["txtRoomId"] != null ? Request["txtRoomId"].Split(',') : arrystr; #region 除关系 var tbStudyClassList = (from p in db.Table <Study.Entity.tbStudyClass>() .Include(d => d.tbClass) .Include(d => d.tbStudy) where p.tbStudy.Id == vm.StudyId && p.tbStudy.IsDeleted == false && p.tbClass.IsDeleted == false select p).ToList(); foreach (var a in tbStudyClassList.Where(d => txtCboxId.Contains(d.tbClass.Id.ToString()) == false)) { a.IsDeleted = true; } var tbStudyStudentList = (from p in db.Table <Study.Entity.tbStudyClassStudent>() .Include(d => d.tbClass) .Include(d => d.tbStudy) where p.tbStudy.Id == vm.StudyId && p.tbClass.IsDeleted == false && p.tbStudy.IsDeleted == false && p.tbStudent.IsDeleted == false select p).ToList(); foreach (var a in tbStudyStudentList.Where(d => txtCboxId.Contains(d.tbClass.Id.ToString()) == false)) { a.IsDeleted = true; } var tbStudyClassTeacherList = (from p in db.Table <Study.Entity.tbStudyClassTeacher>() .Include(d => d.tbClass) .Include(d => d.tbStudy) where p.tbStudy.Id == vm.StudyId && p.tbClass.IsDeleted == false && p.tbStudy.IsDeleted == false && p.tbTeacher.IsDeleted == false select p).ToList(); foreach (var a in tbStudyClassTeacherList.Where(d => txtCboxId.Contains(d.tbClass.Id.ToString()) == false)) { a.IsDeleted = true; } #endregion for (var i = 0; i < txtClassId.Count(); i++) { if (txtCboxId.Where(d => d == txtClassId[i]).Count() > decimal.Zero)//勾选班级 { if (tbStudyClassList.Where(d => d.tbClass.Id == txtClassId[i].ConvertToInt()).Count() > decimal.Zero) { var tf = tbStudyClassList.Where(d => d.tbClass.Id == txtClassId[i].ConvertToInt()).FirstOrDefault(); tf.tbRoom = db.Set <Basis.Entity.tbRoom>().Find(txtRoomId[i].ConvertToInt()); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("修改晚自习班级"); } else { //没有id的,执行插入操作 var tf = new Study.Entity.tbStudyClass(); tf.tbRoom = db.Set <Basis.Entity.tbRoom>().Find(txtRoomId[i].ConvertToInt()); tf.tbClass = db.Set <Basis.Entity.tbClass>().Find(txtClassId[i].ConvertToInt()); tf.tbStudy = db.Set <Study.Entity.tbStudy>().Find(vm.StudyId); db.Set <Study.Entity.tbStudyClass>().Add(tf); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加晚自习班级"); //默认插入本班学生 var classId = txtClassId[i].ConvertToInt(); var tbStudentIds = (from p in db.Table <Basis.Entity.tbClassStudent>() where p.tbClass.Id == classId && p.tbClass.IsDeleted == false && p.tbStudent.IsDeleted == false select p.tbStudent.Id).Distinct().ToList(); foreach (var studentId in tbStudentIds) { var tfStudent = new Study.Entity.tbStudyClassStudent(); tfStudent.tbClass = db.Set <Basis.Entity.tbClass>().Find(classId); tfStudent.tbStudy = db.Set <Study.Entity.tbStudy>().Find(vm.StudyId); tfStudent.tbStudent = db.Set <Student.Entity.tbStudent>().Find(studentId); db.Set <Study.Entity.tbStudyClassStudent>().Add(tfStudent); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加晚自习班级学生"); } } } } db.SaveChanges(); } return(Code.MvcHelper.Post(null, Url.Action("List", "StudyClassTeacher", new { studyId = vm.StudyId }))); }