# Business Logic — JKKAdchgKakuteiKikiDslCC.dslKaisenKiki() [104 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKAdchgKakuteiKikiDslCC` |
| Layer | CC/Common Component (Common business logic shared across screens and batches) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKAdchgKakuteiKikiDslCC.dslKaisenKiki()

This method performs **equipment cancellation processing for a telecom line** during a service address change (住所変更). It is the core orchestrator that iterates over every piece of equipment attached to a given service line and cancels it according to the equipment type and the customer's current service subscriptions.

The method handles three service categories: **Net (Internet, C0013001)**, **Phone (telephone, C0013002)**, and **TV (broadcast, C0013003)**. Each equipment is classified into one of three branches based on its service code: (1) multi-function router (TAKINO, code C024) or HGW (Home Gateway, code C025) — which triggers a specialized multi-function router cancellation operation; (2) regular Net/Phone equipment — which cancels only when neither Net nor Phone services currently exist for the customer; or (3) TV equipment — which cancels only when the TV service does not currently exist.

The method follows a **routing/dispatch design pattern**: it reads equipment data from a Service Component (SC), evaluates the equipment's service code to determine the cancellation strategy, dispatches to the appropriate handler, and then re-fetches post-cancellation status to populate a cancellation result list. This result list is used by the caller (`callEKK2091A010`) for subsequent delivery cancellation processing (配送取消処理).

**Design pattern:** Dispatch/Route pattern based on equipment service code classification. The method acts as an intermediate CC component — it is not a direct screen entry point but is called from the address change confirmation flow.

**Role in the larger system:** This is a shared Common Component (CC) method, called from `callEKK2091A010` during the address change confirmation process (住所変更確認処理). It bridges the SC layer (data retrieval) and the CBS layer (cancellation operations), orchestrating the end-to-end equipment cancellation workflow for address change scenarios.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["dslKaisenKiki(params)"])
    STEP1["PARAM_MAP: Retrieve paramMap from param.getData(fixedText)"]
    STEP2["Extract mskmDtlNoNet, mskmDtlNoTel, mskmDtlNoTv from paramMap"]
    STEP3["Resolve mskmDtlNoNetTel: prefer Net then Tel"]
    STEP4["CALL callEKK0341B504: Get equipment list for the line"]
    LOOP["For each kk0341B504Map in kk0341_b504_list"]
    STEP5["Extract kktkSvcKeiNo from kk0341B504Map"]
    STEP6["CALL getEKK0341A010: Get equipment contract info"]
    COND1{"kikiMap == null or empty?"}
    SKIP["Skip to next iteration"]
    STEP7["Extract kktkSvcKeiStat from kikiMap"]
    COND2{"kktkSvcKeiStat == 910 or 920?"}
    SKIP2["Skip to next iteration - already cancelled or cancelled"]
    STEP8["Extract kktkSvcCd from kikiMap"]
    COND3{"isNetTelKktkSvcCd(kktkSvcCd)?"}
    BR_NETTEL["Net/Phone equipment branch"]
    COND_TAKINO{"kktkSvcCd == C024 or C025?"}
    BR_TAKINO["Multi-function router or HGW branch"]
    CALL_TAKINO["CALL executeDslTakinoOp: Cancel multi-function router + optional"]
    BR_OTHER["Regular equipment branch"]
    COND_NE["!isNetExist && !isTelExist?"]
    CALL_KIKI_NET["CALL executeDslSvcKeiKiki: Cancel equipment"]
    STEP9_NET["CALL getEKK0341A010: Get post-cancellation status"]
    STEP10_NET["Set svcKeiNo svcKeiNoNet or svcKeiNoTel"]
    STEP11_NET["Add kikiMapResult to dslKktkList"]
    COND_TV{"isTvKktkSvcCd(kktkSvcCd)?"}
    BR_TV["TV equipment branch"]
    COND_TVEX["!isTvExist?"]
    CALL_KIKI_TV["CALL executeDslSvcKeiKiki: Cancel equipment"]
    STEP9_TV["CALL getEKK0341A010: Get post-cancellation status"]
    STEP10_TV["Set svcKeiNo = svcKeiNoTv"]
    STEP11_TV["Add kikiMapResult to dslKktkList"]
    END(["End - Return void"])

    START --> STEP1
    STEP1 --> STEP2
    STEP2 --> STEP3
    STEP3 --> STEP4
    STEP4 --> LOOP
    LOOP --> STEP5
    STEP5 --> STEP6
    STEP6 --> COND1
    COND1 -- "Yes" --> SKIP
    SKIP --> LOOP
    COND1 -- "No" --> STEP7
    STEP7 --> COND2
    COND2 -- "Yes" --> SKIP2
    SKIP2 --> LOOP
    COND2 -- "No" --> STEP8
    STEP8 --> COND3
    COND3 -- "Yes" --> BR_NETTEL
    BR_NETTEL --> COND_TAKINO
    COND_TAKINO -- "Yes" --> BR_TAKINO
    BR_TAKINO --> CALL_TAKINO
    CALL_TAKINO --> COND_NE
    COND_NE -- "No" --> COND_TV
    COND_NE -- "Yes" --> CALL_KIKI_NET
    CALL_KIKI_NET --> STEP9_NET
    STEP9_NET --> STEP10_NET
    STEP10_NET --> STEP11_NET
    STEP11_NET --> COND_TV
    BR_OTHER --> COND_NE
    COND_TAKINO -- "No" --> BR_OTHER
    COND3 -- "No" --> COND_TV
    COND_TV -- "Yes" --> BR_TV
    BR_TV --> COND_TVEX
    COND_TVEX -- "Yes" --> CALL_KIKI_TV
    CALL_KIKI_TV --> STEP9_TV
    STEP9_TV --> STEP10_TV
    STEP10_TV --> STEP11_TV
    STEP11_TV --> LOOP
    COND_TV -- "No" --> LOOP
    LOOP --> END
```

**Constant Resolution:**

| Constant | Resolved Value | Business Meaning |
|----------|---------------|------------------|
| `SVC_KEI_STAT_910` | `"910"` | Service contract status: Cancelled (契約解除済) [-> SVC_KEI_STAT_910="910" (JKKSvcConst.java:364)] |
| `SVC_KEI_STAT_920` | `"920"` | Service contract status: Cancellation requested (解除済) [-> SVC_KEI_STAT_920="920" (JKKSvcConst.java:366)] |
| `KKTK_SVC_CD_TAKINO` | `"C024"` | Equipment service code: Multi-function router (多機能ルータ) [-> KKTK_SVC_CD_TAKINO="C024" (JKKAdchgKakuteiKikiDslCC.java:92)] |
| `KKTK_SVC_CD_HGW` | `"C025"` | Equipment service code: Home Gateway (ホームゲートウェイ) [-> KKTK_SVC_CD_HGW="C025" (JKKSvcConst.java:260)] |

**Processing Summary:**

1. **Param extraction**: Retrieves a parameter map from the request parameter object, extracting master side unit detail numbers for Net, Phone, and TV services.
2. **Master detail number resolution**: If no Net detail number exists but a Phone detail number does, the Phone number is used as the fallback.
3. **Equipment list retrieval**: Calls `callEKK0341B504` to fetch the list of all equipment registered on the service line.
4. **Equipment iteration**: For each piece of equipment:
   - Fetches its contract status via `getEKK0341A010`.
   - Skips if already cancelled (status 910 or 920).
   - Dispatches to the appropriate cancellation handler based on equipment type:
     - **Multi-function router/HGW**: Calls `executeDslTakinoOp` (always, regardless of service existence flags).
     - **Regular Net/Phone equipment**: Cancels only if neither Net nor Phone services exist; then captures post-cancellation status and adds to the cancellation result list.
     - **TV equipment**: Cancels only if TV service does not exist; then captures post-cancellation status and adds to the cancellation result list.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `handle` | `SessionHandle` | Database session handle used for all SC and CBS calls within this method. Carries the database connection context for querying equipment data and executing cancellation operations. |
| 2 | `param` | `IRequestParameterReadWrite` | Request parameter object holding input data from the calling screen. Used to retrieve the parameter map containing master side unit detail numbers (mskmDtlNoNet, mskmDtlNoTel, mskmDtlNoTv) via `param.getData(fixedText)`. |
| 3 | `fixedText` | `String` | A key string used to retrieve the correct parameter sub-map from the `param` object. It serves as the identifier for which parameter group to extract (e.g., a screen-specific identifier). |
| 4 | `svcKeiKaisenUcwkNo` | `String` | Service contract line internal breakdown number (サービス契約回線内訳番号) — the internal tracking ID that identifies the specific line item within a service contract. Used to query the equipment list attached to this line. |
| 5 | `isNetExist` | `boolean` | Flag indicating whether a Net (Internet) service currently exists for this customer. When `true`, regular Net/Phone equipment cancellation is skipped (equipment is needed for the active service). Set from `CD0013001` (ネット) service code matching in the caller. |
| 6 | `isTelExist` | `boolean` | Flag indicating whether a Phone (telephone) service currently exists for this customer. When `true`, regular Net/Phone equipment cancellation is skipped. Set from `CD0013002` (電話) service code matching in the caller. |
| 7 | `isTvExist` | `boolean` | Flag indicating whether a TV (broadcast) service currently exists for this customer. When `true`, TV equipment cancellation is skipped. Set from `CD0013003` (テレビ) service code matching in the caller. |
| 8 | `svcKeiNoNet` | `String` | Service contract number for Net service (サービス契約番号:ネット). Used as the `svcKeiNo` value in the cancellation result map when Net/Phone equipment is cancelled and no Net detail number is available. |
| 9 | `svcKeiNoTel` | `String` | Service contract number for Phone service (サービス契約番号:電話). Used as the `svcKeiNo` value when Phone service is the fallback contract number for Net/Phone equipment cancellation results. |
| 10 | `svcKeiNoTv` | `String` | Service contract number for TV service (サービス契約番号:テレビ). Used as the `svcKeiNo` value in the TV equipment cancellation result map. |
| 11 | `dslKktkList` | `ArrayList<HashMap<String, Object>>` | Cancellation result list — accumulates all equipment cancellation records with their post-cancellation status. This list is returned to the caller (via the same reference) for use in subsequent delivery cancellation (配送取消) processing. |
| 12 | `dslKkopList` | `ArrayList<HashMap<String, Object>>` | Multi-function router optional service cancellation list — collects optional service cancellation records for multi-function router (TAKINO/HGW) equipment. Used by `executeDslTakinoOp` to track optional service cancellations. |

**Instance fields read by this method:**

| Field | Type | Description |
|-------|------|-------------|
| `mapper` | `JKKAdchgMapperCC` | Service info mapper object. Not directly used in `dslKaisenKiki` but available for mapping operations. |
| `scCall` | `ServiceComponentRequestInvoker` | SC call invocation component. Not directly used in this method (SC calls are made through helper methods). |

**Local static constants used:**

| Constant | Value | Description |
|----------|-------|-------------|
| `KKTK_SVC_CD_TAKINO` | `"C024"` | Equipment service code for multi-function router (多機能ルータ) |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `callEKK0341B504` | EKK0341B504SC | Equipment service contract table | Retrieves the list of all equipment attached to the given service line breakdown number. Returns an ArrayList of equipment maps. |
| R | `getEKK0341A010` (x2) | EKK0341A010SC | Equipment service contract status table | Fetches equipment contract information by equipment service contract number. First call retrieves current status; second call (after cancellation) retrieves post-cancellation status. |
| - | `isNetTelKktkSvcCd` | (internal) | - | Internal helper: checks if the equipment service code belongs to Net/Phone service category (C005 Modem, C006 Spliter, C008 Inline Filter, C012 ONU, C013 V-ONU). |
| - | `isTvKktkSvcCd` | (internal) | - | Internal helper: checks if the equipment service code belongs to TV service category. |
| - | `executeDslTakinoOp` | (internal) | - | Cancels multi-function router (TAKINO/HGW) equipment and its optional services. Always executes regardless of service existence flags. |
| - | `executeDslSvcKeiKiki` | (internal) | - | Cancels regular equipment (non-multi-function-router). Conditionally executed based on service existence flags. |
| - | `callEKK0341B504` (self-call) | EKK0341B504SC | Equipment service contract table | Internal SC call to retrieve equipment list; acts as data source for the cancellation loop. |

**How to classify:**
- **R (Read)**: `callEKK0341B504` and `getEKK0341A010` — both query equipment data from the database. The SC codes follow the pattern `EKK0341B504SC` and `EKK0341A010SC`.
- **- (Internal CC)**: `isNetTelKktkSvcCd`, `isTvKktkSvcCd`, `executeDslTakinoOp`, `executeDslSvcKeiKiki` — these are private helper methods within the same CC class that implement the cancellation logic by invoking additional SC/CBS calls (not directly visible in this method's source).

**Note:** The actual SC codes invoked from `executeDslTakinoOp` and `executeDslSvcKeiKiki` are not directly resolvable from this method's source alone. Based on naming conventions, they likely invoke CBS operations such as EKK0341 cancellation CBS components that perform the actual database updates on equipment contract tables.

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | CC:JKKAdchgKakuteiKikiDslCC.callEKK2091A010 | `callEKK2091A010` -> `dslKaisenKiki` | `callEKK0341B504 [R] equipment_table`, `getEKK0341A010 [R] equipment_contract_table`, `executeDslTakinoOp [-]`, `executeDslSvcKeiKiki [-]` |

**Notes on dependency:**
- `dslKaisenKiki` is a **private method** (no access modifier keyword in the declaration shown, but called from `callEKK2091A010` which is the only caller found in the codebase).
- There is **no direct screen entry point** — this method is exclusively called from within the CC layer, specifically from `callEKK2091A010` (the address change data retrieval component).
- The full call chain originates from the **address change confirmation screen** (住所変更確認画面), which invokes `callEKK2091A010` to process the address change, and this method is invoked as part of the equipment cancellation step within that flow.
- Terminal operations from this method: `callEKK0341B504` [R], `getEKK0341A010` [R] (×2), `executeDslTakinoOp` [-], `executeDslSvcKeiKiki` [-], `isNetTelKktkSvcCd` [-], `isTvKktkSvcCd` [-].

## 6. Per-Branch Detail Blocks

### Block 1 — PARAM_EXTRACT (Lines 370–379)

> Retrieves the parameter map from the request object and extracts the master side unit detail numbers for Net, Phone, and TV services. These numbers are used as fallback identifiers in cancellation result maps.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `paramMap = param.getData(fixedText)` // Get parameter map by fixedText key |
| 2 | SET | `mskmDtlNoNet = paramMap.get("mskmDtlNoNet")` // Master side detail number: Net [-> "mskmDtlNoNet"] |
| 3 | SET | `mskmDtlNoTel = paramMap.get("mskmDtlNoTel")` // Master side detail number: Phone [-> "mskmDtlNoTel"] |
| 4 | SET | `mskmDtlNoTv = paramMap.get("mskmDtlNoTv")` // Master side detail number: TV [-> "mskmDtlNoTv"] |

---

### Block 2 — IF/ELSE (Lines 381–385)

> Resolves the master detail number for Net/Phone equipment. If Net has a detail number, use it; otherwise, fall back to the Phone detail number. This value (`mskmDtlNoNetTel`) is later used as the `svcKeiNo` parameter in `executeDslSvcKeiKiki`.

**Block 2** — IF `!StringUtils.isEmpty(mskmDtlNoNet)` (L382)

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmDtlNoNetTel = mskmDtlNoNet` // Net detail number exists, use it |

**Block 2.1** — ELSE-IF `!StringUtils.isEmpty(mskmDtlNoTel)` (L384)

| # | Type | Code |
|---|------|------|
| 1 | SET | `mskmDtlNoNetTel = mskmDtlNoTel` // Net detail number empty, fallback to Phone detail number |

---

### Block 3 — CALL + FOR LOOP (Lines 389–463)

> Main processing loop: retrieves all equipment attached to the service line, iterates over each piece of equipment, and cancels it according to its type and the customer's service subscription status.

| # | Type | Code |
|---|------|------|
| 1 | CALL | `kk0341_b504_list = this.callEKK0341B504(handle, param, fixedText, svcKeiKaisenUcwkNo)` // Get all equipment for the line [EKK0341B504SC] |
| 2 | EXEC | `for (kk0341B504Map : kk0341_b504_list)` // Iterate over each equipment map |

#### Block 3.1 — Inside FOR LOOP: Extract equipment service contract number (L392–393)

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKeiNo = kk0341B504Map.get(EKK0341B504CBSMsg1List.KKTK_SVC_KEI_NO)` // Equipment service contract number |
| 2 | CALL | `kikiMap = getEKK0341A010(handle, param, fixedText, kktkSvcKeiNo)` // Get equipment contract info [EKK0341A010SC] |

#### Block 3.2 — IF (Lines 394–396)

> **Early exit**: If no equipment contract info is found, skip this iteration and move to the next equipment item.

**Block 3.2** — IF `kikiMap == null || kikiMap.isEmpty()` (L394)

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `continue` // No contract info found — skip to next equipment |

---

#### Block 3.3 — Inside FOR LOOP: Extract service status (L399)

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcKeiStat = kikiMap.get(EKK0341A010CBSMsg1List.KKTK_SVC_KEI_STAT)` // Equipment service contract status |

#### Block 3.4 — IF (Lines 400–402)

> **Skip already-cancelled equipment**: If the equipment status is 910 (Cancelled) or 920 (Cancellation requested), this equipment has already been processed and should be skipped.

**Block 3.4** — IF `JKKSvcConst.SVC_KEI_STAT_910.equals(kktkSvcKeiStat) || JKKSvcConst.SVC_KEI_STAT_920.equals(kktkSvcKeiStat)` (L400)

> [-> SVC_KEI_STAT_910="910" (JKKSvcConst.java:364) — Contract Cancelled (契約解除済)]
> [-> SVC_KEI_STAT_920="920" (JKKSvcConst.java:366) — Cancellation Requested (解除済)]

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `continue` // Equipment already cancelled — skip to next |

---

#### Block 3.5 — Inside FOR LOOP: Extract service code (L405)

| # | Type | Code |
|---|------|------|
| 1 | SET | `kktkSvcCd = kikiMap.get(EKK0341A010CBSMsg1List.KKTK_SVC_CD)` // Equipment service code (e.g., C005, C006, C024, C025) |

---

#### Block 3.6 — IF (Lines 408–444): Net/Phone Equipment Branch

> **Net/Phone equipment path**: When the equipment's service code is classified as Net or Phone equipment (Modem, Spliter, Inline Filter, ONU, V-ONU), further branch based on equipment type.

**Block 3.6** — IF `isNetTelKktkSvcCd(kktkSvcCd)` (L408)

> Classifies equipment as Net/Phone type (C005 Modem, C006 Spliter, C008 Inline Filter, C012 ONU, C013 V-ONU).

##### Block 3.6.1 — IF (Lines 420–424): Multi-function Router / HGW

> **Multi-function router (TAKINO) or Home Gateway (HGW) cancellation**: When the equipment is a multi-function router (C024) or HGW (C025), always execute the specialized cancellation operation regardless of service existence flags. This equipment handles both Internet and telephone services, so it must be cancelled if attached.
>
> #83584 Modify: Added HGW (C025) support alongside TAKINO (C024).

**Block 3.6.1** — IF `KKTK_SVC_CD_TAKINO.equals(kktkSvcCd) || JKKStrConst.KKTK_SVC_CD_HGW.equals(kktkSvcCd)` (L421)

> [-> KKTK_SVC_CD_TAKINO="C024" (JKKAdchgKakuteiKikiDslCC.java:92) — Multi-function router (多機能ルータ)]
> [-> KKTK_SVC_CD_HGW="C025" (JKKSvcConst.java:260) — Home Gateway (ホームゲートウェイ)]

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeDslTakinoOp(handle, param, fixedText, kikiMap, isNetExist, isTelExist, svcKeiNoNet, svcKeiNoTel, dslKktkList, dslKkopList)` // Cancel multi-function router and optional services |

##### Block 3.6.2 — ELSE (Lines 426–443): Regular Net/Phone Equipment

> **Regular equipment cancellation**: When the equipment is NOT a multi-function router (e.g., standard Modem C005, ONU C012), cancellation is conditional:
> - Only proceed if the customer has NO active Net and NO active Phone services (both flags are `false`).
> - After cancellation, re-fetch the equipment status and add the result to the cancellation list with the appropriate service contract number.

**Block 3.6.2** — ELSE (regular equipment path, L426)

| # | Type | Code |
|---|------|------|
| 1 | — | // Regular Net/Phone equipment: conditionally cancel |

###### Block 3.6.2.1 — IF (Lines 429–430)

> Only cancel when the customer has neither Net nor Phone services active.

**Block 3.6.2.1** — IF `!isNetExist && !isTelExist` (L429)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeDslSvcKeiKiki(handle, param, fixedText, kikiMap, mskmDtlNoNetTel)` // Cancel regular equipment |
| 2 | CALL | `kikiMapResult = getEKK0341A010(handle, param, fixedText, kktkSvcKeiNo)` // Re-fetch post-cancellation status [EKK0341A010SC] |
| 3 | IF | `kikiMapResult != null && !kikiMapResult.isEmpty()` (L432) |

###### Block 3.6.2.2 — IF-ELSE-IF (Lines 434–439): Set service contract number

> After re-fetching post-cancellation status, determine which service contract number to record:
> - If `svcKeiNoNet` is not empty, use it (Net service contract number).
> - Otherwise, if `svcKeiNoTel` is not empty, use it (Phone service contract number).
> - This represents the fallback registration number for returned equipment (返品登録).

**Block 3.6.2.2** — IF `!StringUtils.isEmpty(svcKeiNoNet)` (L434)

> // Set service contract number for returned equipment registration: Net

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `kikiMapResult.put("svcKeiNo", svcKeiNoNet)` // Set Net service contract number for returned equipment registration |

**Block 3.6.2.3** — ELSE-IF `!StringUtils.isEmpty(svcKeiNoTel)` (L436)

> // Set service contract number for returned equipment registration: Phone

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `kikiMapResult.put("svcKeiNo", svcKeiNoTel)` // Set Phone service contract number as fallback for returned equipment registration |

**Block 3.6.2.4** — (end of inner IF) Add result to cancellation list

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dslKktkList.add(kikiMapResult)` // Add post-cancellation equipment record to cancellation result list |

---

#### Block 3.7 — ELSE-IF (Lines 448–463): TV Equipment Branch

> **TV equipment path**: When the equipment's service code is classified as TV equipment, cancellation is conditional — only proceed if the customer has no active TV service. After cancellation, re-fetch status and add to the cancellation list with the TV service contract number.

**Block 3.7** — ELSE-IF `isTvKktkSvcCd(kktkSvcCd)` (L448)

> Classifies equipment as TV type (e.g., Set-Top Box, TV tuner).

##### Block 3.7.1 — IF (Lines 451–452)

> Only cancel TV equipment when the customer has no active TV service.

**Block 3.7.1** — IF `!isTvExist` (L451)

| # | Type | Code |
|---|------|------|
| 1 | CALL | `executeDslSvcKeiKiki(handle, param, fixedText, kikiMap, mskmDtlNoTv)` // Cancel TV equipment |
| 2 | CALL | `kikiMapResult = getEKK0341A010(handle, param, fixedText, kktkSvcKeiNo)` // Re-fetch post-cancellation status [EKK0341A010SC] |
| 3 | IF | `kikiMapResult != null && !kikiMapResult.isEmpty()` (L453) |

##### Block 3.7.2 — SET (Line 455): Set TV service contract number

> Set the TV service contract number in the post-cancellation result map for returned equipment registration.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `kikiMapResult.put("svcKeiNo", svcKeiNoTv)` // Set TV service contract number for returned equipment registration |

##### Block 3.7.3 — EXEC (Line 457): Add to cancellation list

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `dslKktkList.add(kikiMapResult)` // Add post-cancellation TV equipment record to cancellation result list |

---

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `dslKaisenKiki` | Method | DSL line equipment cancellation — cancels equipment attached to a DSL/telecom line during address change processing |
| `svcKeiKaisenUcwkNo` | Field | Service contract line internal breakdown number — internal tracking ID that identifies a specific line item within a service contract |
| `kktkSvcKeiNo` | Field | Equipment service contract number — unique identifier for a piece of equipment's service contract |
| `kktkSvcCd` | Field | Equipment service code — classifies the type of equipment (C005 Modem, C006 Spliter, C008 Inline Filter, C012 ONU, C013 V-ONU, C024 Multi-function router, C025 Home Gateway) |
| `kktkSvcKeiStat` | Field | Equipment service contract status — indicates the current state of the equipment's service contract (e.g., 910 = Cancelled, 920 = Cancellation Requested) |
| `mskmDtlNoNet` | Field | Master side unit detail number (Net) — internal identifier for the Net service's master side unit |
| `mskmDtlNoTel` | Field | Master side unit detail number (Phone) — internal identifier for the Phone service's master side unit |
| `mskmDtlNoTv` | Field | Master side unit detail number (TV) — internal identifier for the TV service's master side unit |
| `dslKktkList` | Field | DSL equipment cancellation result list — accumulates all equipment cancellation records with post-cancellation status |
| `dslKkopList` | Field | DSL optional service cancellation list — collects optional service cancellation records for multi-function router equipment |
| `isNetExist` | Parameter | Net service existence flag — true when customer currently has an active Internet service |
| `isTelExist` | Parameter | Phone service existence flag — true when customer currently has an active telephone service |
| `isTvExist` | Parameter | TV service existence flag — true when customer currently has an active TV service |
| `svcKeiNoNet` | Parameter | Service contract number for Net — used as the fallback contract number for Net/Phone equipment cancellation results |
| `svcKeiNoTel` | Parameter | Service contract number for Phone — used as the fallback contract number for Net/Phone equipment cancellation results |
| `svcKeiNoTv` | Parameter | Service contract number for TV — used for TV equipment cancellation results |
| `fixedText` | Parameter | Parameter map key — string identifier used to extract the correct parameter sub-map from the request |
| `handle` | Parameter | Session handle — database session context for SC/CBS calls |
| `param` | Parameter | Request parameter — request data carrier holding screen input and derived data |
| C024 | Constant | Equipment service code: Multi-function router (多機能ルータ / TAKINO) — combines router and other functions |
| C025 | Constant | Equipment service code: Home Gateway (ホームゲートウェイ / HGW) — Fujitsu's home gateway equipment |
| C005 | Constant | Equipment service code: Modem (モデム) |
| C006 | Constant | Equipment service code: Spliter (スプリッター) |
| C008 | Constant | Equipment service code: Inline Filter (インラインフィルタ) |
| C012 | Constant | Equipment service code: ONU (光ネットワークユニット) |
| C013 | Constant | Equipment service code: V-ONU (VDSL ONU) |
| G01 | Constant | Equipment optional service code: Router operation (ルータオプション) |
| G02 | Constant | Equipment optional service code: VA operation (VAオプション) |
| 910 | Constant | Service contract status: Cancelled (契約解除済) — the equipment's service contract has been fully cancelled |
| 920 | Constant | Service contract status: Cancellation Requested (解除済) — cancellation has been requested but may not yet be fully processed |
| CD0013001 | Constant | Service code: Net (ネット) — Internet service classification |
| CD0013002 | Constant | Service code: Phone (電話) — telephone service classification |
| CD0013003 | Constant | Service code: TV (テレビ) — broadcast/television service classification |
| callEKK0341B504 | Method | Service Component call to retrieve equipment list for a given service line |
| getEKK0341A010 | Method | Service Component call to get equipment contract information by equipment service contract number |
| executeDslSvcKeiKiki | Method | Internal method to cancel regular (non-multi-function) equipment service contract |
| executeDslTakinoOp | Method | Internal method to cancel multi-function router (TAKINO/HGW) equipment and its optional services |
| isNetTelKktkSvcCd | Method | Internal helper: determines if equipment service code belongs to Net/Phone category |
| isTvKktkSvcCd | Method | Internal helper: determines if equipment service code belongs to TV category |
| callEKK2091A010 | Method | Address change data retrieval SC — the caller of `dslKaisenKiki`, processes address change data and triggers equipment cancellation |
| 住所変更 | Business term | Address Change — the business process of changing a customer's registered address, which triggers equipment reassignment or cancellation |
| 配送取消 | Business term | Delivery Cancellation — the process of cancelling delivery orders for cancelled equipment; `dslKaisenKiki` output list is used as input for this step |
| 返品登録 | Business term | Returned Equipment Registration — the process of registering equipment that is returned to the customer after service cancellation |
| AbstractCommonComponent | Class | Base class for all Common Component (CC) classes, providing SC invocation and exception handling infrastructure |
| ServiceComponentRequestInvoker | Class | Component for invoking Service Components (SC) in the system, used for database queries and business operations |
