Пример #1
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();
        }
Пример #2
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();
        }
Пример #3
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();
        }
Пример #4
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();
        }
Пример #5
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");
        }
Пример #6
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();
        }
Пример #7
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();
        }
Пример #8
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();
        }
Пример #9
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();
        }
Пример #10
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);
            //}
        }
Пример #11
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);
            //}
        }