---
# System prepended metadata

title: Untitled

---

```
*multipleSendMobile(
final List<TwTransferTransaction> txs 要執行的交易清單, 
final TwTransferTransaction tx 臺幣轉帳交易基本資料檔,
final Integer companyKey , 
boolean timelyResponse 是否即時回應訊息)*
```
1.     確認要執行的交易清單不為空(txs is not empty)
2.     執行 AccountUtils.findCompanyOwnAcntByCustomerId 產生Account list (所有帳號(不含關係戶及轉入帳號))
    *   用付款戶名ID(TWN.TW_TRANSFER_PAYEE.GROUP_CUSTOMER_ID)
        *tx.getPayer().getGroupCustomerId()*
        去UAA.UAA_COMPANY找COMPANY_KEY
        再去UAA.UAA_COMPANY_ACNT找包裝成UAAAccount 的BO物件
    *   **再將UAAAccount轉成Account List Object *[AccountUtils.transformToAccountsListFrom(uaaAccountList)]***
        1. account type(帳戶類型)從UAAAccount 的BO物件取得
        2. 財富管理帳號之判斷 
            **從session取得 自 SYSTEM_CODE 表中, 以 SYSTEM_CODE='accountTypeWealth' 取 財富管理帳號類型之值**
*TCBConfigurationsDynamic.getSessional("accountTypeWealth", StringUtils.EMPTY);* 
        3. 根據 account type 來產生對應的 Account 實體
    *AccountFactory.createAccount(uaaAccount.getBranchId(), uaaAccount.getAccountNo(), accountType);*
        4. 一筆一筆加入TreeSet<Account> accounts
            * 若為轉入帳號且為合庫發行帳號:
                (1) 會從**session** ***VisitUtils.getCurrentVisit().getOutwardAccounts()* (所有約定的轉出帳號) 比對AccountNo**後加入帳號資訊
                (2) 或再從uaa.UAA_COMPANY_ACNT找狀態正常的帳號存入account中
             * 其他直接set Account BO資料

```
3.     executeMultipleSend(
List<TwTransferTransaction> txs 
    要執行的交易清單(此傳入的交易清單，皆為同一個批號), 
TwTransferTransaction tx 臺幣轉帳交易基本資料檔,
Integer companyKey, 
String batchPageNo 分批頁數, 
String batchCount 分批筆數, 
List<Account> companyOwnAccounts 轉出戶名的歸戶帳號,
boolean timelyResponse 是否即時回應訊息) 
```

*executeMultipleSend(txs, tx, companyKey, null, null, companyOwnAccounts, timelyResponse)*
    
* 建立eai request (MCHAPT01SvcRqType)
     * 從TwTransferTransaction取得
    總筆數、總金額、付款人手續費、執行模式 R:即時回應 ,非R:非即時...
    * 從交易清單TwTransferTransaction List取得
        1. 判斷transferType
            (1) 為edi扣他帳號 *TWN.TW_TRANSFER_PAYER.EDI_ACCOUNT*
                    transferType=02
            (2) 若不是edi扣他帳號:
                    2.1 companyOwnAccounts 轉出戶名的歸戶帳號是空的
                -> **`執行 AccountUtils.findCompanyOwnAcntByCustomerId`**
                    2.2 判斷新企銀與原企銀之限額設定，true 為新企銀，false 為原企銀*TwTransferAmountLimitedUtils.isConfigTransferAmountLimit*
                    2.3 由2.1、2.2之參數判斷transferType	
        2. 轉入帳號約定註記(Y：有註記/N：無註記)(約定轉入帳號傳入Y，反之傳N)
            (1) 依約定收款人資訊查詢約定轉入帳號資訊(UAA.UAA_COMPANY_RELATED_IN_ACNT)
            (2) **將UAA Account(轉入帳號資訊)轉成Account List Object** 判斷是否為空來設定不同條件(TransferInType、LimitType)
        3. 依據公司鍵值找尋線上約定轉入帳號(UAA.UAA_COMPANY_RELATED_IN_ACNT)
        4. 判斷**flowProcessInfo.getTxNo() &FlowSecurityInfo().getApproveSecurityType()** 設定SSLType
            (管理限額傳入參數【個銀才要傳SSLType、LimitType】【個銀判斷為TX_NO第9碼為P/行動為M】)
        5. 取得 TWN.TwTransferPayee.VAB_DATA (FEDI VAB DATA) 把VAB內容轉成Hex塞入InputData
        6. BatchNOSeqNO 5位數向左補零
        7. 判斷TWN.TwTransferTransaction.SCHEDULED(是否為預約交易) 設定OrderType
        8. 判斷TWN.TwTransferPayee.COMPULSIVE_REMIT(是否強制通匯 compulsiveRemit Y / N)、TWN.TwTransferPayee.BANK_ID 設定轉帳通道(TransferWay)
        9. 判斷TWN.TwTransferPayee.CHECK_CUSTOMER_ID_NAME(是否檢核收款方戶名及統編)設定檢核戶名及統編註記(CheckNameType)
        10. 判斷EDI註記(TWN.TwTransferPayee.ACCOUNT_KEY startsWith("EDI"))
            10-1. 是EDI: UAA_COMPANY_ACNT取得付款人統編
            10-2. 不是EDI: 付款統編直接從DB取得(TWN.TW_TRANSFER_PAYEE.GROUP_CUSTOMER_ID)
        11. 判斷傳真通知方式 TWN.TwTransferPayee.FAX_NOTICE 設定FaxType
        12. UAA.UAA_COMPANY取得轉出戶名
        13. 判斷是否有憑證資料組憑證明細資料(TWN.TW_TRANSFER_PAYEE_CRET)
        14. 發送電文
                    
    
        
        
    
            

