# 取得員工最新節碳紀錄 Custos-EnterpriseAPP-API-011 V3.0 2023.09.11 Custos 企業會員之員工登入 Custos Enterprise APP 後,取得個人最新節碳紀錄及各項節碳生活功能當日剩餘額度。 [toc] ## 作業啟動 1. 以傳入之使用者 token 取得使用者流水編號 #emp_data_id 2. 傳入參數 節碳紀錄日期 #happen_date 3. 記錄 SystemLog:#emp_data_id|取得員工最新節碳紀錄|作業啟動 ## API 作業啟動 1. 以 #emp_data_id 取得使用者所屬企業流水編號 #corp_data_id、使用者所屬部門代碼 #dept_data_id、語系代碼 #language_setting 2. 以傳入參數查詢 corp_ls_emp_carbon_records,取得員工最新節碳紀錄。 參考 SQL: *select leaves_accum, trees_accum from corp_ls_emp_carbon_records where corp_data_id = #corp_data_id and emp_data_id = #emp_data_id and language_setting = '#language_setting'* 將結果暫存於變數 #leaves_accum, #trees_accum;無資料回傳則均為 0 3. 以傳入參數查詢 corp_ls_carbon_records,取得員工各項節碳生活功能當日已完成數值,並以API-010 取得樹葉轉換規則與每日功能上限值扣除當日已完成數值,得出剩餘額度。以下需以corp_ls_function 定義之所有非 0 function_id,跑迴圈取值。 參考 SQL: *select sum(leaves) as 'done' from corp_ls_carbon_records where corp_data_id = #corp_data_id and emp_data_id = #emp_data_id and date(happen_date) = date(#happen_date) and function_id = 1 and language_setting = '#language_setting'* API-010 取出同一 function_id 之樹葉轉換規則與每日功能上限值 daily_limitation,扣除上述取得之 #done,得出剩餘額度,存入 #left;若資料庫無資料則 #function_id 回傳查詢所使用之function_id,#done 回傳 0,#left 回傳 daily_limitation 值。同時回傳樹葉與樹之兌換匯率 #leaves_to_tree。 ## 作業結束 記錄 SystemLog:#emp_data_id|取得員工最新節碳紀錄|作業結束 ## 例外處理 若執行中有發生異常,將攔截到的 exception 訊息記錄 ErrorLog:[YYYYMMDDHHMMSS] EnterpriseAPP-API-011 發生異常:【#攔截到的 exception 訊息】 ## 規格及範例 |API No|EnterpriseAPP-API-011| |-|-| |API Name|getEmpLatestRecord| |URL|${url}/APP/getData/getEmpLatestRecord| |Purpose|取得員工最新節碳紀錄| |Description|透過 API 取得員工最新節碳紀錄及各項節碳生活功能當日剩餘額度| |Protocol|JSON over HTTP POST| |Content-Type|application/json| **Request** |參數|型態|必填|長度|說明| |-|-|:-:|:-:|-| |token|String|Y||使用者驗證字串| |happen_date|Date|Y||節碳紀錄日期| **Response** |參數|型態|必回|說明| |-|-|:-:|-| |result|String|Y|API 執行結果,Y:成功,N:失敗| |message|String|N|API 執行失敗的訊息說明| |leaves_accum|INT|Y|目前節碳累積樹葉數| |trees_accum|INT|Y|目前節碳累積樹數| |leaves_to_tree|INT|Y|多少片樹葉可換一棵樹| |data|Object|N|物件陣列,傳回各項節碳生活功能當日剩餘額度;result = N 時為空陣列([])| **Request Sample** ```json var input = { "token": "xxx", "happen_date": "2023-09-08" } ``` **Response Sample** ```json { "result": "Y", //API 結果,Result = Y 時才會有資料 "message": "...", //API 訊息,Ex:"執行失敗,原因:XXXXXXXXX" "leaves_accum": 28, //目前節碳累積樹葉數,取自變數 #leaves_accum "trees_accum": 0, //目前節碳累積樹數,取自變數 #trees_accum "leaves_to_tree": 1000, //多少片樹葉可換一棵樹 "data": [ { "function_id": "1", //節碳生活功能代碼,1:爬樓梯、2:環保袋、3:環保餐具、4:無肉餐、5:腳踏車、6:大眾運輸 "unit": "1", //該節碳生活功能可兌換之樹葉數,取自 API-010 #unit "done": "2", //當日已完成數值,取自變數 #done "left": "1", //當日剩餘額度,取自變數 #left }, {...} ] }