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

1.9 KiB
Raw Permalink Blame History

資料同步

員工資料下載

  • 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: "..." }