Пример #1
0
        ///// <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);
        }
Пример #2
0
        /// <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);
        }