public ActionResult Insert(List <int> ids, int classId) { using (var db = new XkSystem.Models.DbContext()) { var error = new List <string>(); var classStudentList = (from p in db.Table <Basis.Entity.tbClassStudent>() where p.tbClass.Id == classId select p.tbStudent.Id).ToList(); var yearId = (from p in db.Table <Basis.Entity.tbClass>() where p.Id == classId select p.tbYear.Id).FirstOrDefault(); var check = (from p in db.Table <Basis.Entity.tbClassStudent>() where p.tbClass.tbYear.Id == yearId && p.tbClass.IsDeleted == false && p.tbClass.Id != classId && ids.Contains(p.tbStudent.Id) select new { p.tbStudent.StudentCode, p.tbStudent.StudentName, p.tbClass.tbGrade.GradeName, p.tbClass.ClassName }).ToList(); if (check.Count > 0) { error.AddError(string.Join("\r\n", check.Select(d => d.StudentCode + "(" + d.StudentName + ")已在" + d.GradeName + d.ClassName).ToList())); } else { var maxNo = db.Table <Basis.Entity.tbClassStudent>().Where(d => d.tbClass.Id == classId).Select(d => d.No).DefaultIfEmpty(0).Max(); var studentList = (from p in db.Table <Student.Entity.tbStudent>() where ids.Contains(p.Id) && classStudentList.Contains(p.Id) == false select p).ToList(); foreach (var student in studentList) { maxNo = maxNo + 1; var tb = new Basis.Entity.tbClassStudent(); tb.tbClass = db.Set <Basis.Entity.tbClass>().Find(classId); tb.tbStudent = student; tb.No = maxNo; db.Set <Basis.Entity.tbClassStudent>().Add(tb); } if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加了行政班学生"); } } return(Code.MvcHelper.Post(error)); } }
public ActionResult StudentReset(Models.StudentChange.StudentReset vm) { using (var db = new XkSystem.Models.DbContext()) { var error = new List <string>(); if (error.Count == decimal.Zero) { var student = db.Table <Entity.tbStudent>().Where(d => d.StudentCode == vm.DataEdit.StudentCode && d.StudentName == vm.DataEdit.StudentName).FirstOrDefault(); if (student == null) { error.Add("学生不存在!"); return(Code.MvcHelper.Post(error)); } student.tbStudentSession = db.Set <Student.Entity.tbStudentSession>().Find(vm.DataEdit.StudentSessionId); var tb = new Student.Entity.tbStudentChange() { InputDate = DateTime.Now, Remark = vm.DataEdit.Remark, tbStudent = student, tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId), tbStudentChangeType = db.Table <Student.Entity.tbStudentChangeType>().Where(d => d.StudentChangeTypeName == "复学").FirstOrDefault() }; var classStudent = db.Table <Basis.Entity.tbClassStudent>().Where(d => d.tbStudent.Id == student.Id).FirstOrDefault(); if (classStudent != null) { classStudent.tbClass = db.Set <Basis.Entity.tbClass>().Find(vm.DataEdit.ClassId); } else { classStudent = new Basis.Entity.tbClassStudent() { tbClass = db.Set <Basis.Entity.tbClass>().Find(vm.DataEdit.ClassId), tbStudent = student }; db.Set <Basis.Entity.tbClassStudent>().Add(classStudent); } db.Set <Student.Entity.tbStudentChange>().Add(tb); db.Set <Basis.Entity.tbClassStudent>().Add(classStudent); if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加学生调动"); } } return(Code.MvcHelper.Post(error)); } }
public ActionResult StudentIn(Models.StudentChange.StudentIn vm) { using (var db = new XkSystem.Models.DbContext()) { var error = new List <string>(); if (error.Count == decimal.Zero) { var student = new Student.Entity.tbStudent() { StudentCode = vm.DataEdit.StudentCode, StudentName = vm.DataEdit.StudentName, tbSysUser = new Sys.Entity.tbSysUser() { UserCode = vm.DataEdit.StudentCode, UserName = vm.DataEdit.StudentName, Password = Code.Common.DESEnCode("123456"), PasswordMd5 = Code.Common.CreateMD5Hash("123456"), UserType = Code.EnumHelper.SysUserType.Student, tbSex = db.Table <Dict.Entity.tbDictSex>().Where(d => d.SexName == vm.DataEdit.SexName).FirstOrDefault() } }; var tb = new Student.Entity.tbStudentChange() { InputDate = DateTime.Now, Remark = vm.DataEdit.Remark, tbStudent = student, tbSysUser = db.Set <Sys.Entity.tbSysUser>().Find(Code.Common.UserId), tbStudentChangeType = db.Table <Student.Entity.tbStudentChangeType>().Where(d => d.StudentChangeTypeName == "转入").FirstOrDefault() }; db.Set <Student.Entity.tbStudentChange>().Add(tb); var classStudent = new Basis.Entity.tbClassStudent() { tbClass = db.Set <Basis.Entity.tbClass>().Find(vm.DataEdit.ClassId), tbStudent = student }; db.Set <Basis.Entity.tbClassStudent>().Add(classStudent); if (db.SaveChanges() > 0) { XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("添加学生调动"); } } return(Code.MvcHelper.Post(error)); } }
public ActionResult PushToClass(int yearId) { using (var db = new XkSystem.Models.DbContext()) { var classList = (from p in db.Table <Basis.Entity.tbClass>() .Include(d => d.tbGrade) where p.tbYear.Id == yearId select p).ToList(); var classAllotClassList = db.Table <Basis.Entity.tbClassAllotClass>() .Where(d => d.tbYear.Id == yearId) .Include(d => d.tbClassType) .Include(d => d.tbGrade) .Include(d => d.tbYear).ToList(); foreach (var a in classAllotClassList.Select(d => d.tbGrade.Id).Distinct()) { foreach (var b in classList.Where(d => d.tbGrade.Id == a)) { b.IsDeleted = true; } } var classAllotResultList = db.Table <Basis.Entity.tbClassAllotResult>() .Include(d => d.tbClassAllotClass) .Include(d => d.tbStudent).ToList(); // 添加新分班数据 var listClass = new List <Basis.Entity.tbClass>(); var listClassStudent = new List <Basis.Entity.tbClassStudent>(); foreach (var a in classAllotClassList) { var classTemp = new Basis.Entity.tbClass() { No = a.No, ClassName = a.ClassName, tbClassType = a.tbClassType, tbGrade = a.tbGrade, tbYear = a.tbYear }; listClass.Add(classTemp); } foreach (var v in classAllotResultList) { var classStudentTemp = new Basis.Entity.tbClassStudent() { No = v.No, tbClass = listClass.Where(d => d.ClassName == v.tbClassAllotClass.ClassName).FirstOrDefault(), tbStudent = v.tbStudent }; listClassStudent.Add(classStudentTemp); } db.Set <Basis.Entity.tbClass>().AddRange(listClass); db.Set <Basis.Entity.tbClassStudent>().AddRange(listClassStudent); if (db.SaveChanges() > 0) { ClearAllot(); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("从分班数据更新班级"); } return(Code.MvcHelper.Post(null, Url.Action("List", "Class"), "操作成功!")); } }
public ActionResult Import(Models.ClassStudent.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()) { 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)); } //将DataTable转为List foreach (System.Data.DataRow dr in dt.Rows) { var dto = new Dto.ClassStudent.Import() { ClassName = dr["行政班名称"].ConvertToString(), StudentCode = dr["学生学号"].ConvertToString(), StudentName = dr["学生姓名"].ConvertToString(), ClassGroupName = dr["小组名称"].ConvertToString() }; vm.ImportEdit.Add(dto); } vm.ImportEdit.RemoveAll(d => string.IsNullOrEmpty(d.ClassName) && string.IsNullOrEmpty(d.StudentCode) && string.IsNullOrEmpty(d.StudentName)); if (vm.ImportEdit.Count == 0) { ModelState.AddModelError("", "未读取到任何有效数据!"); return(View(vm)); } var year = (from p in db.Table <Basis.Entity.tbYear>() where p.IsDisable == true select p).FirstOrDefault(); var classList = (from p in db.Table <Basis.Entity.tbClass>() //where p.tbYear.Id == year.Id select p).ToList(); var studentList = db.Table <Student.Entity.tbStudent>().ToList(); var classStudentList = db.Table <Basis.Entity.tbClassStudent>() .Include(d => d.tbClass).Include(d => d.tbStudent).ToList(); var classGroupList = db.Table <Basis.Entity.tbClassGroup>().ToList(); foreach (var item in vm.ImportEdit) { if (string.IsNullOrEmpty(item.ClassName)) { item.Error = item.Error + "行政班名称不能为空!"; } if (string.IsNullOrEmpty(item.StudentCode)) { item.Error = item.Error + "学生学号不能为空!"; } if (string.IsNullOrEmpty(item.StudentName)) { item.Error = item.Error + "学生姓名不能为空!"; } if (studentList.Where(d => d.StudentCode == item.StudentCode && d.StudentName == item.StudentName).Count() == 0) { item.Error = item.Error + "学生姓名和学生学号不匹配!"; } if (classList.Where(d => d.ClassName == item.ClassName).Count() == 0) { item.Error = item.Error + "行政班不存在!"; } } if (vm.ImportEdit.Where(d => string.IsNullOrEmpty(d.Error) == false).Count() > 0) { vm.ImportEdit.RemoveAll(d => string.IsNullOrEmpty(d.Error)); return(View(vm)); } //数据导入,判断关键字,存在的数据做更新,不存在的做新增 foreach (var item in vm.ImportEdit) { if (classStudentList.Where(d => d.tbClass.ClassName == item.ClassName && d.tbStudent.StudentCode == item.StudentCode).Count() > 0) { item.Error = "数据已存在!"; vm.ImportEdit.RemoveAll(d => string.IsNullOrEmpty(d.Error)); return(View(vm)); } else { var tb = new Basis.Entity.tbClassStudent(); tb.tbClass = classList.Where(d => d.ClassName == item.ClassName).FirstOrDefault(); tb.tbStudent = studentList.Where(d => d.StudentName == item.StudentName && d.StudentCode == item.StudentCode).FirstOrDefault(); db.Set <Basis.Entity.tbClassStudent>().Add(tb); } } if (db.SaveChanges() > 0) { vm.ImportEdit.RemoveAll(d => string.IsNullOrEmpty(d.Error)); XkSystem.Areas.Sys.Controllers.SysUserLogController.Insert("批量导入了行政班学生"); vm.Status = true; } } } return(View(vm)); }