---
title: Business Logic — JKKAdchgCheckerCC.idoKikiStatusCheck() [128 LOC]
---

# Business Logic — JKKAdchgCheckerCC.idoKikiStatusCheck() [128 LOC]

| Field | Value |
|-------|-------|
| Fully Qualified Name | `com.fujitsu.futurity.bp.custom.common.JKKAdchgCheckerCC` |
| Layer | CC / Common Component (Shared Business Validation Library) |
| Module | `common` (Package: `com.fujitsu.futurity.bp.custom.common`) |

## 1. Role

### JKKAdchgCheckerCC.idoKikiStatusCheck()

This method performs a **device shipment status check** as part of the residential change registration workflow. Specifically, when a customer cancels (deregisters) any bundled communication service -- Internet, telephone, or television -- the system must verify that all physical equipment (ONUs, STBs, routers, etc.) associated with the cancelled service line has already been shipped to the customer. If the equipment remains **unshipped** at the time of service cancellation, the method blocks the cancellation and raises an error, preventing a financial loss scenario where a cancelled service still has undelivered hardware in the warehouse.

The method uses a **sequential routing pattern**, processing each of the three service categories independently: eo Hikari Network (Internet), eo Hikari Telephone (PSTN/VoIP), and eo Hikari TV. For each category, it checks whether the service change type is "cancellation" (CD00849_SLRE = "4"), and if so, delegates the actual shipment verification to the internal `isShukkaKanryo()` helper method. This structured dispatch ensures each service line is validated in a consistent, isolated manner.

This is a **shared validation utility** called from `honCmt1stChecker`, which is itself invoked during the first-stage primary registration check of the residential change screen (KKSV0004). It acts as a guard clause in the customer-facing change flow, short-circuiting with `false` the moment any unshipped equipment is detected, or returning `true` only after all applicable service lines have been cleared.

## 2. Processing Pattern (Detailed Business Logic)

```mermaid
flowchart TD
    START(["idoKikiStatusCheck start"])

    START --> S1["Get paramMap from param.getData"]
    S1 --> S2["Set CHK_IDO_KIK_STAT = CHECK_OK"]
    S2 --> S3["Read net svcChgKbn and svcKeiNo"]
    S3 --> D1{svcChgKbn equals CD00849_SLRE}

    D1 -->|Yes: Net service| NET_CHECK["Call isShukkaKanryo net"]
    D1 -->|No| NET_SKIP["Skip net section"]

    NET_CHECK --> IS1{isShukkaKanryo returns true}
    IS1 -->|Yes| TEL_SECTION["Read tel svcChgKbn and svcKeiNo"]
    IS1 -->|No| NET_ERR["Set CHECK_ERR log net error return false"]

    NET_SKIP --> TEL_SECTION

    TEL_SECTION --> D2{svcChgKbn equals CD00849_SLRE}

    D2 -->|Yes: Tel service| TEL_CHECK["Call isShukkaKanryo tel"]
    D2 -->|No| TEL_SKIP["Skip tel section"]

    TEL_CHECK --> IS2{isShukkaKanryo returns true}
    IS2 -->|Yes| TV_SECTION["Read tv svcChgKbn and svcKeiNo"]
    IS2 -->|No| TEL_ERR["Set CHECK_ERR log tel error return false"]

    TEL_SKIP --> TV_SECTION

    TV_SECTION --> D3{svcChgKbn equals CD00849_SLRE}

    D3 -->|Yes: TV service| TV_CHECK["Call isShukkaKanryo tv"]
    D3 -->|No| TV_SKIP["Skip tv section"]

    TV_CHECK --> IS3{isShukkaKanryo returns true}
    IS3 -->|Yes| LOG_END["Log normal end"]
    IS3 -->|No| TV_ERR["Set CHECK_ERR log tv error return false"]

    TV_SKIP --> LOG_END

    LOG_END --> END(["Return true"])

    NET_ERR --> END
    TEL_ERR --> END
    TV_ERR --> END
```

**Branch descriptions:**

- **Block: Read Net Service Info (Lines 273-274)** -- Extracts the network service change division (`eohnt_use_svc_chg_div`) and the network service contract number (`net_svc_kei_no`) from the parameter map.
- **Diamond: CD00849_SLRE check (Line 278)** -- If `svcChgKbn` equals `"4"` (cancellation), the method enters the net service device check branch. This checks whether the network service is being deregistered.
- **Branch: Net isShukkaKanryo call (Line 285)** -- Delegates to `isShukkaKanryo()` with net service context. If the check returns `false` (unshipped equipment found), sets `CHECK_ERR` ("0"), logs the net error message, and returns `false` immediately, short-circuiting all remaining service checks.
- **Block: Read Tel Service Info (Lines 307-308)** -- Extracts the telephone service change division (`eohtl_use_svc_chg_div`) and the telephone service contract number (`tel_svc_kei_no`).
- **Diamond: CD00849_SLRE check (Line 313)** -- If `svcChgKbn` equals `"4"` (cancellation), enters the telephone service device check branch.
- **Branch: Tel isShukkaKanryo call (Line 320)** -- Same pattern as net: delegates, and on failure returns `false` with telephone error context.
- **Block: Read TV Service Info (Lines 342-343)** -- Extracts the television service change division (`eohtv_use_svc_chg_div`) and the television service contract number (`tv_svc_kei_no`).
- **Diamond: CD00849_SLRE check (Line 347)** -- If `svcChgKbn` equals `"4"` (cancellation), enters the television service device check branch.
- **Branch: TV isShukkaKanryo call (Line 355)** -- Same pattern as net and telephone.
- **Block: Normal End (Line 380)** -- All applicable service lines have been cleared. Logs the normal termination message.

## 3. Parameter Analysis

| No | Parameter Name | Type | Business Description |
|----|---------------|------|---------------------|
| 1 | `param` | `IRequestParameterReadWrite` | The request parameter object carrying the model group and control map for the current screen session. Specifically, `param.getData(fixedText)` returns a `HashMap` containing service change type indicators and contract numbers for all three service lines (Net/Tel/TV). This map is also mutated in-place: the check result code (`chk_ido_kiki_stat_result`) is written into it via `paramMap.put()` so the caller (`honCmt1stChecker`) can inspect the outcome. |
| 2 | `fixedText` | `String` | A user-defined arbitrary string used as a data key/identifier to retrieve the correct parameter map from `param.getData()`. It acts as a session-scoped namespace within the `IRequestParameterReadWrite` object, allowing multiple different data groups to coexist in a single request. |

**Instance/External State Read:**

| No | Field/Constant | Source | Business Description |
|----|---------------|--------|---------------------|
| 1 | `CHK_IDO_KIK_STAT` | `JKKAdchgCheckerCC` | Static constant `"chk_ido_kiki_stat_result"` -- the map key used to store the device status check result. |
| 2 | `CHECK_OK` | `JKKAdchgCheckerCC` | Static constant `"1"` -- initial "check passed" value written to the result map. |
| 3 | `CHECK_ERR` | `JKKAdchgCheckerCC` | Static constant `"0"` -- "check failed" value written when unshipped equipment is detected. |
| 4 | `JKKAdchgConstCC.CD00849_SLRE` | `JKKAdchgConstCC` | Constant value `"4"` -- represents "cancellation" (解約) as a residential change processing type. |
| 5 | `JKKAdchgConstCC.PARAM_KEY_EOHNT_USE_SVC_CHG_DIV` | `JKKAdchgConstCC` | Map key `"eohnt_use_svc_chg_div"` -- extracts the network service change division code. |
| 6 | `JKKAdchgConstCC.PARAM_KEY_NET_SVC_KEI_NO` | `JKKAdchgConstCC` | Map key `"net_svc_kei_no"` -- extracts the network service contract number. |
| 7 | `JKKAdchgConstCC.PARAM_KEY_EOHTL_USE_SVC_CHG_DIV` | `JKKAdchgConstCC` | Map key `"eohtl_use_svc_chg_div"` -- extracts the telephone service change division code. |
| 8 | `JKKAdchgConstCC.PARAM_KEY_TEL_SVC_KEI_NO` | `JKKAdchgConstCC` | Map key `"tel_svc_kei_no"` -- extracts the telephone service contract number. |
| 9 | `JKKAdchgConstCC.PARAM_KEY_EOHTV_USE_SVC_CHG_DIV` | `JKKAdchgConstCC` | Map key `"eohtv_use_svc_chg_div"` -- extracts the television service change division code. |
| 10 | `JKKAdchgConstCC.PARAM_KEY_TV_SVC_KEI_NO` | `JKKAdchgConstCC` | Map key `"tv_svc_kei_no"` -- extracts the television service contract number. |

## 4. CRUD Operations / Called Services

| CRUD | SC / CBS | SC Code | Entity / DB | Operation Description |
|------|----------|---------|-------------|----------------------|
| R | `JKKAdchgCheckerCC.isShukkaKanryo` | JKKAdchgCheckerCC | - | Calls `isShukkaKanryo` in `JKKAdchgCheckerCC` -- verifies whether the equipment associated with a service contract has been shipped. Returns `true` if shipped, `false` otherwise. |
| R | `JKKAdchgCheckerCC.printlnEjbLog` | JKKAdchgCheckerCC | - | Logging utility -- writes diagnostic messages to EJB log for monitoring and troubleshooting. |
| R | `IRequestParameterReadWrite.getData` | - | - | Reads the parameter map (`HashMap<String, Object>`) associated with the `fixedText` key from the request parameter object. |
| - | `HashMap.put` | - | - | In-memory map operation to set/update the check result code. |
| - | `HashMap.get` | - | - | In-memory map operation to retrieve service change division and service contract number values. |

## 5. Dependency Trace

| # | Caller (Screen/Batch) | Call Chain (Full Path to this Method) | Terminal (SC / CRUD / Entity) |
|---|----------------------|--------------------------------------|-------------------------------|
| 1 | Method: `JKKAdchgCheckerCC.honCmt1stChecker` | `honCmt1stChecker` -> `idoKikiStatusCheck` | `isShukkaKanryo` [R] -- Equipment shipment status verification; `printlnEjbLog` [-] -- EJB logging |

**Caller context:** The `honCmt1stChecker` method is the public entry point for the first-stage primary check during residential change registration. It invokes `idoKikiStatusCheck` as part of its validation sequence. If `idoKikiStatusCheck` returns `false`, the caller sets `check_result` to `CHECK_ERR` ("0"), which the calling screen uses to block the user and display an error.

**Terminal operations from this method:** `isShukkaKanryo` [-], `printlnEjbLog` [-] -- each called up to 3 times (once per service type), with conditional branching on the service change division code.

## 6. Per-Branch Detail Blocks

### Block 1 -- EXEC/SET (Initialization) (L256--L274)

> Prepare the parameter map and initialize the check result to "OK." The method logs entry, retrieves the control map, sets the initial check status, and declares local variables for the three service categories.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `printlnEjbLog("###JKKAdchgCheckerCC.idoKikiStatusCheck() start")` // Log method entry |
| 2 | CALL | `paramMap = param.getData(fixedText)` // Retrieve control HashMap [-> MAP_KEY="chk_ido_kiki_stat_result"] |
| 3 | SET | `paramMap.put(CHK_IDO_KIK_STAT, CHECK_OK)` // Initialize result to "1" (OK) |
| 4 | SET | `svcChgKbn = null` // Local variable: service change division |
| 5 | SET | `svcKeiNo = null` // Local variable: service contract number |
| 6 | SET | `chkKikiList = null` // Local variable: device provision service contract list (commented-out branch) |
| 7 | SET | `retBoo` // Local boolean declaration for return value |
| 8 | SET | `svcChgKbn = paramMap.get(JKKAdchgConstCC.PARAM_KEY_EOHNT_USE_SVC_CHG_DIV)` // Net service change division |
| 9 | SET | `svcKeiNo = paramMap.get(JKKAdchgConstCC.PARAM_KEY_NET_SVC_KEI_NO)` // Net service contract number |

### Block 2 -- IF (Net Service Check) (L278--L305)

> Condition: `[CD00849_SLRE="4"]` (service change type is cancellation). Checks if the network service is being cancelled. If so, verifies equipment shipment status via `isShukkaKanryo`.

| # | Type | Code |
|---|------|------|
| 1 | IF | `JKKAdchgConstCC.CD00849_SLRE.equals(svcChgKbn)` // Is net service change type "4" (cancellation)? [-> CD00849_SLRE="4"] |
| 2 | CALL | `isShukkaKanryo(param, fixedText, paramMap, svcKeiNo)` // Verify net equipment shipment [Line 285] |
| 3 | IF | `!isShukkaKanryo(...)` // Shipment check FAILED (equipment not shipped) |
| 4 | SET | `paramMap.put(CHK_IDO_KIK_STAT, CHECK_ERR)` // Set result to "0" (ERROR) |
| 5 | EXEC | `printlnEjbLog("###JKKAdchgCheckerCC.isShukkaKanryo() 異動機器状態チェックエラー（ネット）")` // Log net error |
| 6 | RETURN | `return false` // Block: exit method immediately, skip remaining services |
| 7 | ELSE-IF | (no else-if/else -- the `if` body is the only branch for net) |

**Note:** Lines 292--305 contain a commented-out original implementation (`getKikiInfo` + loop over `chkKikiList` with `isChokuso` check). This was replaced in version 32.00.00 (2017/06/15) by the simpler `isShukkaKanryo` single-call approach.

### Block 3 -- IF (Telephone Service Check) (L307--L340)

> Condition: `[CD00849_SLRE="4"]` (service change type is cancellation). Reads telephone service change division and contract number, then checks shipment status if cancelling.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcChgKbn = paramMap.get(JKKAdchgConstCC.PARAM_KEY_EOHTL_USE_SVC_CHG_DIV)` // Tel service change division |
| 2 | SET | `svcKeiNo = paramMap.get(JKKAdchgConstCC.PARAM_KEY_TEL_SVC_KEI_NO)` // Tel service contract number |
| 3 | IF | `JKKAdchgConstCC.CD00849_SLRE.equals(svcChgKbn)` // Is tel service change type "4" (cancellation)? [-> CD00849_SLRE="4"] |
| 4 | CALL | `isShukkaKanryo(param, fixedText, paramMap, svcKeiNo)` // Verify tel equipment shipment [Line 320] |
| 5 | IF | `!isShukkaKanryo(...)` // Shipment check FAILED |
| 6 | SET | `paramMap.put(CHK_IDO_KIK_STAT, CHECK_ERR)` // Set result to "0" (ERROR) |
| 7 | EXEC | `printlnEjbLog("###JKKAdchgCheckerCC.isShukkaKanryo() 異動機器状態チェックエラー（電話）")` // Log tel error |
| 8 | RETURN | `return false` // Block: exit method, skip TV check |
| 9 | ELSE-IF | (no else-if/else) |

### Block 4 -- IF (Television Service Check) (L342--L378)

> Condition: `[CD00849_SLRE="4"]` (service change type is cancellation). Reads television service change division and contract number, then checks shipment status if cancelling.

| # | Type | Code |
|---|------|------|
| 1 | SET | `svcChgKbn = paramMap.get(JKKAdchgConstCC.PARAM_KEY_EOHTV_USE_SVC_CHG_DIV)` // TV service change division |
| 2 | SET | `svcKeiNo = paramMap.get(JKKAdchgConstCC.PARAM_KEY_TV_SVC_KEI_NO)` // TV service contract number |
| 3 | IF | `JKKAdchgConstCC.CD00849_SLRE.equals(svcChgKbn)` // Is TV service change type "4" (cancellation)? [-> CD00849_SLRE="4"] |
| 4 | CALL | `isShukkaKanryo(param, fixedText, paramMap, svcKeiNo)` // Verify TV equipment shipment [Line 355] |
| 5 | IF | `!isShukkaKanryo(...)` // Shipment check FAILED |
| 6 | SET | `paramMap.put(CHK_IDO_KIK_STAT, CHECK_ERR)` // Set result to "0" (ERROR) |
| 7 | EXEC | `printlnEjbLog("###JKKAdchgCheckerCC.isShukkaKanryo() 異動機器状態チェックエラー（テレビ）")` // Log TV error |
| 8 | RETURN | `return false` // Block: exit method |
| 9 | ELSE-IF | (no else-if/else) |

### Block 5 -- EXEC/RETURN (Normal Completion) (L380--L383)

> Reached only when no cancellation branches were entered (or all applicable `isShukkaKanryo` calls returned `true`). Logs the successful completion and returns `true`.

| # | Type | Code |
|---|------|------|
| 1 | EXEC | `printlnEjbLog("###JKKAdchgCheckerCC.idoKikiStatusCheck() end 正常終了")` // Log normal termination |
| 2 | RETURN | `return true` // All checks passed |

## 7. Glossary

| Term | Type | Business Meaning |
|------|------|------------------|
| `idoKikiStatusCheck` | Method | Device Shipment Status Check -- validates equipment has been shipped before service cancellation proceeds |
| `isShukkaKanryo` | Method | Shipment Completion Check -- determines whether a specific service's hardware has been fully delivered to the customer |
| `chk_ido_kiki_stat_result` | Field | Device Shipment Status Check Result -- the parameter map key storing the check outcome ("1" = OK, "0" = ERROR) |
| `eohnt_use_svc_chg_div` | Field | eo Hikari Network Service Change Division -- indicates the type of change being applied to the Internet service line (new, change, cancel, etc.) |
| `net_svc_kei_no` | Field | eo Hikari Network Service Contract Number -- unique identifier for the customer's Internet service contract line |
| `eohtl_use_svc_chg_div` | Field | eo Hikari Telephone Service Change Division -- indicates the type of change being applied to the telephone service line |
| `tel_svc_kei_no` | Field | eo Hikari Telephone Service Contract Number -- unique identifier for the customer's telephone service contract line |
| `eohtv_use_svc_chg_div` | Field | eo Hikari TV Service Change Division -- indicates the type of change being applied to the television service line |
| `tv_svc_kei_no` | Field | eo Hikari TV Service Contract Number -- unique identifier for the customer's television service contract line |
| `CD00849_SLRE` | Constant | Service Cancellation Code -- value `"4"` representing a service cancellation/deregistration action (解約) in the residential change processing type classification |
| `CHECK_OK` | Constant | Check Passed -- value `"1"` indicating the device shipment validation was successful |
| `CHECK_ERR` | Constant | Check Error -- value `"0"` indicating unshipped equipment was detected during the cancellation check |
| SOD | Acronym | Service Order Data -- telecom order fulfillment domain entity |
| FTTH | Business term | Fiber To The Home -- fiber-optic broadband internet service offered by K-Opticom under the "eo Hikari" brand |
| STB | Acronym | Set-Top Box -- the physical television decoder box provided for eo Hikari TV service |
| ONU | Acronym | Optical Network Unit -- the fiber termination device installed at the customer premises for FTTH service |
| K-Opticom | Business entity | The telecommunications provider operating the eo Hikari broadband service brand in Japan |
| 異動機器状態チェック | Japanese term | Device Shipment Status Check -- the business operation this method performs, verifying equipment delivery before contract cancellation |
| 出荷完了 | Japanese term | Shipment Complete -- the state indicating physical hardware has been delivered to the customer |
| 解約 | Japanese term | Cancellation / Deregistration -- the action of terminating a service contract, which triggers the equipment shipment check |
