# Business Logic — FUW01403SFLogic.executeInitService() [107 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `eo.web.webview.FUW01403SF.FUW01403SFLogic` |
| Layer | Service (Web Layer Service Logic) |
| Module | `FUW01403SF` (Package: `eo.web.webview.FUW01403SF`) |

## 1. Role

### FUW01403SFLogic.executeInitService()

This method implements the **initial screen display** processing for the "2 Number Service Application" (2番号サービスお申し込み) — a telecom service contract flow where customers apply for a second telephone number on the same line. It is the entry-point service logic that orchestrates all data gathering required to render the initial application screen.

The method follows a **mapper-based upper/lower mapping pattern** (アッパーマッピング／ダウンマッピング). It first populates an `inputMap` with SC (Service Component) and CC (Common Component) request parameters via the `FUSV0041_FUSV0041OPDBMapper` — covering service contract information display, price plan lists, device option service lists, initial fee breakdowns, ONU exchange work eligibility, and work skip possibility judgments. After invoking the underlying service chain through `invokeService(paramMap, inputMap, outputMap)`, it retrieves all results back into the form beans via corresponding `get*` (lower mapping) calls.

The method also handles **mansion (apartment) vs. detached house judgment** to determine whether to include mansion-specific initial fee items (service handling fees). Additionally, it computes a display flag (`CHG_MULTI_PHONE_CALL_MSG_DSP_FLG`) that controls whether an advisory message about multi-line change processing should be shown — determined by whether the customer has zero multi-phone registrations but non-zero warikomi (bundled) phone registrations.

It is called as the service handler from `FUW01403SFLogic.init()`, which serves as the screen entry point dispatching initialization actions to this method.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["executeInitService begins"])
    S1["Log: Start executeInitService"]
    S2["Create inputMap for service search conditions"]
    S3["Create outputMap for service processing result"]
    S4["Get mansionJudgeFlg from serviceFormBean"]
    S5["Create paramMap with USECASE_ID=FUSV0041"]
    S6["Create FUSV0041_FUSV0041OPDBMapper"]
    S7["Create serviceFormBeanArray and serviceFormBeanArray2"]
    S8["UPPER: setFUSV004101SC eo telecom service contract info"]
    S9["UPPER: setFUSV004102SC device provider service contract"]
    S10["UPPER: setFUSV004104SC price plan basic fee"]
    S11["UPPER: setFUSV004105SC price plan eo adder fee"]
    S12["UPPER: setFUSV004106SC device option service flat"]
    S13["UPPER: setFUSV004107SC device option service combined"]
    S14["UPPER: setFUSV004103CC device option common portion"]
    S15["Check: mansionJudgeFlg equals 1?"]
    S16["UPPER: setJFUInitialCostShokaiCC with true"]
    S17["UPPER: setJFUInitialCostShokaiCC with false"]
    S18["UPPER: setJFUInitialCostShokaiCCWari initial fee number discount"]
    S19["UPPER: setFUSV004104CC ONU exchange work judgment"]
    S20["UPPER: setFUSV004105CC work skip judgment"]
    S21["UPPER: setJFUInitialCostShokaiCCKoji initial fee existing"]
    S22["Try: invokeService(paramMap, inputMap, outputMap)"]
    S23["Catch JCCWebServiceException: handleInitException"]
    S24["LOWER: getFUSV004101SC eo telecom service contract info"]
    S25["LOWER: getFUSV004102SC device provider service contract"]
    S26["LOWER: getFUSV004104SC price plan basic fee"]
    S27["LOWER: getFUSV004105SC price plan eo adder fee"]
    S28["LOWER: getFUSV004106SC device option service flat"]
    S29["Get multiFlg via hasMultiPhoneCall"]
    S30["Get warkmiFlg via hasWarikomiPhone"]
    S31["mongonFlg = 0"]
    S32["Check multiFlg=0 AND warkmiFlg=1?"]
    S33["mongonFlg = 1"]
    S34["Set CHG_MULTI_PHONE_CALL_MSG_DSP_FLG on serviceFormBean"]
    S35["LOWER: getJFUInitialCostShokaiCC initial fee service"]
    S36["LOWER: getJFUInitialCostShokaiCCWari initial fee number discount"]
    S37["LOWER: getFUSV004104CC ONU exchange work judgment"]
    S38["LOWER: getFUSV004103CC device option common portion"]
    S39["LOWER: getJFUInitialCostShokaiCCKoji initial fee existing"]
    S40["Log: End executeInitService"]
    END(["Return outputMap"])

    START --> S1
    S1 --> S2
    S2 --> S3
    S3 --> S4
    S4 --> S5
    S5 --> S6
    S6 --> S7
    S7 --> S8
    S8 --> S9
    S9 --> S10
    S10 --> S11
    S11 --> S12
    S12 --> S13
    S13 --> S14
    S14 --> S15
    S15 --> S16
    S15 --> S17
    S16 --> S18
    S17 --> S18
    S18 --> S19
    S19 --> S20
    S20 --> S21
    S21 --> S22
    S22 --> S24
    S22 --> S23
    S23 --> S24
    S24 --> S25
    S25 --> S26
    S26 --> S27
    S27 --> S28
    S28 --> S29
    S29 --> S30
    S30 --> S31
    S31 --> S32
    S32 --> S33
    S32 --> S34
    S33 --> S34
    S34 --> S35
    S35 --> S36
    S36 --> S37
    S37 --> S38
    S38 --> S39
    S39 --> S40
    S40 --> END
```

**CONSTANT resolutions used in flowchart:**
- `MANSION_JUDGE_FLG = "マンション判定フラグ"` (mansion judgment flag parameter key)
- `CON_MANS_FLG = "1"` (is mansion constant — indicates the customer is in a mansion/apartment building)
- `SVC_USECASE_ID_FUSV0041 = "FUSV0041"` (use case ID for the service component mapping)
- `JPCModelConstant.FUNC_CD_1` (function code 1 — typically indicates display/initialization operation)

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `commonInfoBean` | `final X31SDataBeanAccess` | Shared form Bean carrying common customer and session information (e.g., customer ID, access authority, operation date, and shared flags) used as context across all service processing in this module. Passed to `serviceFormBeanArray2` for CC-level methods requiring both form and common info. |
| 2 | `serviceFormBean` | `final X31SDataBeanAccess` | 2 Number Service Application form Bean carrying screen-specific data: service type number (`SVC_KEI_NO`), mansion judgment flag (`MANSION_JUDGE_FLG`), and all fields that will be populated by upper/lower mapping for display on the initial application screen. |

**External state read by this method:**

| Field / Source | Type | Business Description |
|---------------|------|---------------------|
| `this.getCommonInfoBean()` | `X31SDataBeanAccess` | Instance field accessor — retrieves the instance-level common info Bean (used alongside `serviceFormBean` in `serviceFormBeanArray2` for CC methods that need both contexts). |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004101SC` | FUSV004101SC | - | UPPER mapping — Populates `inputMap` with parameters for displaying the eo electricity/telecom service contract information list (eo電気電話サービス契約情報一覧照会). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004102SC` | FUSV004102SC | - | UPPER mapping — Populates `inputMap` with parameters for displaying the device provider service contract list (機器提供サービス契約一覧照会 — service contract number scope). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004104SC` | FUSV004104SC | - | UPPER mapping — Populates `inputMap` with parameters for displaying the price plan basic fee list (料金プラン固定単価（基本料金）一覧照会). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004105SC` | FUSV004105SC | - | UPPER mapping — Populates `inputMap` with parameters for displaying the price plan eo adder fee list (料金プラン固定単価（eo電気電話アダプター利用料）一覧照会). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004106SC` | FUSV004106SC | - | UPPER mapping — Populates `inputMap` with parameters for displaying the device option service contract flat list (機器オプションサービス契約一覧照会 — フロント). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004107SC` | FUSV004107SC | - | UPPER mapping — Populates `inputMap` with parameters for displaying the device option service contract combined list (機器オプションサービス契約一覧照会 — 複合検索). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004108SC` | FUSV004108SC | - | UPPER mapping — Populates `inputMap` with parameters for displaying the work project list (工事案件一覧照会) — added via ANK-3136. |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004103CC` | FUSV004103CC | - | UPPER mapping — Populates `inputMap` with parameters for the device option service contract registration common portion component (機器オプションサービス契約登録コモコン部品) — used for router retention confirmation (ルーター保有有無確認用). |
| - | `FUSV0041_FUSV0041OPDBMapper.setJFUInitialCostShokaiCC` | JFUInitialCostShokaiCC | - | UPPER mapping — Populates `inputMap` with parameters for the initial cost display list CC. The 4th argument (`true`/`false`) is the mansion flag — controls whether mansion-specific service handling fees are included. |
| - | `FUSV0041_FUSV0041OPDBMapper.setJFUInitialCostShokaiCCWari` | JFUInitialCostShokaiCCWari | - | UPPER mapping — Populates `inputMap` with parameters for the initial cost display CC for number discount fees (番号割当手数料). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004104CC` | FUSV004104CC | - | UPPER mapping — Populates `inputMap` with parameters for the ONU exchange work judgment (ONU交換工事判定). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004105CC` | FUSV004105CC | - | UPPER mapping — Populates `inputMap` with parameters for the work skip possibility judgment (工事スキップ可否判定). |
| - | `FUSV0041_FUSV0041OPDBMapper.setJFUInitialCostShokaiCCKoji` | JFUInitialCostShokaiCCKoji | - | UPPER mapping — Populates `inputMap` with parameters for the initial cost display CC for existing costs (既存工事費). |
| C/R | `JCCBatCommon.invokeService` | invokeService | - | Invokes the core service chain. The `invokeService` call internally branches by service type to call CBS-level processing such as FTTH new registration, Mail change, writing settings, and Epon switching judgment. |
| R | `FUSV0041_FUSV0041OPDBMapper.getFUSV004101SC` | FUSV004101SC | - | LOWER mapping — Retrieves service contract info results from `outputMap` and sets them back into `serviceFormBeanArray`. |
| R | `FUSV0041_FUSV0041OPDBMapper.getFUSV004102SC` | FUSV004102SC | - | LOWER mapping — Retrieves device provider service contract list results from `outputMap`. |
| R | `FUSV0041_FUSV0041OPDBMapper.getFUSV004104SC` | FUSV004104SC | - | LOWER mapping — Retrieves price plan basic fee list results from `outputMap`. |
| R | `FUSV0041_FUSV0041OPDBMapper.getFUSV004105SC` | FUSV004105SC | - | LOWER mapping — Retrieves price plan eo adder fee list results from `outputMap`. |
| R | `FUSV0041_FUSV0041OPDBMapper.getFUSV004106SC` | FUSV004106SC | - | LOWER mapping — Retrieves device option service contract flat list results from `outputMap`. |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004104CC` | FUSV004104CC | - | UPPER mapping — Populates parameters for ONU exchange work judgment (ONU交換工事判定). |
| - | `FUSV0041_FUSV0041OPDBMapper.setFUSV004105CC` | FUSV004105CC | - | UPPER mapping — Populates parameters for work skip possibility judgment (工事スキップ可否判定). |
| - | `FUSV0041_FUSV0041OPDBMapper.setJFUInitialCostShokaiCCKoji` | JFUInitialCostShokaiCCKoji | - | UPPER mapping — Populates parameters for initial cost display CC for existing costs (既存工事費). |
| R | `FUSV0041_FUSV0041OPDBMapper.getJFUInitialCostShokaiCC` | JFUInitialCostShokaiCC | - | LOWER mapping — Retrieves initial cost display results from `outputMap` for eo electricity/telecom service handling fees (eo電気電話事務手数料). |
| R | `FUSV0041_FUSV0041OPDBMapper.getJFUInitialCostShokaiCCWari` | JFUInitialCostShokaiCCWari | - | LOWER mapping — Retrieves initial cost display results for number discount fees (番号割当手数料). |
| R | `FUSV0041_FUSV0041OPDBMapper.getFUSV004104CC` | FUSV004104CC | - | LOWER mapping — Retrieves ONU exchange work judgment results. |
| R | `FUSV0041_FUSV0041OPDBMapper.getFUSV004103CC` | FUSV004103CC | - | LOWER mapping — Retrieves device option service contract registration common portion results (router retention confirmation). |
| R | `FUSV0041_FUSV0041OPDBMapper.getJFUInitialCostShokaiCCKoji` | JFUInitialCostShokaiCCKoji | - | LOWER mapping — Retrieves initial cost display CC results for existing costs (ONU交換工事費). |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Screen: FUW01403SF (FUW01403SFLogic.init) | `FUW01403SFLogic.init` → `executeInitService(commonInfoBean, serviceFormBean)` | `getJFUInitialCostShokaiCCKoji [R]`, `getFUSV004103CC [R]`, `getFUSV004104CC [R]`, `getJFUInitialCostShokaiCCWari [R]`, `getJFUInitialCostShokaiCC [R]`, `invokeService [C/R]`, `sendMessageString [-]`, `hasWarikomiPhone [-]`, `hasMultiPhoneCall [-]`, `getFUSV004106SC [R]`, `getFUSV004105SC [R]`, `getFUSV004104SC [R]`, `getFUSV004102SC [R]`, `getFUSV004101SC [R]`, `handleInitException [-]`, `getJFUInitialCostShokaiCCWari [R]` |

**Call chain explanation:**
- `FUW01403SFLogic.init()` is the screen initialization entry point for the 2 Number Service Application screen (FUW01403SF). It dispatches to `executeInitService()` to perform all screen preparation service calls and return the populated output map for view rendering.

## 6. Per-Branch Detail Blocks

**Block 1** — [SET] Variable initialization (L608)

> Initializes processing logs, data maps, and retrieves mansion judgment flag from the form bean.

| # | Type | Code |
|---|------|------|
| 1 | LOG | `DEBUG_LOG.info("----- FUW01403 Start executeInitService -----")` // Start log |
| 2 | SET | `HashMap<String, Map<String, String>> inputMap = new HashMap<String, Map<String, String>>();` // Service search condition storage map (サービス検索条件格納用マップ) |
| 3 | SET | `HashMap<String, HashMap<String, Object>> outputMap = new HashMap<String, HashMap<String, Object>>();` // Service processing result storage map (サービス処理結果格納用マップ) |
| 4 | SET | `String mansionJudgeFlg = serviceFormBean.sendMessageString(FUW01403SFConst.MANSION_JUDGE_FLG, GET);` // Get mansion judgment flag from form bean — `MANSION_JUDGE_FLG = "マンション判定フラグ"` [-> Key: "マンション判定フラグ"] |

**Block 2** — [SET] Parameter and mapper creation (L620)

> Sets up the use case parameter map and creates the FUSV0041 mapper with form bean arrays.

| # | Type | Code |
|---|------|------|
| 1 | SET | `Map<String, String> paramMap = new HashMap<String, String>();` // Service parameter map |
| 2 | SET | `paramMap.put(X31CWebConst.TELEGRAM_INFO_USECASE_ID, SVC_USECASE_ID_FUSV0041);` // Use case ID = "FUSV0041" [-> SVC_USECASE_ID_FUSV0041 = "FUSV0041"] |
| 3 | SET | `FUSV0041_FUSV0041OPDBMapper mapper = new FUSV0041_FUSV0041OPDBMapper();` // Create mapper for upper/lower mapping |
| 4 | SET | `X31SDataBeanAccess[] serviceFormBeanArray = new X31SDataBeanAccess[] { serviceFormBean };` // Single-element array for SC mapping |
| 5 | SET | `X31SDataBeanAccess[] serviceFormBeanArray2 = new X31SDataBeanAccess[] { serviceFormBean, getCommonInfoBean() };` // Two-element array for CC mapping (form + common info) |

**Block 3** — [CALL] UPPER mapping — Service contract info SC calls (L627–L635)

> Populates the `inputMap` with parameters for displaying various service contract information lists. Each call passes `JPCModelConstant.FUNC_CD_1` (function code 1 — display/initialization).

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.setFUSV004101SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);` // UPPER: eo telecom service contract info list (eo電気電話サービス契約情報一覧照会) |
| 2 | CALL | `mapper.setFUSV004102SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);` // UPPER: device provider service contract list (機器提供サービス契約一覧照会 — service contract number) |
| 3 | CALL | `mapper.setFUSV004104SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);` // UPPER: price plan basic fee list (料金プラン固定単価（基本料金）一覧照会) |
| 4 | CALL | `mapper.setFUSV004105SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);` // UPPER: price plan eo adder fee list (料金プラン固定単価（eo電気電話アダプター利用料）一覧照会) |
| 5 | CALL | `mapper.setFUSV004106SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);` // UPPER: device option service contract flat list (機器オプションサービス契約一覧照会 — フロント) |
| 6 | CALL | `mapper.setFUSV004107SC(serviceFormBeanArray, inputMap, JFUWebCommon.getOpeDate(this, null), JPCModelConstant.FUNC_CD_1);` // UPPER: device option service contract combined list (機器オプションサービス契約一覧照会 — 複合検索), passes operation date |

**Block 4** — [CALL] UPPER mapping — ANK-3136 addition (L636)

> Added via ANK-3136 ticket: work project list SC.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.setFUSV004108SC(serviceFormBeanArray, inputMap, JPCModelConstant.FUNC_CD_1);` // UPPER: work project list SC (工事案件一覧照会) — ANK-3136-00-00 |

**Block 5** — [CALL] UPPER mapping — CC components (L639–L660)

> Populates `inputMap` with parameters for common component processing: device option common portion, initial cost display (with mansion flag branching), initial cost number discount, ONU exchange work judgment, work skip judgment, and existing initial cost display.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.setFUSV004103CC(serviceFormBeanArray2, inputMap);` // UPPER: device option service contract registration common portion (機器オプションサービス契約登録コモコン部品) — router retention confirmation |
| 2 | SET | `if (CON_MANS_FLG.equals(mansionJudgeFlg))` // [CON_MANS_FLG = "1" (is mansion constant)] |
| 3 | CALL | `mapper.setJFUInitialCostShokaiCC(serviceFormBeanArray, inputMap, JFUStrConst.EMPTY, true);` // UPPER: initial cost display CC — mansion=true (initial cost includes service handling fees for mansion) |
| 4 | ELSE | — |
| 5 | CALL | `mapper.setJFUInitialCostShokaiCC(serviceFormBeanArray, inputMap, JFUStrConst.EMPTY, false);` // UPPER: initial cost display CC — mansion=false (no mansion-specific fees) |
| 6 | CALL | `mapper.setJFUInitialCostShokaiCCWari(serviceFormBeanArray, inputMap, JFUStrConst.EMPTY);` // UPPER: initial cost display CC — number discount fee (番号割当手数料) |
| 7 | CALL | `mapper.setFUSV004104CC(serviceFormBeanArray, inputMap);` // UPPER: ONU exchange work judgment (ONU交換工事判定) |
| 8 | CALL | `mapper.setFUSV004105CC(serviceFormBeanArray, inputMap);` // UPPER: work skip possibility judgment (工事スキップ可否判定) |
| 9 | CALL | `mapper.setJFUInitialCostShokaiCCKoji(serviceFormBeanArray, inputMap, JFUStrConst.EMPTY);` // UPPER: initial cost display CC — existing cost (既存工事費) |

**Block 6** — [TRY-CATCH] Service invocation (L662–L668)

> Invokes the core service chain via `invokeService`. The `paramMap` contains the use case ID, `inputMap` carries all upper-mapped parameters, and `outputMap` will receive results. Handles `JCCWebServiceException` with the initialization exception handler.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `invokeService(paramMap, inputMap, outputMap);` // 2 Number Service Application (initial display) service call (2番号サービスお申し込み（初期表示）サービス呼び出し) |
| 2 | CATCH | `catch (JCCWebServiceException se)` |
| 3 | EXEC | `this.handleInitException(se);` // Initial display exception handling processing (初期表示時例外ハンドリング処理) |

**Block 7** — [CALL] LOWER mapping — SC retrieval (L671–L679)

> Retrieves processed results from `outputMap` and sets them back into the form beans. This is the mirror of Block 3/4, reading data back for screen display.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.getFUSV004101SC(serviceFormBeanArray, outputMap);` // LOWER: eo telecom service contract info (eo電気電話サービス契約情報一覧照会) |
| 2 | CALL | `mapper.getFUSV004102SC(serviceFormBeanArray, outputMap);` // LOWER: device provider service contract (機器提供サービス契約一覧照会) |
| 3 | CALL | `mapper.getFUSV004104SC(serviceFormBeanArray, outputMap);` // LOWER: price plan basic fee (料金プラン固定単価（基本料金）) |
| 4 | CALL | `mapper.getFUSV004105SC(serviceFormBeanArray, outputMap);` // LOWER: price plan eo adder fee (料金プラン固定単価（eo電気電話アダプター利用料）) |
| 5 | CALL | `mapper.getFUSV004106SC(serviceFormBeanArray, outputMap);` // LOWER: device option service contract flat (機器オプションサービス契約一覧照会 — フロント) |

**Block 8** — [SET] Multi-line phone call message flag determination (L681–L691)

> Computes whether to display a multi-line change advisory message based on multi-phone and warikomi (bundled) phone registration states. If the customer has zero multi-phone registrations but has warikomi (bundled) phone registrations, set `mongonFlg = "1"` to show the message.

| # | Type | Code |
|---|------|------|
| 1 | SET | `String multiFlg = hasMultiPhoneCall(outputMap, serviceFormBean.sendMessageString(FUW01403SFConst.SVC_KEI_NO, GET));` // Check multi-phone call status [-> `SVC_KEI_NO` = service type number] |
| 2 | SET | `String warkmiFlg = hasWarikomiPhone(outputMap, serviceFormBean.sendMessageString(FUW01403SFConst.SVC_KEI_NO, GET));` // Check warikomi (bundled) phone status |
| 3 | SET | `String mongonFlg = "0";` // Initialize message display flag to off |
| 4 | IF | `( "0".equals(multiFlg) ) && ( "1".equals(warkmiFlg) )` // No multi-phone AND has warikomi phone |
| 5 | SET | `mongonFlg = "1";` // Set display flag on (multi-line change advisory message) [-> `CHG_MULTI_PHONE_CALL_MSG_DSP_FLG` = change multi-phone call message display flag] |
| 6 | SET | `serviceFormBean.sendMessageString(FUW01403SFConst.CHG_MULTI_PHONE_CALL_MSG_DSP_FLG, X31CWebConst.DATABEAN_SET_VALUE, mongonFlg);` // Set the message display flag on serviceFormBean |

**Block 9** — [CALL] LOWER mapping — CC retrieval (L693–L701)

> Retrieves CC-level processed results from `outputMap` back into the form beans for screen display.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mapper.getJFUInitialCostShokaiCC(serviceFormBeanArray, outputMap);` // LOWER: initial cost display CC — eo telecom service handling fee (eo電気電話事務手数料) |
| 2 | CALL | `mapper.getJFUInitialCostShokaiCCWari(serviceFormBeanArray, outputMap);` // LOWER: initial cost display CC — number discount fee (番号割当手数料) |
| 3 | CALL | `mapper.getFUSV004104CC(serviceFormBean, outputMap);` // LOWER: ONU exchange work judgment (ONU交換工事判定) |
| 4 | CALL | `mapper.getFUSV004103CC(serviceFormBean, outputMap);` // LOWER: device option common portion (機器オプションサービス契約登録コモコン部品) — router retention |
| 5 | CALL | `mapper.getJFUInitialCostShokaiCCKoji(serviceFormBeanArray, outputMap);` // LOWER: initial cost display CC — existing cost (ONU交換工事費) |

**Block 10** — [RETURN] Result return (L706–L709)

> Logs completion and returns the populated output map.

| # | Type | Code |
|---|------|------|
| 1 | LOG | `DEBUG_LOG.info("----- FUW01403 End executeInitService -----")` // End log |
| 2 | RETURN | `return outputMap;` // Return service processing result map |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `mansionJudgeFlg` | Field | Mansion/apartment judgment flag — indicates whether the customer's residence is a multi-unit building (mansion) or detached house. Affects initial fee display (mansion-specific service handling fees). |
| `SVC_KEI_NO` | Field | Service type number — classifies the type of telecom service (e.g., FTTH, Mail, ENUM). Retrieved from the service form bean. |
| `CHG_MULTI_PHONE_CALL_MSG_DSP_FLG` | Field | Change multi-phone call message display flag — when "1", a message about multi-line change processing is shown on the application screen. |
| `MANSION_JUDGE_FLG` | Field | Mansion judgment flag parameter key — the form bean key used to store/retrieve the mansion status. Japanese: "マンション判定フラグ". |
| `inputMap` | Field | Service search condition map — carries all SC/CC parameters from the upper mapping phase to the `invokeService` call. |
| `outputMap` | Field | Service processing result map — receives SC/CC results from `invokeService` and is read by lower mapping to populate the form bean for screen rendering. |
| `paramMap` | Field | Use case parameter map — holds the use case ID (`FUSV0041`) identifying which service chain to execute. |
| `serviceFormBeanArray` | Field | Single-element form bean array — contains only the service form bean, used for SC-level mappings that don't need common info context. |
| `serviceFormBeanArray2` | Field | Two-element form bean array — contains the service form bean and the common info bean, used for CC-level mappings requiring both contexts. |
| `mongonFlg` | Field | Multi-line (mongon = 多重回線) display flag — controls whether the multi-phone advisory message is displayed. |
| FUSV0041 | Use case ID | The use case identifier for this service component mapping — links the form data to the appropriate service processing chain. |
| FUNC_CD_1 | Constant | Function code 1 — typically indicates an initialization/display operation (vs. registration or modification). |
| CON_MANS_FLG | Constant | Is mansion constant — value "1" indicates a mansion/apartment residence. |
| MANSION_JUDGE_FLG (const) | Constant | The constant string "マンション判定フラグ" — the form bean key for the mansion judgment flag. |
| SVC_USECASE_ID_FUSV0041 | Constant | The use case ID constant with value "FUSV0041". |
| SOD | Acronym | Service Order Data — telecom order fulfillment entity; the application is part of the service order data flow. |
| FTTH | Business term | Fiber To The Home — fiber-optic broadband service; one of the service types in the 2 Number Service application. |
| ONU | Acronym | Optical Network Unit — the fiber-optic terminal device at the customer premise; "ONU exchange work" refers to replacing this device. |
| ONU交換工事 | Business term | ONU exchange work — the field installation task of replacing the optical network unit device at the customer site. |
| 工事スキップ可否判定 | Business term | Work skip possibility judgment — determines whether the installation work can be skipped based on equipment/service conditions. |
| 機器オプションサービス | Business term | Device option service — optional hardware accessories/add-ons that can be registered with the telecom service contract. |
| ルーター保有有無確認 | Business term | Router retention confirmation — checks whether the customer already possesses a router, affecting device registration. |
| 基本料金 | Business term | Basic fee — the fixed monthly charge for the service plan. |
| eo電気電話アダプター利用料 | Business term | eo electricity/telecom adapter usage fee — the fee for the eo-branded network adapter device. |
| 番号割当手数料 | Business term | Number assignment fee — the fee charged for assigning a telephone number to the service. |
| 既存工事費 | Business term | Existing construction/installation fee — fees for existing installation work (as opposed to new). |
| eo電気電話事務手数料 | Business term | eo electricity/telecom service handling fee — administrative processing fee for the telecom service, applicable to mansion residences. |
| 2番号サービス | Business term | 2 Number Service — a telecom offering allowing customers to have a second telephone number on the same line. |
| 初期表示 | Business term | Initial display — the first screen rendering of a multi-step application flow, as opposed to confirmation or submission screens. |
| アッパーマッピング | Business term | Upper mapping — the phase where request parameters are built and placed into `inputMap` before invoking the service. |
| ダウンマッピング | Business term | Lower mapping — the phase where results are retrieved from `outputMap` and set back into the form beans for view rendering. |
| 多重 | Business term | Multiple phone lines (mongon) — refers to customers with multiple telephone line registrations. |
| 割り込み (warikomi) | Business term | Bundled/discounted phone — refers to phone services included in a bundled pricing plan. |
| JCCBatCommon | Component | Common batch service component — provides the `invokeService` method that orchestrates the service chain execution. |
| FUSV0041_FUSV0041OPDBMapper | Component | FUSV0041 operation database mapper — handles all upper/lower mapping for SC and CC parameter passing for this module. |
| JCCWebServiceException | Exception | Common JCC web service exception — the exception type caught and handled by `handleInitException` when service invocation fails during initialization. |
| JCCBatCommon.invokeService | Method | Core service invocation method — dispatches to the appropriate CBS (Coalesced Business Service) based on the use case ID, executing service-type-specific business logic. |
| invokeService (internal) | CBS | Internal CBS branching — called via `JCCBatCommon.invokeService`, internally routes to CBS classes such as `JBSBatKKCrsChgIktAdd`, `JBSbatKKCrsChgSmtVLAdd`, `JBSbatKKCrsChgWribSette`, and `JBSbatKKEponSwchKjInfSksi` based on the service type in `paramMap`. |
