Thinkyu 專案結構與功能說明文件
公司:新譽管理有限公司
解决方案:Visual Studio 2022
版控:Subversion (SVN)
主要語言:C# (ASP.NET WebForms)、Delphi、JavaScript
資料庫:SQL Server (人員派遣/教育訓練/報到系統)、SQLite (報到客戶端離線)
一、系統架構概覽
二、主方案:人員派遣管理系統(Thinkyu.sln)
2.1 方案內容
| 專案 |
類型 |
說明 |
Web/ |
ASP.NET WebForms 網站 |
核心人事派遣管理系統 |
BackupService/ |
ASP.NET Web 服務 |
資料庫備份服務 |
BackupClient/ |
C# 主控台應用程式 |
備份觸發用戶端 |
WNET (外部) |
類別庫 |
Wellan 共用程式庫 (..\..\Wellan\WNet\WNET\) |
CRAXHelper (外部) |
類別庫 |
Crystal Reports 輔助程式 (..\CRAXViewer\CRAXHelper\) |
2.2 功能模組與頁面說明
2.2.1 人員管理(forms/worker/)
| 頁面 |
功能說明 |
| fmBpsn.ascx |
人員基本資料管理(CRUD) |
| fmBpsl.ascx |
非專案人員薪資資料處理 |
| fmRpar.ascx |
人員出缺勤記錄(請假、加班、電話費、油料費、差旅處理) |
| fmRparWorker.ascx |
人員出缺勤記錄(員工自行輸入版) |
| fmRowk.ascx |
加班匯總輸入 |
| fmRsaj.ascx |
人員薪資調整項目處理 |
| fmRpir.ascx |
勞健保加退保記錄與異動管理 |
| fmRyer.ascx |
年度特休設定與輸入 |
| fmRbsa.ascx |
補休補登作業 |
| fmRTME.ascx |
人員班表設定 |
| fmSsms.ascx |
薪資查詢及調整(未開放) |
| fmSendSalaryStrip.ascx |
發送薪資單與薪資單歷史查詢 |
| fmBonus.ascx |
獎金發放作業 |
| UNBPSNP.ascx |
使用者變更密碼 |
| ucBonusInput.ascx |
獎金輸入用子控制項 |
2.2.2 客戶專案管理(forms/customer/)
| 頁面 |
功能說明 |
| fmBcus.ascx |
客戶基本資料管理 |
| fmBprj.ascx |
客戶專案資料處理 |
| fmBpaa.ascx |
年度接單設定 |
| fmBpaaSub.ascx |
年度接單子表單 |
| fmBpab.ascx |
年度科目設定(科目明細) |
| fmBpabBig.ascx |
年度科目設定(大類) |
| fmBpabSmall.ascx |
年度科目設定(小類) |
| fmBpja.ascx |
年度職稱設定 |
| fmBpjb.ascx |
職稱等級設定 |
| fmBprm.ascx |
專案處理人員指派 |
| fmRasn.ascx |
人員派遣記錄(專案人員派遣) |
| fmRpfe.ascx |
專案憑證處理 |
2.2.3 基本資料設定(forms/basedata/)
| 頁面 |
功能說明 |
| fmBTME.ascx |
班表設定(班別定義) |
| fmBPSE.ascx |
片語設定(常用詞庫管理) |
| fmBPAP.ascx |
外部人員帳號設定 |
| fmBhrd.ascx |
行事曆設定(國定假日、休息日) |
| fmBCLS.ascx |
基本資料分類設定(人員類別、學歷、兵役、身分類別等下拉選單維護) |
2.2.4 流程簽核(forms/flow/)
| 頁面 |
功能說明 |
| fmSign.ascx |
簽核表單(待簽核、已簽核、已申請、督導專案、出勤查詢、班表查詢) |
| fmBSGP.ascx |
差勤表單簽核人員設定 |
| fmRparManager.ascx |
人員出缺勤記錄管理端(主管檢視員工輸入資料) |
2.2.5 打卡管理(forms/punchcard/)
| 頁面 |
功能說明 |
| fmPunchCard.ascx |
打卡作業 |
| fmCardSearch.ascx |
打卡查詢 / 補打卡 / 誤打卡處理 |
2.2.6 報表(forms/report/)
| 頁面 |
功能說明 |
| fmYearReport.ascx |
專案報表(年度專案報表) |
| fmMgmtReport.ascx |
管理報表 |
| fmCardReport.ascx |
差勤月報表 |
| fmCardDailyReport.ascx |
差勤日報表 |
| fmDownload.ascx |
下載報表檢視器 |
2.2.7 其他
| 頁面 |
模組 |
功能說明 |
| fmSalaryCalc.ascx |
summary/ |
每月出缺勤匯總及薪資計算 |
| MessageWriter.ascx |
message/ |
訊息發送(按部門發送 Email 通知) |
2.3 資料存取層(App_Code/DAC/)
| 類別 |
功能說明 |
| BhrdDAC.cs |
行事曆設定(國定假日、休息日類型) |
| BpaaDAC.cs |
專案年度接單資料(加班計算方式、班段時間、特休計算類型) |
| BpapDAC.cs |
外部人員帳號主檔 CRUD |
| BprjDAC.cs |
專案主檔資料存取 |
| BprmDAC.cs |
權限角色資料(使用者權限判斷) |
| BpseDAC.cs |
片語資料表查詢 |
| BpslDAC.cs |
員工薪資主檔與薪資異動記錄 |
| BpsnDAC.cs |
人員主檔(員工基本資料) |
| BsgpDAC.cs |
簽核關卡人員設定 |
| BtmeDAC.cs |
班表範本定義 |
| CompanyDAC.cs |
公司資料查詢 |
| GetData.cs |
通用資料查詢輔助類(1823 行,包含專案參數、加班費率、薪資組成等) |
| LoginBPAP.cs |
外部人員登入驗證 |
| LoginBPSN.cs |
內部人員登入驗證 |
| ProjectBranchGroupDAC.cs |
專案-分支-群組對應 |
| RasnDAC.cs |
人員派遣記錄 |
| RbsaDAC.cs |
補休記錄與加班時數抵扣 |
| RcrdDAC.cs |
打卡出勤記錄(一般班、加班、出差打卡) |
| RlogDAC.cs |
系統記錄檔(使用者、程式、IP、時間) |
| RpabDAC.cs |
出勤簽核記錄 |
| RpadDAC.cs |
出差費用明細檔 |
| RparDAC.cs |
請假、加班、出差記錄主檔(1911 行,核心出勤記錄) |
| RpirDAC.cs |
勞健保加退保記錄與異動(1268 行) |
| RpsbDAC.cs |
薪資子記錄 |
| RsajDAC.cs |
薪資加減項(加項/扣項項目管理) |
| RtmeDAC.cs |
人員班表指派 |
| RyerDAC.cs |
年度特休額度與使用記錄 |
| SsmsDAC.cs |
每月勞保/薪資匯總(1020 行) |
2.4 計算邏輯(App_Code/Calculate/)
| 類別 |
功能說明 |
| Bhif.cs |
健保費計算(員工負擔、雇主負擔、平均眷口數) |
| Blif.cs |
勞保費計算(普通事故 + 就業保險) |
| Blra.cs |
勞退金計算(雇主 6% + 個人自願提繳) |
| Calculate.cs |
加班費計算引擎(假日/平日費率、前 2 小時/後 2 小時、補休累計) |
| LaborAndHealthFee.cs |
勞健保/勞退計算基底類別(共用查詢、費率載入) |
| TimeCalc.cs |
工時計算工具(班段起訖、午休扣除、淨出勤分鐘數) |
2.5 報表產生器(App_Code/Report/)
使用 NPOI 產生 Excel 報表,共 18 個類別:
| 類別 |
功能說明 |
| 薪資清冊.cs |
薪資清冊 Excel 報表 |
| 加班申請單.cs |
加班申請單 |
| 加班費印領清冊.cs |
加班費發放清冊 |
| 加班費明細.cs |
加班費明細 |
| 出差申請單.cs |
出差申請表 |
| 請假申請單.cs |
請假申請表 |
| 請假明細.cs |
請假明細 |
| 出缺勤情形統計表.cs |
出勤統計彙總 |
| 差勤日報表.cs |
每日出勤報表 |
| 差勤月報表.cs |
每月出勤報表 |
| 外勤工作明細表.cs |
外勤工作明細 |
| 各項法定提撥費用明細表.cs |
勞健保勞退提撥明細 |
| 支出憑證黏存單.cs |
費用憑證黏存單 |
| CRAXFileTransfer.cs |
壓縮檔上傳/下載 Web 服務 |
| Excel.cs |
NPOI Excel 工具包裝 |
| ReportBase.cs |
報表基底類別(欄位設定、樣式、資料繫結) |
| ReportParameter.cs |
報表參數模型 |
| SalaryStrip.cs |
薪資單資料模型 |
2.6 Crystal Reports(report/)
51 個 .rpt 報表檔案,涵蓋:薪資、出勤、加班、請假、專案等各類正式報表。
三、教育訓練管理系統
3.1 系統概述
獨立的 ASP.NET WebForms 應用程式,負責企業內部訓練課程的完整生命週期管理,從課程企劃、講師遴選、學員報名、執行記錄到經費核銷。
3.2 功能模組詳情
3.2.1 基本資料管理(Forms/基本資料/)
| 頁面 |
功能說明 |
| 講師基本資料.aspx |
講師檔案管理(姓名、專長、經歷、聯絡方式) |
| 課程基本資料.aspx |
課程主檔維護(課程名稱、類別、時數、目標) |
| 場地基本資料.aspx |
培訓場地/教室資訊管理 |
| 片語管理.aspx |
常用片語/範本文字維護 |
| 查詢作業.aspx |
場地與講師進階搜尋 |
| TeacherDetail.aspx |
講師詳細資訊(彈窗) |
| PlaceDetail.aspx |
場地詳細資訊(彈窗) |
3.2.2 組織管理(Forms/組織/)
| 頁面 |
功能說明 |
| 職務類別處理.aspx |
職務/角色定義管理 |
| 組織類別處理.aspx |
組織類型分類管理 |
| 組織圖處理.aspx |
組織層級結構檢視 |
| 組織人員處理.aspx |
組織內人員指派管理 |
| 簽核關卡設定.aspx |
各表單類型簽核流程關卡設定 |
3.2.3 課程企劃(Forms/課程企劃/)
| 頁面 |
功能說明 |
| 訓練課程企劃書.aspx |
課程提案/規劃表主頁(處理與查詢) |
| 數位課程管理.aspx |
數位課程建立與編輯 |
| 數位課程訓練對象.aspx |
數位課程目標學員指派 |
| PickupProject.aspx |
計畫別挑選(彈窗) |
| PickupTeacher.aspx |
講師遴選(彈窗,含送簽功能) |
| PickupPlace.aspx |
場地遴選(彈窗,含送簽功能) |
| PickupPeople.aspx |
訓練對象挑選(彈窗) |
| PickupDate.aspx |
多日課程日期挑選(彈窗) |
| PickupContent.aspx |
課程內容編輯(彈窗) |
| ChangeTeacher.aspx |
講師異動(彈窗) |
| ChangePlace.aspx |
場地異動(彈窗) |
| ChangeDate.aspx |
日期異動(彈窗) |
3.2.4 辦訓前置作業(Forms/辦訓前置作業/)
| 頁面 |
功能說明 |
| 講師行前通知.aspx |
產生並寄送講師課前通知 |
| 學員行前通知.aspx |
產生並寄送學員課前通知 |
| 學員課程異動通知.aspx |
通知學員課程變更 |
| 學員簽到表列印.aspx |
列印課程簽到表 |
3.2.5 選課報名(Forms/選課/)
| 頁面 |
功能說明 |
| 學員選課.aspx |
學員線上選課/報名 |
| 選課查詢.aspx |
選課報名記錄查詢 |
| 數位課程觀看.aspx |
數位課程清單瀏覽 |
| 受訓紀錄查詢.aspx |
個人受訓歷史查詢 |
| ViewVideo.aspx |
數位課程影片播放(彈窗) |
| ShowCourseDetail.aspx |
課程詳細資訊(彈窗) |
| ShowTeacherDetail.aspx |
講師詳細資料(彈窗) |
3.2.6 辦訓狀況(Forms/辦訓狀況/)
| 頁面 |
功能說明 |
| 學員出席登錄.aspx |
學員課程出勤登記 |
| 缺席查詢.aspx |
課程缺勤查詢 |
| 教學日誌處理.aspx |
教學日誌管理(含送簽功能) |
| 課程剪影處理.aspx |
課程照片上傳與管理 |
| 課程使用經費登錄.aspx |
課程經費/費用登錄 |
| 滿意度調查表填寫狀況.aspx |
滿意度調查填寫狀態監控 |
| 滿意度調查表及心得報告.aspx |
學員填寫滿意度調查與心得報告 |
| 心得報告討論管理.aspx |
心得報告討論串管理 |
| 心得報告討論.aspx |
學員討論/回覆心得報告 |
| 講師評鑑.aspx |
講師授課表現評估 |
| 訓練檢討報告處理.aspx |
訓練檢討報告(含送簽功能) |
| 訓練效益追蹤紀錄.aspx |
訓練效益/ROI 追蹤(含送簽功能) |
| 訓練效益個人.aspx |
個人層級訓練效益檢視 |
| 年度課程執行狀況.aspx |
全年課程執行概覽 |
| ClassPicture.aspx |
班級照片檢視(彈窗) |
| UC出席狀況.ascx |
出勤狀況共用控制項 |
3.2.7 領據系統(Forms/領據系統/)
| 頁面 |
功能說明 |
| 領據資料作業.aspx |
領據查詢/處理/匯入匯出/列印(頁籤式) |
| 非講師.aspx |
非講師人員領據支付管理 |
| 財稅作業與領據關帳.aspx |
財稅處理與領據關帳作業 |
| 火車票價維護.aspx |
火車票價查詢/修改/匯入匯出 |
| 領據處理.ascx |
領據資料輸入/編輯控制項 |
| 領據查詢.ascx |
領據搜尋控制項 |
| 領據匯出匯入.ascx |
領據批次匯入/匯出控制項 |
| 領據列印.ascx |
領據列印控制項 |
| 付款設定.ascx |
付款參數設定控制項 |
| 火車票價查詢修改.ascx |
火車票價查詢修改控制項 |
| 火車票價匯出匯入.ascx |
火車票價匯入匯出控制項 |
領據系統支援的費用類型:
| 類別 |
說明 |
| 講師費 |
講師授課酬勞 |
| 諮詢費 |
諮詢顧問費用 |
| 助教費 |
助教費用 |
| 工作費 |
工作人員費用 |
| 出席費 |
出席會議/活動費用 |
| 主持費 |
主持人費用 |
| 差旅費 |
交通住宿費用 |
| 勞務費 |
其他勞務報酬 |
3.2.8 溝通記錄(Forms/溝通記錄/)
| 頁面 |
功能說明 |
| 溝通記錄.aspx |
訓練相關溝通/通知管理主頁 |
| 溝通記錄編輯.aspx |
溝通記錄編輯 |
| 溝通記錄附件.aspx |
溝通記錄附件管理(彈窗) |
| 附件檢視.aspx |
附件內容檢視 |
| 檢附資料參考.aspx |
可附加項目參考資料管理 |
3.2.9 簽核流程(Forms/簽核/)
| 頁面 |
功能說明 |
| 簽核.aspx |
簽核主頁(待簽核/歷史記錄) |
| 簽核測試.aspx |
簽核內部測試工具 |
| 送簽.ascx |
提交簽核共用控制項 |
| 送簽Event.cs |
簽核事件處理邏輯 |
3.2.10 自行登錄(Forms/自行登錄/)
| 頁面 |
功能說明 |
| 持有證照.aspx |
學員自行管理持有證照/證書 |
| 外部訓練登錄.aspx |
學員登錄參加之外部訓練 |
3.2.11 ASMX Web 服務
| 服務 |
功能說明 |
| 領據處理.asmx |
領據資料 CRUD 與查詢 |
| 付款設定.asmx |
付款參數維護 |
| 火車票價.asmx |
火車票價查詢 |
| 火車票價維護.asmx |
火車票價 CRUD |
| ReceiptUploadHandler.ashx |
領據上傳處理 |
| TrainFareUploadHandler.ashx |
火車票價上傳處理 |
3.3 資料存取層(DAC/)
共 118 個 C# 檔案,依功能分類:
| 目錄 |
檔案數 |
說明 |
| Common/ |
2 |
通用資料查詢、檔案圖示對照 |
| 人派/ |
11 |
人員基本資料、登入驗證、權限管理、群組管理 |
| 基本資料/ |
19 |
講師、課程、場地、職務、組織圖、片語等主檔 |
| 外部紀錄/ |
4 |
持有證照、外部受訓記錄 |
| 溝通記錄/ |
6 |
訓練溝通記錄、附件、歷程 |
| 簽核/ |
6 |
表單簽核主檔、明細、簽核設定 |
| 課程企劃/ |
22 |
課程企劃書、課程內容、講師遴選/異動、場地遴選/異動、數位課程 |
| 辦訓狀況/ |
24 |
教學日誌、課程剪影、經費、心得報告、滿意度調查、訓練效益、檢討報告 |
| 選課報名/ |
6 |
課程報名、學員出席、數位課程觀看記錄 |
| 領據系統/ |
18 |
領據、非講師、勞務費、差旅費、火車票價、付款設定、匯出匯入驗證 |
每組實體採用 1.cs(自動產生)+ 2.cs(擴充邏輯) 雙檔案模式。
四、活動報到系統
4.1 系統概述
ASP.NET WebForms 後台管理系統,負責課程/活動的學員報到管理,支援 Excel 匯入匯出、簡訊通知、QR Code 條碼。
4.2 功能頁面
| 頁面 |
功能說明 |
| Home.aspx |
首頁,提供用戶端安裝包下載與設定指引 |
| ClassesList.aspx |
課程管理(CRUD、搜尋、列表) |
| SignUpList.aspx |
課程參加人員管理,依課程/姓名/手機查詢報到/退狀態 |
| SignUpImport.aspx |
Excel 匯入參加人員(上傳、驗證預覽、確認匯入) |
| SignUpExport.aspx |
匯出參加人員清單至 Excel |
| RoleManage.aspx |
群組人員管理(系統權限群組成員管理,批次新增/移除) |
| MessageAccountManage.aspx |
簡訊帳號管理(各計畫簡訊發送帳號密碼設定) |
| ClassesReport.aspx |
課程統計報表 |
| Constructing.aspx |
功能建置中佔位頁 |
4.3 ASMX Web 服務
| 服務 |
功能說明 |
| LoginService.asmx |
使用者登入驗證 |
| SignUpService.asmx |
參加人員 CRUD、Excel 匯入匯出、批次簡訊、批次報到/退上傳 |
| ClassesService.asmx |
課程 CRUD、簽到表匯出、課程清單匯出 |
| RoleManageService.asmx |
權限群組成員管理 |
| MessageAccountManage.asmx |
簡訊平台帳號管理(EVERY8D、MITAKE 平台切換) |
| BPSNService.asmx |
員工資料下載 |
4.4 簡訊服務架構
| 元件 |
說明 |
| BaseSMSProvider.cs |
簡訊供應商抽象基底類別(電話驗證、HTTP POST) |
| EVERY8DSMSProvider.cs |
簡訊發送、額度查詢(EVERY8D 平台) |
| MITAKESMSProvider.cs |
帳戶餘額查詢(MITAKE 平台) |
| SMSSendingService.cs |
簡訊發送單例服務(路由至正確供應商) |
五、報到系統客戶端(WinForms)
5.1 系統概述
Windows Forms 桌面應用程式,部署於報到現場 Kiosk,支援離線操作,透過 SQLite 本地資料庫暫存資料。
5.2 功能視窗
| 視窗 |
功能說明 |
| MainForm |
"新譽管理課程報到系統" 主介面(1715 行) |
| LoginForm |
登入視窗 |
| AgreementConfirmForm |
同意確認視窗 |
| CheckoutOnlyConfirmForm |
僅簽退確認 |
| ExistConfirmForm |
存在確認 |
| ProcessingForm |
處理中等待視窗 |
5.3 服務層
| 類別 |
功能說明 |
| ApiService.cs |
API 服務基底類別(HTTP 請求、Session Cookie、錯誤處理) |
| LoginService.cs |
登入服務客戶端 |
| SignUpService.cs |
報名服務客戶端 |
| ClassesService.cs |
課程服務客戶端 |
| BPSNService.cs |
班別資料服務客戶端 |
| ConfigService.cs |
系統設定管理服務(設定檔儲存於 AppData) |
| NotificationSoundService.cs |
音效服務(報到 OK、退到 OK、提示音) |
5.4 離線資料同步
| 元件 |
說明 |
| DatabaseService.cs |
SQLite 資料庫服務 |
| Repositories/ |
SQLite 儲存庫 |
| DataSyncService.cs |
資料同步服務(後台 API 與本地 SQLite 同步) |
5.5 安裝部署
| 專案 |
說明 |
| 報到系統客戶端安裝/ |
Visual Studio Installer 安裝專案 |
| 報到系統客戶端安裝自訂動作/ |
安裝程式自訂動作(ConfigInstaller.cs) |
六、基礎設施與工具
6.1 備份系統
BackupService(ASP.NET Web 服務):
| 端點 |
功能說明 |
| BackupTable() |
觸發所有資料表完整備份 |
| BackupOneTable(tableName) |
備份單一資料表 |
| GetFileList(path) |
遞迴列出目錄檔案 |
| GetFile(path) |
以 Base64 回傳檔案內容 |
備份流程:BackupWorker 使用 Timer 驅動,輪巡所有資料表產生 INSERT 腳本,以 GZip 壓縮為 {TableName}.gz 檔。
BackupClient(C# 主控台應用程式):
簡易用戶端,呼叫 BackupService 列出遠端 rpar_attachment 目錄檔案。
6.2 Delphi 舊版應用
| 專案 |
說明 |
| 年度開帳作業/ |
Delphi 年度結轉開帳工具 |
| DataTransfer/ |
Delphi 資料轉換工具 |
| Delphi/ |
舊版資料管理應用(含 Access MDB) |
七、技術棧摘要
| 類別 |
技術 |
| 開發框架 |
.NET Framework 3.5(人員派遣)/ 4.8.1(報到客戶端) |
| Web 框架 |
ASP.NET WebForms + AJAX Extensions、Master Page |
| 前端 |
jQuery 1.12.4、Vue.js 2.x、Axios、自訂 JS Mixins |
| 資料庫 |
SQL Server(主系統)、SQLite(客戶端離線) |
| 資料存取 |
自訂 DAC 層(兩段式產生:自動 + 擴充) |
| 報表 |
Crystal Reports 13(.rpt × 51)、NPOI(Excel) |
| 桌面應用 |
Windows Forms (.NET 4.8.1) |
| 簡訊 |
EVERY8D、MITAKE 雙平台供應商 |
| 安裝部署 |
Visual Studio Installer (.vdproj)、Web Deployment Projects |
| 版控 |
Subversion (AnkhSVN) |
| 套件 |
Newtonsoft.Json、NPOI、SharpZipLib、Ionic.Zip、ZXing.Net、Microsoft.Data.Sqlite |
八、子系統功能對照
| 子系統 |
主要功能 |
技術架構 |
| 人員派遣系統 (Web/) |
員工基本資料、出缺勤、薪資計算、勞健保、請假加班、專案管理、簽核流程、Crystal Reports 報表 |
ASP.NET WebForms + PostgreSQL (DAC 層) |
| 教育訓練系統 (教育訓練系統/) |
課程企劃、講師/場地管理、學員報名、數位課程、滿意度調查、訓練效益追蹤、領據核銷、簽核流程 |
ASP.NET WebForms + SQL Server (Vue.js 前端) |
| 活動報到系統 (報到系統/) |
課程管理、學員報到/退、Excel 匯出入、簡訊通知、權限管理 |
ASP.NET WebForms + SQL Server |
| 報到用戶端 (報到系統客戶端/) |
現場離線報到、卡片感應/條碼、音效提示、SQLite 離線同步 |
WinForms (.NET 4.8.1) + SQLite |
| 年度開帳 (年度開帳作業/) |
年度結轉會計開帳作業 |
Delphi |
| 備份系統 (BackupService+Client) |
資料庫自動備份(INSERT 腳本 + GZip 壓縮) |
ASP.NET Web 服務 + C# Console |