Files
sryang 577060bc78 chore: 首次簽入 Thinkyu ASP.NET 專案
- 加入 Visual Studio / ASP.NET .gitignore
- 排除建置輸出、IDE 設定、NuGet packages、大型 MSI 安裝檔
2026-09-10 09:42:37 +08:00

46 lines
1.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 資料同步
## 員工資料下載
* Services/BPSNService.asmx
* METHOD Download:下載員工資料
* 資料存取類別:DAC_BPSN
* 資料讀取方法:SelectForClient()
## 報到資料上傳
* Services/SignUpService.asmx
* METHOD UploadCheckIns(int courseID, List<CheckInItem> 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: "..." }