using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Transactions; using EMIS.Entities; using EMIS.ViewModel; using EMIS.ViewModel.CacheManage; using EMIS.ViewModel.UniversityManage.SpecialtyClassManage; using EMIS.CommonLogic.SystemServices; namespace EMIS.ExtensionLogic.ServiceLogic.EnrollManage { public class RecruitSpecialtyServices : EMIS.CommonLogic.EnrollManage.SpecialtyManage.RecruitSpecialtyServices { /// /// 流水号生成Services /// public Lazy SerialNumberServices { get; set; } /// /// 广东松山专业班级生成规则 /// /// /// public override string GenerateClass(List recruitSpecialtyIDs) { //生成规则如下: //院系编码(5位):院系所代码后2位+学制1位(直接取值)+2位流水号,拼出来,如:01201、01303 //院系名称:专业名称(默认),如:电气自动化技术(分方向的情况下的命名需手动设置) //2位流水号:按院系所代码、学制、培养层次、学习形式、专业名称进行排序取2位流水号 //年级专业编码(8位):年级+院系所代码后2位+2位流水号,拼出来,如:20170101、20170103 //年级专业名称:年级+"级"+院系名称或专业名称(院系名称优先),如:2017级电气自动化技术(分方向的情况下的命名需手动设置) //2位流水号:按院系所代码、学制、培养层次、学习形式、专业名称进行排序取2位流水号 //注:此处2位流水号可与对应的院系编码2位流水号不一致,不然会出现年级专业编码重复的问题 //班级编码(9位):年级专业编码+1位流水号,拼出来,如:201701121、201701131 //班级名称:年级+"级"+专业名称或年级专业名称(年级专业名称优先)+流水号(可为空)+"班",如:2017级应用电子技术班、2017级物联网应用技术1班 //注:班级名称的命名有无流水号的问题 try { //查询招生专业信息 var recruitSpecialtyList = recruitSpecialtyDAL.recruitSpecialtyRepository.GetList(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID), x => x.CF_College, x => x.CF_Specialty) .OrderBy(x => x.CF_College.No).ThenByDescending(x => x.GradeID).ThenBy(x => x.CF_Specialty.LearnSystem).ThenBy(x => x.CF_Specialty.EducationID) .ThenBy(x => x.CF_Specialty.LearningformID).ThenBy(x => x.CF_Specialty.StandardID).ToList(); //年级ID var gradeIDList = recruitSpecialtyList.Where(x => !string.IsNullOrEmpty(x.GradeID.ToString())).Select(x => x.GradeID).ToList(); //专业信息ID var specialtyIDList = recruitSpecialtyList.Where(x => !string.IsNullOrEmpty(x.SpecialtyID.ToString())).Select(x => x.SpecialtyID).ToList(); //院系所ID var collegeIDList = recruitSpecialtyList.Where(x => !string.IsNullOrEmpty(x.CollegeID.ToString())).Select(x => x.CollegeID).ToList(); //查询专业信息 var specialtyList = recruitSpecialtyDAL.specialtyRepository.GetList(x => specialtyIDList.Contains(x.SpecialtyID)).ToList(); //查询专业分班信息 var specialtyClassSettingList = recruitSpecialtyDAL.SpecialtyClassSettingRepository.GetList(x => specialtyIDList.Contains(x.SpecialtyID)).ToList(); //查询院系所信息 var collegeList = recruitSpecialtyDAL.collegeRepository.Entities.Where(x => collegeIDList.Contains(x.CollegeID)).ToList(); //年级 var gradeList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Grade).ToList(); //专业代码、专业名称、专业ID(Value) var standardList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Standard).ToList(); //培养层次(所修学历) var educationList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Education).ToList(); //学习形式 var learningFormList = IdNameExt.GetDictionaryItem(DictionaryItem.CF_Learningform).ToList(); //查询对应的院系专业信息 var facultymajorList = recruitSpecialtyDAL.GetFacultymajorByRecruitSpecialty(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID)).ToList(); //院系专业ID var facultymajorIDList = facultymajorList.Where(x => !string.IsNullOrEmpty(x.FacultymajorID.ToString())).Select(x => x.FacultymajorID).ToList(); //查询对应的院系所中院系专业信息当前Max流水序号(院系所、学制分组查询) var faMaxCodeList = recruitSpecialtyDAL.GetFacultymajorMaxCodeByCollegeLearnSystem(x => collegeIDList.Contains(x.CollegeID)).ToList(); //查询对应的年级专业信息 var grademajorList = recruitSpecialtyDAL.GetGrademajorByRecruitSpecialty(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID), x => facultymajorIDList.Contains(x.FacultymajorID)).ToList(); //年级专业ID var grademajorIDList = grademajorList.Where(x => !string.IsNullOrEmpty(x.GrademajorID.ToString())).Select(x => x.GrademajorID).ToList(); //查询对应的年级中年级专业信息当前Max流水序号(院系所、年级分组查询) var grMaxCodeList = recruitSpecialtyDAL.GetGrademajorMaxCodeByCollegeSchoolyear(x => gradeIDList.Contains(x.GradeID)).ToList(); //查询对应的班级信息 var classmajorList = recruitSpecialtyDAL.GetClassmajorByRecruitSpecialty(x => recruitSpecialtyIDs.Contains(x.RecruitSpecialtyID), x => facultymajorIDList.Contains(x.FacultymajorID), x => grademajorIDList.Contains(x.GrademajorID)).ToList(); //班级信息ID var classmajorIDList = classmajorList.Where(x => !string.IsNullOrEmpty(x.ClassmajorID.ToString())).Select(x => x.ClassmajorID).ToList(); //根据年级专业信息查询对应的班级信息MaxCode(年级专业分组查询) var clMaxCodeList = recruitSpecialtyDAL.GetClassmajorMaxCodeByGrademajor(x => grademajorIDList.Contains(x.GrademajorID)).ToList(); //查询学年学期信息 var schoolyearList = recruitSpecialtyDAL.schoolyearRepository.GetList(x => true).ToList(); var facultymajorCode = ""; var facultymajorName = ""; var grademajorCode = ""; var grademajorName = ""; var classmajorCode = ""; var classmajorName = ""; int fail = 0; int success = 0; string tipMessage = null; List recruitSpecialtyUpList = new List(); List facultymajorInList = new List(); List tempGrademajorViewInList = new List(); //用于年级专业编码流水生成(标识) List grademajorInList = new List(); List classmajorInList = new List(); foreach (var recruitSpecialty in recruitSpecialtyList) { //目前只处理招生专业与专业班级对应关系的情况(已存在的情况下,暂时不做处理) //专业分方向的情况处理有以下3种,按以下方式进行处理: //院系专业分方向(手动新增来处理) //年级专业分方向(手动新增来处理) //班级信息分方向(以专业分班设置来处理) //查询对应的院系所信息 var college = collegeList.Where(x => x.CollegeID == recruitSpecialty.CollegeID).SingleOrDefault(); //查询对应的专业信息 var specialty = specialtyList.Where(x => x.SpecialtyID == recruitSpecialty.SpecialtyID).SingleOrDefault(); //查询对应的专业分班信息 var specialtyClassSetting = specialtyClassSettingList.Where(x => x.SpecialtyID == recruitSpecialty.SpecialtyID).SingleOrDefault(); //对应的班级个数 int classNum = 1; if (specialtyClassSetting != null) { if (specialtyClassSetting.ClassNumber != null) { if (specialtyClassSetting.ClassNumber.Value > 1) { classNum = specialtyClassSetting.ClassNumber.Value; } } } //专业名称数据字典 var standard = standardList.Where(x => x.Value == specialty.StandardID).SingleOrDefault(); //培养层次(所修学历) var education = educationList.Where(x => x.Value == specialty.EducationID).SingleOrDefault(); //学习形式 var learningForm = learningFormList.Where(x => x.Value == specialty.LearningformID).SingleOrDefault(); //计算毕业学年学期Value var graduateSchoolyearValue = (recruitSpecialty.GradeID * 2) - 1 + (recruitSpecialty.SemesterID - 1) + Convert.ToInt32(Math.Ceiling(specialty.LearnSystem.Value * 2 - 1)); //查询对应的学年学期信息 var graduateSchoolyear = schoolyearList.Where(x => x.Value == graduateSchoolyearValue).SingleOrDefault(); if (graduateSchoolyear == null) { //表示年级专业对应的毕业学期,在学年学期信息中不存在(此时不生成) fail++; continue; } //院系专业Max当前初始编号(院系所、学制分组查询) var faMaxCode = faMaxCodeList.Where(x => x.CollegeID == recruitSpecialty.CollegeID && x.LearnSystem == recruitSpecialty.CF_Specialty.LearnSystem).SingleOrDefault(); if (faMaxCode == null) { //表示不存在(取初始值01) //院系编码(5位):院系所代码后2位+学制1位(直接取值)+2位流水号,拼出来 facultymajorCode = college.No.Trim().Substring(college.No.Trim().Length - 2).PadLeft(2, '0') + Convert.ToInt32(specialty.LearnSystem).ToString() + "01"; } else { //表示已存在(当前初始值+1) //院系编码(5位):院系所代码后2位+学制1位(直接取值)+2位流水号,拼出来 var nextFaNum = (Convert.ToInt32(faMaxCode.Code.Trim().Substring(faMaxCode.Code.Trim().Length - 2)) + 1).ToString().PadLeft(2, '0'); facultymajorCode = college.No.Trim().Substring(college.No.Trim().Length - 2).PadLeft(2, '0') + Convert.ToInt32(specialty.LearnSystem).ToString() + nextFaNum; } //由于可批量生成,需判断缓存中的院系专业编号中流水序号的问题 if (facultymajorInList != null && facultymajorInList.Count() > 0) { //查询缓存中已生成的院系专业编号List var newFaMaxCodeList = facultymajorInList.Where(x => x.CollegeID == recruitSpecialty.CollegeID && x.LearnSystem == recruitSpecialty.CF_Specialty.LearnSystem).ToList(); if (newFaMaxCodeList != null && newFaMaxCodeList.Count() > 0) { //表示缓存中已存在对应的院系编号(取当前MaxCode为初始值+1) var newFaMaxCode = newFaMaxCodeList.GroupBy(x => x.Code).Max(x => x.Key); //院系编码(5位):院系所代码后2位+学制1位(直接取值)+2位流水号,拼出来 var newNextFaNum = (Convert.ToInt32(newFaMaxCode.Trim().Substring(newFaMaxCode.Trim().Length - 2)) + 1).ToString().PadLeft(2, '0'); facultymajorCode = college.No.Trim().Substring(college.No.Trim().Length - 2).PadLeft(2, '0') + Convert.ToInt32(specialty.LearnSystem).ToString() + newNextFaNum; } } //院系名称:专业名称(默认),如:电气自动化技术(分方向的情况下的命名需手动修改) facultymajorName = standard.Name.Trim(); //年级专业Max当前初始编号(院系所、年级分组查询) var grMaxCode = grMaxCodeList.Where(x => x.CollegeID == recruitSpecialty.CollegeID && x.GradeID == recruitSpecialty.GradeID).SingleOrDefault(); if (grMaxCode == null) { //表示不存在(取初始值01) //年级专业编码(8位):年级+院系所代码后2位+2位流水号,拼出来 grademajorCode = recruitSpecialty.GradeID.ToString() + college.No.Trim().Substring(college.No.Trim().Length - 2).PadLeft(2, '0') + "01"; } else { //表示已存在(当前初始值+1) //年级专业编码(8位):年级+院系所代码后2位+2位流水号,拼出来 var nextGrNum = (Convert.ToInt32(grMaxCode.Code.Trim().Substring(grMaxCode.Code.Trim().Length - 2)) + 1).ToString().PadLeft(2, '0'); grademajorCode = recruitSpecialty.GradeID.ToString() + college.No.Trim().Substring(college.No.Trim().Length - 2).PadLeft(2, '0') + nextGrNum; } //由于可批量生成,需判断缓存中的年级专业编号中流水序号的问题 if (grademajorInList != null && grademajorInList.Count() > 0) { //查询缓存中已生成的年级专业编号List(通过标识List来查询) var newGrMaxCodeList = tempGrademajorViewInList.Where(x => x.CollegeID == recruitSpecialty.CollegeID && x.GradeID == recruitSpecialty.GradeID).ToList(); if (newGrMaxCodeList != null && newGrMaxCodeList.Count() > 0) { //表示缓存中已存在对应的年级专业编号(取当前MaxCode为初始值+1) var newGrMaxCode = newGrMaxCodeList.GroupBy(x => x.Code).Max(x => x.Key); //年级专业编码(8位):年级+院系所代码后2位+2位流水号,拼出来 var newNextGrNum = (Convert.ToInt32(newGrMaxCode.Trim().Substring(newGrMaxCode.Trim().Length - 2)) + 1).ToString().PadLeft(2, '0'); grademajorCode = recruitSpecialty.GradeID.ToString() + college.No.Trim().Substring(college.No.Trim().Length - 2).PadLeft(2, '0') + newNextGrNum; } } //年级专业名称:年级+"级"+院系名称或专业名称(院系名称优先) grademajorName = recruitSpecialty.GradeID.ToString() + "级" + facultymajorName; //注:暂时只取部分命名规则 //班级编码(9位):年级+院系所代码后2位+2位流水号+1位流水号(年级专业编码+1位流水号),拼出来 classmajorCode = grademajorCode; //班级名称:年级+"级"+专业名称或年级专业名称(年级专业名称优先)+流水号(可为空)+"班" classmajorName = grademajorName; //查询对应的院系专业信息 var facultymajorVerifyList = facultymajorList.Where(x => x.RecruitSpecialtyID == recruitSpecialty.RecruitSpecialtyID).ToList(); //判断院系专业 if (facultymajorVerifyList != null && facultymajorVerifyList.Count() > 0) { //表示存在对应的院系专业信息 foreach (var facultymajorVerify in facultymajorVerifyList) { //查询对应的年级专业信息 var grademajorVerifyList = grademajorList.Where(x => x.FacultymajorID == facultymajorVerify.FacultymajorID).ToList(); //判断年级专业 if (grademajorVerifyList != null && grademajorVerifyList.Count() > 0) { //表示存在对应的年级专业信息 foreach (var grademajorVerify in grademajorVerifyList) { //查询对应的班级信息 var classmajorVerifyList = classmajorList.Where(x => x.GrademajorID == grademajorVerify.GrademajorID).ToList(); //判断班级信息 if (classmajorVerifyList != null && classmajorVerifyList.Count() > 0) { //表示存在对应的班级信息(需处理专业分班信息中班级个数的问题) //表示存在的班级个数大于专业分班的班级个数 if (classmajorVerifyList.Count() >= classNum) { if (classmajorVerifyList.Count() == 1) { //查询对应的班级信息(只有一条班级信息可在此处做更新处理) var classmajorEntity = classmajorVerifyList.Where(x => x.GrademajorID == grademajorVerify.GrademajorID).SingleOrDefault(); //(暂时不做更新处理) } else { //表示存在多个班级个数(可在此做其它处理) } } else { //表示存在的班级个数不足 //查询对应的班级信息Max编号(年级专业分组查询) var clMaxCode = clMaxCodeList.Where(x => x.GrademajorID == grademajorVerify.GrademajorID).SingleOrDefault(); var clNum = Convert.ToInt32(clMaxCode.No.Trim().Substring(clMaxCode.No.Trim().Length - 1)); //生成剩余的班级个数(暂时以MaxCode+1形式生成) for (int i = 1; i <= classNum - classmajorVerifyList.Count(); i++) { CF_Classmajor newClassmajor = new CF_Classmajor(); newClassmajor.ClassmajorID = Guid.NewGuid(); newClassmajor.GrademajorID = grademajorVerify.GrademajorID; newClassmajor.No = grademajorVerify.GrademajorCode.Trim() + (clNum + i).ToString(); newClassmajor.Name = grademajorVerify.GrademajorName.Trim() + (clNum + i).ToString() + "班"; newClassmajor.Abbreviation = newClassmajor.Name; newClassmajor.EnglishName = null; newClassmajor.ClassNum = (clNum + i); newClassmajor.UserID = null; newClassmajor.AssistantUserID = null; newClassmajor.Fixedclassroom = null; newClassmajor.Remark = null; SetNewStatus(newClassmajor); classmajorInList.Add(newClassmajor); } } } else { //表示对应的班级信息不存在(需根据专业分班信息生成对应的班级个数) if (classNum > 1) { for (int i = 1; i <= classNum; i++) { CF_Classmajor newClassmajor = new CF_Classmajor(); newClassmajor.ClassmajorID = Guid.NewGuid(); newClassmajor.GrademajorID = grademajorVerify.GrademajorID; newClassmajor.No = grademajorVerify.GrademajorCode.Trim() + i.ToString(); newClassmajor.Name = grademajorVerify.GrademajorName.Trim() + i.ToString() + "班"; newClassmajor.Abbreviation = newClassmajor.Name; newClassmajor.EnglishName = null; newClassmajor.ClassNum = i; newClassmajor.UserID = null; newClassmajor.AssistantUserID = null; newClassmajor.Fixedclassroom = null; newClassmajor.Remark = null; SetNewStatus(newClassmajor); classmajorInList.Add(newClassmajor); } } else { //表示只生成一个对应的班级信息(默认) CF_Classmajor newClassmajor = new CF_Classmajor(); newClassmajor.ClassmajorID = Guid.NewGuid(); newClassmajor.GrademajorID = grademajorVerify.GrademajorID; newClassmajor.No = grademajorVerify.GrademajorCode.Trim() + "1"; newClassmajor.Name = grademajorVerify.GrademajorName.Trim() + "班"; newClassmajor.Abbreviation = newClassmajor.Name; newClassmajor.EnglishName = null; newClassmajor.ClassNum = 1; newClassmajor.UserID = null; newClassmajor.AssistantUserID = null; newClassmajor.Fixedclassroom = null; newClassmajor.Remark = null; SetNewStatus(newClassmajor); classmajorInList.Add(newClassmajor); } } } } else { //表示对应的年级专业信息不存在 //注:根据院系专业信息生成年级专业信息、专业分班信息生成对应的班级个数 CF_Grademajor newGrademajor = new CF_Grademajor(); newGrademajor.GrademajorID = Guid.NewGuid(); newGrademajor.FacultymajorID = facultymajorVerify.FacultymajorID; newGrademajor.Code = grademajorCode; newGrademajor.Name = recruitSpecialty.GradeID.ToString() + "级" + facultymajorVerify.FacultymajorName.Trim(); newGrademajor.Abbreviation = newGrademajor.Name; newGrademajor.GradeID = recruitSpecialty.GradeID; newGrademajor.SemesterID = recruitSpecialty.SemesterID; newGrademajor.GraduateSchoolyearID = graduateSchoolyear.SchoolyearID; newGrademajor.Professional = null; newGrademajor.Remark = null; SetNewStatus(newGrademajor); grademajorInList.Add(newGrademajor); //用于年级专业编码流水生成(标识) GrademajorView newGrademajorView = new GrademajorView(); newGrademajorView.Code = newGrademajor.Code; newGrademajorView.CollegeID = facultymajorVerify.CollegeID; newGrademajorView.GradeID = newGrademajor.GradeID; tempGrademajorViewInList.Add(newGrademajorView); //表示对应的班级信息不存在(需根据专业分班信息生成对应的班级信息) if (classNum > 1) { for (int i = 1; i <= classNum; i++) { CF_Classmajor newClassmajor = new CF_Classmajor(); newClassmajor.ClassmajorID = Guid.NewGuid(); newClassmajor.GrademajorID = newGrademajor.GrademajorID; newClassmajor.No = newGrademajor.Code.Trim() + i.ToString(); newClassmajor.Name = newGrademajor.Name.Trim() + i.ToString() + "班"; newClassmajor.Abbreviation = newClassmajor.Name; newClassmajor.EnglishName = null; newClassmajor.ClassNum = i; newClassmajor.UserID = null; newClassmajor.AssistantUserID = null; newClassmajor.Fixedclassroom = null; newClassmajor.Remark = null; SetNewStatus(newClassmajor); classmajorInList.Add(newClassmajor); } } else { //表示只生成一个对应的班级信息(默认) CF_Classmajor newClassmajor = new CF_Classmajor(); newClassmajor.ClassmajorID = Guid.NewGuid(); newClassmajor.GrademajorID = newGrademajor.GrademajorID; newClassmajor.No = newGrademajor.Code.Trim() + "1"; newClassmajor.Name = newGrademajor.Name.Trim() + "班"; newClassmajor.Abbreviation = newClassmajor.Name; newClassmajor.EnglishName = null; newClassmajor.ClassNum = 1; newClassmajor.UserID = null; newClassmajor.AssistantUserID = null; newClassmajor.Fixedclassroom = null; newClassmajor.Remark = null; SetNewStatus(newClassmajor); classmajorInList.Add(newClassmajor); } //此处为当存在多个对应的院系专业时,年级专业编码流水+1,作为下一个年级专业编码(院系所、年级分班) grademajorCode = (Convert.ToInt32(grademajorCode) + 1).ToString().PadLeft(8, '0'); } } } else { //表示对应的院系专业信息不存在 //注:默认生成一条院系专业信息、一条年级专业信息、专业分班信息生成对应的班级个数 CF_Facultymajor newFacultymajor = new CF_Facultymajor(); newFacultymajor.FacultymajorID = Guid.NewGuid(); newFacultymajor.CollegeID = recruitSpecialty.CollegeID; newFacultymajor.Code = facultymajorCode; newFacultymajor.Name = facultymajorName; newFacultymajor.Abbreviation = newFacultymajor.Name; newFacultymajor.EnglishName = null; newFacultymajor.StandardID = specialty.StandardID; newFacultymajor.EducationID = specialty.EducationID; newFacultymajor.LearningformID = specialty.LearningformID; newFacultymajor.LearnSystem = specialty.LearnSystem; newFacultymajor.ScienceclassID = specialty.ScienceclassID; newFacultymajor.SetTime = DateTime.Now; newFacultymajor.Remark = null; SetNewStatus(newFacultymajor); facultymajorInList.Add(newFacultymajor); //表示对应的年级专业信息不存在 CF_Grademajor newGrademajor = new CF_Grademajor(); newGrademajor.GrademajorID = Guid.NewGuid(); newGrademajor.FacultymajorID = newFacultymajor.FacultymajorID; newGrademajor.Code = grademajorCode; newGrademajor.Name = grademajorName; newGrademajor.Abbreviation = newGrademajor.Name; newGrademajor.GradeID = recruitSpecialty.GradeID; newGrademajor.SemesterID = recruitSpecialty.SemesterID; newGrademajor.GraduateSchoolyearID = graduateSchoolyear.SchoolyearID; newGrademajor.Professional = null; newGrademajor.Remark = null; SetNewStatus(newGrademajor); grademajorInList.Add(newGrademajor); //用于年级专业编码流水生成(标识) GrademajorView newGrademajorView = new GrademajorView(); newGrademajorView.Code = newGrademajor.Code; newGrademajorView.CollegeID = newFacultymajor.CollegeID; newGrademajorView.GradeID = newGrademajor.GradeID; tempGrademajorViewInList.Add(newGrademajorView); //表示对应的班级信息不存在(需根据专业分班信息生成对应的班级信息) if (classNum > 1) { for (int i = 1; i <= classNum; i++) { CF_Classmajor newClassmajor = new CF_Classmajor(); newClassmajor.ClassmajorID = Guid.NewGuid(); newClassmajor.GrademajorID = newGrademajor.GrademajorID; newClassmajor.No = classmajorCode + i.ToString(); newClassmajor.Name = classmajorName + i.ToString() + "班"; newClassmajor.Abbreviation = newClassmajor.Name; newClassmajor.EnglishName = null; newClassmajor.ClassNum = i; newClassmajor.UserID = null; newClassmajor.AssistantUserID = null; newClassmajor.Fixedclassroom = null; newClassmajor.Remark = null; SetNewStatus(newClassmajor); classmajorInList.Add(newClassmajor); } } else { //表示只生成一个对应的班级信息(默认) CF_Classmajor newClassmajor = new CF_Classmajor(); newClassmajor.ClassmajorID = Guid.NewGuid(); newClassmajor.GrademajorID = newGrademajor.GrademajorID; newClassmajor.No = classmajorCode + "1"; newClassmajor.Name = classmajorName + "班"; newClassmajor.Abbreviation = newClassmajor.Name; newClassmajor.EnglishName = null; newClassmajor.ClassNum = 1; newClassmajor.UserID = null; newClassmajor.AssistantUserID = null; newClassmajor.Fixedclassroom = null; newClassmajor.Remark = null; SetNewStatus(newClassmajor); classmajorInList.Add(newClassmajor); } } //更新招生专业信息生成状态 recruitSpecialty.isGenerated = true; recruitSpecialtyUpList.Add(recruitSpecialty); success++; } using (TransactionScope ts = new TransactionScope()) { if (facultymajorInList != null && facultymajorInList.Count() > 0) { UnitOfWork.BulkInsert(facultymajorInList); } if (grademajorInList != null && grademajorInList.Count() > 0) { UnitOfWork.BulkInsert(grademajorInList); } if (classmajorInList != null && classmajorInList.Count() > 0) { UnitOfWork.BulkInsert(classmajorInList); } if (recruitSpecialtyUpList != null && recruitSpecialtyUpList.Count() > 0) { UnitOfWork.BatchUpdate(recruitSpecialtyUpList); } ts.Complete(); } if (success > 0 && fail <= 0) { tipMessage = success + "条"; } else { tipMessage = success + "条," + fail + "条失败,原因:年级专业对应的毕业学期不存在,请核查"; } return tipMessage; } catch (Exception ex) { throw new Exception(ex.Message); } } } }