---
# System prepended metadata

title: Custos Enterprise API - API-011 取得員工最新節碳紀錄 (新)
tags: [新 API]

---

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