#  業務ロジック  Part 12/12

### useStpRlsOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
useStpRlsOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite useStpRlsOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

利用停止解除（中断解除）オーダ制御処理。サービス契約の種別判定後、ネット・モバイル・電話のいずれかの利用停止解除制御メソッドへディスパッチする。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["useStpRlsOdrCtrl(handle, param, sodMap)"] --> S1["Step1: サービス種別判定 (jdgSvcKind)"]
  S1 --> IF1{"svc_kindがNET/MOB/TEL/ADSL/FLET'S"}
  IF1 -- "Yes" --> S2["Step2: stpRlsOdrCtrl呼び出し"]
  S2 --> RET["return"]
  IF1 -- "No" --> RET
  style IF1 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `JKKHakkoSODConstCC.SVC_KIND_NET.equals(svc_kind) || JKKHakkoSODConstCC.SVC_KIND_MOB.equals(svc_kind) || JKKHakkoSODConstCC.SVC_KIND_TEL.equals(svc_kind) || JKKHakkoSODConstCC.SVC_KIND_ADSL.equals(svc_kind) || JKKHakkoSODConstCC.SVC_KIND_FLETS.equals(svc_kind)` |  | stpRlsOdrCtrl |
| 2 | else |  | 何もせずreturn |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 3 | sodMap | HashMap<String, Object> | SOD情報マップ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0351B010SC | EKK0351 | オプションサービス契約一覧照会 |
| R | callEKK0161A010SC | EKK0161 | サービス契約内訳一意照会 |
| R | callEKK0351A010SC | EKK0351 | オプションサービス契約一意照会 |
| R | callEKK1081C011SC | EKK1081 | 同一処理番号取得 |
| R | callEKK0161B003SC | EKK0161 | サービス契約内訳一覧照会（SYSID） |
| R | callEKK0081B004SC | EKK0081 | サービス契約一覧照会（SYSID） |
| R | callEKK1081B001SC | EKK1081 | オーダ発行条件一覧照会 |
| R | callEKK0361A010SC | EKK0361 | オプションサービス契約＜ISP＞一意照会 |
| R | callEKK0351B002SC | EKK0351 | オプションサービス契約一覧照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- hakkoSOD → useStpRlsOdrCtrl

**呼出パス:**

```
hakkoSOD → useStpRlsOdrCtrl → stpRlsOdrCtrl → [各SC呼出]
```

**終端:**  
各SC呼出先

---

---

### vLanIdChgOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
vLanIdChgOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite vLanIdChgOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

VLAN-IDの変更を伴うオーダ制御を実施するメソッドです。  
契約情報・内訳情報・機器情報など複数の情報を参照し、電話契約やVA機器交換等の状況に応じて、Radius認証・OLS設定・多機能ルーター等のSOD登録を行います。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["vLanIdChgOdrCtrl(handle, param, sodMap)"]
    --> S1["sodMapからSOD基本/契約/内訳/機器情報取得"]
    --> S2["shkkaMapで各情報の業務データをセット"]
    --> S3["jdgSvcKindでサービス種別判定"]
    --> IF1{"サービス種別が電話以外か"}
    IF1 -- "はい" --> RET1["paramを返却"]
    IF1 -- "いいえ" --> S4["同一処理番号取得"]
    S4 --> S5["EKK0251B001SCで回線内訳情報取得"]
    S5 --> S6["回線内訳番号・世代取得"]
    S6 --> S7["addSOD(Radius認証用)"]
    S7 --> S8["EKK0161B004SCで内訳一覧取得→各内訳でOLS用SOD発行"]
    S8 --> S9["変更後内訳のVA機器交換状況を取得"]
    S9 --> IF2{"VA機器交換中・EG切替等の特殊条件か"}
    IF2 -- "はい" --> S10["交換中VAの機器情報をセット"]
    IF2 -- "いいえ" --> S11["カレントVA機器情報をセット"]
    S10 --> S12["EKK0341A010SCで機器契約一意照会"]
    S11 --> S12
    S12 --> IF3{"多機能ルーター関連の判定"}
    IF3 -- "該当" --> S13["addSOD(多機能ルーター用)"]
    IF3 -- "非該当" --> S14["addTakinoSOD(その他)"]
    S13 --> RET2["param返却"]
    S14 --> RET3["param返却"]

    style IF1 fill:#ffcc00
    style IF2 fill:#ffcc00
    style IF3 fill:#ffcc00
```

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `!JKKHakkoSODConstCC.SVC_KIND_TEL.equals(svc_kind)` | 電話以外 | param返却 |
| 2 | `svckei_ucwk_no != null && !"".equals(svckei_ucwk_no)` | 内訳番号あり | VA情報取得系処理 |
| 3 | `statusCode != 0` | 0以外 | CCExceptionスロー |
| 4 | `msgEKK0341B022_02SCList != null && msgEKK0341B022_02SCList.length >0` | VA交換中 | forループ処理 |
| 5 | `JKKSvcConst.KKTK_SVC_CD_HTEL_VA.equals(kktkSvcCd)` | 光電話用VA | EG切替判定 |
| 6 | `chaf_vaKikiChgNo.equals(kikiChgNo) && "00067".equals(idoDiv)` | EG切替 | 交換中VA機器情報セット |
| 7 | `!egNowFlg` | EG切替無 | カレントVA機器情報セット |
| 8 | `takino_flg == 0 || (takino_flg == 9 && JKKStrConst.KKTK_SVC_CD_VA.equals(kktkSvcCD))` | 多機能ルーター該当 | addSOD(多機能ルーター) |
| 9 | `takino_flg != 9` | 非多機能ルーター | addTakinoSOD(その他) |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 3 | sodMap | HashMap<String, Object> | 業務情報マップ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0161B004SC | EKK0161 | サービス契約内訳一覧照会 | 内訳情報取得 |
| R | callEKK0191A010SC | EKK0191 | サービス契約内訳＜eo光電話＞一意照会 | 状態確認 |
| R | callEKK0341B008_02SC | EKK0341 | 機器提供サービス契約一覧（交換中） | 交換中VA機器情報取得 |
| R | callEKK0341A010SC | EKK0341 | 機器提供サービス契約一意照会 | カレントVA機器取得 |
| R | callEKK1081C011SC | EKK1081 | 同一処理番号取得 | SOD管理 |
| R | callEKK0251B001SC | EKK0251 | サービス契約回線内訳一覧 | 回線内訳情報取得 |
| R | callEKK0341B008SCRireki | EKK0341 | 機器提供サービス契約一覧照会(履歴) | - |
| R | callEDK0301B060SC | EDK0301 | 返品機器取消一覧照会 | - |
| R | callEKK0341B001SC | EKK0341 | 機器提供サービス契約一覧（機器製造番号） | - |
| R | callEKK0251B003SCCAAMsg | EKK0251 | サービス契約回線内訳（現在利用中） | - |
| R | callEKK0341B504SC | EKK0341 | 機器提供サービス契約一覧（回線内訳） | - |
| R | callEKK0341B029SC | EKK0341 | 機器提供サービス契約一覧（機器変更番号） | - |
| R | callEKK0341B021SC | EKK0341 | 機器提供サービス契約一覧（予約） | - |
| R | callEKK2811B010SC | EKK2811 | 機器オプションサービス契約一覧 | - |
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧照会 | - |
| R | callEKK1041A010SC | EKK1041 | オーダ設定一意照会 | - |
| R | callEKK0361A010SC | EKK0361 | オプションサービス契約＜ISP＞一意照会 | - |
| R | callEKK0081A010SC | EKK0081 | サービス契約一意照会 | - |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**
- hakkoSOD

**呼出パス例:**
```
hakkoSOD → vLanIdChgOdrCtrl → callEKK0251B001SC → callEKK0161B004SC → callEKK0341B008_02SC → callEKK0341A010SC → addSOD
```

**終端:**
| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK0161B004SC | R | サービス契約内訳一覧照会 |
| callEKK0191A010SC | R | サービス契約内訳＜eo光電話＞一意照会 |
| callEKK0341B008_02SC | R | 機器提供サービス契約一覧（交換中） |
| callEKK0341A010SC | R | 機器提供サービス契約一意照会 |
| ... | ... | ... |

---

---

### vLanIdVaChangeOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
vLanIdVaChangeOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite vLanIdVaChangeOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

VLAN-ID変更オーダのSOD発行を制御するメソッドです。サービス種別や機器種別、オプション契約の照会結果に応じて、Radius認証や多機能ルーターのオーダ内容コードを適切に選択し、SOD登録を行います。呼出元は`hakkoSOD`です。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["vLanIdVaChangeOdrCtrl(handle, param, sodMap)"]
    --> S1["SOD_KIHON_INFO, SVC_KEI_INFO, SVC_KEI_UCWK_INFO取得"]
    --> S2["各MapをshkkaMapで加工"]
    --> S3["KKTSVKEI_INFO取得・加工"]
    --> S4["jdgSvcKindでサービス種別判定"]
    --> IF1{"svc_kind == 'TEL'"}
    IF1 -- "No" --> RET1["return param"]
    IF1 -- "Yes" --> S5["同一処理番号取得"]
    S5 --> S6["getEKK0251B001SC(回線内訳一覧照会)"]
    S6 --> IF2{"statusCode != 0"}
    IF2 -- "Yes" --> ERR1["CCExceptionスロー"]
    IF2 -- "No" --> S7["回線内訳番号・世代登録日時取得"]
    S7 --> S8["addSOD(ODR_NAIYO_CD_203)"]
    S8 --> S9["カレント機器提供サービス契約照会(callEKK0341A010SC)"]
    S9 --> IF3{"retHash.isEmpty()"}
    IF3 -- "No" --> S10["型式番号・製造番号等取得"]
    S10 --> IF4{"KKTK_SVC_CDが多機能 or HGW"}
    IF4 -- "Yes" --> S11["機能ごと分岐"]
    IF4 -- "No" --> S12["スキップ"]
    S11 --> S13["OLS, RT, VA, HGW等条件分岐し、addTakinoSODによるSOD登録"]
    S13 --> END
```

**制御フロー分岐（全条件列挙）:**  
（詳細はControlFlow部およびMethodSequence記載全分岐を反映）

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ |
| 3 | sodMap | HashMap<String, Object> | SOD発行用業務情報マップ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0341A010SC | EKK0341 | 機器提供サービス契約 | 一意照会 |
| R | callEKK2811B010SC | EKK2811 | 機器オプションサービス契約 | 一覧照会 |
| R | callEKK1081C011SC | EKK1081 | 同一処理番号 | 取得 |
| R | callEKK0251B001SC | EKK0251 | サービス契約回線内訳 | 一覧照会 |
| R | callEKK0361A010SC | EKK0361 | オプションサービス契約＜ISP＞ | 一意照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- hakkoSOD → vLanIdVaChangeOdrCtrl

**呼出パス:**

```
hakkoSOD → vLanIdVaChangeOdrCtrl → callEKK0341A010SC → EKK0341
                                  → callEKK2811B010SC → EKK2811
                                  → callEKK0251B001SC → EKK0251
                                  → 他CRUD
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK0341A010SC | R | 機器提供サービス契約 |
| callEKK2811B010SC | R | 機器オプションサービス契約 |
| callEKK1081C011SC | R | 同一処理番号 |
| callEKK0251B001SC | R | サービス契約回線内訳 |
| callEKK0361A010SC | R | オプションサービス契約＜ISP＞ |

---

---

### wribInfoAddOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
wribInfoAddOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite wribInfoAddOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

---

#### 1. 役割

割引情報登録オーダ制御処理を行う。サービス契約やオプションサービス契約の情報を参照し、対象条件に応じて必要なオーダ（SOD）を作成・登録する。主に割引・多機能ルーター・機器オプションに関する制御分岐を持つ。

---

#### 2. 処理パターン（詳細ビジネスロジック）

```mermaid
flowchart TD
  START["wribInfoAddOdrCtrl(handle, param, sodMap)"] --> S1["Step1: オプションサービス契約情報取得 (opsvkei_info_Map)"]
  S1 --> S2["Step2: オプションサービス契約情報の業務変換 (shkkaMap)"]
  S2 --> S3["Step3: 変更後オプションサービス契約番号取得"]
  S3 --> S4["Step4: 処理区分取得 (shori_div)"]

  S4 --> IF1{"処理区分 = SHORI_DIV_VC(割引)"}
  IF1 -- "Yes" --> S5["Step5: 割引用入力マップ作成・一意照会 (callEKK0361A010SC FUNC_CODE_2)"]
  S5 --> S6["Step6: 一意照会結果からGENE_ADD_DTM, MLAD取得"]
  S6 --> S7["Step7: SOD登録 (ODR_NAIYO_CD_114)"]
  S7 --> RET["return param"]

  IF1 -- "No" --> IF2{"処理区分 = SHORI_DIV_KKOP(機器オプション)"}
  IF2 -- "Yes" --> IF3{"複数サービス契約内訳あり？"}
  IF3 -- "Yes" --> S8["Step8: サービス契約内訳一覧取得・降順ソート"]
  S8 --> S9["Step9: サービス契約内訳配列作成"]
  S9 --> S10["Step10: 機器オプションサービス契約情報取得 (kkopsvkei_info_Map)"]
  S10 --> S11["Step11: 業務変換 (shkkaMap)"]
  S11 --> S12["Step12: 前後世代登録日時取得"]
  S12 --> S13["Step13: 機器オプション変更判定 (checkKKOPChanged)"]
  S13 --> S14["Step14: 多機能ルーター判定 (checkTakinoRT)"]

  S14 --> IF4{"kkopChangeFlag == 0 or takino_flg == 0"}
  IF4 -- "Yes" --> RET
  IF4 -- "No" --> IF5{"kkopChangeFlag == 1 and takino_flg == 4"}
  IF5 -- "Yes" --> S15["Step15: 多機能ルーター登録SOD出力 (ODR_NAIYO_CD_402)"]
  S15 --> RET
  IF5 -- "No" --> IF6{"kkopChangeFlag == 2 and takino_flg == 4"}
  IF6 -- "Yes" --> S16["Step16: 多機能ルーター無線/有線SOD出力 (ODR_NAIYO_CD_418)"]
  S16 --> RET

  IF2 -- "No" --> RET
  style IF1 fill:#ffcc00
  style IF2 fill:#ffcc00
  style IF3 fill:#ffcc00
  style IF4 fill:#ffcc00
  style IF5 fill:#ffcc00
  style IF6 fill:#ffcc00
```

**処理ステップ詳細:**

1. `sodMap.get(JKKHakkoSODConstCC.OPSVKEI_INFO)` でオプションサービス契約情報を取得。
2. `shkkaMap` で業務変換。
3. `opsvkei_info_Map.get(JKKHakkoSODConstCC.INFO_CHAF_OPSVKEI_NO)` で変更後オプションサービス契約番号取得。
4. `sodMap.get(JKKHakkoSODConstCC.SHORI_DIV)` で処理区分取得。
5. **処理区分が割引(SHORI_DIV_VC)の場合**
   - 割引用入力マップ作成。
   - `callEKK0361A010SC`（FUNC_CODE_2）で一意照会。
   - 結果からGENE_ADD_DTM, MLAD取得。
   - `addSOD`（ODR_NAIYO_CD_114）でSOD登録。
6. **処理区分が機器オプション(SHORI_DIV_KKOP)の場合**
   - `getSvcKeiUtwkList`でサービス契約内訳一覧取得し降順ソート。
   - 内訳配列作成。
   - `sodMap.get(JKKHakkoSODConstCC.KKOPSVKEI_INFO)`で機器オプションサービス契約情報取得。
   - `shkkaMap`で業務変換。
   - 前後世代登録日時取得。
   - `checkKKOPChanged`で機器オプション変更判定。
   - `checkTakinoRT`で多機能ルーター判定。
   - **分岐：**
     - `kkopChangeFlag == 0` or `takino_flg == 0`：何もしない
     - `kkopChangeFlag == 1 and takino_flg == 4`：`addTakinoSOD`（ODR_NAIYO_CD_402）
     - `kkopChangeFlag == 2 and takino_flg == 4`：`addTakinoSOD`（ODR_NAIYO_CD_418）

**制御フロー分岐（全条件列挙）:**

| # | 条件 | 定数値 | 分岐先 |
|---|------|--------|--------|
| 1 | `SHORI_DIV_VC.equals(shori_div)` | `"VC"` (割引) | 割引情報SOD登録パス |
| 2 | `SHORI_DIV_KKOP.equals(shori_div)` | `"KKOP"` (機器オプション) | 機器オプションパス |
| 3 | `1 < this.svc_kei_ucwk_no.length` |  | 複数内訳対応 |
| 4 | `kkopChangeFlag==0 || takino_flg==0` |  | SOD発行しない |
| 5 | `kkopChangeFlag==1 && takino_flg==4` |  | 多機能ルーター登録SOD (ODR_NAIYO_CD_402) |
| 6 | `kkopChangeFlag==2 && takino_flg==4` |  | 多機能ルーター無線/有線SOD (ODR_NAIYO_CD_418) |

---

#### 3. パラメータ分析

| No | パラメータ名 | 型 | 業務説明 |
|----|-------------|-----|---------|
| 1 | handle | SessionHandle | セッション管理ハンドル |
| 2 | param | IRequestParameterReadWrite | リクエスト/レスポンスパラメータ（業務データコンテナ） |
| 3 | sodMap | HashMap<String, Object> | SOD業務情報連携マップ |

---

#### 4. CRUD操作 / 呼出サービス

| CRUD | SC メソッド | SCコード | エンティティ | 操作説明 |
|------|-----------|---------|------------|---------|
| R | callEKK0361A010SC | EKK0361 | オプションサービス契約＜ISP＞一意照会 | オプションサービス契約情報の一意照会 |
| R | callEKK2811A010SC | EKK2811 | 機器オプションサービス契約一意照会 | 機器オプションの照会 |
| R | callEKK0251B003SCCAAMsg | EKK0251 | サービス契約回線内訳（現在利用中） | サービス契約回線内訳照会 |
| R | callEKK0341B504SC | EKK0341 | 機器提供サービス契約一覧照会（サービス契約回線内訳） | 回線内訳単位で機器提供契約一覧取得 |
| R | callEKK0191A010SC | EKK0191 | サービス契約内訳<eo光電話>一意照会 | eo光電話内訳の照会 |
| R | callEKK0341B029SC | EKK0341 | 機器提供サービス契約一覧照会（機器変更番号） | 機器変更番号単位での一覧照会 |
| R | callEKK0341B021SC | EKK0341 | 機器提供サービス契約一覧照会（予約） | 予約単位での一覧照会 |
| R | callEKK2811B010SC | EKK2811 | 機器オプションサービス契約一覧照会 | 一覧照会 |
| R | callEKK1041B001SC | EKK1041 | オーダ設定一覧照会 | オーダ設定一覧取得 |
| R | callEKK1041A010SC | EKK1041 | オーダ設定一意照会 | オーダ設定一意照会 |
| R | callEKK0081A010SC | EKK0081 | サービス契約一意照会 | サービス契約情報 |
| R | callEKK0341B008SCRireki | EKK0341 | 機器提供サービス契約一覧照会(履歴照会) | 履歴照会 |
| R | callEDK0301B060SC | EDK0301 | 返品機器取消一覧照会 | 返品機器取消一覧取得 |
| R | callEKK0341B001SC | EKK0341 | 機器提供サービス契約一覧照会（機器製造番号） | 機器製造番号での一覧取得 |
| R | callEKK0341A010SC | EKK0341 | 機器提供サービス契約一意照会 | 一意照会 |

---

#### 5. 依存トレース (Dependency Trace)

**起点:**

- hakkoSOD → wribInfoAddOdrCtrl

**呼出パス:**

```
hakkoSOD → wribInfoAddOdrCtrl → callEKK0361A010SC → [各SC: EKK0361, EKK2811, EKK0251, EKK0341, EKK0191, ...]
```

**終端:**

| SC メソッド | CRUD | エンティティ |
|-----------|------|-----------|
| callEKK0361A010SC | R | オプションサービス契約＜ISP＞一意照会 |
| callEKK2811A010SC | R | 機器オプションサービス契約一意照会 |
| callEKK0251B003SCCAAMsg | ? | サービス契約回線内訳（現在利用中） |
| callEKK0341B504SC | R | 機器提供サービス契約一覧照会（サービス契約回線内訳） |
| callEKK0191A010SC | R | サービス契約内訳<eo光電話>一意照会 |
| callEKK0341B029SC | R | 機器提供サービス契約一覧照会（機器変更番号） |
| callEKK0341B021SC | R | 機器提供サービス契約一覧照会（予約） |
| callEKK2811B010SC | R | 機器オプションサービス契約一覧照会 |
| callEKK1041B001SC | R | オーダ設定一覧照会 |
| callEKK1041A010SC | R | オーダ設定一意照会 |
| callEKK0081A010SC | R | サービス契約一意照会 |
| callEKK0341B008SCRireki | R | 機器提供サービス契約一覧照会(履歴照会) |
| callEDK0301B060SC | R | 返品機器取消一覧照会 |
| callEKK0341B001SC | R | 機器提供サービス契約一覧照会（機器製造番号） |
| callEKK0341A010SC | R | 機器提供サービス契約一意照会 |

---

---

### addIpv6SODAft()

#### 呼出元 (Reverse Call Tree) — 3 direct callers

```
addIpv6SODAft() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
└── newKeiOdrCtrl()
    ├── hakkoSOD()
    └── adchgFixOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public void addIpv6SODAft(SessionHandle handle, IRequestParameterReadWrite param, String ucwk_no_param, String fixedText, String opSvcKeiStatParam, HashMap<String, Object> sodMap)`
> **戻り値:** `void`

#### 1. 役割

IPV6オーダ発行処理_変更後オプションサービス

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨0 != statusCode⸩"]
  N1["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N0 --> N1
  N2["for: "]
  N1 --> N2
  N3["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_IPV6.equals⸨tmp_op_svc_cd⸩⸩"]
  N2 --> N3
  N4["return: "]
  N3 --> N4
```

#### 7. 関連SC (1件)

- `callEKK0351B002SC`

- **Category**: Other
- **LOC**: 67


---

### addTakinoSOD()

#### 呼出元 (Reverse Call Tree) — 27 direct callers

```
addTakinoSOD() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── addIpv6SODAft()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── cnclOdrCtrl()
│   │   └── hakkoSOD()
│   ├── ksiDslFixOdrCtrl()
│   │   └── hakkoSOD()
│   └── ksiDslOdrCtrl()
│       └── hakkoSOD()
├── hakkouIpv6()
│   ├── addIpv6SODAft()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── jdgIpv6EKK0361A010()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opSetOdrCtrl()
│   └── jdgIpv6()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── opSetOdrCtrl()
│       └── jdgIpv6EKK0361A010()
│           ├── adchgFixOdrCtrl()
│           ├── hakkoSOD()
│           ├── kaihkOdrCtrl()
│           ├── newKeiOdrCtrl()
│           └── addIpv6SODAft()
│               ├── adchgFixOdrCtrl()
│               ├── hakkoSOD()
│               └── newKeiOdrCtrl()
├── htelNoDslOdrCtrl()
│   └── hakkoSOD()
├── htelNoInfoChgeOdrCtrl()
│   └── hakkoSOD()
├── htelNoKaihkOdrCtrl()
│   └── hakkoSOD()
├── jdgOdr163()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── courseChgeOdrCtrl()
│       ├── hakkoSOD()
│       └── adchgFixOdrCtrl()
│           └── hakkoSOD()
├── kaihkOdrCtrl()
│   └── hakkoSOD()
├── newNet()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── newKeiOdrCtrl()
│       ├── adchgFixOdrCtrl()
│       └── hakkoSOD()
├── opSetOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   └── ksiDslOdrCtrl()
├── rtOpChgDivOdrCtrl()
│   └── hakkoSOD()
├── setChgePWForRouterConInfo()
│   ├── hakkoSOD()
│   └── idpwShkkaSaifuriOdrCtrl()
│       └── hakkoSOD()
├── telNoChge()
│   ├── hakkoSOD()
│   └── bmpSwitchOdrCtrl()
│       └── hakkoSOD()
├── vLanIdChgOdrCtrl()
│   └── hakkoSOD()
├── vLanIdVaChangeOdrCtrl()
│   └── hakkoSOD()
└── wribInfoAddOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite addTakinoSOD(SessionHandle handle, IRequestParameterReadWrite param, String orderNaiyoCd)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

多機能ルーター向けオーダ オーダ発行条件・オーダ情報作成ワーク登録判定・登録処理    渡されたオーダ内容コードから、必要な情報をマッピングして  各オーダテーブルへの登録を行う。    【使用するサービスIF】  ・オーダ発行条件登録  ・オーダ情報作成ワーク登録

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨inMap != null⸩"]
  N1["if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_402.equals⸨orderNaiyoCd⸩ ||
				JKKHakkoSODConstCC.ODR_NAIYO_CD_403.equals⸨orderNaiyoC..."]
  N0 --> N1
  N2["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_407.equals⸨orderNaiyoCd⸩ ||
					JKKHakkoSODConstCC.ODR_NAIYO_CD_408.equals⸨orderNaiyo..."]
  N1 --> N2
  N3["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_401.equals⸨orderNaiyoCd⸩ ||
					JKKHakkoSODConstCC.ODR_NAIYO_CD_406.equals⸨orderNaiyo..."]
  N2 --> N3
  N4["if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_406.equals⸨orderNaiyoCd⸩⸩"]
  N3 --> N4
  N5["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_401.equals⸨orderNaiyoCd⸩⸩"]
  N4 --> N5
  N6["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_419.equals⸨orderNaiyoCd⸩ ||
					JKKHakkoSODConstCC.ODR_NAIYO_CD_420.equals⸨orderNaiyo..."]
  N5 --> N6
  N7["if: ⸨ JKKHakkoSODConstCC.ODR_NAIYO_CD_419.equals⸨orderNaiyoCd⸩ ⸩"]
  N6 --> N7
  N8["else: "]
  N7 --> N8
  N9["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_421.equals⸨orderNaiyoCd⸩ ||
					JKKHakkoSODConstCC.ODR_NAIYO_CD_422.equals⸨orderNaiyo..."]
  N8 --> N9
  N10["if: ⸨ JKKHakkoSODConstCC.ODR_NAIYO_CD_421.equals⸨orderNaiyoCd⸩ ⸩"]
  N9 --> N10
  N11["else: "]
  N10 --> N11
  N12["else-if: ⸨ JKKHakkoSODConstCC.ODR_NAIYO_CD_418.equals⸨orderNaiyoCd⸩ ⸩"]
  N11 --> N12
  N13["else-if: ⸨ JKKHakkoSODConstCC.ODR_NAIYO_CD_404_IPv6.equals⸨orderNaiyoCd⸩ ⸩"]
  N12 --> N13
  N14["return: param"]
  N13 --> N14
```

- **Category**: Other
- **LOC**: 415


---

### checkKKOPChanged()

#### 呼出元 (Reverse Call Tree) — 2 direct callers

```
checkKKOPChanged() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
└── wribInfoAddOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public int checkKKOPChanged(SessionHandle handle, IRequestParameterReadWrite param, String kkopSvkeiNo, String chbfKkopSvkeiGadtm, String chafKkopSvkeiGadtm)`
> **戻り値:** `int`

#### 1. 役割

多機能ルーター情報ルータ機能有無チェック    サービス契約番号に紐付いている多機能ルータのルータ機能設定有無

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨ !isBlank⸨kkopSvkeiNo⸩ ＆＆ !isBlank⸨chbfKkopSvkeiGadtm⸩ ⸩"]
  N1["if: ⸨0 != statusCode⸩"]
  N0 --> N1
  N2["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N1 --> N2
  N3["for: "]
  N2 --> N3
  N4["if: ⸨ !isBlank⸨kkopSvkeiNo⸩ ＆＆ !isBlank⸨chafKkopSvkeiGadtm⸩ ⸩"]
  N3 --> N4
  N5["if: ⸨0 != statusCode⸩"]
  N4 --> N5
  N6["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N5 --> N6
  N7["for: "]
  N6 --> N7
  N8["if: ⸨ !isBlank⸨ chaf_kkop_svc_cd ⸩ ⸩"]
  N7 --> N8
  N9["if: ⸨ !isBlank⸨ chbf_kkop_svc_cd ⸩ ⸩"]
  N8 --> N9
  N10["if: ⸨ chaf_kkop_svc_cd.equals⸨ chbf_kkop_svc_cd ⸩ ⸩"]
  N9 --> N10
  N11["return: 0"]
  N10 --> N11
  N12["else: "]
  N11 --> N12
  N13["return: 2"]
  N12 --> N13
  N14["else: "]
  N13 --> N14
  N15["return: 1"]
  N14 --> N15
  N16["else: "]
  N15 --> N16
  N17["return: 0"]
  N16 --> N17
```

#### 7. 関連SC (1件)

- `callEKK2811A010SC`

- **Category**: Other
- **LOC**: 33


---

### checkTakinoRT()

#### 呼出元 (Reverse Call Tree) — 26 direct callers

```
checkTakinoRT() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── addIpv6SODAft()    [trực tiếp]
├── bmpSwitchOdrCtrl()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoAddOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── newKeiOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── cnclOdrCtrl()
│   │   └── hakkoSOD()
│   ├── ksiDslFixOdrCtrl()
│   │   └── hakkoSOD()
│   └── ksiDslOdrCtrl()
│       └── hakkoSOD()
├── findZ1OrderAtKK1041()
│   ├── hakkoSOD()
│   ├── htelNoAddOdrCtrl()
│   │   └── hakkoSOD()
│   └── idpwShkkaSaifuriOdrCtrl()
│       └── hakkoSOD()
├── findZ1OrderAtKK1041SvcKeiUcwk()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   └── opSetOdrCtrl()
├── htelNoDslOdrCtrl()
│   └── hakkoSOD()
├── htelNoInfoChgeOdrCtrl()
│   └── hakkoSOD()
├── htelNoKaihkOdrCtrl()
│   └── hakkoSOD()
├── jdgIpv6()
│   ├── adchgFixOdrCtrl()
│   ├── addIpv6SODAft()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opSetOdrCtrl()
│   └── jdgIpv6EKK0361A010()
│       ├── adchgFixOdrCtrl()
│       ├── hakkoSOD()
│       ├── kaihkOdrCtrl()
│       ├── newKeiOdrCtrl()
│       └── addIpv6SODAft()
│           ├── adchgFixOdrCtrl()
│           ├── hakkoSOD()
│           └── newKeiOdrCtrl()
│               ├── adchgFixOdrCtrl()
│               └── hakkoSOD()
├── jdgOdr163()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── courseChgeOdrCtrl()
│       ├── hakkoSOD()
│       └── adchgFixOdrCtrl()
│           └── hakkoSOD()
├── kaihkOdrCtrl()
│   └── hakkoSOD()
├── opSetOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   └── ksiDslOdrCtrl()
├── setChgePWForRouterConInfo()
│   ├── hakkoSOD()
│   └── idpwShkkaSaifuriOdrCtrl()
├── telNoChge()
│   ├── hakkoSOD()
│   └── bmpSwitchOdrCtrl()
│       └── hakkoSOD()
├── vLanIdChgOdrCtrl()
│   └── hakkoSOD()
└── wribInfoAddOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public int checkTakinoRT(SessionHandle handle, IRequestParameterReadWrite param)`
> **戻り値:** `int`

#### 1. 役割

多機能ルーター情報ルータ機能有無チェック    サービス契約番号に紐付いている多機能ルータのルータ機能設定有無

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨ isBlank⸨this.prc_grp_cd⸩ ⸩"]
  N1["if: ⸨ JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩ ＆＆ svc_kei_ucwk_no != null  ＆＆ svc_kei_ucwk_no⟦0⟧ != null ⸩"]
  N0 --> N1
  N2["if: ⸨ svc_kei_ucwk_gadtm != null ＆＆ svc_kei_ucwk_gadtm.length != 0 ＆＆ svc_kei_ucwk_gadtm⟦0⟧ != null ⸩"]
  N1 --> N2
  N3["if: ⸨0 != statusCode⸩"]
  N2 --> N3
  N4["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N3 --> N4
  N5["if: ⸨ inMap == null || !inMap.containsKey⸨ JKKHakkoSODConstCC.SVC_KEI_NO ⸩⸩"]
  N4 --> N5
  N6["else: "]
  N5 --> N6
  N7["if: ⸨0 != statusCode⸩"]
  N6 --> N7
  N8["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N7 --> N8
  N9["for: "]
  N8 --> N9
  N10["if: ⸨isBlank⸨svc_kei_kaisen_ucwk_stat⸩⸩"]
  N9 --> N10
  N11["else: "]
  N10 --> N11
  N12["if: ⸨isBlank⸨takino_svc_kei_kaisen_ucwk_no⸩⸩"]
  N11 --> N12
  N13["return: 0"]
  N12 --> N13
  N14["if: ⸨0 != statusCode⸩"]
  N13 --> N14
  N15["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N14 --> N15
  N16["if: ⸨svc_kei_ucwk_no != null ＆＆ svc_kei_ucwk_no.length > 0⸩"]
  N15 --> N16
  N17["for: "]
  N16 --> N17
  N18["if: ⸨JKKHakkoSODConstCC.KKTK_SVC_CD_MRT.equals⸨kktk_svc_cd⸩ || JKKHakkoSODConstCC.KKTK_SVC_CD_HGW.equals⸨kktk_svc_cd⸩⸩"]
  N17 --> N18
  N19["if: ⸨JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩⸩"]
  N18 --> N19
  N20["if: ⸨ JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩ ＆＆ svc_kei_ucwk_no != null ＆＆ svc_kei_ucwk_no⟦0⟧ != null ⸩"]
  N19 --> N20
  N21["if: ⸨isBlank⸨va_kiki_chg_no⸩ || !va_kiki_chg_no.equals⸨⸨String⸩eKK0341B504Hash.get⸨EKK0341B504CBSMsg1List.KIKI_CHG_NO⸩⸩⸩"]
  N20 --> N21
  N22["if: ⸨kokanBfKiki == null || kokanBfKiki.isEmpty⸨⸩⸩"]
  N21 --> N22
  N23["if: ⸨ JKKHakkoSODConstCC.SVC_KEI_STAT_920.equals⸨kktk_svc_kei_stat⸩ ⸩"]
  N22 --> N23
  N24["else-if: ⸨ JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨kktk_svc_kei_stat⸩ ⸩"]
  N23 --> N24
  N25["if: ⸨mskm_dtl_no.equals⸨mskm_dtl_no_local⸩ 
						＆＆ ⸨JKKHakkoSODConstCC.IDO_DIV_DSL.equals⸨ido_div⸩ || JKKHakkoSODConstCC...."]
  N24 --> N25
  N26["if: ⸨kokanBfKiki != null ＆＆ !kokanBfKiki.isEmpty⸨⸩⸩"]
  N25 --> N26
  N27["else: "]
  N26 --> N27
  N28["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_020.equals⸨kktk_svc_kei_stat⸩
					|| JKKHakkoSODConstCC.SVC_KEI_STAT_030.equals⸨kktk_..."]
  N27 --> N28
  N29["if: ⸨isBlank⸨⸨String⸩eKK0341B504Hash.get⸨EKK0341B504CBSMsg1List.KIKI_SEIZO_NO⸩⸩⸩"]
  N28 --> N29
  N30["if: ⸨kokanBfKiki != null ＆＆ !kokanBfKiki.isEmpty⸨⸩⸩"]
  N29 --> N30
  N31["else: "]
  N30 --> N31
  N32["return: 9"]
  N31 --> N32
  N33["else: "]
  N32 --> N33
  N34["if: ⸨ mrt_dsl_flg == 0
				＆＆ JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩
				＆＆ !JKKStringUtil.isNullBlank⸨va_kiki_c..."]
  N33 --> N34
  N35["if: ⸨msgEKK0341B029 != null⸩"]
  N34 --> N35
  N36["if: ⸨JKKHakkoSODConstCC.KKTK_SVC_CD_MRT.equals⸨msgEKK0341B029.getString⸨EKK0341B029CBSMsg1List.KKTK_SVC_CD⸩⸩ || JKKHakkoSODC..."]
  N35 --> N36
  N37["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_920.equals⸨kktkSvcKeiStat⸩⸩"]
  N36 --> N37
  N38["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨kktkSvcKeiStat⸩⸩"]
  N37 --> N38
  N39["if: ⸨mskm_dtl_no.equals⸨mskm_dtl_no_local⸩ 
								＆＆ ⸨JKKHakkoSODConstCC.IDO_DIV_DSL.equals⸨ido_div⸩ || JKKHakkoSODConstC..."]
  N38 --> N39
  N40["else: "]
  N39 --> N40
  N41["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_020.equals⸨kktkSvcKeiStat⸩
								|| JKKHakkoSODConstCC.SVC_KEI_STAT_030.equals⸨kktkS..."]
  N40 --> N41
  N42["if: ⸨!JKKStringUtil.isNullBlank⸨msgEKK0341B029.getString⸨EKK0341B029CBSMsg1List.KIKI_SEIZO_NO⸩⸩⸩"]
  N41 --> N42
  N43["else: "]
  N42 --> N43
  N44["else: "]
  N43 --> N44
  N45["else: "]
  N44 --> N45
  N46["else: "]
  N45 --> N46
  N47["if: ⸨ mrt_dsl_flg == 0
				＆＆ JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩
				＆＆ !JKKStringUtil.isNullBlank⸨va_kiki_c..."]
  N46 --> N47
  N48["if: ⸨ svc_kei_ucwk_gadtm != null ＆＆ svc_kei_ucwk_gadtm.length != 0 ＆＆ svc_kei_ucwk_gadtm⟦0⟧ != null ⸩"]
  N47 --> N48
  N49["if: ⸨0 != statusCode⸩"]
  N48 --> N49
  N50["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N49 --> N50
  N51["if: ⸨msgEKK0341B029 != null⸩"]
  N50 --> N51
  N52["if: ⸨JKKHakkoSODConstCC.KKTK_SVC_CD_MRT.equals⸨msgEKK0341B029.getString⸨EKK0341B029CBSMsg1List.KKTK_SVC_CD⸩⸩ || JKKHakkoSODC..."]
  N51 --> N52
  N53["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_920.equals⸨kktkSvcKeiStat⸩⸩"]
  N52 --> N53
  N54["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨kktkSvcKeiStat⸩⸩"]
  N53 --> N54
  N55["if: ⸨mskm_dtl_no.equals⸨mskm_dtl_no_local⸩ 
							＆＆ ⸨JKKHakkoSODConstCC.IDO_DIV_DSL.equals⸨ido_div⸩ || JKKHakkoSODConstCC..."]
  N54 --> N55
  N56["else: "]
  N55 --> N56
  N57["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_020.equals⸨kktkSvcKeiStat⸩
								|| JKKHakkoSODConstCC.SVC_KEI_STAT_030.equals⸨kktkS..."]
  N56 --> N57
  N58["if: ⸨!JKKStringUtil.isNullBlank⸨msgEKK0341B029.getString⸨EKK0341B029CBSMsg1List.KIKI_SEIZO_NO⸩⸩⸩"]
  N57 --> N58
  N59["else: "]
  N58 --> N59
  N60["return: 9"]
  N59 --> N60
  N61["else: "]
  N60 --> N61
  N62["else: "]
  N61 --> N62
  N63["else: "]
  N62 --> N63
  N64["if: ⸨ mrt_dsl_flg == 0
				＆＆ JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩
				＆＆ !JKKStringUtil.isNullBlank⸨va_kiki_c..."]
  N63 --> N64
  N65["if: ⸨msgEKK0341B021List != null⸩"]
  N64 --> N65
  N66["for-each: msgEKK0341B021"]
  N65 --> N66
  N67["if: ⸨⸨JKKHakkoSODConstCC.KKTK_SVC_CD_MRT.equals⸨msgEKK0341B021.getString⸨EKK0341B021CBSMsg1List.CUR_KKTK_SVC_CD⸩⸩ 
							|..."]
  N66 --> N67
  N68["if: ⸨!JKKStringUtil.isNullBlank⸨msgEKK0341B021.getString⸨EKK0341B021CBSMsg1List.RSV_KIKI_SEIZO_NO⸩⸩⸩"]
  N67 --> N68
  N69["if: ⸨ mrt_dsl_flg == 0 ⸩"]
  N68 --> N69
  N70["return: 0"]
  N69 --> N70
  N71["else: "]
  N70 --> N71
  N72["if: ⸨0 != statusCode⸩"]
  N71 --> N72
  N73["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N72 --> N73
  N74["for: "]
  N73 --> N74
  N75["if: ⸨	⸨ JKKHakkoSODConstCC.SVC_KIND_NET.equals⸨svc_kind⸩ ＆＆ JKKHakkoSODConstCC.KKOP_SVC_CD_RT.equals⸨kkop_svc_cd⸩ ⸩ ||	// サー..."]
  N74 --> N75
  N76["if: ⸨resultOdrSet.size⸨⸩==0⸩"]
  N75 --> N76
  N77["return: 9"]
  N76 --> N77
  N78["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨kkop_svc_kei_stat⸩ || JKKHakkoSODConstCC.SVC_KEI_STAT_920.equals⸨kkop_svc_ke..."]
  N77 --> N78
  N79["if: ⸨mskm_dtl_no.equals⸨mskm_dtl_no_local⸩⸩"]
  N78 --> N79
  N80["if: ⸨mrt_dsl_flg == 1⸩"]
  N79 --> N80
  N81["return: 4"]
  N80 --> N81
  N82["else-if: ⸨mrt_dsl_flg == 2⸩"]
  N81 --> N82
  N83["return: 3"]
  N82 --> N83
  N84["else: "]
  N83 --> N84
  N85["if: ⸨ mrt_dsl_flg == 2 ⸩"]
  N84 --> N85
  N86["return: 0"]
  N85 --> N86
  N87["for: "]
  N86 --> N87
  N88["if: ⸨!takino_kktk_svc_kei_no.equals⸨kktkSvcKeiNo⸩⸩"]
  N87 --> N88
  N89["if: ⸨0 != statusCode⸩"]
  N88 --> N89
  N90["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N89 --> N90
  N91["if: ⸨ msgListOdrSet != null ＆＆ msgListOdrSet.length != 0 ⸩"]
  N90 --> N91
  N92["if: ⸨ yokyu_sbt_cd.matches⸨'0⟦24⟧'⸩ ⸩"]
  N91 --> N92
  N93["if: ⸨ JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩ ⸩"]
  N92 --> N93
  N94["if: ⸨ isBlank⸨mrt_skbt_cd⸩ || JKKHakkoSODConstCC.TAKINORT_KINO_CD_RT.equals⸨mrt_skbt_cd⸩ ⸩"]
  N93 --> N94
  N95["return: 1"]
  N94 --> N95
  N96["return: 4"]
  N95 --> N96
  N97["else-if: ⸨ yokyu_sbt_cd.matches⸨'0⟦38⟧'⸩ ⸩"]
  N96 --> N97
  N98["return: 2"]
  N97 --> N98
  N99["return: 9"]
  N98 --> N99
  N100["return: 0"]
  N99 --> N100
```

#### 7. 関連SC (8件)

- `callEKK0191A010SC`
- `callEKK0251B003SCCAAMsg`
- `callEKK0341B504SC`
- `callEKK0341B029SC`
- `callEKK0341B021SC`
- `callEKK2811B010SC`
- `callEKK1041B001SC`
- `callEKK1041A010SC`

- **Category**: Other
- **LOC**: 694


---

### htelItntokiOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
htelItntokiOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite htelItntokiOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

光電話移転トーキオーダ制御処理

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨0 != statusCode⸩"]
  N1["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N0 --> N1
  N2["if: ⸨0 != statusCode⸩"]
  N1 --> N2
  N3["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N2 --> N3
  N4["if: ⸨!isBlankDate⸨itensOpafTokiStaYmd⸩ ＆＆ opeDate.equals⸨itensOpafTokiStaYmd⸩ ＆＆ isBlankDate⸨itensOpafTokiEndYmd⸩⸩"]
  N3 --> N4
  N5["if: ⸨0 != statusCode⸩"]
  N4 --> N5
  N6["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N5 --> N6
  N7["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨svcKeiUcwkStat⸩ ＆＆ JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨tssSvcKeiUcwkS..."]
  N6 --> N7
  N8["if: ⸨JKKHakkoSODConstCC.ITNTOKI_ADD_CD_ADD.equals⸨itensOpafTokiAddCd⸩⸩"]
  N7 --> N8
  N9["if: ⸨!JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨bmpUm⸩⸩"]
  N8 --> N9
  N10["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
								＆＆ isMonaiBmp⸨handle, ..."]
  N9 --> N10
  N11["if: ⸨!isBlankDate⸨itntokiStaYmd⸩ ＆＆ opeDate.equals⸨itntokiStaYmd⸩ ＆＆ isBlankDate⸨itntokiEndYmd⸩⸩"]
  N10 --> N11
  N12["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨svcKeiUcwkStat⸩⸩"]
  N11 --> N12
  N13["if: ⸨JKKHakkoSODConstCC.ITNTOKI_ADD_CD_DSL.equals⸨itntokiAddCd⸩⸩"]
  N12 --> N13
  N14["if: ⸨!JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨bmpUm⸩⸩"]
  N13 --> N14
  N15["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
								＆＆ isMonaiBmp⸨handle, ..."]
  N14 --> N15
  N16["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨svcKeiUcwkStat⸩⸩"]
  N15 --> N16
  N17["if: ⸨JKKHakkoSODConstCC.ITNTOKI_ADD_CD_PAUSE.equals⸨itntokiAddCd⸩⸩"]
  N16 --> N17
  N18["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨svcKeiUcwkStat⸩⸩"]
  N17 --> N18
  N19["if: ⸨JKKHakkoSODConstCC.ITNTOKI_ADD_CD_DSL.equals⸨itntokiAddCd⸩⸩"]
  N18 --> N19
  N20["if: ⸨JKKHakkoSODConstCC.ADCHG_STAT_REG.equals⸨adchgStat⸩⸩"]
  N19 --> N20
  N21["if: ⸨JKKHakkoSODConstCC.KOJIAK_STAT_200.equals⸨kojiakStat⸩ ＆＆ 
							svc_kei_ucwk_no.equals⸨chbfSkbtNo⸩ ＆＆ chafSkbtNo != n..."]
  N20 --> N21
  N22["if: ⸨!JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨bmpUm⸩⸩"]
  N21 --> N22
  N23["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
										＆＆ isMonaiBmp⸨handle..."]
  N22 --> N23
  N24["if: ⸨!JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨bmpUm⸩⸩"]
  N23 --> N24
  N25["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
										＆＆ isMonaiBmp⸨handle..."]
  N24 --> N25
  N26["if: ⸨!isBlankDate⸨itensOpafTokiStaYmd⸩ ＆＆ !isBlankDate⸨itensOpafTokiEndYmd⸩ ＆＆ opeDate.equals⸨itensOpafTokiEndYmd⸩⸩"]
  N25 --> N26
  N27["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨svcKeiUcwkStat⸩⸩"]
  N26 --> N27
  N28["if: ⸨JKKHakkoSODConstCC.ITNTOKI_ADD_CD_ADD.equals⸨itensOpafTokiAddCd⸩⸩"]
  N27 --> N28
  N29["if: ⸨!JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨bmpUm⸩⸩"]
  N28 --> N29
  N30["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
								＆＆ isMonaiBmp⸨handle, ..."]
  N29 --> N30
  N31["if: ⸨!isBlankDate⸨itntokiStaYmd⸩ ＆＆ !isBlankDate⸨itntokiEndYmd⸩ ＆＆ opeDate.equals⸨itntokiEndYmd⸩⸩"]
  N30 --> N31
  N32["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨svcKeiUcwkStat⸩⸩"]
  N31 --> N32
  N33["if: ⸨JKKHakkoSODConstCC.ITNTOKI_ADD_CD_PAUSE.equals⸨itntokiAddCd⸩⸩"]
  N32 --> N33
  N34["if: ⸨isTelnoSODJudge⸨handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm, null, TELNO_JUDGE_001⸩⸩"]
  N33 --> N34
  N35["if: ⸨JKKHakkoSODConstCC.PAUSE_JDG_CD_1.equals⸨pause_jdg_cd⟦0⟧⸩⸩"]
  N34 --> N35
  N36["else: "]
  N35 --> N36
  N37["if: ⸨JKKHakkoSODConstCC.ITNTOKI_ADD_CD_DSL.equals⸨itntokiAddCd⸩⸩"]
  N36 --> N37
  N38["if: ⸨!JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨bmpUm⸩⸩"]
  N37 --> N38
  N39["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
								＆＆ isMonaiBmp⸨handle, ..."]
  N38 --> N39
  N40["return: param"]
  N39 --> N40
```

#### 7. 関連SC (2件)

- `callEKK0161A010SC`
- `callEKK0191A010SC`

- **Category**: Other
- **LOC**: 467


---

### htelNoKaihkOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
htelNoKaihkOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite htelNoKaihkOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

光電話番号回復オーダ制御処理

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨0 != statusCode⸩"]
  N1["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N0 --> N1
  N2["if: ⸨!isZ1Ordered⸩"]
  N1 --> N2
  N3["for: "]
  N2 --> N3
  N4["if: ⸨JKKStringUtil.isNullBlank⸨mskmDtlNo⸩ || !mskmDtlNo.equals⸨svcKeiUcwkMskmDtlNo⸩⸩"]
  N3 --> N4
  N5["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_TENSO.equals⸨opSvcCd⸩⸩"]
  N4 --> N5
  N6["return: param"]
  N5 --> N6
  N7["if: ⸨0 != statusCode⸩"]
  N6 --> N7
  N8["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N7 --> N8
  N9["if: ⸨0 != statusCode⸩"]
  N8 --> N9
  N10["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N9 --> N10
  N11["if: ⸨takino_flg == 0⸩"]
  N10 --> N11
  N12["if: ⸨0 != statusCode⸩"]
  N11 --> N12
  N13["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N12 --> N13
  N14["if: ⸨msgEKK0341B022_02SCList != null ＆＆ msgEKK0341B022_02SCList.length >0⸩"]
  N13 --> N14
  N15["for: "]
  N14 --> N15
  N16["if: ⸨JKKSvcConst.KKTK_SVC_CD_HTEL_VA.equals⸨kktkSvcCd⸩⸩"]
  N15 --> N16
  N17["if: ⸨vaKikiChgNo.equals⸨kikiChgNo⸩ ＆＆ '00067'.equals⸨idoDiv⸩⸩"]
  N16 --> N17
  N18["for: "]
  N17 --> N18
  N19["if: ⸨!isRegalVaKiki⸨handle, param, eKK0341B008SCHash, vaTaknkikiModelCd, null, ido_div, vaKikiChgNo, kokanBfKiki⸩⸩"]
  N18 --> N19
  N20["if: ⸨kokanBfKiki != null ＆＆ !kokanBfKiki.isEmpty⸨⸩⸩"]
  N19 --> N20
  N21["else-if: ⸨takino_flg == 4⸩"]
  N20 --> N21
  N22["if: ⸨JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.BMP_UM⸩⸩⸩"]
  N21 --> N22
  N23["if: ⸨isBmpOpenZumi⸨param, handle, svc_kei_no, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm⸩⸩"]
  N22 --> N23
  N24["else: "]
  N23 --> N24
  N25["else: "]
  N24 --> N25
  N26["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
					＆＆ isMonaiBmp⸨handle, par..."]
  N25 --> N26
  N27["for: "]
  N26 --> N27
  N28["if: ⸨JKKStringUtil.isNullBlank⸨mskmDtlNo⸩ || !mskmDtlNo.equals⸨svcKeiUcwkMskmDtlNo⸩⸩"]
  N27 --> N28
  N29["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_N050.equals⸨op_svc_cd⸩⸩"]
  N28 --> N29
  N30["else: "]
  N29 --> N30
  N31["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_DSP_ME.equals⸨op_svc_cd⸩⸩"]
  N30 --> N31
  N32["if: ⸨telOpUm⸩"]
  N31 --> N32
  N33["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨this.svc_kei_stat⸩⸩"]
  N32 --> N33
  N34["return: param"]
  N33 --> N34
```

#### 7. 関連SC (4件)

- `callEKK0351B002SC`
- `callEKK0191A010SC`
- `callEKK0341B008SC`
- `callEKK0341B008_02SC`

- **Category**: Other
- **LOC**: 517


---

### kaihkOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
kaihkOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite kaihkOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

回復オーダ制御処理

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨JKKHakkoSODConstCC.SVC_KIND_NET.equals⸨svc_kind⸩ ||
				JKKHakkoSODConstCC.SVC_KIND_ADSL.equals⸨svc_kind⸩⸩"]
  N1["if: ⸨!JKKHakkoSODConstCC.SVC_KIND_ADSL.equals⸨svc_kind⸩ ||
					JKKHakkoSODConstCC.PCRS_CD_ADSL_FURETTSU.equals⸨pcrs_cd⸩⸩"]
  N0 --> N1
  N2["if: ⸨0 != statusCode⸩"]
  N1 --> N2
  N3["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N2 --> N3
  N4["for: "]
  N3 --> N4
  N5["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_920.equals⸨op_svc_kei_stat⸩ || JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨op_svc_kei_st..."]
  N4 --> N5
  N6["if: ⸨0 != statusCode⸩"]
  N5 --> N6
  N7["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N6 --> N7
  N8["if: ⸨!svc_kei_ucwk_no.equals⸨oyaSvcKeiUcwkNo⸩⸩"]
  N7 --> N8
  N9["if: ⸨0 != statusCode⸩"]
  N8 --> N9
  N10["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N9 --> N10
  N11["for: "]
  N10 --> N11
  N12["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_920.equals⸨op_svc_kei_stat⸩ || JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨op_svc_kei_st..."]
  N11 --> N12
  N13["if: ⸨0 != statusCode⸩"]
  N12 --> N13
  N14["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N13 --> N14
  N15["if: ⸨0 != statusCode⸩"]
  N14 --> N15
  N16["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N15 --> N16
  N17["for: "]
  N16 --> N17
  N18["if: ⸨⸨JKKHakkoSODConstCC.SVC_KEI_STAT_020.equals⸨op_svc_kei_stat⸩ ||
						JKKHakkoSODConstCC.SVC_KEI_STAT_030.equals⸨op_sv..."]
  N17 --> N18
  N19["if: ⸨0 != statusCode⸩"]
  N18 --> N19
  N20["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N19 --> N20
  N21["if: ⸨null != msgEKK0341B002SCList⸩"]
  N20 --> N21
  N22["for: "]
  N21 --> N22
  N23["if: ⸨!JKKHakkoSODConstCC.KKTK_SVC_CD_BBR.equals⸨kktkSvcCd⸩⸩"]
  N22 --> N23
  N24["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨kktkStat⸩ || JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨kktkStat⸩
						|| ..."]
  N23 --> N24
  N25["else: "]
  N24 --> N25
  N26["if: ⸨ takino_flg != 0 ＆＆ takino_flg != 9 ⸩"]
  N25 --> N26
  N27["if: ⸨getSameTrnNoFlg || JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨this.svc_kei_stat⸩⸩"]
  N26 --> N27
  N28["else: "]
  N27 --> N28
  N29["if: ⸨!JKKHakkoSODConstCC.SVC_KIND_ADSL.equals⸨svc_kind⸩ ||	//2012-04-04移動（eoADSL実行条件見直し）
					JKKHakkoSODConstCC.PCRS_CD_AD..."]
  N28 --> N29
  N30["if: ⸨!isMansionPrvate⸨⸩⸩"]
  N29 --> N30
  N31["if: ⸨eKK0351B002SCHashListMltise.size⸨⸩ != 0⸩"]
  N30 --> N31
  N32["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ || JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨op_svc_kei_st..."]
  N31 --> N32
  N33["if: ⸨eKK0351B002SCHashListMltise.size⸨⸩ != 0 ＆＆ eKK0351B002SCHashListFixipad.size⸨⸩ == 0⸩"]
  N32 --> N33
  N34["else-if: ⸨eKK0351B002SCHashListMltise.size⸨⸩ != 0 ＆＆ eKK0351B002SCHashListFixipad.size⸨⸩ != 0⸩"]
  N33 --> N34
  N35["else-if: ⸨eKK0351B002SCHashListMltise.size⸨⸩ == 0 ＆＆ ⸨eKK0351B002SCHashListFixipad.size⸨⸩ != 0 || !''.equals⸨KOTEI_IP_AD_8_DIV⸩⸩⸩"]
  N34 --> N35
  N36["else: "]
  N35 --> N36
  N37["for: "]
  N36 --> N37
  N38["if: ⸨isOldCourseAvailable⸩"]
  N37 --> N38
  N39["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_EMAIL.equals⸨op_svc_cd⸩⸩"]
  N38 --> N39
  N40["if: ⸨0 != statusCode⸩"]
  N39 --> N40
  N41["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N40 --> N41
  N42["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_HP.equals⸨op_svc_cd⸩⸩"]
  N41 --> N42
  N43["if: ⸨0 != statusCode⸩"]
  N42 --> N43
  N44["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N43 --> N44
  N45["if: ⸨isBlank⸨urlDomain⸩ || isBlank⸨urlAccount⸩⸩"]
  N44 --> N45
  N46["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_MLIST.equals⸨op_svc_cd⸩⸩"]
  N45 --> N46
  N47["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_DUP.equals⸨op_svc_cd⸩⸩"]
  N46 --> N47
  N48["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_FMTCEL.equals⸨op_svc_cd⸩⸩"]
  N47 --> N48
  N49["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_IPV6.equals⸨op_svc_cd⸩⸩"]
  N48 --> N49
  N50["if: ⸨tmp_kiki_seizo_no != null ＆＆ !''.equals⸨tmp_kiki_seizo_no⸩⸩"]
  N49 --> N50
  N51["if: ⸨!isMansionPrvate⸨⸩⸩"]
  N50 --> N51
  N52["if: ⸨isOldCourseAvailable⸩"]
  N51 --> N52
  N53["else: "]
  N52 --> N53
  N54["else-if: ⸨takino_flg == 2⸩"]
  N53 --> N54
  N55["if: ⸨isOldCourseAvailable⸩"]
  N54 --> N55
  N56["else: "]
  N55 --> N56
  N57["else-if: ⸨takino_flg == 4⸩"]
  N56 --> N57
  N58["if: ⸨isOldCourseAvailable⸩"]
  N57 --> N58
  N59["else: "]
  N58 --> N59
  N60["for: "]
  N59 --> N60
  N61["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨this.svc_kei_stat⸩ ＆＆ !JKKHakkoSODConstCC.PAUSE_STP_CD_02.equals⸨this.pause_..."]
  N60 --> N61
  N62["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨this.svc_kei_stat⸩ ＆＆ JKKHakkoSODConstCC.PAUSE_STP_CD_02.equals⸨this.pause_s..."]
  N61 --> N62
  N63["else: "]
  N62 --> N63
  N64["else-if: ⸨JKKHakkoSODConstCC.SVC_KIND_MOB.equals⸨svc_kind⸩⸩"]
  N63 --> N64
  N65["if: ⸨JKKHakkoSODConstCC.PCRS_CD_WIFISPOT.equals⸨pcrs_cd⸩⸩"]
  N64 --> N65
  N66["else-if: ⸨chgSvcKeiJdg⸨svc_kei_no⸩⸩"]
  N65 --> N66
  N67["if: ⸨!JKKHakkoSODConstCC.PCRS_CD_MAILADDRESS.equals⸨pcrs_cd⸩⸩"]
  N66 --> N67
  N68["if: ⸨0 != statusCode⸩"]
  N67 --> N68
  N69["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N68 --> N69
  N70["if: ⸨isEmobile⸨⸩⸩"]
  N69 --> N70
  N71["if: ⸨0 != statusCode⸩"]
  N70 --> N71
  N72["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N71 --> N72
  N73["for: "]
  N72 --> N73
  N74["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_EMAIL.equals⸨op_svc_..."]
  N73 --> N74
  N75["if: ⸨0 != statusCode⸩"]
  N74 --> N75
  N76["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N75 --> N76
  N77["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_HP.equals⸨op_svc_cd⸩..."]
  N76 --> N77
  N78["if: ⸨0 != statusCode⸩"]
  N77 --> N78
  N79["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N78 --> N79
  N80["if: ⸨isBlank⸨urlDomain⸩ || isBlank⸨urlAccount⸩⸩"]
  N79 --> N80
  N81["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_MLIST.equals⸨op_svc_..."]
  N80 --> N81
  N82["if: ⸨JKKHakkoSODConstCC.PCRS_CD_WIMAX.equals⸨ucwkPcrsCd⸩⸩"]
  N81 --> N82
  N83["if: ⸨JKKHakkoSODConstCC.PCRS_CD_UQWIMAX_B.equals⸨pcrs_cd⸩⸩"]
  N82 --> N83
  N84["if: ⸨0 != statusCode⸩"]
  N83 --> N84
  N85["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N84 --> N85
  N86["if: ⸨msgListKktk != null ＆＆ msgListKktk.length > 0⸩"]
  N85 --> N86
  N87["else: "]
  N86 --> N87
  N88["if: ⸨0 != statusCode⸩"]
  N87 --> N88
  N89["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N88 --> N89
  N90["for: "]
  N89 --> N90
  N91["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_EMAIL.equals⸨op_svc_..."]
  N90 --> N91
  N92["if: ⸨0 != statusCode⸩"]
  N91 --> N92
  N93["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N92 --> N93
  N94["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_HP.equals⸨op_svc_cd⸩..."]
  N93 --> N94
  N95["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_MLIST.equals⸨op_svc_..."]
  N94 --> N95
  N96["else-if: ⸨JKKHakkoSODConstCC.PCRS_CD_FREE_WIFI.equals⸨ucwkPcrsCd⸩ || JKKHakkoSODConstCC.PCRS_CD_WIFISPOT.equals⸨ucwkPcrsCd⸩⸩"]
  N95 --> N96
  N97["if: ⸨wifiSpotCnt > 0⸩"]
  N96 --> N97
  N98["else: "]
  N97 --> N98
  N99["if: ⸨JKKHakkoSODConstCC.PCRS_CD_MAILADDRESS.equals⸨pcrs_cd⸩⸩"]
  N98 --> N99
  N100["if: ⸨0 != statusCode⸩"]
  N99 --> N100
  N101["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N100 --> N101
  N102["for: "]
  N101 --> N102
  N103["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_EMAIL.equals⸨op_svc_..."]
  N102 --> N103
  N104["if: ⸨0 != statusCode⸩"]
  N103 --> N104
  N105["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N104 --> N105
  N106["else-if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩ ＆＆
						JKKHakkoSODConstCC.OP_SVC_CD_MLIST.equals⸨op_svc_..."]
  N105 --> N106
  N107["if: ⸨!isBlank⸨this.same_trn_no⸩⸩"]
  N106 --> N107
  N108["else-if: ⸨JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩⸩"]
  N107 --> N108
  N109["if: ⸨0 != statusCode⸩"]
  N108 --> N109
  N110["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N109 --> N110
  N111["for: "]
  N110 --> N111
  N112["if: ⸨JKKStringUtil.isNullBlank⸨mskmDtlNo⸩ || !mskmDtlNo.equals⸨svcKeiUcwkMskmDtlNo⸩⸩"]
  N111 --> N112
  N113["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_N050.equals⸨op_svc_cd⸩⸩"]
  N112 --> N113
  N114["else: "]
  N113 --> N114
  N115["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_DSP_ME.equals⸨op_svc_cd⸩⸩"]
  N114 --> N115
  N116["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_TENSO.equals⸨op_svc_cd⸩⸩"]
  N115 --> N116
  N117["if: ⸨!isZ1Ordered⸩"]
  N116 --> N117
  N118["if: ⸨tensoUm⸩"]
  N117 --> N118
  N119["if: ⸨null == kk1081List || 1 > kk1081List.size⸨⸩⸩"]
  N118 --> N119
  N120["return: param"]
  N119 --> N120
  N121["if: ⸨0 != statusCode⸩"]
  N120 --> N121
  N122["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N121 --> N122
  N123["if: ⸨0 != statusCode⸩"]
  N122 --> N123
  N124["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N123 --> N124
  N125["if: ⸨0 != statusCode⸩"]
  N124 --> N125
  N126["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N125 --> N126
  N127["if: ⸨msgEKK0341B022_02SCList != null ＆＆ msgEKK0341B022_02SCList.length >0⸩"]
  N126 --> N127
  N128["for: "]
  N127 --> N128
  N129["if: ⸨JKKSvcConst.KKTK_SVC_CD_HTEL_VA.equals⸨kktkSvcCd⸩⸩"]
  N128 --> N129
  N130["if: ⸨vaKikiChgNo.equals⸨kikiChgNo⸩ ＆＆ '00067'.equals⸨idoDiv⸩⸩"]
  N129 --> N130
  N131["for: "]
  N130 --> N131
  N132["if: ⸨!isRegalVaKiki⸨handle, param, eKK0341B008SCHash, vaTaknkikiModelCd, null, ido_div, vaKikiChgNo, kokanBfKiki⸩⸩"]
  N131 --> N132
  N133["if: ⸨kokanBfKiki != null ＆＆ !kokanBfKiki.isEmpty⸨⸩⸩"]
  N132 --> N133
  N134["if: ⸨chgSvcKeiJdg⸨svc_kei_no⸩⸩"]
  N133 --> N134
  N135["if: ⸨⸨this.kktk_svc_kei_no != null ＆＆ isBlank⸨this.kktk_svc_kei_no⟦0⟧⸩ == false⸩ ＆＆
					⸨this.kktk_svc_kei_gadtm != null ＆..."]
  N134 --> N135
  N136["if: ⸨'2'.equals⸨telnoJun⸩⸩"]
  N135 --> N136
  N137["if: ⸨takino_flg == 0⸩"]
  N136 --> N137
  N138["else-if: ⸨takino_flg != 9⸩"]
  N137 --> N138
  N139["else: "]
  N138 --> N139
  N140["if: ⸨takino_flg == 0⸩"]
  N139 --> N140
  N141["else-if: ⸨takino_flg == 2⸩"]
  N140 --> N141
  N142["else-if: ⸨takino_flg == 4 || takino_flg == 1⸩"]
  N141 --> N142
  N143["if: ⸨eKK0191A010Hash == null⸩"]
  N142 --> N143
  N144["if: ⸨0 != statusCode⸩"]
  N143 --> N144
  N145["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N144 --> N145
  N146["if: ⸨JKKHakkoSODConstCC.BMP_UM_ARI.equals⸨⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.BMP_UM⸩⸩⸩"]
  N145 --> N146
  N147["if: ⸨isBmpOpenZumi⸨param, handle, svc_kei_no, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm⸩⸩"]
  N146 --> N147
  N148["if: ⸨isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩⸩"]
  N147 --> N148
  N149["else: "]
  N148 --> N149
  N150["else: "]
  N149 --> N150
  N151["if: ⸨!isTajgsTelNo⸨handle, param, ⸨String⸩eKK0191A010Hash.get⸨EKK0191A010CBSMsg1List.TELNO⸩⸩
						＆＆ isMonaiBmp⸨handle, pa..."]
  N150 --> N151
  N152["if: ⸨telOpUm⸩"]
  N151 --> N152
  N153["if: ⸨no050Um⸩"]
  N152 --> N153
  N154["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨this.svc_kei_stat⸩⸩"]
  N153 --> N154
  N155["if: ⸨isFirstAproach⸩"]
  N154 --> N155
  N156["return: param"]
  N155 --> N156
```

#### 7. 関連SC (10件)

- `callEKK0351B002SC`
- `callEKK0351A010SC`
- `callEKK0341B008SC`
- `callEKK0091A010_SC`
- `callEKK0361A010SC`
- `callEKK0161A010SC`
- `callEKK0341B002SC`
- `callEKK1081B001SC`
- `callEKK0191A010SC`
- `callEKK0341B008_02SC`

- **Category**: Other
- **LOC**: 1702


---

### newEoMobile()

#### 呼出元 (Reverse Call Tree) — 3 direct callers

```
newEoMobile() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
└── newKeiOdrCtrl()
    ├── hakkoSOD()
    └── adchgFixOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite newEoMobile(SessionHandle handle, IRequestParameterReadWrite param)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

モバイルサービス新規契約処理    (1)料金グループが「ｅｏモバイル（ＥＭ）」または「ｅｏモバイル（ＵＱ－ＷｉＭＡＸ）」の場合(2)(3)、それ以外の場合は(3)の処理を行う。  (2)料金グループが「ｅｏモバイル（ＥＭ）」または「ｅｏモバイル（ＵＱ－ＷｉＭＡＸ）」の場合  (2_1)Eメールの新規登録を行う。  (2_2)URLが設定されている場合、Myホームページ情報の新規登録を行う。  (2_3)メーリングリストのオプションが存在する場合、メーリングリストの新規登録を行う。    (3)料金グループが「ｅｏモバイル（ＵＱ－ＷｉＭＡＸ）」の場合(4)(5)、それ以外の場合は(5)の処理を行う。  (4)料金グループが「ｅｏモバイル（ＵＱ－ＷｉＭＡＸ）」の場合  (4_1)機器提供サービス契約一覧照会（サービス契約番号）を行う。  (4_2)機器提供サービス契約が存在する場合、UQ WIMAXの新規登録を行う。    (5)同一SYSIDで他のWi-Fiスポットがない場合(6)、ある場合は(7)の処理を行う。  (6)Wi-Fiスポットの新規登録を行う。  (7)Wi-Fiスポットの変更を行う。

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨JKKHakkoSODConstCC.PRC_GRP_CD_MOB_EM.equals⸨prc_grp_cd⸩ || JKKHakkoSODConstCC.PRC_GRP_CD_MOB_UQ.equals⸨prc_grp_cd⸩
			..."]
  N1["if: ⸨eml_flg⸩"]
  N0 --> N1
  N2["if: ⸨url_flg⸩"]
  N1 --> N2
  N3["if: ⸨mlist_flg⸩"]
  N2 --> N3
  N4["if: ⸨eml_flg ＆＆ alias_flg⸩"]
  N3 --> N4
  N5["if: ⸨eml_flg ＆＆ mlcapa_flg_list.size⸨⸩ > 0⸩"]
  N4 --> N5
  N6["if: ⸨eml_flg ＆＆ mlvirus_flg⸩"]
  N5 --> N6
  N7["if: ⸨url_flg ＆＆ hpcapa_flg⸩"]
  N6 --> N7
  N8["if: ⸨url_flg ＆＆ hpaccess_flg⸩"]
  N7 --> N8
  N9["if: ⸨JKKHakkoSODConstCC.PRC_GRP_CD_MOB_UQ.equals⸨prc_grp_cd⸩⸩"]
  N8 --> N9
  N10["if: ⸨JKKHakkoSODConstCC.PCRS_CD_UQWIMAX_B.equals⸨pcrs_cd⸩⸩"]
  N9 --> N10
  N11["if: ⸨!isBlank⸨kktk_svc_kei_no⟦index_cui⟧⸩⸩"]
  N10 --> N11
  N12["if: ⸨null == kk1081List || 1 > kk1081List.size⸨⸩⸩"]
  N11 --> N12
  N13["else: "]
  N12 --> N13
  N14["if: ⸨!JKKHakkoSODConstCC.PRC_GRP_CD_MAIL.equals⸨prc_grp_cd⸩⸩"]
  N13 --> N14
  N15["if: ⸨wifi_flg⸩"]
  N14 --> N15
  N16["else: "]
  N15 --> N16
  N17["return: param"]
  N16 --> N17
```

#### 7. 関連SC (1件)

- `callEKK1081B001SC`

- **Category**: Other
- **LOC**: 106


---

### opHktgiOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 1 direct callers

```
opHktgiOdrCtrl() ← gọi bởi:
└── hakkoSOD()    [trực tiếp]
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite opHktgiOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, String fixedText, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

オプション引継オーダ制御処理

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨dataList.size⸨⸩ > 1⸩"]
  N1["if: ⸨!isBlank⸨chbf_opsvkei_no⸩ ＆＆ !isBlank⸨chbf_opsvkei_gene_add_dtm⸩⸩"]
  N0 --> N1
  N2["if: ⸨0 != statusCode⸩"]
  N1 --> N2
  N3["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N2 --> N3
  N4["if: ⸨!isBlank⸨chaf_opsvkei_no⸩ ＆＆ !isBlank⸨chaf_opsvkei_gene_add_dtm⸩⸩"]
  N3 --> N4
  N5["if: ⸨0 != statusCode⸩"]
  N4 --> N5
  N6["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N5 --> N6
  N7["if: ⸨!isBlank⸨chaf_sbopsvkei_no⸩⸩"]
  N6 --> N7
  N8["if: ⸨!isBlank⸨chaf_sbopsvkei_gene_add_dtm⸩⸩"]
  N7 --> N8
  N9["else: "]
  N8 --> N9
  N10["if: ⸨0 != statusCode⸩"]
  N9 --> N10
  N11["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N10 --> N11
  N12["if: ⸨chbfEKK0351A010SCHash != null⸩"]
  N11 --> N12
  N13["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.equals⸨opSvcKeiStat⸩ ＆＆ JKKHakkoSODConstCC.OP_SVC_CD_FIXIPAD.equals⸨opSvcCd⸩⸩"]
  N12 --> N13
  N14["if: ⸨opHktgiHukusuFlg ＆＆ isBlank⸨this.same_trn_no⸩⸩"]
  N13 --> N14
  N15["if: ⸨0 != statusCode⸩"]
  N14 --> N15
  N16["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N15 --> N16
  N17["if: ⸨chafEKK0351A010SCHash != null⸩"]
  N16 --> N17
  N18["if: ⸨opHktgiHukusuFlg ＆＆ isBlank⸨this.same_trn_no⸩⸩"]
  N17 --> N18
  N19["if: ⸨null == chafEKK0401A010SCHash⸩"]
  N18 --> N19
  N20["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_020.compareTo⸨sakiOpSvcKeiStat⸩ <= 0⸩"]
  N19 --> N20
  N21["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_EMAIL.equals⸨opSvcCd⸩⸩"]
  N20 --> N21
  N22["if: ⸨0 != statusCode⸩"]
  N21 --> N22
  N23["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N22 --> N23
  N24["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_HP.equals⸨opSvcCd⸩⸩"]
  N23 --> N24
  N25["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_MLIST.equals⸨opSvcCd⸩⸩"]
  N24 --> N25
  N26["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_FIXIPAD.equals⸨opSvcCd⸩⸩"]
  N25 --> N26
  N27["if: ⸨0 != statusCode⸩"]
  N26 --> N27
  N28["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N27 --> N28
  N29["else: "]
  N28 --> N29
  N30["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_020.compareTo⸨sbopSvcKeiStat⸩ <= 0⸩"]
  N29 --> N30
  N31["if: ⸨JKKHakkoSODConstCC.SBOP_SVC_CD_VIRUS.equals⸨sbopSvcCd⸩⸩"]
  N30 --> N31
  N32["if: ⸨0 != statusCode⸩"]
  N31 --> N32
  N33["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N32 --> N33
  N34["return: param"]
  N33 --> N34
```

#### 7. 関連SC (4件)

- `callEKK0351A010SC`
- `callEKK0401A010SC`
- `callEKK0161B004SC`
- `callEKK0361A010SC`

- **Category**: Other
- **LOC**: 378


---

### pauseUkOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 3 direct callers

```
pauseUkOdrCtrl() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
├── htelNoKaihkOdrCtrl()
│   └── hakkoSOD()
└── kaihkOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite pauseUkOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

休止受付オーダ制御処理

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨this.svc_kei_stat⸩ ＆＆
			operateDate.compareTo⸨this.svc_pause_ymd⸩ >= 0 ＆＆
..."]
  N1["else-if: ⸨!JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨this.svc_kei_stat⸩ ＆＆
				operateDate.equals⸨this.svc_pause_rls_ymd⸩ ＆＆
	..."]
  N0 --> N1
  N2["else: "]
  N1 --> N2
  N3["return: param"]
  N2 --> N3
  N4["if: ⸨!JKKHakkoSODConstCC.IDO_DIV_KAIHK.equals⸨ido_div⸩ ＆＆
			!JKKHakkoSODConstCC.IDO_DIV_HTELNOKAIHK.equals⸨ido_div⸩⸩"]
  N3 --> N4
  N5["if: ⸨JKKHakkoSODConstCC.SVC_KIND_NET.equals⸨svc_kind⸩⸩"]
  N4 --> N5
  N6["if: ⸨isMansionPrvate⸨⸩⸩"]
  N5 --> N6
  N7["return: param"]
  N6 --> N7
  N8["if: ⸨!isUcwkStatCheck⸨handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm⸩⸩"]
  N7 --> N8
  N9["return: param"]
  N8 --> N9
  N10["if: ⸨0 != statusCode⸩"]
  N9 --> N10
  N11["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N10 --> N11
  N12["for: "]
  N11 --> N12
  N13["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_FIXIPAD.equals⸨op_svc_cd⸩⸩"]
  N12 --> N13
  N14["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.compareTo⸨op_svc_kei_stat⸩ > 0⸩"]
  N13 --> N14
  N15["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_MLTISE.equals⸨op_svc_cd⸩⸩"]
  N14 --> N15
  N16["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨op_svc_kei_stat⸩⸩"]
  N15 --> N16
  N17["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_DUP.equals⸨op_svc_cd⸩⸩"]
  N16 --> N17
  N18["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_210.equals⸨op_svc_kei_stat⸩⸩"]
  N17 --> N18
  N19["if: ⸨fmtcel_flg || ⸨fixipad_flg ＆＆ mltise_flg⸩ || dial_flg⸩"]
  N18 --> N19
  N20["else: "]
  N19 --> N20
  N21["if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_STA.equals⸨pauseSbt⸩⸩"]
  N20 --> N21
  N22["else-if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_END.equals⸨pauseSbt⸩⸩"]
  N21 --> N22
  N23["if: ⸨fixipad_flg ＆＆ mltise_flg⸩"]
  N22 --> N23
  N24["if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_END.equals⸨pauseSbt⸩⸩"]
  N23 --> N24
  N25["if: ⸨dial_flg⸩"]
  N24 --> N25
  N26["if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_END.equals⸨pauseSbt⸩⸩"]
  N25 --> N26
  N27["else-if: ⸨JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩⸩"]
  N26 --> N27
  N28["if: ⸨!isUcwkStatCheck⸨handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm⸩⸩"]
  N27 --> N28
  N29["return: param"]
  N28 --> N29
  N30["if: ⸨0 != statusCode⸩"]
  N29 --> N30
  N31["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N30 --> N31
  N32["if: ⸨!JKKHakkoSODConstCC.IDO_DIV_KAIHK.equals⸨ido_div⸩ ＆＆
				!JKKHakkoSODConstCC.IDO_DIV_HTELNOKAIHK.equals⸨ido_div⸩⸩"]
  N31 --> N32
  N33["else: "]
  N32 --> N33
  N34["if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_STA.equals⸨pauseSbt⸩⸩"]
  N33 --> N34
  N35["else: "]
  N34 --> N35
  N36["if: ⸨JKKItntokiStaEndConstCC.ITNTOKI_STA_END_JUDGE_CD_PAUSE_STA.equals⸨itntokiStaEndJudgeCd⸩
				|| JKKItntokiStaEndConstCC..."]
  N35 --> N36
  N37["if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_STA.equals⸨pauseSbt⸩⸩"]
  N36 --> N37
  N38["else-if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_END.equals⸨pauseSbt⸩⸩"]
  N37 --> N38
  N39["if: ⸨isTelnoSODJudge⸨handle, param, svc_kei_ucwk_no, chaf_svc_kei_ucwk_gene_add_dtm, null, TELNO_JUDGE_001⸩⸩"]
  N38 --> N39
  N40["else: "]
  N39 --> N40
  N41["if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_STA.equals⸨pauseSbt⸩⸩"]
  N40 --> N41
  N42["else-if: ⸨JKKHakkoSODConstCC.PAUSE_SBT_PAUSE_END.equals⸨pauseSbt⸩⸩"]
  N41 --> N42
  N43["return: param"]
  N42 --> N43
```

#### 7. 関連SC (2件)

- `callEKK0351B010SC`
- `callEKK0191A010SC`

- **Category**: Other
- **LOC**: 450


---

### stpRlsOdrCtrl()

#### 呼出元 (Reverse Call Tree) — 2 direct callers

```
stpRlsOdrCtrl() ← gọi bởi:
├── hakkoSOD()    [trực tiếp]
└── useStpRlsOdrCtrl()
    └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite stpRlsOdrCtrl(SessionHandle handle, IRequestParameterReadWrite param, HashMap<String, Object> sodMap)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

中断解除オーダ制御処理

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨JKKHakkoSODConstCC.SVC_KIND_NET.equals⸨svc_kind⸩ ||
				JKKHakkoSODConstCC.PCRS_CD_ADSL_FURETTSU.equals⸨pcrs_cd⸩⸩"]
  N1["if: ⸨isMansionPrvate⸨⸩⸩"]
  N0 --> N1
  N2["return: param"]
  N1 --> N2
  N3["if: ⸨0 != statusCode⸩"]
  N2 --> N3
  N4["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N3 --> N4
  N5["for: "]
  N4 --> N5
  N6["if: ⸨JKKBpCommon.isNull⸨svcKeiUcwkNo⸩ || !svc_kei_ucwk_no.equals⸨svcKeiUcwkNo⸩⸩"]
  N5 --> N6
  N7["if: ⸨isStartRsvOption⸨param, handle, JKKHakkoSODConstCC.FUNC_CODE_1, op_svc_kei_no⸩⸩"]
  N6 --> N7
  N8["if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_DUP.equals⸨op_svc_cd⸩⸩"]
  N7 --> N8
  N9["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩⸩"]
  N8 --> N9
  N10["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_FIXIPAD.equals⸨op_svc_cd⸩⸩"]
  N9 --> N10
  N11["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_910.compareTo⸨op_svc_kei_stat⸩ > 0⸩"]
  N10 --> N11
  N12["else-if: ⸨JKKHakkoSODConstCC.OP_SVC_CD_MLTISE.equals⸨op_svc_cd⸩⸩"]
  N11 --> N12
  N13["if: ⸨JKKHakkoSODConstCC.SVC_KEI_STAT_100.equals⸨op_svc_kei_stat⸩
					  || JKKHakkoSODConstCC.SVC_KEI_STAT_030.equals⸨op_sv..."]
  N12 --> N13
  N14["if: ⸨dial_flg || fmtcel_flg || ⸨fixipad_flg ＆＆ mltise_flg⸩⸩"]
  N13 --> N14
  N15["else: "]
  N14 --> N15
  N16["if: ⸨dial_flg⸩"]
  N15 --> N16
  N17["if: ⸨fixipad_flg ＆＆ mltise_flg⸩"]
  N16 --> N17
  N18["else-if: ⸨JKKHakkoSODConstCC.SVC_KIND_MOB.equals⸨svc_kind⸩⸩"]
  N17 --> N18
  N19["if: ⸨JKKHakkoSODConstCC.PCRS_CD_WIFISPOT.equals⸨pcrs_cd⸩⸩"]
  N18 --> N19
  N20["else-if: ⸨chgSvcKeiJdg⸨svc_kei_no⸩⸩"]
  N19 --> N20
  N21["if: ⸨null != svc_kei_ucwk_no ＆＆ 0 < svc_kei_ucwk_no.length⸨⸩⸩"]
  N20 --> N21
  N22["if: ⸨0 != statusCode⸩"]
  N21 --> N22
  N23["throw: new CCException⸨'', new SCCallException⸨'', String.valueOf⸨statusCode⸩, statusCode⸩⸩"]
  N22 --> N23
  N24["if: ⸨null != eKK0161A010Hash⸩"]
  N23 --> N24
  N25["if: ⸨isEmobile⸨⸩⸩"]
  N24 --> N25
  N26["if: ⸨null != saki_svc_kei_no ＆＆ 0 < saki_svc_kei_no.length⸨⸩⸩"]
  N25 --> N26
  N27["if: ⸨JKKHakkoSODConstCC.PCRS_CD_WIMAX.equals⸨ucwkPcrsCd⸩⸩"]
  N26 --> N27
  N28["else-if: ⸨JKKHakkoSODConstCC.PCRS_CD_FREE_WIFI.equals⸨ucwkPcrsCd⸩ || JKKHakkoSODConstCC.PCRS_CD_WIFISPOT.equals⸨ucwkPcrsCd⸩⸩"]
  N27 --> N28
  N29["if: ⸨wifiSpotCnt > 0⸩"]
  N28 --> N29
  N30["else: "]
  N29 --> N30
  N31["if: ⸨!isBlank⸨this.same_trn_no⸩⸩"]
  N30 --> N31
  N32["else-if: ⸨JKKHakkoSODConstCC.SVC_KIND_TEL.equals⸨svc_kind⸩⸩"]
  N31 --> N32
  N33["if: ⸨!JKKHakkoSODConstCC.IDO_DIV_USESTPRLS.equals⸨this.ido_div⸩	//利用停止解除ではない？　または
			||	null == this.syori_div⸩"]
  N32 --> N33
  N34["else: "]
  N33 --> N34
  N35["return: param"]
  N34 --> N35
```

#### 7. 関連SC (2件)

- `callEKK0351B010SC`
- `callEKK0161A010SC`

- **Category**: Other
- **LOC**: 352


---

### tsuikabunAddSOD()

#### 呼出元 (Reverse Call Tree) — 19 direct callers

```
tsuikabunAddSOD() ← gọi bởi:
├── adchgFixOdrCtrl()    [trực tiếp]
├── addIpv6SODAft()    [trực tiếp]
├── cnclOdrCtrl()    [trực tiếp]
├── courseChgeOdrCtrl()    [trực tiếp]
├── dslOdrCtrl()    [trực tiếp]
├── hakkoSOD()    [trực tiếp]
├── htelNoDslOdrCtrl()    [trực tiếp]
├── htelNoInfoChgeOdrCtrl()    [trực tiếp]
├── htelNoKaihkOdrCtrl()    [trực tiếp]
├── idpwShkkaSaifuriOdrCtrl()    [trực tiếp]
├── jdgIpv6()    [trực tiếp]
├── jdgIpv6EKK0361A010()    [trực tiếp]
├── ksiDslFixOdrCtrl()    [trực tiếp]
├── ksiDslOdrCtrl()    [trực tiếp]
├── hakkouIpv6()
│   ├── addIpv6SODAft()
│   ├── cnclOdrCtrl()
│   ├── dslOdrCtrl()
│   ├── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   ├── htelNoInfoChgeOdrCtrl()
│   ├── htelNoKaihkOdrCtrl()
│   ├── jdgIpv6EKK0361A010()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── newKeiOdrCtrl()
│   ├── opSetOdrCtrl()
│   └── jdgIpv6()
│       ├── adchgFixOdrCtrl()
│       ├── addIpv6SODAft()
│       ├── cnclOdrCtrl()
│       ├── dslOdrCtrl()
│       ├── hakkoSOD()
│       ├── htelNoDslOdrCtrl()
│       ├── htelNoInfoChgeOdrCtrl()
│       ├── htelNoKaihkOdrCtrl()
│       ├── kaihkOdrCtrl()
│       ├── ksiDslFixOdrCtrl()
│       ├── ksiDslOdrCtrl()
│       ├── newKeiOdrCtrl()
│       ├── opSetOdrCtrl()
│       └── jdgIpv6EKK0361A010()
│           ├── adchgFixOdrCtrl()
│           ├── hakkoSOD()
│           ├── kaihkOdrCtrl()
│           ├── newKeiOdrCtrl()
│           └── addIpv6SODAft()
│               ├── adchgFixOdrCtrl()
│               ├── hakkoSOD()
│               └── newKeiOdrCtrl()
├── jdgOdr163()
│   ├── adchgFixOdrCtrl()
│   ├── hakkoSOD()
│   └── courseChgeOdrCtrl()
│       ├── hakkoSOD()
│       └── adchgFixOdrCtrl()
│           └── hakkoSOD()
├── kaihkOdrCtrl()
│   └── hakkoSOD()
├── opSetOdrCtrl()
│   ├── cnclOdrCtrl()
│   ├── hakkoSOD()
│   ├── kaihkOdrCtrl()
│   ├── ksiDslFixOdrCtrl()
│   ├── ksiDslOdrCtrl()
│   ├── dslOdrCtrl()
│   │   ├── hakkoSOD()
│   │   ├── cnclOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   ├── ksiDslFixOdrCtrl()
│   │   │   └── hakkoSOD()
│   │   └── ksiDslOdrCtrl()
│   │       └── hakkoSOD()
│   ├── htelNoDslOdrCtrl()
│   │   └── hakkoSOD()
│   ├── htelNoInfoChgeOdrCtrl()
│   │   └── hakkoSOD()
│   └── htelNoKaihkOdrCtrl()
│       └── hakkoSOD()
└── setChgePWForIPv6()
    ├── hakkoSOD()
    └── idpwShkkaSaifuriOdrCtrl()
        └── hakkoSOD()
```


> **Class:** `com.fujitsu.futurity.bp.custom.common.JKKHakkoSODCC`
> **Method:** `public IRequestParameterReadWrite tsuikabunAddSOD(SessionHandle handle, IRequestParameterReadWrite param, String orderNaiyoCd)`
> **戻り値:** `IRequestParameterReadWrite`

#### 1. 役割

追加分のオーダ発行条件・オーダ情報作成ワーク登録判定・登録処理    渡されたオーダ内容コードから、必要な情報をマッピングして  各オーダテーブルへの登録を行う。    【使用するサービスIF】  ・オーダ発行条件登録  ・オーダ情報作成ワーク登録

#### 2. 処理パターン（制御フロー）

```mermaid
flowchart TD
  N0["if: ⸨null != inMap⸩"]
  N1["if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_163.equals⸨orderNaiyoCd⸩⸩"]
  N0 --> N1
  N2["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_155.equals⸨orderNaiyoCd⸩⸩"]
  N1 --> N2
  N3["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_156.equals⸨orderNaiyoCd⸩⸩"]
  N2 --> N3
  N4["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_158.equals⸨orderNaiyoCd⸩⸩"]
  N3 --> N4
  N5["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_253.equals⸨orderNaiyoCd⸩⸩"]
  N4 --> N5
  N6["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_254.equals⸨orderNaiyoCd⸩⸩"]
  N5 --> N6
  N7["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_301.equals⸨orderNaiyoCd⸩⸩"]
  N6 --> N7
  N8["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_302.equals⸨orderNaiyoCd⸩⸩"]
  N7 --> N8
  N9["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_316.equals⸨orderNaiyoCd⸩⸩"]
  N8 --> N9
  N10["else-if: ⸨JKKHakkoSODConstCC.ODR_NAIYO_CD_317.equals⸨orderNaiyoCd⸩⸩"]
  N9 --> N10
  N11["return: param"]
  N10 --> N11
```

- **Category**: Other
- **LOC**: 374


---

---

## 付録A: CRUD マトリックス (Reference)

