/// <summary> /// 简化程序(把教师数据分为四张表,分为四个方法进行) Sys_User_Role /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolTeacherSysUserRole(NanHangAccept oldDb, NHModel newDb) { var newData = newDb.TeacherInfoes.Select(p => new Sys_User_Role { F_User = p.teacherId }); var oldData = oldDb.Sys_User_Role.ToList(); var addList = newData; var Ids = oldData.Select(p => p.F_User).ToList(); var InsertList = new List <Sys_User_Role>(); foreach (var userRole in addList) { if (!Ids.Contains(userRole.F_User)) { userRole.F_Role = "teacher"; userRole.F_Id = Guid.NewGuid().ToString(); userRole.F_CreatorTime = DateTime.Now; userRole.F_DeleteMark = false; userRole.F_EnabledMark = true; InsertList.Add(userRole); } } //oldDb.BulkInsert(InsertList); oldDb.Sys_User_Role.AddRange(InsertList); oldDb.SaveChanges(); }
/// <summary> /// 处理同步学生信息 学生信息同步6张表 /// 分别为: School_Students,Sys_User,Sys_User_Role,Sys_UserLogOn,Dorm_DormStudent,Dorm_Dorm /// </summary> public void ProcessStudent() { Console.WriteLine("南航项目:开始同步学生信息 --> " + DateTime.Now.ToLocalTime()); var sw = new Stopwatch(); sw.Start(); var newDb = new NHModel(); var oldDb = new NanHangAccept(); ///--------- Step1: 更新 School_Students 表数据 ---------/// ProcessSchoolStudentInfo(oldDb, newDb); Console.WriteLine(" *** 同步 School_Students 结束 。"); ///--------- Step2: 更新 Sys_User 表数据 ---------/// ProcessSchoolStudentSysUser(oldDb, newDb); Console.WriteLine(" *** 同步 Sys_User 结束 。"); ///--------- Step3: 更新 Sys_User_Role 表数据 ---------/// ProcessSchoolStudentSysUserRole(oldDb, newDb); Console.WriteLine(" *** 同步 Sys_User_Role 结束 。"); ///--------- Step4: 更新 Sys_UserLogOn 表数据 ---------/// ProcessSchoolStudentSysUserLogOn(oldDb, newDb); Console.WriteLine(" *** 同步 Sys_UserLogOn 结束 。"); ///--------- Step5: 更新 Dorm_Dorm 表数据 ---------/// ProcessSchoolStudentDormInfo(oldDb, newDb); Console.WriteLine(" *** 同步 Dorm_Dorm 结束 。"); ///--------- Step6: 更新 Dorm_DormStudent 表数据 ---------/// ProcessSchoolStudentSysUserDormStudent(oldDb, newDb); Console.WriteLine(" *** 同步 Dorm_DormStudent 结束 。"); //newDb.BulkDelete(newDb.StudentInfoes.ToList()); //批量删除中间表的所有数据 newDb.Dispose(); oldDb.Dispose(); sw.Stop(); Console.WriteLine("南航项目:同步学生信息结束 --> 合计耗时:" + sw.ElapsedMilliseconds / 1000 + "s"); }
/// <summary> /// 简化程序(把教师数据分为四张表,分为四个方法进行) Sys_UserLogOn /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolTeacherSysUserLogON(NanHangAccept oldDb, NHModel newDb) { var newData = newDb.TeacherInfoes.Select(p => new Sys_UserLogOn { F_UserId = p.teacherId }); var oldData = oldDb.Sys_UserLogOn.ToList(); var addList = newData; var Ids = oldData.Select(p => p.F_UserId).ToList(); var InsertList = new List <Sys_UserLogOn>(); foreach (var tea in addList) { if (!Ids.Contains(tea.F_UserId)) { tea.F_Id = tea.F_UserId; tea.F_UserSecretkey = Md5EncryptHelper.Encrypt("0000", 16).ToLower(); tea.F_UserPassword = Md5EncryptHelper.Encrypt(DESEncryptHelper.Encrypt(Md5EncryptHelper.Encrypt("0000", 32).ToLower(), tea.F_UserSecretkey).ToLower(), 32).ToLower(); InsertList.Add(tea); } } //oldDb.BulkInsert(InsertList); oldDb.Sys_UserLogOn.AddRange(InsertList); oldDb.SaveChanges(); }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) Sys_User_Role /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentSysUserRole(NanHangAccept oldDb, NHModel newDb) { var oldData = oldDb.Sys_User_Role.ToList(); var newData = newDb.StudentInfoes.Select(p => new Sys_User_Role { F_User = p.studentId }); var Ids = oldData.Select(p => p.F_User).ToList(); var insertList = new List <Sys_User_Role>(); foreach (var Rold in newData) { if (!Ids.Contains(Rold.F_User)) { Rold.F_Id = Guid.NewGuid().ToString(); Rold.F_Role = "student"; Rold.F_CreatorTime = DateTime.Now; Rold.F_DeleteMark = false; Rold.F_EnabledMark = true; insertList.Add(Rold); } } //oldDb.BulkInsert(insertList); oldDb.Sys_User_Role.AddRange(insertList); oldDb.SaveChanges(); }
/// <summary> /// 处理同步学生信息 学生信息同步6张表 /// 分别为: School_Students,Sys_User,Sys_User_Role,Sys_UserLogOn,Dorm_DormStudent,Dorm_Dorm /// </summary> public void ProcessStudent(EFContext db) { Console.WriteLine("南航项目:开始同步学生信息 --> " + DateTime.Now.ToLocalTime()); var sw = new Stopwatch(); sw.Start(); var newDb = new NHModel(); ///--------- Step1: 更新 School_Students 表数据 ---------/// ProcessSchoolStudentInfo(db, newDb); Console.WriteLine(" *** 同步 School_Students 结束 。"); ///--------- Step2: 更新 Sys_User 表数据 ---------/// ProcessSchoolStudentSysUser(db, newDb); Console.WriteLine(" *** 同步 Sys_User 结束 。"); ///--------- Step3: 更新 Dorm_Dorm 表数据 ---------/// ProcessSchoolStudentDormInfo(db, newDb); Console.WriteLine(" *** 同步 宿舍相关的表 结束 。"); ///--------- Step5: 更新 Dorm_Dorm 表数据 ---------/// ProcessStudentSysUserRole(db, newDb); Console.WriteLine(" *** 同步 用户角色表 结束 。"); //newDb.BulkDelete(newDb.StudentInfoes.ToList()); //批量删除中间表的所有数据 newDb.Dispose(); db.Dispose(); sw.Stop(); Console.WriteLine("南航项目:同步学生信息结束 --> 合计耗时:" + sw.ElapsedMilliseconds / 1000 + "s"); }
/// <summary> /// 处理同步教师信息 /// 此方法分别更新四张表,分别是:School_Teachers,Sys_User,Sys_User_Role,Sys_UserLogOn /// </summary> public void ProcessTeacher() { Console.WriteLine("南航项目:开始同步教师信息 --> " + DateTime.Now.ToLocalTime()); var sw = new Stopwatch(); sw.Start(); var newDb = new NHModel(); var oldDb = new NanHangAccept(); ///--------- Step1: 更新 School_Teachers 表数据 ---------/// ProcessSchoolTeacherInfo(oldDb, newDb); ///--------- Step2: 更新 Sys_User 表数据 ---------/// ProcessSchoolTeacherSysUser(oldDb, newDb); ///--------- Step3: 更新 Sys_User_Role 表数据 ---------/// ProcessSchoolTeacherSysUserRole(oldDb, newDb); ///--------- Step4: 更新 Sys_UserLogOn 表数据 ---------/// ProcessSchoolTeacherSysUserLogON(oldDb, newDb); //newDb.BulkDelete(newDb.TeacherInfoes.ToList()); //删除中间表的所有教师数据 newDb.Dispose(); oldDb.Dispose(); sw.Stop(); Console.WriteLine("南航项目:同步教师信息结束 --> 合计耗时:" + sw.ElapsedMilliseconds / 1000 + "s"); }
public static void process() { Console.WriteLine("------------批量同步11栋和12栋学生数据,到12栋1楼101室"); //批量同步11栋和12栋学生数据,到12栋1楼101室 var model = new NHModel(); var stuList = model.StudentInfoes.Where(p => p.studentBuildingId.Contains("12栋") || p.studentBuildingId.Contains("11栋")).Select(p => new PersonMoudle { orgId = "org001", code = p.studentNo, idCode = p.certificateNo, name = p.studentName, roleId = "student001", //teacher001 sex = 1, colleageCode = "55f67dcc42a5426fb0670d58dda22a5b", //默认分院 dormitoryCode = "fe8a5225be5f43478d0dd0c85da5dd1d", //楼栋 例如: 11栋 dormitoryFloor = "8e447843bc8c4e92b9ffdf777047d20d", //楼层 例如:3楼 dormitoryRoom = "20c70f65b54b4f96851e26343678c4ec", //宿舍号 例如:312 photoUrl = p.ImgUri }).ToList(); foreach (var person in stuList) { try { Console.WriteLine(person.name); var d = DHAccount.PUSH_DH_ADD_PERSON(person); Console.WriteLine(d.ToString()); }catch (Exception e) { Console.WriteLine(e); } } Console.WriteLine("-------------已退出"); }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) Dorm_DormStudent /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentSysUserDormStudent(NanHangAccept oldDb, NHModel newDb) { var oldData = oldDb.Dorm_DormStudent.ToList(); var newData = newDb.StudentInfoes.Select(p => new Dorm_DormStudent { F_Student_ID = p.studentId, F_Memo = p.studentBuildingId, F_Sex = p.studentSex }); var StudentIds = oldData.Select(p => p.F_Student_ID).ToList(); var InsertStudent = new List <Dorm_DormStudent>(); foreach (var info in newData) { if (StudentIds.Contains(info.F_Student_ID)) { string[] split = info.F_Memo.Trim().Replace("栋", "#").Split('#'); if (split.Length == 2) { string ClassRoomId = oldDb.dorm_dorm.Where(p => p.F_Title.Equals(info.F_Memo)).Select(p => p.F_Id).ToList().FirstOrDefault(); oldDb.Set <Dorm_DormStudent>().Where(p => p.F_Student_ID == info.F_Student_ID).Update(p => new Dorm_DormStudent { F_DormId = ClassRoomId, F_Bed_ID = "", F_Sex = info.F_Sex, F_Memo = info.F_Memo }); } } else { try { string[] split = info.F_Memo.Trim().Replace("栋", "#").Split('#'); if (split.Length == 2) { string ClassRoomId = oldDb.dorm_dorm.Where(p => p.F_Title.Equals(info.F_Memo)).Select(p => p.F_Id).ToList().FirstOrDefault(); var student = new Dorm_DormStudent(); student.F_Id = Guid.NewGuid().ToString(); student.F_CreatorTime = DateTime.Now; student.F_Student_ID = info.F_Student_ID; student.F_DormId = ClassRoomId; student.F_Bed_ID = ""; student.F_Sex = info.F_Sex; student.F_Memo = info.F_Memo; InsertStudent.Add(student); } } catch { } } } //oldDb.BulkInsert(InsertStudent); oldDb.Dorm_DormStudent.AddRange(InsertStudent); oldDb.SaveChanges(); }
/// <summary> /// 简化程序(把教师数据分为四张表,分为四个方法进行) Sys_User /// </summary> /// <param name="db"></param> /// <param name="newData"></param> public void ProcessSchoolTeacherSysUser(EFContext db, NHModel newDb) { var newData = newDb.Set <TeacherInfo>().AsNoTracking().Select(p => new UserMoudle { Id = p.teacherId, Name = p.teacherName, Account = p.LoginId, OrganId = p.orgId, MobilePhone = p.teacherPhone, HeadIcon = p.ImgUri, Gender = p.sex ? "1" : "0" }).ToList(); var oldData = db.Set <User>().AsNoTracking().Select(p => new UserMoudle { Id = p.Id, Name = p.Name, Account = p.Account, OrganId = p.OrganId, MobilePhone = p.MobilePhone, HeadIcon = p.HeadIcon, Gender = p.Gender == true ? "1" : "0" }).ToList(); var addList = newData.Except(oldData).ToList(); var Ids = oldData.Select(p => p.Id).ToList(); var InsertList = new List <User>(); foreach (var tea in addList) { if (Ids.Contains(tea.Id)) { db.Set <User>().Where(p => p.Id.Equals(tea.Id)).Update(p => new User { Name = tea.Name, Account = tea.Account, OrganId = tea.OrganId, MobilePhone = tea.MobilePhone, DutyId = "teacherDuty", Gender = tea.Gender == "1" ? true : false }); } else { InsertList.Add(new User() { DutyId = "teacherDuty", Id = tea.Id, Name = tea.Name, Account = tea.Account, OrganId = tea.OrganId, MobilePhone = tea.MobilePhone, HeadIcon = tea.HeadIcon, Gender = tea.Gender == "1" ? true : false }); } } db.Set <User>().AddRange(InsertList); db.SaveChanges(); }
/// <summary> /// 处理同步组织机构信息(学生组织结构) /// </summary> public void ProcessOrgInfoStu() { Console.WriteLine("开始同步组织机构信息: 南航项目 --> " + DateTime.Now.ToLocalTime()); var sw = new Stopwatch(); sw.Start(); //校方数据集(分为两种:修改数据和新增数据) var newDb = new NHModel(); var newData = newDb.OrganizationInfo_stu.Select(p => new Sys_Organize { F_Id = p.OrgId, F_FullName = p.OrgName, F_ParentId = p.ParentOrgId, F_CreatorTime = p.CreatedTime, F_LastModifyTime = p.LastUpdatedTime, F_EnCode = p.OrgId, F_DeleteMark = false }).ToList(); //获取生产环境数据库数据集 var oldDb = new NanHangAccept(); //var oldData = oldDb.Sys_Organize.Select(p => new Sys_Organize { F_Id = p.F_Id, F_FullName = p.F_FullName, F_ParentId = p.F_ParentId, F_CreatorTime = p.F_CreatorTime, F_LastModifyTime = p.F_LastModifyTime }).ToList(); var oldData = oldDb.Sys_Organize.ToList(); var interList = newData.Intersect(oldData).ToList(); //取交集 (不作任何操作) oldData = oldData.Except(interList).ToList(); //将交集从内存删除,以节省内存空间并减少循环次数 newData = newData.Except(interList).ToList(); var addList = newData.Except(oldData).ToList(); //取差集 (新增和修改数据) var idList = oldData.Select(p => p.F_Id).ToList(); var endList = new List <Sys_Organize>(); foreach (var org in addList) { if (org.F_ParentId == null) { org.F_ParentId = "2"; } if (idList.Contains(org.F_Id)) { oldDb.Set <Sys_Organize>().Where(p => p.F_Id == org.F_Id).Update(p => new Sys_Organize { F_ParentId = org.F_ParentId, F_FullName = org.F_FullName, F_CreatorTime = org.F_CreatorTime, F_LastModifyTime = org.F_LastModifyTime }); } else { endList.Add(org); } } //newDb.BulkDelete(newDb.OrganizationInfo_stu.ToList()); //操作完成后,删除取出来的数据 //oldDb.BulkInsert(endList); oldDb.Sys_Organize.AddRange(endList); oldDb.SaveChanges(); oldDb.Dispose(); newDb.Dispose(); sw.Stop(); Console.WriteLine("南航项目:同步组织机构信息结束 --> 合计耗时:" + sw.ElapsedMilliseconds / 1000 + "s"); }
/// <summary> /// 处理同步组织机构信息 /// </summary> public void ProcessOrgInfo(EFContext db) { Console.WriteLine("开始同步教师组织机构信息: 南航项目 --> " + DateTime.Now.ToLocalTime()); var sw = new Stopwatch(); sw.Start(); //校方数据集(分为两种:修改数据和新增数据) var newDb = new NHModel(); var newData = newDb.Set <Teacher_Organ>().AsNoTracking().Select(p => new OrganMoudle { Id = p.OrgId, Name = p.OrgName, ParentId = p.ParentOrgId, EnCode = p.OrgId }).ToList(); //获取生产环境数据库数据集 var oldData = db.Set <Org>().AsNoTracking().Select(p => new OrganMoudle { Id = p.Id, Name = p.Name, ParentId = p.ParentId, EnCode = p.Code }).ToList(); var addList = newData.Except(oldData).ToList(); //取差集 (新增和修改数据) var idList = oldData.Select(p => p.Id).ToList(); var endList = new List <Org>(); foreach (var org in addList) { if (org.ParentId == null) { org.ParentId = "3"; } if (idList.Contains(org.Id)) { db.Set <Org>().Where(p => p.Id.Equals(org.Id)).Update(p => new Org { ParentId = org.ParentId, Name = org.Name }); } else { endList.Add(new Org() { Id = org.Id, Name = org.Name, ParentId = org.ParentId, Code = org.EnCode }); } } //newDb.BulkDelete(newDb.OrganizationInfoes.ToList()); //操作完成后,删除取出来的数据 //oldDb.BulkInsert(endList); db.Set <Org>().AddRange(endList); db.SaveChanges(); newDb.Dispose(); sw.Stop(); Console.WriteLine("南航项目:同步组织机构信息结束 --> 合计耗时:" + sw.ElapsedMilliseconds / 1000 + "s"); }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) Sys_User /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentSysUser(NanHangAccept oldDb, NHModel newDb) { var oldData = oldDb.Sys_User.ToList(); var newData = newDb.StudentInfoes.Select(p => new Sys_User { F_Id = p.studentId, F_RealName = p.studentName, F_Account = p.LoginId, F_OrganizeId = p.orgId, F_MobilePhone = p.studentPhone, F_CreatorTime = DateTime.Now, F_DepartmentId = p.studentClass, F_HeadIcon = p.ImgUri }); var Ids = oldData.Select(p => p.F_Id).ToList(); var insertList = new List <Sys_User>(); foreach (var sysUser in newData) { sysUser.F_RoleId = "student"; sysUser.F_DutyId = "studentDuty"; sysUser.F_CreatorTime = DateTime.Now; sysUser.F_DeleteMark = false; sysUser.F_EnabledMark = true; if (Ids.Contains(sysUser.F_Id)) { oldDb.Set <Sys_User>().Where(p => p.F_Id == sysUser.F_Id).Update(p => new Sys_User { F_RealName = sysUser.F_RealName, F_Account = sysUser.F_Account, F_OrganizeId = sysUser.F_OrganizeId, F_MobilePhone = sysUser.F_MobilePhone, F_RoleId = sysUser.F_RoleId, F_DutyId = sysUser.F_DutyId, F_CreatorTime = sysUser.F_CreatorTime, F_DeleteMark = false, F_EnabledMark = true, F_DepartmentId = sysUser.F_DepartmentId }); } else { insertList.Add(sysUser); } } //oldDb.BulkInsert(insertList); oldDb.Sys_User.AddRange(insertList); oldDb.SaveChanges(); }
/// <summary> /// 简化程序(把教师数据分为四张表,分为四个方法进行) Sys_User /// </summary> /// <param name="oldDb"></param> /// <param name="newData"></param> public void ProcessSchoolTeacherSysUser(NanHangAccept oldDb, NHModel newDb) { var newData = newDb.TeacherInfoes.Select(p => new Sys_User { F_Id = p.teacherId, F_RealName = p.teacherName, F_Account = p.LoginId, F_OrganizeId = p.orgId, F_MobilePhone = p.teacherPhone, F_CreatorTime = DateTime.Now, F_DepartmentId = p.orgId, F_HeadIcon = p.ImgUri }); var oldData = oldDb.Sys_User.ToList(); var addList = newData; var Ids = oldData.Select(p => p.F_Id).ToList(); var InsertList = new List <Sys_User>(); foreach (var tea in addList) { tea.F_RoleId = "teacher"; tea.F_DutyId = "teacherDuty"; tea.F_CreatorTime = DateTime.Now; tea.F_DeleteMark = false; tea.F_EnabledMark = true; if (Ids.Contains(tea.F_Id)) { oldDb.Set <Sys_User>().Where(p => p.F_Id == tea.F_Id).Update(p => new Sys_User { F_RealName = tea.F_RealName, F_Account = tea.F_Account, F_OrganizeId = tea.F_OrganizeId, F_MobilePhone = tea.F_MobilePhone, F_RoleId = tea.F_RoleId, F_DutyId = tea.F_DutyId, F_CreatorTime = tea.F_CreatorTime, F_DeleteMark = false, F_EnabledMark = true, F_DepartmentId = tea.F_DepartmentId }); } else { InsertList.Add(tea); } } //oldDb.BulkInsert(InsertList); oldDb.Sys_User.AddRange(InsertList); oldDb.SaveChanges(); }
/// <summary> /// /// </summary> /// <param name="db"></param> /// <param name="newDb"></param> public void ProcessStudentSysUserRole(EFContext db, NHModel newDb) { var newData = newDb.Set <StudentInfo>().AsNoTracking().Select(p => p.studentId).ToList(); var oldData = db.Set <UserRole>().AsNoTracking().Select(p => p.UserId).ToList(); var AddData = newData.Except(oldData).ToList(); var ListData = new List <UserRole>(); if (null != AddData && AddData.Count() > 0) { foreach (var s in AddData) { var r = new UserRole(); r.UserId = s; r.RoleId = "student"; ListData.Add(r); } } db.Set <UserRole>().AddRange(ListData); db.SaveChanges(); }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) Dorm_Dorm /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentDormInfo(NanHangAccept oldDb, NHModel newDb) { var oldData = oldDb.dorm_dorm.Select(p => p.F_Title).ToList(); var newData = newDb.StudentInfoes.Select(p => p.studentBuildingId).ToList(); var InsertData = newData.Distinct().Except(oldData).ToList(); //取出新增的宿舍信息(先去重,然后再取差集) var BuildData = InsertData.Select(p => p.Trim().Replace("栋", "#").Split('#')[0]).Distinct().ToList(); //新增至宿舍楼栋表(dorm_building) List <dorm_building> BuildArr = BuildData.Select(p => new dorm_building { id = Guid.NewGuid().ToString(), building_no = p }).ToList(); var InsertList = new List <dorm_dorm>(); foreach (var data in InsertData) { string[] split = data.Trim().Replace("栋", "#").Split('#'); if (split.Length == 2) { var dorm = new dorm_dorm(); dorm.F_Id = Guid.NewGuid().ToString(); dorm.F_Memo = data; dorm.F_CreatorTime = DateTime.Now; dorm.F_Building_No = split[0]; //楼栋 dorm.F_Floor_No = split[1].Replace(split[1].Substring(1), ""); //楼层 dorm.F_Unit_No = BuildArr.Where(p => p.building_no.Equals(split[0])).Select(p => p.id).First(); //单元 (作为楼栋表 dorm_building 的关联ID) dorm.F_Classroom_No = split[1]; //宿舍号 dorm.F_Title = data; //完整的宿舍编号 InsertList.Add(dorm); } } //oldDb.BulkInsert(InsertList); oldDb.dorm_dorm.AddRange(InsertList); oldDb.dorm_building.AddRange(BuildArr); oldDb.SaveChanges(); }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) Sys_UserLogOn /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentSysUserLogOn(NanHangAccept oldDb, NHModel newDb) { var newData = newDb.StudentInfoes.Select(p => new Sys_UserLogOn { F_UserId = p.studentId }); var oldData = oldDb.Sys_UserLogOn.ToList(); var Ids = oldData.Select(p => p.F_UserId).ToList(); var InsertList = new List <Sys_UserLogOn>(); foreach (var logOn in newData) { if (!Ids.Contains(logOn.F_UserId)) { logOn.F_Id = logOn.F_UserId; logOn.F_UserSecretkey = Md5EncryptHelper.Encrypt("0000", 16).ToLower(); logOn.F_UserPassword = Md5EncryptHelper.Encrypt(DESEncryptHelper.Encrypt(Md5EncryptHelper.Encrypt("0000", 32).ToLower(), logOn.F_UserSecretkey).ToLower(), 32).ToLower(); InsertList.Add(logOn); } } //oldDb.BulkInsert(InsertList); oldDb.Sys_UserLogOn.AddRange(InsertList); oldDb.SaveChanges(); }
public static void downImage() { var model = new NHModel(); var stuList = model.StudentInfoes.Where(p => p.studentBuildingId.Contains("12栋") || p.studentBuildingId.Contains("11栋")).ToList(); var dt = new DataTable(); var dc1 = new DataColumn("姓名", Type.GetType("System.String")); var dc2 = new DataColumn("性别", Type.GetType("System.String")); var dc3 = new DataColumn("学工号", Type.GetType("System.String")); var dc4 = new DataColumn("所属组织", Type.GetType("System.String")); var dc5 = new DataColumn("身份证号", Type.GetType("System.String")); var dc6 = new DataColumn("类别", Type.GetType("System.String")); dt.Columns.Add(dc1); dt.Columns.Add(dc2); dt.Columns.Add(dc3); dt.Columns.Add(dc4); dt.Columns.Add(dc5); dt.Columns.Add(dc6); foreach (var d in stuList) { //string filepath = System.AppDomain.CurrentDomain.BaseDirectory; string fileName = "E:\\img\\" + d.studentNo + ".png"; bool t = GetImageBase64Str.DownLoadPic(d.ImgUri, fileName); if (t) { var dr = dt.NewRow(); dr["姓名"] = d.studentName; dr["性别"] = d.studentSex == "0"?"女":"男"; dr["学工号"] = d.studentNo; dr["所属组织"] = "南昌航空大学"; dr["身份证号"] = d.certificateNo; dr["类别"] = "学生"; dt.Rows.Add(dr); } } }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) School_Students /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentInfo(EFContext oldDb, NHModel newDb) { var newData = newDb.Set <StudentInfo>().AsNoTracking().Select(p => new StudentMoudle { Id = p.studentId, Name = p.studentName, UserId = p.studentId, StudentNumber = p.studentNo, ClassId = p.studentClass, Gender = p.studentSex, CredType = p.certificateType, CredNumber = p.certificateNo, FacePic = p.ImgUri, MobilePhone = p.studentPhone }).ToList(); var oldData = oldDb.Set <Student>().Select(p => new StudentMoudle { Id = p.Id, Name = p.Name, UserId = p.UserId, StudentNumber = p.StudentNumber, ClassId = p.ClassId, Gender = p.Gender, CredType = p.CredType, CredNumber = p.CredNumber, FacePic = p.FacePic, MobilePhone = p.MobilePhone }).ToList(); var Ids = oldData.Select(p => p.Id).ToList(); var DataList = newData.Except(oldData).ToList(); var insertList = new List <Student>(); var SqlUpdateList = oldDb.Set <Student>().ToList(); var ProUpdateList = DataList.Where(p => Ids.Contains(p.Id)).ToList(); var i = 0; foreach (var student in SqlUpdateList) { i++; var stu = ProUpdateList.Where(s => s.Id.Equals(student.Id)).FirstOrDefault(); if (stu == null) { continue; } var bbb = i; student.Id = stu.Id; student.Name = stu.Name; student.UserId = stu.UserId; student.StudentNumber = stu.StudentNumber; student.ClassId = stu.ClassId; student.Gender = stu.Gender; student.CredType = stu.CredType; student.CredNumber = stu.CredNumber; student.MobilePhone = stu.MobilePhone; student.GradeId = oldDb.Set <Org>().AsNoTracking().Where(p => p.Id.Equals(stu.ClassId)).Select(p => p.ParentId).FirstOrDefault(); student.DivisId = oldDb.Set <Org>().AsNoTracking().Where(p => p.Id.Equals(stu.GradeId)).Select(p => p.ParentId).FirstOrDefault(); } oldDb.SaveChanges(); DataList = DataList.Where(p => !Ids.Contains(p.Id)).ToList(); foreach (var stu in DataList) { //if (Ids.Contains(stu.Id)) //{ // stu.GradeId = oldDb.Set<Organ>().AsNoTracking().Where(p => p.Id.Equals(stu.ClassId)).Select(p => p.ParentId).ToList().FirstOrDefault(); // stu.DivisId = oldDb.Set<Organ>().AsNoTracking().Where(p => p.Id.Equals(stu.GradeId)).Select(p => p.ParentId).ToList().FirstOrDefault(); // UpdateList.Add(new Student() { // Id = stu.Id, // Name = stu.Name, // UserId = stu.UserId, // StudentNumber = stu.StudentNumber, // ClassId = stu.ClassId, // Gender = stu.Gender, // CredType = stu.CredType, // CredNumber = stu.CredNumber, // MobilePhone = stu.MobilePhone, // GradeId = stu.GradeId, // DivisId = stu.DivisId // }); //oldDb.Set<Student>().Where(p => p.Id.Equals(stu.Id)).UpdateAsync(p => new Student //{ // Id = stu.Id, // Name = stu.Name, // UserId = stu.UserId, // StudentNumber = stu.StudentNumber, // ClassId = stu.ClassId, // Gender = stu.Gender, // CredType = stu.CredType, // CredNumber = stu.CredNumber, // MobilePhone = stu.MobilePhone, // GradeId = stu.GradeId, // DivisId = stu.DivisId //}); //var data = oldDb.Set<Student>().Where(p => p.Id.Equals(stu.Id)).ToList(); //foreach(var student in data) //{ // student.Id = stu.Id; // student.Name = stu.Name; // student.UserId = stu.UserId; // student.StudentNumber = stu.StudentNumber; // student.ClassId = stu.ClassId; // student.Gender = stu.Gender; // student.CredType = stu.CredType; // student.CredNumber = stu.CredNumber; // student.MobilePhone = stu.MobilePhone; // student.GradeId = stu.GradeId; // student.DivisId = stu.DivisId; //} //oldDb.SaveChanges(); //} //else //{ insertList.Add(new Student() { Id = stu.Id, Name = stu.Name, UserId = stu.UserId, StudentNumber = stu.StudentNumber, ClassId = stu.ClassId, Gender = stu.Gender, CredType = stu.CredType, CredNumber = stu.CredNumber, MobilePhone = stu.MobilePhone, FacePic = stu.FacePic, GradeId = oldDb.Set <Org>().AsNoTracking().Where(p => p.Id.Equals(stu.ClassId)).Select(p => p.ParentId).FirstOrDefault(), DivisId = oldDb.Set <Org>().AsNoTracking().Where(p => p.Id.Equals(stu.GradeId)).Select(p => p.ParentId).FirstOrDefault() }); //} } oldDb.Set <Student>().AddRange(insertList); oldDb.SaveChanges(); }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) School_Students /// </summary> /// <param name="oldDb"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentInfo(NanHangAccept oldDb, NHModel newDb) { var oldData = oldDb.School_Students.ToList(); var newData = newDb.StudentInfoes.Select(p => new School_Students { F_Id = p.studentId, F_Name = p.studentName, F_Users_ID = p.studentId, F_StudentNum = p.studentNo, //F_Class_ID = p.orgId, F_Class_ID = p.studentClass, F_Gender = p.studentSex, F_CredType = p.certificateType, F_CredNum = p.certificateNo, F_Introduction = p.studentMeto, F_FacePic_File = p.ImgUri, F_Tel = p.studentPhone }).ToList(); var Ids = oldData.Select(p => p.F_Id).ToList(); var insertList = new List <School_Students>(); foreach (var stu in newData) { string GradeID = oldDb.Sys_Organize.Where(p => p.F_Id == stu.F_Class_ID).Select(p => p.F_ParentId).ToList().FirstOrDefault(); stu.F_Grade_ID = GradeID; stu.F_Divis_ID = oldDb.Sys_Organize.Where(p => p.F_Id == GradeID).Select(p => p.F_ParentId).ToList().FirstOrDefault(); stu.F_DeleteMark = false; stu.F_EnabledMark = true; if (Ids.Contains(stu.F_Id)) { oldDb.Set <School_Students>().Where(p => p.F_Id == stu.F_Id).Update(p => new School_Students { F_Id = stu.F_Id, F_Name = stu.F_Name, F_Users_ID = stu.F_Users_ID, F_StudentNum = stu.F_StudentNum, F_Class_ID = stu.F_Class_ID, F_Gender = stu.F_Gender, F_CredType = stu.F_CredType, F_CredNum = stu.F_CredNum, F_Introduction = stu.F_Introduction, //F_FacePic_File = stu.F_FacePic_File, F_Tel = stu.F_Tel, F_Grade_ID = stu.F_Grade_ID, F_Divis_ID = stu.F_Divis_ID, F_DeleteMark = false, F_EnabledMark = true }); //修改大华闸机学生数据 //PersonMoudle personMoudle = contactMoudleStudent(oldDb, stu.F_Id); //personMoudle.roleId = "student001"; //DHAccount.PUSH_DH_UPDATE_PERSON(personMoudle); } else { insertList.Add(stu); } } //oldDb.BulkInsert(insertList); oldDb.School_Students.AddRange(insertList); oldDb.SaveChanges(); //修改sys_user表的主机id为自动生成的ID,并修改student表的sys_userID为sys_user表生成的主机id //string updateSql = "update student set student.F_User_ID = sysUser.F_ID from sys_user sysUser, school_student student where sysUser.F_Account = student.F_User_ID"; //SqlHelper.ExecuteNonQuery(updateSql); //开始增量数据至大华闸机 //foreach (School_Students stu in insertList) //{ // PersonMoudle personMoudle = contactMoudleStudent(oldDb, stu.F_Id); // personMoudle.roleId = "student001"; // DHAccount.PUSH_DH_ADD_PERSON(personMoudle); //} }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) Sys_User /// </summary> /// <param name="db"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentSysUser(EFContext db, NHModel newDb) { var newData = newDb.Set <StudentInfo>().AsNoTracking().Select(p => new UserMoudle { Id = p.studentId, Name = p.studentName, Account = p.LoginId, OrganId = p.orgId, MobilePhone = p.studentPhone, HeadIcon = p.ImgUri }).ToList(); var oldData = db.Set <User>().AsNoTracking().Select(p => new UserMoudle { Id = p.Id, Name = p.Name, Account = p.Account, OrganId = p.OrganId, MobilePhone = p.MobilePhone, HeadIcon = p.HeadIcon }).ToList(); var Ids = oldData.Select(p => p.Id).ToList(); var DataList = newData.Except(oldData).ToList(); var insertList = new List <User>(); var SqlUpdateList = db.Set <User>().ToList(); foreach (var sql in SqlUpdateList) { var stu = DataList.Where(p => p.Id.Equals(sql.Id)).FirstOrDefault(); if (stu == null) { continue; } sql.Name = sql.Name; sql.Account = sql.Account; sql.OrganId = sql.OrganId; sql.MobilePhone = sql.MobilePhone; sql.DutyId = "studentDuty"; } DataList = DataList.Where(p => !Ids.Contains(p.Id)).ToList(); foreach (var sysUser in DataList) { //if (Ids.Contains(sysUser.Id)) //{ // db.Set<User>().Where(p => p.Id.Equals(sysUser.Id)).Update(p => new User // { // Name = sysUser.Name, // Account = sysUser.Account, // OrganId = sysUser.OrganId, // MobilePhone = sysUser.MobilePhone, // DutyId = "studentDuty" // }); //} //else //{ insertList.Add(new User() { Id = sysUser.Id, Name = sysUser.Name, Account = sysUser.Account, OrganId = sysUser.OrganId, MobilePhone = sysUser.MobilePhone, HeadIcon = sysUser.HeadIcon, DutyId = "studentDuty" }); //} } db.Set <User>().AddRange(insertList); db.SaveChanges(); }
/// <summary> /// 简化程序(把学生数据分为六张表,分为六个方法进行) Dorm_Dorm /// </summary> /// <param name="db"></param> /// <param name="newDb"></param> public void ProcessSchoolStudentDormInfo(EFContext db, NHModel newDb) { var newData = newDb.Set <StudentInfo>().AsNoTracking().Select(p => new DormStudentMoudle { StudentId = p.studentId, Description = p.studentBuildingId, Gender = p.studentSex }).ToList(); //添加到 zhxy_Building表 var BuildData = newData.Where(p => p.Description != null && p.Description.Contains("栋")).Select(p => p.Description.Split('栋')[0].Replace(" ", "").Replace("海院A", "海A").Replace("海院B", "海B")).Distinct().ToList(); //新增至宿舍楼栋表(dorm_building) var oldBuildData = db.Set <Building>().AsNoTracking().Select(p => p.BuildingNo).ToList(); var AddBuild = BuildData.Except(oldBuildData).ToList(); if (null != AddBuild && AddBuild.Count() > 0) { var add = new List <Building>(); foreach (var s in AddBuild) { var b = new Building(); b.BuildingNo = s; add.Add(b); } db.Set <Building>().AddRange(add); db.SaveChanges(); } //添加到 zhxy_dorm 表 var NewRoomTitle = newData.Where(p => p.Description != null && p.Description.Contains("栋")).Select(p => p.Description).Distinct().ToList(); var RoomTitle = db.Set <DormRoom>().AsNoTracking().Select(p => p.Building.BuildingNo + "栋" + p.RoomNumber).ToList(); var AddRoomInfo = NewRoomTitle.Except(RoomTitle).ToList(); if (AddRoomInfo != null && AddRoomInfo.Count() > 0) { var AddDorm = new List <DormRoom>(); foreach (var title in AddRoomInfo) { var BuildNo = title.Split('栋'); if (BuildNo != null && BuildNo.Count() == 2) { var d = new DormRoom(); var build = BuildNo[0]; d.BuildingId = db.Set <Building>().AsNoTracking().Where(p => p.BuildingNo.Equals(build)).Select(s => s.Id).FirstOrDefault(); d.FloorNumber = BuildNo[1].Replace(BuildNo[1].Substring(1), ""); d.RoomNumber = BuildNo[1]; d.Title = title; AddDorm.Add(d); } } db.Set <DormRoom>().AddRange(AddDorm); db.SaveChanges(); } //添加到zhxy_dorm_student 表 var ListDataNew = new List <DormStudentMoudle>(); foreach (var n in newData) { var D = new DormStudentMoudle(); D.DormId = db.Set <DormRoom>().AsNoTracking().Where(p => p.Title.Equals(n.Description)).Select(p => p.Id).FirstOrDefault(); D.StudentId = n.StudentId; D.Gender = n.Gender; ListDataNew.Add(D); } var ListDataOld = db.Set <DormStudent>().AsNoTracking().Select(p => new DormStudentMoudle { DormId = p.DormId, StudentId = p.StudentId, Gender = p.Gender }).ToList(); var AddList = ListDataNew.Except(ListDataOld).ToList(); var FinalAddList = new List <DormStudent>(); foreach (var s in AddList) { var StudentIds = ListDataOld.Select(p => p.StudentId).ToList(); if (StudentIds.Contains(s.StudentId)) { db.Set <DormStudent>().Where(p => p.StudentId.Equals(s.StudentId)).Update(p => new DormStudent { DormId = s.DormId, Gender = s.Gender }); } else { FinalAddList.Add(new DormStudent() { DormId = s.DormId, Gender = s.Gender, StudentId = s.StudentId }); } } db.Set <DormStudent>().AddRange(FinalAddList); db.SaveChanges(); }
/// <summary> /// 简化程序(把教师数据分为四张表,分为四个方法进行) School_Teachers /// </summary> /// <param name="oldDb"></param> /// <param name="newData"></param> public void ProcessSchoolTeacherInfo(NanHangAccept oldDb, NHModel newDb) { //获取学校的数据集 var newData = newDb.TeacherInfoes.Select(p => new School_Teachers { F_Id = p.teacherId, F_Name = p.teacherName, F_User_ID = p.teacherId, F_Divis_ID = p.orgId, F_Num = p.teacherNo, F_MobilePhone = p.teacherPhone, F_CredType = p.certificateType, F_CredNum = p.certificateNo, F_FacePhoto = p.ImgUri, F_Gender = p.Sex.ToString() }).ToList(); //获取本地生产环境数据集 var oldData = oldDb.School_Teachers.ToList(); var addList = newData.Except(oldData).ToList(); //取新数据对于生产环境数据的差集,这个结果就是添加或修改的数据集 var ids = oldData.Select(p => p.F_Id).ToList(); var InsertList = new List <School_Teachers>(); //批量新增数据集 foreach (var tea in addList) { if (ids.Contains(tea.F_Id)) { oldDb.Set <School_Teachers>().Where(p => p.F_Id == tea.F_Id).Update(p => new School_Teachers { F_Name = tea.F_Name, F_User_ID = tea.F_User_ID, F_Divis_ID = tea.F_Divis_ID, F_Num = tea.F_Num, F_MobilePhone = tea.F_MobilePhone, F_CredType = tea.F_CredType, F_CredNum = tea.F_CredNum, //F_FacePhoto = tea.F_FacePhoto, F_LastModifyTime = DateTime.Now, F_Gender = tea.F_Gender, F_DeleteMark = false, F_EnabledMark = true }); //修改大华闸机学生数据 //PersonMoudle personMoudle = contackMoudleTeacher(oldDb, tea.F_Id); //personMoudle.roleId = "teacher001"; //DHAccount.PUSH_DH_UPDATE_PERSON(personMoudle); } else { tea.F_CreatorTime = DateTime.Now; tea.F_LastModifyTime = DateTime.Now; tea.F_DeleteMark = false; tea.F_EnabledMark = true; InsertList.Add(tea); } } //oldDb.BulkInsert(InsertList); oldDb.School_Teachers.AddRange(InsertList); oldDb.SaveChanges(); //修改sys_user表的主机id为自动生成的ID,并修改teacher表的sys_userID为sys_user表生成的主机id //string updateSql = "update teacher set teacher.F_User_ID = sysUser.F_ID from sys_user sysUser, school_teacher teacher where sysUser.F_Account = teacher.F_User_ID"; //SqlHelper.ExecuteNonQuery(updateSql); //开始增量数据至大华闸机 //foreach (School_Teachers teacher in InsertList) //{ // PersonMoudle personMoudle = contackMoudleTeacher(oldDb, teacher.F_Id); // personMoudle.roleId = "teacher001"; // DHAccount.PUSH_DH_ADD_PERSON(personMoudle); //} }
/// <summary> /// 简化程序(把教师数据分为四张表,分为四个方法进行) School_Teachers /// </summary> /// <param name="oldDb"></param> /// <param name="newData"></param> public void ProcessSchoolTeacherInfo(EFContext db, NHModel newDb) { //获取学校的数据集 var newData = newDb.Set <TeacherInfo>().AsNoTracking().Select(p => new TeacherMoudle { Id = p.teacherId, Name = p.teacherName, UserId = p.teacherId, OrganId = p.orgId, JobNumber = p.teacherNo, MobilePhone = p.teacherPhone, CredType = p.certificateType, CredNumber = p.certificateNo, FacePhoto = p.ImgUri, Gender = p.sex ? "1" : "0" }).ToList(); //获取本地生产环境数据集 var oldData = db.Set <Teacher>().AsNoTracking().Select(p => new TeacherMoudle { Id = p.Id, Name = p.Name, UserId = p.UserId, OrganId = p.OrganId, JobNumber = p.JobNumber, MobilePhone = p.MobilePhone, CredType = p.CredType, CredNumber = p.CredNumber, FacePhoto = p.FacePhoto, Gender = p.Gender }).ToList(); var addList = newData.Except(oldData).ToList(); //取新数据对于生产环境数据的差集,这个结果就是添加或修改的数据集 var ids = oldData.Select(p => p.Id).ToList(); var InsertList = new List <Teacher>(); //批量新增数据集 foreach (var tea in addList) { if (ids.Contains(tea.Id)) { db.Set <Teacher>().Where(p => p.Id.Equals(tea.Id)).Update(p => new Teacher { Name = tea.Name, UserId = tea.UserId, OrganId = tea.OrganId, JobNumber = tea.JobNumber, MobilePhone = tea.MobilePhone, CredType = tea.CredType, CredNumber = tea.CredNumber, Gender = tea.Gender }); } else { InsertList.Add(new Teacher() { Id = tea.Id, Name = tea.Name, UserId = tea.UserId, OrganId = tea.OrganId, JobNumber = tea.JobNumber, MobilePhone = tea.MobilePhone, CredType = tea.CredType, CredNumber = tea.CredNumber, FacePhoto = tea.FacePhoto, Gender = tea.Gender }); } } db.Set <Teacher>().AddRange(InsertList); db.SaveChanges(); }