Example #1
0
 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")));
 }
Example #2
0
        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));
            }
        }
Example #3
0
        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 })));
        }