///// <summary> ///// 取得新生入學資格 ///// </summary> ///// <returns></returns> //public static List<string> GetNewStudCode() //{ // List<string> strList = new List<string>(); // strList.Add("001-持國民中學畢業證明書者(含國中補校)"); // strList.Add("002-持國民中學補習學校資格證明書者"); // strList.Add("003-持國民中學補習學校結業證明書者"); // strList.Add("004-持國民中學修(結)業證明書者(修畢三學年全部課程)"); // strList.Add("005-持國民中學畢業程度學力鑑定考試及格證明書者"); // strList.Add("006-回國僑生介考(專案核准)"); // strList.Add("007-持大陸學歷者(需附證明文件)"); // strList.Add("008-特殊教育學校學生(需附證明文件)"); // strList.Add("009-持國外學歷者(需附證明文件)"); // strList.Add("099-其他(需附證明文件)"); // return strList; //} /// <summary> /// 將異動 SHDAL 資料轉換成名冊用 Rec /// </summary> /// <param name="recList"></param> /// <returns></returns> public static List <BL.StudUpdateRecDoc> ConvertSHUpdateRecToStudUpdateRec(List <SHUpdateRecordRecord> recList) { List <BL.StudUpdateRecDoc> StudRecList = new List <UpdateRecordModule_KHSH_N.BL.StudUpdateRecDoc>(); Dictionary <string, string> deptCodeDict = new Dictionary <string, string>(); foreach (SHDepartmentRecord rec in SHDepartment.SelectAll()) { if (!deptCodeDict.ContainsKey(rec.FullName)) { deptCodeDict.Add(rec.FullName, rec.Code); } //if (!deptCodeDict.ContainsKey(rec.Name)) // deptCodeDict.Add(rec.Name, rec.Code); } //int depIdx = 0; foreach (SHUpdateRecordRecord rec in recList) { BL.StudUpdateRecDoc studUrec = new UpdateRecordModule_KHSH_N.BL.StudUpdateRecDoc(); studUrec.UpdateDescription = rec.UpdateDescription; studUrec.UpdateDate = rec.UpdateDate; studUrec.UpdateCode = rec.UpdateCode; studUrec.StudentNumber = rec.StudentNumber; studUrec.StudentName = rec.StudentName; studUrec.SpecialStatus = rec.SpecialStatus; studUrec.PreviousStudentNumber = rec.PreviousStudentNumber; studUrec.PreviousSchoolLastADNumber = rec.PreviousSchoolLastADNumber; studUrec.PreviousSchoolLastADDate = rec.PreviousSchoolLastADDate; studUrec.PreviousSchool = rec.PreviousSchool; studUrec.PreviousGradeYear = rec.PreviousGradeYear; studUrec.PreviousDepartment = rec.PreviousDepartment; studUrec.OldDepartmentCode = rec.OldDepartmentCode; studUrec.OldClassType = rec.OldClassType; studUrec.NewData = rec.NewData; studUrec.LastUpdateCode = rec.LastUpdateCode; studUrec.LastADNumber = rec.LastADNumber; studUrec.LastADDate = rec.LastADDate; studUrec.IDNumberComment = rec.IDNumberComment; studUrec.IDNumber = rec.IDNumber; studUrec.GraduateSchoolYear = rec.GraduateSchoolYear; studUrec.GraduateSchoolLocationCode = rec.GraduateSchoolLocationCode; studUrec.GraduateSchoolCode = rec.GraduateSchoolCode; studUrec.GraduateSchool = rec.GraduateSchool; studUrec.GraduateComment = rec.GraduateComment; studUrec.GraduateCertificateNumber = rec.GraduateCertificateNumber; studUrec.GradeYear = rec.GradeYear; studUrec.Gender = rec.Gender; if (rec.Gender == "男") { studUrec.GenderCode = "1"; } else if (rec.Gender == "女") { studUrec.GenderCode = "2"; } else { studUrec.GenderCode = ""; } //// 當科別有:取前面值 //depIdx = rec.Department.IndexOf(":"); //if(depIdx >1) // studUrec.Department = rec.Department.Substring(0,depIdx); //else studUrec.Department = rec.Department; if (deptCodeDict.ContainsKey(rec.Department)) { studUrec.DeptCode = deptCodeDict[rec.Department]; } studUrec.Comment = rec.Comment; studUrec.ClassType = rec.ClassType; studUrec.Birthday = rec.Birthdate; studUrec.ADNumber = rec.ADNumber; studUrec.ADDate = rec.ADDate; studUrec.URID = rec.ID; studUrec.StudentID = rec.StudentID; if (rec.Student != null) { studUrec.StudStatus = rec.Student.Status.ToString(); } studUrec.PreviousSemester = rec.PreviousSemester; studUrec.NewStudentNumber = rec.NewStudentNumber; studUrec.Comment2 = rec.Comment2; studUrec.GraduateDocument = rec.GraduateDocument; studUrec.ExpectGraduateSchoolYear = rec.ExpectGraduateSchoolYear; StudRecList.Add(studUrec); } return(StudRecList); }
/// <summary> /// 將 XML 轉換成 StudUpdateRecDoc List /// </summary> public static List <BL.StudUpdateRecDoc> ConvertXmlToStudUpdateRecDocList(XElement XmlElms) { List <BL.StudUpdateRecDoc> retVal = new List <UpdateRecordModule_KHSH_N.BL.StudUpdateRecDoc>(); List <XElement> dataElms = (from elm in XmlElms.Elements("清單") select elm).ToList(); int depIdx = 0; foreach (XElement d1Elm in dataElms) { // 取得年級與科別 string strGradeYear = "", strDeptName = "", strDeptCode = ""; if (d1Elm.Attribute("年級") != null) { strGradeYear = d1Elm.Attribute("年級").Value; } //// 科別處理:問題,當有:取:前文字 if (d1Elm.Attribute("科別") != null) { //depIdx = d1Elm.Attribute("科別").Value.IndexOf(":"); //if(depIdx>1) // strDeptName = d1Elm.Attribute("科別").Value.Substring(0,depIdx); //else strDeptName = d1Elm.Attribute("科別").Value; } if (d1Elm.Attribute("科別代號") != null) { strDeptCode = d1Elm.Attribute("科別代號").Value; } // 取得異動紀錄集合 List <XElement> upRecList = (from elm in d1Elm.Elements("異動紀錄") select elm).ToList(); // 解析異動紀錄 foreach (XElement elm in upRecList) { BL.StudUpdateRecDoc studUpdateRec = new UpdateRecordModule_KHSH_N.BL.StudUpdateRecDoc(); studUpdateRec.Department = strDeptName; studUpdateRec.GradeYear = strGradeYear; foreach (XAttribute val in elm.Attributes()) { switch (val.Name.ToString()) { case "異動代號": studUpdateRec.UpdateCode = val.Value; break; case "異動代碼": studUpdateRec.UpdateCode = val.Value; break; case "原因及事項": studUpdateRec.UpdateDescription = val.Value; break; case "異動日期": studUpdateRec.UpdateDate = val.Value; break; case "備註": studUpdateRec.Comment = val.Value; break; case "班別": studUpdateRec.ClassType = val.Value; break; //case "科別": // studUpdateRec.Department = val.Value; //break; case "科別代碼": studUpdateRec.DeptCode = strDeptCode; break; case "特殊身分代碼": studUpdateRec.SpecialStatus = val.Value; break; case "姓名": studUpdateRec.StudentName = val.Value; break; case "學號": studUpdateRec.StudentNumber = val.Value; break; // 當空值才寫入,主要處理分與份,字的問題 case "身份證字號": case "身分證字號": case "身分證號": case "身份證號": if (string.IsNullOrEmpty(studUpdateRec.IDNumber)) { studUpdateRec.IDNumber = val.Value; } break; case "生日": studUpdateRec.Birthday = val.Value; break; case "註1": case "身分證註記": case "身份證註記": if (string.IsNullOrEmpty(studUpdateRec.IDNumberComment)) { studUpdateRec.IDNumberComment = val.Value; } break; case "更正後身分證註記": if (string.IsNullOrEmpty(studUpdateRec.Comment2)) { studUpdateRec.Comment2 = val.Value; } break; case "轉入身分別代碼": if (string.IsNullOrEmpty(studUpdateRec.Comment2)) { studUpdateRec.Comment2 = val.Value; } break; case "性別": studUpdateRec.Gender = val.Value; break; case "性別代碼": studUpdateRec.GenderCode = val.Value; break; case "畢業國中": studUpdateRec.GraduateSchool = val.Value; break; case "畢業國中所在地代碼": studUpdateRec.GraduateSchoolLocationCode = val.Value; break; case "入學資格註記": studUpdateRec.GraduateComment = val.Value; break; case "畢業國中代碼": studUpdateRec.GraduateSchoolCode = val.Value; break; case "國中畢業學年度": studUpdateRec.GraduateSchoolYear = val.Value; break; case "核准日期": studUpdateRec.ADDate = val.Value; break; case "核准文號": studUpdateRec.ADNumber = val.Value; break; case "舊科別代碼": studUpdateRec.OldDepartmentCode = val.Value; break; case "舊班別": studUpdateRec.OldClassType = val.Value; break; case "備查日期": studUpdateRec.LastADDate = val.Value; break; case "備查文號": studUpdateRec.LastADNumber = val.Value; break; case "原就讀學校": case "轉入前學生資料_學校": studUpdateRec.PreviousSchool = val.Value; break; case "原就讀學號": case "轉入前學生資料_學號": studUpdateRec.PreviousStudentNumber = val.Value; break; case "原就讀科別": case "轉入前學生資料_科別": studUpdateRec.PreviousDepartment = val.Value; break; case "原就讀年級": case "轉入前學生資料_年級": studUpdateRec.PreviousGradeYear = val.Value; break; case "原就讀備查日期": case "轉入前學生資料_備查日期": studUpdateRec.PreviousSchoolLastADDate = val.Value; break; case "原就讀備查文號": case "轉入前學生資料_備查文號": studUpdateRec.PreviousSchoolLastADNumber = val.Value; break; case "最後異動代碼": studUpdateRec.LastUpdateCode = val.Value; break; case "畢業證書字號": studUpdateRec.GraduateCertificateNumber = val.Value; break; //case "年級": // studUpdateRec.GradeYear = val.Value; // break; case "新資料": studUpdateRec.NewData = val.Value; break; case "異動編號": studUpdateRec.URID = val.Value; break; case "學生編號": studUpdateRec.StudentID = val.Value; break; case "原就讀學期": studUpdateRec.PreviousSemester = val.Value; break; case "新學號": studUpdateRec.NewStudentNumber = val.Value; break; case "入學資格證明文件": studUpdateRec.GraduateDocument = val.Value; break; case "應畢業學年度": studUpdateRec.ExpectGraduateSchoolYear = val.Value; break; } } // 當學生科別代號沒有,使用名冊本身預設 if (string.IsNullOrEmpty(studUpdateRec.DeptCode)) { studUpdateRec.DeptCode = strDeptCode; } // 當學生沒有性別代碼,解析填入男1,女2 if (string.IsNullOrEmpty(studUpdateRec.GenderCode)) { if (studUpdateRec.Gender == "男") { studUpdateRec.GenderCode = "1"; } if (studUpdateRec.Gender == "女") { studUpdateRec.GenderCode = "2"; } } retVal.Add(studUpdateRec); } } return(retVal); }