# Business Logic — JKKWribSvcKeiOperateCC.resolveListContentForListView() [325 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKWribSvcKeiOperateCC` |
| Layer | CC (Common Component) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKWribSvcKeiOperateCC.resolveListContentForListView()

This method serves as the **list view data assembler** for the customer service contract detail screen (KKSV0229). Its business purpose is to gather and prepare all information required for displaying a customer's service contract list and its associated discount service contracts on a single consolidated UI page.

The method follows a **delegate-and-aggregate** design pattern: it dispatches to multiple subordinate service components to fetch customer contract header information, discount service contract details, data extraction item settings, member rank data, additional service info, and mansion (apartment) details. Each delegate returns data that is then merged into a unified result set.

It handles a **single unified flow** but branches internally based on pricing/service-tier characteristics (specifically whether the customer's PCS rate speed code is 1Gbps or above, which determines whether a pair ID or a mansion ID is used for display). It also branches on the availability of rank data and additional service data — if a query returns empty, the method gracefully skips setting those fields rather than failing.

Its **role in the larger system** is as the central preparation method invoked by the screen controller `JKKWribSvcKeiOperateCC.execute()`. It transforms raw contract data from the database layer into display-ready HashMaps that are pushed into the request parameter object under specific keys (KKSV022902CC through KKSV022907CC) for the view layer to consume.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["resolveListContentForListView(param)"])
    START --> EXTRACT_TARGET["Extract targetInfo, sysid, svc_kei_no, ido_div"]
    EXTRACT_TARGET --> GET_SVC_COMMON["resolveSvcKeiCommonInfo(svc_keiNo)"]
    GET_SVC_COMMON --> EXTRACT_SVC_FIELDS["Extract svc_kei_stat, prc_grp_cd, pcrs_cd"]
    EXTRACT_SVC_FIELDS --> GET_PCRS["resolvePcrs(pcrsCd)"]
    GET_PCRS --> CHECK_SPEED{"prcGrpCd == svcPrcGrpCd
AND pcrsCd == svcPcrsCd?"}
    CHECK_SPEED --> YES
    CHECK_SPEED --> NO[No match - skip pairId]
    YES --> CHECK_OVER1G{"pcrsSpeedCd
contains CD00688_1G?"}
    CHECK_OVER1G --> YES
    CHECK_OVER1G --> NO2[Not 1G+ - skip]
    YES --> SET_PAIR["pairId = svcKeiCommonInfo.pairid"]
    NO2 --> SKIP_PAIR["pairId remains empty"]
    NO --> SKIP_PAIR
    SET_PAIR --> RESOLVE_IDO["resolveIdoDivNm(idoDiv)"]
    RESOLVE_IDO --> CHECK_MANSION{"pairId is null/blank?"}
    CHECK_MANSION --> YES
    CHECK_MANSION --> NO3[Has pairId]
    YES --> MANSION_ID["mansion_id = mansion_id"]
    NO3 --> MANSION_PAIR["mansion_id = pairId"]
    MANSION_ID --> BUILD_COMMON["Build commonInfo map
(customer, address, pricing, status)"]
    MANSION_PAIR --> BUILD_COMMON
    BUILD_COMMON --> GET_HEADER["runGetSameScreenHeaderInfo(GETHEADERINFO)"]
    GET_HEADER --> EXTRACT_HEADER["Extract family_pack_um, router_sbt_nm, tokusoku_stat_nm"]
    EXTRACT_HEADER --> BUILD_RESULT["resolveWribKeiSvcDchskmSts(sysid)
-> map to resultList"]
    BUILD_RESULT --> PLUS_KAKIN["resolveWribSvcKeis_plusKakinYohi()"]
    PLUS_KAKIN --> RET_CW["retStaCWribDispFlg()"]
    RET_CW --> SET_SAME["setSameKaisenFlg()"]
    SET_SAME --> SET_Wrib["setWribStat(resultList)"]
    SET_Wrib --> SEL_CHANGE["selectedChangeDelResList()"]
    SEL_CHANGE --> GET_RANK["rankInquiry -> GETRANKINFO"]
    GET_RANK --> CHECK_RANK{"rankDtlList not empty?"}
    CHECK_RANK --> YES
    CHECK_RANK --> NO4[Empty - skip]
    YES --> SET_RANK["Set member_rank, total_hoyu_pt_su"]
    NO4 --> SKIP_RANK
    SET_RANK --> GET_TEGAKU["getTegakSvcKei -> GETTEGAKSVCINFO"]
    SKIP_RANK --> GET_TEGAKU
    GET_TEGAKU --> CHECK_TEGAKU{"tegakSvcDtlList not empty?"}
    CHECK_TEGAKU --> YES
    CHECK_TEGAKU --> NO5[Empty - skip]
    YES --> SET_TEGAKU["Set tegak_svc_um"]
    NO5 --> SKIP_TEGAKU
    SET_TEGAKU --> GET_MANSION["resolveMansionInfo(svcKeiNo)"]
    SKIP_TEGAKU --> GET_MANSION
    GET_MANSION --> SET_CASHP["setCashPost(param, sysid)"]
    SET_CASHP --> FINAL_SET["param.setData
KKSV022902/03/05/06/07CC"]
    FINAL_SET --> END(["Return param"])
```

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | Request parameter object carrying the screen context — contains `KKSV022901CC` with the customer service contract identification data (sysid, svc_kei_no, ido_div). After processing, the same object is populated with five additional data blocks (`KKSV022902CC` through `KKSV022907CC`) containing header info, discounted service list, mansion info, cash post info, and operation results for the view layer. |

**Instance fields / external state read:**

| Field | Type | Business Description |
|-------|------|---------------------|
| `cmnHandle` | — | Common handle shared across the service component lifecycle; passed to delegate calls (header, rank, additional service) for transaction/session context |

## 4. CRUD Operations / Called Services

### Pre-computed evidence from code analysis graph:

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| - | `JKKSameScreenHeaderCC.runGetSameScreenHeaderInfo` | JKKSameScreenHeaderCC | - | Fetches same-screen shared header data (family pack status, router type, promotion status) for the customer |
| R | `JKKWribSvcKeiOperateCC.resolveSvcKeiCommonInfo` | JKKWribSvcKeiOperateCC | KK_T_SVC_KEI, KK_T_SVC_KEI_COMMON | Retrieves customer service contract common header (status, pricing, PCS code, customer name, address, etc.) |
| R | `JKKWribSvcKeiOperateCC.resolvePcrs` | JKKWribSvcKeiOperateCC | KK_T_PCRS | Retrieves PCS pricing rate plan information (speed code, pricing group) |
| R | `JKKWribSvcKeiOperateCC.resolveWribKeiSvcDchskmSts` | JKKWribSvcKeiOperateCC | KK_T_WRIB_KEI_SVC | Retrieves discount service contracts associated with the customer (sysid-based) |
| - | `JKKWribSvcKeiOperateCC.resolveWribSvcKeis_plusKakinYohi` | JKKWribSvcKeiOperateCC | - | Computes supplementary charge information for each discount service contract line |
| - | `JKKWribSvcKeiOperateCC.retStaCWribDispFlg` | JKKWribSvcKeiOperateCC | - | Calculates prior-month cancellation flags for discount service contracts |
| - | `JKKWribSvcKeiOperateCC.setSameKaisenFlg` | JKKWribSvcKeiOperateCC | - | Sets same-wiring flags by comparing discount service contracts within the same service contract |
| - | `JKKWribSvcKeiOperateCC.setWribStat` | JKKWribSvcKeiOperateCC | - | Updates discount service contract status display codes |
| R | `JKKWribSvcKeiOperateCC.selectedChangeDelResList` | JKKWribSvcKeiOperateCC | - | Retrieves selected change/delete reservation list and maps customer IDs into the result |
| R | `JKKRankInquiryCC.rankInquiry` | EKKA0050001SC | KK_T_MEMBER_RNK (inferred) | Queries the member rank inquiry service to get loyalty program rank name and total points |
| R | `JKKGetTegakSvcKeiCC.getTegakSvcKei` | Inferred (tegak=additional service) | KK_T_TEGAKU_SVC (inferred) | Retrieves additional (supplementary) service contracts for the customer |
| R | `JKKWribSvcKeiOperateCC.resolveMansionInfo` | JKKWribSvcKeiOperateCC | KK_T_MANSION (inferred) | Retrieves mansion (apartment) details including payment plan code for service contract |
| - | `JKKWribSvcKeiOperateCC.resolveIdoDivNm` | JKKWribSvcKeiOperateCC | - | Resolves movement division code to human-readable name |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | `JKKWribSvcKeiOperateCC.execute()` | `execute()` -> `resolveListContentForListView(param)` | `setData(KKSV022902CC)` [-], `setData(KKSV022903CC)` [-], `setData(KKSV022905CC)` [-], `setData(KKSV022906CC)` [-], `setData(KKSV022907CC)` [-] |

**Analysis:** This method is called directly from `JKKWribSvcKeiOperateCC.execute()`, which is the main processing method of the screen controller for screen KKSV0229 (customer service contract detail screen). No screen-level entry points (KKSVxxxx classes) were found in the code analysis graph beyond this controller, confirming this is a screen-specific service component method.

Terminal operations from this method (what data it ultimately sets into the response):

| Terminal | Description |
|----------|-------------|
| `param.setData(KKSV022902CC, commonInfo)` | Customer contract header info map (status, address, pricing, PCS, customer name, rank, additional services) |
| `param.setData(KKSV022903CC, listViewList)` | Discount service contract list with supplementary charges |
| `param.setData(KKSV022905CC, mansionMap)` | Mansion payment plan code |
| `param.setData(KKSV022906CC, cashPostMap)` | Cash posting information |
| `param.setData(KKSV022907CC, wribSvcOperateResultMap)` | Discount service contract operation results |

## 6. Per-Branch Detail Blocks

**Block 1** — IF (condition: `targetInfo` extraction) (L1270-1276)

Extract identification data from the parameter to identify which customer service contract to display.

| # | Type | Code |
|---|------|------|
| 1 | SET | `targetInfo = param.getData("KKSV022901CC")` |
| 2 | SET | `wribSvcOperateResultMap = new HashMap<>()` |
| 3 | SET | `sysid = targetInfo.get("sysid")` |
| 4 | SET | `svc_kei_no = targetInfo.get("svc_kei_no")` |
| 5 | SET | `ido_div = targetInfo.get("ido_div")` |

**Block 2** — IF (condition: fetch service contract common info) (L1281-1286)

Retrieves the customer service contract header, which is the primary source of pricing, PCS rate, and customer demographic data.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `svcKeiCommonInfo = resolveSvcKeiCommonInfo(svcKeiNo)` |
| 2 | SET | `svc_kei_stat = svcKeiCommonInfo.getString("svc_kei_stat")` |
| 3 | SET | `svc_kei_stat_nm = svcKeiCommonInfo.getString("svc_kei_stat_nm")` |
| 4 | SET | `prc_grp_cd = svcKeiCommonInfo.getString("prc_grp_cd")` |
| 5 | SET | `pcrs_cd = svcKeiCommonInfo.getString("pcrs_cd")` |

**Block 3** — IF (condition: fetch PCS pricing info) (L1289-1293)

Retrieves PCS pricing rate plan details to check speed tier.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `pcrsCommonInfo = resolvePcrs(pcrsCd)` |
| 2 | SET | `svc_prc_grp_cd = pcrsCommonInfo.getString("prc_grp_cd")` |
| 3 | SET | `svc_pcrs_cd = pcrsCommonInfo.getString("pcrs_cd")` |

**Block 3.1** — IF (condition: pricing match check) (L1294-1308)

Compares the service contract's pricing group and PCS code against the PCS common info. If they match, the pricing is considered consistent and the speed code is evaluated for pair ID determination.

| # | Type | Code |
|---|------|------|
| 1 | IF | `prcGrpCd.equals(svcPrcGrpCd) && pcrsCd.equals(svcPcrsCd)` [PRICING GROUP MATCH CHECK] |

**Block 3.1.1** — IF (nested: speed >= 1G check) (L1297-1303)

Checks if the PCS speed code falls in the 1Gbps-over range using `JKKStrConst.CD00688_OVER1G_LIST`. If so, the pair ID is captured.

| # | Type | Code |
|---|------|------|
| 1 | SET | `pcrsSpeedCd = pcrsCommonInfo.getString("pcrs_speed_cd")` |
| 2 | IF | `JKKStrConst.CD00688_OVER1G_LIST.contains(pcrsSpeedCd)` [CD00688_OVER1G_LIST = "1Gbps+ speed codes list"] |
| 3.1 | SET | `pairId = svcKeiCommonInfo.getString("pairid")` [Set pair ID from service contract] |

**Block 4** — IF (condition: resolve movement division name) (L1305-1306)

Converts the movement division code to its human-readable name. Handles null/empty gracefully.

| # | Type | Code |
|---|------|------|
| 1 | SET | `idoDivNm = (null == idoDiv || "".equals(idoDiv)) ? "" : resolveIdoDivNm(idoDiv)` [Ternary: empty string if null/blank] |

**Block 5** — IF (condition: build commonInfo header map) (L1318-1359)

Constructs the shared header information map with customer and contract details. This is the core data aggregation block.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commonInfo = new HashMap<String, String>(DEFAULT_HASH_SIZE)` |
| 2 | SET | `commonInfo.put("svc_kei_stat", svcKeiStat)` |
| 3 | SET | `commonInfo.put("svc_kei_stat_nm", svcKeiStatNm)` |
| 4 | SET | `commonInfo.put("ido_div", idoDiv)` |
| 5 | SET | `commonInfo.put("ido_div_nm", idoDivNm)` |

**Block 5.1** — IF/ELSE (nested: mansion_id vs pairId) (L1326-1338)

Determines what to store as `mansion_id`: if the pricing speed is 1Gbps+ (pairId is set), use the pair ID; otherwise, use the mansion building ID.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JKKStringUtil.isNullBlank(pairId)` [pairId is empty or null] |
| 1.1 | SET | `commonInfo.put("mansion_id", svcKeiCommonInfo.getString("mansion_id"))` [Use mansion building ID] |
| 2 | ELSE | [pairId is set - 1G+ speed customer] |
| 2.1 | SET | `commonInfo.put("mansion_id", pairId)` [Use pair ID instead] |

**Block 6** — SET (L1347-1369)

Populates commonInfo with customer contact details, address, service contract numbers, and pricing fields.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commonInfo.put("mansion_nm", svcKeiCommonInfo.getString("msbsn_krtg_bkn_nm"))` [Mansion name from business registration] |
| 2 | SET | `commonInfo.put("pid", svcKeiCommonInfo.getString("pid"))` |
| 3 | SET | `commonInfo.put("catid", svcKeiCommonInfo.getString("catid"))` |
| 4 | SET | `commonInfo.put("cust_nm", svcKeiCommonInfo.getString("cust_nm"))` |
| 5 | SET | `commonInfo.put("keisha_telno", svcKeiCommonInfo.getString("keisha_telno"))` [Customer phone number] |
| 6 | SET | `commonInfo.put("keisha_state_nm", svcKeiCommonInfo.getString("keisha_state_nm"))` |
| 7 | SET | `commonInfo.put("keisha_city_nm", svcKeiCommonInfo.getString("keisha_city_nm"))` |
| 8 | SET | `commonInfo.put("keisha_oaztsu_nm", svcKeiCommonInfo.getString("keisha_oaztsu_nm"))` |
| 9 | SET | `commonInfo.put("keisha_azcho_nm", svcKeiCommonInfo.getString("keisha_azcho_nm"))` |
| 10 | SET | `commonInfo.put("keisha_bnchigo", svcKeiCommonInfo.getString("keisha_bnchigo"))` |
| 11 | SET | `commonInfo.put("keisha_adrttm", svcKeiCommonInfo.getString("keisha_adrttm"))` |
| 12 | SET | `commonInfo.put("keisha_adrrm", svcKeiCommonInfo.getString("keisha_adrrm"))` |
| 13 | SET | `commonInfo.put("svc_kei_no", svcKeiCommonInfo.getString("svc_kei_no"))` |
| 14 | SET | `commonInfo.put("seiky_kei_no", svcKeiCommonInfo.getString("seiky_kei_no"))` |
| 15 | SET | `commonInfo.put("sysid", svcKeiCommonInfo.getString("sysid"))` |
| 16 | SET | `commonInfo.put("eoid", svcKeiCommonInfo.getString("eoid"))` |
| 17 | SET | `commonInfo.put("prc_grp_cd", svcKeiCommonInfo.getString("prc_grp_cd"))` |
| 18 | SET | `commonInfo.put("prc_grp_nm", svcKeiCommonInfo.getString("prc_grp_nm"))` |
| 19 | SET | `commonInfo.put("pcrs_cd", svcKeiCommonInfo.getString("pcrs_cd"))` |
| 20 | SET | `commonInfo.put("pcrs_nm", svcKeiCommonInfo.getString("pcrs_nm"))` |
| 21 | SET | `commonInfo.put("pplan_nm", svcKeiCommonInfo.getString("pplan_nm"))` |
| 22 | SET | `commonInfo.put("kktk_svc_kei_no", svcKeiCommonInfo.getString("kktk_svc_kei_no"))` |

**Block 7** — IF (condition: same-screen header info via GETHEADERINFO) (L1377-1398)

Delegates to the same-screen header CC to fetch family pack status, router type, and promotion status. Uses a temporary map (`headerInfo`) as an intermediate data transfer object.

| # | Type | Code |
|---|------|------|
| 1 | SET | `headerInfo.put("svc_kei_no", svcKeiNo)` |
| 2 | SET | `headerInfo.put("seiky_kei_no", svcKeiCommonInfo.getString("seiky_kei_no"))` |
| 3 | SET | `param.setData("GETHEADERINFO", headerInfo)` |
| 4 | EXEC | `headerCC = new JKKSameScreenHeaderCC()` |
| 5 | CALL | `headerCC.runGetSameScreenHeaderInfo(cmnHandle.get(), param, "GETHEADERINFO")` |
| 6 | SET | `family_pack_um = headerInfo.get("family_pack_um")` |
| 7 | SET | `router_sbt_nm = headerInfo.get("router_sbt_nm")` |
| 8 | SET | `tokusoku_stat_nm = headerInfo.get("tokusoku_stat_nm")` |
| 9 | SET | `commonInfo.put("family_pack_um", family_pack_um)` |
| 10 | SET | `commonInfo.put("router_sbt", router_sbt_nm)` |
| 11 | SET | `commonInfo.put("tokuSokuStatus", tokusoku_stat_nm)` |

**Block 8** — SET (L1405)

Adds reservation status to commonInfo.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commonInfo.put("rsv_jyokyo", svcKeiCommonInfo.getString("rsv_jyokyo"))` |

**Block 9** — IF (condition: fetch discount service contracts) (L1413-1420)

Retrieves all discount service contracts (wrib service contracts) for the customer by sysid, maps them to a list of HashMaps, and adds to the result list. Also sets supplementary charge flags and prior-month cancellation flags.

| # | Type | Code |
|---|------|------|
| 1 | SET | `resultList = new ArrayList<HashMap<String, String>>(DEFAULT_ARRAY_SIZE)` |
| 2 | CALL | `wribSvcKeis = resolveWribKeiSvcDchskmSts(sysid)` |
| 3 | SET | `wribSvcKeiMover = new WribSvcKeiMover()` |
| 4 | SET | `wribSvcKeiList = Items.map(...)` [Maps CAANMsg[] to ArrayList<HashMap<String, String>>] |
| 5 | EXEC | `resultList.addAll(wribSvcKeiList)` |
| 6 | CALL | `resolveWribSvcKeis_plusKakinYohi(wribSvcKeiList)` [Sets supplementary charge flags] |
| 7 | CALL | `retStaCWribDispFlg(wribSvcKeiList)` [Sets prior-month cancellation flags] |
| 8 | CALL | `setSameKaisenFlg(param, wribSvcKeiList, svcKeiNo, wribSvcOperateResultMap)` [Sets same-wiring flags] |

**Block 10** — IF (condition: update discount service status) (L1429-1431)

Updates the discount service status codes on the result list.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `setWribStat(resultList)` |

**Block 11** — IF (condition: selected change/delete reservation mapping) (L1435-1437)

Maps selected change/delete reservations and attaches customer IDs to result items.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `selectedChangeDelResList(targetInfo, resultList)` |

**Block 12** — IF (condition: member rank inquiry) (L1440-1459)

Queries the rank inquiry service (EKKA0050001SC) to get the customer's loyalty rank name and total points.

| # | Type | Code |
|---|------|------|
| 1 | SET | `rankInfo = new HashMap<String, Object>(DEFAULT_HASH_SIZE)` |
| 2 | SET | `rankInfo.put("key_sysid", sysid)` |
| 3 | SET | `rankInfo.put("func_code", "1")` |
| 4 | SET | `param.setData("GETRANKINFO", rankInfo)` |
| 5 | EXEC | `rankCC = new JKKRankInquiryCC()` |
| 6 | CALL | `rankCC.rankInquiry(cmnHandle.get(), param, "GETRANKINFO")` |
| 7 | SET | `rankDtlList = rankInfo.get("EKKA0050001CBSMsg1List")` |

**Block 12.1** — IF (nested: rank data not empty) (L1452-1461)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JKKStringUtil.isNullEmpty(rankDtlList)` [Rank list has data] |
| 1.1 | SET | `rankMap = rankDtlList.get(0)` |
| 1.2 | SET | `commonInfo.put("member_rank", rankMap.get("rnk_nm"))` [Member rank name] |
| 1.3 | SET | `commonInfo.put("total_hoyu_pt_su", rankMap.get("total_hoyu_pt_su"))` [Total loyalty points] |

**Block 13** — SET (L1464-1466)

Adds optional fields to commonInfo that come from the service contract common data.

| # | Type | Code |
|---|------|------|
| 1 | SET | `commonInfo.put("orsjgs_nm", svcKeiCommonInfo.getString("orsjgs_nm"))` [Distributor name] |
| 2 | SET | `commonInfo.put("scm_type_nm", svcKeiCommonInfo.getString("scm_type_nm"))` [Skill type name] |
| 3 | SET | `commonInfo.put("scm_jgs_nm", svcKeiCommonInfo.getString("scm_jgs_nm"))` [Skill business operator name] |

**Block 14** — IF (condition: additional service inquiry) (L1472-1490)

Calls the additional service contract inquiry to check if the customer has supplementary services (tegak = additional/extra services).

| # | Type | Code |
|---|------|------|
| 1 | SET | `tegakSvcInfo = new HashMap<String, Object>(DEFAULT_HASH_SIZE)` |
| 2 | SET | `tegakSvcInfo.put("func_code", JPCModelConstant.FUNC_CD_1)` |
| 3 | SET | `tegakSvcInfo.put("key_func_code", "1")` |
| 4 | SET | `tegakSvcInfo.put("key_kyk_sbt_cd", "LS")` [Key lookup subtype = List Screen] |
| 5 | SET | `tegakSvcInfo.put("key_sysid", sysid)` |
| 6 | SET | `param.setData("GETTEGAKSVCINFO", tegakSvcInfo)` |
| 7 | EXEC | `tegakSvcCC = new JKKGetTegakSvcKeiCC()` |
| 8 | CALL | `tegakSvcCC.getTegakSvcKei(cmnHandle.get(), param, "GETTEGAKSVCINFO")` |
| 9 | SET | `tegakSvcDtlList = tegakSvcInfo.get("tegak_svc_list")` |

**Block 14.1** — IF (nested: additional service data exists) (L1487-1490)

| # | Type | Code |
|---|------|------|
| 1 | IF | `!JKKStringUtil.isNullEmpty(tegakSvcDtlList)` |
| 1.1 | SET | `tegakSvcMap = tegakSvcDtlList.get(0)` |
| 1.2 | SET | `commonInfo.put("tegak_svc_um", tegakSvcMap.get("tegak_svc_um"))` |

**Block 15** — IF (condition: mansion detail inquiry) (L1497-1513)

Retrieves mansion (apartment/condominium) details for the service contract, specifically the payment plan code.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `mansionInfo = resolveMansionInfo(svcKeiNo)` |
| 2 | SET | `kanyuKeiPayHoshikiCd = ""` |
| 3 | IF | `mansionInfo != null` |
| 3.1 | SET | `kanyuKeiPayHoshikiCd = mansionInfo.getString("kanyu_kei_pay_hoshiki_cd")` [Payment plan code] |
| 4 | SET | `mansionMap = new HashMap<String, Object>(DEFAULT_HASH_SIZE)` |
| 5 | SET | `mansionMap.put("kanyu_kei_pay_hoshiki_cd", kanyuKeiPayHoshikiCd)` |

**Block 16** — SET (L1515-1527)

Final data preparation: packages all accumulated data into the request parameter object under screen-specific keys for the view layer.

| # | Type | Code |
|---|------|------|
| 1 | SET | `listViewList = new HashMap<String, Object>(1)` |
| 2 | SET | `listViewList.put("list_view_list", resultList)` |
| 3 | SET | `cashPostMap = setCashPost(param, sysid)` |
| 4 | SET | `param.setData("KKSV022906CC", cashPostMap)` [Cash post data] |
| 5 | SET | `param.setData("KKSV022902CC", commonInfo)` [Header info] |
| 6 | SET | `param.setData("KKSV022903CC", listViewList)` [Discount service list] |
| 7 | SET | `param.setData("KKSV022905CC", mansionMap)` [Mansion info] |
| 8 | SET | `param.setData("KKSV022907CC", wribSvcOperateResultMap)` [Operation results] |

**Block 17** — RETURN (L1528)

| # | Type | Code |
|---|------|------|
| 1 | RETURN | `return param` |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `sysid` | Field | System ID — unique identifier for a customer account across the NTT communications system |
| `svc_kei_no` | Field | Service contract number — unique identifier for a specific service line (e.g., FTTH, phone, TV) |
| `ido_div` | Field | Movement division code — indicates service type (new installation, transfer, cancellation, etc.) |
| `svc_kei_stat` | Field | Service contract status code — current lifecycle state of the service contract (active, suspended, cancelled, etc.) |
| `svc_kei_stat_nm` | Field | Service contract status name — human-readable status description |
| `prc_grp_cd` | Field | Pricing group code — groups service contracts into pricing tiers |
| `pcrs_cd` | Field | PCS code — Pricing and Configuration Service code, the core pricing plan identifier |
| `pcrs_nm` | Field | PCS name — human-readable pricing plan name |
| `pcrs_speed_cd` | Field | PCS speed code — determines broadband speed tier (e.g., 1Gbps, 100Mbps) |
| `pairid` | Field | Pair ID — unique identifier for a physical copper pair/line (used for 1Gbps+ plans) |
| `mansion_id` | Field | Apartment/condominium building ID — identifies the physical building for service delivery |
| `mansion_nm` | Field | Mansion name — building name |
| `msbsn_krtg_bkn_nm` | Field | Business registration business name — the registered legal name of the building |
| `cust_nm` | Field | Customer name |
| `keisha_*` | Fields | Customer's residential address components (phone, state, city, district, block, address) |
| `seiky_kei_no` | Field | Billing contract number — the billing entity contract number associated with the service |
| `eoid` | Field | Entity/Organization ID — identifies the responsible organization |
| `kktk_svc_kei_no` | Field | Fixed-network service contract number |
| `pid` | Field | Product ID — product classification identifier |
| `catid` | Field | Category ID — product category classification |
| `family_pack_um` | Field | Family pack availability flag — whether the customer is enrolled in the family discount package |
| `router_sbt` | Field | Router service type — type of router service the customer has |
| `tokuSokuStatus` | Field | Promotion status name — current promotional offer status for the customer |
| `rsv_jyokyo` | Field | Reservation status — booking/upcoming service reservation state |
| `wrib_kei_svc` | Field | Discount service contract — a contracted service with a discount rate applied (e.g., bundling discount) |
| `wrib_svc_operate_result_map` | Field | Discount service contract operation results — tracking map for discount service contract modifications |
| `same_kaisen_flg` | Field | Same wiring flag — indicates whether multiple services share the same physical wiring |
| `tegak_svc_um` | Field | Additional/extra service availability flag — whether supplementary services are active |
| `orsjgs_nm` | Field | Distributor/agency name — name of the authorized NTT sales distributor |
| `scm_type_nm` | Field | Skill type name — NTT internal skill/service classification |
| `scm_jgs_nm` | Field | Skill business operator name — operator of the skill/service |
| `kanyu_kei_pay_hoshiki_cd` | Field | Entry contract payment method code — how the customer pays for the building/service |
| `member_rank` | Field | Member rank name — NTT loyalty program tier |
| `total_hoyu_pt_su` | Field | Total loyalty points — cumulative points balance |
| `cd00688_over1g_list` | Field/Constant | List constant containing speed codes for 1Gbps or higher plans (used to determine pair ID eligibility) |
| `JKKSameScreenHeaderCC` | Class | Same-screen header information component — shared data provider for all screens in a session |
| `JKKRankInquiryCC` | Class | Member rank inquiry component — queries NTT loyalty program data |
| `JKKGetTegakSvcKeiCC` | Class | Additional service contract inquiry component — queries supplementary service contracts |
| `EKKA0050001SC` | SC Code | Member rank inquiry service component |
| `KKSV022902CC` - `KKSV022907CC` | Screen keys | Response data keys pushed into param for the KKSV0229 view layer to consume |
