工作內容

一、 工作詳述

 目前來到公司已經快一年了,在寒假剛進公司時,第一個就是先進行新人訓練,練習自己的程式技巧與學習公司產品的Coding Style,而期間進行一些主管派發的客戶客製需求案子。到了暑假開始讓我接觸前端的邏輯撰寫。在第二個學期主管持續讓我在派發任務中學習,除了繼續研究我的相對弱項的前端程式,也讓我慢慢接觸金流串接的程式。

(1) 新人訓練
在進公司後的第一件事就是新人訓練,一開始主管先讓我看了一些網頁相關的教學影片,包括前端、後端與資料庫的基本概念,看完影片之後,主管給了我一份專案,這份專案是公司標準版產品的範例,並且講解裡頭的程式讓我了解公司產品的大架構與學習公司的Coding Style。在每次的講解後主管會出一份作業,並且安排時間CodeReview,CodeReview時要讓我講解自己寫了哪些功能、這些功能如何運作,如此一來能更有效的驗收我的學習成果,這段訓練時間讓我對公司產品的了解與程式能力進步不少。

(2) 客戶客製需求功能建置、修改
經過新人訓練之後,主管開始派發任務給我,主要都是依照客戶的需求來進行建置或修改程式,通常公司會給一份需求單,裡面會詳述頁面的功能、樣式、所需的欄位等等,而有不清楚或是部會的地方都可以去問主管,主管都會非常有耐心地幫忙解答。

實習期間做了包括收據客製、新舊系統轉移資料、定期定額授權書功能、捐款匯入等等功能。轉舊資料時必須一個一個檢查新系統與舊系統資料庫的欄位,並且要去現有的網頁查看這些欄位有沒有和新系統是不一樣的,把自己放在客戶的角度,判斷是否需要將舊資料轉到新系統中並記錄下來。這些學習都讓我獲益良多並且取得很大的進步。

暑假期間,持續幫忙客戶的需求功能建置,因應一些產品上沒有的功能需求,以產品為基底建置新頁面、新資料表,要好好構思資料會用到哪些欄位,又或者新建的頁面功能需求,產品中是否有相似功能可以參考,後續也較好維護。

(3) 線上捐款、金流之前端程式撰寫
主管在我相對熟悉後端的捐款系統產品後,讓我慢慢接觸線上捐款產品,這份產品主要是提供基金會一個網站來讓一般民眾能透過這個網站捐款給該機構。我認為接觸這個產品對我來說非常重要,線上捐款的前端部分較之前的捐款管理系統複雜,而剛好我前端也一直是我的弱項,透過這個機會,我更加瞭解前端程式撰寫的技巧,讓我的JavaScript、JQuery語言比以前更熟練。

二、 實習期間完成的進度

羅東聖母醫院-玉山授權書定期定額轉帳請款功能
 產品有一個功能是定期定額功能,從字面上來看就是提供客戶也就是基金會作善款的定期定額收取,有意願定期定額的捐款人會提供卡號讓基金會在每個周期扣款進行捐款,並設定扣款周期,每期的時間從月繳、季繳、年繳等等,舉例來說,今天我選擇月繳1500元並選擇5-第一批次扣款,系統就會在每個月的5號到指定的卡號扣款1500元。

 取得定期定額善款的方法,先至系統中請款作業的頁面,匯出本期的請款檔,這份請款檔的格式會由銀行提供,這個檔案會包含這個月要收取的金額等資料,並將這份檔案上傳到銀行的後台,銀行會回覆一份銷帳檔,我們再將銷帳檔匯入系統中,就會發現這份銷帳檔會記錄哪些是扣款成功哪些是失敗,並把成功扣款卡號的扣款日期移到下期。

 不同銀行的銷帳/請款檔的格式都不同,通常標準版使用的是聯合信用卡公司,而每家銀行的銷帳/請款檔的格式都不一樣,這次的案子客戶因為有指定要使用玉山銀行的銷帳/請款檔,所以要照著另外特定的格式來撰寫這個案子。

下圖為定期定額轉帳請款的頁面:


按下匯出請款檔就會得到下方記事本檔案,並將這份檔案交給銀行後台


依照玉山授權書的檔名格式


請款檔內容一樣照著玉山銀行的格式撰寫,如下圖:

因為欄位非常多且複雜,在寫完之後一定要再三測試,很容易漏了檢查哪些欄位,所以測試一定要非常小心。


Header檔頭資料


Data每行資料


Trailer檔尾資料


 上傳到玉山銀行後,過一兩個工作天銀行會回覆一份銷帳檔,格式和請款檔大同小異,下方紅字部分為銷帳檔和請款檔的差異,最主要差在回覆碼,當回覆碼是00的時候代表成功,其餘皆為失敗。


 在匯入銀行提供的銷帳檔後,成功的銷帳會顯示在請款成功頁面,再按下轉收據按鈕就會將此捐款記錄存入資料庫,大功告成!


 如果遇到轉帳失敗的情況(可能是此帳戶餘額不足等等原因),系統也會整理到以下頁面,讓客戶能透過這個名單去了解實際狀況。



私立聖家啟智中心-新舊系統轉移資料
 有許多客戶很久以前就有跟公司合作,而以前的系統可能會因為一些原因需要改成新系統以方便運作,然而新系統與舊系統之間除了功能與頁面有差異之外,資料庫的欄位也有些許不同,這時候我們就要幫客戶進行新舊系統間資料的轉移。
 通常在轉移資料前一定要先對照一下新系統與舊系統的欄位,將兩個DB拿出來對照,開一個excel來記錄相對應的欄位。


 有存放相同值的欄位就可以直接放,若有疑慮的欄位或是有些存放自己不了解的資料不確定要不要轉移的話,就先到舊系統的網頁查看這個欄位的使用方法與意義,查看過後還是不確定的話就可以拿去和主管討論,根據主管的經驗很多欄位的問題都輕鬆解決。


下圖為舊系統:


整理完之後,根據整理的對應欄位,首先要確認新舊系統的選項資料,將對應的選項值存入dictionary中


接著設定轉資料按鈕的事件,轉資料時通常不會一次轉完,會利用SQL語法分批轉,因為資料量如果太大,可能會導致程式崩潰,會很麻煩。


並將指定資料存入List中


 最後將程式執行起來,並注意連接的資料庫Data Source,如果僅要測試的話要記得設定為localhost,不然可能會直接影響到伺服器上的網站資料,如果程式有錯的話會造成客戶的麻煩。


花蓮縣老人暨家庭關懷協會-居服個案繳費管理功能
 客戶要在捐款系統中新增個案繳費管理,參考捐款人主檔的精神建立一連串的個案-繳費關係。依照客戶需求有個案主檔、繳費功能、繳費收據之列印與匯入繳費資料功能。

安德烈食物銀行-捐款系統增修與線上捐款
 客戶希望在線上捐款頁面中實現動態的收件人數量,依照客戶設定的捐款金額/贈品計算,與預設贈品數量上限進行判斷,若超過計算結果上限,會跳出警示視窗並將贈品數量改為上限。
下圖的收件人資料是根據輸入的贈品資料數字,再用後端迴圈生成對應數量的html格式傳入前端,動態顯示收件人資料的數量。而勾選均同一收件人僅會生成一組收件人資料



無子西瓜-線上單筆串接凱基信用卡
 客戶希望在線上捐款頁面的信用卡功能改成凱基金流處理,故主管先讓我研讀凱基的串接文件,了解程式端與凱基方面如何做資料的溝通與傳遞接收環境的配合。並利用公司的測試API程式來測試我寫的API是否能成功傳遞資料。

三、 工作當中扮演的角色

 公司為客戶提供非常多服務包括捐款系統、個案管理系統、義賣網站、志工管理等等,並整合運用,讓客戶能更方便的管理各方面需求。而我的部門就包含了捐款系統與個案管理系統等等,其中捐款系統整合了捐款人的捐款、捐物資料,並提供金流、收據等服務,讓客戶更有效的管理捐款方面事務。

 身為一名實習生,工作主要是進行捐款系統後端程式撰寫,最近也新增線上捐款的產品撰寫,一樣依照客戶的客製需求進行建置,主管會統整客戶的需求並評估我目前還需要學習產品的哪些功能,給我最適合我的任務,在工作中持續學習。在做完工作後進行測試,主管常教導我說以客戶的角度和跳脫原本的運作邏輯來測試程式,可以幫自己的程式找到許多問題,省去很多麻煩。測試完並交給主管再測試,若沒有錯的話就算完成一份工作。

expand_less