# 活動人員管理 ## 資料關聯 Classes.ID (1) <-> (*) SignUp.CourseID ## 資料類別 * 各資料存取類別、資料集合類別、資料類別已有程式碼 * 如需擴充加在 DAC_XXXX2.cs 裡面 * DAC_Classes:活動資料處理類別 * ClassesList:活動資料集類別 * ClassesItem:活動資料項目類別 * DAC_SignUp:活動參加人員資料處理類別 * SignUpList:活動參加人員資料集類別 * SignUpItem:活動參加人員資料項目類別 - 主要欄位:ID, CourseID, SeqNo, Name, Mobile, IDNumber, QRCode, SignUpType, CheckInTime, CheckOutTime, IDType, MealType, Email, Gender, LossJobTimes, AgreementStatus ## 畫面檔 ### 活動參加人員 * Forms/SignUpList.aspx * 畫面上方查詢活動,用下拉選擇活動 * 畫面下方列出活動參加人員 * 分頁顯示,每頁預設 20 筆,可選 10, 20, 50, 100 筆 * 分頁列 [第一頁][上一頁] 第[頁數下拉]頁 [下一頁][最後頁] | 每頁[筆數下拉]筆共[筆數]筆 ### 匯入參加人員 * Forms/SignUpImport.aspx * 畫面上方查詢活動,用下拉選擇活動 * 選擇 .xlsx 檔案,上傳 * 列出預覽及驗證錯誤處 * 執行匯入,匯入選擇到的活動 * 匯入格式與必要欄位是 Name 學員姓名、Mobile 手機號 * 要能偵測並跳過表頭 ### 匯出參加人員 * Forms/SignUpExport.aspx * 畫面上方查詢活動,用下拉選擇活動 * 執行匯出 .xlsx 檔 * 匯出格式是 * 表頭:活動名稱、日期、地點(空行) * 表身:序號、學員姓名、手機號、簽到時間、簽退時間、身分別、身分證字號、餐點、電子郵件、失業給付認定次數、性別、報名方式 ## 後端服務 * Services/ClassesService.asmx * 活動的後端服務 * SearchClasses:查詢活動清單 * SearchProjects:搜尋計畫(用於自動完成) * Services/SignUpService.asmx * 活動參加人員的後端服務 * SearchSignUps:以活動編號(CourseID)查詢參加人員(基本查詢) * SearchSignUpsAdvanced:進階查詢(支援序號、身分別、身分證字號、餐點、Email 等條件) * SaveSignUp:儲存活動參加人員(新增或更新) * DeleteSignUp(int id, int dbAppNo):刪除活動參加人員 * ConfirmImport(int courseID, List items, bool clearBefore):執行活動參加人員匯入 * ExportSignUps(int courseID, string timeFormat):匯出活動參加人員 * SendSmsBatch(int courseID, List signupIds):批量發送簡訊 * GetSignUpById(int signupId):查詢單筆參加人員 * CheckBalance:查詢簡訊點數餘額 * Services/FileUploadHandler.ashx * 檔案上傳處理器 * action=ProcessImportFile:上傳並解析匯入 Excel 檔案(含驗證),參數 courseID 由 QueryString 傳入 ## 技術規格 * 前端使用 Vue.js 實作,不使用 Server Control * 後端使用 WebService,要 EnableSession