コード例 #1
0
        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));
            }
        }
コード例 #2
0
        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));
            }
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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"), "操作成功!"));
            }
        }
コード例 #5
0
        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));
        }