```
*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. 發送電文