Esempio n. 1
0
        /// <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();
        }
Esempio n. 2
0
        /// <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();
        }
Esempio n. 3
0
        /// <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");
        }
Esempio n. 4
0
        /// <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();
        }
Esempio n. 5
0
        /// <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");
        }
Esempio n. 6
0
        /// <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();
        }
Esempio n. 7
0
        /// <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");
        }
Esempio n. 8
0
        /// <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();
        }
Esempio n. 9
0
        /// <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();
        }
Esempio n. 10
0
        /// <summary>
        /// 同步之后的表,添加各个登记的标识:
        /// </summary>
        public void ProcessSysOrgan()
        {
            var oldDb = new NanHangAccept();
            //修改学生年级的 F_CategoryId 为 "Division"
            string UpdateDivSql = "UPDATE organ2 set organ2.F_CategoryId='Division' from [dbo].[Sys_Organize] organ1  left join Sys_Organize organ2 on organ2.F_ParentId=organ1.F_id where organ1.F_ParentId='2'";
            //修改学生的学部()
            string UpdateGradeSql = "UPDATE organ3 set organ3.F_CategoryId='Grade' from[dbo].[Sys_Organize] organ1 left join Sys_Organize organ2 on organ2.F_ParentId = organ1.F_id left join Sys_Organize organ3 on organ3.F_ParentId = organ2.F_id where organ1.F_ParentId = '2'";
            //修改学生的班级
            string UpdateClassSql = "UPDATE organ4 set organ4.F_CategoryId='Class' from[dbo].[Sys_Organize] organ1 left join Sys_Organize organ2 on organ2.F_ParentId = organ1.F_id left join Sys_Organize organ3 on organ3.F_ParentId = organ2.F_id left join Sys_Organize organ4 on organ4.F_ParentId = organ3.F_id where organ1.F_ParentId = '2'";

            oldDb.Database.ExecuteSqlCommand(UpdateDivSql);
            oldDb.Database.ExecuteSqlCommand(UpdateGradeSql);
            oldDb.Database.ExecuteSqlCommand(UpdateClassSql);
        }
Esempio n. 11
0
        public static PersonMoudle contactMoudleStudent(NanHangAccept oldDb, string id)
        {
            string sql = "SELECT NULL\n" +
                         "\taccessCardsn,\n" +
                         "\ta.F_StudentNum code,\n" +
                         "\ta.F_Class_ID colleageClass,\n" +
                         "\ta.F_Divis_ID colleageCode,\n" +
                         "\tNULL colleageGrade,\n" +
                         "\ta.F_Grade_ID colleageMajor,\n" +
                         "\ta.F_Tel contactNum,\n" +
                         "\tb.F_Bed_ID dormitoryBed,\n" +
                         "\tc.F_Building_No dormitoryCode,\n" +
                         "\tc.F_Floor_No dormitoryFloor,\n" +
                         "\tc.F_Title dormitoryRoom,\n" +
                         "\ta.F_CredNum idCode,\n" +
                         "\ta.F_Name name,\n" +
                         "\tNULL orgId,\n" +
                         "\tNULL pageNum,\n" +
                         "\tNULL pageSize,\n" +
                         "\tNULL param,\n" +
                         "\tNULL rfidCardsn,\n" +
                         "\tNULL roleId,\n" +
                         "\ta.F_Gender sex,\n" +
                         "\tNULL colleageArea,\n" +
                         "\tNULL dormitoryArea,\n" +
                         "\tc.F_Leader_Name dormitoryLeader,\n" +
                         "\td.F_Tel dormitoryLeaderPhone,\n" +
                         "\tNULL emergencyPerson,\n" +
                         "\tNULL emergencyPersonPhone,\n" +
                         "\tNULL instructorCode,\n" +
                         "\tNULL instructorName,\n" +
                         "\tNULL instructorPhone,\n" +
                         "\tNULL managementClassList,\n" +
                         "\tNULL photoBase64,\n" +
                         "\ta.F_FacePic_File photoUrl,\n" +
                         "\tNULL resume \n" +
                         "FROM\n" +
                         "\t[dbo].[School_Students] a\n" +
                         "\tLEFT JOIN Dorm_DormStudent b ON a.F_Id = b.F_Student_ID\n" +
                         "\tLEFT JOIN Dorm_Dorm c ON b.F_DormId = c.F_Id\n" +
                         "\tLEFT JOIN School_Students d ON c.F_Leader_ID = d.F_Id \n" +
                         "WHERE\n" +
                         "\ta.F_DeleteMark IS NULL \n" +
                         "\tAND c.F_DeleteMark IS NULL \n" +
                         "\tAND a.F_Id = '" + id + "'";

            return(oldDb.Database.SqlQuery <PersonMoudle>(sql).FirstOrDefault());
        }
Esempio n. 12
0
        public static PersonMoudle contackMoudleTeacher(NanHangAccept oldDb, string id)
        {
            string sql = "SELECT \n" +
                         "       NULL accessCardsn,\n" +
                         "        a.F_Num code,\n" +
                         "        NULL colleageClass,\n" +
                         "        NULL colleageCode,\n" +
                         "        NULL colleageGrade,\n" +
                         "        NULL colleageMajor,\n" +
                         "        a.F_MobilePhone contactNum,\n" +
                         "        NULL dormitoryBed,\n" +
                         "        NULL dormitoryCode,\n" +
                         "        NULL dormitoryFloor,\n" +
                         "        NULL dormitoryRoom,\n" +
                         "        a.F_CredNum idCode,\n" +
                         "        a.F_Name name,\n" +
                         "        a.F_Divis_ID orgId,\n" +
                         "        NULL pageNum,\n" +
                         "        NULL pageSize,\n" +
                         "        NULL param,\n" +
                         "        NULL rfidCardsn,\n" +
                         "        NULL roleId,\n" +
                         "        a.F_Gender sex,\n" +
                         "        NULL colleageArea,\n" +
                         "        NULL dormitoryArea,\n" +
                         "        NULL dormitoryLeader,\n" +
                         "        NULL dormitoryLeaderPhone,\n" +
                         "        NULL emergencyPerson,\n" +
                         "        NULL emergencyPersonPhone,\n" +
                         "        NULL instructorCode,\n" +
                         "        NULL instructorName,\n" +
                         "        NULL instructorPhone,\n" +
                         "        NULL managementClassList,\n" +
                         "        NULL photoBase64,\n" +
                         "        a.F_FacePhoto photoUrl,\n" +
                         "        NULL resume\n" +
                         "FROM\n" +
                         "        [dbo].[School_Teachers] a\n" +
                         "WHERE\n" +
                         "        a.F_DeleteMark is null\n" +
                         "        AND a.F_Id = '" + id + "'";

            return(oldDb.Database.SqlQuery <PersonMoudle>(sql).FirstOrDefault());
        }
Esempio n. 13
0
        /// <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();
        }
Esempio n. 14
0
        /// <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();
        }
Esempio n. 15
0
        /// <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);
            //}
        }
Esempio n. 16
0
        /// <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);
            //}
        }