1.9 KiB
1.9 KiB
資料同步
員工資料下載
- Services/BPSNService.asmx
- METHOD Download:下載員工資料
- 資料存取類別:DAC_BPSN
- 資料讀取方法:SelectForClient()
報到資料上傳
- Services/SignUpService.asmx
- METHOD UploadCheckIns(int courseID, List items):上傳簽到簽退資料清單
- 資料表
- SignUp 參加人員
- Classes 課程
- 資料存取類別
- DAC_SignUp 參加人員
- DAC_Classes 課程
- 上傳資料欄位(CheckInItem)
- CourseID (INTEGER NOT NULL) - 課程ID
- Name (TEXT NOT NULL) - 學員姓名
- Mobile (TEXT NOT NULL) - 手機號
- IDNumber (TEXT) - 身分證字號
- IDType (TEXT) - 身分別
- MealType (TEXT) - 餐點
- Email (TEXT) - 電子郵件
- SignUpType (TEXT) - 報名方式(預約 / 現場)
- CheckInType (TEXT) - 簽到類別(CHECKIN / CHECKOUT)
- CheckInTime (DATETIME) - 簽到/簽退時間
- 驗證規則
- CourseID: 必填、必須存在於課程表 Classes.ID
- Name: 必填
- Mobile: 必填
- SignUpType: 必填,允許值 (預約 / 現場)
- CheckInType: 必填,允許值(CHECKIN / CHECKOUT)
- CheckInTime: 必填,格式 yyyy-MM-dd HH:mm:ss
- 處理邏輯
- 用 CourseID 查詢 Classes.ID,若不存在則拒絕整批資料
- 按 (CourseID, Name, Mobile) 作為複合主鍵查詢 SignUp 表
- 若找到則依照 CheckInType 使用傳入的 CheckInTime 更新 CheckInTime/CheckOutTime,計入成功筆數
- 若沒找到則新增 (SignUpType="現場"),並依 CheckInType 設定時間欄位,計入成功筆數
- 不使用 transaction
- 回應格式
- 成功: { Success: true, Message: "...", Data: { CreatedCount, UpdatedCount, FailedCount, SkippedCount, SuccessIDs, Errors } }
- 失敗: { Success: false, Message: "..." }
- 資料表