增添優化功能

This commit is contained in:
2026-03-16 00:38:18 +08:00
parent 38039e8dc0
commit 9068d85c92
12 changed files with 223 additions and 144 deletions
+52 -1
View File
@@ -64,7 +64,7 @@ class LeaveApiService {
// *** 關聯取得假別名稱,存到 Cache
// 排序:按單據日期降冪
String queryFilter = "1^100^billdate^*^start_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 7 DAY) AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)^^personid^$personId";
String queryFilter = "1^100^billdate^*^start_date BETWEEN DATE_SUB(CURDATE(), INTERVAL 21 DAY) AND DATE_ADD(CURDATE(), INTERVAL 7 DAY)^hrsm11^personid^$personId";
return await _apiService.fetchList<Leave>(
tableName: "hrs_leave",
@@ -147,4 +147,55 @@ class LeaveApiService {
),
);
}
/// 上呈請假單
/// 上呈請假單
/// 對應 API 規格: bpmm02_spread
Future<bool> promoteLeave(String personId, String billNo) async {
// 依據標準規範,參數一律使用 para0x
final Map<String, String> params = {
"para01": "eipm21",
"para02": personId,
"para03": billNo,
};
try {
// 使用與 sign_todo_api.dart 相同的 fetchProcedure 結構
// 依據您提供的 url: ".../bpmm02_spread/1/",這裡將 endpoint 設為 "bpmm02_spread/1/"
// (若底層機制會自動補齊後方的 /1/,可自行改為 "bpmm02_spread")
await _apiService.fetchProcedure<dynamic>(
procedureEndpoint: "bpmm02_spread",
params: params,
fromJson: (json) => json, // 僅需確認執行成功,回傳值暫不處理
);
// 只要 fetchProcedure 沒有拋出異常 (且底層已處理 code == 0),即視為成功
return true;
} catch (e) {
// 統一的錯誤捕獲與日誌
print("LeaveApiService.promoteLeave 異常: $e");
return false;
}
}
/// 取得簽核進度歷程
/// 對應 API: bpm_sign_history/2/
Future<List<Map<String, dynamic>>> fetchSignHistory(String billNo) async {
final Map<String, String> params = {
"para01": "eipm21", // 來源單別 functiontag
"para02": billNo, // 原單單號 query_id
};
try {
// 呼叫 SP,並將回傳的每一筆資料解析為 Map
return await _apiService.fetchProcedure<Map<String, dynamic>>(
procedureEndpoint: "bpm_sign_history",
params: params,
fromJson: (json) => json as Map<String, dynamic>,
);
} catch (e) {
print("LeaveApiService.fetchSignHistory 異常: $e");
return [];
}
}
}