# 取得員工最新節碳紀錄
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
},
{...}
]
}