c.put('@SYSTEM_FLOW', true);
var roleCd = f.getRoleCd();
var branchCd = f.getBranchCd();
var validTxnList = c.getData('@VALIDTXNLIST');
var fgLv1TxnList = c.getData('FG_LV1_TXN_LIST');
var fgLv2TxnList = c.getData('FG_LV2_TXN_LIST');
var validTxnMap = new HashMap();
var validlv1FuncsMap = new HashMap();
var validlv2IsCustFuncsMap = new HashMap();
var validlv2NonCustFuncsMap = new HashMap();
if(validTxnList != null && validTxnList.size() != 0){
for(var i = 0; i < validTxnList.size(); i++){
var validTxn = validTxnList.get(i);
println('TXNCD : ' + validTxn.get('TXNCD'));
validTxnMap.put(validTxn.get('TXNCD'),validTxn);
}
c.put('@VALIDTXNMAP', validTxnMap);
/** 第一層 */
for(var i = 0; i < fgLv1TxnList.size(); i++){
var func = fgLv1TxnList.get(i);
var id = func.get('ID');
var parentId = func.get('PARENTID');
var groupCd = func.get('GROUPCD');
var field1 = func.get('EXTRAFIELD1');
var field3 = func.get('EXTRAFIELD3');
if(id == parentId){
if(StringUtils.isNotBlank(field1)){
if(field1.contains(roleCd)){
/** 檢查是否有符合權限的交易 */
if(StringUtils.isNotBlank(field3)){
var fs = field3.split(',');
for(var j = 0; j < fs.length; j++){
var f = fs[j];
var key = f.substring(1);
if(validTxnMap.containsKey(key)){
// 090分行,第一層不秀國外匯款 (用角色來判斷 RG010,RG011 不顯示)
// if(groupCd == 'FG_LV1_FUNC19' && branchCd == '090'){
// break;
// }
validlv1FuncsMap.put(id,func);
break;
}
}
}
else{
validlv1FuncsMap.put(id,func);
}
}
}
}
}
/** 第二層 */
for(var i = 0; i < fgLv2TxnList.size(); i++){
var func = fgLv2TxnList.get(i);
var id = func.get('ID');
var parentId = func.get('PARENTID');
var groupCd = func.get('GROUPCD');
var field1 = func.get('EXTRAFIELD1');
var field3 = func.get('EXTRAFIELD3');
var isCust = groupCd.contains('BOTH') || groupCd.contains('IS_CUST') ? true: false;
var isNonCust = groupCd.contains('BOTH') || groupCd.contains('NON_CUST') ? true: false;
if(StringUtils.isNotBlank(field1)){
if(field1.contains(roleCd)){
/** 檢查是否有符合權限的交易 */
if(StringUtils.isNotBlank(field3)){
var fs = field3.split(',');
for(var j = 0; j < fs.length; j++){
var f = fs[j];
var key = f.substring(1);
if(validTxnMap.containsKey(key)){
if(isCust){
validlv2IsCustFuncsMap.put(id,func);
}
var tmpValidLv1FuncsList = new ArrayList(validlv1FuncsMap.values());
var validLv1FuncsArray = new Array();
for(var i = 0; i < tmpValidLv1FuncsList.size(); i++){
validLv1FuncsArray[i] = tmpValidLv1FuncsList.get(i);
}
validLv1FuncsArray.sort(sortFunction);
var validLv1FuncsList = new ArrayList();
for(var i = 0; i < validLv1FuncsArray.length; i++){
println("validLv1FuncsArray[i] : " + validLv1FuncsArray[i]);
validLv1FuncsList.add(validLv1FuncsArray[i]);
}
var tmpValidLv2IsCustFuncsList = new ArrayList(validlv2IsCustFuncsMap.values());
var validLv2IsCustFuncsArray = new Array();
for(var i = 0; i < tmpValidLv2IsCustFuncsList.size(); i++){
validLv2IsCustFuncsArray[i] = tmpValidLv2IsCustFuncsList.get(i);
}
validLv2IsCustFuncsArray.sort(sortFunction);
var validLv2IsCustFuncsList = new ArrayList();
for(var i = 0; i < validLv2IsCustFuncsArray.length; i++){
println("validLv2IsCustFuncsArray[i] : " + validLv2IsCustFuncsArray[i]);
validLv2IsCustFuncsList.add(validLv2IsCustFuncsArray[i]);
}
var tmpValidLv2NonCustFuncsList = new ArrayList(validlv2NonCustFuncsMap.values());
var validLv2NonCustFuncsArray = new Array();
for(var i = 0; i < tmpValidLv2NonCustFuncsList.size(); i++){
validLv2NonCustFuncsArray[i] = tmpValidLv2NonCustFuncsList.get(i);
}
validLv2NonCustFuncsArray.sort(sortFunction);
var validLv2NonCustFuncsList = new ArrayList();
for(var i = 0; i < validLv2NonCustFuncsArray.length; i++){
println("validLv2NonCustFuncsArray[i] : " + validLv2NonCustFuncsArray[i]);
validLv2NonCustFuncsList.add(validLv2NonCustFuncsArray[i]);
}