66 lines
2.9 KiB
Markdown
66 lines
2.9 KiB
Markdown
# 活動人員管理
|
|
|
|
## 資料關聯
|
|
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<SignUpItem> items, bool clearBefore):執行活動參加人員匯入
|
|
* ExportSignUps(int courseID, string timeFormat):匯出活動參加人員
|
|
* SendSmsBatch(int courseID, List<int> signupIds):批量發送簡訊
|
|
* GetSignUpById(int signupId):查詢單筆參加人員
|
|
* CheckBalance:查詢簡訊點數餘額
|
|
* Services/FileUploadHandler.ashx
|
|
* 檔案上傳處理器
|
|
* action=ProcessImportFile:上傳並解析匯入 Excel 檔案(含驗證),參數 courseID 由 QueryString 傳入
|
|
|
|
## 技術規格
|
|
* 前端使用 Vue.js 實作,不使用 Server Control
|
|
* 後端使用 WebService,要 EnableSession
|