/*********************************************************************
*	All Rights reserved,Copyright (c) K-Opticom
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム
*	モジュール名	：KKSV0080_KKSV0080OPDBMapper
*	ソースファイル名：KKSV0080_KKSV0080OPDBMapper.java
*	作成者			：FJ
*	日付			：2011年06月25日
*＜機能概要＞
*	BP（申込情報登録）へのＤ−Ｂマッピングクラスです。
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/06/25	FJ）土屋    新規作成
*	v3.00.00	2012/05/01	FJ）渡邉    【ANK-0050-00-00】100Mライトコースを追加
*	v4.00.00	2012/07/12	FJ）三浦    【ANK-0400-00-00】同時番ポ希望日のICS自動反映
*	v4.00.00	2012/07/13	FJ）多田    【ANK-0373-00-00】申込断面ﾃﾞｰﾀ
*   v4.00.00    2012/07/13  FJ）谷口    【ANK-0398-00-00】住所管理に伴う「例外登録」の管理追加対応
*   v4.00.00    2012/07/31  FJ）角森    【ANK-0400-00-00】同時番ポ希望日のICS自動反映
*   v4.00.00    2012/07/31  FJ）角森    【ANK-0079-00-00】同時番ポ希望日のICS自動反映
*   v4.00.00    2012/08/06  FJ）北浦    【ANK-0099-00-00】eoモバイルへのeo64移行用料金プラン追加
*   V4.00.00    2012/08/09  FJ) 渡邉    【ANK-0392-00-00】eo光ネット長期継続利用割引契約対応
*   v4.00.00    2012/08/15  FJ）三浦    【ANK-0397-00-00】申込書番号の発番検討における対応
*   v4.00.00    2012/09/10  FJ）岡野    【ANK-0384-00-00】契約者住所を利用場所住所で上書きを行う機能の作成対応
*   V4.00.00    2012/09/12  FJ) 関      【ANK-0519-00-00】マンション親機器対応
*   v4.00.00    2012/09/13  FJ) 渡邉    【ANK-0546-00-00】宅内ＰＦ
*   V4.00.00    2012/09/18  FJ) 山本    【ANK-0382-00-00】機械送付先住所の登録管理
*   V4.00.00    2012/09/26  FJ) 芳澤    【ANK-0522-00-00】番ポ申込時における法人のNTT電話番号の確認対応について
*   V4.00.00    2012/09/27  FJ) 山本    【ANK-0382-00-00】機械送付先住所の登録管理
*   v4.00.00    2012/10/01  FJ）北村    【ANK-0406-00-00】フェムトセル２
*   V4.00.00    2012/10/16  FJ) 松田    【ANK-1199-00-00】申込書明細番号の自動発番について
*	v4.00.00    2012/10/19  FJ）岡野    【ANK-1199-00-00】申込書明細番号の自動発番について
*   v4.00.00    2012/10/25  FJ) 村松    【ANK-1254-00-00】マンション親・子の一時金対応、及びマンション親・基本料金への対応
*   v4.01.00    2012/10/31  FJ）多田    【IT1-2012-0001640】住所手動入力対応
*   v4.02.00    2012/11/02  FJ) 谷口    【ANK-1244-00-00】機器の料金コース追加等について
*   v4.03.00    2012/11/20  FJ) 北浦    【IT1-2012-0002082】ＳＴＢ（２台目以降）不正対応
*   v4.04.00    2012/11/20  FJ) 渡邉    【IT1-2012-0001132】サービス契約内訳の支払い方法継続フラグにはNULLを設定する
*   v4.05.00    2012/11/21  FJ) 谷口    【IT1-2012-0002046】宅内ＰＦ（受付担当者欄追加）
*   v4.06.00    2012/11/22  FJ) 村松    【IT1-2012-0002082】電話のエイジング、電話番号削除処理の見直し（照会時の情報を元に削除）
*   v4.07.00    2012/11/22  FJ) 松田    【IT1-2012-0002135】更新年月日時分秒(更新前)のマッピング修正
*   v4.08.00    2012/11/27  FJ) 渡邉    【IT1-2012-0002080】サービス契約内訳の提供方式契約番号にはNULLを設定する
*   v4.09.00    2012/11/28  FJ）松川    【ANK-1247-00-00】工事依頼情報_連絡事項桁数対応
*   v4.10.00    2012/11/30  FJ）松田    【IT1-2012-0002076】申込画面入力支援ワークに請求契約カナ名_お客様カナ名差異フラグを追加
*   v4.11.00    2012/12/05  FJ) 中山    【IT1-2012-0002234】申込更新時の宅内機器型式コードの変更処理を修正
*   v4.12.00    2012/12/10  FJ) 三浦    【ANK-1392-00-00】課題524-フロントのクレジットデータ更新
*   v4.13.00    2012/12/14  FJ) 中山    【IT2-2012-0001954】割引サービス自動適用CCの呼び出し方を修正
*   v4.14.00	2012/12/18  FJ) 多田    【ST4-2012-0000132】申込情報検索レスポンス対応
*   v4.15.00    2012/12/19  FJ) 薄出    【IT1-2012-0002093】TDIS情報制御コード追加対応
*   v4.16.00    2013/01/11  FJ) 渡邉    【ST2-2013-0000046】100M無線ルーター売り止め対応
*   v4.17.00    2013/01/15  FJ) 三浦    【IT1-2013-0000015】取扱コード重複チェック不審対応
*   v5.00.00    2013/01/17  FJ）松川    【ANK-1355-00-00】必須チェック外し
*   v5.01.00    2013/01/18  FJ) 中山    【ST1-2013-0000146】バリューコードの登録処理の修正
*   v5.02.00    2013/01/24  FJ）薄出    【IT1-2013-0000067】同番移転連絡先電話番号対応
*   v5.03.00    2013/01/25  FJ）谷口    【ANK-1359-00-00】再送信＋地デジ・ＢＳコース対応
*   v5.04.00    2013/01/25  FJ）松田    【KAD-2012-0001108】書面での受付番号の申込イメージの紐付けについて
*   v5.05.00    2013/01/25  FJ) 川島    【KAD-2012-0001108】書面での受付番号の申込イメージの紐付けについて
*   v5.06.00    2013/01/25  FJ) 北浦    【KAD-2012-0001108】書面での受付番号の申込イメージの紐付けについて
*   v5.07.00    2013/01/31  FJ）渡邉    【IT1-2013-0000152】1電話の場合はVAポート番号にnullを設定する
*   v5.08.00    2013/01/30  FJ）中山    【ST1-2013-0000265】マンションコースでeo光テレビのコースがＨＤコース固定になる処理を排除
*   v5.09.00    2013/02/07  FJ）松田    【ST2-2013-0000666】支払方法継続時の項目非表示対応
*   v5.10.00    2013/02/18  FJ）渡邉    【KT1-2013-0000163】モバイル3G(7.2M)ルータタイプの宅内機器型式コード対応
*   v5.11.00    2013/02/14  FJ) 薄出    【IT1-2013-0000294】照査前の機器送付先の更新処理について
*   v5.12.00    2013/02/18  FJ) 中山    【KT1-2013-0000162】新規登録の機器の機器付加情報コードを"000"からNULLに変更
*   v5.13.00    2013/02/22  FJ）谷口    【ANK-1402-00-00】法人のお客様名設定見直し対応
*   v5.14.00    2013/02/26  FJ）渡邉    【ST1-2013-0000253】ケーブルガイド誌のガイド誌送付先名、カナ名、電話番号にはNULLを設定する
*   v5.15.00    2013/02/28  FJ）多田    【IT1-2013-0000337】割引集約対応
*   v5.16.00    2013/03/04  FJ) 渡邉    【IT1-2013-0000341】モバイルコース変更時に回線対象サービス契約の終了日に運用日付を設定する
*   v5.17.00    2013/03/06  FJ) 三浦    【ANK-1421-00-00】IP_STB
*   v5.18.00    2013/03/04  FJ) 中山    【OT-2013-0000296】VDSL機器の持込対応
*   v5.19.00    2013/03/12  FJ) 中山    【ST1-2013-0000474】自動適用キャンペーンの整合性チェックの修正
*   v5.20.00    2013/03/12  FJ) 松田    【IT1-2013-0000425】個人の優先連絡先の連絡先種別を「携帯」にする対応
*   v5.21.00    2013/03/14  FJ) 多田    【IT1-2013-0000428】割引照査済対応
*   v5.22.00    2013/03/18  FJ) 松田    【OT-2013-0000464】法人の場合にも個人NRN番号を登録する対応
*   v5.23.00    2013/04/02  FJ) 川島    【ST2-2013-0001613】マンションの標準工事費が請求されない
*   v5.24.00    2013/04/05  FJ) 松田    【IT1-2013-0000746】VDSL電話単独時の料金確認（同一回線も含む）
*   v5.25.00    2013/04/16  FJ）薄出    【IT1-2013-0000915】子画面でコミットした場合の再審査対応
*   v5.26.00    2013/06/10  FJ）中山    【LT-2013-0000024】異動年月日時分秒をシステム年月日時分秒に修正
*   v5.27.00    2013/07/04  FJ) 中山    【IT2-2013-0000579】割賦契約の更新の修正
*   v5.28.00    2013/09/20  FJ) 中山    【OM-2013-0002412】回線機器複数台対応
*   v5.29.00    2013/09/19  FJ) 川島    【OM-2013-0002328】申込書明細番号の重複チェック対応
*   v5.30.00    2013/09/20  FJ) 中山    【OM-2013-0002313】キューBOXの量販店代理受付対応
*   v5.31.00    2013/09/27  FJ) 川島    【OM-2013-0002702】対応履歴連携のタイトル表示不備
*   v5.33.00    2013/11/18  FJ）中山    【ANK-1670-00-00】番ポにおけるエイジング処理の削除
*   v6.00.00    2013/09/30  FJ) 北浦    【ANK-1583-00-00】 STB提供メニュー拡充(機器追加・価格改定)
*   v6.01.00    2013/10/08  FJ) 高橋    【ANK-1580-00-00】eoスマートリンク改修対応@(複数契約対応・機種追加)
*   v6.02.00    2013/11/14  FJ) 北浦    【IT2-2013-0000775】HDD容量コード、宅内機器型式コード対応
*   v6.03.00    2013/11/26  FJ) 中山    【OM-2013-0004488】住変確定後の工事連携までのサービス追加対応
*   v6.04.00    2013/12/04  FJ) 中山    【OM-2013-0004868】ファミリーパック割引サービス契約再登録時の料金コース・プラン設定もれ対応
*   v6.05.00    2013/12/19  FJ) 中山    【OM-2013-0005251】お客様スキーマの更新で排他エラーの対応
*   v7.00.00    2013/11/08  FJ) 松田    【ANK-1578-00-00】多機能ルーター(機器追加)
*   v7.01.00    2014/01/22  FJ) 松田    【TAI-2014-0000001】多機能ルーター(機器追加)強化試験：割引
*   v7.02.00    2014/02/05  FJ) 川島    【OM-2014-0000541】機器オプションがキャンセルされない
*   v7.03.00    2014/02/01  FJ) 川島    【ANK-1978-00-00】テレビCPの未選択時ワーニング対応
*   v7.04.00    2014/02/05  FJ) 北浦    【ANK-1974-00-00】紹介コード重複チェック対応
*   v7.05.00    2014/02/25  FJ) 中山    【ANK-1983-00-00】法人の請求書送付先名の法人格の編集見直し
*   v7.06.00    2014/02/26  FJ) 北浦    【OM-2014-0000846】エイジング削除処理
*   v8.00.00    2014/03/11  FJ) 松田    【ANK-1962-00-00】関電グループCRMに向けた取り組み対応
*   v8.01.00    2014/03/31  FJ）松田    【OM-2014-0001296】住所CDを緊急通報用住所の転送条件に追加
*   v8.02.00    2014/06/05  FJ）中山    【OM-2014-0002088】eo光電話の２番号目のサービス契約内訳の予約適用年月日の修正
*   v8.03.00    2014/06/05  FJ）中山    【OM-2014-0001930】多機能ルーターのVAポート番号対応
*   v9.00.00    2014/04/14  FJ）中山    【ANK-2056-00-00】光電話セレクトオプションパック
*   v9.00.00    2014/04/21  FJ) 高橋    【ANK-2054-00-00】スマートリンク端末補償
*   v9.01.00    2014/08/05  FJ) 中山    【OM-2014-0002587】多機能ルーターのVAポート番号対応(対応漏れ分)
*   v10.00.00   2014/06/30  FJ) 中山    【ANK-2135-00-00】BSオプションチャンネル「スターチャンネル」とのセット割検討
*   v10.00.00   2014/07/23  FJ) 中山    【ANK-2137-00-00】提携住宅会社用WEB受付画面配置
*   v11.00.00   2014/10/09  FJ）中山    【ANK-2309-00-00】全販売チャンネル同番移転対応
*   v11.01.00   2014/11/28  FJ）川島    【OM-2014-0003751】
*   v16.00.00   2015/07/16  FJ）藤田    【ANK-2480-00-00】新電力対応
*   v20.00.00   2015/11/17  FJ) 澤田    【ANK-2565-00-00】クレジットカード番号預かりサービス導入（step3：預かり番号化
*	v23.00.00	2016/04/14	FJ) 笠川	【ANK-2810-00-00】クレジットカード番号並行保持期間終了に伴うマスク化対応
*	v25.00.00	2016/05/23	FJ) 澤田	【ANK-2679-00-00】eoスタッフ対応
*   v25.01.00	2016/07/12	FJ) 澤田	【ANK-2530-12-00】eo光テレビ新規／サービス追加申込時のWEB申込断面内容の見直し
*	v32.00.00	2017/04/03	 FJ) 笠川	【ANK-3149-00-00】新セキュリティパック導入
*	v32.01.00	2017/06/05  FJ) 笠川    【IT1-2017-0000078】新セキュリティパック導入(進捗再対応)
*	v32.02.00	2017/06/14	FJ) 笠川	【IT1-2017-0000083】セキュリティパック(フィールド宣言訂正)
*	v32.03.00	2017/07/01  FJ) 澤田    【OM-2017-0000692】照査画面でネットを追加し、プレミアムパックを申込したら割引が付与されない
*	v32.04.00	2017/08/01	FJ) 三原	【OM-2017-0000813】Eメールのウイルスチェックが「キャンセル済」で登録される
*   v35.00.00   2017/10/17  FJ)澤田	    【ANK-3243-00-00】社内利用回線の会計処理業務変更に伴う改修
*	v34.00.00	2017/10/12	FJ) 岡村	【ANK-3210-00-00】新電力 STEP3
*   v31.00.00   2017/11/30  FJ) 麻生    【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*	v36.00.00	2018/01/24	FJ) 三原	【ANK-3296-00-00】標準工事費分割請求
*	v36.01.00	2018/02/10	FJ) 三原	【IT1-2018-0000018】標準工事費分割請求
*	v36.02.00	2018/03/02	FJ) 麻生	【ANK-3362-00-00】申込書による申込時の申込断面データ作成
*   v37.00.00   2018/06/14  FJ) 澤田    【IT1-2018-0000086】工事費割賦請求STEP2 照査画面で自治体ＣＰを付与をしたら 相当額ＣＰが解約されない。
*   v31.00.01   2018/07/08  FJ) 三原    【ANK-3136-00-00】OPMSハードウエア保守切れ対応(STEP2-2)
*   v31.00.02   2018/08/03  FJ) 三原    【IT1-2018-0000114】新規申込・照査前登録で登録した機器が消える
*   v39.00.00   2018/09/06  FJ) 中原    【ANK-3488-00-00】４KSTB（ACASチップ）導入対応
*   v39.00.01   2018/09/26  FJ) 三原    【ANK-3484-00-00】端末補償サービス導入対応
*   v39.00.01   2018/10/16  FJ) 中原    【IT1-2018-0000159】４ＫSTBから従来STBに変更した場合にBCASが登録されない
*   v40.00.00   2018/11/16  FJ) 三原    【ANK-3412-00-00】５ギガ・１０ギガコース導入対応
*   v40.00.00	2018/11/16  FJ) 澤田    【ANK-3412-05-00】高速割対応
*   v41.00.00   2019/01/18  FJ) 王      【ANK-3529-00-00】無線LAN中継器レンタルサービス開始対応
*   v46.00.00   2019/07/17  FJ) 岡井    【ANK-3665-00-00】携帯電話番号の取得率向上対応
*   v45.00.00   2019/06/27  FJ) 三原    【ANK-3636-00-00】消費増税対応（8%⇒10%）
*   v50.00.00   2020/06/15  FJ) 鈴木    【ANK-3825-00-00】メッシュWiFi導入対応
*   v50.00.01	2020/06/22  FJ) 西窪    【ANK-3754-00-00】トビラフォン対応
*   v51.00.00	2020/09/03	FJ) 西窪	【ANK-3885-00-00】光化マンションの自動設計対応
*   v51.00.01	2020/11/07  FJ）星野	【ANK-3921-00-00】請求書発行要否のデフォルト値変更
*   v52.00.00	2021/01/06	FJ) 西窪	【ANK-3987-00-00】Netflix導入対応（STEP2）
 *  v52.00.01	2021/01/11  GDC) ニール 【ANK-3910-00-00】定額サービスリース品追加対応
*   v52.00.02	2021/02/04	FJ) 西窪	【IT1-2021-0000010】ストリーミングメディアプレーヤー料金プランコード変更対応
*	v52.01.00	2021/02/12	FJ) 中原	【ANK-3991-00-00】STB新機種追加(2021年4月〜)
*   v52.02.00	2021/03/08  FJ）星野	【OM-2021-0000148】
*   v53.00.00	2021/04/05	FJ) 平野	【ANK-3951-00-00】「競争ルールの検証に関するWG」に関するシステム対応
*   v54.00.00   2021/07/05  GDC)M. Gungog   【ANK-4092-00-00】CX戦略WG方針対応（コンテンツタブ）
*   v55.00.00	2021/08/19	FJ) 平野	【ANK-4096-00-00】宅調宅工同時実施のための聞取り強化対応
*   v57.00.00	2022/01/13	FJ) 平野	【ANK-4075-00-00】マンション卸回線(WI-FIスキーム)の不備対応
*   v57.00.01	2021/02/04	FJ) 吉村	【ANK-4088-00-00】宅内調査の日程調整業務における省人化施策(Step2)
*   v60.00.00	2022/06/06	FJ) 平野	【ANK-4244-00-00】_【eo定期】MT既設賃貸対応
*   v62.00.00	2022/09/29	FJ) 原		【ANK-4318-00-00】申込新規登録画面の成人年齢チェック条件変更対応
*   v63.00.00	2022/11/25	FJ) 小竹	【ANK-4294-00-00】紹介CPの仕組み変更対応
*   v61.00.00	2023/03/28	FJ) 北川	【ANK-4315-00-00】_【eo定期】eo光ホームゲートウェイ導入対応
*   v68.00.00	2023/10/27	FJ) 吉川	【ANK-4416-00-00】紹介コード、提携先企業向けエントリーコード同時入力対応
*   v71.00.00	2024/03/05	FJ) 新井	【ANK-4468-00-00】eo光ネット「シンプルプラン」追加対応
*   v71.00.00	2023/04/10	FJ) アラ	【ANK-4543-00-00】NTT卸対応：Step0
*   v71.00.04	2024/05/28	FJ) 福島	【ANK-4468-04-00】eo光ネット「シンプルプラン」追加対応 仕変4
*   v72.00.00	2024/05/27	FJ) 寺田	【ANK-4494-00-00】【eo定期】 双方向番ポ対応
*   v71.00.11	2024/06/12	FJ) 福島	【ANK-4468-11-00】eo光ネット「シンプルプラン」追加対応 仕変11
*   v73.00.00	2024/10/15	FJ) 舘山	【ANK-4427-00-00】NNT卸対応
*   v74.00.00	2024/11/27	FJ) 森下	【ANK-4592-00-00】テレビ新コース（スカパー用）導入対応）
*   v75.00.00	2025/02/19	FJ) 寺田	【ANK-4640-00-00】typeN：追加要件対応
**********************************************************************/
package eo.web.webview.mapping;

import static eo.web.webview.common.JKKKeiNewCmnLogicUtil.*;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import com.fujitsu.futurity.model.common.JCMAPLConstMgr;
import com.fujitsu.futurity.web.x31.X31CWebConst;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccess;
import com.fujitsu.futurity.web.x31.X31SDataBeanAccessArray;

import eo.common.constant.JFUStrConst;
import eo.common.constant.JKKStrConst;
import eo.common.constant.JPCModelConstant;
import eo.common.constant.JTUStrConst;
import eo.common.util.JKKCommonUtil;
import eo.common.util.JKKStringUtil;
import eo.web.webview.JCCWebBusinessLogic;
import eo.web.webview.CommonInfoCF.CommonInfoCFConst;
import eo.web.webview.KKW00101SF.KKW00101SFConst;
import eo.web.webview.common.JCKCommonConst;
import eo.web.webview.common.JKKCommonConst;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil;
import eo.web.webview.common.JKKWebCommon;
import eo.web.webview.common.JKKKeiNewCmnLogicUtil.WRIB_TYPE;

/**
 * DataBean-BPマッピングをする。
 * <BR>
 * @author 富士通
 */
public class KKSV0080_KKSV0080OPDBMapper
{
	/** 対応履歴（電話申込用）　対応記録内訳カテゴリーレベル */
	private static final String[] TORK_CTGR_LV_MSKM_TEL = new String[] {
		TORK_TAIOKRK_UW_CTGR_LV1,
		TORK_TAIOKRK_UW_CTGR_LV2
	};
	/** 対応履歴（電話申込用）　対応記録内訳カテゴリー名 */
	private static final String[] COPE_HISTORY_CTGR_NM_MSKM_TEL = new String[] {
		TIOKR_UW_CTGR_INFO,
		TIOKR_UW_CTGR_MI_KNYSHA
	};

	/** eo光電話の更新、キャンセルのマッピングで使用する項目定数 */
	private static final String [][] TEL_ITEM_NAMES = {
		{
		KKW00101SFConst.H_TEL1_BMP_TELNO, KKW00101SFConst.H_TEL1_KOPT_TELNO, KKW00101SFConst.TEL1_AD_SEARCH, KKW00101SFConst.TEL1_BMP_TELNO,
		KKW00101SFConst.TEL1_BMP_USE_PLC, KKW00101SFConst.TEL1_EXCEPTION_INPUT, KKW00101SFConst.TEL1_HOJIN_TELNO_EXIST_FLG,
		KKW00101SFConst.TEL1_HTB_TCHI_UM, KKW00101SFConst.TEL1_KEI_MSKMSHA_SAME,
		KKW00101SFConst.TEL1_KEISHA_INFO_INPUT_HOJO, KKW00101SFConst.TEL1_KOPT_TELNO, KKW00101SFConst.TEL1_KOPT_TELNO_HASHIN,
// ANK-4494-00-00 DEL START
//		KKW00101SFConst.TEL1_NTT_DOBANMOVE_ADD_JOKYO, KKW00101SFConst.TEL1_NTT_DOBANMOVE_ADD_JOKYO_HJ, KKW00101SFConst.TEL1_NTT_DOBANMOVE_KH_CHOSA_REQ,
// ANK-4494-00-00 DEL END
		KKW00101SFConst.TEL1_NTT_DOBANMOVE_NTT_KH_CSKK, KKW00101SFConst.TEL1_NTT_DOBANMOVE_NTT_KH_CSKK_HJ, KKW00101SFConst.TEL1_NTT_KEISHA_ADRRM,
		KKW00101SFConst.TEL1_NTT_KEISHA_ADRTTM, KKW00101SFConst.TEL1_NTT_KEISHA_AZCHO_NM, KKW00101SFConst.TEL1_NTT_KEISHA_BNCHIGO,
		KKW00101SFConst.TEL1_NTT_KEISHA_CITY_NM, KKW00101SFConst.TEL1_NTT_KEISHA_KANA, KKW00101SFConst.TEL1_NTT_KEISHA_NM,
		KKW00101SFConst.TEL1_NTT_KEISHA_OAZTSU_NM, KKW00101SFConst.TEL1_NTT_KEISHA_PCD_AF, KKW00101SFConst.TEL1_NTT_KEISHA_PCD_BF,
		KKW00101SFConst.TEL1_NTT_KEISHA_STATE_NM, KKW00101SFConst.TEL1_NTT_PLACE_AD_CD, KKW00101SFConst.TEL1_OPT_HTB_TCHI,
		KKW00101SFConst.TEL1_OPT_HTCHI_KYOHI, KKW00101SFConst.TEL1_TELNO_KIND,
		KKW00101SFConst.TEL1_TSJGS_LIST, KKW00101SFConst.TSJGS_CD1_13, KKW00101SFConst.TSJGS_CD1_LIST_13, KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG,
		KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG, KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG
		}, {
		KKW00101SFConst.H_TEL2_BMP_TELNO, KKW00101SFConst.H_TEL2_KOPT_TELNO, KKW00101SFConst.TEL2_AD_SEARCH, KKW00101SFConst.TEL2_BMP_TELNO,
		KKW00101SFConst.TEL2_BMP_USE_PLC, KKW00101SFConst.TEL2_EXCEPTION_INPUT, KKW00101SFConst.TEL2_HOJIN_TELNO_EXIST_FLG,
		KKW00101SFConst.TEL2_HTB_TCHI_UM, KKW00101SFConst.TEL2_KEI_MSKMSHA_SAME,
		KKW00101SFConst.TEL2_KEISHA_INFO_INPUT_HOJO, KKW00101SFConst.TEL2_KOPT_TELNO, KKW00101SFConst.TEL2_KOPT_TELNO_HASHIN,
// ANK-4494-00-00 DEL START
//		KKW00101SFConst.TEL2_NTT_DOBANMOVE_ADD_JOKYO, KKW00101SFConst.TEL2_NTT_DOBANMOVE_ADD_JOKYO_HJ, KKW00101SFConst.TEL2_NTT_DOBANMOVE_KH_CHOSA_REQ,
// ANK-4494-00-00 DEL END
		KKW00101SFConst.TEL2_NTT_DOBANMOVE_NTT_KH_CSKK, KKW00101SFConst.TEL2_NTT_DOBANMOVE_NTT_KH_CSKK_HJ, KKW00101SFConst.TEL2_NTT_KEISHA_ADRRM,
		KKW00101SFConst.TEL2_NTT_KEISHA_ADRTTM, KKW00101SFConst.TEL2_NTT_KEISHA_AZCHO_NM, KKW00101SFConst.TEL2_NTT_KEISHA_BNCHIGO,
		KKW00101SFConst.TEL2_NTT_KEISHA_CITY_NM, KKW00101SFConst.TEL2_NTT_KEISHA_KANA, KKW00101SFConst.TEL2_NTT_KEISHA_NM,
		KKW00101SFConst.TEL2_NTT_KEISHA_OAZTSU_NM, KKW00101SFConst.TEL2_NTT_KEISHA_PCD_AF, KKW00101SFConst.TEL2_NTT_KEISHA_PCD_BF,
		KKW00101SFConst.TEL2_NTT_KEISHA_STATE_NM, KKW00101SFConst.TEL2_NTT_PLACE_AD_CD, KKW00101SFConst.TEL2_OPT_HTB_TCHI,
		KKW00101SFConst.TEL2_OPT_HTCHI_KYOHI, KKW00101SFConst.TEL2_TELNO_KIND,
		KKW00101SFConst.TEL2_TSJGS_LIST, KKW00101SFConst.TSJGS_CD2_14, KKW00101SFConst.TSJGS_CD2_LIST_14, KKW00101SFConst.TEL2_DOBANMOVE_CL_FLG,
		KKW00101SFConst.TEL2_DOBANMOVE_ADD_FLG, KKW00101SFConst.TEL2_DOBANMOVE_UPD_FLG
		}
	};

	/** 内部制御用更新ステータス (キャンセル) */
	private static final int IS_CANCEL    = 0;
	/** 内部制御用更新ステータス (登録) */
	private static final int IS_ADD       = 1;
	/** 内部制御用更新ステータス (更新) */
	private static final int IS_UPDATE    = 2;
	/** 内部制御用更新ステータス (電話番ポ情報追加) */
	private static final int IS_PLUS_BMP  = 3;
	/** 内部制御用更新ステータス (電話番ポ情報クリア) */
	private static final int IS_MINUS_BMP = 4;
	
	/** モバイルコース：変更なし */
	private static final String MOBILE_COURSE_NO_CHANGE = "0";
	/** モバイルコース：変更あり */
	private static final String MOBILE_COURSE_CHANGE = "1";
	
	//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 add start ++++++++++++++++ //
	/** コード種別 進捗ステータス(支払方法チェックＯＫ） **/
	public static final String CD00647_PAYWAY_CRECARD_OK = "0800";
	//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 add end ++++++++++++++++ //
	
    //IT1-2017-0000083 ADD START
	/** 登録解約コード：登録 */
	private static final String ADD_DSL_CD_ADD = "1";
	/** 登録解約コード：解約 */
	private static final String ADD_DSL_CD_DSL = "2";
    //IT1-2017-0000083 ADD END
	
	// ANK-3296-00-00 ADD START
	/** 割賦請求済回数 初期値 */
	private static final String KAP_SEIKY_ZUMI_CNT_SHKV = "0";
	/** 割賦請求済金額 初期値 */
	private static final String KAP_SEIKY_ZUMI_AMNT_SHKV = "0";
	/** 工事費割賦契約情報処理モード：１（登録） */
	public static String KJHI_KAP_KEI_ADD = "1";
	/** 工事費割賦契約情報処理モード：２（更新（変更有）） */
	public static String KJHI_KAP_KEI_CHG_UPD = "2";
	/** 工事費割賦契約情報処理モード：３（更新（変更無）） */
	public static String KJHI_KAP_KEI_UPD = "3";
	/** 工事費割賦契約情報処理モード：４（キャンセル） */
	public static String KJHI_KAP_KEI_CANCEL = "4";
	/** 工事費割賦契約情報処理モード：５（無効） */
	public static String KJHI_KAP_KEI_MK = "5";
	/** 工事費割賦契約情報処理モード：９９　登録キャンセル */
	public static String KJHI_KAP_KEI_ADD_CANCEL = "99";
	// ANK-3296-00-00 ADD END
	// ANK-3362-00-00 ADD START
	/** 申込形態 */
	private String mskmForm = "";
	// ANK-3362-00-00 ADD END

	
	/**
	 * コンストラクタ
	 */
	public KKSV0080_KKSV0080OPDBMapper()
	{
	}

	/**
	 * 上りマッピングをする
	 * @param viewLogic         ビューロジック
	 * @param outputMap         出力先マップ
	 * @param func_code         機能コード
	 * @param mode              "1":承認、"2":登録、"3"：本申込
	 * @param opeDateTimeStamp  運用日付時分秒(ミリ秒)
	 * @param mskmFlagMap       申込フラグマップ
	 * @return                  出力先マップ
	 * @throws Exception        業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008003CC(
			JCCWebBusinessLogic viewLogic,
			HashMap outputMap,
			String func_code,
			String mode,
			String opeDateTimeStamp,
			HashMap mskmFlagMap) throws Exception
	{

		// サービスフォームBean 共有フォームBeanを設定
		X31SDataBeanAccess[] bean = {viewLogic.getServiceFormBean(), viewLogic.getCommonInfoBean()};

		ArrayList list  = new ArrayList();
		List<String> mskmSvcList = new ArrayList<String>();
		ArrayList<HashMap> tokkiChgList = new ArrayList<HashMap>();

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		String mskmYmd = null;
		String mskmUkYmd = null;
		String opeDate = opeDateTimeStamp.substring(0, 8);

		// 電話申込でモバイルでない　または　書面申込でモバイルとADSLでない
		// 連絡手段補記の登録用
		boolean isRrkWayHokiFlg = (mskmFlagMap.containsKey("mobile_tel_flag") && !(Boolean)mskmFlagMap.get("mobile_tel_flag"))
			|| (mskmFlagMap.containsKey("adsl_shomen_flag") && (Boolean)mskmFlagMap.get("adsl_shomen_flag"))
			|| (mskmFlagMap.containsKey("mobile_shomen_flag") && (Boolean)mskmFlagMap.get("mobile_shomen_flag"));

		// マンション・メゾンの場合
		boolean isMansionMezonFlg = 
			(mskmFlagMap.containsKey("mansion_shomen_flag") && (Boolean)mskmFlagMap.get("mansion_shomen_flag"))
			|| (mskmFlagMap.containsKey("mezon_shomen_flag") && (Boolean)mskmFlagMap.get("mezon_shomen_flag"))
			|| (mskmFlagMap.containsKey("mansion_tel_flag") && (Boolean)mskmFlagMap.get("mansion_tel_flag"))
			|| (mskmFlagMap.containsKey("mezon_tel_flag") && (Boolean)mskmFlagMap.get("mezon_tel_flag"));

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 申込ステータス（1:申請、2:登録、3：本申込）
		parentMap.put("mskm_mode", mode);

		// 申込フラグ（1:登録）
		parentMap.put("mskm_flg", ADD_FLG);

		// お客様一覧照会＿ＳＹＳＩＤ → 申込登録マップ.ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
	
		//申込種別コード
		parentMap.put("mskm_sbt_cd", getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
		
		
		// 新規申込の場合
		if (MSKM_FLG_SHINKI.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			//申込区分
			parentMap.put("mskm_kbn", MSKM_FLG_SHINKI);
		}
		else
		{
			//申込区分
			parentMap.put("mskm_kbn", MSKM_FLG_TSUIKA);
			// 現在ご利用中のサービスとの併用について(コード値) → 申込登録マップ.利用サービス継続種別コード
			X31SDataBeanAccess comboBean = bean[0].getDataBeanArray(KKW00101SFConst.NET_NOW_USE_SVC).getDataBean(0);
			if (!"".equals(comboBean.sendMessageString(KKW00101SFConst.EOHNT_SVC_HEIYO_CD_37, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				String useSvcKeizkSbtCd = JKKWebCommon.convertCode(
						bean[0], KKW00101SFConst.NET_NOW_USE_SVC,
						KKW00101SFConst.EOHNT_SVC_HEIYO_CD_37,
						KKW00101SFConst.EOHNT_SVC_HEIYO_CD_LIST_37);
				useSvcKeizkSbtCd = (JKKStrConst.CD00743_9.equals(useSvcKeizkSbtCd))?(""):(useSvcKeizkSbtCd);
	
				// 現在ご利用中のサービスとの併用について(コード値) → 申込登録マップ.利用サービス継続種別コード
				parentMap.put("kk0011_use_svc_keizk_sbt_cd", useSvcKeizkSbtCd);
			}
		}

		// 申込受付年月日
		mskmUkYmd =
			bean[0].sendMessageString(KKW00101SFConst.MSKM_UK_DTM_Y, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.MSKM_UK_DTM_M, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.MSKM_UK_DTM_D, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込年月日
		mskmYmd =
			bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
			+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
			+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込受付年月日時分秒
		parentMap.put("mskm_uk_dtm", opeDateTimeStamp);
		
		// 申込書到着年月日
		if (JKKStrConst.CD00591_05.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			if (mskmUkYmd.length() == 8)
			{
				parentMap.put("mskmsho_ariv_ymd", mskmUkYmd);
			}
			else
			{
				parentMap.put("mskmsho_ariv_ymd", opeDateTimeStamp.substring(0, 8));
			}
		}
		else
		{
			parentMap.put("mskmsho_ariv_ymd", opeDateTimeStamp.substring(0, 8));
		}

		// 申込年月日
		if (mskmYmd.length() == 8)
		{
			parentMap.put("mskm_ymd", mskmYmd);
		}
		else
		{
			parentMap.put("mskm_ymd", opeDateTimeStamp.substring(0, 8));
			
			bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_SET_VALUE, opeDateTimeStamp.substring(0, 4));
			bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_SET_VALUE, opeDateTimeStamp.substring(4, 6));
			bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_SET_VALUE, opeDateTimeStamp.substring(6, 8));
		}

		// 申込受付担当ユーザーID → 申込登録マップ.申込受付担当ユーザーID
		parentMap.put("mskm_uk_tnt_user_id", bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));

		// 総合営業センター受付番号 →申込登録マップ.総合営業センター受付番号
		parentMap.put("ttl_business_center_uk_no", "");
		// 電話申込の場合
		if(mskmFlagMap.containsKey("mskm_tel_flag") && (Boolean)mskmFlagMap.get("mskm_tel_flag"))
		{
			// 申込内訳コード → 込登録マップ.申込内訳コード
			parentMap.put("ttl_business_mskm_opt_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MSKM_UCWK_CD,
					KKW00101SFConst.MSKM_UCWK_CD_11, KKW00101SFConst.MSKM_UCWK_CD_LIST_11));
		}

		// 申込実施者種別コード → 申込登録マップ.申込実施者種別コード
		parentMap.put("mskm_jssis_sbt_cd", "");

		// お客様一覧照会＿ＳＹＳＩＤ → 申込登録マップ.ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// 電話申込でホームタイプの場合
		if (mskmFlagMap.containsKey("home_tel_flag") && (Boolean)mskmFlagMap.get("home_tel_flag"))
		{
			// 工事連絡事項＿電話連絡時間のご希望＿曜日(コード値) → 申込登録マップ.電話連絡希望日種別コード
			parentMap.put("kk0011_tel_rrk_kibod_sbt_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.TELRRK_KIBODOW,
					KKW00101SFConst.KOJI_DOW_CHOICE_CD_34, KKW00101SFConst.KOJI_DOW_CHOICE_CD_LIST_34));

			// 工事連絡事項＿電話連絡時間のご希望＿時間(コード値) → 申込登録マップ.電話連絡希望時間帯コード
			parentMap.put("tel_rrk_kibo_time_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.TELRRK_KIBOTIME, KKW00101SFConst.KOJI_TIME_CHOICE_CD_35,
					KKW00101SFConst.KOJI_TIME_CHOICE_CD_LIST_35));

			// 工事連絡事項＿宅調訪問時間のご希望(コード値) → 申込登録マップ.宅内調査希望日種別コード
			parentMap.put("kk0011_takcho_kibod_sbt_cd",  JKKWebCommon.convertCode(bean[0], KKW00101SFConst.TAKCHO_KIBODOW,
					KKW00101SFConst.KOJI_DOW_CHOICE_CD_34, KKW00101SFConst.KOJI_DOW_CHOICE_CD_LIST_34));

		}

		// 仮申込フラグ（空文字） → 申込登録マップ.仮申込フラグ
		parentMap.put("kari_mskm_flg", "");

		// 関西電力お客様情報授受同意有無 → 申込登録マップ.関西電力お客様情報授受同意有無
		parentMap.put("kepco_custinfo_juju_doi_um", JKKWebCommon.getPullDownCode(bean[0], 
					KKW00101SFConst.KEPCO_CUSTINFO_JUJU_DOI_UM, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));

		// 連絡要否 → 申込登録マップ.照査前連絡事項要否
		if (bean[0].sendMessageBoolean(KKW00101SFConst.RRK_YH, X31CWebConst.DATABEAN_GET_VALUE))
		{
			parentMap.put("kk0011_shosa_bf_rrk_jiko_yh", JKKStrConst.CD00001_1);
		}
		else
		{
			parentMap.put("kk0011_shosa_bf_rrk_jiko_yh", JKKStrConst.CD00001_0);
		}
		// 連絡事項 → 申込登録マップ.照査前連絡事項
		parentMap.put("kk0011_shosa_bf_rrk_jiko", bean[0].sendMessageString(KKW00101SFConst.RRK_JIKO, X31CWebConst.DATABEAN_GET_VALUE));
		
		//申込が申請の場合
		if (MSKM_SHINSEI.equals(mode))
		{
			// コンシューマ営業用申込状態識別コード
			parentMap.put("consmbsn_mskm_stat_skbt_cd", JKKStrConst.CD00760_03);
			
			//申込形態コード
			parentMap.put("mskm_form_cd", JKKStrConst.CD00591_TEL);
			//年月日
			parentMap.put("ymd", opeDate);
		}
		else
		{
			// コンシューマ営業用申込状態識別コード
			parentMap.put("consmbsn_mskm_stat_skbt_cd", JKKStrConst.CD00760_04);
		}

		// 受付担当者(コード値) → 申込登録マップ.受付担当者識別コード
		parentMap.put("uk_tntsha_skbt_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.UK_TNTSHA_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));

		// ANK-2679-00-00 2016/05/23 ADD START
		// 従業員番号 → 申込登録マップ.代理店申込受付eoスタッフユーザーID
		parentMap.put("agnt_mkm_uk_eostf_user_id", bean[0].sendMessageString(KKW00101SFConst.AGNT_MKM_UK_EOSTF_USER_ID, X31CWebConst.DATABEAN_GET_VALUE));

		// 取次ぎ者苗字(カナ) → 申込登録マップ.代理店申込受付量販店員カナ名(姓)
		parentMap.put("agnt_mkm_uk_rhstf_kana_sei", bean[0].sendMessageString(KKW00101SFConst.AGNT_MKM_UK_RHSTF_KANA_SEI, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-2679-00-00 2016/05/23 ADD END
		
		if (isRrkWayHokiFlg)
		{
			// 工事依頼情報−連絡事項 → 申込登録マップ.工事依頼情報連絡事項
			parentMap.put("koji_req_info_rrk_jiko", bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込経路コード（INBOUND） → 申込登録マップ.申込登録明細.申込経路コード
		// (書面申込の場合は、INBOUND固定)
		parentMap.put("mskm_route_skbt_cd", bean[0].sendMessageString(KKW00101SFConst.MSKM_ROUTE, X31CWebConst.DATABEAN_GET_VALUE));

		// 代理店申込取次有無
		if (bean[0].sendMessageString(KKW00101SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE) != null
				&& !"".equals(bean[0].sendMessageString(KKW00101SFConst.AGNT_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			parentMap.put("agnt_mskm_trtg_um", JKKStrConst.CD_DIV_UM_ARI);
		}
		else
		{
			parentMap.put("agnt_mskm_trtg_um", JKKStrConst.CD_DIV_UM_NASHI);
		}

		// ANK-3910-00-00 ADD START
		parentMap.put("tegak_svc_mskm_kiki", bean[0].sendMessageString(KKW00101SFConst.TEGAK_SVC_SELECT, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3910-00-00 ADD END
		
		// 申込サービスの種類（ネット）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 光ネット申込
			parentMap.put("mskm_svc_net", UMU_ARI);
			mskmSvcList.add(JKKStrConst.CD00684_NET);
		}
		else
		{
			// 光ネット申込
			parentMap.put("mskm_svc_net", UMU_NASI);
		}

		// 申込サービスの種類（電話）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 光電話申込
			parentMap.put("mskm_svc_tel", UMU_ARI);
			mskmSvcList.add(JKKStrConst.CD00684_TEL);
		}
		else
		{
			// 光電話申込
			parentMap.put("mskm_svc_tel", UMU_NASI);
		}

		// 申込サービスの種類（テレビ）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 光テレビ申込
			parentMap.put("mskm_svc_tv", UMU_ARI);
			mskmSvcList.add(JKKStrConst.CD00684_TV);
		}
		else
		{
			// 光テレビ申込
			parentMap.put("mskm_svc_tv", UMU_NASI);
		}

		// 申込サービスの種類（モバイル）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// モバイル申込
			parentMap.put("mskm_svc_moba", UMU_ARI);
			mskmSvcList.add(JKKStrConst.CD00684_MOBA);
		}
		else
		{
			// モバイル申込
			parentMap.put("mskm_svc_moba", UMU_NASI);
		}

		// 申込サービスの種類（ＡＤＳＬ）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOADSL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ＡＤＳＬ申込
			parentMap.put("mskm_svc_adsl", UMU_ARI);
			mskmSvcList.add(JKKStrConst.CD00684_ADSL);
		}
		else
		{
			// ＡＤＳＬ申込
			parentMap.put("mskm_svc_adsl", UMU_NASI);
		}

		for (int i = 0; i < mskmSvcList.size(); i++)
		{
			HashMap childMap = new HashMap();

			// 申込書番号 → 申込登録マップ.申込登録明細.申込書番号
			childMap.put("mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// 申込がホームの場合
			if (mskmFlagMap.containsKey("home_shomen_flag") && (Boolean)mskmFlagMap.get("home_shomen_flag")
					|| mskmFlagMap.containsKey("home_tel_flag") && (Boolean)mskmFlagMap.get("home_tel_flag"))
			{
				// 復活案件の判定
				if (bean[0].sendMessageBoolean(KKW00101SFConst.HUKKAT_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 復活案件 → 申込登録マップ.申込登録明細.新築物件コード
					childMap.put("hukkat_anken_flg", JKKStrConst.NEWCONST_BUKKEN_YES);
				}
				else
				{
					// 復活案件 → 申込登録マップ.申込登録明細.新築物件コード
					childMap.put("hukkat_anken_flg", JKKStrConst.HUKKAT_ANKEN_NO);
				}

				// 新築物件の判定
				if (bean[0].sendMessageBoolean(KKW00101SFConst.NEWCONST_BUKKEN, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 新築物件 → 申込登録マップ.申込登録明細.新築物件の判定
					childMap.put("newconst_bukken_cd", JKKStrConst.NEWCONST_BUKKEN_YES);
				}
				else
				{
					// 新築物件 → 申込登録マップ.申込登録明細.新築物件の判定
					childMap.put("newconst_bukken_cd", JKKStrConst.NEWCONST_BUKKEN_NO);
				}

				// 同設再申込 → 申込登録マップ.申込登録明細.同一設備再申込コード
				childMap.put("same_equip_re_mskm_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SAME_EQUIP_RE_MSKM,
						KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_56, KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_LIST_56));

				// ANK-4468-04-00 DEL START
//				// ANK-4088-00-00 ADD START
//				// 宅内調査のアポ架電希望の判定
//				if (bean[0].sendMessageBoolean(KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM, X31CWebConst.DATABEAN_GET_VALUE))
//				{
//					// 宅内調査のアポ架電希望 → 申込登録マップ.申込登録明細.宅内調査のアポ架電希望の判定
//					childMap.put("takcho_apo_kaden_kibo_um", JKKStrConst.KIBO_YES);
//				}
//				else
//				{
//					// 宅内調査のアポ架電希望 → 申込登録マップ.申込登録明細.宅内調査のアポ架電希望の判定
//					childMap.put("takcho_apo_kaden_kibo_um", JKKStrConst.KIBO_NO);
//				}
				// ANK-4468-04-00 DEL END
				// ANK-4468-04-00 ADD START
				// 宅内調査のアポ架電希望 → 申込登録マップ.申込登録明細.宅内調査のアポ架電希望の判定
				childMap.put("takcho_apo_kaden_kibo_um", getApoKadenUmCode(bean[0], KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM));
				// ANK-4468-04-00 ADD END
			}
			else
			{
				// 画面に表示されていない場合、"0"を設定する。

				// 復活案件 → 申込登録マップ.申込登録明細.新築物件コード
				childMap.put("hukkat_anken_flg", JKKStrConst.HUKKAT_ANKEN_NO);
				// 新築物件 → 申込登録マップ.申込登録明細.復活案件フラグ
				childMap.put("newconst_bukken_cd", JKKStrConst.NEWCONST_BUKKEN_NO);
				// 同設再申込 → 申込登録マップ.申込登録明細.同一設備再申込コード
				childMap.put("same_equip_re_mskm_cd", SAME_EQUIP_RE_MSKM_CD_SHKV);
				
			}

			// WEB受付番号(空文字) → 申込登録マップ.申込登録明細.WEB受付番号
			childMap.put("web_uk_no", "");
			// 申込形態コード → 申込登録マップ.申込登録明細.形態コード
			childMap.put("mskm_form_cd", getAddMskmFormCd(bean[0]));
			// 新規申込種別コード（総合受付） → 申込登録マップ.申込登録明細.新規申込種別コード
			childMap.put("new_mskm_sbt_cd", bean[0].sendMessageString(KKW00101SFConst.NEW_MSKM_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));

			// 連絡先メールアドレス → 申込登録マップ.申込登録明細.申込連絡先メールアドレス
			childMap.put("mskm_rrks_mlad", bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE));

			// 追加申込の場合
			if (MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 特記＿サービス内容の引き継ぎ → 申込登録マップ.申込登録明細.オプションサービス引継有無
				if (bean[0].sendMessageBoolean(KKW00101SFConst.SVC_NYO_HKTGI, X31CWebConst.DATABEAN_GET_VALUE))
				{
					childMap.put("op_svc_hktgi_um", JKKStrConst.CD_DIV_UM_ARI);
				}
				else
				{
					childMap.put("op_svc_hktgi_um", JKKStrConst.CD_DIV_UM_NASHI);
				}
				
				// 解約書類の送付希望 → 申込登録マップ.申込登録明細.解約書類送付希望有無
				if (bean[0].sendMessageBoolean(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO, X31CWebConst.DATABEAN_GET_VALUE))
				{
					childMap.put("dsl_aticle_sohu_kibo_um", JKKStrConst.CD_DIV_UM_ARI);
				}
				else
				{
					childMap.put("dsl_aticle_sohu_kibo_um", JKKStrConst.CD_DIV_UM_NASHI);
				}
			}

			//ご本人確認書類コード
			String hninBunshoKind = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SBT_LIST,
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
			hninBunshoKind = (JKKStrConst.CD01566_9.equals(hninBunshoKind))?(""):(hninBunshoKind);
			
			childMap.put("hnin_cfm_aticle_sbt_cd", hninBunshoKind);

			//本人確認書類コードがその他の場合
			if (JKKStrConst.CD00714_3.equals(hninBunshoKind))
			{
				childMap.put("hnin_cfm_aticle_nm", bean[0].sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// 申込が書面でホームかメゾンの場合
			if (mskmFlagMap.containsKey("home_shomen_flag") && (Boolean)mskmFlagMap.get("home_shomen_flag")
					|| mskmFlagMap.containsKey("mezon_shomen_flag") && (Boolean)mskmFlagMap.get("mezon_shomen_flag"))
			{
				// 地図添付(コード値) → 申込登録マップ.申込登録明細.地図添付有無
				childMap.put("map_temp_um", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MAPTEMP_ARI, KKW00101SFConst.MAP_TEMP_UM_CD_38,
												KKW00101SFConst.MAP_TEMP_UM_CD_LIST_38));
				// 担当者名 → 申込登録マップ.申込登録明細.申込書取扱情報担当者名
				childMap.put("mskmsho_trat_if_tntsha_nm",
						bean[0].sendMessageString(KKW00101SFConst.TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 電話番号 → 申込登録マップ.申込登録明細.申込書取扱情報電話番号
				childMap.put("mskmsho_trat_if_telno",
						bean[0].sendMessageString(KKW00101SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			}

			if (isRrkWayHokiFlg)
			{
				// 工事依頼情報−連絡事項 → 申込登録マップ.申込登録明細.マンション設備システム連携用記事欄
				childMap.put("manssbsys_rnki_yo_kijiran", bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// 申込書種別コード
			if (mskmFlagMap.containsKey("mskm_shomen_flag") && (Boolean)mskmFlagMap.get("mskm_shomen_flag"))
			{
				// 書面申込の場合、申込書の種類を設定
				childMap.put("mskmsho_sbt_cd", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE));
			}
			else
			{
				// 電話申込の場合、住居タイプの種類を設定
				childMap.put("mskmsho_sbt_cd", bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE));
			}

			if (isMansionMezonFlg)
			{
				// 付加リスト → 申込登録マップ.申込登録明細.契約付加コード
				childMap.put("kei_huka_cd", JKKWebCommon.convertCode(bean[0], 
						KKW00101SFConst.FUKA_LIST, KKW00101SFConst.FUKA_CD_57, KKW00101SFConst.FUKA_CD_LIST_57));
				// Ｍ−ＩＤ → 申込登録マップ.申込登録明細.マンションID
				childMap.put("mansion_id", bean[0].sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE));
				// ＣＡＴ−ＩＤ → 申込登録マップ.申込登録明細.CAT-ID
				childMap.put("catid", bean[0].sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// 申込種別 → 申込登録マップ.申込登録明細.申込受付種別コード
			childMap.put("mkm_uk_sbt_cd", JKKWebCommon.convertCode(bean[0],
					KKW00101SFConst.MSKM_SBT, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));

			if (CATV_COMP_FLG_KCN.equals(bean[0].sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// チューナー台数 → 申込登録マップ.申込登録明細.KCNSTB申込台数
				int kcnUseCnt = Integer.parseInt(bean[0].sendMessageString(KKW00101SFConst.TUNER_CNT, X31CWebConst.DATABEAN_GET_VALUE)) + 1;
				childMap.put("kcn_stb_mskm_cnt", Integer.toString(kcnUseCnt));

				// KCNSTB種類コード → 申込登録マップ.申込登録明細.KCNSTB種類コード
				String kcnCode = getKcnStbKindCd(bean[0], KKW00101SFConst.KCN_TUNER_USE_CNT_LIST,
						KKW00101SFConst.TUNER_USE_CNT_CD_22, KKW00101SFConst.KCN_TV_TUNER_LIST, KKW00101SFConst.KCN_TV_TUNER_04);
				childMap.put("kcn_stb_kind_cd", kcnCode);
			}
			
			childMap.put("mskmsho_dtl_no", JKKWebCommon.getMskmShoDtlNo(bean[0], mskmSvcList.get(i)));
			
// --> ANK-1199-00-00
			// 申込番号変更フラグ
			String mskmshoDtlNo = JKKWebCommon.getMskmShoDtlNo(bean[0], mskmSvcList.get(i));
			String mskmshoDtlNoHenkoFlg = MSKM_DTL_NO_HENKO_FLG_NASHI;
			String initMskmshoDtlNo = "";
			HashMap<String, String> chgPsbMap = null;
			String keyChgPsbMap = "";
			
			// ANK-3136-00-00 ADD START
			// ホーム・メゾンの場合
			boolean isHomeMezonFlg = 
				(mskmFlagMap.containsKey("home_shomen_flag") && (Boolean)mskmFlagMap.get("home_shomen_flag"))
				|| (mskmFlagMap.containsKey("mezon_shomen_flag") && (Boolean)mskmFlagMap.get("mezon_shomen_flag"))
				|| (mskmFlagMap.containsKey("home_tel_flag") && (Boolean)mskmFlagMap.get("home_tel_flag"))
				|| (mskmFlagMap.containsKey("mezon_tel_flag") && (Boolean)mskmFlagMap.get("mezon_tel_flag"));
			
			// ホームまたはメゾンで、ネットまたは電話またはテレビが選択されている場合
			if (isHomeMezonFlg
					&& (JKKStrConst.CD00684_NET.equals(mskmSvcList.get(i)) || JKKStrConst.CD00684_TEL.equals(mskmSvcList.get(i))
					|| JKKStrConst.CD00684_TV.equals(mskmSvcList.get(i))))
			{
				// 他システム連携_宅内調査要否
				String tsyrnTakchoYh = "";
				if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_TAKCHO_HUYO_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				{
					tsyrnTakchoYh = JKKCommonConst.KH_FAIL;
				}
				else
				{
					tsyrnTakchoYh = JKKCommonConst.KH_PSG;
				}
				childMap.put("tsyrn_takcho_yh", tsyrnTakchoYh);
				// 他システム連携_工事連絡先氏名
				childMap.put("tsyrn_kj_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 他システム連携_工事連絡先電話番号
				childMap.put("tsyrn_kj_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
				// 他システム連携_宅内調査時連絡先氏名
				childMap.put("tsyrn_takcho_ji_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 他システム連携_宅内調査時連絡先電話番号
				childMap.put("tsyrn_takcho_ji_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
				// 他システム連携_連絡希望日時
				childMap.put("tsyrn_rrk_kibo_date", bean[0].sendMessageString(KKW00101SFConst.TSYRN_RRK_KIBO_DATE, X31CWebConst.DATABEAN_GET_VALUE));
				// 他システム連携_地図有無
				String tsyrnMapUm = "";
				if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_MAP_UM, X31CWebConst.DATABEAN_GET_VALUE))
				{
					tsyrnMapUm = JKKCommonConst.UM_U;
				}
				else
				{
					tsyrnMapUm = JKKCommonConst.UM_M;
				}
				childMap.put("tsyrn_map_um", tsyrnMapUm);
				// 他システム連携_既存契約情報
				childMap.put("tsyrn_kzn_kei_inf", bean[0].sendMessageString(KKW00101SFConst.TSYRN_KZN_KEI_INF, X31CWebConst.DATABEAN_GET_VALUE));
				// 他システム連携_不備解消年月日
				childMap.put("tsyrn_hbi_kaishou_ymd", bean[0].sendMessageString(KKW00101SFConst.TSYRN_HBI_KAISHOU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
				// ANK-4096-00-00 ADD START
				// 現在利用先契約回線区分
				childMap.put("now_use_sk_kei_kisn_div",bean[0].sendMessageString(KKW00101SFConst.USE_SK_KEI_KISN_DIV, X31CWebConst.DATABEAN_GET_VALUE));
				// 機器設置場所変更有無
				childMap.put("kiki_setplc_chgum",bean[0].sendMessageString(KKW00101SFConst.KIKI_SETPLACE_CHGE_RSV_UM, X31CWebConst.DATABEAN_GET_VALUE));
				// 同日実施希望有無
				childMap.put("dojitu_jssi_kbum",bean[0].sendMessageString(KKW00101SFConst.TAKCHO_KJ_DOJITU_JSSI_UM, X31CWebConst.DATABEAN_GET_VALUE));
				// ANK-4096-00-00 ADD END				
			}
			// ANK-3136-00-00 ADD END
// ▽▽▽ ANK-4427-00-00 ADD START
			// 転居元お客様ID
			parentMap.put("itenm_svc_kei_no", bean[0].sendMessageString(KKW00101SFConst.ITENM_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
//△△△ ANK-4427-00-00 ADD END
			
			// ネットまたは電話が選択されている場合
			if(JKKStrConst.CD00684_NET.equals(mskmSvcList.get(i)) || JKKStrConst.CD00684_TEL.equals(mskmSvcList.get(i)))
			{
				chgPsbMap = JKKWebCommon.getNetTelMskmshoDtlNoChgPsbMap(viewLogic);
				mskmshoDtlNoHenkoFlg = (chgPsbMap.containsValue(mskmshoDtlNo) ? MSKM_DTL_NO_HENKO_FLG_NASHI : MSKM_DTL_NO_HENKO_FLG_ARI);
				parentMap.put("net_tel_dble_psb_map", chgPsbMap);
				// ANK-3136-00-00 ADD START
				// ホーム・メゾンの場合
				if (isHomeMezonFlg)
				{
					// 設備流用有無
// ANK-4468-11-00 MOD START
//					String equipRyuyoUm = "";
//					if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
//					{
//						equipRyuyoUm = JKKCommonConst.UM_U;
//					}
//					else
//					{
//						equipRyuyoUm = JKKCommonConst.UM_M;
//					}
					String equipRyuyoUm = JKKCommonConst.UM_M;
					String equipRyuyoUmKbn = bean[0].sendMessageString(KKW00101SFConst.EQUIP_RYUYO_UM_KBN, X31CWebConst.DATABEAN_GET_VALUE);
					if (!JKKStringUtil.isNullBlank(equipRyuyoUmKbn)){
						equipRyuyoUm = equipRyuyoUmKbn;
					} else {
						// 乗換以外は、従来通り
						if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
						{
							equipRyuyoUm = JKKCommonConst.UM_U;
						}
					}
// ANK-4468-11-00 MOD END
					childMap.put("equip_ryuyo_um", equipRyuyoUm);
					// 流用元工事案件番号
					childMap.put("ryuyo_moto_kjak_no", bean[0].sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
					// 設備流用工事完了希望年月日
					String sbryKjFinKiboymd = bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_Y, X31CWebConst.DATABEAN_GET_VALUE)
							+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_M, X31CWebConst.DATABEAN_GET_VALUE)
							+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_D, X31CWebConst.DATABEAN_GET_VALUE);
					childMap.put("sbry_kj_fin_kiboymd", sbryKjFinKiboymd);
				}
				// ANK-3136-00-00 ADD END
			}
			// テレビが選択されている場合
			else if(JKKStrConst.CD00684_TV.equals(mskmSvcList.get(i)))
			{
				chgPsbMap = JKKWebCommon.getTvMskmshoDtlNoChgPsbMap(viewLogic);
				mskmshoDtlNoHenkoFlg = (chgPsbMap.containsValue(mskmshoDtlNo) ? MSKM_DTL_NO_HENKO_FLG_NASHI : MSKM_DTL_NO_HENKO_FLG_ARI);
				parentMap.put("tv_dble_psb_map", chgPsbMap);
				// ANK-3136-00-00 ADD START
				// ホーム・メゾンの場合
				if (isHomeMezonFlg)
				{
					// 設備流用有無
					String equipRyuyoUm = "";
					if (bean[0].sendMessageBoolean(KKW00101SFConst.TV_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
					{
						equipRyuyoUm = JKKCommonConst.UM_U;
					}
					else
					{
						equipRyuyoUm = JKKCommonConst.UM_M;
					}
					childMap.put("equip_ryuyo_um", equipRyuyoUm);
					// 流用元工事案件番号
					childMap.put("ryuyo_moto_kjak_no", bean[0].sendMessageString(KKW00101SFConst.TV_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
					// 設備流用工事完了希望年月日
					String sbryKjFinKiboymd = bean[0].sendMessageString(KKW00101SFConst.TV_RYUYO_KIBO_Y, X31CWebConst.DATABEAN_GET_VALUE)
							+ bean[0].sendMessageString(KKW00101SFConst.TV_RYUYO_KIBO_M, X31CWebConst.DATABEAN_GET_VALUE)
							+ bean[0].sendMessageString(KKW00101SFConst.TV_RYUYO_KIBO_D, X31CWebConst.DATABEAN_GET_VALUE);
					childMap.put("sbry_kj_fin_kiboymd", sbryKjFinKiboymd);
				}
				// ANK-3136-00-00 ADD END
			}
			else
			{
				if(JKKStrConst.CD00684_MOBA.equals(mskmSvcList.get(i)))
				{ // モバイルが選択されている場合
					initMskmshoDtlNo = (String)getMblMskmshoDtlNoShkv(viewLogic);
					keyChgPsbMap = "mbl_dble_psb_map";
				}
				else if(JKKStrConst.CD00684_ADSL.equals(mskmSvcList.get(i)))
				{ // ＡＤＳＬが選択されている場合
					initMskmshoDtlNo = (String)getAdslMskmshoDtlNoShkv(viewLogic);
					keyChgPsbMap = "adsl_dble_psb_map";
				}
				
				// 申込番号の初期値と入力値が同じ場合
				if(initMskmshoDtlNo.equals(mskmshoDtlNo))
				{
					mskmshoDtlNoHenkoFlg = MSKM_DTL_NO_HENKO_FLG_NASHI;
				}
				else
				{
					mskmshoDtlNoHenkoFlg = MSKM_DTL_NO_HENKO_FLG_ARI;
				}
				
				chgPsbMap = new HashMap<String, String>();
				chgPsbMap.put("key1", initMskmshoDtlNo);
				parentMap.put(keyChgPsbMap, chgPsbMap);
			}
			
			childMap.put("mskmsho_dtl_no_henko_flg", mskmshoDtlNoHenkoFlg);
			
			// サービス種類コード
			childMap.put("svc_kind_cd", mskmSvcList.get(i));
			
			// サービス体系
			String svcTikeiCd = "";
			
			// 申込番号が未入力
			if (JKKWebCommon.getMskmShoDtlNo(bean[0], mskmSvcList.get(i)) == null 
					|| "".equals(JKKWebCommon.getMskmShoDtlNo(bean[0], mskmSvcList.get(i))))
			{
				// サービス体系の取得
				svcTikeiCd = JKKWebCommon.getSvcTaikeiCd(bean[0], 
						(String)childMap.get("mskmsho_sbt_cd"), 
						mskmSvcList.get(i));
			}
			
			childMap.put("svc_tiki_cd", svcTikeiCd);
			
			// 年月日
			childMap.put("ymd", opeDate);
// <-- ANK-1199-00-00
			
			list.add(childMap);
		}

		parentMap.put(ADD_MSKM_LIST, list);

		// 申込＿代理店の登録
		String [] tratCd = new String[]{
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD1, X31CWebConst.DATABEAN_GET_VALUE),
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD2, X31CWebConst.DATABEAN_GET_VALUE),
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD3, X31CWebConst.DATABEAN_GET_VALUE),
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD4, X31CWebConst.DATABEAN_GET_VALUE)
		};

		for (int i = 1; i <= tratCd.length; i++)
		{
			// 代理店コード
			String tratCdCh = tratCd [i - 1];

			HashMap setTokkiMap = new HashMap();

			if (!JKKCommonUtil.isNull(tratCdCh))
			{
				setTokkiMap.put("agnt_cd", tratCdCh);
				setTokkiMap.put("mskm_agnt_no", "00" + String.valueOf(i));
				setTokkiMap.put("dsp_jun", String.valueOf(i));
				tokkiChgList.add(setTokkiMap);
			}
		}

		// 特記代理店コード変更リスト
		parentMap.put("tokki_chg_list", tokkiChgList);
		
		// サービス契約一覧照会（紹介コード）
		// 紹介コード
		parentMap.put("key_intr_cd", bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// sysid
		parentMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		// ANK-4294-00-00 ADD START
		// 紹介コード取得
		String intrCd = bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 業務パラメータから取得した紹介コード独自チェック対象(文字型)
		String[] intrcdChkTgAry = bean[0].sendMessageString(KKW00101SFConst.INTRCD_CHK_TG, X31CWebConst.DATABEAN_GET_VALUE).split(",");
		// 業務パラメータに設定された文字列から始まる紹介コードかチェック
		boolean isIntrcdChkTg = false;
		if (!intrCd.equals("") && intrCd.length() >= 4)
		{
			for(String intrcdChkTg : intrcdChkTgAry)
			{
				if(intrCd.substring(0,4).equals(intrcdChkTg)){
					// 設定された紹介コードで始まるため、フラグをＯＮ
					isIntrcdChkTg = true;
					break;
				}
			}
		}
		// 紹介コード独自フラグを保持
		if (isIntrcdChkTg)
		{
			parentMap.put("isintrcd_chk_tg", "1");
		}
		else
		{
			parentMap.put("isintrcd_chk_tg", "");
		}
		// ANK-4294-00-00 ADD END

		outputMap.put("KKSV008003CC", parentMap);

		return outputMap;
	}

	/**
	 * 申込情報変更の上りマッピングを行います。
	 * <br>
	 * @param viewLogic         ビューロジック
	 * @param outputMap         出力先マップ
	 * @param func_code         機能コード
	 * @param mskmInfoMap       JKKGetMskmSvcKeiUcwkListCCで取得した申込情報マップ
	 * @param mskmFlagMap       申込フラグマップ
	 * @param mode              "1":承認、"2":登録、"3"：本申込
	 * @param opeDateTimeStamp  運用日付時分秒(ミリ秒)
	 * @return             出力先マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008004CC(
			JCCWebBusinessLogic viewLogic,
			HashMap outputMap,
			String func_code,
			HashMap mskmInfoMap,
			HashMap mskmFlagMap,
			String mode,
			String opeDateTimeStamp)
	{
		// サービスフォームBean 共有フォームBeanを設定
		X31SDataBeanAccess[] bean = {viewLogic.getServiceFormBean(), viewLogic.getCommonInfoBean()};

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		HashMap kksv007910CCMap = (HashMap)mskmInfoMap.get("KKSV007910CC");
		ArrayList<Object> tokkiChgList = new ArrayList<Object>();
		ArrayList<Object> tokkiDelList = new ArrayList<Object>();

		// 電話申込でモバイルでない　または　書面申込でモバイルとADSLでない
		// 連絡手段補記の登録用
		boolean isRrkWayHokiFlg = (mskmFlagMap.containsKey("mobile_tel_flag") && !(Boolean)mskmFlagMap.get("mobile_tel_flag"))
			|| (mskmFlagMap.containsKey("adsl_shomen_flag") && (Boolean)mskmFlagMap.get("adsl_shomen_flag"))
			|| (mskmFlagMap.containsKey("mobile_shomen_flag") && (Boolean)mskmFlagMap.get("mobile_shomen_flag"));

		// 申込情報照会時に取得した申込テーブルデータ格納マップを取得
		HashMap mskmDataMap = null;

		if (mskmInfoMap != null)
		{
			HashMap mskmMap = (HashMap)mskmInfoMap.get("KKSV007901CC");
			if (mskmMap != null)
			{
				ArrayList mskmList = (ArrayList)mskmMap.get("mskm_svc_kei_ucwk_list");
				if (mskmList != null)
				{
					mskmDataMap = (HashMap)mskmList.get(0);
				}
			}
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 申込フラグ（2:変更）
		parentMap.put("mskm_flg", CHGE_FLG);

		// 申込番号 → 申込変更マップ.申込番号
		parentMap.put("kk0011_mskm_no", bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込受付年月日時分秒
		parentMap.put("kk0011_mskm_uk_dtm", mskmDataMap.get("mskm_uk_dtm"));

		// 申込種別コード
		if (mskmDataMap != null)
		{
			// 紹介マップ.申込種別コード → 申込変更マップ.申込種別コード
			parentMap.put("kk0011_mskm_sbt_cd", mskmDataMap.get("mskm_sbt_cd"));
		}

		// 申込受付担当ユーザーID → 申込変更マップ.申込受付担当ユーザーID
		parentMap.put("kk0011_mskm_uk_tnt_user_id",  bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));

		// 紹介マップ.申込書到着年月日 → 申込変更マップ.申込書到着年月日
		parentMap.put("kk0011_mskmsho_ariv_ymd", mskmDataMap.get("mskmsho_ariv_ymd"));
		// 紹介マップ.申込年月日 → 申込変更マップ.申込年月日
		parentMap.put("kk0011_mskm_ymd", mskmDataMap.get("mskm_ymd"));

		// 紹介マップ.総合営業申込契機コード → 申込変更マップ.総合営業申込契機コード
		parentMap.put("kk0011_ttl_business_mskm_opt_cd",  mskmDataMap.get("ttl_business_mskm_opt_cd"));

		// 照会マップ.申込連絡先電話番号 → 申込変更マップ.申込連絡先電話番号
		parentMap.put("kk0011_mskm_rrks_telno", mskmDataMap.get("mskm_rrks_telno"));
		
		// 紹介マップ.申込実施者種別コード → 申込変更マップ.申込実施者種別コード
		parentMap.put("kk0011_mskm_jssis_sbt_cd", mskmDataMap.get("mskm_jssis_sbt_cd"));

		// 紹介マップ.お客様ご要望事項 → 申込変更マップ.お客様ご要望事項
		parentMap.put("kk0011_cust_yobo_jiko", mskmDataMap.get("cust_yobo_jiko"));

		// 関西電力お客様情報授受同意有無 → 申込登録マップ.関西電力お客様情報授受同意有無
		parentMap.put("kk0011_kepco_custinfo_juju_doi_um", 
				JKKWebCommon.getPullDownCode(bean[0], 
				KKW00101SFConst.KEPCO_CUSTINFO_JUJU_DOI_UM, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
		
		// 受付担当者(コード値)
		String ukTntshaCd = JKKWebCommon.convertCode(
				bean[0], KKW00101SFConst.UK_TNTSHA_LIST,
				KKW00101SFConst.SELECT_CD_59,
				KKW00101SFConst.CD_LIST_59);

		// 受付担当者(コード値) → 申込登録マップ.受付担当者識別コード
		parentMap.put("kk0011_uk_tntsha_skbt_cd", ukTntshaCd);
		
		// ANK-2679-00-00 2016/05/23 ADD START
		// 従業員番号 → 申込登録マップ.代理店申込受付eoスタッフユーザーID
		parentMap.put("kk0011_agnt_mkm_uk_eostf_user_id", bean[0].sendMessageString(KKW00101SFConst.AGNT_MKM_UK_EOSTF_USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// 取次ぎ者苗字(カナ) → 申込登録マップ.代理店申込受付量販店員カナ名(姓)
		parentMap.put("kk0011_agnt_mkm_uk_rhstf_kana_sei", bean[0].sendMessageString(KKW00101SFConst.AGNT_MKM_UK_RHSTF_KANA_SEI, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-2679-00-00 2016/05/23 ADD END

		if (isRrkWayHokiFlg)
		{
			// 工事依頼情報−連絡事項 → 申込登録マップ.工事依頼情報連絡事項
			parentMap.put("kk0011_koji_req_info_rrk_jiko",
					bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 更新年月日時分秒(更新前)
		if (mskmDataMap != null)
		{
			parentMap.put("kk0011_upd_dtm_bf", mskmDataMap.get("last_upd_dtm"));
		}

		/////////////
		// 特記項目 //
		//////////////

		// 電話申込でホームの場合
		if (mskmFlagMap.containsKey("home_tel_flag") && (Boolean)mskmFlagMap.get("home_tel_flag"))
		{
			// 工事連絡事項＿電話連絡時間のご希望＿曜日 → 申込変更マップ.電話連絡希望日種別コード
			String telRrkKibodSbtCd = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.TELRRK_KIBODOW,
					KKW00101SFConst.KOJI_DOW_CHOICE_CD_34,
					KKW00101SFConst.KOJI_DOW_CHOICE_CD_LIST_34);

			parentMap.put("kk0011_tel_rrk_kibod_sbt_cd", telRrkKibodSbtCd);

			// 工事連絡事項＿電話連絡時間のご希望＿時間 → 申込変更マップ.電話連絡希望時間帯コード
			String telRrkKiboTimeCd = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.TELRRK_KIBOTIME,
					KKW00101SFConst.KOJI_TIME_CHOICE_CD_35,
					KKW00101SFConst.KOJI_TIME_CHOICE_CD_LIST_35);

			parentMap.put("kk0011_tel_rrk_kibo_time_cd", telRrkKiboTimeCd);

			// 工事連絡事項＿宅調訪問時間のご希望 → 申込変更マップ.宅内調査希望日種別コード
			String takchoKibodSbtCd = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.TAKCHO_KIBODOW,
					KKW00101SFConst.KOJI_DOW_CHOICE_CD_34,
					KKW00101SFConst.KOJI_DOW_CHOICE_CD_LIST_34);

			parentMap.put("kk0011_takcho_kibod_sbt_cd", takchoKibodSbtCd);
		}

		// 追加申込の場合
		if (MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 現在ご利用中のサービスとの併用について → 申込変更マップ.利用サービス継続種別コード
			X31SDataBeanAccess comboBean = bean[0].getDataBeanArray(KKW00101SFConst.NET_NOW_USE_SVC).getDataBean(0);
			if (!"".equals(comboBean.sendMessageString(KKW00101SFConst.EOHNT_SVC_HEIYO_CD_37, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				String useSvcKeizkSbtCd = JKKWebCommon.convertCode(
						bean[0], KKW00101SFConst.NET_NOW_USE_SVC,
						KKW00101SFConst.EOHNT_SVC_HEIYO_CD_37,
						KKW00101SFConst.EOHNT_SVC_HEIYO_CD_LIST_37);
				useSvcKeizkSbtCd = (JKKStrConst.CD00743_9.equals(useSvcKeizkSbtCd))?(""):(useSvcKeizkSbtCd);
				
				parentMap.put("kk0011_use_svc_keizk_sbt_cd", useSvcKeizkSbtCd);
			}
		}

		// 連絡要否 → 申込変更マップ.照査前連絡事項要否
		String shosaBfRRkJikoYh = JKKStrConst.CD00001_0;
		if (bean[0].sendMessageBoolean(KKW00101SFConst.RRK_YH, X31CWebConst.DATABEAN_GET_VALUE))
		{
			shosaBfRRkJikoYh = JKKStrConst.CD00001_1;
		}
		parentMap.put("kk0011_shosa_bf_rrk_jiko_yh", shosaBfRRkJikoYh);

		// 連絡事項 → 申込変更マップ.照査前連絡事項
		parentMap.put("kk0011_shosa_bf_rrk_jiko", bean[0].sendMessageString(KKW00101SFConst.RRK_JIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// 提携住宅会社コード
		parentMap.put("kk0011_tkjcp_cd", kksv007910CCMap.get("tkjcp_cd"));
		// 提携住宅会社名
		parentMap.put("kk0011_tkjcp_nm", kksv007910CCMap.get("tkjcp_nm"));
		// 提携住宅会社支店・営業所名
		parentMap.put("kk0011_tkjcp_stnegs_nm", kksv007910CCMap.get("tkjcp_stnegs_nm"));
		// 提携住宅会社担当者名
		parentMap.put("kk0011_tkjcptts_nm", kksv007910CCMap.get("tkjcptts_nm"));
		// 提携住宅会社担当者職種
		parentMap.put("kk0011_tkjcptts_shksnm", kksv007910CCMap.get("tkjcptts_shksnm"));
		// 提携住宅会社担当者電話番号
		parentMap.put("kk0011_tkjcptts_tln", kksv007910CCMap.get("tkjcptts_tln"));
		// 分譲地名
		parentMap.put("kk0011_bunjochi_nm", kksv007910CCMap.get("bunjochi_nm"));
		// 区画番号
		parentMap.put("kk0011_bunjochi_kkk_no_memo", kksv007910CCMap.get("bunjochi_kkk_no_memo"));
		// 入居予定日（地プロ）
		parentMap.put("kk0011_nyukyo_rsv_jk", kksv007910CCMap.get("nyukyo_rsv_jk"));
		
		//////////////////
		// 受け渡し項目 //
		//////////////////

		// 紹介マップ.宅内調査希望時間帯コード → 申込変更マップ.宅内調査希望時間帯コード
		parentMap.put("kk0011_takcho_kibo_time_cd", mskmDataMap.get("takcho_kibo_time_cd"));
		// 紹介マップ.リファラー → 申込変更マップ.リファラー
		parentMap.put("kk0011_referer", mskmDataMap.get("referer"));

		// 申込＿代理店の登録
		String [] tratCd = new String[]{
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD1, X31CWebConst.DATABEAN_GET_VALUE),
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD2, X31CWebConst.DATABEAN_GET_VALUE),
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD3, X31CWebConst.DATABEAN_GET_VALUE),
				bean[0].sendMessageString(KKW00101SFConst.TRAT_CD4, X31CWebConst.DATABEAN_GET_VALUE)
		};

		for (int i = 1; i <= 4; i++)
		{
			// 代理店コード変更前
			String tratCdChBf = (String)kksv007910CCMap.get("agnt_cd" + String.valueOf(i));
			// 更新年月日時分秒(更新前)
			String updDtmBf = (String)kksv007910CCMap.get("upd_dtm" + String.valueOf(i));

			if (tratCdChBf == null || "".equals(tratCdChBf))
			{
				continue;
			}

			HashMap setDelTokkiMap = new HashMap();
			setDelTokkiMap.put("agnt_cd", tratCdChBf);
			setDelTokkiMap.put("mskm_agnt_no", "00" + String.valueOf(i));
			setDelTokkiMap.put("upd_dtm_bf", updDtmBf);
			tokkiDelList.add(setDelTokkiMap);
		}
		// 特記代理店コード削除リスト
		parentMap.put("tokki_del_list", tokkiDelList);

		for (int i = 1; i <= 4; i++)
		{
			// 代理店コード変更後
			String tratCdChAf = tratCd[i - 1];

			HashMap setTokkiMap = new HashMap();

			if (tratCdChAf == null || "".equals(tratCdChAf))
			{
				continue;
			}

			setTokkiMap.put("agnt_cd", tratCdChAf);
			setTokkiMap.put("mskm_agnt_no", "00" + String.valueOf(i));
			setTokkiMap.put("dsp_jun", String.valueOf(i));
			tokkiChgList.add(setTokkiMap);
		}

		// 特記代理店コード変更リスト
		parentMap.put("tokki_chg_list", tokkiChgList);

		// 仮申込フラグ（本申込）
		parentMap.put("kk0011_kari_mskm_flg", JKKStrConst.KARI_MSKM_FLG_HON_MSKM);
		// 申込ステータス（1:承認、2:登録、3：本申込）
		parentMap.put("mskm_mode", mode);

		// 
		if (MSKM_SHINSEI.equals(mode) || MSKM_HON_MSKM.equals(mode))
		{
			// 申込番号
			parentMap.put("kk001103_mskm_no",
					bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// コンシューマ営業用申込状態識別コード
			parentMap.put("kk001103_consmbsn_mskm_stat_skbt_cd", JKKStrConst.CD00760_03);
		}
// ANK-3910-00-00 ADD START
		parentMap.put("tegak_svc_mskm_kiki", bean[0].sendMessageString(KKW00101SFConst.TEGAK_SVC_SELECT, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-3910-00-00 ADD END
		
// --> ANK-1199-00-00
		ArrayList list  = new ArrayList();
		List<String> mskmSvcList = new ArrayList<String>();
		
		String opeDate = opeDateTimeStamp.substring(0, 8);
		HashMap<String, String> chgPsbMap = null;
		String initMskmshoDtlNo = "";
		
		// 申込サービスの種類（ネット）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 光ネット申込
			mskmSvcList.add(JKKStrConst.CD00684_NET);
			
			chgPsbMap = JKKWebCommon.getNetTelMskmshoDtlNoChgPsbMap(viewLogic);
			parentMap.put("net_tel_dble_psb_map", chgPsbMap);
		}

		// 申込サービスの種類（電話）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 光電話申込
			mskmSvcList.add(JKKStrConst.CD00684_TEL);
			
			chgPsbMap = JKKWebCommon.getNetTelMskmshoDtlNoChgPsbMap(viewLogic);
			parentMap.put("net_tel_dble_psb_map", chgPsbMap);
		}

		// 申込サービスの種類（テレビ）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 光テレビ申込
			mskmSvcList.add(JKKStrConst.CD00684_TV);
			
			chgPsbMap = JKKWebCommon.getTvMskmshoDtlNoChgPsbMap(viewLogic);
			parentMap.put("tv_dble_psb_map", chgPsbMap);
		}

		// 申込サービスの種類（モバイル）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// モバイル申込
			mskmSvcList.add(JKKStrConst.CD00684_MOBA);
			
			initMskmshoDtlNo = (String)getMblMskmshoDtlNoShkv(viewLogic);
			chgPsbMap = new HashMap<String, String>();
			chgPsbMap.put("key1", initMskmshoDtlNo);
			parentMap.put("mbl_dble_psb_map", chgPsbMap);
		}

		// 申込サービスの種類（ＡＤＳＬ）
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOADSL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ＡＤＳＬ申込
			mskmSvcList.add(JKKStrConst.CD00684_ADSL);
		}
		
		for (int i = 0; i < mskmSvcList.size(); i++)
		{
			HashMap childMap = new HashMap();
			
			// 申込番号 → 申込変更マップ.申込番号
			childMap.put("mskm_no", bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 申込書明細番号
			childMap.put("mskmsho_dtl_no", JKKWebCommon.getMskmShoDtlNo(bean[0], mskmSvcList.get(i)));
			
			// 申込書種別コード
			String mskmshoSbtCd = "";
			if (mskmFlagMap.containsKey("mskm_shomen_flag") && (Boolean)mskmFlagMap.get("mskm_shomen_flag"))
			{
				// 書面申込の場合、申込書の種類を設定
				mskmshoSbtCd = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else
			{
				// 電話申込の場合、住居タイプの種類を設定
				mskmshoSbtCd = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
			}
			
			// サービス種類コード
			childMap.put("svc_kind_cd", mskmSvcList.get(i));
			
			// サービス体系
			String svcTikeiCd = "";
			
			// 申込番号が未入力
			if (JKKWebCommon.getMskmShoDtlNo(bean[0], mskmSvcList.get(i)) == null 
					|| "".equals(JKKWebCommon.getMskmShoDtlNo(bean[0], mskmSvcList.get(i))))
			{
				// サービス体系の取得
				svcTikeiCd = JKKWebCommon.getSvcTaikeiCd(bean[0], 
						mskmshoSbtCd, 
						mskmSvcList.get(i));
			}
			
			childMap.put("svc_tiki_cd", svcTikeiCd);
			
			// 申込形態コード → 申込登録マップ.申込登録明細.形態コード
			childMap.put("mskm_form_cd", getAddMskmFormCd(bean[0]));
			
			// 年月日
			childMap.put("ymd", opeDate);
			
			list.add(childMap);
			
		}

		parentMap.put(UPD_MSKM_LIST, list);
// <-- ANK-1199-00-00

		// サービス契約一覧照会（紹介コード）
		// 紹介コード
		parentMap.put("key_intr_cd", bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// sysid
		parentMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		// ANK-4294-00-00 ADD START
		// 紹介コード取得
		String intrCd = bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 業務パラメータから取得した紹介コード独自チェック対象(文字型)
		String[] intrcdChkTgAry = bean[0].sendMessageString(KKW00101SFConst.INTRCD_CHK_TG, X31CWebConst.DATABEAN_GET_VALUE).split(",");
		// 業務パラメータに設定された文字列から始まる紹介コードかチェック
		boolean isIntrcdChkTg = false;
		if (!intrCd.equals("") && intrCd.length() >= 4)
		{
			for(String intrcdChkTg : intrcdChkTgAry)
			{
				if(intrCd.substring(0,4).equals(intrcdChkTg)){
					// 設定された紹介コードで始まるため、フラグをＯＮ
					isIntrcdChkTg = true;
					break;
				}
			}
		}
		// 紹介コード独自フラグを保持
		if (isIntrcdChkTg)
		{
			parentMap.put("isintrcd_chk_tg", "1");
		}
		else
		{
			parentMap.put("isintrcd_chk_tg", "");
		}
		// ANK-4294-00-00 ADD END
// ▽▽▽ ANK-4427-00-00 ADD START
		// 転居元お客様ID
		parentMap.put("itenm_svc_kei_no", bean[0].sendMessageString(KKW00101SFConst.ITENM_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
//△△△ ANK-4427-00-00 ADD END

		outputMap.put("KKSV008004CC", parentMap);

		return outputMap;
	}

	/**
	 * 契約者情報変更の上りマッピングを行います。
	 * <br>
	 * @param bean        [0]：申込新規登録画面
	 * @param outputMap   出力先マップ
	 * @param func_code   機能コード
	 * @param preMap      KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDate     運用日付
	 * @return            出力先マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008002CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap preMap, String opeDate)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap kksv007902CCMap = (HashMap)preMap.get("KKSV007902CC");
		if (kksv007902CCMap == null)
		{
			return null;
		}

		String wareki = "";
		String year = "";
		String month = "";
		String day = "";
		String ymd = "";
		String sWareki = "";
		String sYear = "";
		String sMonth = "";
		String sDay = "";
		String sYmd = "";

		ArrayList list = null;

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		HashMap childMap = null;

		parentMap.put("func_code", func_code);
		
		HashMap<String, Object> ck0011Map
			= (HashMap<String, Object>)((ArrayList<HashMap<String, Object>>)kksv007902CCMap.get("ECK0011A010CBSMsg1List")).get(0);
		String befKeishaTypeCd = String.valueOf(ck0011Map.get("ck0011_keisha_type_cd"));
		String keishaTypeCd = bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE);
		boolean isChgType = (!befKeishaTypeCd.equals(keishaTypeCd));
		String sysid = String.valueOf(ck0011Map.get("ck0011_sysid"));
		
		if(isChgType)
		{	// 契約者タイプコードが変更された場合
			// SYSID
			parentMap.put("ck0011_sysid", sysid);
			// 契約者タイプコード
			parentMap.put("ck0011_keisha_type_cd", keishaTypeCd);
			// 会員種別コード
			parentMap.put("ck0011_member_sbt_cd", ck0011Map.get("ck0011_member_sbt_cd"));
			// 更新年月日時分秒(更新前)
			parentMap.put("ck0011_upd_dtm_bf", ck0011Map.get("ck0011_last_upd_dtm"));
			
			if(!JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd))
			{	// 法人
				// 法人格種別コード
				parentMap.put("ck0011_hojin_sbt_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD,
						KKW00101SFConst.HOJIN_SBT_CD_16, KKW00101SFConst.HOJIN_SBT_CD_LIST_16));
				// 法人格前後指定コード
				parentMap.put("ck0011_hojin_zengo_shitei_cd", JKKWebCommon.convertCode(bean[0],
						KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15));
				// 会社名
				parentMap.put("ck0011_comp_nm", bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 会社カナ名
				parentMap.put("ck0011_comp_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
				// 業種コード
				parentMap.put("ck0011_gshu_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.GSHU_CD,
						KKW00101SFConst.GSHU_CD_27, KKW00101SFConst.GSHU_CD_LIST_27));
				// 代表者名
				parentMap.put("ck0011_dihysha_nm", bean[0].sendMessageString(KKW00101SFConst.DIHYSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 代表者カナ名
				parentMap.put("ck0011_dihysha_kana", bean[0].sendMessageString(KKW00101SFConst.DIHYSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 法人連絡先明細
				ArrayList<HashMap<String, String>> hojinRrksList = new ArrayList<HashMap<String, String>>();
				HashMap<String, String> hojinRrksMap = new HashMap<String, String>();
				
				// 連絡先コード
				hojinRrksMap.put("ck0011_rrks_cd", JKKStrConst.CD00268_KEISHA);
				// 法人連絡先名
				hojinRrksMap.put("ck0011_hjrrks_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 法人連絡先担当者名
				hojinRrksMap.put("ck0011_hjrrks_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 法人連絡先担当者カナ名
				hojinRrksMap.put("ck0011_hjrrks_tntsha_kana"
						, bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
				// 法人連絡先担当者所属部署名
				hojinRrksMap.put("ck0011_hjrrks_tntsha_shozkbsho_nm"
						, bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_SHOZKBSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
				
				hojinRrksList.add(hojinRrksMap);
				parentMap.put("ck0011_ECK0011C130CBSMsg1List", hojinRrksList);
			}
		}

		// 契約種別 → お客様＜個人＞登録、お客様＜法人＞の判定に使用
		parentMap.put("keisha_type_cd", keishaTypeCd);

		// 契約種別が個人の場合設定する
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd))
		{
			// SYSID
			parentMap.put("ck0021_sysid", sysid);
			// 内販外販区分
			parentMap.put("ck0021_naihan_gaihan_cd", bean[0].sendMessageString(KKW00101SFConst.NAIHAN_GAIHAN_CD, X31CWebConst.DATABEAN_GET_VALUE));

			// 内販企業識別コード
			String naihanCompSkbtCd = bean[0].sendMessageString(KKW00101SFConst.NAIHAN_COMP_SKBT_CD, X31CWebConst.DATABEAN_GET_VALUE);
			if (naihanCompSkbtCd != null && !"".equals(naihanCompSkbtCd))
			{
				naihanCompSkbtCd = NAIHAN_COMP_SKBT_HUKA_CD + naihanCompSkbtCd;
			}
			parentMap.put("ck0021_naihan_comp_skbt_cd", naihanCompSkbtCd);
			
			/** お客様＜個人＞内容変更 **/
			// 契約者情報−氏名 → お客様＜個人＞登録マップ.お客様名
			parentMap.put("ck0021_cust_nm", bean[0].sendMessageString(KKW00101SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者情報−氏名カナ → お客様＜個人＞登録マップ.お客様カナ名
			parentMap.put("ck0021_cust_kana", bean[0].sendMessageString(KKW00101SFConst.CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者情報−性別 → お客様＜個人＞登録マップ.お客様性別コード
			parentMap.put("ck0021_cust_sex_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_SEX_CD, X31CWebConst.DATABEAN_GET_VALUE));

			wareki =
					JKKWebCommon.convertCode(bean[0], KKW00101SFConst.KEISHA_BIRTHD_WAREKI,
							KKW00101SFConst.KEISHA_BIRTHD_WAREKI_CD_19, KKW00101SFConst.KEISHA_BIRTHD_WAREKI_CD_LIST_19);
			year = bean[0].sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			month = bean[0].sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_M, X31CWebConst.DATABEAN_GET_VALUE);
			day = bean[0].sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_D, X31CWebConst.DATABEAN_GET_VALUE);

			// 契約者の誕生日設定条件
			boolean isKeishaBirthd = !"0".equals(wareki) && (0 < wareki.length() && 0 < year.length() && 0 < month.length() && 0 < day.length());

			if (isKeishaBirthd)
			{
				ymd = JKKWebCommon.getAdCalendar(wareki, year, month, day);
			}
			else
			{
				ymd = year + month + day;
			}

			// 契約者情報−生年月日 → お客様＜個人＞登録マップ.お客様生年月日
			parentMap.put("ck0021_cust_birthd", ymd);
			// 契約者−郵便番号（前）+ 契約者−郵便番号（後） → お客様＜個人＞登録マップ.契約者郵便番号
			parentMap.put("ck0021_keisha_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−住所コード → お客様＜個人＞登録マップ.契約者住所コード
			parentMap.put("ck0021_keisha_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−例外入力 → お客様＜個人＞登録マップ.契約者住所手動入力フラグ
			if (bean[0].sendMessageBoolean(KKW00101SFConst.KEISHA_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE)) 
			{
				parentMap.put("ck0021_keisha_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_YES);
			}
			else
			{
				parentMap.put("ck0021_keisha_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO);
			}
			// 契約者−都道府県 → お客様＜個人＞登録マップ.契約者都道府県名
			parentMap.put("ck0021_keisha_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−市区町村 → お客様＜個人＞登録マップ.契約者市区町村名
			parentMap.put("ck0021_keisha_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−大字通称 → お客様＜個人＞登録マップ.契約者大字通称名
			parentMap.put("ck0021_keisha_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−字町名 → お客様＜個人＞登録マップ.契約者字丁目名
			parentMap.put("ck0021_keisha_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−番地・号 → お客様＜個人＞登録マップ.契約者番地号
			parentMap.put("ck0021_keisha_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−建物名等 → お客様＜個人＞登録マップ.契約者住所補記・建物名
			parentMap.put("ck0021_keisha_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−部屋番号等 → お客様＜個人＞登録マップ.契約者住所補記・部屋番号
			parentMap.put("ck0021_keisha_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−電話番号 → お客様＜個人＞登録マップ.契約者電話番号
			parentMap.put("ck0021_keisha_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// 0:通常 固定 → お客様＜個人＞登録マップ.会員ISP決済状態コード
			parentMap.put("ck0021_mmb_isp_kssai_stat_cd", "0");
			
			// 予約適用年月日
			parentMap.put("ck0021_rsv_aply_ymd", opeDate);

			// ANK-4318-00-00 DEL START
//			// 申込形態コードが書面の場合
//			if (JKKStrConst.CD00591_05.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE)))
//			{
			// ANK-4318-00-00 DEL END
				// 和暦の取得
				sWareki =
						JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SKSHA_BIRTHD_WAREKI,
								KKW00101SFConst.SKSHA_BIRTHD_WAREKI_CD_20, KKW00101SFConst.SKSHA_BIRTHD_WAREKI_CD_LIST_20);
				sYear = bean[0].sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_Y, X31CWebConst.DATABEAN_GET_VALUE);
				sMonth = bean[0].sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_M, X31CWebConst.DATABEAN_GET_VALUE);
				sDay = bean[0].sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_D, X31CWebConst.DATABEAN_GET_VALUE);

				// 親権者の誕生日設定条件
				boolean isSkshaBirthd =
					!"0".equals(sWareki) && (0 < sWareki.length() && 0 < sYear.length() && 0 < sMonth.length() && 0 < sDay.length());

				if (isSkshaBirthd)
				{
					sYmd = JKKWebCommon.getAdCalendar(sWareki, sYear, sMonth, sDay);
				}
				else
				{
					sYmd = sYear + sMonth + sDay;
				}
				// 親権者情報−親権者名 → お客様＜個人＞登録マップ.親権者名
				parentMap.put("ck0021_sksha_nm", bean[0].sendMessageString(KKW00101SFConst.SKSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 親権者情報−親権者名（カナ） → お客様＜個人＞登録マップ.親権者カナ名
				parentMap.put("ck0021_sksha_kana", bean[0].sendMessageString(KKW00101SFConst.SKSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
				// 親権者情報−生年月日 → お客様＜個人＞登録マップ.親権者生年月日
				parentMap.put("ck0021_sksha_birthd", sYmd);
				// 親権者情報−続柄 → お客様＜個人＞登録マップ.親権者続柄コード
				parentMap.put("ck0021_sksha_zokugara_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SKSHA_ZOKUGARA_CD,
						KKW00101SFConst.SKSHA_ZOKUGARA_CD_18, KKW00101SFConst.SKSHA_ZOKUGARA_CD_LIST_18));
				// 親権者情報−続柄その他 → お客様＜個人＞登録マップ.続柄その他
				parentMap.put("ck0021_zokugara_other", bean[0].sendMessageString(KKW00101SFConst.SKSHA_ZOKUGARA_OTHER, X31CWebConst.DATABEAN_GET_VALUE));
				// 親権者情報−電話番号 → お客様＜個人＞登録マップ.親権者電話番号
				parentMap.put("ck0021_sksha_telno", bean[0].sendMessageString(KKW00101SFConst.SKSHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4318-00-00 DEL START
//			}
			// ANK-4318-00-00 DEL END

			//連絡条件コード
			String rrkJoken = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.RRKJOKEN,
					KKW00101SFConst.RRK_JOKEN_CHOICE_CD_36, KKW00101SFConst.RRK_JOKEN_CHOICE_CD_LIST_36);
			// 連絡条件コード → 連絡手段コード
			parentMap.put("ck0021_rrk_way_cd", rrkJoken);

			// 連絡情報 → 連絡手段補記
			parentMap.put("ck0021_rrk_way_hoki"
					, bean[0].sendMessageString(KKW00101SFConst.RRKINFO, X31CWebConst.DATABEAN_GET_VALUE));

			String kepgDoiUm = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.KEPG_KJNIF_TRAT_DOI_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
			if (JKKStrConst.DSP_KEPG_KJNIF_DOI_SURU.equals(kepgDoiUm))
			{
				// 関電G個人情報取扱同意有無
				parentMap.put("ck0021_kepg_kjnif_trat_doi_um", JKKStrConst.CD_DIV_UM_ARI);
				
				String mskmY = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
				String mskmM = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
				String mskmD = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
				String mskmYmd = mskmY + mskmM + mskmD;
				// 関電G個人情報取扱同意年月日
				parentMap.put("ck0021_kepg_kjnif_trat_doi_ymd", mskmYmd);
				
				if (bean[0].sendMessageBoolean(KKW00101SFConst.KEPCOG_KJNIFT, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 関電G個人情報提供不可フラグ
					parentMap.put("ck0021_kepg_kjnift_ffg", JKKStrConst.KEPG_KJNIFT_FAIL);
				}
				else
				{
					// 関電G個人情報提供不可フラグ
					parentMap.put("ck0021_kepg_kjnift_ffg", JKKStrConst.KEPG_KJNIFT_PSB);
				}
				
				// 関電G個人情報提供不可フラグ変更年月日
				parentMap.put("ck0021_kepg_kjnift_ffg_chg_ymd", mskmYmd);
			}
			else
			{
				// 関電G個人情報取扱同意有無
				parentMap.put("ck0021_kepg_kjnif_trat_doi_um", "");
				
				// 関電G個人情報取扱同意年月日
				parentMap.put("ck0021_kepg_kjnif_trat_doi_ymd", "");
				
				// 関電G個人情報提供不可フラグ
				parentMap.put("ck0021_kepg_kjnift_ffg", "");
				
				// 関電G個人情報提供不可フラグ変更年月日
				parentMap.put("ck0021_kepg_kjnift_ffg_chg_ymd", "");
			}

			list = new ArrayList();

			// childMapの初期化
			childMap = new HashMap();

			// ダミー → サービス契約回線内訳登録マップ.回線対象サービス契約明細.サービス契約番号
			childMap.put("ck0021_rrks_cd", "1");

			list.add(childMap);

			parentMap.put("ECK0031D010CBSMsg1List", list);

			// サービスインターフェースに存在しているが入力項目に存在しない項目を照会で抜いた値で埋める
			ArrayList ck0011_childList = new ArrayList();

			ck0011_childList = (ArrayList)kksv007902CCMap.get("ECK0011A010CBSMsg1List");
			childMap = (HashMap)ck0011_childList.get(0);

			// 氏名敬称
			parentMap.put("ck0021_nm_kisho", (String)childMap.get("ck0011_nm_kisho"));
			// お客様確認備考
			parentMap.put("ck0021_cust_cfm_biko", (String)childMap.get("ck0011_cust_cfm_biko"));
			// お客様ランクコード
			parentMap.put("ck0021_cust_rank_cd", (String)childMap.get("ck0011_cust_rank_cd"));
			// コンテンツお客様名
			parentMap.put("ck0021_cont_cust_nm", (String)childMap.get("ck0011_cont_cust_nm"));
			// コンテンツお客様カナ名
			parentMap.put("ck0021_cont_cust_kana", (String)childMap.get("ck0011_cont_cust_kana"));
			// コンテンツお客様性別コード
			parentMap.put("ck0021_cont_cust_sex_cd", (String)childMap.get("ck0011_cont_cust_sex_cd"));
			// コンテンツお客様生年月日
			parentMap.put("ck0021_cont_cust_birthd", (String)childMap.get("ck0011_cont_cust_birthd"));
			// コンテンツ住所コード
			parentMap.put("ck0021_cont_ad_cd", (String)childMap.get("ck0011_cont_ad_cd"));
			// コンテンツ郵便番号
			parentMap.put("ck0021_cont_pcd", (String)childMap.get("ck0011_cont_pcd"));
			// コンテンツ都道府県名
			parentMap.put("ck0021_cont_state_nm", (String)childMap.get("ck0011_cont_state_nm"));
			// コンテンツ市区町村名
			parentMap.put("ck0021_cont_city_nm", (String)childMap.get("ck0011_cont_city_nm"));
			// コンテンツ大字通称名
			parentMap.put("ck0021_cont_oaztsu_nm", (String)childMap.get("ck0011_cont_oaztsu_nm"));
			// コンテンツ字丁目名
			parentMap.put("ck0021_cont_azcho_nm", (String)childMap.get("ck0011_cont_azcho_nm"));
			// コンテンツ番地号
			parentMap.put("ck0021_cont_bnchigo", (String)childMap.get("ck0011_cont_bnchigo"));
			// コンテンツ住所補記・建物名
			parentMap.put("ck0021_cont_adrttm", (String)childMap.get("ck0011_cont_adrttm"));
			// コンテンツ住所補記・部屋番号
			parentMap.put("ck0021_cont_adrrm", (String)childMap.get("ck0011_cont_adrrm"));
			// コンテンツ住所分割開始位置
			parentMap.put("ck0021_cont_ad_bnkt_sta_pst", (String)childMap.get("ck0011_cont_ad_bnkt_sta_pst"));
			// 要補助コード
			parentMap.put("ck0021_necessary_hojo_cd", (String)childMap.get("ck0011_necessary_hojo_cd"));
			// ｅｏｎｅｔＩＤ未移行フラグ
			parentMap.put("ck0021_eonetid_mi_iko_flg", (String)childMap.get("ck0011_eonetid_mi_iko_flg"));
			// ログイン認証可否
			parentMap.put("ck0021_login_ninsho_kh", (String)childMap.get("ck0011_login_ninsho_kh"));
			// お客様特記事項コード
			parentMap.put("ck0021_cust_tkjk_cd", (String)childMap.get("ck0011_cust_tkjk_cd"));
			// ログイン認証停止年月日
			parentMap.put("ck0021_login_ninsho_stp_ymd", (String)childMap.get("ck0011_login_ninsho_stp_ymd"));
			// 会員種別特定フラグ
			parentMap.put("ck0021_mmb_sbt_tokut_flg", (String)childMap.get("ck0011_mmb_sbt_tokut_flg"));
			// 旧eonet会員認証用ID
			parentMap.put("ck0021_old_eonetmb_ninsho_id", (String)childMap.get("ck0011_old_eonetmb_ninsho_id"));
			// 削除対象外フラグ
			parentMap.put("ck0021_del_trgt_gai_flg", (String)childMap.get("ck0011_del_trgt_gai_flg"));

			//お客様指定送付先住所コード
			parentMap.put("ck0021_cssti_shs_ad_cd", (String)childMap.get("ck0011_cssti_shs_ad_cd"));
			//お客様指定送付先郵便番号
			parentMap.put("ck0021_cssti_shs_pcd", (String)childMap.get("ck0011_cssti_shs_pcd"));
			//お客様指定送付先都道府県名
			parentMap.put("ck0021_cssti_shs_state_nm", (String)childMap.get("ck0011_cssti_shs_state_nm"));
			//お客様指定送付先市区町村名
			parentMap.put("ck0021_cssti_shs_city_nm", (String)childMap.get("ck0011_cssti_shs_city_nm"));
			//お客様指定送付先大字通称名
			parentMap.put("ck0021_cssti_shs_oaztsu_nm", (String)childMap.get("ck0011_cssti_shs_oaztsu_nm"));
			//お客様指定送付先字丁目名
			parentMap.put("ck0021_cssti_shs_azcho_nm", (String)childMap.get("ck0011_cssti_shs_azcho_nm"));
			//お客様指定送付先番地号
			parentMap.put("ck0021_cssti_shs_bnchigo", (String)childMap.get("ck0011_cssti_shs_bnchigo"));
			//お客様指定送付先住所補記・建物名
			parentMap.put("ck0021_cssti_shs_adrttm", (String)childMap.get("ck0011_cssti_shs_adrttm"));
			//お客様指定送付先住所補記・部屋番号
			parentMap.put("ck0021_cssti_shs_adrrm", (String)childMap.get("ck0011_cssti_shs_adrrm"));
			//お客様指定送付先住所手動入力フラグ
			parentMap.put("ck0021_cssti_shs_ad_man_input_flg", (String)childMap.get("ck0011_cssti_shs_ad_man_input_flg"));

			// 関電G個人情報提供不可フラグ変更受付方法コード
			parentMap.put("ck0021_kepg_kjnift_ffg_chg_uwy_cd", (String)childMap.get("ck0011_kepg_kjnift_ffg_chg_uwy_cd"));
			// 関電G個人情報提供状況コード
			parentMap.put("ck0021_kepg_kjnift_jokyo_cd", (String)childMap.get("ck0011_kepg_kjnift_jokyo_cd"));
			// 関電G個人情報提供開始年月日
			parentMap.put("ck0021_kepg_kjnift_staymd", (String)childMap.get("ck0011_kepg_kjnift_staymd"));
			// 関電G個人情報提供連携状態コード
			parentMap.put("ck0021_kepg_kjnift_rscd", (String)childMap.get("ck0011_kepg_kjnift_rscd"));
			// 関電G個人情報提供連携状態コード変更年月日
			parentMap.put("ck0021_kepg_kjnift_rscd_chg_ymd", (String)childMap.get("ck0011_kepg_kjnift_rscd_chg_ymd"));

			// 最終更新年月日 → 更新年月日時分秒(更新前)
			parentMap.put("ck0021_upd_dtm_bf", (String)childMap.get("ck0011_last_upd_dtm"));
			// ANK-4075-00-00 ADD START
			// スキームタイプコード
			parentMap.put("ck0021_scm_type_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SCM_TYPE_LIST,
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
			// スキーム事業者コード
			parentMap.put("ck0021_scm_jgs_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SCM_JGS_DISP_LIST,
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
			// ANK-4075-00-00 ADD END
			if(!isChgType)
			{	// 契約種別が変更されていない場合
				// 変更されている場合は照会データが存在しないため処理をしない
				
				// サービスインターフェースに存在しているが入力項目に存在しない項目を照会で抜いた値で埋める
				ArrayList ck0021_childList = new ArrayList();

				ck0021_childList = (ArrayList)kksv007902CCMap.get("ECK0021A010CBSMsg1List");
				HashMap skshaMap = null;
				skshaMap = (HashMap)ck0021_childList.get(0);
				
				if(!JKKStrConst.CD00591_05.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE)))
				{	// 書面申込以外
					// ANK-4318-00-00 DEL START
//					// 親権者名
//					parentMap.put("ck0021_sksha_nm", (String)skshaMap.get("ck0021_sksha_nm"));
//					// 親権者カナ名
//					parentMap.put("ck0021_sksha_kana", (String)skshaMap.get("ck0021_sksha_kana"));
//					// 親権者生年月日
//					parentMap.put("ck0021_sksha_birthd", (String)skshaMap.get("ck0021_sksha_birthd"));
//					// 親権者続柄コード
//					parentMap.put("ck0021_sksha_zokugara_cd", (String)skshaMap.get("ck0021_sksha_zokugara_cd"));
//					// 続柄その他
//					parentMap.put("ck0021_zokugara_other", (String)skshaMap.get("ck0021_zokugara_other"));
//					// 親権者電話番号
//					parentMap.put("ck0021_sksha_telno", (String)skshaMap.get("ck0021_sksha_telno"));
					// ANK-4318-00-00 DEL END
					// 職業コード
					parentMap.put("ck0021_shokugyo_cd", (String)skshaMap.get("ck0021_shokugyo_cd"));
					// 職業その他
					parentMap.put("ck0021_shokugyo_other", (String)skshaMap.get("ck0021_shokugyo_other"));
				}
				// 勤務先名
				parentMap.put("ck0021_offc_nm", (String)skshaMap.get("ck0021_offc_nm"));
				// 学校名
				parentMap.put("ck0021_school_nm", (String)skshaMap.get("ck0021_school_nm"));
				// 勤務先業種コード
				parentMap.put("ck0021_offc_gshu_cd", (String)skshaMap.get("ck0021_offc_gshu_cd"));
				// 勤務先部署名
				parentMap.put("ck0021_offc_busho_nm", (String)skshaMap.get("ck0021_offc_busho_nm"));
				// 勤務先住所コード
				parentMap.put("ck0021_offc_ad_cd", (String)skshaMap.get("ck0021_offc_ad_cd"));
				// 勤務先郵便番号
				parentMap.put("ck0021_offc_pcd", (String)skshaMap.get("ck0021_offc_pcd"));
				// 勤務先都道府県名
				parentMap.put("ck0021_offc_state_nm", (String)skshaMap.get("ck0021_offc_state_nm"));
				// 勤務先市区町村名
				parentMap.put("ck0021_offc_city_nm", (String)skshaMap.get("ck0021_offc_city_nm"));
				// 勤務先大字通称名
				parentMap.put("ck0021_offc_oaztsu_nm", (String)skshaMap.get("ck0021_offc_oaztsu_nm"));
				// 勤務先字丁目名
				parentMap.put("ck0021_offc_azcho_nm", (String)skshaMap.get("ck0021_offc_azcho_nm"));
				// 勤務先番地号
				parentMap.put("ck0021_offc_bnchigo", (String)skshaMap.get("ck0021_offc_bnchigo"));
				// 勤務先住所補記・建物名
				parentMap.put("ck0021_offc_adrttm", (String)skshaMap.get("ck0021_offc_adrttm"));
				// 勤務先住所補記・部屋番号
				parentMap.put("ck0021_offc_adrrm", (String)skshaMap.get("ck0021_offc_adrrm"));
				// 勤務先電話番号
				parentMap.put("ck0021_offc_telno", (String)skshaMap.get("ck0021_offc_telno"));
				// 勤務先内線番号
				parentMap.put("ck0021_offc_nisnno", (String)skshaMap.get("ck0021_offc_nisnno"));
				// 勤務先従業員数(規模)
				parentMap.put("ck0021_offc_worker_cnt_scale", (String)skshaMap.get("ck0021_offc_worker_cnt_scale"));
				// お客様年収
				parentMap.put("ck0021_cust_salary", (String)skshaMap.get("ck0021_cust_salary"));
				// 親権者住所コード
				parentMap.put("ck0021_sksha_ad_cd", (String)skshaMap.get("ck0021_sksha_ad_cd"));
				// 親権者郵便番号
				parentMap.put("ck0021_sksha_pcd", (String)skshaMap.get("ck0021_sksha_pcd"));
				// 親権者都道府県名
				parentMap.put("ck0021_sksha_state_nm", (String)skshaMap.get("ck0021_sksha_state_nm"));
				// 親権者市区町村名
				parentMap.put("ck0021_sksha_city_nm", (String)skshaMap.get("ck0021_sksha_city_nm"));
				// 親権者大字通称名
				parentMap.put("ck0021_sksha_oaztsu_nm", (String)skshaMap.get("ck0021_sksha_oaztsu_nm"));
				// 親権者字丁目名
				parentMap.put("ck0021_sksha_azcho_nm", (String)skshaMap.get("ck0021_sksha_azcho_nm"));
				// 親権者住所番地号
				parentMap.put("ck0021_sksha_ad_bnchigo", (String)skshaMap.get("ck0021_sksha_ad_bnchigo"));
				// 親権者住所補記・建物名
				parentMap.put("ck0021_sksha_adrttm", (String)skshaMap.get("ck0021_sksha_adrttm"));
				// 親権者住所補記・部屋番号
				parentMap.put("ck0021_sksha_adrrm", (String)skshaMap.get("ck0021_sksha_adrrm"));
				// 親権者住所確定後変更可否
				parentMap.put("ck0021_sksha_ad_fix_af_chge_kh", (String)skshaMap.get("ck0021_sksha_ad_fix_af_chge_kh"));
				// 親権者住所手動入力フラグ
				parentMap.put("ck0021_sksha_ad_man_input_flg", (String)skshaMap.get("ck0021_sksha_ad_man_input_flg"));
				// 契約者住所チェックレベル
				parentMap.put("ck0021_keisha_ad_chk_lv", JKKStrConst.AD_CHK_LV2);
			}
		}
		// 契約種別が個人以外の場合設定する
		else
		{
			// 内販外販区分
			parentMap.put("ck0031_naihan_gaihan_cd", bean[0].sendMessageString(KKW00101SFConst.NAIHAN_GAIHAN_CD, X31CWebConst.DATABEAN_GET_VALUE));

			// 内販企業識別コード
			String naihanCompSkbtCd = bean[0].sendMessageString(KKW00101SFConst.NAIHAN_COMP_SKBT_CD, X31CWebConst.DATABEAN_GET_VALUE);
			if (naihanCompSkbtCd != null && !"".equals(naihanCompSkbtCd))
			{
				naihanCompSkbtCd = NAIHAN_COMP_SKBT_HUKA_CD + naihanCompSkbtCd;
			}
			parentMap.put("ck0031_naihan_comp_skbt_cd", naihanCompSkbtCd);
			
			/** お客様＜法人＞登録 **/
			// 法人格前後指定 → お客様＜法人＞登録マップ.法人格前後指定コード
			parentMap.put("ck0031_hojin_zengo_shitei_cd", JKKWebCommon.convertCode(bean[0],
					KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15));
			// 法人名 → お客様＜法人＞登録マップ.会社名
			parentMap.put("ck0031_comp_nm", bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 法人名カナ → お客様＜法人＞登録マップ.会社カナ名
			parentMap.put("ck0031_comp_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 法人格種別名リスト、法人名 → お客様＜法人＞登録マップ.お客様名
			// ご利用者名漢字格納変数の初期化
			String emg_ksh_nm = "";
			// 法人格前後の選択値を取得
			String hojin_zengo = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD,
					KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15);
			// 法人格の選択値を取得
			String hojin_sbt = JKKWebCommon.getPullDownName(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16, 
					KKW00101SFConst.HOJIN_SBT_CD_LIST_16, KKW00101SFConst.HOJIN_SBT_NM_LIST_16);
			// 法人格の選択値を取得
			String hojin_sbt_cd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16, 
					KKW00101SFConst.HOJIN_SBT_CD_LIST_16);
			// 法人格前後指定が前 かつ 法人格「指定なし」以外の場合
			if (HOJIN_ZENGO_SHITEI_BF.equals(hojin_zengo) && !JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
			{
				// ご利用者名漢字(法人格種別＋法人名)
				emg_ksh_nm = hojin_sbt + ZENKAKU_SPACE + bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
			}
			// 法人格前後指定が後 かつ 法人格「指定なし」以外の場合
			else if (HOJIN_ZENGO_SHITEI_AF.equals(hojin_zengo) && !JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
			{
				// ご利用者名漢字(法人名＋法人格種別)
				emg_ksh_nm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE) + ZENKAKU_SPACE + hojin_sbt;
			}
			// 法人格「指定なし」の場合
			else if(JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
			{
				// ご利用者名漢字(法人名)
				emg_ksh_nm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
			}
			parentMap.put("ck0031_cust_nm", emg_ksh_nm);
			// 法人名カナ → お客様＜法人＞登録マップ.お客様カナ名
			parentMap.put("ck0031_cust_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 代表者氏名 → お客様＜法人＞登録マップ.代表者名
			parentMap.put("ck0031_dihysha_nm", bean[0].sendMessageString(KKW00101SFConst.DIHYSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 代表者カナ → お客様＜法人＞登録マップ.代表者カナ名
			parentMap.put("ck0031_dihysha_kana", bean[0].sendMessageString(KKW00101SFConst.DIHYSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 契約者−住所コード → お客様＜法人＞登録マップ.契約者住所コード
			parentMap.put("ck0031_keisha_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者-郵便番号(前) + 契約者-郵便番号(後)  → お客様＜法人＞登録マップ.契約者郵便番号
			parentMap.put("ck0031_keisha_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−例外入力 → お客様＜法人＞登録マップ.契約者住所手動入力フラグ
			if (bean[0].sendMessageBoolean(KKW00101SFConst.KEISHA_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE)) 
			{
				parentMap.put("ck0031_keisha_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_YES);
			}
			else
			{
				parentMap.put("ck0031_keisha_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO);
			}
			// 契約者−都道府県 → お客様＜法人＞登録マップ.契約者都道府県名
			parentMap.put("ck0031_keisha_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−市区町村 → お客様＜法人＞登録マップ.契約者市区町村名
			parentMap.put("ck0031_keisha_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−大字通称 → お客様＜法人＞登録マップ.契約者大字通称名
			parentMap.put("ck0031_keisha_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−字町名 → お客様＜法人＞登録マップ.契約者字丁目名
			parentMap.put("ck0031_keisha_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−番地・号 → お客様＜法人＞登録マップ.契約者番地号
			parentMap.put("ck0031_keisha_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−建物名等 → お客様＜法人＞登録マップ.契約者住所補記・建物名
			parentMap.put("ck0031_keisha_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−部屋番号等 → お客様＜法人＞登録マップ.契約者住所補記・部屋番号
			parentMap.put("ck0031_keisha_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// 契約者−電話番号 → お客様＜法人＞登録マップ.契約者電話番号
			parentMap.put("ck0031_keisha_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// 法人格種別 → お客様＜法人＞登録マップ.法人格種別コード
			parentMap.put("ck0031_hojin_sbt_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD,
					KKW00101SFConst.HOJIN_SBT_CD_16, KKW00101SFConst.HOJIN_SBT_CD_LIST_16));
			// 0:通常 固定 → お客様＜法人＞登録マップ.会員ISP決済状態コード
			parentMap.put("ck0031_mmb_isp_kssai_stat_cd", "0");
			
			// 予約適用年月日
			parentMap.put("ck0031_rsv_aply_ymd", opeDate);

			//連絡条件コード
			String rrkJoken = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.RRKJOKEN,
					KKW00101SFConst.RRK_JOKEN_CHOICE_CD_36, KKW00101SFConst.RRK_JOKEN_CHOICE_CD_LIST_36);
			// 連絡条件コード → 連絡手段コード
			parentMap.put("ck0031_rrk_way_cd", rrkJoken);

			// 連絡情報 → 連絡手段補記
			parentMap.put("ck0031_rrk_way_hoki"
					, bean[0].sendMessageString(KKW00101SFConst.RRKINFO, X31CWebConst.DATABEAN_GET_VALUE));

			String kepgDoiUm = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.KEPG_KJNIF_TRAT_DOI_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
			if (JKKStrConst.DSP_KEPG_KJNIF_DOI_SURU.equals(kepgDoiUm))
			{
				// 関電G個人情報取扱同意有無
				parentMap.put("ck0031_kepg_kjnif_trat_doi_um", JKKStrConst.CD_DIV_UM_ARI);
				
				String mskmY = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
				String mskmM = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
				String mskmD = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
				String mskmYmd = mskmY + mskmM + mskmD;
				// 関電G個人情報取扱同意年月日
				parentMap.put("ck0031_kepg_kjnif_trat_doi_ymd", mskmYmd);
				
				if (bean[0].sendMessageBoolean(KKW00101SFConst.KEPCOG_KJNIFT, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 関電G個人情報提供不可フラグ
					parentMap.put("ck0031_kepg_kjnift_ffg", JKKStrConst.KEPG_KJNIFT_FAIL);
				}
				else
				{
					// 関電G個人情報提供不可フラグ
					parentMap.put("ck0031_kepg_kjnift_ffg", JKKStrConst.KEPG_KJNIFT_PSB);
				}
				
				// 関電G個人情報提供不可フラグ変更年月日
				parentMap.put("ck0031_kepg_kjnift_ffg_chg_ymd", mskmYmd);
			}
			else
			{
				// 関電G個人情報取扱同意有無
				parentMap.put("ck0031_kepg_kjnif_trat_doi_um", "");
				
				// 関電G個人情報取扱同意年月日
				parentMap.put("ck0031_kepg_kjnif_trat_doi_ymd", "");
				
				// 関電G個人情報提供不可フラグ
				parentMap.put("ck0031_kepg_kjnift_ffg", "");
				
				// 関電G個人情報提供不可フラグ変更年月日
				parentMap.put("ck0031_kepg_kjnift_ffg_chg_ymd", "");
			}
			
			if (parentMap.containsKey("ECK0031D010CBSMsg1List"))
			{
				list = (ArrayList)parentMap.get("ECK0031D010CBSMsg1List");
			}
			else
			{
				list = new ArrayList();
			}

			// サービスインターフェースに存在しているが入力項目に存在しない項目を照会で抜いた値で埋める
			ArrayList ck0011_childList = new ArrayList();
			ck0011_childList = (ArrayList)kksv007902CCMap.get("ECK0011A010CBSMsg1List");
			childMap = null;
			childMap = (HashMap)ck0011_childList.get(0);

			// 氏名敬称
			parentMap.put("ck0031_nm_kisho", (String)childMap.get("ck0011_nm_kisho"));
			// お客様確認備考
			parentMap.put("ck0031_cust_cfm_biko", (String)childMap.get("ck0011_cust_cfm_biko"));
			// お客様ランクコード
			parentMap.put("ck0031_cust_rank_cd", (String)childMap.get("ck0011_cust_rank_cd"));
			// コンテンツお客様名
			parentMap.put("ck0031_cont_cust_nm", (String)childMap.get("ck0011_cont_cust_nm"));
			// コンテンツお客様カナ名
			parentMap.put("ck0031_cont_cust_kana", (String)childMap.get("ck0011_cont_cust_kana"));
			// コンテンツお客様性別コード
			parentMap.put("ck0031_cont_cust_sex_cd", (String)childMap.get("ck0011_cont_cust_sex_cd"));
			// コンテンツお客様生年月日
			parentMap.put("ck0031_cont_cust_birthd", (String)childMap.get("ck0011_cont_cust_birthd"));
			// コンテンツ住所コード
			parentMap.put("ck0031_cont_ad_cd", (String)childMap.get("ck0011_cont_ad_cd"));
			// コンテンツ郵便番号
			parentMap.put("ck0031_cont_pcd", (String)childMap.get("ck0011_cont_pcd"));
			// コンテンツ都道府県名
			parentMap.put("ck0031_cont_state_nm", (String)childMap.get("ck0011_cont_state_nm"));
			// コンテンツ市区町村名
			parentMap.put("ck0031_cont_city_nm", (String)childMap.get("ck0011_cont_city_nm"));
			// コンテンツ大字通称名
			parentMap.put("ck0031_cont_oaztsu_nm", (String)childMap.get("ck0011_cont_oaztsu_nm"));
			// コンテンツ字丁目名
			parentMap.put("ck0031_cont_azcho_nm", (String)childMap.get("ck0011_cont_azcho_nm"));
			// コンテンツ番地号
			parentMap.put("ck0031_cont_bnchigo", (String)childMap.get("ck0011_cont_bnchigo"));
			// コンテンツ住所補記・建物名
			parentMap.put("ck0031_cont_adrttm", (String)childMap.get("ck0011_cont_adrttm"));
			// コンテンツ住所補記・部屋番号
			parentMap.put("ck0031_cont_adrrm", (String)childMap.get("ck0011_cont_adrrm"));
			// コンテンツ住所分割開始位置
			parentMap.put("ck0031_cont_ad_bnkt_sta_pst", (String)childMap.get("ck0011_cont_ad_bnkt_sta_pst"));
			// 要補助コード
			parentMap.put("ck0031_necessary_hojo_cd", (String)childMap.get("ck0011_necessary_hojo_cd"));
			// ログイン認証可否
			parentMap.put("ck0031_login_ninsho_kh", (String)childMap.get("ck0011_login_ninsho_kh"));
			// お客様特記事項コード
			parentMap.put("ck0031_cust_tkjk_cd", (String)childMap.get("ck0011_cust_tkjk_cd"));
			// ログイン認証停止年月日
			parentMap.put("ck0031_login_ninsho_stp_ymd", (String)childMap.get("ck0011_login_ninsho_stp_ymd"));
			// 会員種別特定フラグ
			parentMap.put("ck0031_mmb_sbt_tokut_flg", (String)childMap.get("ck0011_mmb_sbt_tokut_flg"));
			// 旧eonet会員認証用ID
			parentMap.put("ck0031_old_eonetmb_ninsho_id", (String)childMap.get("ck0011_old_eonetmb_ninsho_id"));
			// 削除対象外フラグ
			parentMap.put("ck0031_del_trgt_gai_flg", (String)childMap.get("ck0011_del_trgt_gai_flg"));

			// SYSID
			parentMap.put("ck0031_sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
			// 業種コード
			parentMap.put("ck0031_gshu_cd"
					, JKKWebCommon.convertCode(bean[0], KKW00101SFConst.GSHU_CD, KKW00101SFConst.GSHU_CD_27, KKW00101SFConst.GSHU_CD_LIST_27));
			// 最終更新年月日 → 更新年月日時分秒(更新前)
			parentMap.put("ck0031_upd_dtm_bf", (String)childMap.get("ck0011_last_upd_dtm"));

			//お客様指定送付先住所コード
			parentMap.put("ck0031_cssti_shs_ad_cd", (String)childMap.get("ck0011_cssti_shs_ad_cd"));
			//お客様指定送付先郵便番号
			parentMap.put("ck0031_cssti_shs_pcd", (String)childMap.get("ck0011_cssti_shs_pcd"));
			//お客様指定送付先都道府県名
			parentMap.put("ck0031_cssti_shs_state_nm", (String)childMap.get("ck0011_cssti_shs_state_nm"));
			//お客様指定送付先市区町村名
			parentMap.put("ck0031_cssti_shs_city_nm", (String)childMap.get("ck0011_cssti_shs_city_nm"));
			//お客様指定送付先大字通称名
			parentMap.put("ck0031_cssti_shs_oaztsu_nm", (String)childMap.get("ck0011_cssti_shs_oaztsu_nm"));
			//お客様指定送付先字丁目名
			parentMap.put("ck0031_cssti_shs_azcho_nm", (String)childMap.get("ck0011_cssti_shs_azcho_nm"));
			//お客様指定送付先番地号
			parentMap.put("ck0031_cssti_shs_bnchigo", (String)childMap.get("ck0011_cssti_shs_bnchigo"));
			//お客様指定送付先住所補記・建物名
			parentMap.put("ck0031_cssti_shs_adrttm", (String)childMap.get("ck0011_cssti_shs_adrttm"));
			//お客様指定送付先住所補記・部屋番号
			parentMap.put("ck0031_cssti_shs_adrrm", (String)childMap.get("ck0011_cssti_shs_adrrm"));
			//お客様指定送付先住所手動入力フラグ
			parentMap.put("ck0031_cssti_shs_ad_man_input_flg", (String)childMap.get("ck0011_cssti_shs_ad_man_input_flg"));
			// 契約者住所チェックレベル
			parentMap.put("ck0031_keisha_ad_chk_lv", JKKStrConst.AD_CHK_LV2);
			// 関電G個人情報提供不可フラグ変更受付方法コード
			parentMap.put("ck0031_kepg_kjnift_ffg_chg_uwy_cd", (String)childMap.get("ck0011_kepg_kjnift_ffg_chg_uwy_cd"));
			// 関電G個人情報提供状況コード
			parentMap.put("ck0031_kepg_kjnift_jokyo_cd", (String)childMap.get("ck0011_kepg_kjnift_jokyo_cd"));
			// 関電G個人情報提供開始年月日
			parentMap.put("ck0031_kepg_kjnift_staymd", (String)childMap.get("ck0011_kepg_kjnift_staymd"));
			// 関電G個人情報提供連携状態コード
			parentMap.put("ck0031_kepg_kjnift_rscd", (String)childMap.get("ck0011_kepg_kjnift_rscd"));
			// 関電G個人情報提供連携状態コード変更年月日
			parentMap.put("ck0031_kepg_kjnift_rscd_chg_ymd", (String)childMap.get("ck0011_kepg_kjnift_rscd_chg_ymd"));
			// ANK-4075-00-00 ADD START
			// スキームタイプコード
			parentMap.put("ck0031_scm_type_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SCM_TYPE_LIST,
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
			// スキーム事業者コード
			parentMap.put("ck0031_scm_jgs_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SCM_JGS_DISP_LIST,
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
			// ANK-4075-00-00 ADD END
			// SYSID
			parentMap.put("ck0041_sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
			// 更新年月日時分秒(更新前)
			parentMap.put("ck0041_upd_dtm_bf", (String)childMap.get("ck0011_last_upd_dtm"));
			// 連絡先コード(01：契約者 固定) → お客様＜法人＞登録マップ.法人連絡先明細.連絡先コード
			parentMap.put("ck0041_rrks_cd", JKKStrConst.CD00268_KEISHA);
			// 契約者情報-昼間の連絡先−名称 → お客様＜法人＞登録マップ.法人連絡先明細.法人連絡先名
			parentMap.put("ck0041_hjrrks_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_NM, X31CWebConst.DATABEAN_GET_VALUE));
			//昼間の連絡先−担当者所属部署
			parentMap.put("ck0041_hjrrks_tntsha_shozkbsho_nm",
					bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_SHOZKBSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			//昼間の連絡先−担当者名（カナ）
			parentMap.put("ck0041_hjrrks_tntsha_kana", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			//昼間の連絡先−担当者名
			parentMap.put("ck0041_hjrrks_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			if(!isChgType)
			{	// 契約種別が変更されていない場合
				// お客様性別コード
				parentMap.put("ck0031_cust_sex_cd", (String)childMap.get("ck0011_cust_sex_cd"));
				
				// 変更されている場合は照会データはないため処理を行わない
				
				// サービスインターフェースに存在しているが入力項目に存在しない項目を照会で抜いた値で埋める
				ArrayList ck0031_childList = new ArrayList();

				ck0031_childList = (ArrayList)kksv007902CCMap.get("ECK0031A010CBSMsg1List");
				HashMap ck0031ChildMap = null;
				ck0031ChildMap = (HashMap)ck0031_childList.get(0);
				// 代表者役職名
				parentMap.put("ck0031_dihysha_post_nm", (String)ck0031ChildMap.get("ck0031_dihysha_post_nm"));
				
				// サービスインターフェースに存在しているが入力項目に存在しない項目を照会で抜いた値で埋める
				ArrayList ck0041_childList = new ArrayList();

				ck0041_childList = (ArrayList)kksv007902CCMap.get("ECK0041A010CBSMsg1List");
				childMap = null;
				childMap = (HashMap)ck0041_childList.get(0);

				// 法人連絡先郵便番号
				parentMap.put("ck0041_hjrrks_pcd",  (String)childMap.get("ck0041_hjrrks_pcd"));
				// 法人連絡先住所コード
				parentMap.put("ck0041_hjrrks_ad_cd",  (String)childMap.get("ck0041_hjrrks_ad_cd"));
				// 法人連絡先都道府県名
				parentMap.put("ck0041_hjrrks_state_nm",  (String)childMap.get("ck0041_hjrrks_state_nm"));
				// 法人連絡先市区町村名
				parentMap.put("ck0041_hjrrks_city_nm",  (String)childMap.get("ck0041_hjrrks_city_nm"));
				// 法人連絡先大字通称名
				parentMap.put("ck0041_hjrrks_oaztsu_nm",  (String)childMap.get("ck0041_hjrrks_oaztsu_nm"));
				// 法人連絡先字丁目名
				parentMap.put("ck0041_hjrrks_azcho_nm",  (String)childMap.get("ck0041_hjrrks_azcho_nm"));
				// 法人連絡先番地号
				parentMap.put("ck0041_hjrrks_bnchigo",  (String)childMap.get("ck0041_hjrrks_bnchigo"));
				// 法人連絡先住所補記・建物名
				parentMap.put("ck0041_hjrrks_adrttm",  (String)childMap.get("ck0041_hjrrks_adrttm"));
				// 法人連絡先住所補記・部屋番号
				parentMap.put("ck0041_hjrrks_adrrm",  (String)childMap.get("ck0041_hjrrks_adrrm"));
			}
		}
		
		// サービスインターフェースに存在しているが入力項目に存在しない項目を照会で抜いた値で埋める
		ArrayList ck0201_childList = (ArrayList)kksv007902CCMap.get("ECK0201B505CBSMsg1List");
		ck0201_childList = (null == ck0201_childList) ? new ArrayList() : ck0201_childList;

		// データ存在判定用
		HashMap mailMap = null;
		HashMap telMap = null;
		HashMap ktaiMap = null;
		HashMap nisnMap = null;
		String rrkWayCd = null;
		String rrksSbtCd = null;

		for (int i = 0; i < ck0201_childList.size(); i++)
		{
			childMap = (HashMap)ck0201_childList.get(i);
			rrkWayCd = (String)childMap.get("ck0201_rrk_way_cd");
			rrksSbtCd = (String)childMap.get("ck0201_rrks_sbt_cd");
			
			if(JKKStrConst.CD00790_MLAD.equals(rrkWayCd))
			{
				mailMap = childMap;
			}
			else if(JKKStrConst.CD00790_TELNO.equals(rrkWayCd))
			{
				if(JKKStrConst.CD00254_KTAI.equals(rrksSbtCd))
				{
					ktaiMap = childMap;
				}
				else if(JKKStrConst.CD00254_OTHER.equals(rrksSbtCd))
				{
					telMap = childMap;
				}
			}
			else if(JKKStrConst.CD00790_NISNNO.equals(rrkWayCd))
			{
				nisnMap = childMap;
			}
		}
		
		String mail = bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE);
		
		String telNo = (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd) && isChgType)
			? null
			: bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_TEL, X31CWebConst.DATABEAN_GET_VALUE);
		String ktai = JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd)
			? bean[0].sendMessageString(KKW00101SFConst.KEISHA_YUSEN_TELNO, X31CWebConst.DATABEAN_GET_VALUE)
			: bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_KTAITEL, X31CWebConst.DATABEAN_GET_VALUE);
		String nisnNO = (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd) && isChgType)
			? null
			: bean[0].sendMessageString(KKW00101SFConst.NISNNO, X31CWebConst.DATABEAN_GET_VALUE);
		String rrksCd = JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaTypeCd)
			? null
			: JKKStrConst.CD00268_KEISHA;
		
		ArrayList ck0011_childList = (ArrayList)kksv007902CCMap.get("ECK0011A010CBSMsg1List");
		String updDtmBf = (String)((HashMap)ck0011_childList.get(0)).get("ck0011_last_upd_dtm");
		
		ArrayList<HashMap<String, Object>> rrsList = new ArrayList<HashMap<String, Object>>();
		rrsList.add(mailMap);
		rrsList.add(telMap);
		rrsList.add(ktaiMap);
		rrsList.add(nisnMap);
		
		String[][] rrsAry = {
				{mail, sysid, rrksCd, JKKStrConst.CD00790_MLAD, JKKStrConst.CD00254_OTHER, "ck0201_mlad", updDtmBf, opeDate}
				, {telNo, sysid, rrksCd, JKKStrConst.CD00790_TELNO, JKKStrConst.CD00254_OTHER, "ck0201_telno", updDtmBf, opeDate}
				, {ktai, sysid, rrksCd, JKKStrConst.CD00790_TELNO, JKKStrConst.CD00254_KTAI, "ck0201_telno", updDtmBf, opeDate}
				, {nisnNO, sysid, rrksCd, JKKStrConst.CD00790_NISNNO, JKKStrConst.CD00254_OFFC, "ck0201_nisnno", updDtmBf, opeDate}
			};
		
		// 連絡先情報設定
		setRrsList(rrsList, rrsAry, parentMap, isChgType);

		//↓↓↓ ADD  課題0448 「連絡条件」「連絡情報」の非活性化について
		// 新規申込の場合にのみ下記、CCを実装するように対応
		if (MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return parentMap;
		}
		//↑↑↑ ADD  課題0448 「連絡条件」「連絡情報」の非活性化について

		outputMap.put("KKSV008002CC", parentMap);

		return outputMap;
	}
	
	/**
	 * 連絡先情報をマッピングします。
	 * @param rrsList 照会時の連絡先情報リスト
	 * @param rrsAry 連絡先入力情報配列
	 * @param parentMap 連絡先情報設定先マップ
	 * @param isChgType 契約者タイプコードが変更された場合：true、未変更の場合：false
	 */
	private void setRrsList(ArrayList<HashMap<String, Object>> rrsList, String[][] rrsAry, HashMap<String, Object> parentMap, boolean isChgType)
	{
		HashMap<String, Object> mp = null;
		ArrayList<HashMap<String, Object>> addRrsList = new ArrayList<HashMap<String, Object>>();
		ArrayList<HashMap<String, Object>> updRrsList = new ArrayList<HashMap<String, Object>>();
		ArrayList<HashMap<String, Object>> delRrsList = new ArrayList<HashMap<String, Object>>();

		HashMap<String, Object> rrsMap = null;
		String no = null;
		String sysid = null;
		String rrksCd = null;
		String rrkWayCd = null;
		String rrksSbtCd = null;
		String rrksKey = null;
		String updDtmBf = null;
		String opeDate = null;
		int i = 0;
		boolean isInput = false;
		boolean isShokai = false;
		boolean isDel = false;
		boolean isUpd = false;
		boolean isAdd = false;
		
		for(String[] rrsInfo : rrsAry)
		{
			mp = new HashMap<String, Object>();
			rrsMap = rrsList.get(i++);
			no = rrsInfo[0];
			sysid = rrsInfo[1];
			rrksCd = rrsInfo[2];
			rrkWayCd = rrsInfo[3];
			rrksSbtCd = rrsInfo[4];
			rrksKey = rrsInfo[5];
			updDtmBf = rrsInfo[6];
			opeDate = rrsInfo[7];
			
			isInput = (null != no && 0 < no.length());
			isShokai  = (null != rrsMap);
			
			isDel = (isChgType && isShokai);
			isUpd = (!isChgType && isShokai);
			isAdd = (!isChgType && !isShokai && isInput) || (isChgType && isInput);
			
			if(isDel)
			{	// 契約者タイプ変更なし AND 照会データあり AND 入力データなし
				// または 契約者タイプ変更あり AND 照会データあり
				// 連絡先番号
				mp.put("ck0201_rrks_no", (String)rrsMap.get("ck0201_rrks_no"));
				//更新年月日時分秒(更新前)
				mp.put("ck0201_upd_dtm_bf", updDtmBf);
				
				delRrsList.add(mp);
			}
			
			if(isUpd)
			{	// 契約者タイプ変更なし AND 照会データあり
				if(JKKStrConst.CD00790_MLAD.equals(rrkWayCd))
				{	// メールアドレス
					// 連絡先番号
					parentMap.put("ck020102_rrks_no", (String)rrsMap.get("ck0201_rrks_no"));
					// メールアドレス
					parentMap.put("ck020102_mlad", no);
					// メールアドレス変更年月日
					parentMap.put("ck020102_mlad_chge_ymd", opeDate);
					// 予約適用年月日
					parentMap.put("ck020102_rsv_aply_ymd", opeDate);
					// 更新年月日時分秒(更新前)
					parentMap.put("ck020102_upd_dtm_bf", updDtmBf);
				}
				else
				{	// メールアドレス以外
					// 連絡先番号
					mp.put("ck0201_rrks_no", (String)rrsMap.get("ck0201_rrks_no"));
					// 連絡先種別コード
					mp.put("ck0201_rrks_sbt_cd", (String)rrsMap.get("ck0201_rrks_sbt_cd"));
					// 番号
					mp.put(rrksKey, no);
					// 予約適用年月日
					mp.put("ck0201_rsv_aply_ymd", opeDate);
					// 更新年月日時分秒(更新前)
					mp.put("ck0201_upd_dtm_bf", updDtmBf);
					
					updRrsList.add(mp);
				}
			}
			
			if(isAdd)
			{	// 契約者タイプ変更なし AND 照会データなし AND 入力データあり
				// または 契約者タイプ変更あり AND 入力データあり
				// SYSID
				mp.put("ck0201_sysid", sysid);
				// 連絡先コード
				mp.put("ck0201_rrks_cd", rrksCd);
				// 連絡方法コード
				mp.put("ck0201_rrk_way_cd", rrkWayCd);
				// 連絡先種別コード
				mp.put("ck0201_rrks_sbt_cd", rrksSbtCd);
				// 連絡先分類コード
				mp.put("ck0201_rrks_bunrui_cd", JKKStrConst.CD00871_KAISEN_RRS);
				// 番号
				mp.put(rrksKey, no);
				// 更新年月日時分秒（更新前）
				mp.put("ck0201_upd_dtm_bf", updDtmBf);
				
				addRrsList.add(mp);
			}
		}
		
		parentMap.put("rrs_add_list", addRrsList);
		parentMap.put("rrs_upd_list", updRrsList);
		parentMap.put("rrs_del_list", delRrsList);
	}
	
	/**
	 * eo光ネット変更の上りマッピングを行います。
	 * <br>
	 * @param bean               [0]：申込新規登録画面
	 * @param outputMap          出力先マップ
	 * @param func_code          機能コード
	 * @param mskmInfoMap        KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDate            運用日付(yyyymmdd)
	 * @param mansionMap         マンション情報マップ
	 * @param opeDateTimeStamp   運用日付時分秒(ミリ秒)
	 * 
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008008CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap mskmInfoMap,
			String opeDate, HashMap mansionMap, String opeDateTimeStamp) throws Exception
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		/*-----------------------------------------------
		 * 申込情報マップから必要なマップを取得
		 *-----------------------------------------------*/
		HashMap preMap = (HashMap)mskmInfoMap.get("KKSV007904CC");
		String seikyKeiNo = getSeikyKeiNo(mskmInfoMap); // 請求契約番号

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmKind = "";
		if (MSKM_FORM_CD_TEL.equals(mskmFormCd))
		{	// 電話申込
			mskmKind = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{	// 書面申込
			mskmKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		}

		HashMap prcKnrnMap = getNetSvcKeiPrcKnrnCd(bean[0], mskmKind, mansionMap);
		String pcourse = (String)prcKnrnMap.get(NET_PRC_KNRN_KEY_PCRSCD);
		String pPlanCd = (String)prcKnrnMap.get(NET_PRC_KNRN_KEY_PPLANCD);

		boolean isMansion = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null);
		boolean opFamilyPack = bean[0].sendMessageBoolean(KKW00101SFConst.OP_FAMILY_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		// OM-2017-0000813 ADD START
		boolean opSecurityPack = bean[0].sendMessageBoolean(KKW00101SFConst.OP_SECURITY_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		boolean tabletPremiumPack = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		// OM-2017-0000813 ADD END
		// ANK-3825-00-00 DEL START
//		boolean opPlcRental = bean[0].sendMessageBoolean(KKW00101SFConst.OP_PLC_RENTAL, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3825-00-00 DEL END
		boolean opRemotePlus = bean[0].sendMessageBoolean(KKW00101SFConst.OP_REMOTE_PLUS, X31CWebConst.DATABEAN_GET_VALUE);
		boolean sokuwrib = bean[0].sendMessageBoolean(KKW00101SFConst.SOKUWRIB, X31CWebConst.DATABEAN_GET_VALUE);
		boolean chokzuwrib = bean[0].sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3412-05-00 ADD START
		boolean kosokuwrib = bean[0].sendMessageBoolean(KKW00101SFConst.KOSOKUWRI, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3412-05-00 ADD END
		if (!isMansion)
		{
			String courseChoiceCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.COURSE_CHOICE_LIST,
																	KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
			if (JKKStrConst.CD00722_100ML.equals(courseChoiceCd))
			{
				// 100Mライトコース選択時
				chokzuwrib = false;
			}
		}
		boolean chokzuwriAtKeizkMskmUm = bean[0].sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_AT_KEIZK_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
		boolean tabletBuy = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_BUY, X31CWebConst.DATABEAN_GET_VALUE);
		boolean tablePremiumPack = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込明細情報変更
		// 申込年月日
		String mskmYmd =
				bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込明細＜ｅｏ光ネット＞一覧照会明細
		ArrayList<HashMap<String, Object>> netList = (ArrayList<HashMap<String, Object>>)preMap.get("EKK0021B502CBSMsg1List");
		HashMap<String, Object> netMap = netList.get(0);
		
		parentMap.put("kk002101_mskm_dtl_no", (String)netMap.get("kk0021_mskm_dtl_no")); // 申込明細番号
		parentMap.put("kk002101_mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE)); // 申込書番号
		parentMap.put("kk002101_mskm_ymd", mskmYmd); // 申込年月日
		parentMap.put("kk002101_mskm_form_cd", getAddMskmFormCd(bean[0])); // 申込形態コード
		parentMap.put("kk002101_mskm_dtl_sbt_cd", (String)netMap.get("kk0021_mskm_dtl_sbt_cd")); // 申込明細種別コード
		parentMap.put("kk002101_rrks_ktai_telno", (String)netMap.get("kk0021_rrks_ktai_telno")); // 連絡先携帯電話番号
		parentMap.put("kk002101_rrks_offc_nm", (String)netMap.get("kk0021_rrks_offc_nm")); // 連絡先勤務先名
		parentMap.put("kk002101_dt_rrks_telno", (String)netMap.get("kk0021_dt_rrks_telno")); // 昼間連絡先電話番号
		parentMap.put("kk002101_new_mskm_sbt_cd", (String)netMap.get("kk0021_new_mskm_sbt_cd")); // 新規申込種別コード
		parentMap.put("kk002101_mskm_optnty_cd", (String)netMap.get("kk0021_mskm_optnty_cd")); // 申込契機コード
		parentMap.put("kk002101_takcho_kibo_apo_kigen_ymd", (String)netMap.get("kk0021_takcho_kibo_apo_kigen_ymd")); // 宅内調査希望アポ期限年月日
		parentMap.put("kk002101_koji_apo_rrks_shitei_cd", (String)netMap.get("kk0021_koji_apo_rrks_shitei_cd")); // 工事アポ連絡先指定コード
		parentMap.put("kk002101_koji_apo_rrks_telno", (String)netMap.get("kk0021_koji_apo_rrks_telno")); // 工事アポ連絡先電話番号
		parentMap.put("kk002101_rrk_jiko_add_dtm", (String)netMap.get("kk0021_rrk_jiko_add_dtm")); // 連絡事項登録年月日時分秒
		parentMap.put("kk002101_mskm_rrks_mlad"
				, bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE)); // 申込連絡先メールアドレス
		parentMap.put("kk002101_koji_prg_tchi_mlad", (String)netMap.get("kk0021_koji_prg_tchi_mlad")); // 工事進捗通知メールアドレス
		parentMap.put("kk002101_rrk_jiko", (String)netMap.get("kk0021_rrk_jiko")); // 連絡事項
		parentMap.put("kk002101_rcnt_shokai_ymd", (String)netMap.get("kk0021_rcnt_shokai_ymd")); // 最新照会年月日
		parentMap.put("kk002101_web_shokai_cnt", (String)netMap.get("kk0021_web_shokai_cnt")); // Web照会回数
		parentMap.put("kk002101_pc_shokai_cnt", (String)netMap.get("kk0021_pc_shokai_cnt")); // PC照会回数
		parentMap.put("kk002101_ktai_shokai_cnt", (String)netMap.get("kk0021_ktai_shokai_cnt")); // 携帯照会回数
		parentMap.put("kk002101_kjsc_tch_ktai_mlad", (String)netMap.get("kk0021_kjsc_tch_ktai_mlad")); // 工事進捗通知携帯メールアドレス
		parentMap.put("kk002101_kjsc_tch_pc_mlad_chg_ymd", (String)netMap.get("kk0021_kjsc_tch_pc_mlad_chg_ymd")); // 工事進捗通知PCメールアドレス変更年月日
		parentMap.put("kk002101_kjsc_tch_ktai_mlad_chg_ymd"
				, (String)netMap.get("kk0021_kjsc_tch_ktai_mlad_chg_ymd")); // 工事進捗通知携帯メールアドレス変更年月日
		parentMap.put("kk002101_ml_send_jgi_flg", (String)netMap.get("kk0021_ml_send_jgi_flg")); // メール送信除外フラグ
		parentMap.put("kk002101_ml_send_jgi_rsn_memo", (String)netMap.get("kk0021_ml_send_jgi_rsn_memo")); // メール送信除外理由メモ
		parentMap.put("kk002101_bmp_mskm_rrks_tln", (String)netMap.get("kk0021_bmp_mskm_rrks_tln")); // 番ポ申込連絡先電話番号

		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{	// 追加の場合
			// オプションサービス引継有無
			String opSvcHktgiUm = UMU_NASI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.SVC_NYO_HKTGI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				opSvcHktgiUm = UMU_ARI;
			}
			parentMap.put("kk002101_op_svc_hktgi_um", opSvcHktgiUm);

			String dslAticleSohuKiboUm = UMU_NASI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO, X31CWebConst.DATABEAN_GET_VALUE))
			{
				dslAticleSohuKiboUm = UMU_ARI;
			}
			// 解約書類送付希望有無
			parentMap.put("kk002101_dsl_aticle_sohu_kibo_um", dslAticleSohuKiboUm);
		}

		// マンション設備システム連携用記事欄
		parentMap.put("kk002101_manssbsys_rnki_yo_kijiran"
				, bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));

		String hukkaAnken = null;
		String newconstBukken = null;
		// ANK-4088-00-00 ADD START
		String takchoApoKadenKibo = null;
		// ANK-4088-00-00 ADD END

		// ホームの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			// 復活案件の判定
			if (bean[0].sendMessageBoolean(KKW00101SFConst.HUKKAT_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				hukkaAnken = HUKKAT_ARI;
			}
			else
			{
				hukkaAnken = HUKKAT_NASHI;
			}

			parentMap.put("kk002101_hukkat_anken_flg", hukkaAnken); // 復活案件フラグ

			// 新築物件の判定
			if (bean[0].sendMessageBoolean(KKW00101SFConst.NEWCONST_BUKKEN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				newconstBukken = NEWCONST_BKN_CD_NEWCONST;
			}
			else
			{
				newconstBukken = NEWCONST_BKN_CD_SHKV;
			}

			parentMap.put("kk002101_newconst_bukken_cd", newconstBukken); // 新築物件コード

			String sameEquipReMskm = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.SAME_EQUIP_RE_MSKM,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_56,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_LIST_56);

			parentMap.put("kk002101_same_equip_re_mskm_cd", sameEquipReMskm); // 同一設備再申込コード

			
			// ANK-4468-04-00 DEL START
//			// ANK-4088-00-00 ADD START
//			// 宅内調査のアポ架電希望の判定
//			if (bean[0].sendMessageBoolean(KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM, X31CWebConst.DATABEAN_GET_VALUE))
//			{
//				takchoApoKadenKibo = JKKStrConst.KIBO_YES;
//			}
//			else
//			{
//				takchoApoKadenKibo = JKKStrConst.KIBO_NO;
//			}
			// ANK-4088-00-00 DEL END
			// ANK-4468-04-00 ADD START
			parentMap.put("kk002101_takcho_apo_kaden_kibo_um", getApoKadenUmCode(bean[0], KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM)); // 宅内調査のアポ架電希望
			// ANK-4468-04-00 ADD END
		}
		else
		{
			// 画面に表示されていない場合、"0"を設定する。

			parentMap.put("kk002101_hukkat_anken_flg", HUKKAT_NASHI); // 復活案件フラグ
			parentMap.put("kk002101_newconst_bukken_cd", NEWCONST_BKN_CD_SHKV); // 新築物件コード
			parentMap.put("kk002101_same_equip_re_mskm_cd", SAME_EQUIP_RE_MSKM_CD_SHKV); // 同一設備再申込コード
		}

		// マンション・メゾンの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null) || isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			String keiHukaCd = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.FUKA_LIST,
					KKW00101SFConst.FUKA_CD_57,
					KKW00101SFConst.FUKA_CD_LIST_57);

			parentMap.put("kk002101_kei_huka_cd", keiHukaCd); // 契約付加コード

			parentMap.put("kk002101_mansion_id", bean[0].sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE)); // マンションID
			parentMap.put("kk002101_catid", bean[0].sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE)); // CAT-ID
		}

		// 本人確認書類種別コード
		String hninBunshoKind = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SBT_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		hninBunshoKind = (JKKStrConst.CD01566_9.equals(hninBunshoKind))?(""):(hninBunshoKind);

		parentMap.put("kk002101_hnin_cfm_aticle_sbt_cd", hninBunshoKind); // 本人確認書類種別コード

		//本人確認書類コードがその他の場合
		if (JKKStrConst.CD00714_3.equals(hninBunshoKind))
		{
			parentMap.put("kk002101_hnin_cfm_aticle_nm",
					bean[0].sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 書面申込のホームまたはメゾン
		if(isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, IS_JDG_YO_MSKM_FORM_SYO)
				|| isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, IS_JDG_YO_MSKM_FORM_SYO))
		{

			// 地図添付（コード値）
			String maptempAri = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MAPTEMP_ARI, KKW00101SFConst.MAP_TEMP_UM_CD_38,
					KKW00101SFConst.MAP_TEMP_UM_CD_LIST_38);

			parentMap.put("kk002101_map_temp_um", maptempAri); // 地図添付有無
			parentMap.put("kk002101_mskmsho_trat_if_tntsha_nm",
					bean[0].sendMessageString(KKW00101SFConst.TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE)); // 申込書取扱情報担当者名
			parentMap.put("kk002101_mskmsho_trat_if_telno",
					bean[0].sendMessageString(KKW00101SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE)); // 申込書取扱情報電話番号
		}
		
		// 申込種別コード
		String mskmSbtCd = JKKWebCommon.convertCode(
				bean[0], KKW00101SFConst.MSKM_SBT,
				KKW00101SFConst.SELECT_CD_59,
				KKW00101SFConst.CD_LIST_59);

		parentMap.put("kk002101_mkm_uk_sbt_cd", mskmSbtCd); // 申込受付種別コード

		parentMap.put("kk002101_upd_dtm_bf", (String)netMap.get("kk0021_last_upd_dtm")); // 更新年月日時分秒(更新前)
		
		parentMap.put("kk002101_mskmsho_dtl_no",
				bean[0].sendMessageString(KKW00101SFConst.NET_TEL_MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE)); // 申込書明細番号

		// ANK-3136-00-00 ADD START
		boolean isHome = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null);
		boolean isMezon = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null);
		// ホーム・メゾンの場合
		if (isHome || isMezon)
		{
			// 他システム連携_宅内調査要否
			String tsyrnTakchoYh = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_TAKCHO_HUYO_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnTakchoYh = JKKCommonConst.KH_FAIL;
			}
			else
			{
				tsyrnTakchoYh = JKKCommonConst.KH_PSG;
			}
			parentMap.put("kk002101_tsyrn_takcho_yh", tsyrnTakchoYh);
			// 他システム連携_工事連絡先氏名
			parentMap.put("kk002101_tsyrn_kj_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_工事連絡先電話番号
			parentMap.put("kk002101_tsyrn_kj_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先氏名
			parentMap.put("kk002101_tsyrn_takcho_ji_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先電話番号
			parentMap.put("kk002101_tsyrn_takcho_ji_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_連絡希望日時
			parentMap.put("kk002101_tsyrn_rrk_kibo_date", bean[0].sendMessageString(KKW00101SFConst.TSYRN_RRK_KIBO_DATE, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_地図有無
			String tsyrnMapUm = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_MAP_UM, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnMapUm = JKKCommonConst.UM_U;
			}
			else
			{
				tsyrnMapUm = JKKCommonConst.UM_M;
			}
			parentMap.put("kk002101_tsyrn_map_um", tsyrnMapUm);
			// 他システム連携_既存契約情報
			parentMap.put("kk002101_tsyrn_kzn_kei_inf", bean[0].sendMessageString(KKW00101SFConst.TSYRN_KZN_KEI_INF, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_不備解消年月日
			parentMap.put("kk002101_tsyrn_hbi_kaishou_ymd", bean[0].sendMessageString(KKW00101SFConst.TSYRN_HBI_KAISHOU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用有無
// ANK-4468-11-00 MOD START
//			String equipRyuyoUm = "";
//			if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
//			{
//				equipRyuyoUm = JKKCommonConst.UM_U;
//			}
//			else
//			{
//				equipRyuyoUm = JKKCommonConst.UM_M;
//			}
			String equipRyuyoUm = JKKCommonConst.UM_M;
			
			// 乗り換え元サービス契約番号を取得
			String nrkemtSvkiNo = bean[0].sendMessageString(KKW00101SFConst.NRKEMT_SVKEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JKKStringUtil.isNullBlank(nrkemtSvkiNo))
			{
//			String plnNrkeFlg = bean[0].sendMessageString(KKW00101SFConst.PLAN_NRKEMT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//			if ("2".equals(plnNrkeFlg) || "4".equals(plnNrkeFlg)){
				equipRyuyoUm = (String)outputMap.get("net_equip_ryuyo_um");
			} else {
				// 乗換以外は、従来通り
				if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
				{
					equipRyuyoUm = JKKCommonConst.UM_U;
				}
			}
//ANK-4468-11-00 MOD END
			parentMap.put("kk002101_equip_ryuyo_um", equipRyuyoUm);
			// 流用元工事案件番号
			parentMap.put("kk002101_ryuyo_moto_kjak_no", bean[0].sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用工事完了希望年月日
			String sbryKjFinKiboymd = bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_Y, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_M, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_D, X31CWebConst.DATABEAN_GET_VALUE);
			parentMap.put("kk002101_sbry_kj_fin_kiboymd", sbryKjFinKiboymd);
			// ANK-4096-00-00 ADD START
			// 現在利用先契約回線区分
			parentMap.put("kk002101_now_use_sk_kei_kisn_div", bean[0].sendMessageString(KKW00101SFConst.USE_SK_KEI_KISN_DIV, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器設置場所変更有無
			parentMap.put("kk002101_kiki_setplc_chgum", bean[0].sendMessageString(KKW00101SFConst.KIKI_SETPLACE_CHGE_RSV_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// 同日実施希望有無
			parentMap.put("kk002101_dojitu_jssi_kbum", bean[0].sendMessageString(KKW00101SFConst.TAKCHO_KJ_DOJITU_JSSI_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4096-00-00 ADD END
		}
		// ANK-3136-00-00 ADD END

		//
		// サービス契約手続中料金プラン変更
		//

		// サービス契約番号
		parentMap.put("kk0081_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));

		// 申込明細番号
		parentMap.put("kk0081_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

		// 料金グループコード
		String prcGrpCd = (String)netMap.get("kk0081_prc_grp_cd");
		parentMap.put("kk0081_prc_grp_cd", prcGrpCd);

		// 料金コースコード
		parentMap.put("kk0081_pcrs_cd", pcourse);

		// 料金プランコード
		parentMap.put("kk0081_pplan_cd", pPlanCd);

		// 提供方式契約番号
		parentMap.put("kk0081_tk_hoshiki_kei_no", (String)netMap.get("kk0081_tk_hoshiki_kei_no"));

		// 違約金発生コード
		parentMap.put("kk0081_pnlty_hassei_cd", (String)netMap.get("kk0081_pnlty_hassei_cd"));

		// 更新年月日時分秒(更新前)
		parentMap.put("kk0081_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));

		if(!pcourse.equals(netMap.get("kk0081_pcrs_cd")))
		{	// 料金コースが変更された場合
			//
			// サービス契約内訳キャンセル
			//

			// サービス契約内訳番号
			parentMap.put("kk0161_svc_kei_ucwk_no", (String)netMap.get("kk0161_svc_kei_ucwk_no"));

			// 申込明細番号
			parentMap.put("kk0161_mskm_dtl_no", (String)netMap.get("kk0161_mskm_dtl_no"));

			// サービスキャンセル理由コード
			parentMap.put("kk0161_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

			// 異動区分
			parentMap.put("kk0161_ido_div", (String)netMap.get("kk0081_ido_div"));

			// 更新年月日時分秒(更新前)
			parentMap.put("kk0161_upd_dtm_bf", (String)netMap.get("kk0161_last_upd_dtm"));

			//
			// サービス契約内訳＜eo光ネット＞登録
			//

			// サービス契約番号
			parentMap.put("kk0171_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));

			// 申込明細番号
			parentMap.put("kk0171_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

			if(MSKM_KIND_MANSION.equals(mskmKind))
			{	// マンションタイプの場合
				// 提供方式契約番号
				
				// サービス利用開始希望年月日
				
			}

			// 異動区分
			parentMap.put("kk0171_ido_div", (String)netMap.get("kk0081_ido_div"));

			// 提供帯域コード
			String tkTaiikiCd = getTkTaiikiCd(pcourse);
			parentMap.put("kk0171_tk_taiiki_cd", tkTaiikiCd);

			// 更新年月日時分秒(更新前)
			parentMap.put("kk0171_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));
		}

		//
		// 機器提供サービス契約キャンセル明細
		//    PLCアダプタ用
		//    タブレット用, タブレットクレードル用
		//
		ArrayList kikiCancelList = new ArrayList();
		
		// 登録前にファミリーパックが設定されているか判定
		ArrayList<HashMap<String, String>> wribList = (ArrayList<HashMap<String, String>>)preMap.get("kk0451_EKK0451B030CBSMsg1List");
		HashMap<String, String> sokuWariMap = null;
		HashMap<String, String> choWariMap = null;
		HashMap<String, String> chokzuWriMap = null;
		HashMap<String, String> familyPackWariMap = null;
		// ANK-3412-05-00 ADD START
		HashMap<String, String> kosokuWariMap = null;
		// ANK-3412-05-00 ADD END
		boolean isChokzuwriAtKeizkMskmUmBf = false;
		
		if (null != wribList)
		{
			String wribTypeCd = null;
			String wribSvcCd = null;
			
			for (HashMap<String, String> childMap : wribList)
			{
				wribTypeCd = childMap.get("kk0451_wrib_type_cd");		// 割引タイプコード
				wribSvcCd = childMap.get("kk0451_wrib_svc_cd");			// 割引サービスコード
	
				if (JKKStrConst.WRIB_SVC_FAMIPA.equals(wribSvcCd))
				{	// ファミリーパック
					familyPackWariMap = childMap;
				}
				
				if (JKKStrConst.WRIB_TYPE_CHOKI_USE_WRIB.equals(wribTypeCd))
				{	// 長期利用割
					choWariMap = childMap;
				}
				else if (JKKStrConst.WRIB_TYPE_SOKU_WRIB.equals(wribTypeCd))
				{	// 即割
					sokuWariMap = childMap;
				}
				else if (JKKStrConst.WRIB_TYPE_CHOKI_KEIZK_USE_WRIB.equals(wribTypeCd))
				{	// 長期継続利用割
					chokzuWriMap = childMap;
					
					if (JKKStrConst.WRIB_SVC_KEI_AT_KEIZK_ARI.equals(childMap.get("kk0451_wrib_svc_kei_at_keizk_skcd")))
					{
						// 長期継続利用割自動継続
						isChokzuwriAtKeizkMskmUmBf = true;
					}
				}
				// ANK-3412-05-00 ADD START
				if (JKKStrConst.WRIB_TYPE_KOSOKUWRI_WRIB.equals(wribTypeCd))
				{	// 高速割
					kosokuWariMap = childMap;
				}
				// ANK-3412-05-00 ADD END
			}
		}
		
		//スティック型STBご利用台数
		String ipStb = bean[0].sendMessageString(KKW00101SFConst.IP_STB_RENTAL_USE_CNT, X31CWebConst.DATABEAN_GET_VALUE);
		int ipstbCnt = JKKCommonUtil.isNull(ipStb) ? 0 : Integer.parseInt(ipStb);
		
		ArrayList<HashMap<String, String>> kikiList = (ArrayList<HashMap<String, String>>)preMap.get("kk0341_EKK0341B508CBSMsg1List");
		boolean isPlc = false;
		HashMap<String, String> kktkTabletMap = null;
		HashMap<String, String> kktkCradleMap = null;
		ArrayList<HashMap<String, Object>> kktkUpdateList = new ArrayList<HashMap<String, Object>>();

		// ANK-3825-00-00 ADD START
		
		// 光ＰＬＣアダプタレンタルリストを取得する(0:メッシュ、1:無線LAN中継機、2:申し込まない)
		X31SDataBeanAccess optionPlcRentalBean = bean[0].getDataBeanArray(KKW00101SFConst.OP_PLC_RENTAL_LIST).getDataBean(0);
		String plcRentalIndex = optionPlcRentalBean.sendMessageString(KKW00101SFConst.SELECT_CD_59, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 既存のPLCアダプタの種類を判別するフラグ（初期値　2:申し込まない）
		String isMeshWlrLanFlg = "2";
		
		// ANK-3825-00-00 ADD END
		
		if (kikiList != null)
		{
			HashMap kikiCancelMap = null;
			String pcrsCd = null;
			
			for (HashMap<String, String> childMap : kikiList)
			{
				pcrsCd = childMap.get("kk0341_pcrs_cd");
// ANK-3529-00-00 MOD START
//				if (CD00134_PLC.equals(pcrsCd))
//				{	// PLC
				if (CD00134_WLR_LAN.equals(pcrsCd))
				{	// eo無線LAN中継器
// ANK-3529-00-00 MOD END
					isPlc = true;
					
					// ANK-3825-00-00 MOD START
					// 既存のPLCアダプタが無線LAN中継機
					isMeshWlrLanFlg = "1";
					
//					if(opPlcRental)
					//宅内機器レンタルサービスの 1：無線LAN中継機を選択した場合
					if ("1".equals(plcRentalIndex))
					// ANK-3825-00-00 MOD END
					{	// eo無線LAN中継器あり → eo無線LAN中継器あり
						HashMap<String, Object> plcMap = new HashMap<String, Object>();
						String kktkSvcCd = (String)childMap.get("kk0341_kktk_svc_cd");
						String pplanCd = (String)childMap.get("kk0341_pplan_cd");
						
						JKKWebCommon.getUpdKktkSvcKeiIniData(bean[0], kktkSvcCd, pplanCd, plcMap, "", childMap, "kk0341_", null,
								JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), false);
						
						kktkUpdateList.add(plcMap);
						continue;
					}
				}
				// ANK-3825-00-00 ADD START
				else if (CD00134_MESH_WIFI.equals(pcrsCd))
				{	// eoメッシュWi-Fi
					isPlc = true;
					// 既存のPLCアダプタがメッシュWi-Fi
					isMeshWlrLanFlg = "0";
					
					//宅内機器レンタルサービスの 0：メッシュWi-Fiを選択した場合
					if ("0".equals(plcRentalIndex))
					{	// eoメッシュWi-Fiあり → eoメッシュWi-Fiあり
						HashMap<String, Object> plcMap = new HashMap<String, Object>();
						String kktkSvcCd = (String)childMap.get("kk0341_kktk_svc_cd");
						String pplanCd = (String)childMap.get("kk0341_pplan_cd");
						
						JKKWebCommon.getUpdKktkSvcKeiIniData(bean[0], kktkSvcCd, pplanCd, plcMap, "", childMap, "kk0341_", null,
								JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), false);
						
						kktkUpdateList.add(plcMap);
						continue;
					}
				}
				// ANK-3825-00-00 ADD END

				else if (JKKStrConst.CD00134_TABLET.equals(pcrsCd))
				{// タブレット
					kktkTabletMap = childMap;
					
					if (tabletBuy)
					{	// タブレット購入 → タブレット購入
						HashMap<String, Object> tabletMap = new HashMap<String, Object>();
						String kktkSvcCd = (String)childMap.get("kk0341_kktk_svc_cd");
						String pplanCd = (String)childMap.get("kk0341_pplan_cd");
						
						JKKWebCommon.getUpdKktkSvcKeiIniData(bean[0], kktkSvcCd, pplanCd, tabletMap, "", childMap, "kk0341_", null,
								JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), false);
						
						kktkUpdateList.add(tabletMap);
						continue;
					}
				}
				else if (JKKStrConst.CD00134_TABLET_CRADLE.equals(pcrsCd))
				{// タブレット用クレードル
					kktkCradleMap = childMap;
					
					String cradleTkniKkCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TABLET_TNMT_NM_LIST,
							KKW00101SFConst.TABLET_SELECT_CD_17, KKW00101SFConst.CRADLE_KIKI_MODEL_CD_LIST_17);
					
					//クレードルの宅内機器型式コードが空以外の場合のみ登録する。
					if(!"".equals(cradleTkniKkCd))
					{
						HashMap<String, Object> cradleMap = new HashMap<String, Object>();
						String kktkSvcCd = (String)childMap.get("kk0341_kktk_svc_cd");
						String pplanCd = (String)childMap.get("kk0341_pplan_cd");
						
						JKKWebCommon.getUpdKktkSvcKeiIniData(bean[0], kktkSvcCd, pplanCd, cradleMap, "", childMap, "kk0341_", null,
								JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), false);
						
						kktkUpdateList.add(cradleMap);
						continue;
					}
				}
				// IT1-2021-0000010 MOD START
				// else if(JKKStrConst.CD00134_IP_STB.equals(pcrsCd))
				else if(JKKStrConst.CD00134_SMP.equals(pcrsCd))
				// IT1-2021-0000010 MOD END
				{//スティックSTB
					if(ipstbCnt != 0)
					{
						HashMap<String, Object> ipStbMap = new HashMap<String, Object>();
						String kktkSvcCd = (String)childMap.get("kk0341_kktk_svc_cd");
						String pplanCd = (String)childMap.get("kk0341_pplan_cd");
						
						JKKWebCommon.getUpdKktkSvcKeiIniData(bean[0], kktkSvcCd, pplanCd, ipStbMap, "", childMap, "kk0341_", null,
								JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), false);
						
						kktkUpdateList.add(ipStbMap);
						ipstbCnt--;
						continue;
					}
				}
				else
				{	// 対象外
					continue;
				}
				
				kikiCancelMap = new HashMap();

				// 機器提供サービス契約番号
				kikiCancelMap.put("kk0341_kktk_svc_kei_no", (String)childMap.get("kk0341_kktk_svc_kei_no"));

				// 申込明細番号
				kikiCancelMap.put("kk0341_mskm_dtl_no", (String)childMap.get("kk0341_mskm_dtl_no"));

				// サービスキャンセル理由コード
				kikiCancelMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

				// 異動区分
				kikiCancelMap.put("kk0341_ido_div", (String)childMap.get("kk0341_ido_div"));

				// 更新年月日時分秒(更新前)
				kikiCancelMap.put("kk0341_upd_dtm_bf", (String)childMap.get("kk0341_last_upd_dtm"));

				kikiCancelList.add(kikiCancelMap);
			}
		}
		// 機器キャンセル用リストをparentMapに設定する。
		parentMap.put("kktk_cancel_list", kikiCancelList);

		//
		// 機器提供サービス契約登録明細
		//    PLCアダプタ用
		//    タブレット用, タブレットクレードル用
		//
		ArrayList kikiAddList = new ArrayList();

		//
		// PLCアダプタ用
		//

		// PLCアダプタが選択された場合のみ登録する。
		// ANK-3825-00-00 MOD START
//		if (!isPlc && opPlcRental)
		// 宅内機器レンタルサービスの 1：無線LAN中継機を選択した場合
		if (!isPlc && "1".equals(plcRentalIndex) || ("0".equals(isMeshWlrLanFlg) && "1".equals(plcRentalIndex)))
		// ANK-3825-00-00 MOD END
		{
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（PLC1台目用）
			 *-----------------------------------------------*/
			HashMap plcKikiAddMap = new HashMap();

			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					plcKikiAddMap,
					JKKStrConst.CD00132_PLC,
// ANK-3529-00-00 MOD START
//					JKKStrConst.CD00134_PLC_RENT,
//					JKKStrConst.CD00565_PLC_RENT,
					JKKStrConst.CD00134_WLR_LAN,
					JKKStrConst.CD00565_WLR_LAN,
// ANK-3529-00-00 MOD END
					"kk0341_",
					mansionMap,
					null,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));

			// SYSID
			plcKikiAddMap.put("kk0341_sysid", sysid);

			// 申込明細番号
			plcKikiAddMap.put("kk0341_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

			// 異動区分
			plcKikiAddMap.put("kk0341_ido_div", (String)netMap.get("kk0081_ido_div"));

			// サービス契約番号
			plcKikiAddMap.put("kk0341_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));

			// 請求契約番号
			plcKikiAddMap.put("kk0341_seiky_kei_no", seikyKeiNo);

			// 更新年月日時分秒(更新前)
			plcKikiAddMap.put("kk0341_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));

			kikiAddList.add(plcKikiAddMap);


// ANK-3529-00-00 DEL START
//			/*-----------------------------------------------
//			 * 機器提供サービス契約登録（PLC2台目用）
//			 *-----------------------------------------------*/
//			kikiAddList.add(plcKikiAddMap);
// ANK-3529-00-00 DEL END
		}
		// ANK-3825-00-00 ADD START
		//宅内機器レンタルサービスの 0：メッシュWi-Fiを選択した場合
		else if (!isPlc && "0".equals(plcRentalIndex) || ("1".equals(isMeshWlrLanFlg) && "0".equals(plcRentalIndex)))
		{
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（PLC1台目用）
			 *-----------------------------------------------*/
			HashMap plcKikiAddMap = new HashMap();

			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					plcKikiAddMap,
					JKKStrConst.CD00132_PLC,
					JKKStrConst.CD00134_MESH_WIFI,
					JKKStrConst.CD00565_MESH_WIFI,
					"kk0341_",
					mansionMap,
					null,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));

			// SYSID
			plcKikiAddMap.put("kk0341_sysid", sysid);

			// 申込明細番号
			plcKikiAddMap.put("kk0341_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

			// 異動区分
			plcKikiAddMap.put("kk0341_ido_div", (String)netMap.get("kk0081_ido_div"));

			// サービス契約番号
			plcKikiAddMap.put("kk0341_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));

			// 請求契約番号
			plcKikiAddMap.put("kk0341_seiky_kei_no", seikyKeiNo);

			// 更新年月日時分秒(更新前)
			plcKikiAddMap.put("kk0341_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));

			kikiAddList.add(plcKikiAddMap);
			
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（PLC2台目用）
			 *-----------------------------------------------*/
			kikiAddList.add(plcKikiAddMap);

		}
		// ANK-3825-00-00 ADD END
		
		//
		// スティック型STB
		//
		if(ipstbCnt != 0)
		{
			HashMap ipstbAddMap = new HashMap();

			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					ipstbAddMap,
					JKKStrConst.KKTK_SVC_CD_IP_STB,
					// IT1-2021-0000010 MOD START
					// JKKStrConst.CD00134_IP_STB,
					// JKKStrConst.CD00565_IP_STB,
					 JKKStrConst.CD00134_SMP,
					 JKKStrConst.CD00565_SMP,
					// IT1-2021-0000010 MOD END
					"kk0341_",
					mansionMap,
					null,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));

			// SYSID
			ipstbAddMap.put("kk0341_sysid", sysid);

			// 申込明細番号
			ipstbAddMap.put("kk0341_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

			// 異動区分
			ipstbAddMap.put("kk0341_ido_div", (String)netMap.get("kk0081_ido_div"));

			// サービス契約番号
			ipstbAddMap.put("kk0341_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));

			// 請求契約番号
			ipstbAddMap.put("kk0341_seiky_kei_no", seikyKeiNo);

			// 更新年月日時分秒(更新前)
			ipstbAddMap.put("kk0341_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));
			
			for(int i = 0; i < ipstbCnt; i++)
			{
				kikiAddList.add(ipstbAddMap);
			}
		}
		
		//
		// タブレット、タブレット用クレードル
		//
		
		// タブレット購入が選択された場合のみ登録する
		if ((null == kktkTabletMap) && tabletBuy)
		{
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（タブレット）
			 *-----------------------------------------------*/
			HashMap <String, String> tabletMap = new HashMap<String, String>();
			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					tabletMap,
					JKKStrConst.KKTK_SVC_CD_TABLET,
					JKKStrConst.CD00134_TABLET,
					JKKStrConst.CD00565_TABLET,
					"kk0341_",
					mansionMap,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
			
			// SYSID
			tabletMap.put("kk0341_sysid", sysid);
			
			// 申込明細番号
			tabletMap.put("kk0341_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));
			
			// 異動区分
			tabletMap.put("kk0341_ido_div", (String)netMap.get("kk0081_ido_div"));
			
			// サービス契約番号
			tabletMap.put("kk0341_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));
			
			// 請求契約番号
			tabletMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			
			// 更新年月日時分秒(更新前)
			tabletMap.put("kk0341_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));
			
			kikiAddList.add(tabletMap);
		}

		// タブレット購入が選択された場合のみ登録する
		if ((null == kktkCradleMap) && tabletBuy)
		{
			HashMap <String, String> cradleMap = new HashMap<String, String>();
			String cradleTkniKkCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TABLET_TNMT_NM_LIST,
					KKW00101SFConst.TABLET_SELECT_CD_17, KKW00101SFConst.CRADLE_KIKI_MODEL_CD_LIST_17);
			
			//クレードルの宅内機器型式コードが空以外の場合のみ登録する。
			if(!"".equals(cradleTkniKkCd))
			{
				/*-----------------------------------------------
				 * 機器提供サービス契約登録（タブレット用クレードル）
				 *-----------------------------------------------*/
				JKKWebCommon.getKktkSvcKeiIniData(bean[0],
						cradleMap,
						JKKStrConst.KKTK_SVC_CD_TABLET_CRADLE,
						JKKStrConst.CD00134_TABLET_CRADLE,
						JKKStrConst.CD00565_TABLET_CRADLE,
						"kk0341_",
						mansionMap,
						JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
				
				// SYSID
				cradleMap.put("kk0341_sysid", sysid);
				
				// 申込明細番号
				cradleMap.put("kk0341_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));
				
				// 異動区分
				cradleMap.put("kk0341_ido_div", (String)netMap.get("kk0081_ido_div"));
				
				// サービス契約番号
				cradleMap.put("kk0341_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));
				
				// 請求契約番号
				cradleMap.put("kk0341_seiky_kei_no", seikyKeiNo);
				
				// 更新年月日時分秒(更新前)
				cradleMap.put("kk0341_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));
				
				kikiAddList.add(cradleMap);
			}
		}

		// 機器登録用リストをparentMapに設定する。
		parentMap.put("kktk_add_list", kikiAddList);

		// 機器変更用リストをparentMapに設定する。
		parentMap.put("kktk_update_list", kktkUpdateList);
		
		
		//
		// 機器オプションサービス契約
		//
		
		ArrayList<HashMap<String, String>> kkopList = (ArrayList<HashMap<String, String>>)preMap.get("kk2811_EKK2811B502CBSMsg1List");
		
		ArrayList<HashMap<String, String>> kkopAddList = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, String>> kkopUpdList = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, String>> kkopCancelList = new ArrayList<HashMap<String, String>>();
		
		HashMap kksv007907scMap = (HashMap)mskmInfoMap.get("KKSV007907SC");
		
		// タブレット＿端末補償 画面選択値
		boolean tabletTnmtComps = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_TNMT_COMPS, X31CWebConst.DATABEAN_GET_VALUE);
		// タブレット＿端末補償 元の状態
		boolean tabletTnmtCompsMoto = false;
		
		if (kkopList != null)
		{
			for (HashMap<String, String> childMap : kkopList)
			{
				String kkopSvcCd = (String)childMap.get("kk2811_kkop_svc_cd");
				
				// 機器オプションサービスコードが端末補償のものが存在する
				if (JKKStrConst.KKOP_SVC_CD_TNMT_COMPS.equals(kkopSvcCd))
				{
					
					// タブレット＿端末補償 元のフラグをたてる
					tabletTnmtCompsMoto = true;
					
					// 画面の料金プランコード
					String pplanCd = JKKWebCommon.getNetTnmtCompsPlanCd(bean[0], kksv007907scMap);
					// 元の料金プランコード
					String pplanCdMoto = (String)childMap.get("kk2811_pplan_cd");
					
					// タブレット＿端末補償が画面でチェックなし
					if (!tabletTnmtComps)
					{
						/*-----------------------------------------------
						 * 機器オプションサービス契約キャンセル
						 *-----------------------------------------------*/
						
						HashMap <String, String> kkopCancelMap = new HashMap<String, String>();
						
						// 機器オプションサービス契約番号
						kkopCancelMap.put("kk281101_kkop_svc_kei_no", (String)childMap.get("kk2811_kkop_svc_kei_no"));
						
						// 申込明細番号
						kkopCancelMap.put("kk281101_mskm_dtl_no", (String)childMap.get("kk2811_mskm_dtl_no"));
						
						// サービスキャンセル理由コード
						kkopCancelMap.put("kk281101_svc_cancel_rsn_cd", JKKStrConst.CD01390_CL_TEISE); // 取消（訂正）
						
						// 異動区分
						kkopCancelMap.put("kk281101_ido_div", getIdoDiv(mskmFlg));
						
						// 更新年月日時分秒(更新前)
						kkopCancelMap.put("kk281101_upd_dtm_bf", (String)childMap.get("kk2811_last_upd_dtm"));
						
						kkopCancelList.add(kkopCancelMap);
					}
					// タブレット＿端末補償が画面でチェックあり
					// かつ料金プランコードに変更あり
					else if (tabletTnmtComps && !pplanCdMoto.equals(pplanCd))
					{
						/*-----------------------------------------------
						 * 機器オプションサービス契約手続中料金プラン変更
						 *-----------------------------------------------*/
						
						HashMap <String, String> kkopUpdMap = new HashMap<String, String>();
						
						// 機器オプションサービス契約番号
						kkopUpdMap.put("kk281103_kkop_svc_kei_no", (String)childMap.get("kk2811_kkop_svc_kei_no"));
						
						// 世代登録年月日時分秒
						kkopUpdMap.put("kk281103_gene_add_dtm", (String)childMap.get("kk2811_gene_add_dtm"));
						
						// 料金コースコード
						kkopUpdMap.put("kk281103_pcrs_cd", JKKStrConst.CD00134_TABLET_TNMT_COMPS); // G05（【管理用】タブレット端末補償）
						
						// 料金プランコード
						kkopUpdMap.put("kk281103_pplan_cd", pplanCd);
						
						// 申込明細番号
						kkopUpdMap.put("kk281103_mskm_dtl_no", (String)childMap.get("kk2811_mskm_dtl_no"));
						
						// 違約金発生コード
						kkopUpdMap.put("kk281103_pnlty_hassei_cd", (String)childMap.get("kk2811_pnlty_hassei_cd"));
						
						// 更新年月日時分秒(更新前)
						kkopUpdMap.put("kk281103_upd_dtm_bf", (String)childMap.get("kk2811_last_upd_dtm"));
						
						kkopUpdList.add(kkopUpdMap);
					}
				}
			}
		}
		
		// 機器オプションサービスコードが端末補償のものが存在しないかつ
		// タブレット＿端末補償が画面でチェックあり
		if (!tabletTnmtCompsMoto && tabletTnmtComps)
		{
			/*-----------------------------------------------
			 * 機器オプションサービス契約登録
			 *-----------------------------------------------*/
			
			HashMap <String, String> kkopAddMap = new HashMap<String, String>();
			
			// 機器オプションサービスコード
			kkopAddMap.put("kk281102_kkop_svc_cd", JKKStrConst.KKOP_SVC_CD_TNMT_COMPS); // G03（端末補償）
			
			// 料金コースコード
			kkopAddMap.put("kk281102_pcrs_cd", JKKStrConst.CD00134_TABLET_TNMT_COMPS); // G05（【管理用】タブレット端末補償）
			
			// 料金プランコード
			kkopAddMap.put("kk281102_pplan_cd", JKKWebCommon.getNetTnmtCompsPlanCd(bean[0], kksv007907scMap));
			
			if (kikiList != null)
			{
				for (HashMap<String, String> childMap : kikiList)
				{
					// 機器提供サービスコードがタブレットのもが存在する
					if(JKKStrConst.KKTK_SVC_CD_TABLET.equals((String)childMap.get("kk0341_kktk_svc_cd")))
					{
						// 機器提供サービス契約番号
						kkopAddMap.put("kk281102_kktk_svc_kei_no", (String)childMap.get("kk0341_kktk_svc_kei_no"));
					}
				}
			}
			
			// 申込明細番号
			kkopAddMap.put("kk281102_mskm_dtl_no", (String)netMap.get("kk0021_mskm_dtl_no"));
			
			// SYSID
			kkopAddMap.put("kk281102_sysid", sysid);
			
			// 異動区分
			kkopAddMap.put("kk281102_ido_div", getIdoDiv(mskmFlg));
			
			// 請求契約番号
			kkopAddMap.put("kk281102_seiky_kei_no", seikyKeiNo);
			
			// 更新年月日時分秒(更新前)
			kkopAddMap.put("kk281102_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));
			
			kkopAddList.add(kkopAddMap);
		}
		
		parentMap.put("kkop_add_list", kkopAddList);
		parentMap.put("kkop_upd_list", kkopUpdList);
		parentMap.put("kkop_cancel_list", kkopCancelList);
		
		//
		// オプションサービス契約キャンセル明細
		//    リモートサポートプラス用
		//    スマートリンクプレミアム用
		//    ファミリーパックメールウィルスチェック用(サブオプション)
		//
		ArrayList<HashMap<String, Object>> opCancelList = new ArrayList<HashMap<String, Object>>();

		//    ファミリーパックメールウィルスチェック用
		//
		// サブオプションサービス契約キャンセル（ファミリーパックメールウィルスチェック用）
		//

		// サブオプションサービス契約を照会できている場合のみキャンセルする。
		ArrayList<HashMap<String, String>> sbopMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("EKK0351B512CBSMsg1List");
		HashMap<String, String> remoteSupportMap = null;
		HashMap<String, String> smartlinkPremiumMap = null;
// ANK-4427-00-00 ADD START
		ArrayList<HashMap<String, String>> typenOpList = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, String>> typenSbOpCancelList = new ArrayList<HashMap<String, String>>();
// ANK-4427-00-00 ADD START
		
		if (sbopMsg1List != null)
		{
			// 異動区分
			String idoDiv = "";
			if ("1".equals(mskmFlg))
			{
				// 00001（新規契約）
				idoDiv = "00001";
			}
			else
			{
				// 00002（サービス追加）
				idoDiv = "00002";
			}

			String opSvcCd = null;
			for (HashMap<String, String> childMap : sbopMsg1List)
			{
				opSvcCd = childMap.get("kk0351_op_svc_cd");
				if(JKKStrConst.OP_SVC_CD_RMTSPRT_PLUS.equals(opSvcCd))
				{	// リモートサポートプラス
					remoteSupportMap = childMap;
				}
				else if (JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM.equals(opSvcCd))
				{	// スマートリンクプレミアム
					smartlinkPremiumMap = childMap;
				}
// ANK-4427-00-00 ADD START
				else if (JKKStrConst.OP_SVC_CD_EOTEL_TYPEN.equals(opSvcCd))
				{
					// typeNのオプションキャンセル処理
					typenOpList.add(childMap);
					
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD START
					if (!"".equals(childMap.get("kk0401_sbop_svc_cd")) && null!= childMap.get("kk0401_sbop_svc_cd")){
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD END
						HashMap<String, String> cancelMap = checkCancelSbOp(bean, childMap, idoDiv);
						if (cancelMap != null)
						{
							typenSbOpCancelList.add(cancelMap);
						}
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD START
					}
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD END
				}
// ANK-4427-00-00 ADD END
				
				// サブオプションサービスコード：D03（メールウィルスチェック）
				// OM-2017-0000813 MOD START
				//if (!opFamilyPack && JKKStrConst.CD00137_MAIL_VIRUS_CHK.equals(childMap.get("kk0401_sbop_svc_cd")))
				if ((!opFamilyPack && !opSecurityPack && !tabletPremiumPack)
						&& JKKStrConst.CD00137_MAIL_VIRUS_CHK.equals(childMap.get("kk0401_sbop_svc_cd")))
				// OM-2017-0000813 MOD END
				{
					//
					// サブオプションサービス契約キャンセル明細
					//
					ArrayList<HashMap<String, String>> sbopCancelList = new ArrayList<HashMap<String, String>>();
					
					// オプションサービス契約キャンセルマップ
					HashMap<String, Object> opCancelMap = new HashMap<String, Object>();
					// サブオプションサービス契約キャンセルマップ
					HashMap<String, String> sbopCancelMap = new HashMap<String, String>();
					
					// オプションサービス契約番号
					sbopCancelMap.put("kk0401_op_svc_kei_no", childMap.get("kk0401_op_svc_kei_no"));

					// サブオプションサービス契約番号
					sbopCancelMap.put("kk0401_sbop_svc_kei_no", childMap.get("kk0401_sbop_svc_kei_no"));

					// 申込明細番号
					sbopCancelMap.put("kk0401_mskm_dtl_no", childMap.get("kk0401_mskm_dtl_no"));

					// サービスキャンセル理由コード
					sbopCancelMap.put("kk0401_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

					// 異動区分 （照会時の異動区分でなく、キャンセルした業務の異動区分をセット:障害_No_20120209_11）
					sbopCancelMap.put("kk0401_ido_div", idoDiv);

					// 更新年月日時分秒(更新前)
					sbopCancelMap.put("kk0401_upd_dtm_bf", childMap.get("kk0401_last_upd_dtm"));

					sbopCancelList.add(sbopCancelMap);
					
					opCancelMap.put("sbop_cancel_list", sbopCancelList);
					
					opCancelList.add(opCancelMap);

					continue;
				}
			}
		}

		//
		// オプションサービス契約キャンセル（リモートサポートプラス用）
		//

		if(!opRemotePlus && null != remoteSupportMap)
		{
			// オプションサービス契約キャンセルマップ
			HashMap<String, Object> opCancelMap = new HashMap<String, Object>();
			
			// オプションサービス契約番号
			opCancelMap.put("kk0351_op_svc_kei_no", remoteSupportMap.get("kk0351_op_svc_kei_no"));

			// 申込明細番号
			opCancelMap.put("kk0351_mskm_dtl_no", remoteSupportMap.get("kk0351_mskm_dtl_no"));

			// サービスキャンセル理由コード
			opCancelMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

			// 異動区分
			opCancelMap.put("kk0351_ido_div", remoteSupportMap.get("kk0351_ido_div"));

			// 更新年月日時分秒(更新前)
			opCancelMap.put("kk0351_upd_dtm_bf", remoteSupportMap.get("kk0351_last_upd_dtm"));

			opCancelList.add(opCancelMap);
		}

		//
		// オプションサービス契約キャンセル（スマートリンクプレミアム用）
		//
		if (!tablePremiumPack && null != smartlinkPremiumMap)
		{
			// オプションサービス契約キャンセルマップ
			HashMap<String, Object> opCancelMap = new HashMap<String, Object>();
			
			// オプションサービス契約番号
			opCancelMap.put("kk0351_op_svc_kei_no", smartlinkPremiumMap.get("kk0351_op_svc_kei_no"));

			// 申込明細番号
			opCancelMap.put("kk0351_mskm_dtl_no", smartlinkPremiumMap.get("kk0351_mskm_dtl_no"));

			// サービスキャンセル理由コード
			opCancelMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

			// 異動区分
			opCancelMap.put("kk0351_ido_div", smartlinkPremiumMap.get("kk0351_ido_div"));

			// 更新年月日時分秒(更新前)
			opCancelMap.put("kk0351_upd_dtm_bf", smartlinkPremiumMap.get("kk0351_last_upd_dtm"));

			opCancelList.add(opCancelMap);
		}
// ANK-4427-00-00 ADD START
		
		// オプション更新リスト
		ArrayList<HashMap<String, Object>> opUpdateList = new ArrayList<HashMap<String, Object>>();

		// typeNのオプション処理
		if (typenOpList.size() > 0)
		{
			// typeNのオプションキャンセルをチェック
			if (!bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TEL_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// オプションのキャンセル
				HashMap<String, Object> opCancelMap = new HashMap<String, Object>();
				
				// オプションサービス契約番号
				opCancelMap.put("kk0351_op_svc_kei_no", typenOpList.get(0).get("kk0351_op_svc_kei_no"));

				// 申込明細番号
				opCancelMap.put("kk0351_mskm_dtl_no", typenOpList.get(0).get("kk0351_mskm_dtl_no"));

				// サービスキャンセル理由コード
				opCancelMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

				// 異動区分
				opCancelMap.put("kk0351_ido_div", typenOpList.get(0).get("kk0351_ido_div"));

				// 更新年月日時分秒(更新前)
				opCancelMap.put("kk0351_upd_dtm_bf", typenOpList.get(0).get("kk0351_last_upd_dtm"));

				// サブオプションのキャンセルも同時指定
				opCancelMap.put("sbop_cancel_list", typenSbOpCancelList);

				// オプションキャンセルリストに追加
				opCancelList.add(opCancelMap);
			}
			else 
			{
				// オプションサービス契約更新マップを作成
				HashMap<String, Object> updOpMap = createTypeNTelOption(bean, sysid, seikyKeiNo, typenOpList);
				// オプション更新リストに追加
				opUpdateList.add(updOpMap);
				
				// サブオプションのキャンセル分は更新マップとは別指定
				if (typenSbOpCancelList.size() > 0)
				{
					// サブオプションのみキャンセル
					HashMap<String, Object> opCancelMap = new HashMap<String, Object>();
					opCancelMap.put("sbop_cancel_list", typenSbOpCancelList);
					opCancelList.add(opCancelMap);
				}
			}
			
		}

		parentMap.put("op_isp_upd_list", opUpdateList);	
		
// ANK-4427-00-00 ADD END
		parentMap.put("op_cancel_list", opCancelList);

		//
		// オプションサービス契約<サポート>登録（リモートサポートプラス用）
		//
		
		if(opRemotePlus && null == remoteSupportMap)
		{
			// オプションサービスコード
			parentMap.put("kk0391_op_svc_cd", JKKStrConst.OP_SVC_CD_RMTSPRT_PLUS);

			// 料金コースコード
			parentMap.put("kk0391_pcrs_cd", JKKStrConst.OPSVC_PCRS_RMTSPRT_PLUS);

			// 料金プランコード
			parentMap.put("kk0391_pplan_cd", JKKStrConst.OPSVC_PPLAN_RMTSPRT_PLUS);

			// 親契約識別コード
			parentMap.put("kk0391_oya_kei_skbt_cd", "01");

			// サービス契約番号
			parentMap.put("kk0391_svc_kei_no", netMap.get("kk0081_svc_kei_no"));

			// SYSID
			parentMap.put("kk0391_sysid", sysid);

			// 申込明細番号
			parentMap.put("kk0391_mskm_dtl_no", netMap.get("kk0081_mskm_dtl_no"));

			// 異動区分
			parentMap.put("kk0391_ido_div", netMap.get("kk0081_ido_div"));

			// 請求契約番号
			parentMap.put("kk0391_seiky_kei_no", seikyKeiNo);

			// 更新年月日時分秒(更新前)
			parentMap.put("kk0391_upd_dtm_bf", netMap.get("kk0081_last_upd_dtm"));
		}
		
		//
		// オプションサービス契約<ISP>登録明細
		//    スマートリンクプレミアム用
		//
// ANK-4427-00-00 Modify START
//		ArrayList<HashMap<String, String>> opIspAddlList = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, Object>> opIspAddlList = new ArrayList<HashMap<String, Object>>();
// ANK-4427-00-00 Modify END

		//
		// オプションサービス契約<ISP>登録（スマートリンクプレミアム用）
		//
		if (tablePremiumPack && null == smartlinkPremiumMap)
		{
// ANK-4427-00-00 Modify START
//			HashMap<String, String> opIspMap = new HashMap<String, String>();
			HashMap<String, Object> opIspMap = new HashMap<String, Object>();
// ANK-4427-00-00 Modify END

			// オプションサービスコード
			opIspMap.put("kk0361_op_svc_cd", JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM);

			// 料金コースコード
			opIspMap.put("kk0361_pcrs_cd", JKKStrConst.OPSVC_PCRS_SMARTLINK_PREMIUM);
			
			// 料金プランコード
			opIspMap.put("kk0361_pplan_cd", JKKStrConst.OPSVC_PPLAN_SMARTLINK_PREMIUM);

			// 親契約識別コード
			opIspMap.put("kk0361_oya_kei_skbt_cd", JKKStrConst.CD_DIV_OYAKEISKBTCD_SVCKEI);

			// サービス契約番号
			opIspMap.put("kk0361_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));

			// SYSID
			opIspMap.put("kk0361_sysid", sysid);

			// 申込明細番号
			opIspMap.put("kk0361_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

			// 異動区分
			opIspMap.put("kk0361_ido_div", (String)netMap.get("kk0081_ido_div"));

			// 請求契約番号
			opIspMap.put("kk0361_seiky_kei_no", seikyKeiNo);

			// 更新年月日時分秒(更新前)
			opIspMap.put("kk0361_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));

			opIspAddlList.add(opIspMap);
		}
// ANK-4427-00-00 ADD START
		// typeNオプションの追加
		if (typenOpList.isEmpty() && bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TEL_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 MOD START
//			opIspAddlList.add(createTypeNTelOption(bean, sysid, (String)netMap.get("kk0081_ido_div"), seikyKeiNo));
			
			// 一旦新規で作成
			HashMap<String, Object> resultMap = createTypeNTelOption(bean, sysid, (String)netMap.get("kk0081_ido_div"), seikyKeiNo);
			// 以下の項目をサービス契約から引継する
			// サービス契約番号
			resultMap.put("kk0361_svc_kei_no", (String)netMap.get("kk0081_svc_kei_no"));
			// 申込明細番号
			resultMap.put("kk0361_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));
			
			opIspAddlList.add(resultMap);
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 MOD END
		}
// ANK-4427-00-00 ADD END
		parentMap.put("op_isp_add_list", opIspAddlList);

		//
		// サービス契約<eo光ネット>情報変更（審査結果用）
		//

		// サービス契約番号
		parentMap.put("kk0091_svc_kei_no", (String)netMap.get("kk0091_svc_kei_no"));

		// 申込明細番号
		parentMap.put("kk0091_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

		// 整理番号
		parentMap.put("kk0091_seiri_no", (String)netMap.get("kk0081_seiri_no"));

		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			// 面開発案件番号
			parentMap.put("kk0091_menkaihat_anken_no",
					bean[0].sendMessageString(KKW00101SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 変更元法人eo読替サービス契約番号
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null)
				|| isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null)
				|| isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			// 変更元法人eo読替サービス契約番号
			parentMap.put("kk0091_chmt_hjin_eo_ykae_svkei_no", bean[0].sendMessageString(KKW00101SFConst.TOKKI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// <-- 2012/03/27追加 UI残760 

		// サービス利用開始希望年月日
		if (isMansion)
		{
			String yyyy = bean[0].sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			String mm = bean[0].sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
			String dd = bean[0].sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
			parentMap.put("kk0091_svc_use_sta_kibo_ymd", yyyy + mm + dd);
		}
		else
		{
			parentMap.put("kk0091_svc_use_sta_kibo_ymd", (String)netMap.get("kk0081_rsv_tsta_kibo_ymd"));
		}

		// ID速報書出力要否
		parentMap.put("kk0091_id_sokhosho_output_yh", (String)netMap.get("kk0081_id_sokhosho_output_yh"));

		// 審査結果コード
		parentMap.put("kk0091_skekka_cd", (String)netMap.get("kk0081_skekka_cd"));

		// 審査結果詳細コード
		parentMap.put("kk0091_skekka_dtl_cd", (String)netMap.get("kk0081_skekka_dtl_cd"));

		// 審査結果補記コード
		parentMap.put("kk0091_skekka_hoki_cd", (String)netMap.get("kk0081_skekka_hoki_cd"));

		// 審査結果送信コード
		parentMap.put("kk0091_skekka_send_cd", (String)netMap.get("kk0081_skekka_send_cd"));
		
		// 支払い方法継続フラグ
		parentMap.put("kk0091_payway_keizoku_flg", (String)netMap.get("kk0081_payway_keizoku_flg"));

		// 試用加入年月日
		parentMap.put("kk0091_ftrial_kanyu_ymd", (String)netMap.get("kk0081_ftrial_kanyu_ymd"));

		// 試用期間終了年月日
		parentMap.put("kk0091_ftrial_prd_endymd", (String)netMap.get("kk0081_ftrial_prd_endymd"));

		// 本加入年月日
		parentMap.put("kk0091_honkanyu_ymd", (String)netMap.get("kk0081_honkanyu_ymd"));

		// 本加入移行期限年月日
		parentMap.put("kk0091_honkanyu_iko_kigen_ymd", (String)netMap.get("kk0081_honkanyu_iko_kigen_ymd"));

		// レター発送仕分区分
		parentMap.put("kk0091_letter_hasso_shiwake_div", (String)netMap.get("kk0081_letter_hasso_shiwake_div"));

		// サンキューレター送付先コード
		parentMap.put("kk0091_thnx_letter_shs_cd", (String)netMap.get("kk0081_thnx_letter_shs_cd"));

		// WEBオプション追加不可フラグ
		parentMap.put("kk0091_web_op_add_fail_flg", (String)netMap.get("kk0081_web_op_add_fail_flg"));

		// 違約金発生コード
		parentMap.put("kk0091_pnlty_hassei_cd", (String)netMap.get("kk0081_pnlty_hassei_cd"));

		// 異動区分
		parentMap.put("kk0091_ido_div", (String)netMap.get("kk0081_ido_div"));

		// 紹介コード
		parentMap.put("kk0091_intr_cd", bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 異動NG状態コード
		parentMap.put("kk0091_ido_ng_stat_cd", (String)netMap.get("kk0081_ido_ng_stat_cd"));

		// 業務連絡備考
		parentMap.put("kk0091_work_rrk_biko", bean[0].sendMessageString(KKW00101SFConst.NET_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));

		// 固定IPアドレス引継ぎ有無
		parentMap.put("kk0091_kotei_ip_ad_hktgi_um", (String)netMap.get("kk0091_kotei_ip_ad_hktgi_um"));

		// PCパック有無
		parentMap.put("kk0091_pc_pack_um", (String)netMap.get("kk0091_pc_pack_um"));

		// 自動照査処理状態コード
		parentMap.put("kk0091_auto_shosa_tran_stat_cd", (String)netMap.get("kk0081_auto_shosa_tran_stat_cd"));

// ANK-4427-00-00 ADD START
		// サービス契約<eo光ネット>へのtypeN項目をマッピングする
		if (BRAND_TYPE_TYPEN.equals(bean[0].sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// マッピング処理
			mappingKK0091(bean, parentMap);
		}
// ANK-4427-00-00 ADD END

		// 更新年月日時分秒(更新前)
		parentMap.put("kk0091_upd_dtm_bf", (String)netMap.get("kk0091_last_upd_dtm"));

		//
		// 割引サービス契約キャンセルリスト
		//

		ArrayList<HashMap<String, String>> cancelWribList = new ArrayList<HashMap<String, String>>();
		ArrayList<String> addWribSvcCdList = new ArrayList<String>();

		if(!isMansion)
		{	// マンション以外の場合
			if(!sokuwrib)
			{
				if(null != sokuWariMap)
				{	// 即割 → 長期利用割引
					
					// 即割キャンセル
					cancelWribList.add(sokuWariMap);
					
					// ANK-4468-00-00 ADD START
// ANK-4427-00-00 Modify START
//					if(!"A97".equals(pcourse) && !"A99".equals(pcourse))
					if(isEnabledChokiUseWrib(bean, pcourse))
// ANK-4427-00-00 Modify END
					{
					// ANK-4468-00-00 ADD END
					// 長期利用割引登録
					// ANK-4468-00-00 MOD START
					//addWribSvcCdList.add(JKKStrConst.WRIB_SVC_CHOKI_USE_WRIB);
						addWribSvcCdList.add(JKKStrConst.WRIB_SVC_CHOKI_USE_WRIB);
					// ANK-4468-00-00 MOD END
					// ANK-4468-00-00 ADD START
					}
					// ANK-4468-00-00 ADD END
				}
			}
			else if(sokuwrib)
			{
				if(null != choWariMap)
				{	// 長期利用割引 → 即割
					
					// 長期利用割引キャンセル
					cancelWribList.add(choWariMap);

					// 即割登録
					addWribSvcCdList.add(JKKStrConst.WRIB_SVC_SOKU_WRIB);
				}
			}
			
			if (null == chokzuWriMap)
			{
				if (chokzuwrib)
				{	// なし → 長期継続利用割引
					addWribSvcCdList.add(JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB);
				}
			}
			else
			{
				if (chokzuwrib)
				{	// 長期継続利用割引 → 長期継続利用割引
					
					// 長割自動継続が異なる場合
					if (isChokzuwriAtKeizkMskmUmBf != chokzuwriAtKeizkMskmUm)
					{
						// 長期継続利用割引キャンセル
						cancelWribList.add(chokzuWriMap);
						// 長期継続利用割引登録
						addWribSvcCdList.add(JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB);
					}
				}
				else
				{	// 長期継続利用割引 → なし
					cancelWribList.add(chokzuWriMap);
				}
			}
			// ANK-3412-05-00 ADD START
			if (null == kosokuWariMap)
			{
				if (kosokuwrib)
				{	// なし → 高速割
					addWribSvcCdList.add(JKKStrConst.WRIB_SVC_KOSOKU_WRIB);
				}
			}
			else
			{
				if (!kosokuwrib)
				{
					// 高速割 → なし
					cancelWribList.add(kosokuWariMap);
				}
			}
			// ANK-3412-05-00 ADD END
		}

		int famipa = 0;
		if(null != familyPackWariMap && !opFamilyPack)
		{	// ファミリーパックあり → ファミリーパックなし
			// ファミリーパックキャンセル
			cancelWribList.add(familyPackWariMap);
		}
		else if(null == familyPackWariMap && opFamilyPack)
		{	// ファミリーパックなし → ファミリーパックあり
			famipa = 1;
		}
		parentMap.put("isFamipa", famipa);

		ArrayList<HashMap<String, String>> wribCancelList = new ArrayList<HashMap<String, String>>();
		HashMap<String, String> wribCancelMap = null;
		for(HashMap<String, String> mp : cancelWribList)
		{
			wribCancelMap = new HashMap<String, String>();

			// 割引サービス契約番号
			wribCancelMap.put("kk0451_wrib_svc_kei_no", mp.get("kk0451_wrib_svc_kei_no"));

			// 申込明細番号
			wribCancelMap.put("kk0451_mskm_dtl_no", mp.get("kk0451_mskm_dtl_no"));

			// サービスキャンセル理由コード
			wribCancelMap.put("kk0451_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

			// 異動区分
			wribCancelMap.put("kk0451_ido_div", mp.get("kk0451_ido_div"));

			// 割引解約キャンセル契機コード
			wribCancelMap.put("kk0451_wrib_dsl_cncl_opty_cd", ADD_OPTY_CD_MANUAL);

			// 更新年月日時分秒(更新前)
			wribCancelMap.put("kk0451_upd_dtm_bf", mp.get("kk0451_last_upd_dtm"));

			wribCancelList.add(wribCancelMap);
		}

		parentMap.put("wrib_cancel_list", wribCancelList);

		//
		// 割引サービス契約登録リスト
		//
		

		ArrayList<HashMap<String, Object>> wribAddList = new ArrayList<HashMap<String, Object>>();
		for(String wribSvcCd : addWribSvcCdList)
		{
			HashMap<String, Object> wribAddMap = new HashMap<String, Object>();

			/*-----------------------------------------------
			 * 割引サービス対象サービスコード一覧照会
			 *-----------------------------------------------*/
			// ＫＥＹ＿割引サービスコード
			wribAddMap.put("kk0451_key_wrib_svc_cd", wribSvcCd);
			
			// ＫＥＹ＿サービスコード
			wribAddMap.put("kk0451_key_svc_cd", getNetSvcCd(bean[0]));
			
			// ＫＥＹ＿料金グループコード
			wribAddMap.put("kk0451_key_prc_grp_cd", prcGrpCd);
			
			if(JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB.equals(wribSvcCd))
			{	// 長期継続利用割引
				
				// ＫＥＹ＿料金コースコード
				wribAddMap.put("kk0451_key_pcrs_cd", pcourse);
				
				// ＫＥＹ＿料金プランコード
				wribAddMap.put("kk0451_key_pplan_cd", pPlanCd);
			}
			
			/*-----------------------------------------------
			 * 割引サービス契約登録
			 *-----------------------------------------------*/
			// SYSID
			wribAddMap.put("kk0451_sysid", sysid);

			// 割引サービスコード
			wribAddMap.put("kk0451_wrib_svc_cd", wribSvcCd);

			// 申込明細番号
			wribAddMap.put("kk0451_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

			// 即時適用フラグ
			wribAddMap.put("kk0451_aply_jun", "1");	// 1（する）

			// 異動区分
			wribAddMap.put("kk0451_ido_div", (String)netMap.get("kk0081_ido_div"));

			// 申込起算年月日 ← FormBeanの申込年月日（年）、申込年月日（月）、申込年月日（日）を設定
			wribAddMap.put("kk0451_mskm_kisan_ymd", mskmYmd);

			// 割引登録契機コード
			wribAddMap.put("kk0451_wrib_add_opty_cd", ADD_OPTY_CD_MANUAL);	// 2（手動設定）

			if(JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB.equals(wribSvcCd))
			{	// 長期継続利用割引
				
				// 割引サービス契約自動継続識別コード
				if (chokzuwriAtKeizkMskmUm)
				{
					wribAddMap.put("kk0451_wrib_svc_kei_at_keizk_skcd", JKKStrConst.WRIB_SVC_KEI_AT_KEIZK_ARI);
				}
				else
				{
					wribAddMap.put("kk0451_wrib_svc_kei_at_keizk_skcd", JKKStrConst.WRIB_SVC_KEI_AT_KEIZK_NASHI);
				}
			}

			// 更新年月日時分秒(更新前)
			wribAddMap.put("kk0451_upd_dtm_bf", (String)netMap.get("kk0081_last_upd_dtm"));

			// 割引サービス対象契約明細
			ArrayList<HashMap<String, String>> wribAddDtlList = new ArrayList<HashMap<String, String>>();
			HashMap<String, String> wribAddDtlMap = new HashMap<String, String>();

			// 対象契約識別コード
			wribAddDtlMap.put("kk0451_tg_kei_skbt_cd", "01");	// 01（サービス契約）

			// サービス契約番号
			wribAddDtlMap.put("kk0451_svc_kei_no", (String)netMap.get("kk0091_svc_kei_no"));

			// 設定登録年月日
			if (!JKKStrConst.WRIB_SVC_FAMIPA.equals(wribSvcCd))
			{	//ファミリーパック割引以外の場合
				
				wribAddDtlMap.put("kk0451_set_add_ymd", opeDate);
			}

			// 割引サービス対象契約適用開始年月日
			wribAddDtlMap.put("kk0451_wrisvc_tg_kei_tstaymd", opeDate);

			// 割引サービス対象契約適用終了年月日
			wribAddDtlMap.put("kk0451_wrisvc_tg_kei_tendymd", END_YMD);
			
			wribAddDtlList.add(wribAddDtlMap);
			wribAddMap.put("kk0451_EKK0451D010CBSMsg1List", wribAddDtlList);

			wribAddList.add(wribAddMap);
		}
		parentMap.put("wrib_add_list", wribAddList);

		// 
		// 割賦契約
		// 
		boolean isAddKap = false;
		boolean isCancelKap = false;
		HashMap<String, String> kapTabletMap = null;
		ArrayList<HashMap<String, String>> kapMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("kk2541_EKK2541B502CBSMsg1List");
		ArrayList<HashMap<String, String>> kapCancelList = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, String>> kapAddList = new ArrayList<HashMap<String, String>>();
		ArrayList<HashMap<String, String>> kapUpdList = new ArrayList<HashMap<String, String>>();
		
		parentMap.put("kap_cancel_list", kapCancelList);
		parentMap.put("kap_add_list", kapAddList);
		parentMap.put("kap_upd_list", kapUpdList);
		
		if (kapMsg1List != null)
		{
			for (HashMap<String, String> mp : kapMsg1List)
			{
				// 割賦契約は1件想定のため
				kapTabletMap = mp;
			}
		}

		String tabletKikiModelCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TABLET_TNMT_NM_LIST,
				KKW00101SFConst.TABLET_SELECT_CD_17, KKW00101SFConst.TABLET_KIKI_MODEL_CD_LIST_17);
		String kapHambaiFormCd = getNetKapHambaiFormCd(JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TABLET_PAYWAY_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
		String tabletTnmtBuyUkTntshaNm = bean[0].sendMessageString(KKW00101SFConst.TABLET_TNMT_BUY_UK_TNTSHA_NM,
				X31CWebConst.DATABEAN_GET_VALUE);
		if ((null != kktkTabletMap) && tabletBuy)
		{	// あり → あり
			if (!tabletKikiModelCd.equals((String)kktkTabletMap.get("kk0341_taknkiki_model_cd")))
			{	// 端末名が変更された場合
				isCancelKap = true;
				isAddKap = true;
			}
			else if (!kapHambaiFormCd.equals((String)kapTabletMap.get("kk2541_kap_hambai_form_cd")))
			{	// お支払方法が変更された場合
				isCancelKap = true;
				isAddKap = true;
			}
			else if (!tabletTnmtBuyUkTntshaNm.equals((String)kapTabletMap.get("kk2541_tnmt_buy_uk_tntsha_nm")))
			{	// 端末購入受付担当者名が変更された場合
				isCancelKap = true;
				isAddKap = true;
			}
		}
		else if ((null != kktkTabletMap) && !tabletBuy)
		{	// あり → なし
			isCancelKap = true;
		}
		else if ((null == kktkTabletMap) && tabletBuy)
		{	// なし → あり
			isAddKap = true;
		}
		
		String kapPlanCd = JKKWebCommon.getNetKapPlanCd(bean[0], kksv007907scMap);
		String kapPayZanCnt = JKKWebCommon.getNetKapPayCnt(bean[0], kksv007907scMap);
		
		if (isCancelKap && isAddKap)
		{	// 割賦契約変更
			HashMap <String, String> kapMap = new HashMap<String, String>();
			
			// 割賦契約番号
			kapMap.put("kk2541_kap_kei_no", (String)kapTabletMap.get("kk2541_kap_kei_no"));
			
			// 割賦プランコード
			kapMap.put("kk2541_kap_plan_cd", kapPlanCd);
			
			// ANK-3636-00-00 ADD START
			// 消費税増税対応の割賦プランコードの取得を行う
			// 変換後割賦プランコード
			String afKapPlanCd = getKapPlanCd(bean[0], kksv007907scMap);
			
			// getKapPlanCd()で変換後割賦プランコードを取得出る場合は割賦プランコードを上書きする
			if (!"".equals(afKapPlanCd))
			{
				// 割賦プランコードの上書き
				kapMap.put("kk2541_kap_plan_cd", afKapPlanCd);
			}
			// ANK-3636-00-00 ADD END
			
			// 申込明細番号
			kapMap.put("kk2541_mskm_dtl_no", (String)kapTabletMap.get("kk2541_mskm_dtl_no"));
			
			// 異動区分
			kapMap.put("kk2541_ido_div", (String)netMap.get("kk0081_ido_div"));
			
			// 割賦一括請求切替年月
			kapMap.put("kk2541_KAP_IKT_SIKY_SWCH_YM", (String)kapTabletMap.get("kk2541_kap_ikt_siky_swch_ym"));
			
			// 割賦請求開始年月
			kapMap.put("kk2541_KAP_SEIKY_STA_YM", (String)kapTabletMap.get("kk2541_kap_seiky_sta_ym"));
			
			// 割賦支払い残回数
			kapMap.put("kk2541_kap_pay_zan_cnt", kapPayZanCnt);
			
			// プレミアムオプション再契約時割引非適用フラグ
			kapMap.put("kk2541_prmop_rekeiji_wrbhiapl_flg", (String)kapTabletMap.get("kk2541_prmop_rekeiji_wrbhiapl_flg"));
			
			// 端末購入受付担当者名
			kapMap.put("kk2541_tnmt_buy_uk_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.TABLET_TNMT_BUY_UK_TNTSHA_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			
			// 端末購入通知書出力識別コード
			kapMap.put("kk2541_tnmt_buy_tchisho_oput_skcd", (String)kapTabletMap.get("kk2541_tnmt_buy_tchisho_oput_skcd"));
			
			// 更新年月日時分秒(更新前)
			kapMap.put("kk2541_upd_dtm_bf", (String)kapTabletMap.get("kk2541_last_upd_dtm"));
			
			kapUpdList.add(kapMap);
		}
		else if (isCancelKap)
		{	// 割賦契約キャンセル
			HashMap <String, String> kapMap = new HashMap<String, String>();
			
			// 割賦契約番号
			kapMap.put("kk2541_kap_kei_no", (String)kapTabletMap.get("kk2541_kap_kei_no"));
			
			// 申込明細番号
			kapMap.put("kk2541_mskm_dtl_no", (String)kapTabletMap.get("kk2541_mskm_dtl_no"));
			
			// 異動区分
			kapMap.put("kk2541_ido_div", (String)kapTabletMap.get("kk2541_ido_div"));
			
			// 更新年月日時分秒(更新前)
			kapMap.put("kk2541_upd_dtm_bf", (String)kapTabletMap.get("kk2541_last_upd_dtm"));
			
			kapCancelList.add(kapMap);
		}
		else if (isAddKap)
		{	// 割賦契約登録
			HashMap <String, String> kapMap = new HashMap<String, String>();
			
			// 割賦プランコード
			kapMap.put("kk2541_kap_plan_cd", kapPlanCd);
			
			// ANK-3636-00-00 ADD START
			// 消費税増税対応の割賦プランコードの取得を行う
			// 変換後割賦プランコード
			String afKapPlanCd = getKapPlanCd(bean[0], kksv007907scMap);
			
			// getKapPlanCd()で変換後割賦プランコードを取得出る場合は割賦プランコードを上書きする
			if (!"".equals(afKapPlanCd))
			{
				// 割賦プランコードの上書き
				kapMap.put("kk2541_kap_plan_cd", afKapPlanCd);
			}
			// ANK-3636-00-00 ADD END

			// 申込明細番号
			kapMap.put("kk2541_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));

			// 異動区分
			kapMap.put("kk2541_ido_div", (String)netMap.get("kk0081_ido_div"));

			// 割賦支払い残回数
			kapMap.put("kk2541_kap_pay_zan_cnt", kapPayZanCnt);

			// 端末購入通知書出力識別コード
			kapMap.put("kk2541_tnmt_buy_tchisho_oput_skcd", JKKStrConst.CD01468_OUTPUT_NECESSARY); // 1（出力要）

			// 端末購入受付担当者名
			kapMap.put("kk2541_tnmt_buy_uk_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.TABLET_TNMT_BUY_UK_TNTSHA_NM,
					X31CWebConst.DATABEAN_GET_VALUE));

			kapAddList.add(kapMap);
		}

// ANK-3987-00-00 ADD START
		
		// 
		// 端末購入通知書情報
		// 
		boolean isAddTsho = false;
		boolean isUpdTsho = false;
		HashMap<String, String> TshoSmpMap = null;
		ArrayList<HashMap<String, String>> tshoMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("kk3271_EKK3271B010CBSMsg1List");

		
		if (tshoMsg1List != null)
		{
			for (HashMap<String, String> mp : tshoMsg1List)
			{
				// 端末購入通知書情報は1件想定のため
				TshoSmpMap = mp;
			}
		}
		boolean smpBuy = bean[0].sendMessageBoolean(KKW00101SFConst.IP_STB_RENTAL, X31CWebConst.DATABEAN_GET_VALUE);
		String smpTnmtBuyUkTntshaNm = bean[0].sendMessageString(KKW00101SFConst.SMP_TNMT_BUY_UK_TNTSHA_NM,
				X31CWebConst.DATABEAN_GET_VALUE);
		if ((null != TshoSmpMap) && smpBuy)
		{	// あり → あり

			if (!smpTnmtBuyUkTntshaNm.equals((String)TshoSmpMap.get("kk3271_tnmt_buy_uk_tntsha_nm")))
			{	// 端末購入受付担当者名が変更された場合
				isUpdTsho = true;
			}
		}
		else if ((null == TshoSmpMap) && smpBuy)
		{	// なし → あり
			isAddTsho = true;
		}
		
		
		if (isUpdTsho)
		{	// 端末購入通知書情報変更
			HashMap <String, String> childMap = new HashMap<String, String>();
			
			// 端末購入通知書情報番号
			childMap.put("kk3271_tmkntsho_inf_no", (String)TshoSmpMap.get("kk3271_tmkntsho_inf_no"));
			
			// 機器提供サービス契約番号
			childMap.put("kk3271_kktk_svc_kei_no", (String)TshoSmpMap.get("kk3271_kktk_svc_kei_no"));
			
			// 端末購入通知書出力識別コード
			childMap.put("kk3271_tnmt_buy_tchisho_oput_skcd", (String)TshoSmpMap.get("kk3271_tnmt_buy_tchisho_oput_skcd"));
			
			// 端末購入受付担当者名
			childMap.put("kk3271_tnmt_buy_uk_tntsha_nm",  bean[0].sendMessageString(KKW00101SFConst.SMP_TNMT_BUY_UK_TNTSHA_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			
			// 申込明細番号
			childMap.put("kk3271_mskm_dtl_no", (String)TshoSmpMap.get("kk3271_mskm_dtl_no"));
			
			// 更新年月日時分秒(更新前)
			childMap.put("kk3271_upd_dtm_bf", (String)TshoSmpMap.get("kk3271_upd_dtm"));

			
			parentMap.put("tsho_upd", childMap);
		}
		else if (isAddTsho)
		{	// 端末購入通知書情報登録
			HashMap <String, String> childMap = new HashMap<String, String>();
			
			// 端末購入通知書出力識別コード
			childMap.put("kk3271_tnmt_buy_tchisho_oput_skcd", JKKStrConst.CD01468_OUTPUT_NECESSARY); // 1（出力要）
			
			// 端末購入受付担当者名
			childMap.put("kk3271_tnmt_buy_uk_tntsha_nm",  bean[0].sendMessageString(KKW00101SFConst.SMP_TNMT_BUY_UK_TNTSHA_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			
			// 申込明細番号
			childMap.put("kk3271_mskm_dtl_no", (String)netMap.get("kk0081_mskm_dtl_no"));
			
			parentMap.put("tsho_add", childMap);
		}
// ANK-3987-00-00 ADD END

		outputMap.put("KKSV008008CC", parentMap);

		return outputMap;
	}
	
	/**
	 * eo光TV変更の上りマッピングを行います。
	 * <br>
	 * @param bean 申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDate 運用日付(yyyymmdd)
	 * @param mansionMap マンション情報マップ
	 * @param viewLogic ビューロジック
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008017CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap mskmMap,
			String opeDate, HashMap mansionMap, JCCWebBusinessLogic viewLogic) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap preMap = (HashMap)mskmMap.get("KKSV007906CC");
		if (preMap == null)
		{
			return null;
		}
		
		X31SDataBeanAccessArray dataBeanArray = null;
		X31SDataBeanAccess subBean = null;

		// 支払請求情報の取得
		String seiky_kei_no = getSeikyKeiNo(mskmMap); // 請求契約番号
		
		X31SDataBeanAccess dataBean = bean[0];

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// SYSID
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 異動区分
		String idoDiv = getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込年月日
		String mskmYmd =
			dataBean.sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
				+ dataBean.sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
				+ dataBean.sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);

		parentMap.put("kk0021_mskm_dtl_no", (String)preMap.get("kk0021_mskm_dtl_no")); // 申込明細番号
		parentMap.put("kk0021_mskmsho_no", dataBean.sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE)); // 申込書番号
		parentMap.put("kk0021_mskm_ymd", mskmYmd); // 申込年月日
		parentMap.put("kk0021_mskm_form_cd", getAddMskmFormCd(bean[0]));// 申込形態コード
		parentMap.put("kk0021_mskm_dtl_sbt_cd", (String)preMap.get("kk0021_mskm_dtl_sbt_cd")); // 申込明細種別コード
		parentMap.put("kk0021_rrks_ktai_telno", (String)preMap.get("kk0021_rrks_ktai_telno")); // 連絡先携帯電話番号
		parentMap.put("kk0021_rrks_offc_nm", (String)preMap.get("kk0021_rrks_offc_nm")); // 連絡先勤務先名
		parentMap.put("kk0021_dt_rrks_telno", (String)preMap.get("kk0021_dt_rrks_telno")); // 昼間連絡先電話番号
		parentMap.put("kk0021_new_mskm_sbt_cd", (String)preMap.get("kk0021_new_mskm_sbt_cd")); // 新規申込種別コード
		parentMap.put("kk0021_mskm_optnty_cd", (String)preMap.get("kk0021_mskm_optnty_cd")); // 申込契機コード
		parentMap.put("kk0021_takcho_kibo_apo_kigen_ymd", (String)preMap.get("kk0021_takcho_kibo_apo_kigen_ymd")); // 宅内調査希望アポ期限年月日
		parentMap.put("kk0021_koji_apo_rrks_shitei_cd", (String)preMap.get("kk0021_koji_apo_rrks_shitei_cd")); // 工事アポ連絡先指定コード
		parentMap.put("kk0021_koji_apo_rrks_telno", (String)preMap.get("kk0021_koji_apo_rrks_telno")); // 工事アポ連絡先電話番号
		parentMap.put("kk0021_rrk_jiko_add_dtm", (String)preMap.get("kk0021_rrk_jiko_add_dtm")); // 連絡事項登録年月日時分秒
		parentMap.put("kk0021_koji_prg_tchi_mlad", (String)preMap.get("kk0021_koji_prg_tchi_mlad")); // 工事進捗通知メールアドレス
		parentMap.put("kk0021_rrk_jiko", (String)preMap.get("kk0021_rrk_jiko")); // 連絡事項
		parentMap.put("kk0021_rcnt_shokai_ymd", (String)preMap.get("kk0021_rcnt_shokai_ymd"));// 最新照会年月日
		parentMap.put("kk0021_web_shokai_cnt", (String)preMap.get("kk0021_web_shokai_cnt"));// Web照会回数
		parentMap.put("kk0021_pc_shokai_cnt", (String)preMap.get("kk0021_pc_shokai_cnt"));// PC照会回数
		parentMap.put("kk0021_ktai_shokai_cnt", (String)preMap.get("kk0021_ktai_shokai_cnt"));// 携帯照会回数
		parentMap.put("kk0021_kjsc_tch_ktai_mlad", (String)preMap.get("kk0021_kjsc_tch_ktai_mlad")); // 工事進捗通知携帯メールアドレス
		parentMap.put("kk0021_kjsc_tch_pc_mlad_chg_ymd", (String)preMap.get("kk0021_kjsc_tch_pc_mlad_chg_ymd")); // 工事進捗通知PCメールアドレス変更年月日
		parentMap.put("kk0021_kjsc_tch_ktai_mlad_chg_ymd"
				, (String)preMap.get("kk0021_kjsc_tch_ktai_mlad_chg_ymd")); // 工事進捗通知携帯メールアドレス変更年月日
		parentMap.put("kk0021_ml_send_jgi_flg", (String)preMap.get("kk0021_ml_send_jgi_flg")); // メール送信除外フラグ
		parentMap.put("kk0021_ml_send_jgi_rsn_memo", (String)preMap.get("kk0021_ml_send_jgi_rsn_memo")); // メール送信除外理由メモ
		parentMap.put("kk0021_bmp_mskm_rrks_tln", (String)preMap.get("kk0021_bmp_mskm_rrks_tln")); // 番ポ申込連絡先電話番号
		parentMap.put("kk0021_dsl_aticle_sohu_kibo_um", (String)preMap.get("kk0021_dsl_aticle_sohu_kibo_um")); // 解約書類送付希望有無
		parentMap.put("kk0021_upd_dtm_bf", (String)preMap.get("kk0021_last_upd_dtm")); // 更新年月日時分秒(更新前)
		parentMap.put("kk0021_mskmsho_dtl_no", 
				dataBean.sendMessageString(KKW00101SFConst.TV_MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE)); // 申込書明細番号

		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{	// 追加の場合
			// オプションサービス引継有無
			String opSvcHktgiUm = UMU_NASI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.SVC_NYO_HKTGI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				opSvcHktgiUm = UMU_ARI;
			}
			parentMap.put("kk0021_op_svc_hktgi_um", opSvcHktgiUm);
			
			String dslAticleSohuKiboUm = UMU_NASI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO, X31CWebConst.DATABEAN_GET_VALUE))
			{
				dslAticleSohuKiboUm = UMU_ARI;
			}
			// 解約書類送付希望有無
			parentMap.put("kk0021_dsl_aticle_sohu_kibo_um", dslAticleSohuKiboUm);
		}
		
		// 本人確認書類種別コード
		String hninCfmCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SBT_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		hninCfmCd = (JKKStrConst.CD01566_9.equals(hninCfmCd))?(""):(hninCfmCd);
		
		parentMap.put("kk0021_hnin_cfm_aticle_sbt_cd", hninCfmCd);

		//本人確認書類コードがその他の場合
		if (JKKStrConst.CD00714_3.equals(hninCfmCd))
		{
			parentMap.put("kk0021_hnin_cfm_aticle_nm",
					bean[0].sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込形態コード
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込書の種類
		String mskmshoKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		// 住居タイプ
		String jyukyoType = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && (MSKM_KIND_HOME.equals(mskmshoKind) || MSKM_KIND_MEZON.equals(mskmshoKind)))
		{	// 書面申込のホームまたはメゾン
			// 地図添付有無
			String mapTempUm = JKKWebCommon.getPullDownCode(
					bean[0], KKW00101SFConst.MAPTEMP_ARI, KKW00101SFConst.MAP_TEMP_UM_CD_38, KKW00101SFConst.MAP_TEMP_UM_CD_LIST_38);
			parentMap.put("kk0021_map_temp_um", mapTempUm);
			// 申込書取扱情報担当者名
			parentMap.put("kk0021_mskmsho_trat_if_tntsha_nm"
					, bean[0].sendMessageString(KKW00101SFConst.TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 申込書取扱情報電話番号
			parentMap.put("kk0021_mskmsho_trat_if_telno"
					, bean[0].sendMessageString(KKW00101SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込連絡先メールアドレス
		parentMap.put("kk0021_mskm_rrks_mlad", bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE));		

		// マンション設備システム連携用記事欄 (2012/04/20追加 UI残759)
		parentMap.put("kk0021_manssbsys_rnki_yo_kijiran", bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));
		
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			// 新築物件コード
			parentMap.put("kk0021_newconst_bukken_cd", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.NEWCONST_BUKKEN, 
																				JKKStrConst.NEWCONST_BUKKEN_YES, JKKStrConst.NEWCONST_BUKKEN_NO));

			// 復活案件フラグ
			parentMap.put("kk0021_hukkat_anken_flg", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.HUKKAT_ANKEN, 
																				JKKStrConst.HUKKAT_ANKEN_YES, JKKStrConst.HUKKAT_ANKEN_NO));

			// 同一設備再申込コード
			String sameEquipReMskmCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SAME_EQUIP_RE_MSKM
														, KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_56, KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_LIST_56);
			parentMap.put("kk0021_same_equip_re_mskm_cd", sameEquipReMskmCd);

			// ANK-4468-04-00 DEL START
//			// ANK-4088-00-00 ADD START
//			// 宅内調査のアポ架電希望
//			parentMap.put("kk0021_takcho_apo_kaden_kibo_um", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM, 
//																				JKKStrConst.KIBO_YES, JKKStrConst.KIBO_NO));
//			// ANK-4088-00-00 ADD END
			// ANK-4468-04-00 DEL END
			// ANK-4468-04-00 ADD START
			// 宅内調査のアポ架電希望の判定
			parentMap.put("kk0021_takcho_apo_kaden_kibo_um", getApoKadenUmCode(bean[0], KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM));
			// ANK-4468-04-00 ADD END		
		}
		else
		{
			// 復活案件フラグ
			parentMap.put("kk0021_hukkat_anken_flg", HUKKAT_NASHI);
			// 新築物件コード
			parentMap.put("kk0021_newconst_bukken_cd", NEWCONST_BKN_CD_SHKV);
			// 同一設備再申込コード
			parentMap.put("kk0021_same_equip_re_mskm_cd", SAME_EQUIP_RE_MSKM_CD_SHKV);
		}
		
		// 契約付加コード
		// マンション・メゾンの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null) || isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			String keiHukaCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.FUKA_LIST
											, KKW00101SFConst.FUKA_CD_57, KKW00101SFConst.FUKA_CD_LIST_57);
			parentMap.put("kk0021_kei_huka_cd", keiHukaCd);

			// マンションID
			parentMap.put("kk0021_mansion_id", bean[0].sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE));
			// CAT-ID
			parentMap.put("kk0021_catid", bean[0].sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込受付種別コード
		String mskmSbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MSKM_SBT
				, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		parentMap.put("kk0021_mkm_uk_sbt_cd", mskmSbtCd);

		String catvCompFlg = dataBean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		/** KCN */
		if (catvCompFlg.equals(JKKKeiNewCmnLogicUtil.CATV_COMP_FLG_KCN))
		{
			dataBeanArray = dataBean.getDataBeanArray(KKW00101SFConst.KCN_TUNER_USE_CNT_LIST);
			subBean = dataBeanArray.getDataBean(0);
			int kcnUseCnt = Integer.parseInt(subBean.sendMessageString(KKW00101SFConst.TUNER_USE_CNT_CD_22, X31CWebConst.DATABEAN_GET_VALUE)) + 1;
			String kcnCode = "";
			kcnCode = getKcnStbKindCd(dataBean, KKW00101SFConst.KCN_TUNER_USE_CNT_LIST,
					KKW00101SFConst.TUNER_USE_CNT_CD_22, KKW00101SFConst.KCN_TV_TUNER_LIST , KKW00101SFConst.KCN_TV_TUNER_04);
			
			//KCNSTB申込台数
			parentMap.put("kk0021_kcn_stb_mskm_cnt", String.valueOf(kcnUseCnt));
			//KCNSTB種類コード
			parentMap.put("kk0021_kcn_stb_kind_cd", kcnCode);
		}
		
		// ANK-3136-00-00 ADD START
		// ホーム・メゾンの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null) || isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			// 他システム連携_宅内調査要否
			String tsyrnTakchoYh = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_TAKCHO_HUYO_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnTakchoYh = JKKCommonConst.KH_FAIL;
			}
			else
			{
				tsyrnTakchoYh = JKKCommonConst.KH_PSG;
			}
			parentMap.put("kk0021_tsyrn_takcho_yh", tsyrnTakchoYh);
			// 他システム連携_工事連絡先氏名
			parentMap.put("kk0021_tsyrn_kj_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_工事連絡先電話番号
			parentMap.put("kk0021_tsyrn_kj_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先氏名
			parentMap.put("kk0021_tsyrn_takcho_ji_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先電話番号
			parentMap.put("kk0021_tsyrn_takcho_ji_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_連絡希望日時
			parentMap.put("kk0021_tsyrn_rrk_kibo_date", bean[0].sendMessageString(KKW00101SFConst.TSYRN_RRK_KIBO_DATE, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_地図有無
			String tsyrnMapUm = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_MAP_UM, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnMapUm = JKKCommonConst.UM_U;
			}
			else
			{
				tsyrnMapUm = JKKCommonConst.UM_M;
			}
			parentMap.put("kk0021_tsyrn_map_um", tsyrnMapUm);
			// 他システム連携_既存契約情報
			parentMap.put("kk0021_tsyrn_kzn_kei_inf", bean[0].sendMessageString(KKW00101SFConst.TSYRN_KZN_KEI_INF, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_不備解消年月日
			parentMap.put("kk0021_tsyrn_hbi_kaishou_ymd", bean[0].sendMessageString(KKW00101SFConst.TSYRN_HBI_KAISHOU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用有無
			String equipRyuyoUm = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TV_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				equipRyuyoUm = JKKCommonConst.UM_U;
			}
			else
			{
				equipRyuyoUm = JKKCommonConst.UM_M;
			}
			parentMap.put("kk0021_equip_ryuyo_um", equipRyuyoUm);
			// 流用元工事案件番号
			parentMap.put("kk0021_ryuyo_moto_kjak_no", bean[0].sendMessageString(KKW00101SFConst.TV_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用工事完了希望年月日
			String sbryKjFinKiboymd = bean[0].sendMessageString(KKW00101SFConst.TV_RYUYO_KIBO_Y, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.TV_RYUYO_KIBO_M, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.TV_RYUYO_KIBO_D, X31CWebConst.DATABEAN_GET_VALUE);
			parentMap.put("kk0021_sbry_kj_fin_kiboymd", sbryKjFinKiboymd);
			// ANK-4096-00-00 ADD START
			// 現在利用先契約回線区分
			parentMap.put("kk0021_now_use_sk_kei_kisn_div", bean[0].sendMessageString(KKW00101SFConst.USE_SK_KEI_KISN_DIV, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器設置場所変更有無
			parentMap.put("kk0021_kiki_setplc_chgum", bean[0].sendMessageString(KKW00101SFConst.KIKI_SETPLACE_CHGE_RSV_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// 同日実施希望有無
			parentMap.put("kk0021_dojitu_jssi_kbum", bean[0].sendMessageString(KKW00101SFConst.TAKCHO_KJ_DOJITU_JSSI_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4096-00-00 ADD END
		}
		// ANK-3136-00-00 ADD END
		
		parentMap.put("kk0101_pcrs_cd", JKKKeiNewCmnLogicUtil.getTvSvcKeiPcrsCd(dataBean)); // 料金コースコード（サービス契約＜ＴＶ＞）
		parentMap.put("kk0101_pplan_cd", JKKKeiNewCmnLogicUtil.getTvSvcKeiPplanCd(dataBean)); // 料金プランコード（サービス契約＜ＴＶ＞）
		parentMap.put("kk0101_prc_grp_cd", JKKKeiNewCmnLogicUtil.getTvSvcKeiPgrpCd(dataBean)); // 料金グループコード		
		
		//再送信
		if (catvCompFlg.equals(JKKKeiNewCmnLogicUtil.CATV_COMP_FLG_RESEND)) 
		{
			parentMap.put("kk0101_dmps_anken_no", dataBean.sendMessageString(KKW00101SFConst.DMPS_ANKEN_NO, 
			X31CWebConst.DATABEAN_GET_VALUE)); // 電波障害案件番号
			
			//チャンネル　多CH未選択時
			if (dataBean.sendMessageBoolean(KKW00101SFConst.MULTI_CHANNEL, X31CWebConst.DATABEAN_GET_VALUE).equals(false))
			{
				parentMap.put("kk0101_re_send_tk_svc_sbt_cd", JKKWebCommon.convertCode(dataBean, KKW00101SFConst.RE_SEND_TK_SVC_SBT_CD,
						KKW00101SFConst.SSSTYPE_CD_43, KKW00101SFConst.SSSTYPE_CD_LIST_43)); // 再送信種別
			}
		}
		
		if (CATV_COMP_FLG_KCAT.equals(catvCompFlg) || CATV_COMP_FLG_RESEND.equals(catvCompFlg))
		{
			/** K-CAT or 再送信 */
			// ANK-4592-00-00 MOD START
//			if (dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE).equals(MSKM_SVC_CHOICE_HD))
			if (dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE).equals(MSKM_SVC_CHOICE_HD)
					 || dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE).equals(MSKM_SVC_CHOICE_CSBASIC)
					 || dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE).equals(MSKM_SVC_CHOICE_CSPREMIUM))
			// ANK-4592-00-00 MOD END
			{
				//
				// EKK0101C050
				//
				// サービス契約番号
				parentMap.put("kk0101_svc_kei_no", (String)preMap.get("kk0081_svc_kei_no"));
				// 申込明細番号
				parentMap.put("kk0101_mskm_dtl_no", (String)preMap.get("kk0081_mskm_dtl_no"));
				// プラン開始年月日
				parentMap.put("kk0101_plan_staymd", (String)preMap.get("kk0081_plan_staymd"));
				// プラン課金開始年月日
				parentMap.put("kk0101_plan_chrg_staymd", (String)preMap.get("kk0081_plan_endymd"));
				// 予約適用年月日
				parentMap.put("kk0101_rsv_aply_ymd", (String)preMap.get("kk0081_rsv_aply_ymd"));
				// 更新年月日時分秒(更新前)
				parentMap.put("kk0101_upd_dtm_bf", (String)preMap.get("kk0101_last_upd_dtm"));

				/** ケーブルガイド誌の申込冊数 */
				int cable_guide_mskm_cnt =
						Integer.parseInt(dataBean.sendMessageString(KKW00101SFConst.CABLE_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE));
				if ((String)preMap.get("kk0351_op_svc_kei_no") != null && !"".equals((String)preMap.get("kk0351_op_svc_kei_no")))
				{
					if (String.valueOf(cable_guide_mskm_cnt).equals("0"))
					{
						// オプションサービス契約(ケーブルガイド誌)キャンセル
						
						// 申込明細番号
						parentMap.put("kk0351_mskm_dtl_no", (String)preMap.get("kk0351_mskm_dtl_no"));
						// オプションサービス契約番号
						parentMap.put("kk0351_op_svc_kei_no", (String)preMap.get("kk0381_op_svc_kei_no"));
						// サービスキャンセル理由コード
						parentMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
						// 異動区分
						parentMap.put("kk0351_ido_div", (String)preMap.get("kk0351_ido_div"));
						// 更新年月日時分秒(更新前)
						parentMap.put("kk0351_upd_dtm_bf", (String)preMap.get("kk0351_last_upd_dtm"));
					}
					else
					{
						// オプションサービス契約(ケーブルガイド誌)変更
						
						// オプションサービス契約番号
						parentMap.put("kk0381_op_svc_kei_no", (String)preMap.get("kk0381_op_svc_kei_no"));
						// 申込明細番号
						parentMap.put("kk0381_mskm_dtl_no", (String)preMap.get("kk0351_mskm_dtl_no"));
						// 試用加入年月日
						parentMap.put("kk0381_ftrial_kanyu_ymd", (String)preMap.get("kk0381_ftrial_kanyu_ymd"));
						// 試用期間終了年月日
						parentMap.put("kk0381_ftrial_prd_endymd", (String)preMap.get("kk0381_ftrial_prd_endymd"));
						// 本加入年月日
						parentMap.put("kk0381_honkanyu_ymd", (String)preMap.get("kk0381_honkanyu_ymd"));
						// 違約金発生コード
						parentMap.put("kk0381_pnlty_hassei_cd", (String)preMap.get("kk0381_pnlty_hassei_cd"));
						// 異動区分
						parentMap.put("kk0381_ido_div", (String)preMap.get("kk0351_ido_div"));
						// 更新年月日時分秒(更新前)
						parentMap.put("kk0381_upd_dtm_bf", (String)preMap.get("kk0381_last_upd_dtm"));
						// 集計年月日
						parentMap.put("kk0381_shuk_ymd", (String)preMap.get("kk0381_shuk_ymd"));
						// NHK団体一括契約変更理由メモ
						parentMap.put("kk0381_nhk_dntiktkei_chgre_memo", (String)preMap.get("kk0381_nhk_dntiktkei_chgre_memo"));
						// ケーブルガイド申込数
						parentMap.put("kk0381_cable_guide_mskm_cnt", String.valueOf(cable_guide_mskm_cnt));
						// ガイド誌送付先個別指定フラグ
						parentMap.put("kk0381_guidemg_shs_ksitei_flg", JKKStrConst.CD00010_KOBET_NASHI);
						// ガイド誌送付先住所手動入力フラグ
						parentMap.put("kk0381_gudmg_shs_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO);
					}
				}
				else
				{
					// オプションサービス契約(ケーブルガイド誌)登録

					parentMap.put("kk0381_op_svc_cd", JKKStrConst.OP_SVC_CABLE_GUDMG); // オプションサービスコード
					parentMap.put("kk0381_ido_div", (String)preMap.get("kk0081_ido_div")); // 異動区分
					parentMap.put("kk0381_pcrs_cd", JKKStrConst.CD00134_B36); // 料金コースコード（オプションサービス契約＜ＴＶ＞）
					parentMap.put("kk0381_pplan_cd", JKKStrConst.OPSVC_PPLAN_CABLE_GUDMG); // 料金プランコード（オプションサービス契約＜ＴＶ＞）
					parentMap.put("kk0381_svc_kei_no", (String)preMap.get("kk0101_svc_kei_no"));
					parentMap.put("kk0381_sysid", (String)preMap.get("kk0081_sysid"));
					parentMap.put("kk0381_mskm_dtl_no", (String)preMap.get("kk0081_mskm_dtl_no")); // 申込明細番号
					parentMap.put("kk0381_seiky_kei_no", seiky_kei_no); // 請求契約番号
					parentMap.put("kk0381_upd_dtm_bf", (String)preMap.get("kk0081_last_upd_dtm"));// 更新年月日時分秒(更新前)

					// 親契約識別コード
					parentMap.put("kk0381_oya_kei_skbt_cd", JKKStrConst.CD_DIV_OYAKEISKBTCD_SVCKEI);
					// ケーブルガイド申込数
					parentMap.put("kk0381_cable_guide_mskm_cnt", String.valueOf(cable_guide_mskm_cnt));
					// ガイド誌送付先個別指定フラグ
					parentMap.put("kk0381_guidemg_shs_ksitei_flg", JKKStrConst.CD00010_KOBET_NASHI);
					// ガイド誌送付先住所手動入力フラグ
					parentMap.put("kk0381_gudmg_shs_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO);
				}
			}
			else
			{
				/** 地デジ・ＢＳ */

				//
				// EKK0101C050
				//
				
				// サービス契約番号
				parentMap.put("kk0101_svc_kei_no", (String)preMap.get("kk0081_svc_kei_no"));
				// 申込明細番号
				parentMap.put("kk0101_mskm_dtl_no", (String)preMap.get("kk0081_mskm_dtl_no"));
				// プラン開始年月日
				parentMap.put("kk0101_plan_staymd", (String)preMap.get("kk0081_plan_staymd"));
				// プラン課金開始年月日
				parentMap.put("kk0101_plan_chrg_staymd", (String)preMap.get("kk0081_plan_endymd"));
				// 予約適用年月日
				parentMap.put("kk0101_rsv_aply_ymd", (String)preMap.get("kk0081_rsv_aply_ymd"));
				// 更新年月日時分秒(更新前)
				parentMap.put("kk0101_upd_dtm_bf", (String)preMap.get("kk0101_last_upd_dtm"));

				// オプションサービス契約(ケーブルガイド誌)があればキャンセル
				if ((String)preMap.get("kk0351_op_svc_kei_no") != null && !"".equals((String)preMap.get("kk0351_op_svc_kei_no")))
				{
					// 申込明細番号
					parentMap.put("kk0351_mskm_dtl_no", (String)preMap.get("kk0351_mskm_dtl_no"));
					// オプションサービス契約番号
					parentMap.put("kk0351_op_svc_kei_no", (String)preMap.get("kk0381_op_svc_kei_no"));
					// サービスキャンセル理由コード
					parentMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					parentMap.put("kk0351_ido_div", (String)preMap.get("kk0351_ido_div"));
					// 更新年月日時分秒(更新前)
					parentMap.put("kk0351_upd_dtm_bf", (String)preMap.get("kk0351_last_upd_dtm"));
				}
			}
		}
		else if (CATV_COMP_FLG_KCN.equals(catvCompFlg))
		{
			/** KCN */

			//
			// EKK0101C050
			//
			// サービス契約番号
			parentMap.put("kk0101_svc_kei_no", (String)preMap.get("kk0081_svc_kei_no"));
			// 申込明細番号
			parentMap.put("kk0101_mskm_dtl_no", (String)preMap.get("kk0081_mskm_dtl_no"));
			// プラン開始年月日
			parentMap.put("kk0101_plan_staymd", (String)preMap.get("kk0081_plan_staymd"));
			// プラン課金開始年月日
			parentMap.put("kk0101_plan_chrg_staymd", (String)preMap.get("kk0081_plan_endymd"));
			// 予約適用年月日
			parentMap.put("kk0101_rsv_aply_ymd", (String)preMap.get("kk0081_rsv_aply_ymd"));
			// 更新年月日時分秒(更新前)
			parentMap.put("kk0101_upd_dtm_bf", (String)preMap.get("kk0101_last_upd_dtm"));
		}
		
		// 面開発案件番号
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			parentMap.put("kk0101_menkaihat_anken_no", bean[0].sendMessageString(KKW00101SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// 異動区分
		parentMap.put("kk0101_ido_div", (String)preMap.get("kk0081_ido_div"));
		// 請求契約番号
		parentMap.put("kk0101_seiky_kei_no", seiky_kei_no);
		
		// 支払い方法継続フラグ
		parentMap.put("kk0101_payway_keizoku_flg", (String)preMap.get("kk0081_payway_keizoku_flg"));

		// 紹介コード
		parentMap.put("kk0101_intr_cd", bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		if((MSKM_FORM_CD_TEL.equals(mskmFormCd) && JYUKYO_TYPE_MANSION.equals(jyukyoType))
				|| (MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && MSKMSHO_KIND_MANSION.equals(mskmshoKind)))
		{	// マンションタイプの場合
			// サービス利用開始希望年月日
			String kiboYYYY = dataBean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			String kiboMM = dataBean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
			String kiboDD = dataBean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
			String kiboYmd = kiboYYYY + kiboMM + kiboDD;
			parentMap.put("kk0101_svc_use_sta_kibo_ymd", kiboYmd);
		}
		
		// 自動照査処理状態コード
		parentMap.put("kk0101_auto_shosa_tran_stat_cd", (String)preMap.get("kk0081_auto_shosa_tran_stat_cd"));
		
		// 提供方式契約番号
		parentMap.put("kk0101_tk_hoshiki_kei_no", (String)preMap.get("kk0081_tk_hoshiki_kei_no"));
		
		// 整理番号
		parentMap.put("kk0101_seiri_no", (String)preMap.get("kk0081_seiri_no")); 
		
		// 業務連絡備考
		parentMap.put("kk0101_work_rrk_biko", dataBean.sendMessageString(KKW00101SFConst.TV_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));
		// 審査結果コード
		parentMap.put("kk0101_skekka_cd", (String)preMap.get("kk0081_skekka_cd"));
		// 審査結果詳細コード	
		parentMap.put("kk0101_skekka_dtl_cd", (String)preMap.get("kk0081_skekka_dtl_cd"));
		// 審査結果補記コード	
		parentMap.put("kk0101_skekka_hoki_cd", (String)preMap.get("kk0081_skekka_hoki_cd"));
		// 審査結果送信コード	
		parentMap.put("kk0101_skekka_send_cd", (String)preMap.get("kk0081_skekka_send_cd"));

		if (CATV_COMP_FLG_KCAT.equals(catvCompFlg) || CATV_COMP_FLG_RESEND.equals(catvCompFlg))
		{
			/** K-CAT or 再送信 */

			subBean = (dataBean.getDataBeanArray(KKW00101SFConst.KCAT_TUNER_USE_CNT_LIST)).getDataBean(0);

			// 画面から入力されたSTB台数を取得。ＨＤプランでない場合は0台。
			int kcatUseCnt = 0;
			if (MSKM_SVC_CHOICE_HD.equals(dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				kcatUseCnt = Integer.parseInt(subBean.sendMessageString(KKW00101SFConst.TUNER_USE_CNT_CD_22, X31CWebConst.DATABEAN_GET_VALUE)) + 1;
			}
			dataBeanArray = dataBean.getDataBeanArray(KKW00101SFConst.KCAT_TV_TUNER_LIST);

			// 機器情報変更分
			ArrayList dataList_upd = new ArrayList();
			parentMap.put("svc_kei_ucwk_upd_list", dataList_upd);
			
			ArrayList dataList_kiki_upd = new ArrayList();
			parentMap.put("kktk_svc_kei_upd_list", dataList_kiki_upd);
			
			int preUseCnt = 0;
			ArrayList preDataList = (ArrayList)preMap.get("svc_kei_ucwk_list");
			if (preDataList != null)
			{
				preUseCnt = preDataList.size();
			}

			int kcatUpdCnt = 0;
			int kcatAddCnt = 0;
			int kcatCancelCnt = 0;

			//STB主契約判定処理
			JKKWebCommon.stbMainKeiCheck(viewLogic, kcatUseCnt);
			
			// ANK-4592-00-00 MOD START
//			if (dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE).equals(MSKM_SVC_CHOICE_HD)
//					&& (JKKStrConst.CD00134_A37.equals((String)preMap.get("kk0081_pcrs_cd"))
//						|| JKKStrConst.CD00134_TV_RESEND_MULTI_CH_BS.equals((String)preMap.get("kk0081_pcrs_cd"))))
//			{
//				/** 前回登録データ　BS・地デジ→ベーシックHD・プレミアムHD変更時 */
			if (dataBean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE).equals(MSKM_SVC_CHOICE_HD)
					&& (JKKStrConst.CD00134_A37.equals((String)preMap.get("kk0081_pcrs_cd"))
						|| JKKStrConst.CD00134_TV_RESEND_MULTI_CH_BS.equals((String)preMap.get("kk0081_pcrs_cd"))
						|| JKKStrConst.CD00134_AC0.equals((String)preMap.get("kk0081_pcrs_cd"))
						|| JKKStrConst.CD00134_AC1.equals((String)preMap.get("kk0081_pcrs_cd"))))
			{
				/** 前回登録データ　BS・地デジ/CS→ベーシックHD・プレミアムHD変更時 */
			// ANK-4592-00-00 MOD END
				kcatAddCnt = kcatUseCnt;
			}
			else
			{
				if (kcatUseCnt > preUseCnt)
				{
					kcatUpdCnt = preUseCnt;
					kcatAddCnt = kcatUseCnt - preUseCnt;
					kcatCancelCnt = 0;
				}
				else
				{
					kcatUpdCnt = kcatUseCnt;
					kcatAddCnt = 0;
					kcatCancelCnt = preUseCnt - kcatUseCnt;
				}
			}

			ArrayList preStbDataList = (ArrayList)preMap.get("kktk_svc_kei_list");
			ArrayList preBcasDataList = (ArrayList)preMap.get("bcas_kktk_svc_kei_list");
			ArrayList preCcasDataList = (ArrayList)preMap.get("ccas_kktk_svc_kei_list");
			String kikiSvcCd = null;
			String pcrs_cd = null;
			String pplan_cd = null;
			int index = 0;
			// ANK-3488-00-00 ADD START
			int bCascnt = 0;
			// ANK-3488-00-00 ADD END
			// IT1-2018-0000159 ADD START
			String pre_pcrs_cd = "";
			String svcKeiUcwkNo = "";
			int bCascancnt = 0;

			// 機器台数増加分
			ArrayList dataList_add = new ArrayList();
			parentMap.put("svc_kei_ucwk_add_list", dataList_add);
			
			ArrayList dataList_kiki = new ArrayList();
			parentMap.put("kktk_svc_kei_add_list", dataList_kiki);
			
			// 機器台数減少分
			ArrayList dataList_gen = new ArrayList();
			parentMap.put("svc_kei_ucwk_cancel_list", dataList_gen);

			ArrayList stbCanList = new ArrayList();
			parentMap.put("kktk_svc_kei_cancel_list", stbCanList);
			ArrayList bcasCanList = new ArrayList();
			parentMap.put("bcas_kktk_svc_kei_cancel_list", bcasCanList);
			ArrayList ccasCanList = new ArrayList();
			parentMap.put("ccas_kktk_svc_kei_cancel_list", ccasCanList);
			ArrayList unitBcasCanList = new ArrayList();
			parentMap.put("unit_bcas_kktk_svc_kei_cancel_list", unitBcasCanList);
			ArrayList unitBcasAddList = new ArrayList();
			parentMap.put("unit_bcas_kktk_svc_kei_add_list", unitBcasAddList);
			// IT1-2018-0000159 ADD END
			
			for (int i = 0; i < kcatUpdCnt; i++)
			{
				subBean = dataBeanArray.getDataBean(i);
				
				HashMap childMap = new HashMap();
				HashMap preChildMap = (HashMap)preDataList.get(i);
				
				// IT1-2018-0000159 ADD START
				HashMap pre4KktkChildMap = null;
				pre4KktkChildMap = (HashMap)preStbDataList.get(i);
				pre_pcrs_cd = (String)pre4KktkChildMap.get("kk0341_pcrs_cd"); // 更新前料金コースコード（機器提供サービス契約）
				svcKeiUcwkNo = (String)pre4KktkChildMap.get("kk0341_svc_kei_ucwk_no"); // 更新前サービス契約内訳番号
				// IT1-2018-0000159 ADD END

				// 機器提供サービス契約
				for (int j = 0; j <= 2; j++)
				{
					HashMap preKktkChildMap = null;
					HashMap childMap_kktk = new HashMap();
					// 共通情報のマッピング
					childMap_kktk.put("func_code", func_code);
					
					switch(j)
					{
					case 0:
						//STB
						preKktkChildMap = (HashMap)preStbDataList.get(i);
						
						// ＳＴＢ
						String kcatTvTuner = JKKWebCommon.convertCodeMultiArray(dataBean, 
								KKW00101SFConst.KCAT_TV_TUNER_LIST, 
								subBean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_03, X31CWebConst.DATABEAN_GET_VALUE), 
								KKW00101SFConst.KCAT_TV_TUNER_CD_LIST_03);
						
						// STB料金関連コード取得
						HashMap<String, String> prcKnrnMap = getStbPrcKnrnCd(kcatTvTuner);
						
						pcrs_cd = prcKnrnMap.get(STB_PRC_KNRN_KEY_PCRSCD); // 料金コースコード（機器提供サービス契約）
						pplan_cd = prcKnrnMap.get(STB_PRC_KNRN_KEY_PPLANCD); // 料金プランコード（機器提供サービス契約）
						kikiSvcCd = JKKStrConst.KKTK_SVC_CD_STB;//機器提供サービスコード
						// IT1-2018-0000159 ADD START
						pcrs_cd = prcKnrnMap.get(STB_PRC_KNRN_KEY_PCRSCD); // 料金コースコード（機器提供サービス契約）
						// IT1-2018-0000159 ADD END
						break;
						
					case 1:
						//B-CAS
						// IT1-2018-0000159 MOD START
						// ANK-3488-00-00 ADD START
						// 4KSTBの場合はB-CASを作成しない
						//if (!(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrs_cd) ) )
						// ANK-3488-00-00 ADD END
						// 更新前が４ＫＳＴＢ、更新後が４ＫＳＴＢ以外
						// ANK-3991-00-00 MOD START
						//if ( ( (JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pre_pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pre_pcrs_cd) ) &&
						//	   !(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrs_cd) ) ) 
						if ( ( (JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pre_pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pre_pcrs_cd) ||
								JKKStrConst.CD00134_4KSTB_HDD_NON_NEW.equals(pre_pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB_NEW.equals(pre_pcrs_cd)  ) &&
							   !(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrs_cd) ||
							   	JKKStrConst.CD00134_4KSTB_HDD_NON_NEW.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB_NEW.equals(pcrs_cd) 
							   ) ) 
						// ANK-3991-00-00 MOD END
						)
						{
							childMap_kktk = new HashMap();
							JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, JKKStrConst.KKTK_SVC_CD_B_CAS, JKKStrConst.CD00134_BCAS,
									JKKStrConst.CD00565_BCAS, "kk0341_", null, null, JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
							childMap_kktk.put("kk0341_sysid", (String)preMap.get("kk0081_sysid"));
							childMap_kktk.put("kk0341_mskm_dtl_no", (String)preMap.get("kk0081_mskm_dtl_no")); // 申込明細番号
							childMap_kktk.put("kk0341_ido_div", idoDiv); // 異動区分
							childMap_kktk.put("kk0341_svc_kei_no", (String)preMap.get("kk0081_svc_kei_no")); // サービス契約番号
							childMap_kktk.put("kk0341_seiky_kei_no", seiky_kei_no); // 請求契約番号
							// マンション物件番号
							childMap_kktk.put("kk0341_mansion_bukken_no", JKKWebCommon.getMansionBukkenNo(mansionMap));
							// 更新年月日時分秒(更新前)
							childMap_kktk.put("kk0341_upd_dtm_bf", (String)preMap.get("kk0081_last_upd_dtm"));
							childMap_kktk.put("kk0341_svc_kei_ucwk_no", svcKeiUcwkNo); // サービス契約内訳番号
							
							unitBcasAddList.add(childMap_kktk);
							continue;

						}
						// 更新前が４ＫＳＴＢ以外、更新後が４ＫＳＴＢ
						// ANK-3991-00-00 MOD START
						//else if ( ( !(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pre_pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pre_pcrs_cd) ) &&
						//	   (JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrs_cd) ) ) 
						else if ( ( !( JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pre_pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pre_pcrs_cd) ||
										JKKStrConst.CD00134_4KSTB_HDD_NON_NEW.equals(pre_pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB_NEW.equals(pre_pcrs_cd)) &&
									   (JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrs_cd) ||
									   	JKKStrConst.CD00134_4KSTB_HDD_NON_NEW.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB_NEW.equals(pcrs_cd) ) ) 
						// ANK-3991-00-00 MOD END
						)
						{
							childMap = new HashMap();
							preKktkChildMap = (HashMap)preBcasDataList.get(bCascnt);
							bCascnt++;
							// 機器提供サービス契約番号
							childMap.put("kk0341_kktk_svc_kei_no", (String)preKktkChildMap.get("kk0341_kktk_svc_kei_no"));
							// サービスキャンセル理由コード
							childMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
							// 異動区分
							childMap.put("kk0341_ido_div",  idoDiv);
							// 更新年月日時分秒(更新前)
							childMap.put("kk0341_upd_dtm_bf", (String)preKktkChildMap.get("kk0341_last_upd_dtm"));
							// 申込明細番号
							childMap.put("kk0341_mskm_dtl_no", (String)preKktkChildMap.get("kk0341_mskm_dtl_no"));	
							childMap.put("kk0341_svc_kei_ucwk_no", svcKeiUcwkNo); // サービス契約内訳番号
							unitBcasCanList.add(childMap);
							continue;
						}
						// ANK-3991-00-00 MOD START
						//else if (!(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrs_cd) ) )
						else if (!(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrs_cd) ||
									JKKStrConst.CD00134_4KSTB_HDD_NON_NEW.equals(pcrs_cd) || JKKStrConst.CD00134_4KSTB_HDD_2TB_NEW.equals(pcrs_cd) ) )
						// ANK-3991-00-00 MOD END
						{
						// IT1-2018-0000159 MOD END
							// ANK-3488-00-00 MOD START
							//preKktkChildMap = (HashMap)preBcasDataList.get(i);
							preKktkChildMap = (HashMap)preBcasDataList.get(bCascnt);
							bCascnt++;
							// ANK-3488-00-00 MOD END
							pcrs_cd = JKKStrConst.CD00134_BCAS; // 料金コースコード（機器提供サービス契約）
							kikiSvcCd = JKKStrConst.KKTK_SVC_CD_B_CAS;//機器提供サービスコード
							pplan_cd = JKKStrConst.CD00565_BCAS; // 料金プランコード（機器提供サービス契約）
							break;
						// ANK-3488-00-00 ADD START
						}
						else {
							continue;
						}
						// ANK-3488-00-00 ADD END
						
					case 2:
						//C-CAS
						preKktkChildMap = (HashMap)preCcasDataList.get(i);
						pcrs_cd = JKKStrConst.CD00134_CCAS; // 料金コースコード（機器提供サービス契約）
						kikiSvcCd = JKKStrConst.KKTK_SVC_CD_C_CAS;//機器提供サービスコード
						pplan_cd = JKKStrConst.CD00565_CCAS; // 料金プランコード（機器提供サービス契約）
						break;
						
					default:
					}
					
					//
					// EKK0341C080
					//
					// 機器提供サービス契約番号
					childMap_kktk.put("kk034101_kktk_svc_kei_no", (String)preKktkChildMap.get("kk0341_kktk_svc_kei_no"));
					// 世代登録年月日時分秒
					childMap_kktk.put("kk034101_gene_add_dtm", (String)preKktkChildMap.get("kk0341_gene_add_dtm"));
					// 料金コースコード（機器提供サービス契約）
					childMap_kktk.put("kk034101_pcrs_cd", pcrs_cd); 
					// 料金プランコード（機器提供サービス契約）
					childMap_kktk.put("kk034101_pplan_cd", pplan_cd); 
					// 申込明細番号
					childMap_kktk.put("kk034101_mskm_dtl_no", (String)preKktkChildMap.get("kk0341_mskm_dtl_no"));
					// 違約金発生コード
					childMap_kktk.put("kk034101_pnlty_hassei_cd", (String)preKktkChildMap.get("kk0341_pnlty_hassei_cd"));	
					// 更新年月日時分秒(更新前)
					childMap_kktk.put("kk034101_upd_dtm_bf", (String)preKktkChildMap.get("kk0341_last_upd_dtm"));
					// IT1-2018-0000159 ADD START
					// STBのみSTB料金コースを設定
					if ( j == 0 )
					{
						// 更新前料金コースコード（機器提供サービス契約）
						childMap_kktk.put("kk034101_pre_pcrs_cd", pre_pcrs_cd);
					}
					// IT1-2018-0000159 ADD END

					//
					// EKK0341C080
					//
					// 機器提供サービス契約番号
					childMap_kktk.put("kk034102_kktk_svc_kei_no", (String)preKktkChildMap.get("kk0341_kktk_svc_kei_no"));
					// 料金コースコード（機器提供サービス契約）
					childMap_kktk.put("kk034102_pcrs_cd", pcrs_cd); 
					// 料金プランコード（機器提供サービス契約）
					childMap_kktk.put("kk034102_pplan_cd", pplan_cd); 
					// 申込明細番号
					childMap_kktk.put("kk034102_mskm_dtl_no", (String)preKktkChildMap.get("kk0341_mskm_dtl_no"));
					// 予約適用年月日
					childMap_kktk.put("kk034102_rsv_aply_ymd", (String)preKktkChildMap.get("kk0341_rsv_aply_ymd"));
					// 違約金発生コード
					childMap_kktk.put("kk034102_pnlty_hassei_cd", (String)preKktkChildMap.get("kk0341_pnlty_hassei_cd"));
					// 異動区分
					childMap_kktk.put("kk034102_ido_div", (String)preKktkChildMap.get("kk0341_ido_div"));
					// 更新年月日時分秒(更新前)
					childMap_kktk.put("kk034102_upd_dtm_bf", (String)preKktkChildMap.get("kk0341_last_upd_dtm"));
					// IT1-2018-0000159 ADD START
					// STBのみSTB料金コースを設定
					if ( j == 0 )
					{
						// 更新前料金コースコード（機器提供サービス契約）
						childMap_kktk.put("kk034102_pre_pcrs_cd", pre_pcrs_cd);
					}
					// IT1-2018-0000159 ADD END
					
					//
					// EKK0341C230
					//
					
					JKKWebCommon.getUpdKktkSvcKeiIniData(bean[0], kikiSvcCd, pplan_cd, childMap_kktk, "kk034103_", preKktkChildMap, "kk0341_", null,
							JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), true, pcrs_cd);
					
					dataList_kiki_upd.add(childMap_kktk);
					index++;
				}
				
				//
				// EKK0161C100
				//
				
				// サービス契約内訳番号
				childMap.put("kk0161_svc_kei_ucwk_no", (String)preChildMap.get("kk0161_svc_kei_ucwk_no"));
				// 申込明細番号
				childMap.put("kk0161_mskm_dtl_no", (String)preChildMap.get("kk0161_mskm_dtl_no"));
				// 提供方式契約番号
				childMap.put("kk0161_tk_hoshiki_kei_no", (String)preChildMap.get("kk0161_tk_hoshiki_kei_no"));
				// 更新年月日時分秒(更新前)
				childMap.put("kk0161_upd_dtm_bf", (String)preChildMap.get("kk0161_last_upd_dtm"));
				// 料金コースコード（サービス契約内訳＜ＴＶ＞）
				childMap.put("kk0161_pcrs_cd", getTvSckeiUwPcrsCd(subBean)); 
				// 料金プランコード（サービス契約内訳＜ＴＶ＞）
				childMap.put("kk0161_pplan_cd", getTvSckeiUwPplanCd(subBean, mskmFormCd, mskmshoKind, jyukyoType)); 

				dataList_upd.add(childMap);
			}

			// 機器台数増加分
			// IT1-2018-0000159 DEL START
			//ArrayList dataList_add = new ArrayList();
			//parentMap.put("svc_kei_ucwk_add_list", dataList_add);
			//
			//ArrayList dataList_kiki = new ArrayList();
			//parentMap.put("kktk_svc_kei_add_list", dataList_kiki);
			// IT1-2018-0000159 DEL END

			for (int i = 0; i < kcatAddCnt; i++)
			{
				subBean = dataBeanArray.getDataBean(kcatUpdCnt + i);

				HashMap childMap = new HashMap();

				childMap.put("kk0181_svc_kei_no", (String)preMap.get("kk0081_svc_kei_no")); // サービス契約番号
				childMap.put("kk0181_mskm_dtl_no", (String)preMap.get("kk0081_mskm_dtl_no")); // 申込明細番号
				childMap.put("kk0181_ido_div", (String)preMap.get("kk0081_ido_div")); // 異動区分
				childMap.put("kk0181_seiky_kei_no", seiky_kei_no); // 請求契約番号
				childMap.put("kk0181_upd_dtm_bf", (String)preMap.get("kk0081_last_upd_dtm")); // 更新年月日時分秒(更新前)
				childMap.put("kk0181_pcrs_cd", getTvSckeiUwPcrsCd(subBean)); // 料金コースコード（サービス契約内訳＜ＴＶ＞）
				childMap.put("kk0181_pplan_cd"
						, getTvSckeiUwPplanCd(subBean, mskmFormCd, mskmshoKind, jyukyoType)); // 料金プランコード（サービス契約内訳＜ＴＶ＞）
				
				dataList_add.add(childMap);
				
				// 機器提供サービス契約
				for (int j = 0; j <= 2; j++)
				{
					HashMap childMap_kktk = new HashMap();
					switch(j)
					{
					case 0:
						//STB
						String kcatTvTuner = JKKWebCommon.convertCodeMultiArray(dataBean, 
								KKW00101SFConst.KCAT_TV_TUNER_LIST, 
								subBean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_03, X31CWebConst.DATABEAN_GET_VALUE), 
								KKW00101SFConst.KCAT_TV_TUNER_CD_LIST_03);
						
						// STB料金関連コード取得
						HashMap<String, String> prcKnrnMap = getStbPrcKnrnCd(kcatTvTuner);
						String pcrsCd = prcKnrnMap.get(STB_PRC_KNRN_KEY_PCRSCD);
						String pplanCd = prcKnrnMap.get(STB_PRC_KNRN_KEY_PPLANCD);
						
						JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, JKKStrConst.KKTK_SVC_CD_STB, pcrsCd,
								pplanCd, "kk0341_", null, null, JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
						childMap_kktk.put("kk0341_link_stb_flg", "0");	// リンクＳＴＢフラグ
						break;
						
					case 1:
						//B-CAS
						// ANK-3488-00-00 ADD START
						// 4KSTBの場合はB-CASを作成しない
						String kcatTvTunerFour = JKKWebCommon.convertCodeMultiArray(dataBean, 
								KKW00101SFConst.KCAT_TV_TUNER_LIST, 
								subBean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_03, X31CWebConst.DATABEAN_GET_VALUE), 
								KKW00101SFConst.KCAT_TV_TUNER_CD_LIST_03);
						
						// STB料金関連コード取得
						HashMap<String, String> prcKnrnMapFour = getStbPrcKnrnCd(kcatTvTunerFour);
						String pcrsCd_four = "";
						pcrsCd_four = prcKnrnMapFour.get(STB_PRC_KNRN_KEY_PCRSCD);
						// ANK-3991-00-00 MOD START
						//if (!(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrsCd_four) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrsCd_four) ) )
						if (!(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(pcrsCd_four) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(pcrsCd_four) ||
							JKKStrConst.CD00134_4KSTB_HDD_NON_NEW.equals(pcrsCd_four) || JKKStrConst.CD00134_4KSTB_HDD_2TB_NEW.equals(pcrsCd_four)) )
						// ANK-3991-00-00 MOD END
						{
						// ANK-3488-00-00 ADD END
							JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, JKKStrConst.KKTK_SVC_CD_B_CAS, JKKStrConst.CD00134_BCAS,
									JKKStrConst.CD00565_BCAS, "kk0341_", null, null, JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
							break;
						// ANK-3488-00-00 ADD START
						}
						else {
							continue;
						}
						// ANK-3488-00-00 ADD END
						
					case 2:
						//C-CAS
						JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, JKKStrConst.KKTK_SVC_CD_C_CAS, JKKStrConst.CD00134_CCAS,
								JKKStrConst.CD00565_CCAS, "kk0341_", null, null, JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
						break;
						
					default:
					}
					childMap_kktk.put("kk0341_sysid", (String)preMap.get("kk0081_sysid"));
					childMap_kktk.put("kk0341_mskm_dtl_no", (String)preMap.get("kk0081_mskm_dtl_no")); // 申込明細番号
					childMap_kktk.put("kk0341_ido_div", (String)preMap.get("kk0081_ido_div")); // 異動区分
					childMap_kktk.put("kk0341_svc_kei_no", (String)preMap.get("kk0081_svc_kei_no")); // サービス契約番号
					childMap_kktk.put("kk0341_seiky_kei_no", seiky_kei_no); // 請求契約番号
					// マンション物件番号
					childMap_kktk.put("kk0341_mansion_bukken_no", JKKWebCommon.getMansionBukkenNo(mansionMap));
					// 更新年月日時分秒(更新前)
					childMap_kktk.put("kk0341_upd_dtm_bf", (String)preMap.get("kk0081_last_upd_dtm"));

					dataList_kiki.add(childMap_kktk);
				}
			}

			// 機器台数減少分
			// IT1-2018-0000159 DEL START
			//ArrayList dataList_gen = new ArrayList();
			//parentMap.put("svc_kei_ucwk_cancel_list", dataList_gen);

			//ArrayList stbCanList = new ArrayList();
			//parentMap.put("kktk_svc_kei_cancel_list", stbCanList);
			//ArrayList bcasCanList = new ArrayList();
			//parentMap.put("bcas_kktk_svc_kei_cancel_list", bcasCanList);
			//ArrayList ccasCanList = new ArrayList();
			//parentMap.put("ccas_kktk_svc_kei_cancel_list", ccasCanList);
			// IT1-2018-0000159 DEL END
			
			preStbDataList = (ArrayList)preMap.get("kktk_svc_kei_list");
			preBcasDataList = (ArrayList)preMap.get("bcas_kktk_svc_kei_list");
			preCcasDataList = (ArrayList)preMap.get("ccas_kktk_svc_kei_list");
			// IT1-2018-0000159 MOD START
			// ANK-3488-00-00 ADD START
			//int bCascancnt = 0;
			// ANK-3488-00-00 ADD END
			bCascancnt = 0;
			// IT1-2018-0000159 MOD END

			// 機器台数減少分だけ登録マップを作成する。
			for (int i = 0; i < kcatCancelCnt; i++)
			{
				HashMap childMap = null;
				HashMap preChildMap = null;
				
				// EKK0161C160_サービス契約内訳キャンセル
				childMap = new HashMap();
				preChildMap = (HashMap)preDataList.get(kcatUpdCnt + i);
				
				// サービス契約内訳番号
				childMap.put("kk0161_svc_kei_ucwk_no", (String)preChildMap.get("kk0161_svc_kei_ucwk_no"));
				// サービスキャンセル理由コード
				childMap.put("kk0161_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 異動区分
				childMap.put("kk0161_ido_div", (String)preChildMap.get("kk0161_ido_div"));
				// 更新年月日時分秒(更新前)
				childMap.put("kk0161_upd_dtm_bf", (String)preChildMap.get("kk0161_last_upd_dtm"));
				// 申込明細番号
				childMap.put("kk0161_mskm_dtl_no", (String)preChildMap.get("kk0161_mskm_dtl_no"));

				dataList_gen.add(childMap);

				// EKK0341C330_機器提供サービス契約キャンセル
				
				// STBキャンセル
				childMap = new HashMap();
				preChildMap = (HashMap)preStbDataList.get(kcatUpdCnt + i);

				// 機器提供サービス契約番号
				childMap.put("kk0341_kktk_svc_kei_no", (String)preChildMap.get("kk0341_kktk_svc_kei_no"));
				// サービスキャンセル理由コード
				childMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 異動区分
				childMap.put("kk0341_ido_div",  (String)preChildMap.get("kk0341_ido_div"));
				// 更新年月日時分秒(更新前)
				childMap.put("kk0341_upd_dtm_bf", (String)preChildMap.get("kk0341_last_upd_dtm"));
				// 申込明細番号
				childMap.put("kk0341_mskm_dtl_no", (String)preChildMap.get("kk0341_mskm_dtl_no"));
				stbCanList.add(childMap);
				
				// B-CASキャンセル
				// ANK-3488-00-00 ADD START
				// 4KSTBの場合はB-CASをキャンセルしない
				// ANK-3991-00-00 MOD START
				//if (!(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(preChildMap.get("kk0341_pcrs_cd")) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(preChildMap.get("kk0341_pcrs_cd")) ) )
				if (!(JKKStrConst.CD00134_4KSTB_HDD_NON.equals(preChildMap.get("kk0341_pcrs_cd")) || JKKStrConst.CD00134_4KSTB_HDD_2TB.equals(preChildMap.get("kk0341_pcrs_cd")) || 
					JKKStrConst.CD00134_4KSTB_HDD_NON_NEW.equals(preChildMap.get("kk0341_pcrs_cd")) || JKKStrConst.CD00134_4KSTB_HDD_2TB_NEW.equals(preChildMap.get("kk0341_pcrs_cd"))
				) )
				// ANK-3991-00-00 MOD END
				{
				// ANK-3488-00-00 ADD END
					childMap = new HashMap();
					// ANK-3488-00-00 MOD START
					//preChildMap = (HashMap)preBcasDataList.get(kcatUpdCnt + i);
					preChildMap = (HashMap)preBcasDataList.get(kcatUpdCnt + bCascancnt);
					bCascancnt++;
					// ANK-3488-00-00 MOD START
	
					// 機器提供サービス契約番号
					childMap.put("kk0341_kktk_svc_kei_no", (String)preChildMap.get("kk0341_kktk_svc_kei_no"));
					// サービスキャンセル理由コード
					childMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					childMap.put("kk0341_ido_div",  (String)preChildMap.get("kk0341_ido_div"));
					// 更新年月日時分秒(更新前)
					childMap.put("kk0341_upd_dtm_bf", (String)preChildMap.get("kk0341_last_upd_dtm"));
					// 申込明細番号
					childMap.put("kk0341_mskm_dtl_no", (String)preChildMap.get("kk0341_mskm_dtl_no"));	
					bcasCanList.add(childMap);
				// ANK-3488-00-00 ADD START
				}
				// ANK-3488-00-00 ADD END
				
				// C-CASキャンセル
				childMap = new HashMap();
				preChildMap = (HashMap)preCcasDataList.get(kcatUpdCnt + i);

				// 機器提供サービス契約番号
				childMap.put("kk0341_kktk_svc_kei_no", (String)preChildMap.get("kk0341_kktk_svc_kei_no"));
				// サービスキャンセル理由コード
				childMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 異動区分
				childMap.put("kk0341_ido_div",  (String)preChildMap.get("kk0341_ido_div"));
				// 更新年月日時分秒(更新前)
				childMap.put("kk0341_upd_dtm_bf", (String)preChildMap.get("kk0341_last_upd_dtm"));
				// 申込明細番号
				childMap.put("kk0341_mskm_dtl_no", (String)preChildMap.get("kk0341_mskm_dtl_no"));	
				ccasCanList.add(childMap);
			}
		}
		
		// スターチャンネルセットキャンセル
		HashMap<String, Object> starChannelSetMap = getStarChannelSetMap(preMap);
		boolean startChannelSet = bean[0].sendMessageBoolean(KKW00101SFConst.STAR_CHANNEL_SET, X31CWebConst.DATABEAN_GET_VALUE);
		if (null != starChannelSetMap && !startChannelSet)
		{
			HashMap<String, Object> dataMap = new HashMap<String, Object>();
			
			// SYSID
			dataMap.put("sysid", sysid);
			// サービス契約番号
			dataMap.put("svc_kei_no", preMap.get("kk0081_svc_kei_no"));
			// 申込明細番号
			dataMap.put("mskm_dtl_no", preMap.get("kk0021_mskm_dtl_no"));
			// サービスキャンセル理由コード
			dataMap.put("svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
			// 起算日
			dataMap.put("kisan_ymd", opeDate);
			// 異動区分
			dataMap.put("ido_div", idoDiv);
			// 最終更新年月日（更新前）
			dataMap.put("kk0081_upd_dtm", starChannelSetMap.get("kk0451_last_upd_dtm"));
			
			parentMap.put("cnclStarChannelSetMap", dataMap);
		}
		
		// スターチャンネルセット登録
		if (null == starChannelSetMap && startChannelSet)
		{
			HashMap<String, Object> dataMap = new HashMap<String, Object>();
			
			// SYSID
			dataMap.put("sysid", sysid);
			// サービス契約番号
			dataMap.put("svc_kei_no", preMap.get("kk0081_svc_kei_no"));
			// 申込明細番号
			dataMap.put("mskm_dtl_no", preMap.get("kk0021_mskm_dtl_no"));
			// 起算日
			dataMap.put("kisan_ymd", mskmYmd);
			// 異動区分
			dataMap.put("ido_div", idoDiv);
			// 最終更新年月日（更新前）
			dataMap.put("kk0081_upd_dtm", preMap.get("kk0081_last_upd_dtm"));
			
			parentMap.put("addStarChannelSetMap", dataMap);
		}
		
		// 申込時登録不可契約予約変更
		if (null != starChannelSetMap && !startChannelSet)
		{
			ArrayList<HashMap<String, Object>> updMkjAddfKeiRvList = new ArrayList<HashMap<String, Object>>();
			
			ArrayList<HashMap<String, Object>> mkjAddfKeiRvList = (ArrayList<HashMap<String, Object>>)preMap.get("kk2931_EKK2931B501CBSMsg1List");
			if (null != mkjAddfKeiRvList)
			{
				for (HashMap<String, Object> mkjAddfKeiRvMap : mkjAddfKeiRvList)
				{
					if (!JKKStrConst.OP_SVC_CD_STCH_BSPT.equals(mkjAddfKeiRvMap.get("kk2931_op_svc_cd")))
					{
						continue;
					}
					
					HashMap<String, Object> childMap = new HashMap<String, Object>();
					
					// 申込時登録不可契約予約番号
					childMap.put("kk2931_mkj_addf_kei_rv_no", mkjAddfKeiRvMap.get("kk2931_mkj_addf_kei_rv_no"));
					// 予約契約数
					childMap.put("kk2931_rsv_kei_cnt", mkjAddfKeiRvMap.get("kk2931_rsv_kei_cnt"));
					// 申込時登録不可契約予約反映年月日
					childMap.put("kk2931_mkj_addf_kei_rv_hanei_ymd", mkjAddfKeiRvMap.get("kk2931_mkj_addf_kei_rv_hanei_ymd"));
					// 申込時登録不可契約予約取消年月日
					childMap.put("kk2931_mkj_addf_kei_rv_cl_ymd", opeDate);
					// 更新年月日時分秒(更新前)
					childMap.put("kk2931_upd_dtm_bf", mkjAddfKeiRvMap.get("kk2931_last_upd_dtm"));
					
					updMkjAddfKeiRvList.add(childMap);
				}
			}
			
			parentMap.put("updMkjAddfKeiRvList", updMkjAddfKeiRvList);
		}
		
		// 申込時登録不可契約予約登録
		if (null == starChannelSetMap && startChannelSet)
		{
			ArrayList<HashMap<String, Object>> addMkjAddfKeiRvList = new ArrayList<HashMap<String, Object>>();
			
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// 申込時登録不可契約予約種別コード
			childMap.put("kk2931_mkj_addf_kei_rv_sbt_cd", JKKStrConst.CD01647_CDBS_STCH_SET);
			// 申込明細番号
			childMap.put("kk2931_mskm_dtl_no", preMap.get("kk0021_mskm_dtl_no"));
			// 設定対象契約識別コード
			childMap.put("kk2931_sete_tg_kei_skbt_cd", JKKStrConst.CD_DIV_OYAKEISKBTCD_SVCKEI);
			// 設定対象契約番号
			childMap.put("kk2931_sete_tg_kei_no", preMap.get("kk0081_svc_kei_no"));
			// オプションサービスコード
			childMap.put("kk2931_op_svc_cd", JKKStrConst.OP_SVC_CD_STCH_BSPT);
			// 料金コースコード
			childMap.put("kk2931_pcrs_cd", JKKStrConst.OPSVC_PCRS_STCH_BSPT);
			// 料金プランコード
			childMap.put("kk2931_pplan_cd", JKKStrConst.OPSVC_PPLAN_STCH_BSPT);
			// 予約契約数
			childMap.put("kk2931_rsv_kei_cnt", "1");
			// 申込時登録不可契約予約反映方法コード
			childMap.put("kk2931_mkj_addf_kei_rvhne_way_cd", JKKStrConst.CD01648_MAN_HANEI);
			// 更新年月日時分秒(更新前)
			childMap.put("kk2931_upd_dtm_bf", preMap.get("kk0021_last_upd_dtm"));
			
			addMkjAddfKeiRvList.add(childMap);
			
			parentMap.put("addMkjAddfKeiRvList", addMkjAddfKeiRvList);
		}
		
		outputMap.put("KKSV008017CC", parentMap);

		return outputMap;
	}

	/**
	 * eo光電話1変更の上りマッピングを行います。
	 * <br>
	 * @param bean             [0]：申込新規登録画面
	 * @param outputMap        出力先マップ
	 * @param func_code        機能コード
	 * @param preMap           申込情報マップ
	 * @param opeDate          運用日付
	 * @param opeDateTimeStamp 運用日付時分秒
	 * @param mansionMap       マンション情報マップ
	 * @param svcKeiUpdFlgs    サービス契約視点での登録更新フラグ
	 * @param viewLogic ビューロジック
	 * @return 出力先マップ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008011CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap preMap,
			String opeDate,
			String opeDateTimeStamp,
			HashMap mansionMap,
			HashMap<String, Boolean> svcKeiUpdFlgs,
			JCCWebBusinessLogic viewLogic) throws Exception
	{
		// 電話Bean項目の１⇔２番号対応辞書
		HashMap<String, Integer> telItemDic = new HashMap<String, Integer>();
		for (int i = 0; i < TEL_ITEM_NAMES[0].length; i++)
		{
			// 電話項目の件数は１番号目を基準にする
			for (int j = 0; j < TEL_ITEM_NAMES.length; j++)
			{
				telItemDic.put(TEL_ITEM_NAMES[j][i], i); // 電話１，２のBean名称より電話１，２共通のindexが得られる
			}
		}
		
		HashMap<String, Object> parentMap      = null;
		HashMap                 svcKeiMap      = null;
		
		/*--------------------* 
		 * データビーンを取得   
		 *--------------------*/
		if ((null == bean) || (1 != bean.length))
		{
			return null;
		}

		/*--------------------------------------------* 
		 * 電話のサービス契約内訳を取得   
		 *--------------------------------------------*/
		svcKeiMap = (HashMap)preMap.get("KKSV007905CC");
		if (svcKeiMap == null)
		{
			return null;
		}

		parentMap = new HashMap<String, Object>();

		/*----------------------* 
		 * 共通情報のマッピング   
		 *----------------------*/
		parentMap.put("func_code", func_code);

		/*----------------------* 
		 * 画面情報のマッピング   
		 *----------------------*/
		
		// 異動区分
		String idoDiv = getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 支払請求情報の取得(請求契約番号)
		String seikyKeiNo = getSeikyKeiNo(preMap);
		
		// 申込年月日を取得
		String mskmYmd = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
		
		// SYSIDを取得
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 申込明細情報変更
		setUpdTelMskmDtlMap(bean, parentMap, svcKeiMap, func_code);
		
		// サービス契約手続中料金プラン変更
		setUpdTelSvcKeiPplanMap(bean, parentMap, svcKeiMap, func_code);
		
		// サービス契約<eo光電話>情報変更
		setUpdTelSvcKeiMap(bean, parentMap, svcKeiMap, func_code);

		// サービス契約内訳
		
		//   =>電話１の更新は必ず行われる
		setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_UPDATE, func_code, telItemDic, TEL_ONE, viewLogic);
		
		ArrayList<HashMap<String, Object>> cancelOpSvcKeiList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("CANCEL_OP_SVC_KEI", cancelOpSvcKeiList);
		
		ArrayList<HashMap<String, Object>> addOpSvcKeiList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("ADD_OP_SVC_KEI_TEL", addOpSvcKeiList);
		
		// オプションサービス契約キャンセル
		cancelOpSvcKeiList.addAll(getEohTelCancelOpSvcKeiList(TEL_ONE, getEohTelCnclOpSvcCdListForUpd(bean[0], TEL_ONE, svcKeiMap),
				func_code, svcKeiMap, idoDiv));
		// オプションサービス契約登録
		addOpSvcKeiList.addAll(getEohTelAddOpSvcKeiList(TEL_ONE, getEohTelAddOpSvcCdListForUpd(bean[0], TEL_ONE, svcKeiMap),
				func_code, svcKeiMap, idoDiv, seikyKeiNo));
		
		ArrayList<HashMap<String, Object>> cancelSbopSvcKeiList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("CANCEL_SBOP_SVC_KEI", cancelSbopSvcKeiList);
		
		ArrayList<HashMap<String, Object>> addSbopSvcKeiList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("ADD_SBOP_SVC_KEI_TEL", addSbopSvcKeiList);
		
		// サブオプションサービス契約キャンセル
		cancelSbopSvcKeiList.addAll(getEohTelCancelSbopSvcKeiList(TEL_ONE, getTelCnclSbopSvcCdListForUpd(bean[0], TEL_ONE, svcKeiMap),
				func_code, svcKeiMap, idoDiv));
		// サブオプションサービス契約登録
		addSbopSvcKeiList.addAll(getEohTelAddSbopSvcKeiList(TEL_ONE, getTelAddSbopSvcCdListForUpd(bean[0], TEL_ONE, svcKeiMap),
				func_code, svcKeiMap, idoDiv, seikyKeiNo));
		
		// 自動追加されるオプションの更新処理
		setTelOpSvckeiAutoMap(bean, parentMap, preMap, svcKeiMap, TEL_ONE, IS_UPDATE, func_code);
		setTelOpSvckeiAutoMap(bean, parentMap, preMap, svcKeiMap, TEL_TWO, IS_UPDATE, func_code);
		
		ArrayList<HashMap<String, Object>> cnclEohtlPackList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("cncl_eohtl_pack_list", cnclEohtlPackList);
		
		ArrayList<HashMap<String, Object>> addEohtlPackList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("add_eohtl_pack_list", addEohtlPackList);
		
		// eo光電話パックキャンセル
		cnclEohtlPackList.addAll(getCancelEohtlPackList(TEL_ONE, getCnclEohtlPackCdListForUpd(bean[0], TEL_ONE, svcKeiMap),
				svcKeiMap, idoDiv, sysid, opeDate));
		
		// eo光電話パック登録
		addEohtlPackList.addAll(getAddEohtlPackList(TEL_ONE, getAddEohtlPackCdListForUpd(bean[0], TEL_ONE, svcKeiMap),
				svcKeiMap, idoDiv, sysid, mskmYmd));
		
		//   =>電話２は条件によりキャンセル、追加、更新される
		if (svcKeiUpdFlgs.get(IS_TEL2_MINUS))
		{
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_CANCEL, func_code, telItemDic, TEL_TWO, viewLogic);
			
			// オプションサービス契約キャンセル
			cancelOpSvcKeiList.addAll(getEohTelCancelOpSvcKeiList(TEL_TWO, getAllEohtlOpSvcCdList(TEL_TWO, svcKeiMap),
					func_code, svcKeiMap, idoDiv));
			// サブオプションサービス契約キャンセル
			cancelSbopSvcKeiList.addAll(getEohTelCancelSbopSvcKeiList(TEL_TWO, getAllEohtlSbopSvcCdList(TEL_TWO, svcKeiMap),
					func_code, svcKeiMap, idoDiv));
			// ｅｏ光電話パックキャンセル
			cnclEohtlPackList.addAll(getCancelEohtlPackList(TEL_TWO, getAllEohtlPackCdList(TEL_TWO, svcKeiMap),
					svcKeiMap, idoDiv, sysid, opeDate));
		}
		if (svcKeiUpdFlgs.get(IS_TEL2_PLUS))
		{
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_ADD, func_code, telItemDic, TEL_TWO, viewLogic);
			
			// オプションサービス契約登録
			addOpSvcKeiList.addAll(getEohTelAddOpSvcKeiList(TEL_TWO, getEohTelAddOpSvcCdList(bean[0], TEL_TWO),
					func_code, svcKeiMap, idoDiv, seikyKeiNo));
			// オプションサービス契約登録（自動登録分）
			setTelOpSvckeiAutoMap(bean, parentMap, preMap, svcKeiMap, TEL_TWO, IS_ADD, func_code);
			// サブオプションサービス契約登録
			addSbopSvcKeiList.addAll(getEohTelAddSbopSvcKeiList(TEL_TWO, getEohTelAddSbopSvcCdList(bean[0], TEL_TWO),
					func_code, svcKeiMap, idoDiv, seikyKeiNo));
			// ｅｏ光電話パック登録
			addEohtlPackList.addAll(getAddEohtlPackList(TEL_TWO, getAddEohtlPackCdList(bean[0], TEL_TWO),
					svcKeiMap, idoDiv, sysid, mskmYmd));
		}
		if (svcKeiUpdFlgs.get(IS_TEL2_UPDATE))
		{
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_UPDATE, func_code, telItemDic, TEL_TWO, viewLogic);
			
			// オプションサービス契約キャンセル
			cancelOpSvcKeiList.addAll(getEohTelCancelOpSvcKeiList(TEL_TWO, getEohTelCnclOpSvcCdListForUpd(bean[0], TEL_TWO, svcKeiMap),
					func_code, svcKeiMap, idoDiv));
			// オプションサービス契約登録
			addOpSvcKeiList.addAll(getEohTelAddOpSvcKeiList(TEL_TWO, getEohTelAddOpSvcCdListForUpd(bean[0], TEL_TWO, svcKeiMap),
					func_code, svcKeiMap, idoDiv, seikyKeiNo));
			// サブオプションサービス契約キャンセル
			cancelSbopSvcKeiList.addAll(getEohTelCancelSbopSvcKeiList(TEL_TWO, getTelCnclSbopSvcCdListForUpd(bean[0], TEL_TWO, svcKeiMap),
					func_code, svcKeiMap, idoDiv));
			// サブオプションサービス契約登録
			addSbopSvcKeiList.addAll(getEohTelAddSbopSvcKeiList(TEL_TWO, getTelAddSbopSvcCdListForUpd(bean[0], TEL_TWO, svcKeiMap),
					func_code, svcKeiMap, idoDiv, seikyKeiNo));
			// ｅｏ光電話パックキャンセル
			cnclEohtlPackList.addAll(getCancelEohtlPackList(TEL_TWO, getCnclEohtlPackCdListForUpd(bean[0], TEL_TWO, svcKeiMap),
					svcKeiMap, idoDiv, sysid, opeDate));
			// ｅｏ光電話パック登録
			addEohtlPackList.addAll(getAddEohtlPackList(TEL_TWO, getAddEohtlPackCdListForUpd(bean[0], TEL_TWO, svcKeiMap),
					svcKeiMap, idoDiv, sysid, mskmYmd));
		}
		
		//   =>更新時は 番ポ情報を追加更新またはクリア更新する必要がある
		if (svcKeiUpdFlgs.get(IS_TEL1_UPDATE))
		{
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_PLUS_BMP, func_code, telItemDic, TEL_ONE, viewLogic);
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_MINUS_BMP, func_code, telItemDic, TEL_ONE, viewLogic);
		}
		if (svcKeiUpdFlgs.get(IS_TEL2_UPDATE))
		{
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_PLUS_BMP, func_code, telItemDic, TEL_TWO, viewLogic);
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_MINUS_BMP, func_code, telItemDic, TEL_TWO, viewLogic);
		}
		
		// エージング対象登録,電話番号登録
		setAddTelNoAndAgingMap(bean, parentMap, svcKeiMap, opeDate, opeDateTimeStamp, func_code,
				TEL_ONE, KKW00101SFConst.TEL1_TELNO_KIND, KKW00101SFConst.TEL1_BMP_TELNO);
		if (svcKeiUpdFlgs.get(IS_TEL2_PLUS) || svcKeiUpdFlgs.get(IS_TEL2_UPDATE))
		{
			setAddTelNoAndAgingMap(bean, parentMap, svcKeiMap, opeDate, opeDateTimeStamp, func_code,
					TEL_TWO, KKW00101SFConst.TEL2_TELNO_KIND, KKW00101SFConst.TEL2_BMP_TELNO);
		}
		
		// 番ポエイジング、電話番号マスタ削除
		setCancelBmpAgingMap(bean, parentMap, svcKeiMap, svcKeiUpdFlgs, func_code, TEL_ONE); // 電話１
		setCancelBmpAgingMap(bean, parentMap, svcKeiMap, svcKeiUpdFlgs, func_code, TEL_TWO); // 電話２
		
// ANK-4494-00-00 DEL START
//		// 同番移転キャンセル登録更新判定
//		getDobanAction(bean, svcKeiMap, telItemDic, TEL_ONE); // 電話１
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG,  telItemDic, TEL_ONE, opeDate, func_code);
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG, telItemDic, TEL_ONE, opeDate, func_code);
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG, telItemDic, TEL_ONE, opeDate, func_code);
//		
//		getDobanAction(bean, svcKeiMap, telItemDic, TEL_TWO); // 電話２
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL2_DOBANMOVE_CL_FLG,  telItemDic, TEL_TWO, opeDate, func_code);
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL2_DOBANMOVE_ADD_FLG, telItemDic, TEL_TWO, opeDate, func_code);
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL2_DOBANMOVE_UPD_FLG, telItemDic, TEL_TWO, opeDate, func_code);
// ANK-4494-00-00 DEL END

		outputMap.put("KKSV008011CC", parentMap);
		return outputMap;
	}
	
	/**
	 * ｅｏ光電話パックのキャンセルリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param eohtlPackCdList ｅｏ光電話パックキャンセルコードリスト
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @param sysid SYSID
	 * @param opeDate 運用年月日
	 * @return ｅｏ光電話サービスキャンセルリスト
	 */
	private static ArrayList<HashMap<String, Object>> getCancelEohtlPackList(String telNoJun, ArrayList<String> eohtlPackCdList,
			HashMap<String, Object> svcKeiMap, String idoDiv, String sysid, String opeDate)
	{
		return getCancelEohtlPackList(telNoJun, eohtlPackCdList, svcKeiMap, idoDiv, sysid, opeDate, JKKStrConst.CD01254_20);
	}

	/**
	 * ｅｏ光電話パックのキャンセルリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param eohtlPackCdList ｅｏ光電話パックキャンセルコードリスト
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @param sysid SYSID
	 * @param opeDate 運用年月日
	 * @param svcCnclRsnCd サービスキャンセル理由コード
	 * @return ｅｏ光電話サービスキャンセルリスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<HashMap<String, Object>> getCancelEohtlPackList(String telNoJun, ArrayList<String> eohtlPackCdList,
			HashMap<String, Object> svcKeiMap, String idoDiv, String sysid, String opeDate, String svcCnclRsnCd)
	{
		ArrayList<HashMap<String, Object>> eohtlPackList = new ArrayList<HashMap<String, Object>>();
		
		String svcKeiUcwkNo = null;
		ArrayList<HashMap<String, Object>> svcKeiUcwkList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("svc_kei_ucwk_tel_list");
		if (null != svcKeiUcwkList)
		{
			// 指定された番号目のサービス契約内訳番号を取得する
			for (HashMap tmpMap : svcKeiUcwkList)
			{
				if (telNoJun.equals(tmpMap.get("kk0191_telno_jun")))
				{
					svcKeiUcwkNo = (String)tmpMap.get("kk0191_svc_kei_ucwk_no");
					break;
				}
			}
		}
		
		for (String  eohtlPackCd : eohtlPackCdList)
		{
			// 照会データからキャンセル対象の割引サービス契約情報を取得
			HashMap<String, Object> wribSvcKeiMap = null;
			ArrayList<HashMap<String, Object>> wribSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("kk0451_ekk0451b030cbsmsg1list");
			if (null != wribSvcKeiList)
			{
				for (HashMap<String, Object> tmpMap : wribSvcKeiList)
				{
					if (telNoJun.equals((String)tmpMap.get("telIndex"))
							&& eohtlPackCd.equals((String)tmpMap.get("kk0451_wrib_svc_cd")))
					{
						wribSvcKeiMap = tmpMap;
						break;
					}
				}
			}
			
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// SYSID
			childMap.put("sysid", sysid);
			// サービス契約番号
			childMap.put("svc_kei_no", svcKeiMap.get("kk0081_svc_kei_no"));
			// サービス契約内訳番号
			childMap.put("svc_kei_ucwk_no", svcKeiUcwkNo);
			// 申込明細番号
			childMap.put("mskm_dtl_no",  svcKeiMap.get("kk0081_mskm_dtl_no"));
			// サービスキャンセル理由コード
			childMap.put("svc_cancel_rsn_cd", svcCnclRsnCd);
			// 起算日
			childMap.put("kisan_ymd", opeDate);
			// 異動区分
			childMap.put("ido_div", idoDiv);
			// パック割区分
			childMap.put("pack_div", JKKWebCommon.getEohtlPackDiv((String)wribSvcKeiMap.get("kk0451_wrib_svc_cd")));
			// 更新年月日時分秒（更新前）
			childMap.put("kk0081_upd_dtm", wribSvcKeiMap.get("kk0451_last_upd_dtm"));
			
			eohtlPackList.add(childMap);
		}
		
		return eohtlPackList;
	}
	
	/**
	 * ｅｏ光電話パックの登録リストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param eohtlPackCdList ｅｏ光電話パックキャンセルコードリスト
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @param sysid SYSID
	 * @param mskmYmd 申込年月日
	 * @return ｅｏ光電話パックの登録リスト
	 */
	private ArrayList<HashMap<String, Object>> getAddEohtlPackList(String telNoJun, ArrayList<String> eohtlPackCdList,
			HashMap<String, Object> svcKeiMap, String idoDiv, String sysid, String mskmYmd)
	{
		ArrayList<HashMap<String, Object>> eohtlPackList = new ArrayList<HashMap<String, Object>>();
		
		for (String eohtlPackCd : eohtlPackCdList)
		{
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// 電話番号順
			childMap.put("telno_jun", telNoJun);
			// SYSID
			childMap.put("sysid", sysid);
			// サービス契約番号
			childMap.put("svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no"));
			// 申込明細番号
			childMap.put("mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no"));
			// 起算日
			childMap.put("kisan_ymd", mskmYmd);
			// 異動区分
			childMap.put("ido_div", idoDiv);
			// パック割区分
			childMap.put("pack_div", JKKWebCommon.getEohtlPackDiv(eohtlPackCd));
			
			eohtlPackList.add(childMap);
		}
		
		return eohtlPackList;
	}
	
	/**
	 * eo光電話オプションサービス契約のキャンセルマッピングリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param opSvcCdList キャンセルオプションサービスコードリスト
	 * @param func_code 機能コード
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @return キャンセルオプションサービス契約リスト
	 */
	private static ArrayList<HashMap<String, Object>> getEohTelCancelOpSvcKeiList(String telNoJun,
			ArrayList<String> opSvcCdList, String func_code, HashMap<String, Object> svcKeiMap, String idoDiv)
	{
		return getEohTelCancelOpSvcKeiList(telNoJun, opSvcCdList, func_code, svcKeiMap, idoDiv, JKKStrConst.CD01254_20);
	}
	
	/**
	 * eo光電話オプションサービス契約のキャンセルマッピングリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param opSvcCdList キャンセルオプションサービスコードリスト
	 * @param func_code 機能コード
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @param svcCnclRsnCd サービスキャンセル理由コード
	 * @return キャンセルオプションサービス契約リスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<HashMap<String, Object>> getEohTelCancelOpSvcKeiList(String telNoJun,
			ArrayList<String> opSvcCdList, String func_code, HashMap<String, Object> svcKeiMap, String idoDiv, String svcCnclRsnCd)
	{
		ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
		
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		
		for (String opSvcCd : opSvcCdList)
		{
			HashMap<String, Object> opSvcKeiMap = null;
			
			// 照会データから削除対象の情報を検索する
			for (HashMap<String, Object> tmpOpSvcKeiMap : opSvcKeiList)
			{
				if (telNoJun.equals(tmpOpSvcKeiMap.get("telIndex").toString())
						&& opSvcCd.equals((String)tmpOpSvcKeiMap.get("kk0351_op_svc_cd")))
				{
					opSvcKeiMap = tmpOpSvcKeiMap;
					break;
				}
			}
			
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// 機能コード
			childMap.put("func_code", func_code);
			// 電話番号目
			childMap.put("telno_jun", telNoJun);
			// 申込明細番号
			childMap.put("kk0351_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no"));
			// サービスキャンセル理由コード
			childMap.put("kk0351_svc_cancel_rsn_cd", svcCnclRsnCd);
			// 異動区分
			childMap.put("kk0351_ido_div", idoDiv);
			// オプションサービス契約番号
			childMap.put("kk0351_op_svc_kei_no", (String)opSvcKeiMap.get("kk0351_op_svc_kei_no"));
			// 更新年月日時分秒(更新前)
			childMap.put("kk0351_upd_dtm_bf", (String)opSvcKeiMap.get("kk0351_last_upd_dtm"));
			
			dataList.add(childMap);
		}
		
		return dataList;
	}
	
	/**
	 * eo光電話オプションサービス契約の登録マッピングリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param opSvcCdList 登録オプションサービスコードリスト
	 * @param func_code 機能コード
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @param seikyKeiNo 請求契約番号
	 * @return 登録オプションサービス契約リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap<String, Object>> getEohTelAddOpSvcKeiList(String telNoJun,
			ArrayList<String> opSvcCdList, String func_code, HashMap<String, Object> svcKeiMap, String idoDiv, String seikyKeiNo)
	{
		ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();

		HashMap<String, Object> svcKeiUcwkMap = null;
		ArrayList<HashMap<String, Object>> svcKeiUcwkList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("svc_kei_ucwk_tel_list");
		if (null != svcKeiUcwkList)
		{
			// 指定された番号目のサービス契約内訳を取得する（２番号目はnullが有り得る）
			for (HashMap tmpMap : svcKeiUcwkList)
			{
				if (telNoJun.equals(tmpMap.get("kk0191_telno_jun")))
				{
					svcKeiUcwkMap = tmpMap;
					break;
				}
			}
		}
		
		for (String opSvcCd : opSvcCdList)
		{
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			childMap.put("func_code", func_code);
			childMap.put("telno_jun", telNoJun);
			childMap.put("kk0371_op_svc_cd", opSvcCd);
			
			HashMap<String, String> opPrcMap = JKKWebCommon.getEohtlOpPrcKnrnCd(opSvcCd);
			childMap.put("kk0371_pcrs_cd", opPrcMap.get("pcrs_cd"));
			childMap.put("kk0371_pplan_cd", opPrcMap.get("pplan_cd"));
			
			childMap.put("kk0371_oya_kei_skbt_cd", OYA_KEI_SKBT_CD_SVKEIUW);
			
			if (null != svcKeiUcwkMap)
			{
				childMap.put("kk0371_svc_kei_ucwk_no", (String)svcKeiUcwkMap.get("kk0191_svc_kei_ucwk_no"));
			}
			
			childMap.put("kk0371_sysid", (String)svcKeiMap.get("kk0081_sysid"));
			childMap.put("kk0371_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no"));
			childMap.put("kk0371_ido_div", idoDiv);
			childMap.put("kk0371_seiky_kei_no", seikyKeiNo);
			childMap.put("kk0371_upd_dtm_bf", svcKeiMap.get("kk0081_last_upd_dtm"));
			
			dataList.add(childMap);
		}
		
		return dataList;
	}
	
	/**
	 * eo光電話サブオプションサービス契約のキャンセルマッピングリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param sbopSvcCdList キャンセルオプションサービスコードリスト
	 * @param func_code 機能コード
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @return キャンセルサブオプションサービス契約リスト
	 */
	private static ArrayList<HashMap<String, Object>> getEohTelCancelSbopSvcKeiList(String telNoJun,
			ArrayList<String> sbopSvcCdList, String func_code, HashMap<String, Object> svcKeiMap, String idoDiv)
	{
		return getEohTelCancelSbopSvcKeiList(telNoJun, 	sbopSvcCdList, func_code, svcKeiMap, idoDiv, JKKStrConst.CD01254_20);
	}
	
	/**
	 * eo光電話サブオプションサービス契約のキャンセルマッピングリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param sbopSvcCdList キャンセルオプションサービスコードリスト
	 * @param func_code 機能コード
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @param svcCnclRsnCd サービスキャンセル理由コード
	 * @return キャンセルサブオプションサービス契約リスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<HashMap<String, Object>> getEohTelCancelSbopSvcKeiList(String telNoJun,
			ArrayList<String> sbopSvcCdList, String func_code, HashMap<String, Object> svcKeiMap, String idoDiv, String svcCnclRsnCd)
	{
		ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
		
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		
		for (String sbopSvcCd : sbopSvcCdList)
		{
			HashMap<String, Object> opSvcKeiMap = null;
			
			// 照会データから削除対象の情報を検索する
			for (HashMap<String, Object> tmpOpSvcKeiMap : opSvcKeiList)
			{
				if (telNoJun.equals(tmpOpSvcKeiMap.get("telIndex").toString())
						&& sbopSvcCd.equals((String)tmpOpSvcKeiMap.get("kk0401_sbop_svc_cd")))
				{
					opSvcKeiMap = tmpOpSvcKeiMap;
					break;
				}
			}
			
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// 機能コード
			childMap.put("func_code", func_code);
			// 電話番号目
			childMap.put("telno_jun", telNoJun);
			// オプションサービス契約番号
			childMap.put("kk0401_op_svc_kei_no" , (String)opSvcKeiMap.get("kk0401_op_svc_kei_no"));
			// サブオプションサービス契約番号
			childMap.put("kk0401_sbop_svc_kei_no", (String)opSvcKeiMap.get("kk0401_sbop_svc_kei_no"));
			// 申込明細番号
			childMap.put("kk0401_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no"));
			// サービスキャンセル理由コード
			childMap.put("kk0401_svc_cancel_rsn_cd", svcCnclRsnCd);
			// 異動区分
			childMap.put("kk0401_ido_div", idoDiv);
			// 更新年月日時分秒(更新前)
			childMap.put("kk0401_upd_dtm_bf", (String)opSvcKeiMap.get("kk0401_last_upd_dtm"));
			
			dataList.add(childMap);
		}
		
		return dataList;
	}
	
	/**
	 * eo光電話サブオプションサービス契約の登録マッピングリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param sbopSvcCdList 登録サブオプションサービスコードリスト
	 * @param func_code 機能コード
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param idoDiv 異動区分
	 * @param seikyKeiNo 請求契約番号
	 * @return 登録サブオプションサービス契約リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap<String, Object>> getEohTelAddSbopSvcKeiList(String telNoJun,
			ArrayList<String> sbopSvcCdList, String func_code, HashMap<String, Object> svcKeiMap, String idoDiv, String seikyKeiNo)
	{
		ArrayList<HashMap<String, Object>> dataList = new ArrayList<HashMap<String, Object>>();
		
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		
		for (String sbopSvcCd : sbopSvcCdList)
		{
			HashMap<String, Object> childMap = new HashMap<String, Object>();
			
			// 機能コード
			childMap.put("func_code", func_code);
			// 電話番号目（CC内で必要）
			childMap.put("telno_jun", telNoJun);
			// オプションサービスコード（CC内で必要）
			String opSvcCd = JKKWebCommon.getOyaOpSvcCd(sbopSvcCd);
			childMap.put("op_svc_cd", opSvcCd);
			
			// オプションサービス契約番号
			if (null != opSvcKeiList)
			{
				for (HashMap<String, Object> opSvcKeiMap : opSvcKeiList)
				{
					// 対象以外の電話番号順のデータはスキップ
					if (!telNoJun.equals(opSvcKeiMap.get("telIndex").toString()))
					{
						continue;
					}
					
					// 照会時のオプションサービス契約番号をセット、ただしオプションの削除再登録を考慮し、CC内で最新の番号が優先的に取得されます。
					if (opSvcCd.equals((String)opSvcKeiMap.get("kk0351_op_svc_cd")))
					{
						childMap.put("kk0431_op_svc_kei_no", opSvcKeiMap.get("kk0351_op_svc_kei_no"));
						break;
					}
				}
			}
			
			// サブオプションサービスコード
			childMap.put("kk0431_sbop_svc_cd", sbopSvcCd);
			
			HashMap<String, String> sbopPrcMap = JKKWebCommon.getEohtlSbopPrcKnrnCd(sbopSvcCd);
			// 料金コースコード
			childMap.put("kk0431_pcrs_cd", sbopPrcMap.get("pcrs_cd"));
			// 料金プランコード
			childMap.put("kk0431_pplan_cd", sbopPrcMap.get("pplan_cd"));
			
			// 申込明細番号
			childMap.put("kk0431_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no"));
			// 異動区分
			childMap.put("kk0431_ido_div", idoDiv);
			// 請求契約番号
			childMap.put("kk0431_seiky_kei_no", seikyKeiNo);
			
			dataList.add(childMap);
		}
		
		return dataList;
	}
	
	/**
	 * 電話の申込明細更新の上りマッピングを行います。
	 * <br>
	 * @param bean      [0]：申込新規登録画面
	 * @param parentMap 申込情報マップ
	 * @param svcKeiMap 電話照会時情報
	 * @param func_code 機能コード
	 */
	@SuppressWarnings("unchecked")
	private void setUpdTelMskmDtlMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap, HashMap svcKeiMap, String func_code)
	{
		// 申込明細のマッピング配列を取得する（無ければ作る）
		ArrayList mskmDtlMapList = (ArrayList)parentMap.get("UPD_MSKM_DTL");
		
		if (null == mskmDtlMapList)
		{
			mskmDtlMapList = new ArrayList();
			parentMap.put("UPD_MSKM_DTL", mskmDtlMapList);
		
		}
		
		HashMap mskmDtlMap = new HashMap();
		
		mskmDtlMap.put("func_code", func_code);

		/*--------------------* 
		 * 照会時データの転記   
		 *--------------------*/
		
		parentMap.put("kk0021_mskm_dtl_no", (String)svcKeiMap.get("kk0021_mskm_dtl_no")); // 申込明細番号（進捗用）
		mskmDtlMap.put("kk0021_mskm_dtl_no", (String)svcKeiMap.get("kk0021_mskm_dtl_no")); // 申込明細番号
		mskmDtlMap.put("kk0021_mskmsho_no", (String)svcKeiMap.get("kk0021_mskmsho_no")); // 申込書番号
		mskmDtlMap.put("kk0021_mskm_ymd", (String)svcKeiMap.get("kk0021_mskm_ymd")); // 申込年月日
		mskmDtlMap.put("kk0021_mskm_form_cd", getAddMskmFormCd(bean[0])); // 申込形態コード
		mskmDtlMap.put("kk0021_mskm_dtl_sbt_cd", (String)svcKeiMap.get("kk0021_mskm_dtl_sbt_cd")); // 申込明細種別コード
		mskmDtlMap.put("kk0021_rrks_ktai_telno", (String)svcKeiMap.get("kk0021_rrks_ktai_telno")); // 連絡先携帯電話番号
		mskmDtlMap.put("kk0021_rrks_offc_nm", (String)svcKeiMap.get("kk0021_rrks_offc_nm")); // 連絡先勤務先名
		mskmDtlMap.put("kk0021_dt_rrks_telno", (String)svcKeiMap.get("kk0021_dt_rrks_telno")); // 昼間連絡先電話番号
		mskmDtlMap.put("kk0021_new_mskm_sbt_cd", (String)svcKeiMap.get("kk0021_new_mskm_sbt_cd")); // 新規申込種別コード
		mskmDtlMap.put("kk0021_mskm_optnty_cd", (String)svcKeiMap.get("kk0021_mskm_optnty_cd")); // 申込契機コード
		mskmDtlMap.put("kk0021_takcho_kibo_apo_kigen_ymd", (String)svcKeiMap.get("kk0021_takcho_kibo_apo_kigen_ymd")); // 宅内調査希望アポ期限年月日
		mskmDtlMap.put("kk0021_koji_apo_rrks_shitei_cd", (String)svcKeiMap.get("kk0021_koji_apo_rrks_shitei_cd")); // 工事アポ連絡先指定コード
		mskmDtlMap.put("kk0021_koji_apo_rrks_telno", (String)svcKeiMap.get("kk0021_koji_apo_rrks_telno")); // 工事アポ連絡先電話番号
		mskmDtlMap.put("kk0021_rrk_jiko_add_dtm", (String)svcKeiMap.get("kk0021_rrk_jiko_add_dtm")); // 連絡事項登録年月日時分秒
		mskmDtlMap.put("kk0021_mskm_rrks_mlad", (String)svcKeiMap.get("kk0021_mskm_rrks_mlad")); // 申込連絡先メールアドレス
		mskmDtlMap.put("kk0021_koji_prg_tchi_mlad", (String)svcKeiMap.get("kk0021_koji_prg_tchi_mlad")); // 工事進捗通知メールアドレス
		mskmDtlMap.put("kk0021_rrk_jiko", (String)svcKeiMap.get("kk0021_rrk_jiko")); // 連絡事項
		mskmDtlMap.put("kk0021_rcnt_shokai_ymd", (String)svcKeiMap.get("kk0021_rcnt_shokai_ymd")); // 最新照会年月日
		mskmDtlMap.put("kk0021_web_shokai_cnt", (String)svcKeiMap.get("kk0021_web_shokai_cnt")); // Web照会回数
		mskmDtlMap.put("kk0021_pc_shokai_cnt", (String)svcKeiMap.get("kk0021_pc_shokai_cnt")); // PC照会回数
		mskmDtlMap.put("kk0021_ktai_shokai_cnt", (String)svcKeiMap.get("kk0021_ktai_shokai_cnt")); // 携帯照会回数
		mskmDtlMap.put("kk0021_kjsc_tch_ktai_mlad", (String)svcKeiMap.get("kk0021_kjsc_tch_ktai_mlad")); // 工事進捗通知携帯メールアドレス
		// 工事進捗通知PCメールアドレス変更年月日
		mskmDtlMap.put("kk0021_kjsc_tch_pc_mlad_chg_ymd", (String)svcKeiMap.get("kk0021_kjsc_tch_pc_mlad_chg_ymd"));
		// 工事進捗通知携帯メールアドレス変更年月日
		mskmDtlMap.put("kk0021_kjsc_tch_ktai_mlad_chg_ymd", (String)svcKeiMap.get("kk0021_kjsc_tch_ktai_mlad_chg_ymd"));
		mskmDtlMap.put("kk0021_ml_send_jgi_flg", (String)svcKeiMap.get("kk0021_ml_send_jgi_flg")); // メール送信除外フラグ
		mskmDtlMap.put("kk0021_ml_send_jgi_rsn_memo", (String)svcKeiMap.get("kk0021_ml_send_jgi_rsn_memo")); // メール送信除外理由メモ
		mskmDtlMap.put("kk0021_bmp_mskm_rrks_tln", (String)svcKeiMap.get("kk0021_bmp_mskm_rrks_tln")); // 番ポ申込連絡先電話番号
		mskmDtlMap.put("kk0021_op_svc_hktgi_um", (String)svcKeiMap.get("kk0021_op_svc_hktgi_um")); // オプションサービス引継有無
		mskmDtlMap.put("kk0021_dsl_aticle_sohu_kibo_um", (String)svcKeiMap.get("kk0021_dsl_aticle_sohu_kibo_um")); // 解約書類送付希望有無
		mskmDtlMap.put("kk0021_rrk_way_hoki", (String)svcKeiMap.get("kk0021_rrk_way_hoki")); // 連絡手段補記
		mskmDtlMap.put("kk0021_newconst_bukken_cd", (String)svcKeiMap.get("kk0021_newconst_bukken_cd")); // 新築物件コード
		mskmDtlMap.put("kk0021_hukkat_anken_flg", (String)svcKeiMap.get("kk0021_hukkat_anken_flg")); // 復活案件フラグ
		mskmDtlMap.put("kk0021_same_equip_re_mskm_cd", (String)svcKeiMap.get("kk0021_same_equip_re_mskm_cd")); // 同一設備再申込コード
		mskmDtlMap.put("kk0021_hnin_cfm_aticle_sbt_cd", (String)svcKeiMap.get("kk0021_hnin_cfm_aticle_sbt_cd")); // 本人確認書類種別コード
		mskmDtlMap.put("kk0021_kei_huka_cd", (String)svcKeiMap.get("kk0021_kei_huka_cd")); // 契約付加コード
		mskmDtlMap.put("kk0021_map_temp_um", (String)svcKeiMap.get("kk0021_map_temp_um")); // 地図添付有無
		mskmDtlMap.put("kk0021_kcn_stb_mskm_cnt", (String)svcKeiMap.get("kk0021_kcn_stb_mskm_cnt")); // KCNSTB申込台数
		mskmDtlMap.put("kk0021_kcn_stb_kind_cd", (String)svcKeiMap.get("kk0021_kcn_stb_kind_cd")); // KCNSTB種類コード
		mskmDtlMap.put("kk0021_manssbsys_rnki_yo_kijiran", (String)svcKeiMap.get("kk0021_manssbsys_rnki_yo_kijiran")); // マンション設備システム連携用記事欄
		mskmDtlMap.put("kk0021_mansion_id", (String)svcKeiMap.get("kk0021_mansion_id")); // マンションID
		mskmDtlMap.put("kk0021_catid", (String)svcKeiMap.get("kk0021_catid")); // CAT-ID
		mskmDtlMap.put("kk0021_mkm_uk_sbt_cd", (String)svcKeiMap.get("kk0021_mkm_uk_sbt_cd")); // 申込受付種別コード
		mskmDtlMap.put("kk0021_mskmsho_trat_if_tntsha_nm", (String)svcKeiMap.get("kk0021_mskmsho_trat_if_tntsha_nm")); // 申込書取扱情報担当者名
		mskmDtlMap.put("kk0021_mskmsho_trat_if_telno", (String)svcKeiMap.get("kk0021_mskmsho_trat_if_telno")); // 申込書取扱情報電話番号
		mskmDtlMap.put("kk0021_upd_dtm_bf", (String)svcKeiMap.get("kk0021_last_upd_dtm")); // 更新年月日時分秒(更新前)
		// ANK-4088-00-00 ADD START
		mskmDtlMap.put("kk0021_takcho_apo_kaden_kibo_um", (String)svcKeiMap.get("kk0021_takcho_apo_kaden_kibo_um")); // 宅内調査のアポ架電希望
		// ANK-4088-00-00 ADD END
		mskmDtlMap.put("kk0021_mskmsho_dtl_no",
				bean[0].sendMessageString(KKW00101SFConst.NET_TEL_MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE)); // 申込書明細番号

		/*--------------* 
		 * 更新情報の転記 
		 *--------------*/

		// 申込年月日
		String mskmYmd = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);

		// 申込書番号
		mskmDtlMap.put("kk0021_mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込年月日
		mskmDtlMap.put("kk0021_mskm_ymd", mskmYmd);
		// 申込フラグ
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{	// 追加の場合
			// オプションサービス引継有無
			String opSvcHktgiUm = (bean[0].sendMessageBoolean(KKW00101SFConst.SVC_NYO_HKTGI,
					X31CWebConst.DATABEAN_GET_VALUE))?(UMU_ARI):(UMU_NASI);
			mskmDtlMap.put("kk0021_op_svc_hktgi_um", opSvcHktgiUm);

			// 解約書類送付希望有無
			String dslAticleSohuKiboUm = (bean[0].sendMessageBoolean(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO,
					X31CWebConst.DATABEAN_GET_VALUE))?(UMU_ARI):(UMU_NASI);
			mskmDtlMap.put("kk0021_dsl_aticle_sohu_kibo_um", dslAticleSohuKiboUm);
		}

		// 申込連絡先メールアドレス
		mskmDtlMap.put("kk0021_mskm_rrks_mlad", bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE));

		// マンション設備システム連携用記事欄 (2012/04/20追加 UI残759)
		mskmDtlMap.put("kk0021_manssbsys_rnki_yo_kijiran",
				bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// 本人確認書類種別コード
		String hninBunshoKind = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SBT_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		hninBunshoKind = (JKKStrConst.CD01566_9.equals(hninBunshoKind))?(""):(hninBunshoKind);

		mskmDtlMap.put("kk0021_hnin_cfm_aticle_sbt_cd", hninBunshoKind);

		//本人確認書類コードがその他の場合
		if (JKKStrConst.CD00714_3.equals(hninBunshoKind))
		{
			mskmDtlMap.put("kk0021_hnin_cfm_aticle_nm",
					bean[0].sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込書の種類
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && (MSKM_KIND_HOME.equals(mskmKind) || MSKM_KIND_MEZON.equals(mskmKind)))
		{	// 書面申込のホームまたはメゾン
			// 地図添付有無
			String maptempAri = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MAPTEMP_ARI
					, KKW00101SFConst.MAP_TEMP_UM_CD_38, KKW00101SFConst.MAP_TEMP_UM_CD_LIST_38);
			mskmDtlMap.put("kk0021_map_temp_um", maptempAri);

			// 申込書取扱情報担当者名
			mskmDtlMap.put("kk0021_mskmsho_trat_if_tntsha_nm"
					, bean[0].sendMessageString(KKW00101SFConst.TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 申込書取扱情報電話番号
			mskmDtlMap.put("kk0021_mskmsho_trat_if_telno"
					, bean[0].sendMessageString(KKW00101SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// ホームの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			// 新築物件コード
			mskmDtlMap.put("kk0021_newconst_bukken_cd", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.NEWCONST_BUKKEN, 
																				JKKStrConst.NEWCONST_BUKKEN_YES, JKKStrConst.NEWCONST_BUKKEN_NO));
			// 復活案件フラグ
			mskmDtlMap.put("kk0021_hukkat_anken_flg", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.HUKKAT_ANKEN, 
																				JKKStrConst.HUKKAT_ANKEN_YES, JKKStrConst.HUKKAT_ANKEN_NO));

			String sameEquipReMskm = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.SAME_EQUIP_RE_MSKM,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_56,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_LIST_56);

			// 同一設備再申込コード
			mskmDtlMap.put("kk0021_same_equip_re_mskm_cd", sameEquipReMskm);
			
			// ANK-4468-04-00 DEL START
//			// ANK-4088-00-00 ADD START
//			// 宅内調査のアポ架電希望
//			mskmDtlMap.put("kk0021_takcho_apo_kaden_kibo_um", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM, 
//																				JKKStrConst.KIBO_YES, JKKStrConst.KIBO_NO));
//			// ANK-4088-00-00 ADD END
			// ANK-4468-04-00 DEL END
			// ANK-4468-04-00 ADD START
			// 宅内調査のアポ架電希望
			mskmDtlMap.put("kk0021_takcho_apo_kaden_kibo_um", getApoKadenUmCode(bean[0], KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM));
			// ANK-4468-04-00 ADD END
		}
		else
		{
			mskmDtlMap.put("kk0021_newconst_bukken_cd",    "0");
			mskmDtlMap.put("kk0021_hukkat_anken_flg",      "0");
			mskmDtlMap.put("kk0021_same_equip_re_mskm_cd", "0");
		}
		
		// マンション・メゾンの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null) || isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			String keiHukaCd = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.FUKA_LIST,
					KKW00101SFConst.FUKA_CD_57,
					KKW00101SFConst.FUKA_CD_LIST_57);

			mskmDtlMap.put("kk0021_kei_huka_cd", keiHukaCd);
			// マンションID
			mskmDtlMap.put("kk0021_mansion_id", bean[0].sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE));
			// CAT-ID
			mskmDtlMap.put("kk0021_catid", bean[0].sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// <-- 2012/03/27追加 UI残760

		// 申込種別コード
		String mskmSbtCd = JKKWebCommon.convertCode(
				bean[0], KKW00101SFConst.MSKM_SBT,
				KKW00101SFConst.SELECT_CD_59,
				KKW00101SFConst.CD_LIST_59);

		mskmDtlMap.put("kk0021_mkm_uk_sbt_cd", mskmSbtCd);

		// ANK-3136-00-00 ADD START
		// ホーム・メゾンの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null) || isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			// 他システム連携_宅内調査要否
			String tsyrnTakchoYh = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_TAKCHO_HUYO_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnTakchoYh = JKKCommonConst.KH_FAIL;
			}
			else
			{
				tsyrnTakchoYh = JKKCommonConst.KH_PSG;
			}
			mskmDtlMap.put("kk0021_tsyrn_takcho_yh", tsyrnTakchoYh);
			// 他システム連携_工事連絡先氏名
			mskmDtlMap.put("kk0021_tsyrn_kj_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_工事連絡先電話番号
			mskmDtlMap.put("kk0021_tsyrn_kj_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先氏名
			mskmDtlMap.put("kk0021_tsyrn_takcho_ji_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先電話番号
			mskmDtlMap.put("kk0021_tsyrn_takcho_ji_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_連絡希望日時
			mskmDtlMap.put("kk0021_tsyrn_rrk_kibo_date", bean[0].sendMessageString(KKW00101SFConst.TSYRN_RRK_KIBO_DATE, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_地図有無
			String tsyrnMapUm = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_MAP_UM, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnMapUm = JKKCommonConst.UM_U;
			}
			else
			{
				tsyrnMapUm = JKKCommonConst.UM_M;
			}
			mskmDtlMap.put("kk0021_tsyrn_map_um", tsyrnMapUm);
			// 他システム連携_既存契約情報
			mskmDtlMap.put("kk0021_tsyrn_kzn_kei_inf", bean[0].sendMessageString(KKW00101SFConst.TSYRN_KZN_KEI_INF, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_不備解消年月日
			mskmDtlMap.put("kk0021_tsyrn_hbi_kaishou_ymd", bean[0].sendMessageString(KKW00101SFConst.TSYRN_HBI_KAISHOU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用有無
// ANK-4468-11-00 MOD START
//			String equipRyuyoUm = "";
//			if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
//			{
//				equipRyuyoUm = JKKCommonConst.UM_U;
//			}
//			else
//			{
//				equipRyuyoUm = JKKCommonConst.UM_M;
//			}
			String equipRyuyoUm = JKKCommonConst.UM_M;
			String nrkemtSvkeiNo = bean[0].sendMessageString(KKW00101SFConst.NRKEMT_SVKEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JKKStringUtil.isNullBlank(nrkemtSvkeiNo))
			{
//			String plnNrkeFlg = bean[0].sendMessageString(KKW00101SFConst.PLAN_NRKEMT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//			if ("2".equals(plnNrkeFlg) || "4".equals(plnNrkeFlg)){
				equipRyuyoUm = (String)svcKeiMap.get("net_equip_ryuyo_um");
			} else {
				// 乗換以外は、従来通り
				if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
				{
					equipRyuyoUm = JKKCommonConst.UM_U;
				}
			}
//ANK-4468-11-00 MOD END
			mskmDtlMap.put("kk0021_equip_ryuyo_um", equipRyuyoUm);
			// 流用元工事案件番号
			mskmDtlMap.put("kk0021_ryuyo_moto_kjak_no", bean[0].sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用工事完了希望年月日
			String sbryKjFinKiboymd = bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_Y, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_M, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_D, X31CWebConst.DATABEAN_GET_VALUE);
			mskmDtlMap.put("kk0021_sbry_kj_fin_kiboymd", sbryKjFinKiboymd);
			// ANK-4096-00-00 ADD START
			// 現在利用先契約回線区分
			mskmDtlMap.put("kk0021_now_use_sk_kei_kisn_div", bean[0].sendMessageString(KKW00101SFConst.USE_SK_KEI_KISN_DIV, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器設置場所変更有無
			mskmDtlMap.put("kk0021_kiki_setplc_chgum", bean[0].sendMessageString(KKW00101SFConst.KIKI_SETPLACE_CHGE_RSV_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// 同日実施希望有無
			mskmDtlMap.put("kk0021_dojitu_jssi_kbum", bean[0].sendMessageString(KKW00101SFConst.TAKCHO_KJ_DOJITU_JSSI_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4096-00-00 ADD END
		}
		// ANK-3136-00-00 ADD END

		mskmDtlMapList.add(mskmDtlMap);
	}

	/**
	 * 電話のサービス契約手続中料金プラン変更の上りマッピングを行います。
	 * <br>
	 * @param bean [0]：申込新規登録画面
	 * @param parentMap 申込情報マップ
	 * @param svcKeiMap 電話照会時情報
	 * @param func_code 機能コード
	 */
	@SuppressWarnings("unchecked")
	private void setUpdTelSvcKeiPplanMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap, HashMap svcKeiMap, String func_code)
	{
		// １，２番号サービスの変更がない場合は何もしない
		if (bean[0].sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE).equals(
				bean[0].sendMessageString(KKW00101SFConst.HDN_EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return;
		}
		
		// サービス契約のマッピング配列を取得する（無ければ作る）
		ArrayList svcKeiPplanMapList = (ArrayList)parentMap.get("UPD_SVC_KEI_PPLAN");
		
		if (null == svcKeiPplanMapList)
		{
			svcKeiPplanMapList = new ArrayList();
			parentMap.put("UPD_SVC_KEI_PPLAN", svcKeiPplanMapList);
		
		}
		
		HashMap svcKeiPplanMap = new HashMap();
		
		svcKeiPplanMap.put("func_code", func_code);
		
		/*--------------------* 
		 * 照会時データの転記   
		 *--------------------*/
		
		svcKeiPplanMap.put("kk0081_svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no")); // サービス契約番号
		svcKeiPplanMap.put("kk0081_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no")); // 申込明細番号
		svcKeiPplanMap.put("kk0081_prc_grp_cd", (String)svcKeiMap.get("kk0081_prc_grp_cd")); // 料金グループコード(CD00133_TEL)
		svcKeiPplanMap.put("kk0081_tk_hoshiki_kei_no", (String)svcKeiMap.get("kk0081_tk_hoshiki_kei_no")); // 提供方式契約番号
		svcKeiPplanMap.put("kk0081_pnlty_hassei_cd", (String)svcKeiMap.get("kk0081_pnlty_hassei_cd")); // 違約金発生コード
		svcKeiPplanMap.put("kk0081_upd_dtm_bf", (String)svcKeiMap.get("kk0081_last_upd_dtm")); // 更新年月日時分秒(更新前)

		/*--------------* 
		 * 更新情報の転記 
		 *--------------*/
		
		String pcrs_cd  = null;
		String pplan_cd = null;
		
		// 申込フラグ
		String mskmKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		String jyukyoType = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);

		if (TEL_ONE.equals(bean[0].sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 料金コースコード
			pcrs_cd = CD00134_TEL1;
			
			// 料金プランコード
			if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && (MSKM_KIND_MANSION.equals(mskmKind)) ||
				MSKM_FORM_CD_TEL.equals(mskmFormCd) && (JYUKYO_TYPE_MANSION.equals(jyukyoType)))
			{
				// マンション・グローバル
				pplan_cd = CD00565_TEL1_MANSION;

				// マンション・光配線（回線提供方式取得(1:イーサ 2:光配線 3:VDSL)）
				if (MANSION_KAISEN_HSK_CD_OPTICAL.equals(bean[0].sendMessageString(KKW00101SFConst.MANSION_KAISEN_HOSHIKI, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					pplan_cd = CD00565_TEL1_MANSION_OPTICAL;
				}
			}
			else if (MSKM_KIND_MEZON.equals(mskmKind))
			{
				// メゾンタイプ
				pplan_cd = CD00565_TEL1_MEZON;
			}
			else
			{
				// ホームタイプ
				pplan_cd = CD00565_TEL1;
			}
		}
		else if (TEL_TWO.equals(bean[0].sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 料金コースコード
			pcrs_cd = CD00134_TEL2;
			
			if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && (MSKM_KIND_MANSION.equals(mskmKind)) ||
					MSKM_FORM_CD_TEL.equals(mskmFormCd) && (JYUKYO_TYPE_MANSION.equals(jyukyoType)))
			{
				// マンション・グローバル
				pplan_cd = CD00565_TEL2_MANSION;

				// マンション・光配線（回線提供方式取得(1:イーサ 2:光配線 3:VDSL)）
				if (MANSION_KAISEN_HSK_CD_OPTICAL.equals(bean[0].sendMessageString(KKW00101SFConst.MANSION_KAISEN_HOSHIKI, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					pplan_cd = CD00565_TEL2_MANSION_OPTICAL;
				}
			}
			else if (MSKM_KIND_MEZON.equals(mskmKind))
			{
				// メゾンタイプ
				pplan_cd = CD00565_TEL2_MEZON;
			}
			else
			{
				// ホームタイプ
				pplan_cd = CD00565_TEL2;
			}
		}

		svcKeiPplanMap.put("kk0081_pcrs_cd", pcrs_cd); // 料金コースコード
		svcKeiPplanMap.put("kk0081_pplan_cd", pplan_cd); // 料金プランコード

		svcKeiPplanMapList.add(svcKeiPplanMap);
		
	}

	/**
	 * 電話のサービス契約更新の上りマッピングを行います。
	 * <br>
	 * @param bean [0]：申込新規登録画面
	 * @param parentMap 申込情報マップ
	 * @param svcKeiMap 電話照会時情報
	 * @param func_code 機能コード
	 */
	@SuppressWarnings("unchecked")
	private void setUpdTelSvcKeiMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap, HashMap svcKeiMap, String func_code)
	{
		// サービス契約のマッピング配列を取得する（無ければ作る）
		ArrayList svcKeiTelMapList = (ArrayList)parentMap.get("UPD_SVC_KEI_TEL");
		
		if (null == svcKeiTelMapList)
		{
			svcKeiTelMapList = new ArrayList();
			parentMap.put("UPD_SVC_KEI_TEL", svcKeiTelMapList);
		
		}
		
		HashMap svcKeiTelMap = new HashMap();
		
		svcKeiTelMap.put("func_code", func_code);
		
		/*--------------------* 
		 * 照会時データの転記   
		 *--------------------*/
		
		parentMap.put("kk0111_svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no")); // サービス契約番号（進捗他多方面で利用しています）
		svcKeiTelMap.put("kk0111_svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no")); // サービス契約番号
		svcKeiTelMap.put("kk0111_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no")); // 申込明細番号
		svcKeiTelMap.put("kk0111_seiri_no", (String)svcKeiMap.get("kk0081_seiri_no")); // 整理番号
		svcKeiTelMap.put("kk0111_menkaihat_anken_no", (String)svcKeiMap.get("kk0081_menkaihat_anken_no")); // 面開発案件番号
		svcKeiTelMap.put("kk0111_tk_hoshiki_kei_no", (String)svcKeiMap.get("kk0081_tk_hoshiki_kei_no")); // 提供方式契約番号
		svcKeiTelMap.put("kk0111_svc_use_sta_kibo_ymd", (String)svcKeiMap.get("kk0081_svc_use_sta_kibo_ymd")); // サービス利用開始希望年月日
		svcKeiTelMap.put("kk0111_id_sokhosho_output_yh", (String)svcKeiMap.get("kk0081_id_sokhosho_output_yh")); // ID速報書出力要否
		svcKeiTelMap.put("kk0111_skekka_cd", (String)svcKeiMap.get("kk0081_skekka_cd")); // 審査結果コード
		svcKeiTelMap.put("kk0111_skekka_dtl_cd", (String)svcKeiMap.get("kk0081_skekka_dtl_cd")); // 審査結果詳細コード
		svcKeiTelMap.put("kk0111_skekka_hoki_cd", (String)svcKeiMap.get("kk0081_skekka_hoki_cd")); // 審査結果補記コード
		svcKeiTelMap.put("kk0111_skekka_send_cd", (String)svcKeiMap.get("kk0081_skekka_send_cd")); // 審査結果送信コード
		svcKeiTelMap.put("kk0111_payway_keizoku_flg", (String)svcKeiMap.get("kk0081_payway_keizoku_flg")); // 支払い方法継続フラグ
		svcKeiTelMap.put("kk0111_ftrial_kanyu_ymd", (String)svcKeiMap.get("kk0081_ftrial_kanyu_ymd")); // 試用加入年月日
		svcKeiTelMap.put("kk0111_ftrial_prd_endymd", (String)svcKeiMap.get("kk0081_ftrial_prd_endymd")); // 試用期間終了年月日
		svcKeiTelMap.put("kk0111_honkanyu_ymd", (String)svcKeiMap.get("kk0081_honkanyu_ymd")); // 本加入年月日
		svcKeiTelMap.put("kk0111_honkanyu_iko_kigen_ymd", (String)svcKeiMap.get("kk0081_honkanyu_iko_kigen_ymd")); // 本加入移行期限年月日
		svcKeiTelMap.put("kk0111_letter_hasso_shiwake_div", (String)svcKeiMap.get("kk0081_letter_hasso_shiwake_div")); // レター発送仕分区分
		svcKeiTelMap.put("kk0111_thnx_letter_shs_cd", (String)svcKeiMap.get("kk0081_thnx_letter_shs_cd")); // サンキューレター送付先コード
		svcKeiTelMap.put("kk0111_web_op_add_fail_flg", (String)svcKeiMap.get("kk0081_web_op_add_fail_flg")); // WEBオプション追加不可フラグ
		svcKeiTelMap.put("kk0111_pnlty_hassei_cd", (String)svcKeiMap.get("kk0081_pnlty_hassei_cd")); // 違約金発生コード
		svcKeiTelMap.put("kk0111_ido_div", (String)svcKeiMap.get("kk0081_ido_div")); // 異動区分
		svcKeiTelMap.put("kk0111_intr_cd", (String)svcKeiMap.get("kk0081_intr_cd")); // 紹介コード
		svcKeiTelMap.put("kk0111_ido_ng_stat_cd", (String)svcKeiMap.get("kk0081_ido_ng_stat_cd")); // 異動NG状態コード
		svcKeiTelMap.put("kk0111_work_rrk_biko", (String)svcKeiMap.get("kk0081_work_rrk_biko")); // 業務連絡備考
		svcKeiTelMap.put("kk0111_auto_shosa_tran_stat_cd", (String)svcKeiMap.get("kk0081_auto_shosa_tran_stat_cd")); // 自動照査処理状態コード

		svcKeiTelMap.put("kk0111_upd_dtm_bf", (String)svcKeiMap.get("kk0111_last_upd_dtm")); // 更新年月日時分秒(更新前)
		svcKeiTelMap.put("kk0111_vlan_id_fix_flg", (String)svcKeiMap.get("kk0111_vlan_id_fix_flg")); // VLAN-ID確定フラグ
		svcKeiTelMap.put("kk0111_ppp_ninsho_id_del_fin_ymd", (String)svcKeiMap.get("kk0111_ppp_ninsho_id_del_fin_ymd")); // PPP認証ID消去完了年月日 	

		/*--------------* 
		 * 更新情報の転記 
		 *--------------*/

		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null))
		{
			String yyyy = bean[0].sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			String mm   = bean[0].sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
			String dd   = bean[0].sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
			svcKeiTelMap.put("kk0111_svc_use_sta_kibo_ymd", yyyy + mm + dd);
		}

		// 紹介コード
		svcKeiTelMap.put("kk0111_intr_cd", bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 業務連絡備考
		svcKeiTelMap.put("kk0111_work_rrk_biko",  bean[0].sendMessageString(KKW00101SFConst.TEL_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));

		// 自動照査処理状態コードは申込新規の更新では照会時の値を維持

		// 面開発案件番号
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			svcKeiTelMap.put("kk0111_menkaihat_anken_no", bean[0].sendMessageString(KKW00101SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		svcKeiTelMapList.add(svcKeiTelMap);
		
	}

	/**
	 * 電話のサービス契約内訳登録更新キャンセルの上りマッピングを行います。
	 * <br>
	 * @param bean [0]：申込新規登録画面
	 * @param parentMap   申込情報マップ
	 * @param preMap      照会時情報
	 * @param svcKeiMap   電話照会時情報
	 * @param mansionMap  マンション情報マップ
	 * @param mappingMode 内部制御用更新ステータス
	 * @param func_code   機能コード
	 * @param telItemDic  電話番号項目辞書
	 * @param tel_idx     電話番号目("1" or "2")
	 * @param viewLogic ビューロジック
	 */
	@SuppressWarnings("unchecked")
	private void setTelSvckeiUcwkMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap, HashMap<String, Object> preMap,
			HashMap svcKeiMap, HashMap mansionMap, int mappingMode, String func_code, HashMap<String, Integer> telItemDic, String tel_idx,
			JCCWebBusinessLogic viewLogic)
	{
		// 指定された番号目の照会時サービス契約内訳を取得する
		ArrayList<HashMap>      svcKeiUcwkStatList = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_stat_list");
		HashMap<String, Object> svcKeiUcwkStatMap  = null;
		ArrayList<HashMap>      svcKeiUcwkList     = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_tel_list");
		HashMap<String, Object> svcKeiUcwkMap      = null;
		String mapListName = "";
		String prefix = "";

		for (HashMap tmpMap : svcKeiUcwkList)
		{
			if (tel_idx.equals(tmpMap.get("kk0191_telno_jun")))
			{
				svcKeiUcwkMap = tmpMap;
				for (HashMap<String, Object> tmp2Map : svcKeiUcwkStatList)
				{
					if (((String)svcKeiUcwkMap.get("kk0191_svc_kei_ucwk_no")).equals((String)tmp2Map.get("kk0161_svc_kei_ucwk_no")))
					{
						svcKeiUcwkStatMap = tmp2Map;
						break;
					}
				}
				break;
			}
		}
		
		switch (mappingMode)
		{
		case IS_CANCEL:
			mapListName = "CANCEL_SVC_KEI_UCWK";
			prefix = "kk0161_";
			break;
			
		case IS_ADD:
			mapListName = "ADD_SVC_KEI_UCWK_TEL";
			prefix = "kk0191_";
			break;
			
		case IS_UPDATE:
			mapListName = "UPD_SVC_KEI_UCWK_TEL";
			prefix = "kk0191_";
			break;
			
		case IS_PLUS_BMP:
			if (!TELNO_KIND_BMP.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx)))
			{
				// 番ポ情報更新を呼び出す条件を充たさない場合は処理しない
				return;
			}
			mapListName = "UPD_SVC_KEI_UCWK_BMP";
			prefix = "kk0191_";
			break;
			
		case IS_MINUS_BMP:
			if ((null == svcKeiUcwkMap) || !UMU_ARI.equals(svcKeiUcwkMap.get("kk0191_bmp_um"))
					|| TELNO_KIND_BMP.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx)))
			{
				// 番ポ情報更新(クリア目的)を呼び出す条件を充たさない場合は処理しない
				return;
			}
			mapListName = "UPD_SVC_KEI_UCWK_BMP";
			prefix = "kk0191_";
			break;
			
		default:
			break;
			
		}
		// サービス契約内訳の登録マッピング配列を取得する（無ければ作る）
		ArrayList telMapList = (ArrayList)parentMap.get(mapListName);
		
		if (null == telMapList)
		{
			telMapList = new ArrayList();
			parentMap.put(mapListName, telMapList);
		}
		
		HashMap telMap = new HashMap();
		
		telMap.put("func_code", func_code);
		telMap.put("telno_jun", tel_idx);
			
		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String ido_div      = (MSKM_SBT_CD_SHINKI.equals(mskmFlg))?(IDO_DIV_NEW):(IDO_DIV_ADD);

		/*--------------------------------*
		 *  照会時情報の引継ぎマッピング  *
		 *--------------------------------*/
		if (IS_ADD != mappingMode)
		{
			telMap.put(prefix + "svc_kei_ucwk_no", 		(String)svcKeiUcwkMap.get("kk0191_svc_kei_ucwk_no")); 		// サービス契約内訳番号
			telMap.put(prefix + "mskm_dtl_no", 			(String)svcKeiMap.get("kk0081_mskm_dtl_no")); 				// 申込明細番号
			// 更新年月日時分秒(更新前) は 必須項目のため更新系は全て渡す（ただし IS_PLUS/MINUS_BMP 時は動的更新日付が使われる）
			telMap.put(prefix + "upd_dtm_bf", 			(String)svcKeiUcwkMap.get("kk0191_last_upd_dtm")); 		// 更新年月日時分秒(更新前)
		}
		else
		{
			telMap.put(prefix + "svc_kei_no", 			(String)svcKeiMap.get("kk0081_svc_kei_no")); 				// サービス契約番号
			telMap.put(prefix + "mskm_dtl_no", 			(String)svcKeiMap.get("kk0081_mskm_dtl_no")); 				// 申込明細番号
		}
		if (IS_UPDATE == mappingMode)
		{
			telMap.put(prefix + "telno_use_place_no", 	(String)svcKeiUcwkMap.get("kk0191_telno_use_place_no")); 	// 電話番号使用場所番号
			telMap.put(prefix + "tuwa_dtl_kokai_yh", 	(String)svcKeiUcwkMap.get("kk0191_tuwa_dtl_kokai_yh")); 	// 通話明細公開要否
			telMap.put(prefix + "tel_no_pre_tchi_cd", 	(String)svcKeiUcwkMap.get("kk0191_tel_no_pre_tchi_cd")); 	// 電番事前通知コード
			telMap.put(prefix + "man_switch_rsv_dtm", 	(String)svcKeiUcwkMap.get("kk0191_man_switch_rsv_dtm")); 	// 手動切替予定年月日時分秒
			telMap.put(prefix + "townpage_keisai_kana", (String)svcKeiUcwkMap.get("kk0191_townpage_keisai_kana")); // タウンページ掲載カナ名
			telMap.put(prefix + "townpage_keisai_nm", 	(String)svcKeiUcwkMap.get("kk0191_townpage_keisai_nm")); 	// タウンページ掲載名
			telMap.put(prefix + "va_taknkiki_model_cd", (String)svcKeiUcwkMap.get("kk0191_va_taknkiki_model_cd")); //VA宅内機器型式コード
			telMap.put(prefix + "va_kiki_seizo_no", 	(String)svcKeiUcwkMap.get("kk0191_va_kiki_seizo_no")); 	//VA機器製造番号
			telMap.put(prefix + "first_cdr_hassei_ymd", (String)svcKeiUcwkMap.get("kk0191_first_cdr_hassei_ymd")); // 初回CDR発生年月日
			telMap.put(prefix + "ntt_no_guide_um",		(String)svcKeiUcwkMap.get("kk0191_ntt_no_guide_um"));		// NTT番号案内有無
			telMap.put(prefix + "hellopage_keisai_um", 	(String)svcKeiUcwkMap.get("kk0191_hellopage_keisai_um"));	// ハローページ掲載有無
		}
		if ((IS_PLUS_BMP == mappingMode) || (IS_MINUS_BMP == mappingMode))
		{
			telMap.put(prefix + "rsv_aply_ymd", 		(String)svcKeiUcwkStatMap.get("kk0161_rsv_aply_ymd")); 		// 予約適用年月日
			telMap.put(prefix + "bmp_doji_open_ymd", 	(String)svcKeiUcwkMap.get("kk0191_bmp_doji_open_ymd")); 	// 番ポ同時開通年月日
			telMap.put(prefix + "dbnitn_at_rnkkh_cst_zm_flg", (String)svcKeiUcwkMap
					.get("kk0191_dbnitn_at_rnkkh_cst_zm_flg"));	// 同番移転自動連携候補抽出済フラグ
		}
		
		/*------------------------*
		 *  電話情報のマッピング  *
		 *------------------------*/
		
		// 同番移転依頼制御コード
		String dobanReqCtrlCd = null;
		
		if (IS_CANCEL == mappingMode)
		{
			// キャンセルの場合
			// サービスキャンセル理由コード
			telMap.put(prefix + "svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

			// 照会値が新番号の時
			if (UMU_NASI.equals((String)svcKeiUcwkMap.get("kk0191_bmp_um")))
			{
				// エイジング削除処理
				ArrayList<HashMap> agingList = (ArrayList<HashMap>)svcKeiMap.get("aging_list");
				if (null != agingList)
				{
					ArrayList dataList_del_aiging = (ArrayList)parentMap.get("DEL_AIGING_LIST");
					if (null == dataList_del_aiging)
					{
						dataList_del_aiging = new ArrayList();
					}	
					parentMap.put("DEL_AIGING_LIST", dataList_del_aiging);
					
					HashMap childMap_aiging = new HashMap();
					// エイジング種別コード
					childMap_aiging.put("zm0111_aging_sbt_cd", JKKStrConst.CD00412_TELNO);
					// エイジング対象値
					childMap_aiging.put("zm0111_aging_tg_value", (String)svcKeiUcwkMap.get("kk0191_telno"));
					
					for (HashMap tmpMap : agingList)
					{
						// 削除対象の更新年月日時分秒を取得
						if(tmpMap.get("zm0111_aging_tg_value").equals(svcKeiUcwkMap.get("kk0191_telno")))
						{
							// 更新前最終年月日時分秒
							childMap_aiging.put("zm0111_last_upd_dtm_bf", (String)tmpMap.get("zm0111_add_dtm"));
							break;
						}
					}
					dataList_del_aiging.add(childMap_aiging);
				}
			}
		}
		else
		{
			// キャンセルでない場合

			// 内訳の同番移転項目は、登録、更新、番ポ更新（つまりキャンセル以外）のどれにも存在している
			if (JKKStrConst.CD00719_USE_BMP_TELNO.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx))
					&& JKKStrConst.CD00720_BMP_USE_PLC_CD_REMOVAL.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_BMP_USE_PLC, tel_idx)))
			{
				// 番ポ かつ 引越し先で利用
				
				// 同番移転申込有無
				telMap.put(prefix + "dobaniten_mskm_um", UMU_ARI); // 有り
				
//ANK-4494-00-00 MOD START
//				// 同番移転手続実施者識別コード
//				if (getEohTelBeanBooleanVal(bean[0], tel_idx, KKW00101SFConst.TEL1_NTT_NO_ITEN_TTDK,
//						KKW00101SFConst.TEL2_NTT_NO_ITEN_TTDK))
//				{
//					telMap.put(prefix + "dobaniten_ttdk_jssis_skcd", JKKStrConst.CD01658_CUST);
//				}
//				else
//				{
//					telMap.put(prefix + "dobaniten_ttdk_jssis_skcd", JKKStrConst.CD01658_KOPT);
//				}
				
				// 同番移転手続実施者識別コード(NTT番号移転手続きが削除されたため、nullで登録)
				telMap.put(prefix + "dobaniten_ttdk_jssis_skcd", null);
//ANK-4494-00-00 MOD END
				// マンション
				if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null))
				{
//ANK-4494-00-00 MOD START
//					// 同番移転依頼制御コード
//					dobanReqCtrlCd = eo.web.webview.common.JKKWebCommon.convertCode(
//							bean[0],
//							getTelBeanName(telItemDic, KKW00101SFConst.TEL1_NTT_DOBANMOVE_KH_CHOSA_REQ, tel_idx),
//							KKW00101SFConst.SELECT_CD_59,
//							KKW00101SFConst.CD_LIST_59); // 同番移転可否調査依頼の選択コード
//
//					telMap.put(prefix + "dobaniten_req_ctrl_cd", dobanReqCtrlCd);
					// 同番移転依頼制御コード
					telMap.put(prefix + "dobaniten_req_ctrl_cd", null);
//ANK-4494-00-00 MOD END
				}
			}
			else
			{
				// 同番移転申込有無
				telMap.put(prefix + "dobaniten_mskm_um", UMU_NASI); // 無し
			}
			
			// 同番移転KOPT内審査結果コード
			telMap.put(prefix + "dbnitn_kopt_nai_skekka_cd", getEohTelBeanStringVal(bean[0], tel_idx, KKW00101SFConst.TEL1_DOBANITEN_SMPL_CHK_RSLT,
					KKW00101SFConst.TEL2_DOBANITEN_SMPL_CHK_RSLT));
			
			// 同番移転判定コード (申込新規では画面項目が無いので常に「未設定」です)
			telMap.put(prefix + "dobaniten_jdg_cd", JKKStrConst.CD01281_MISETTE);

			// 内訳の通信事業者コード項目は、登録、更新、番ポ更新（つまりキャンセル以外）のどれにも存在するようになった
			if (TELNO_KIND_CD_BMP.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx)))
			{
				// 番ポが選択されている場合
				// 通信事業者コード
				telMap.put(prefix + "tsjgs_cd", eo.web.webview.common.JKKWebCommon.convertCode(bean[0],
						getTelBeanName(telItemDic, KKW00101SFConst.TEL1_TSJGS_LIST, tel_idx),
						getTelBeanName(telItemDic, KKW00101SFConst.TSJGS_CD1_13, tel_idx),
						getTelBeanName(telItemDic, KKW00101SFConst.TSJGS_CD1_LIST_13, tel_idx)));
			}
			else
			{
				// 上記以外
				// 通信事業者コード
				telMap.put(prefix + "tsjgs_cd", bean[0].sendMessageString(KKW00101SFConst.JISHA_TSJGS_CD, X31CWebConst.DATABEAN_GET_VALUE)); // K-OPT
			}
		}

		if (IS_ADD == mappingMode)
		{
			telMap.put(prefix + "itens_opaf_toki_kibo_um", UMU_NASI);

			// 事務手数料自動適用要否　（1：要）を設定
			telMap.put(prefix + "rule0059_auto_aply", JKKStrConst.CD00001_0);
			// ※申込新規ではこの要否は常に「要」として事務手数料のつけるつけないはインターフェイスに任せる。
			// （一時金のキャンセルについては別途行う必要があります）
			
			// 同番移転判定コード (申込新規では画面項目が無いので常に「未設定」です)
			telMap.put(prefix + "dobaniten_jdg_cd", JKKStrConst.CD01281_MISETTE);
		}
		if (IS_PLUS_BMP == mappingMode || IS_UPDATE == mappingMode)
		{
			telMap.put(prefix + "rule0059_auto_aply", JKKStrConst.CD00001_0);
			
			// 同番移転依頼制御コード
			//   ここまでの処理でマッピングしていなければ、ここで条件に合致した場合にマッピングを行う
			if (null == dobanReqCtrlCd
					&& isHktgDobanitenValue(bean[0], svcKeiUcwkMap, tel_idx))
			{
				telMap.put(prefix + "dobaniten_req_ctrl_cd", svcKeiUcwkMap.get("kk0191_dobaniten_req_ctrl_cd"));
			}
			
			// 同番移転判定コード
			//   画面を特定のパターンで変更した場合に「未設定」を設定。
			//   それ以外は照会データを引き継ぐ。
			String bmpUm = (String)svcKeiUcwkMap.get("kk0191_bmp_um");
			String dobanMskmUm = (String)svcKeiUcwkMap.get("kk0191_dobaniten_mskm_um");
			String bfDobanReqCtrlCd = (String)svcKeiUcwkMap.get("kk0191_dobaniten_req_ctrl_cd");
			
			String telnoKind = getEohTelBeanStringVal(bean[0], tel_idx, KKW00101SFConst.TEL1_TELNO_KIND,
					KKW00101SFConst.TEL2_TELNO_KIND);
			String bmpUsePlc = getEohTelBeanStringVal(bean[0], tel_idx, KKW00101SFConst.TEL1_BMP_USE_PLC,
					KKW00101SFConst.TEL2_BMP_USE_PLC);
// ANK-4494-00-00 MOD START
//			String afDobanReqCtrlCd = JKKWebCommon.convertCode(bean[0], getTelBeanName(telItemDic,
//					KKW00101SFConst.TEL1_NTT_DOBANMOVE_KH_CHOSA_REQ, tel_idx),
//					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
			String afDobanReqCtrlCd = "";
// ANK-4494-00-00 MOD END
			// マンションタイプの際、
			//   @ 画面入力値が番ポ・引越し先を利用の時、連携以外が選択された場合
			//   A 照会時の値が番ポ・引越し先を利用・連携の時、
			//      画面入力値が(番ポ・引越し先を利用・連携)以外の場合
			// '0'(未設定)を設定する。
			boolean isInitMtDobanJdgCd = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null)
					&& ((TELNO_KIND_CD_BMP.equals(telnoKind)
							&& BMP_USE_PLC_CD_REMOVAL.equals(bmpUsePlc)
							&& !JKKStrConst.CD01425_DOBAN_REQ_RENKEI.equals(afDobanReqCtrlCd))
					|| (JKKStrConst.CD_DIV_UM_ARI.equals(bmpUm)
							&& JKKStrConst.CD_DIV_UM_ARI.equals(dobanMskmUm)
							&& JKKStrConst.CD01425_DOBAN_REQ_RENKEI.equals(bfDobanReqCtrlCd)
							&& !(TELNO_KIND_CD_BMP.equals(telnoKind)
									&& BMP_USE_PLC_CD_REMOVAL.equals(bmpUsePlc)
									&& JKKStrConst.CD01425_DOBAN_REQ_RENKEI.equals(afDobanReqCtrlCd))));
			
			boolean isInitMtDoban = (isInitMtDobanJdgCd
					|| (JKKStrConst.CD_DIV_UM_NASHI.equals(bmpUm) && JKKStrConst.CD00719_USE_BMP_TELNO.equals(telnoKind))
					|| (JKKStrConst.CD_DIV_UM_ARI.equals(bmpUm) && JKKStrConst.CD00719_GET_NEW_NO.equals(telnoKind)));
			if (isInitMtDoban)
			{
				telMap.put(prefix + "dobaniten_jdg_cd", JKKStrConst.CD01281_MISETTE);
			}
			else
			{
				telMap.put(prefix + "dobaniten_jdg_cd", svcKeiUcwkMap.get("kk0191_dobaniten_jdg_cd"));
			}
		}
		if ((IS_ADD == mappingMode) || (IS_UPDATE == mappingMode))
		{
			// ＮＴＴ番号案内有無
			telMap.put(prefix + "ntt_no_guide_um", UMU_NASI);
			// ハローページ掲載有無
			telMap.put(prefix + "hellopage_keisai_um", UMU_NASI);
			// 電話番号順番
			telMap.put(prefix + "telno_jun", tel_idx);
			//OM-2014-0002587 MOD START
			// VAポート番号
			// 多機能ルーターを登録・更新する、もしくは更新しない多機能ルータあり、2ポートVAありで設定
			if (JKKWebCommon.isChgTakinortKktk(viewLogic) || isExistVaPortNoSetteKktk(preMap))
			{
				telMap.put(prefix + "va_port_no", tel_idx);
			}
			//OM-2014-0002587 MOD END
		}
		// 異動区分
		telMap.put(prefix + "ido_div", ido_div);
		//番ポ有無 / 電話番号
		if (IS_CANCEL != mappingMode)
		{
			// 電話番号のチェックをロジック側で行うため、登録時のみマッピングする
			if (TELNO_KIND_CD_NEW.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx)))
			{
				telMap.put(prefix + "bmp_um", UMU_NASI);
				telMap.put(prefix + "telno", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_KOPT_TELNO, tel_idx));
			}
			else if (TELNO_KIND_CD_BMP.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx)))
			{
				telMap.put(prefix + "bmp_um", UMU_ARI);
				telMap.put(prefix + "telno", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_BMP_TELNO, tel_idx));
			}
		}
		if (telMap.containsKey(prefix + "bmp_um") && ((IS_UPDATE == mappingMode) || (IS_CANCEL == mappingMode)))
		{
			telMap.remove(prefix + "bmp_um");
		}
		
		/*----------------------*
		 *  緊急通報用グループ  *
		 *----------------------*/
		
		if (!(IS_CANCEL == mappingMode))
		{
			// 緊急通報用都道府県名
			telMap.put(prefix + "emg_state_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_STATE_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			// 緊急通報用市区町村名
			telMap.put(prefix + "emg_city_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_CITY_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			// 緊急通報用大字通称名
			telMap.put(prefix + "emg_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_OAZTSU_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			// 緊急通報用字丁目名
			telMap.put(prefix + "emg_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_AZCHO_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			// 緊急通報用住所コード
			telMap.put(prefix + "emg_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 緊急通報用補正郵便番号
			telMap.put(prefix + "emg_hosei_pcd", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_BF,
					X31CWebConst.DATABEAN_GET_VALUE) + bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_AF,
							X31CWebConst.DATABEAN_GET_VALUE));
			// 緊急通報用番地号
			telMap.put(prefix + "emg_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_BNCHIGO,
					X31CWebConst.DATABEAN_GET_VALUE));
			
			// 緊急通報肩書分割処理
			String katagaki = bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRRM, X31CWebConst.DATABEAN_GET_VALUE);
			HashMap emgKatagakiBnktMap = getEmgKatagakiBnkt(katagaki);
			
			// 緊急通報用住所補記・建物名
			telMap.put(prefix + "emg_adrttm", emgKatagakiBnktMap.get(EMG_ADRTTM));
			// 緊急通報用住所補記・部屋番号
			telMap.put(prefix + "emg_adrrm", emgKatagakiBnktMap.get(EMG_ADRRM));
			// 緊急通報用契約者名
			// 緊急通報用契約者カナ名
			if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 契約種別：個人契約
				telMap.put(prefix + "emg_ksh_nm", bean[0].sendMessageString(KKW00101SFConst.CUST_NM,
						X31CWebConst.DATABEAN_GET_VALUE));
				telMap.put(prefix + "emg_ksh_kana", bean[0].sendMessageString(KKW00101SFConst.CUST_KANA,
						X31CWebConst.DATABEAN_GET_VALUE));
			}
			else
			{
				// 契約種別：個人契約以外（法人契約、保守用、自社利用）
				
				// ご利用者名漢字格納変数の初期化
				String emg_ksh_nm = "";
				// 法人格前後の選択値を取得
				String hojin_zengo = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD,
						KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15);
				// 法人格の選択値を取得
				String hojin_sbt = JKKWebCommon.getPullDownName(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16, 
						KKW00101SFConst.HOJIN_SBT_CD_LIST_16, KKW00101SFConst.HOJIN_SBT_NM_LIST_16);

				// 法人格の選択値を取得
				String hojin_sbt_cd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16, 
						KKW00101SFConst.HOJIN_SBT_CD_LIST_16);
				
				// 法人格前後指定が前 かつ 法人格「指定なし」以外の場合
				if (HOJIN_ZENGO_SHITEI_BF.equals(hojin_zengo) && !JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
				{
					// ご利用者名漢字(法人格種別＋法人名)
					emg_ksh_nm = hojin_sbt + ZENKAKU_SPACE + bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
				}
				// 法人格前後指定が後 かつ 法人格「指定なし」以外の場合
				else if (HOJIN_ZENGO_SHITEI_AF.equals(hojin_zengo) && !JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
				{
					// ご利用者名漢字(法人名＋法人格種別)
					emg_ksh_nm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE) + ZENKAKU_SPACE + hojin_sbt;
				}
				// 法人格「指定なし」の場合
				else if(JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojin_sbt_cd))
				{
					// ご利用者名漢字(法人名)
					emg_ksh_nm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
				}
				// 緊急通報用契約者名
				telMap.put(prefix + "emg_ksh_nm", emg_ksh_nm);
				// 緊急通報用契約者カナ名
				telMap.put(prefix + "emg_ksh_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA,
						X31CWebConst.DATABEAN_GET_VALUE));
			}
			// 緊急通報用契約者個別指定フラグ (0:個別指定なし、1個別指定あり、初期値:0)
			telMap.put(prefix + "emg_ksh_ksitei_flg", EMG_USR_KEI_MSKM_SAME);
		}

		/*----------------------*
		 *  契約者住所グループ  *
		 *----------------------*/

		// 番ポを選択した場合
		if ((IS_ADD == mappingMode) && TELNO_KIND_BMP.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx))
				|| (IS_PLUS_BMP == mappingMode))
		{ // 番ポの場合
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所コード
			telMap.put(prefix + "ntt_keisha_ad_cd", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_PLACE_AD_CD, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者郵便番号
			telMap.put(prefix + "ntt_keisha_pcd", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_PCD_BF, tel_idx) +
												getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_PCD_AF, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者都道府県名
			telMap.put(prefix + "ntt_keisha_state_nm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_STATE_NM, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者市区町村名
			telMap.put(prefix + "ntt_keisha_city_nm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_CITY_NM, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者大字通称名
			telMap.put(prefix + "ntt_keisha_oaztsu_nm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_OAZTSU_NM, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者字丁目名
			telMap.put(prefix + "ntt_keisha_azcho_nm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_AZCHO_NM, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者番地号
			telMap.put(prefix + "ntt_keisha_bnchigo", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_BNCHIGO, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所補記・建物名
			telMap.put(prefix + "ntt_keisha_adrttm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_ADRTTM, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者住所補記・部屋番号
			telMap.put(prefix + "ntt_keisha_adrrm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_ADRRM, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者カナ名
			telMap.put(prefix + "ntt_ksh_kana", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_KANA, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.ＮＴＴ契約者名
			telMap.put(prefix + "ntt_keisha_nm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_NM, tel_idx));
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.NTT契約者住所手動入力フラグ
			telMap.put(prefix + "nkys_ad_man_input_flg", bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_EXCEPTION_INPUT, tel_idx),
					X31CWebConst.DATABEAN_GET_VALUE)?(JKKStrConst.AD_MAN_INPUT_YES):(JKKStrConst.AD_MAN_INPUT_NO));

			// サービス契約内訳＜ｅｏ光電話＞登録マップ.NTT契約者住所_契約者住所差異フラグ
			if(KKSV0085_KKSV0085OPDBMapper.isComparisonAd(
					bean[0],
					getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_PCD_BF, tel_idx),
					getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_PCD_AF, tel_idx),
					(String)telMap.get(prefix + "ntt_keisha_state_nm"),
					(String)telMap.get(prefix + "ntt_keisha_city_nm"),
					(String)telMap.get(prefix + "ntt_keisha_oaztsu_nm"),
					(String)telMap.get(prefix + "ntt_keisha_azcho_nm"),
					(String)telMap.get(prefix + "ntt_keisha_bnchigo"),
					(String)telMap.get(prefix + "ntt_keisha_adrttm"),
					(String)telMap.get(prefix + "ntt_keisha_adrrm")))
			{
				telMap.put(prefix + "ntt_ksh_ad_ksh_ad_sai_flg", UMU_NASI);
			}
			else
			{
				telMap.put(prefix + "ntt_ksh_ad_ksh_ad_sai_flg", UMU_ARI);
			}
			// サービス契約内訳＜ｅｏ光電話＞登録マップ.NTT契約者住所チェックレベル
			telMap.put(prefix + "ntt_ad_chk_lv", JKKStrConst.AD_CHK_LV2); //レベル２を指定
		}
		// 番ポを取りやめた場合
		if (IS_MINUS_BMP == mappingMode)
		{
			telMap.put(prefix + "bmp_doji_koji_kibo_um",     ""); // 番ポ同時工事希望有無
			telMap.put(prefix + "bmp_doji_open_ymd",         ""); // 番ポ同時開通年月日
			telMap.put(prefix + "ntt_keisha_ad_cd",          ""); // NTT契約者住所コード
			telMap.put(prefix + "ntt_keisha_pcd",            ""); // NTT契約者郵便番号
			telMap.put(prefix + "ntt_keisha_state_nm",       ""); // NTT契約者都道府県名
			telMap.put(prefix + "ntt_keisha_city_nm",        ""); // NTT契約者市区町村名
			telMap.put(prefix + "ntt_keisha_oaztsu_nm",      ""); // NTT契約者大字通称名
			telMap.put(prefix + "ntt_keisha_azcho_nm",       ""); // NTT契約者字丁目名
			telMap.put(prefix + "ntt_keisha_bnchigo",        ""); // NTT契約者番地号
			telMap.put(prefix + "ntt_keisha_adrttm",         ""); // NTT契約者住所補記・建物名
			telMap.put(prefix + "ntt_keisha_adrrm",          ""); // NTT契約者住所補記・部屋番号
			telMap.put(prefix + "ntt_ksh_kana",              ""); // NTT契約者カナ名
			telMap.put(prefix + "ntt_keisha_nm",             ""); // NTT契約者名
			telMap.put(prefix + "nkys_ad_man_input_flg",     ""); // NTT契約者住所手動入力フラグ
			telMap.put(prefix + "ntt_ksh_ad_ksh_ad_sai_flg", ""); // NTT契約者住所_契約者住所差異フラグ
		}

		telMapList.add(telMap);
	}
	
	/**
	 * 同番移転関連情報を照会データから引き継ぐかを判定します。
	 * <br>
	 * @param bean データBean
	 * @param svcKeiUcwkMap サービス契約内訳情報マップ
	 * @param telNoJun 電話番号順
	 * @return true:同番移転判定コードを照会データから引き継ぐ false:引き継がない
	 */
	private boolean isHktgDobanitenValue(X31SDataBeanAccess bean, HashMap<String, Object> svcKeiUcwkMap, String telNoJun)
	{
		// 照会データの電話番号の種類
		String bmpUm = (String)svcKeiUcwkMap.get("kk0191_bmp_um");
		String dobanMskmUm = (String)svcKeiUcwkMap.get("kk0191_dobaniten_mskm_um");
		
		// データBeanの電話番号の種類
		String telnoKind = getEohTelBeanStringVal(bean, telNoJun, KKW00101SFConst.TEL1_TELNO_KIND,
				KKW00101SFConst.TEL2_TELNO_KIND);
		String bmpUsePlc = getEohTelBeanStringVal(bean, telNoJun, KKW00101SFConst.TEL1_BMP_USE_PLC,
				KKW00101SFConst.TEL2_BMP_USE_PLC);
		
		// マンションタイプ、同番移転から番ポ
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, null)
				&& JKKStrConst.CD_DIV_UM_ARI.equals(bmpUm)
				&& JKKStrConst.CD_DIV_UM_ARI.equals(dobanMskmUm))
		{
			if (JKKStrConst.CD00719_USE_BMP_TELNO.equals(telnoKind)
					&& JKKStrConst.CD00720_BMP_USE_PLC_CD_NOWPLC.equals(bmpUsePlc))
			{
				return false;
			}
		}
		
		// 新番号から番ポ
		if (JKKStrConst.CD_DIV_UM_NASHI.equals(bmpUm)
				&& JKKStrConst.CD00719_USE_BMP_TELNO.equals(telnoKind))
		{
			return false;
		}
		
		// 番ポから新番号
		if (JKKStrConst.CD_DIV_UM_ARI.equals(bmpUm)
				&& JKKStrConst.CD00719_GET_NEW_NO.equals(telnoKind))
		{
			return false;
		}
		
		return true;
	}
	
	//OM-2014-0002587 MOD START
	
	/**
	 * 照会情報にVAポート番号設定機器があるか判断します。
	 * <br/>
	 * @param preMap 照会情報マップ
	 * @return true:VAポート番号設定機器あり、false:VAポート番号設定機器なし
	 */
	@SuppressWarnings("unchecked")
	private boolean isExistVaPortNoSetteKktk(HashMap<String, Object> preMap)
	{
		HashMap<String, Object> dataMap = (HashMap<String, Object>)preMap.get("KKSV007907CC");
		if (null == dataMap)
		{
			return false;
		}
		
		// 回線に紐付く機器のチェック
		ArrayList<HashMap<String, Object>> kikiList = (ArrayList<HashMap<String, Object>>)dataMap.get("EKK0341B516CBSMsg1List");
		if (null != kikiList)
		{
			for (HashMap<String, Object> kikiMap : kikiList)
			{
				if (JKKStrConst.KKTK_SVC_CD_TAKINORT.equals(kikiMap.get("kk0341_kktk_svc_cd")))
				{
					// 多機能ルーターあり
					return true;
				}
			}
		}
		
		// サービス契約に紐付く機器のチェック
		kikiList = (ArrayList<HashMap<String, Object>>)dataMap.get("kk0341_EKK0341B508CBSMsg1List");
		if (null != kikiList)
		{
			for (HashMap<String, Object> kikiMap : kikiList)
			{
				if (JKKStrConst.KKTK_SVC_CD_VA.equals(kikiMap.get("kk0341_kktk_svc_cd")))
				{
					if (JKKStrConst.CD00134_VA2.equals((String)kikiMap.get("kk0341_pcrs_cd")))
					{
						// 2ポートVAあり
						return true;
					}
				}
			}
		}
		
		return false;
	}
	
	//OM-2014-0002587 MOD END
	
// ANK-4494-00-00 DEL START
//	/**
//	 * 特定番号目の照会時同番移転情報が画面で変更されているかを判定する
//	 * <br>
//	 * @param bean         X31SDataBeanAccess[]
//	 * @param dobanitenMap HashMap 電話の照会時情報
//	 * @param telItemDic   電話項目辞書
//	 * @param tel_idx      電話番号目
//	 * @return result（true:変更あり false:変更無し）
//	 */
//	@SuppressWarnings("unchecked")
//	private boolean isChgDobanValue(X31SDataBeanAccess[] bean, HashMap dobanitenMap, HashMap<String, Integer> telItemDic, String tel_idx)
//	{
//		boolean result = false;
//		
//		// 番号ポーダビリティ・電話番号が変更されている場合、       【登録が必要】と判定する
//		// 契約者名義が変更されている場合、                         【登録が必要】と判定する
//		// 契約者名義カナが変更されている場合、                     【登録が必要】と判定する
//		// 設置場所郵便番号が変更されている場合、                   【登録が必要】と判定する
//		// 設置場所都道府県が変更されている場合、                   【登録が必要】と判定する
//		// 設置場所市区町村が変更されている場合、                   【登録が必要】と判定する
//		// 設置場所大字通称名が変更されている場合、                 【登録が必要】と判定する
//		// 設置場所字丁目名が変更されている場合、                   【登録が必要】と判定する
//		// 設置場所番地号が変更されている場合、                     【登録が必要】と判定する
//		// 設置場所住所補記・建物名が変更されている場合、           【登録が必要】と判定する
//		// 設置場所住所補記・部屋番号が変更されている場合、         【登録が必要】と判定する
//		// 同番移転登録.設置場所住所コードが変更されている場合、    【登録が必要】と判定する
//		// 同番移転登録.設置場所住所確認コードは面開発案件番号に紐付くが、マンション時は非表示のため検証対象外
//		result |= !((String)dobanitenMap.get("tu0021_ntt_telno"))
//				.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_BMP_TELNO, tel_idx));
//		result |= !((String)dobanitenMap.get("tu0021_ntt_keisha_nm"))
//				.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_NM, tel_idx));
//		result |= !((String)dobanitenMap.get("tu0021_ntt_ksh_kana"))
//				.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_KANA, tel_idx));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_pcd"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
//				+ bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_state_nm"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_city_nm"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_oaztsu_nm"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_azcho_nm"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_bnchigo"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_adrttm"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_adrrm"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
//		result |= !((String)dobanitenMap.get("tu0021_setplace_ad_cd"))
//				.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
//		
//		return result;
//	}
//	
//	/**
//	 * 任意番号目の電話について同番移転の登録、更新、キャンセルを行うかどうか判定します。
//	 * <br>
//	 * @param bean        X31SDataBeanAccess[]
//	 * @param svcKeiMap   HashMap 電話の照会時情報
//	 * @param telItemDic  電話番号辞書
//	 * @param tel_idx     電話番号目
//	 * @return なし
//	 */
//	@SuppressWarnings("unchecked")
//	private void getDobanAction(X31SDataBeanAccess[] bean, HashMap svcKeiMap, HashMap<String, Integer> telItemDic, String tel_idx)
//	{
//		ArrayList<HashMap>      svcKeiUcwkList  = null;
//		HashMap<String, Object> svcKeiUcwkMap   = null;
//		ArrayList<HashMap>      dobanItenList   = null;
//		HashMap<String, Object> dobanItenMap    = null;
//		String                  bf_doban_stat   = null;
//		String                  af_kh_chosa_req = null;
//
//		boolean isMansion = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null);
//		
//		// 画面が同番移転を申し込める状態であるか
//		boolean is_dobaniten = (isMansion
//				&& JKKStrConst.CD00719_USE_BMP_TELNO.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_TELNO_KIND, tel_idx))
//				&& JKKStrConst.CD00720_BMP_USE_PLC_CD_REMOVAL.equals(getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_BMP_USE_PLC, tel_idx)));
//
//		//##############################
//		// 照会時のサービス契約内訳情報
//		//##############################
//		svcKeiUcwkList = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_tel_list");
//		for (HashMap tmpMap : svcKeiUcwkList)
//		{
//			if (tel_idx.equals(tmpMap.get("kk0191_telno_jun")))
//			{
//				svcKeiUcwkMap = tmpMap;
//				break;
//			}
//		}
//		
//		//######################################
//		// 照会時の同番移転情報とそのステータス
//		//######################################
//		dobanItenList = (ArrayList<HashMap>)svcKeiMap.get("dobaniten_list");
//		if ((null != dobanItenList) && (null != svcKeiUcwkMap))
//		{
//			for (int i = 0; i < dobanItenList.size(); i++)
//			{
//				if ((null != dobanItenList.get(i)) && !((dobanItenList.get(i)).isEmpty()))
//				{
//					if (((String)svcKeiUcwkMap.get("kk0191_svc_kei_ucwk_no")).equals(
//							dobanItenList.get(i).get("tu0021_svc_kei_ucwk_no")))
//					{
//						dobanItenMap  = dobanItenList.get(i);
//						bf_doban_stat = (String)dobanItenMap.get("tu0021_dobaniten_stat");
//						break;
//					}
//				}
//			}
//		}
//		
//		//###################################
//		// 入力画面上の可否調査依頼選択項目
//		//###################################
//		if (is_dobaniten)
//		{
//			af_kh_chosa_req = eo.web.webview.common.JKKWebCommon.convertCode(
//				bean[0],
//				getTelBeanName(telItemDic, KKW00101SFConst.TEL1_NTT_DOBANMOVE_KH_CHOSA_REQ, tel_idx),
//				KKW00101SFConst.SELECT_CD_59,
//				KKW00101SFConst.CD_LIST_59); // 同番移転可否調査依頼の選択コード
//			af_kh_chosa_req = "";
//		}
//		//####################
//		// 判定用のフラグ作成
//		//####################
//		
//		// 2番号目の削除痕跡判定
//		boolean is_tel2canceled = ((TEL_TWO.equals(tel_idx)) && (bean[0].sendMessageBoolean(EOH_TEL2UCWK_CANCEL_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
//
//		// 同番情報の更新可否(更新元情報の有無、電話２削除痕跡の場合は照会データがあっても「否」とする)
//		boolean is_updatable = (null != dobanItenMap) && !(dobanItenMap.isEmpty()) && !is_tel2canceled;
//		
//		// 照会時情報の送信待ち判定(純粋に照会時のステータスが送信待ちであるか)
//		boolean is_soshinmachi = JKKStrConst.CD00432_DOBAN_STAT_NTTSENDSTAY.equals(bf_doban_stat);
//
//		// 対象項目の変更有無（更新要否が「否」である場合は変更無しとする）
//		boolean is_chgvalue = (is_updatable)?(isChgDobanValue(bean, dobanItenMap, telItemDic, tel_idx)):(false);
//		
//		// 画面上同番移転連携指定判定（入力画面の状態）
//		boolean is_dobanrenkei = is_dobaniten && (JKKStrConst.CD01425_DOBAN_REQ_RENKEI.equals(af_kh_chosa_req));
//		
//		//=-=-=-=-=-=-=
//		// 判定の開始
//		//=-=-=-=-=-=-=
//		
//		//(1) 画面で　【番ポ、引越先で利用、連携】　が選択され、以下の条件のいずれかに該当する場合に同番移転スキーマの登録処理を行う。
//		//    ・同番移転スキーマへの登録が未実施の場合
//		//    ・同番移転スキーマへの登録済みレコードの同番移転ステータス≠021:NTT送信待ちで、以下の条件に該当する場合に同番移転スキーマの登録処理を行う。
//		//      番号ポータビリティを利用する電話番号，契約者名義，契約者名義カナ，契約者利用場所住所_郵便番号，
//		//      契約者利用場所住所_ご住所(現住所)の何れかが変更された場合
//		//
//		//(2)  画面で　【番ポ、引越先で利用、連携】　が選択され、以下の条件に全て該当する場合に同番移転スキーマの変更処理を行う。
//		//    ・同番移転スキーマへの登録が実施済みで、同番移転ステータス=021（NTT送信待ち）の場合
//		//    ・番号ポータビリティを利用する電話番号，契約者名義，契約者名義カナ，契約者利用場所住所_郵便番号，
//		//      契約者利用場所住所_ご住所(現住所)の何れかが変更された場合
//		//
//		//(3) 同番移転ステータス＝021:NTT送信待ちで、以下の条件のいずれかに該当する場合に同番移転スキーマの取消処理を行う。
//		//    ・可否調査依頼が連携→連携不要，連携→保留に変更された場合
//		//    ・番号ポータビリティを利用するを選択，引越しで利用するを選択された状態から解除された場合
//		//
//		// 上記に加えて２番号目のキャンセルを考慮(is_tel2canceled)
//		
//		if (is_dobanrenkei && (!is_updatable || (!is_soshinmachi && is_chgvalue)))
//		{
//			// 新規同番登録する(2番号目の削除痕跡があるときは更新CC内で追加が発生する)
//			bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG, tel_idx), X31CWebConst.DATABEAN_SET_VALUE, true);
//		}
//
//		if (is_dobanrenkei && is_updatable && is_soshinmachi && is_chgvalue)
//		{
//			// 同番登録を更新する
//			bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG, tel_idx), X31CWebConst.DATABEAN_SET_VALUE, true);
//		}
//
//		// マンションタイプ、かつ同番移転ステータス＝021:NTT送信待ち
//		if (isMansion && is_soshinmachi)
//		{
//			boolean isCancel = false;
//			
//			boolean isDbDoban = JKKStrConst.CD_DIV_UM_ARI.equals(svcKeiUcwkMap.get("kk0191_bmp_um"))
//					&& JKKStrConst.CD_DIV_UM_ARI.equals(svcKeiUcwkMap.get("kk0191_dobaniten_mskm_um"));
//			if (is_tel2canceled && isDbDoban)
//			{
//				// 2番号がキャンセルされている、かつ照会時が番ポ、かつ引越し先で利用する
//				isCancel = true;
//			}
//			else if (is_dobaniten && !JKKStrConst.CD01425_DOBAN_REQ_RENKEI.equals(af_kh_chosa_req))
//			{
//				// 番ポ、かつ引越し先で利用する、かつ同番移転依頼「連携」以外
//				isCancel = true;
//			}
//			else if (isDbDoban && !is_dobaniten)
//			{
//				// 照会時が番ポ、かつ引越し先で利用するで、番ポ、かつ引越し先以外の状態に変更されている
//				isCancel = true;
//			}
//			
//			if (isCancel)
//			{
//				// 同番登録をキャンセルする(2番号目の削除痕跡がある場合もキャンセルが発生する)
//				bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG, tel_idx), X31CWebConst.DATABEAN_SET_VALUE, true);
//			}
//		}
//	}
//
//	/**
//	 * 任意番号目の電話について同番移転のキャンセルを行うかどうか判定します。
//	 * <br>
//	 * @param bean        X31SDataBeanAccess[]
//	 * @param svcKeiMap   HashMap 電話の照会時情報
//	 * @param telItemDic  電話番号辞書
//	 * @param tel_idx     電話番号目
//	 * @return なし
//	 */
//	@SuppressWarnings("unchecked")
//	private void getDobanCancel(X31SDataBeanAccess[] bean, HashMap svcKeiMap, HashMap<String, Integer> telItemDic, String tel_idx)
//	{
//		ArrayList<HashMap>      svcKeiUcwkList  = null;
//		HashMap<String, Object> svcKeiUcwkMap   = null;
//		ArrayList<HashMap>      dobanItenList   = null;
//		String                  bf_doban_stat   = null;
//		
//		boolean isMansion = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null);
//
//		//##############################
//		// 照会時のサービス契約内訳情報
//		//##############################
//		svcKeiUcwkList  = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_tel_list");
//		for (HashMap tmpMap : svcKeiUcwkList)
//		{
//			if (tel_idx.equals(tmpMap.get("kk0191_telno_jun")))
//			{
//				svcKeiUcwkMap = tmpMap;
//				break;
//			}
//		}
//		
//		//######################################
//		// 照会時の同番移転情報とそのステータス
//		//######################################
//		dobanItenList = (ArrayList<HashMap>)svcKeiMap.get("dobaniten_list");
//		if ((null != dobanItenList) && (null != svcKeiUcwkMap))
//		{
//			for (int i = 0; i < dobanItenList.size(); i++)
//			{
//				if ((null != dobanItenList.get(i)) && !((dobanItenList.get(i)).isEmpty()))
//				{
//					if (((String)svcKeiUcwkMap.get("kk0191_svc_kei_ucwk_no")).equals(
//							dobanItenList.get(i).get("tu0021_svc_kei_ucwk_no")))
//					{
//						bf_doban_stat = ((String)(dobanItenList.get(i).get("tu0021_dobaniten_stat")));
//						break;
//					}
//				}
//			}
//		}
//		
//		//####################
//		// 判定用のフラグ作成
//		//####################
//		
//		// 照会時情報の送信待ち判定(純粋に照会時のステータスが送信待ちであるか)
//		boolean is_soshinmachi = JKKStrConst.CD00432_DOBAN_STAT_NTTSENDSTAY.equals(bf_doban_stat);
//		
//		//=-=-=-=-=-=-=
//		// 判定の開始
//		//=-=-=-=-=-=-=
//		
//		// サービス削除の場合、単純に照会時の同番移転ステータス＝021:NTT送信待ちであれば同番移転スキーマの取消処理を行う。
//		
//		if (isMansion && is_soshinmachi)
//		{
//			// 照会時が番ポ、かつ引越し先で利用する
//			if (JKKStrConst.CD_DIV_UM_ARI.equals(svcKeiUcwkMap.get("kk0191_bmp_um"))
//					&& JKKStrConst.CD_DIV_UM_ARI.equals(svcKeiUcwkMap.get("kk0191_dobaniten_mskm_um")))
//			{
//				// 同番登録をキャンセルする
//				bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG, tel_idx), X31CWebConst.DATABEAN_SET_VALUE, true);
//			}
//		}
//		
//	}
//
//	/**
//	 * 任意番号目の電話について同番移転の登録、更新、キャンセルのマッピングを行います。
//	 * <br>
//	 * @param bean        X31SDataBeanAccess[]
//	 * @param parentMap   HashMap 電話のマッピング情報格納先
//	 * @param svcKeiMap   HashMap 電話の照会時情報
//	 * @param flg_name    取消、登録、更新フラグのBean名称
//	 * @param telItemDic  電話項目辞書
//	 * @param tel_idx     電話番号目
//	 * @param opeDate     運用日付
//	 * @param func_code   機能コード
//	 * @return なし
//	 */
//	@SuppressWarnings("unchecked")
//	private void setDobanItenMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap, HashMap svcKeiMap, String flg_name,
//			HashMap<String, Integer> telItemDic, String tel_idx, String opeDate, String func_code)
//	{
//		ArrayList<HashMap>      dobanitenMapList  = null;
//		HashMap<String, Object> dobanMap          = null; 
//		ArrayList<HashMap>      svcKeiUcwkPreList = null;
//		HashMap<String, Object> svcKeiUcwkPreMap  = null;
//		ArrayList<HashMap>      dobanItenPreList  = null;
//		HashMap<String, Object> dobanPreMap       = null;
//		
//		// 対象のモード（取消／登録／更新）が flag == true でなければ何もしないで戻る
//		//if (!bean[0].sendMessageBoolean(telItem[telIdx.get(flg_name).intValue()], X31CWebConst.DATABEAN_GET_VALUE))
//		if (!bean[0].sendMessageBoolean(flg_name, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			return;
//		}
//
//		//##############################
//		// 照会時のサービス契約内訳情報
//		//##############################
//		svcKeiUcwkPreList = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_tel_list");
//		
//		for (HashMap tmpMap : svcKeiUcwkPreList)
//		{
//			if (tel_idx.equals(tmpMap.get("kk0191_telno_jun")))
//			{
//				svcKeiUcwkPreMap = tmpMap;
//				break;
//			}
//		}
//
//		//######################
//		// 照会時の同番移転情報
//		//######################
//		dobanItenPreList = (ArrayList<HashMap>)svcKeiMap.get("dobaniten_list");
//		
//		if ((null != dobanItenPreList) && (null != svcKeiUcwkPreMap))
//		{
//			for (int i = 0; i < dobanItenPreList.size(); i++)
//			{
//				if ((null != dobanItenPreList.get(i)) && (!(dobanItenPreList.get(i).isEmpty())) &&
//					(((String)(svcKeiUcwkPreMap.get("kk0191_svc_kei_ucwk_no")))
//							.equals(dobanItenPreList.get(i).get("tu0021_svc_kei_ucwk_no"))))
//				{
//					dobanPreMap  = dobanItenPreList.get(i);
//					break;
//				}
//			}
//		}
//		
//		//###################################################
//		// 同番移転のマッピング配列を取得する（無ければ作る）
//		//###################################################
//		String cmp_name = getTelBeanName(telItemDic, flg_name, TEL_ONE); // 判定単純化のためにフラグ名を電話１のものに変換
//		String mapping_name =
//			(KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG.equals(cmp_name)?("CANCEL_DOBANITEN"):
//			(KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG.equals(cmp_name)?("ADD_DOBANITEN"):
//			(KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG.equals(cmp_name)?("UPD_DOBANITEN_NAIYO"):(""))));
//
//		dobanitenMapList = (ArrayList)parentMap.get(mapping_name);
//		
//		if (null == dobanitenMapList)
//		{
//			dobanitenMapList = new ArrayList();
//			parentMap.put(mapping_name, dobanitenMapList);
//		}
//		
//		dobanMap = new HashMap();
//		
//		// 機能コード
//		dobanMap.put("func_code", func_code);
//		// 番号目
//		dobanMap.put("telno_jun", tel_idx);
//		
//		/*--------------------------* 
//		 * 取消更新共通のマッピング   
//		 *--------------------------*/
//		if (bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG, tel_idx), X31CWebConst.DATABEAN_GET_VALUE) ||
//			bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG, tel_idx), X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			// 同番移転取消マップ.同番移転番号
//			dobanMap.put("tu0021_dobaniten_no", (String)dobanPreMap.get("tu0021_dobaniten_no"));
//			// 同番移転取消マップ.世代登録年月日
//			dobanMap.put("tu0021_gene_add_dtm", (String)dobanPreMap.get("tu0021_gene_add_dtm"));
//			// 同番移転取消マップ.更新前更新年月日時分秒
//			dobanMap.put("tu0021_upd_dtm_bf", (String)dobanPreMap.get("tu0021_upd_dtm"));
//			
//		}
//
//		/*--------------------------* 
//		 * 登録更新共通のマッピング   
//		 *--------------------------*/
//		if (bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG, tel_idx), X31CWebConst.DATABEAN_GET_VALUE) ||
//			bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG, tel_idx), X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			/*************************************************
//			// 同番移転登録に必要な住所対象番号番号区画申込事業所番号一覧照会に対するマッピング
//			**************************************************/
//			
//			String tmp_telno = getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_BMP_TELNO, tel_idx);
//			
//			if ((tmp_telno == null) || (tmp_telno.length() == 0))
//			{
//				// 未設定
//			}
//			else if (tmp_telno.length() < KYOKU_NO_LENGTH)
//			{
//				// 同番移転登録.ＫＥＹ＿局番
//				dobanMap.put("zm0091_key_kyoku_no", tmp_telno);
//			}
//			else
//			{
//				// 同番移転登録.ＫＥＹ＿局番
//				dobanMap.put("zm0091_key_kyoku_no", tmp_telno.substring(0, KYOKU_NO_LENGTH));
//			}
//			
//			// 同番移転登録判定（ＫＥＹ＿住所コード）
//			String key_ad_cd = bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
//			dobanMap.put("zm0091_key_ad_cd", key_ad_cd);
//			
//			// ＫＥＹ＿予約適用年月日
//			dobanMap.put("zm0091_key_rsv_aply_ymd", opeDate);
//			
//			/*************************************************
//			// 同番移転登録のマッピング
//			**************************************************/
//			
//			// @法人個人コードはマッピングはするが、インターフェイスへ渡すかの判断はCCで行う
//			// （入力チェック時に単項目関連制約(サービス契約内訳番号の必須)を回避できないための処置）
//			// Aセットする値は、契約種別の法人個人の区別に関わりなく常に「個人」
//			// （契約種別の法人は「法人ｅｏ読替サービス契約番号」を持つ法人ではないため個人として扱う）
//			
//			dobanMap.put("tu0021_hojin_kojin_cd", JKKStrConst.CD00004_HOJIN_KOJIN_CD_KOJIN);
//
//			if(null != svcKeiUcwkPreMap)
//			{
//				// サービス契約内訳番号が取得できる場合はセットする
//				// （ただしCC内では最新のサービス契約内訳番号を優先的に取得している）
//				dobanMap.put("tu0021_svc_kei_ucwk_no", svcKeiUcwkPreMap.get("kk0191_svc_kei_ucwk_no"));
//			}
//
//			// 同番移転登録.ＮＴＴ電話番号
//			dobanMap.put("tu0021_ntt_telno", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_BMP_TELNO, tel_idx));
//			
//			// 同番移転登録.ＮＴＴ契約者名
//			dobanMap.put("tu0021_ntt_keisha_nm", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_NM, tel_idx));
//			
//			// 同番移転登録.ＮＴＴ契約者カナ名
//			dobanMap.put("tu0021_ntt_ksh_kana", getTelBeanString(bean, telItemDic, KKW00101SFConst.TEL1_NTT_KEISHA_KANA, tel_idx));
//			
//			// 同番移転登録.設置場所住所コード
//			dobanMap.put("tu0021_setplace_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所郵便番号
//			dobanMap.put("tu0021_setplace_pcd", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
//					+ bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所都道府県
//			dobanMap.put("tu0021_setplace_state_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所市区町村
//			dobanMap.put("tu0021_setplace_city_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所大字通称名
//			dobanMap.put("tu0021_setplace_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所字丁目名
//			dobanMap.put("tu0021_setplace_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所番地号
//			dobanMap.put("tu0021_setplace_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所住所補記・建物名
//			dobanMap.put("tu0021_setplace_adrttm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
//			
//			// 同番移転登録.設置場所住所補記・部屋番号
//			dobanMap.put("tu0021_setplace_adrrm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
//
//			// 同番移転登録.設置場所住所確認コード
//			dobanMap.put("tu0021_setplace_ad_cfm_cd", JKKStrConst.CD00434_NORMAL);// 常に「正常」を設定
//			
//			// 同番移転登録.設置場所種別コード
//			dobanMap.put("tu0021_setplace_sbt_cd", JKKStrConst.CD00435_SHUGJ); // 固定値をセット
//			
//			// 設置場所住所手動入力フラグ
//			dobanMap.put("tu0021_setplace_ad_man_input_flg", JKKStrConst.AD_MAN_INPUT_NO); //固定値をセット
//			
//		}
//
//		/*--------------------------* 
//		 * 登録のみ項目のマッピング   
//		 *--------------------------*/
//		if (bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG, tel_idx), X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			// 同番移転登録.同番移転申込年月日
//			dobanMap.put("tu0021_dobaniten_mskm_ymd", opeDate);
//			
//			// 同番移転種別コード
//			dobanMap.put("tu0021_dobaniten_sbt_cd", JKKStrConst.CD00433_NTT_NO); //固定値をセット
//			
//			//↓↓↓【IT1-2013-0000067】同番移転連絡先電話番号対応【2/8】2013/01/24 FJ)薄出 START↓↓↓
//			// 同番移転登録マップ.連絡先電話番号
//			dobanMap.put("tu0021_rrks_telno", bean[0].sendMessageString(
//					KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
//			// 同番移転登録時は契約者タブの「契約者−電話番号」を設定する。
//			//↑↑↑【IT1-2013-0000067】同番移転連絡先電話番号対応【2/8】2013/01/24 FJ)薄出  END ↑↑↑
//		}
//		
//		/*--------------------------* 
//		 * 更新のみ項目のマッピング   
//		 *--------------------------*/
//		if (bean[0].sendMessageBoolean(getTelBeanName(telItemDic, KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG, tel_idx), X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			//↓↓↓【IT1-2013-0000067】同番移転連絡先電話番号対応【3/8】2013/01/24 FJ)薄出 START↓↓↓
//			// 同番移転内容変更マップ.連絡先電話番号
//			dobanMap.put("tu0021_rrks_telno", (String)dobanPreMap.get("tu0021_rrks_telno"));
//			// 同番移転内容変更時は照会時の同番移転.連絡先電話番号を設定する。
//			//↑↑↑【IT1-2013-0000067】同番移転連絡先電話番号対応【3/8】2013/01/24 FJ)薄出  END ↑↑↑
//		}
//		
//		dobanitenMapList.add(dobanMap);
//		
//	}
// ANK-4494-00-00 DEL END

	/**
	 * とある電話のBean項目名を任意の電話番号目項目に変換する
	 * <br>
	 * @param telItemDic  電話項目辞書
	 * @param keyItemName とある電話項目名（１，２番号問わず）
	 * @param tel_idx     変換したい番号目
	 * @return tel_idx番号目の項目名
	 */
	private String getTelBeanName(HashMap<String, Integer> telItemDic, String keyItemName, String tel_idx)
	{
		int telno_jun = Integer.parseInt(tel_idx);
		
		return TEL_ITEM_NAMES[telno_jun - 1][telItemDic.get(keyItemName).intValue()];
	}
	
	/**
	 * 電話項目の一覧にある１番号目の項目に相当する１または２番号目の項目文字列値を取得する
	 * <br>
	 * @param bean データビーンの配列
	 * @param telItemDic 電話項目の一覧の配列
	 * @param keyItemName 取得しようとしている電話項目名（１番号目のもの）
	 * @param tel_idx １番号目項目名称と項目一覧インデックスの紐付き
	 * @return 項目文字列値
	 */
	private String getTelBeanString(X31SDataBeanAccess[] bean, HashMap<String, Integer> telItemDic, String keyItemName, String tel_idx)
	{
		return bean[0].sendMessageString(getTelBeanName(telItemDic, keyItemName, tel_idx), X31CWebConst.DATABEAN_GET_VALUE);
	}

	/**
	 * 電話のオプションサービス契約登録キャンセルの上りマッピングを行います。
	 * （自動追加のオプション）
	 * @param bean   [0]：申込新規登録画面
	 * @param parentMap   申込情報マップ
	 * @param preMap      照会時情報
	 * @param svcKeiMap   電話照会時情報
	 * @param tel_idx     電話番号目
	 * @param mappingMode マッピングモード
	 * @param func_code   機能コード
	 */
	@SuppressWarnings("unchecked")
	private void setTelOpSvckeiAutoMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap,
			HashMap preMap, HashMap svcKeiMap, String tel_idx, int mappingMode, String func_code)
	{
		ArrayList<HashMap> svcKeiUcwkList = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_tel_list");
		HashMap<String, Object> svcKeiUcwkMap = null;

		// 指定された番号目のサービス契約内訳を取得する（２番号目はnullが有り得る）
		for (HashMap tmpMap : svcKeiUcwkList)
		{
			if (tel_idx.equals(tmpMap.get("kk0191_telno_jun")))
			{
				svcKeiUcwkMap = tmpMap;
				break;
			}
		}
		
		if (svcKeiUcwkMap == null && mappingMode != IS_ADD)
		{
			return;
		}

		switch (mappingMode)
		{
		case IS_ADD:
			setTelOpSvcKeiAddMap("ADD_OP_SVC_KEI_TEL_AUTO", bean, parentMap, preMap, svcKeiMap, svcKeiUcwkMap,
					"", tel_idx, func_code);
			break;

		case IS_UPDATE:
			setTelOpSvcKeiUpdateMap("UPDATE_OP_SVC_KEI", bean, parentMap, svcKeiMap, svcKeiUcwkMap,
					JKKStrConst.OP_SVC_CD_TWRYO_UPPL_TCH, tel_idx, func_code);
			break;
			
		default:
			break;
		
		}

	}

	/**
	 * 電話のオプションサービス契約 更新の上りマッピングを行います
	 * @param updateMapKey マップキー
	 * @param bean [0]：申込新規登録画面
	 * @param parentMap 申込情報マップ
	 * @param svcKeiMap サービス契約マップ
	 * @param svcKeiUcwkMap サービス契約内訳マップ
	 * @param op_svc_cd オプションサービスコード
	 * @param tel_idx 電話番号目
	 * @param func_code ファンクションコード
	 */
	@SuppressWarnings("unchecked")
	private void setTelOpSvcKeiUpdateMap(String updateMapKey, X31SDataBeanAccess[] bean, HashMap parentMap, 
			HashMap svcKeiMap, HashMap svcKeiUcwkMap, String op_svc_cd, String tel_idx, String func_code)
	{
		ArrayList<HashMap> opSvcKeiIchiiList = (ArrayList<HashMap>)svcKeiMap.get("op_svc_kei_ichii_list");
		ArrayList<HashMap> opSvcKeiTelList = (ArrayList<HashMap>)svcKeiMap.get("op_svc_kei_tel_list");
		String opSvcKeiNo = null;
		
		HashMap<String, Object> opSvcKeiMap = null;
		HashMap<String, Object> opSvcTelMap = null;

		// オプションサービスのキャンセルマッピング配列を取得する（無ければ作る）
		ArrayList opSvcMapList = (ArrayList)parentMap.get(updateMapKey);
		
		if (null == opSvcMapList)
		{
			opSvcMapList = new ArrayList();
			parentMap.put(updateMapKey, opSvcMapList);
		}

		HashMap opSvcMap = new HashMap();
		
		opSvcMap.put("func_code", func_code);
		opSvcMap.put("telno_jun", tel_idx);
		
		// 申込明細番号
		opSvcMap.put("kk0371_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no"));
		// サービスキャンセル理由コード
		opSvcMap.put("kk0371_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
		// 異動区分
		opSvcMap.put("kk0371_ido_div", (String)svcKeiMap.get("kk0081_ido_div"));
		
		// オプションサービス契約番号
		// 更新年月日時分秒(更新前)
		if (null != opSvcKeiIchiiList)
		{
			int devCnt2 = opSvcKeiIchiiList.size();
			for (int j = 0; j < devCnt2; j++)
			{
				opSvcKeiMap = (HashMap)opSvcKeiIchiiList.get(j);
				opSvcTelMap = (HashMap)opSvcKeiTelList.get(j);
				
				// 電話番号目とオプションサービスコードの判定
				if (svcKeiUcwkMap.get("kk0191_svc_kei_ucwk_no").equals((String)opSvcKeiMap.get("kk0351_svc_kei_ucwk_no")) &&
						op_svc_cd.equals((String)opSvcKeiMap.get("kk0351_op_svc_cd")) &&
						STAT_UKETSUKE_ZUMI.equals((String)opSvcKeiMap.get("kk0351_op_svc_kei_stat")))
				{
					opSvcKeiNo = (String)opSvcKeiMap.get("kk0351_op_svc_kei_no");
					opSvcMap.put("kk0371_op_svc_kei_no", opSvcKeiNo);
					opSvcMap.put("kk0371_upd_dtm_bf", opSvcTelMap.get("kk0371_last_upd_dtm"));
					break;
				}
			}
		}
		
		String twryoUpplShkv = bean[0].sendMessageString(KKW00101SFConst.KK_TWRYO_UPPL_SHKV, X31CWebConst.DATABEAN_GET_VALUE);
		boolean chgFlg = false;
		if (null != opSvcKeiNo && twryoUpplShkv != null)
		{
			for (HashMap telMap : opSvcKeiTelList)
			{
				if (!opSvcKeiNo.equals(telMap.get("kk0371_op_svc_kei_no")))
				{
					continue;
				}

				if (telMap.get("kk0371_twryo_stiam_ttu_tchi_stiam") == null || "".equals(telMap.get("kk0371_twryo_stiam_ttu_tchi_stiam")))
				{
					break;
				}

				chgFlg = !(twryoUpplShkv.equals(telMap.get("kk0371_twryo_stiam_ttu_tchi_stiam")));
				opSvcMap.put("kk0371_twryo_stiam_ttu_tchi_stiam", 
						bean[0].sendMessageString(KKW00101SFConst.KK_TWRYO_UPPL_SHKV, X31CWebConst.DATABEAN_GET_VALUE));
				break;
			}
		}
		
		if (0 < opSvcMap.size() && chgFlg)
		{
			opSvcMapList.add(opSvcMap);
		}
	}
	
	/**
	 * 電話のオプションサービス契約 追加の上りマッピングを行います
	 * @param addMapKey マップキー
	 * @param bean [0]：申込新規登録画面
	 * @param parentMap 申込情報マップ
	 * @param preMap 照会情報マップ
	 * @param svcKeiMap サービス契約マップ
	 * @param svcKeiUcwkMap サービス契約内訳マップ
	 * @param op_svc_cd オプションサービスコード
	 * @param tel_idx 電話番号目
	 * @param func_code ファンクションコード
	 */
	@SuppressWarnings("unchecked")
	private void setTelOpSvcKeiAddMap(String addMapKey, X31SDataBeanAccess[] bean, HashMap parentMap, 
			HashMap preMap, HashMap svcKeiMap, HashMap svcKeiUcwkMap, 
			String op_svc_cd, String tel_idx, String func_code)
	{
		// 異動区分
		String mskm_sbt_cd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String ido_div = (MSKM_SBT_CD_SHINKI.equals(mskm_sbt_cd))?(IDO_DIV_NEW):(IDO_DIV_ADD);

		// 支払請求情報の取得(請求契約番号)
		String seiky_kei_no = getSeikyKeiNo(preMap);

		// オプションサービスの登録マッピング配列を取得する（無ければ作る）
		ArrayList<HashMap> opSvcMapList = (ArrayList)parentMap.get(addMapKey);
		
		if (null == opSvcMapList)
		{
			opSvcMapList = new ArrayList();
			parentMap.put(addMapKey, opSvcMapList);
		}

		HashMap opSvcMap = new HashMap();

		opSvcMap.put("func_code", func_code);
		opSvcMap.put("telno_jun", tel_idx);
		
		opSvcMap.put("kk0371_op_svc_cd", op_svc_cd);
		
		opSvcMap.put("kk0371_svc_kei_no", "");
		opSvcMap.put("kk0371_twryo_stiam_ttu_tchi_stiam", "");
		
		if (!"".equals(op_svc_cd))
		{
			HashMap<String, String> opPrcMap = JKKWebCommon.getEohtlOpPrcKnrnCd(op_svc_cd);
			opSvcMap.put("kk0371_pcrs_cd", opPrcMap.get("pcrs_cd"));
			opSvcMap.put("kk0371_pplan_cd", opPrcMap.get("pplan_cd"));
		}
		else
		{
			// オプションサービスコードが空文字列の場合は「通話料金上限通知」
			opSvcMap.put("kk0371_pcrs_cd", "");
			opSvcMap.put("key_pcrs_cd", CD00134_TEL2);
			opSvcMap.put("kk0371_twryo_stiam_ttu_tchi_stiam",
					bean[0].sendMessageString(KKW00101SFConst.KK_TWRYO_UPPL_SHKV, X31CWebConst.DATABEAN_GET_VALUE));
			opSvcMap.put("kk0371_pplan_cd", "");
		}
		
		opSvcMap.put("kk0371_oya_kei_skbt_cd", OYA_KEI_SKBT_CD_SVKEIUW);
		
		if (null != svcKeiUcwkMap)
		{
			opSvcMap.put("kk0371_svc_kei_ucwk_no", (String)svcKeiUcwkMap.get("kk0191_svc_kei_ucwk_no"));
		}
		
		opSvcMap.put("kk0371_sysid", (String)svcKeiMap.get("kk0081_sysid"));
		opSvcMap.put("kk0371_mskm_dtl_no", (String)svcKeiMap.get("kk0081_mskm_dtl_no"));
		opSvcMap.put("kk0371_ftrial_kanyu_ymd", "");
		opSvcMap.put("kk0371_ftrial_prd_endymd", "");
		opSvcMap.put("kk0371_honkanyu_ymd", "");
		opSvcMap.put("kk0371_honkanyu_iko_kigen_ymd", "");
		opSvcMap.put("kk0371_svc_use_sta_kibo_ymd", "");
		opSvcMap.put("kk0371_rsv_tsta_kibo_ymd", "");
		opSvcMap.put("kk0371_pnlty_hassei_cd", "");
		opSvcMap.put("kk0371_ido_div", ido_div);
		opSvcMap.put("kk0371_n_050_op_telno", "");
		opSvcMap.put("kk0371_seiky_kei_no", seiky_kei_no);
		opSvcMap.put("kk0371_prc_kmk_cd", "");
		opSvcMap.put("kk0371_upd_dtm_bf", svcKeiMap.get("kk0081_last_upd_dtm"));

		opSvcMapList.add(opSvcMap);
	}

	/**
	 * 電話の電話番号、エイジング登録の上りマッピングを行います。
	 * <br>
	 * @param bean           [0]：申込新規登録画面
	 * @param parentMap           申込情報マップ
	 * @param svcKeiMap           電話照会時情報
	 * @param opeDate             運用日付
	 * @param opeDateTimeStamp    運用日付時分秒
	 * @param func_code           機能コード
	 * @param tel_idx             電話番号目
	 * @param telkind_key         電話番号種類の項目名
	 * @param telno_key           電話番号項目名
	 */
	@SuppressWarnings("unchecked")
	private void setAddTelNoAndAgingMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap,
			HashMap svcKeiMap, String opeDate, String opeDateTimeStamp, String func_code, String tel_idx, String telkind_key, String telno_key)
	{
		if (!TELNO_KIND_BMP.equals(bean[0].sendMessageString(telkind_key, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return;
		}

		String tel_no  = bean[0].sendMessageString(telno_key, X31CWebConst.DATABEAN_GET_VALUE); // 電話番号、エージング登録対象番ポ電話番号

		String kyoku_no = (null != tel_no)?((tel_no.length() >= 6)?(tel_no.substring(0, 6)):(tel_no)):(""); // 局番（頭６ケタ）

		ArrayList<HashMap>      svcKeiUcwkList    = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_tel_list");
		
		if (null == svcKeiUcwkList)
		{
			return;
		}
		
		// 電話番号、エージング登録対象番ポ電話番号が照会時の番ポ番号のどれかであればマスタ登録は回避する(二重登録の回避)
		for (HashMap tmpMap : svcKeiUcwkList)
		{
			if (UMU_ARI.equals(tmpMap.get("kk0191_bmp_um")) && tel_no.equals(tmpMap.get("kk0191_telno")))
			{
				return;
			}
		}
		
		// 電話番号、エイジング登録のマッピング配列を取得する（無ければ作る）
		ArrayList telNoAgingMapList = (ArrayList)parentMap.get("ADD_TELNO_AGING");
		
		if (null == telNoAgingMapList)
		{
			telNoAgingMapList = new ArrayList();
			parentMap.put("ADD_TELNO_AGING", telNoAgingMapList);
		
		}
		
		HashMap telNoAgingMap = new HashMap();
		
		telNoAgingMap.put("func_code", func_code);
		telNoAgingMap.put("telno_jun", tel_idx);
		
		// エイジング登録マップ.エイジング種別コード
		// エイジング登録マップ.電話番号
		// エイジング登録マップ.使用開始年月日時分秒
		// 電話番号登録マップ.電話番号
		// 電話番号登録マップ.使用開始年月日
		// 電話番号登録マップ.電話番号	telno
		// 電話番号登録マップ.番号コード
		// 電話番号登録マップ.割当通信事業者コード
		// 電話番号登録マップ.使用通信事業者コード
		// 電話番号登録マップ.個人法人電話番号帯コード
		// 電話番号登録マップ.サービス区分
		// 電話番号登録マップ.電話番号適用開始年月日
		
		telNoAgingMap.put("zm0121_telno",                  tel_no);

		telNoAgingMap.put("zm0121_kyoku_no",               kyoku_no);
		
		telNoAgingMap.put("zm0121_no_cd",                  JKKStrConst.NO_CD_OABJ);
		telNoAgingMap.put("zm0121_wariate_tsjgs_cd",       JTUStrConst.TSJGS_CD_NTT);
		telNoAgingMap.put("zm0121_use_tsjgs_cd",           bean[0].sendMessageString(KKW00101SFConst.JISHA_TSJGS_CD, X31CWebConst.DATABEAN_GET_VALUE));
		telNoAgingMap.put("zm0121_kojin_hojin_tln_tai_cd", JKKStrConst.CD00410_KOJIN);
		telNoAgingMap.put("zm0121_svc_div",                JKKStrConst.SVC_DIV_OPT_PHONE);
		telNoAgingMap.put("zm0121_telno_tstaymd",          opeDate);

		// 課題260_障害No.8 対応 2012.09.05 薄出 START -----↓↓↓↓↓-----
		telNoAgingMap.put("zm0301_key_kyoku_no", kyoku_no);
		// 課題260_障害No.8 対応 2012.09.05 薄出  END  -----↑↑↑↑↑-----
		
		// 電話番号一覧照会用
		telNoAgingMap.put("zm0121_key_telno",   tel_no);
		
// ANK-4494-00-00 ADD START
		// 処理区分の判定
		String kmkDiv = null;

		if (TEL_ONE.equals(tel_idx))
		{
			kmkDiv = KMK_DIV_ONE;
		}
		else if (TEL_TWO.equals(tel_idx))
		{
			kmkDiv = KMK_DIV_TWO;
		}
		
		// CC側で電話マスタにデータがある場合は、電話番号状態によって内容を設定して更新をする。
		// ない場合は、登録を行う。
		
		// 登録時は、ポートイン他社電話番号想定
		// 更新時は、JKKUpdSvcKeiTelCC内で下記Mapの一部を使用する

		// 電話番号登録マップ.初期個人法人電話番号帯コード
		telNoAgingMap.put("zm0121_shk_kojin_hojin_tln_tai_cd", JKKStrConst.CD00410_KOJIN);
		// 電話番号登録マップ.電話番号取得通信事業者コード
		telNoAgingMap.put("zm0121_tln_stku_tsjgs_cd", null);
		// 電話番号登録マップ.移転元通信事業者コード
		telNoAgingMap.put("zm0121_itnm_tsjgs_cd", eo.web.webview.common.JKKWebCommon.convertCode(bean[0], kmkDiv + TEL_TSJGS_LIST, TSJGS_CD + kmkDiv, TSJGS_CD + kmkDiv + TSJGS_LIST));
		// 電話番号登録マップ.移転先通信事業者コード
		telNoAgingMap.put("zm0121_itns_tsjgs_cd", bean[0].sendMessageString(KKW00101SFConst.JISHA_TSJGS_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
//ANK-4494-00-00 ADD END

		telNoAgingMapList.add(telNoAgingMap);
	}

	/**
	 * 利用場所変更の上りマッピングを行います。
	 * <br>
	 * @param viewLogic ビューロジック
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param svcKeiNo サービス契約番号(申込更新後にも残るサービス契約番号)
	 * @param mansionMap マンション情報マップ
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008020CC(JCCWebBusinessLogic viewLogic, HashMap outputMap, String func_code, HashMap mskmMap,
			String svcKeiNo, HashMap mansionMap) throws Exception
	{
		/*--------------------* 
		 * データビーンを取得   
		 *--------------------*/
		X31SDataBeanAccess[] bean = {viewLogic.getServiceFormBean()};

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap preMap = (HashMap)mskmMap.get("KKSV007907CC");
		if (preMap == null)
		{
			return null;
		}

		X31SDataBeanAccess dataBean = bean[0];
		
		String seikyKeiNo =  getSeikyKeiNo(mskmMap); // 請求契約番号
		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(MSKM_FLG_TSUIKA.equals(mskmFlg) 
				&& (PAYWAY_KEIZOKU_UPD.equals(bean[0].sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE))
				|| bean[0].sendMessageBoolean(KKW00101SFConst.PAYWAY_KEIZOKU_USE_FAIL_FLG, X31CWebConst.DATABEAN_GET_VALUE) == true))
		{	// 追加申込、支払方法変更 または 支払方法継続利用不可の場合
			seikyKeiNo = "";
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 申込形態コード
		String mskmFormCd = dataBean.sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 申込書の種類
		String mskmshoKind = null;
		if(MSKM_FORM_CD_TEL.equals(mskmFormCd))
		{	// 電話申込
			mskmshoKind = dataBean.sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{	// 書面申込
			mskmshoKind = dataBean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		}
		parentMap.put("mskmsho_kind", mskmshoKind);
// ANK-4427-00-00 ADD STAR
		
		// ブランドタイプ
		parentMap.put("brand_type", dataBean.sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE));
		
// ANK-4427-00-00 ADD END
		
		// マンション回線提供方式
		String mansionKaisenHoshiki =
			dataBean.sendMessageString(KKW00101SFConst.MANSION_KAISEN_HOSHIKI, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("mansion_kaisen_hoshiki", mansionKaisenHoshiki);
		
		// 申込番号
		parentMap.put("mskm_no", dataBean.sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 個別照査対象サービス
		parentMap.put("kbt_shosa_tg_svc", JKKStrConst.KBT_SHOSA_TG_SVC_IKT_SHOSA);
		
		// 機器送付先チェック実行フラグ
		parentMap.put("kkshs_chk_run_flg", false);
		// 契約者＿機器送付先住所コード
		parentMap.put("ksh_kiki_sohus_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先郵便番号
		parentMap.put("ksh_kiki_sohus_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先住所手動入力フラグ
		String manipt = bean[0].sendMessageBoolean(KKW00101SFConst.KEISHA_KIKI_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE)
								? JKKStrConst.AD_MAN_INPUT_YES : JKKStrConst.AD_MAN_INPUT_NO;
		parentMap.put("ksh_kiki_shs_ad_man_input_flg", manipt);
		// 契約者＿機器送付先都道府県名
		parentMap.put("ksh_kiki_sohus_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先市区町村名
		parentMap.put("ksh_kiki_sohus_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先大字通称名
		parentMap.put("ksh_kiki_sohus_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先字丁目名
		parentMap.put("ksh_kiki_sohus_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先番地号
		parentMap.put("ksh_kiki_sohus_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先住所補記・建物名
		parentMap.put("ksh_kiki_sohus_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先住所補記・部屋番号
		parentMap.put("ksh_kiki_sohus_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先名
		parentMap.put("ksh_kiki_sohus_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_SHS_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先カナ名
		parentMap.put("ksh_kiki_sohus_kana", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_SHS_NM_KANA, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約者＿機器送付先電話番号
		parentMap.put("ksh_kiki_sohus_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 契約者情報の住所との差異 → サービス契約回線内訳登録マップ.回線場所_契約者住所差異フラグ
		//   差異なし:0、差異あり:1
		if(isDifferentAd(bean[0]))
		{
			parentMap.put("kaisen_plc_ksh_ad_sai_flg", KISN_KEISHA_AD_SAI_NON);
		}
		else
		{
			parentMap.put("kaisen_plc_ksh_ad_sai_flg", KISN_KEISHA_AD_SAI_ARI);
		}

		// 利用場所−電話番号 → サービス契約回線内訳登録マップ.回線場所電話番号
		parentMap.put("kaisen_place_telno", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		// 回線場所住所コード → サービス契約回線内訳登録マップ.回線場所住所コード
		parentMap.put("kaisen_place_ad_cd", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−郵便番号（前） ＋ 利用場所−郵便番号（後） → サービス契約回線内訳登録マップ.回線場所郵便番号
		parentMap.put("kaisen_place_pcd", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
				+ dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−都道府県 → サービス契約回線内訳登録マップ.回線場所都道府県名
		parentMap.put("kaisen_place_state_nm", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−市区町村 → サービス契約回線内訳登録マップ.回線場所市区町村名
		parentMap.put("kaisen_place_city_nm", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−大字通称名 → サービス契約回線内訳登録マップ.回線場所大字通称名
		parentMap.put("kaisen_place_oaztsu_nm", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−字町名 → サービス契約回線内訳登録マップ.回線場所字丁目名
		parentMap.put("kaisen_place_azcho_nm", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−番地・号 → サービス契約回線内訳登録マップ.回線場所番地号
		parentMap.put("kaisen_place_bnchigo", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−建物名等 → サービス契約回線内訳登録マップ.回線場所住所補記・建物名
		parentMap.put("kaisen_place_adrttm", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// 利用場所−部屋番号等 → サービス契約回線内訳登録マップ.回線場所住所補記・部屋番号
		parentMap.put("kaisen_place_adrrm", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3885-00-00 ADD START
		// 利用場所−棟情報 → サービス契約回線内訳登録マップ.回線場所棟情報
		parentMap.put("kaisen_place_tou_info", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_TOU_INFO, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3885-00-00 ADD END
		// ANK-4244-00-00 ADD START
		// 利用場所−連番 → サービス契約回線内訳登録マップ.回線場所連番
		parentMap.put("kaisen_place_renban", dataBean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_RENBAN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4244-00-00 ADD END
		// 住所チェックレベル２ → サービス契約回線内訳登録マップ.回線場所住所チェックレベル
		parentMap.put("kisn_ad_chk_lv", JKKStrConst.AD_CHK_LV2);

		String adFix = JKKStrConst.CD00467_AD_FIX;	// 確定
		
		// 住居タイプがホームタイプの場合のみ、設置位置情報を取得する。
		if (MSKM_KIND_HOME.equals(mskmshoKind))
		{
			if (JKKStrConst.CD00734_MI_FIX.equals(bean[0].sendMessageString(KKW00101SFConst.KISN_PLACE_AD_FIX_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
			{	// 決まっていない
				adFix = JKKStrConst.CD00467_AD_MI_FIX;	// 未確定
			}

			// 設置位置−区画整理中 → サービス契約回線内訳登録マップ.回線場所区画整理中フラグ
			if(bean[0].sendMessageBoolean(KKW00101SFConst.KISN_PLC_KKK_SEIRI_CHU_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{	// チェックあり（"1":固定値）
				parentMap.put("kisn_plc_kkk_seiri_chu_flg", KISN_KKK_SEIRI_CHU);
			}
			else
			{	// チェックなし（"0":固定値）
				parentMap.put("kisn_plc_kkk_seiri_chu_flg", KISN_KKK_SEIRI_ZUMI);
			}

			// 設置位置−形態 → サービス契約回線内訳登録マップ.住所形態コード
			String oldAdFormCd = dataBean.sendMessageString(KKW00101SFConst.AD_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
			String adFormCd = cnvAdFormSbtAdFormCd(oldAdFormCd, JKKWebCommon.getPullDownCode(dataBean, KKW00101SFConst.AD_FORM_SBT_LIST, 
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
			
			parentMap.put("ad_form_cd", adFormCd);

			// 設置位置‐集合住宅入居階数コード → サービス契約回線内訳登録マップ.集合住宅入居階数コード
			parentMap.put("shugj_nyukyo_flr_cnt_cd", dataBean.sendMessageString(KKW00101SFConst.SHUGJ_NYUKYO_FLR_CNT_CD,
					X31CWebConst.DATABEAN_GET_VALUE));

			// **********↓UI残4,10,605**********
			// 竣工予定年月の設定
			String shunko_rsv_y = dataBean.sendMessageString(KKW00101SFConst.SHUNKO_RSV_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			String shunko_rsv_m = dataBean.sendMessageString(KKW00101SFConst.SHUNKO_RSV_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
			String shunko_rsv_ymd = shunko_rsv_y + shunko_rsv_m;
			// 設置位置−竣工予定が未入力の場合、日は設定しない
			if (!JKKCommonUtil.isNull(shunko_rsv_ymd))
			{
				// 設置位置−竣工予定（年月日） → サービス契約回線内訳登録マップ.竣工予定年月日
				parentMap.put("shunko_rsv_ymd", shunko_rsv_ymd + "01");
			}
			// **********↑UI残4,10,605**********
			
			// 回線提供会社コード → サービス契約回線内訳登録マップ.回線提供会社コード
			parentMap.put("kaisen_tk_comp_cd", JKKStrConst.CD00092_KOPT);
		}
		else if(MSKMSHO_KIND_ADSL.equals(mskmshoKind))
		{	// ADSL
			parentMap.put("ad_form_cd", JKKStrConst.CD00627_05);	// その他

			// サービス契約回線内訳登録マップ.回線提供会社コード
			String corpCd = null;
			String adslFlg = bean[0].sendMessageString(KKW00101SFConst.EOADSL_EACCESS_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			if(ADSL_EACCESS.equals(adslFlg))
			{	// eAccess
				corpCd = JKKStrConst.CD00092_EACCESS;
			}
			else
			{	// フレッツ
				corpCd = JKKStrConst.CD00092_NTT_NISI_NHN;
			}
			
			parentMap.put("kaisen_tk_comp_cd", corpCd);
		}
		else
		{	// マンション・メゾン
			// 設置位置−形態("02"固定) → サービス契約回線内訳登録マップ.住所形態コード
			parentMap.put("ad_form_cd", JKKStrConst.CD00627_02);
			
			// 回線提供会社コード → サービス契約回線内訳登録マップ.回線提供会社コード
			parentMap.put("kaisen_tk_comp_cd", JKKStrConst.CD00092_KOPT);
		}
		
		// 回線場所住所未確定フラグ
		parentMap.put("kisn_plc_ad_mi_fix_flg", adFix);
		
		// お客様申告住所未確定フラグ
		parentMap.put("cust_skk_ad_mi_fix_flg", adFix);

		// --------------------------
		// サービス契約回線内訳一意照会
		// --------------------------
		ArrayList childList = null;
		childList = (ArrayList)preMap.get("mskm_svc_kei_ucwk_list");
		HashMap childMap = (HashMap)childList.get(0);

		// 回線使用契約情報Map
		HashMap kaisenUseKeiInfoMap = JKKWebCommon.getkaisenUseKeiInfoMap(dataBean, mansionMap);

		// サービス契約回線内訳ステータス
		parentMap.put("svc_kei_kaisen_ucwk_stat", (String)childMap.get("kk0251_svc_kei_kaisen_ucwk_stat"));

		// サービス契約回線内訳番号
		parentMap.put("svc_kei_kaisen_ucwk_no", (String)childMap.get("kk0251_svc_kei_kaisen_ucwk_no"));

		// 申込明細番号
		parentMap.put("mskm_dtl_no", (String)childMap.get("kk0251_mskm_dtl_no"));

		// 回線場所住所未確定解除年月日
		parentMap.put("kisn_plc_ad_mi_fix_rls_ymd", (String)childMap.get("kk0251_kisn_plc_ad_mi_fix_rls_ymd"));

		// お客様SOS利用有無
		parentMap.put("cust_sos_use_um", (String)childMap.get("kk0251_cust_sos_use_um"));

		// マンション物件番号
		parentMap.put("mansion_bukken_no", (String)childMap.get("kk0251_mansion_bukken_no"));

		// 回線場所カナ名
		parentMap.put("kaisen_plc_kana", (String)childMap.get("kk0251_kaisen_plc_kana"));

		// 回線場所番号
		parentMap.put("kaisen_place_no", (String)childMap.get("kk0251_kaisen_place_no"));

		// 回線場所補足コード1
		parentMap.put("kisn_plc_hsk_cd_1", (String)childMap.get("kk0251_kisn_plc_hsk_cd_1"));

		// 回線場所補足コード2
		parentMap.put("kisn_plc_hsk_cd_2", (String)childMap.get("kk0251_kisn_plc_hsk_cd_2"));

		// 回線場所補足メモ
		parentMap.put("kisn_plc_hsk_memo", bean[0].sendMessageString(KKW00101SFConst.NYUKYO_RSV_MEMO, X31CWebConst.DATABEAN_GET_VALUE));

		// 回線場所住所確定後変更可否
		parentMap.put("kisn_plc_ad_fix_af_chge_kh", (String)childMap.get("kk0251_kisn_plc_ad_fix_af_chge_kh"));

		// 電力送電予定年月日
		parentMap.put("epower_soden_rsv_ymd", (String)childMap.get("kk0251_epower_soden_rsv_ymd"));

		//**********↓UI残-760**********
		// 入居予定年月日
		String nyukyoRsvYmdY = bean[0].sendMessageString(KKW00101SFConst.NYUKYO_RSV_YMD_Y , X31CWebConst.DATABEAN_GET_VALUE);
		// **********↓UI残4,10,605**********
		String nyukyoRsvYmdM = bean[0].sendMessageString(KKW00101SFConst.NYUKYO_RSV_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
		String nyukyoRsvYmdD = bean[0].sendMessageString(KKW00101SFConst.NYUKYO_RSV_YMD_D , X31CWebConst.DATABEAN_GET_VALUE);
		// **********↑UI残4,10,605**********
		String nyukyoRsvYmd = nyukyoRsvYmdY + nyukyoRsvYmdM + nyukyoRsvYmdD;
		parentMap.put("nyukyo_rsv_ymd", nyukyoRsvYmd);
		//**********↑UI残-760**********

		// 引渡し予定年月日
		parentMap.put("hikiwatashi_rsv_ymd", (String)childMap.get("kk0251_hikiwatashi_rsv_ymd"));

		// 引越し予定年月日
		parentMap.put("hikkoshi_rsv_ymd", (String)childMap.get("kk0251_hikkoshi_rsv_ymd"));

		// X座標
		parentMap.put("xzahyo", (String)childMap.get("kk0251_xzahyo"));

		// Y座標
		parentMap.put("yzahyo", (String)childMap.get("kk0251_yzahyo"));

		// 経度
		parentMap.put("lgtd", (String)childMap.get("kk0251_lgtd"));

		// 緯度
		parentMap.put("lttd", (String)childMap.get("kk0251_lttd"));

		// 座標補正有無
		parentMap.put("zahyo_hosei_um", (String)childMap.get("kk0251_zahyo_hosei_um"));

		// テレビ個別対応コード
		parentMap.put("tv_kobet_taio_cd", (String)childMap.get("kk0251_tv_kobet_taio_cd"));

		// TVアンテナ有無
		parentMap.put("tv_antenna_um", (String)childMap.get("kk0251_tv_antenna_um"));

		// 方角コード1
		parentMap.put("direction_cd_1", (String)childMap.get("kk0251_direction_cd_1"));

		// 方角コード2
		parentMap.put("direction_cd_2", (String)childMap.get("kk0251_direction_cd_2"));

		// 戸建建築階数コード
		parentMap.put("kodate_kcku_flr_cnt_cd", (String)childMap.get("kk0251_kodate_kcku_flr_cnt_cd"));

		// PON種別コード
		parentMap.put("pon_sbt_cd", (String)childMap.get("kk0251_pon_sbt_cd"));

		// VDSL利用電話回線種別コード
		parentMap.put("vdsl_use_tel_kisn_sbt_cd", (String)childMap.get("kk0251_vdsl_use_tel_kisn_sbt_cd"));

		// VDSL利用電話回線切替予定年月日
		parentMap.put("vdsl_use_dksn_swch_rsv_ymd", (String)childMap.get("kk0251_vdsl_use_dksn_swch_rsv_ymd"));

		// VDSL利用対象電話番号回線種別コード
		parentMap.put("vdsl_use_tg_dbksn_sbt_cd", (String)childMap.get("kk0251_vdsl_use_tg_dbksn_sbt_cd"));

		// VDSL利用対象電話番号
		parentMap.put("vdsl_use_tg_telno", (String)childMap.get("kk0251_vdsl_use_tg_telno"));

		// 引越し年月日
		parentMap.put("hikkoshi_ymd", (String)childMap.get("kk0251_hikkoshi_ymd"));

		// 該当エリアサービス開始年月日
		parentMap.put("gaito_area_svc_staymd", (String)childMap.get("kk0251_gaito_area_svc_staymd"));

		// 撤去工事希望年月日
		parentMap.put("tekkyo_koji_kibo_ymd", (String)childMap.get("kk0251_tekkyo_koji_kibo_ymd"));

		// 起点変電所コード
		parentMap.put("kiten_hdsho_cd", kaisenUseKeiInfoMap.get("kiten_hdsho_cd"));

		// 集約局コード
		parentMap.put("shyakk_cd", kaisenUseKeiInfoMap.get("shyakk_cd"));

		// 関電営業所コード
		parentMap.put("kepco_busioffice_cd", (String)childMap.get("kk0251_kepco_busioffice_cd"));

		// 更新年月日時分秒(更新前)
		parentMap.put("upd_dtm_bf", (String)childMap.get("kk0251_last_upd_dtm"));
		
		// 電話BASホストID
		parentMap.put("tel_bas_host_id", (String)childMap.get("kk0251_tel_bas_host_id"));
		
		// 電話VLAN-ID
		parentMap.put("tel_vlan_id", (String)childMap.get("kk0251_tel_vlan_id"));
		
		// VLAN-ID確定フラグ
		parentMap.put("vlan_id_fix_flg", (String)childMap.get("kk0251_vlan_id_fix_flg"));
		
		// 電話VLAN-ID取込年月日
		parentMap.put("tel_vlan_id_trkm_ymd", (String)childMap.get("kk0251_tel_vlan_id_trkm_ymd"));
		
		// 請求書送付先住所変更有無
		parentMap.put("sks_shs_ad_chg_um", (String)childMap.get("kk0251_sks_shs_ad_chg_um"));
		
		// 請求書送付先住所変更希望年月日
		parentMap.put("sks_shs_ad_chg_kibo_ymd", (String)childMap.get("kk0251_sks_shs_ad_chg_kibo_ymd"));
		
		// 契約者住所変更有無
		parentMap.put("kshad_chg_um", (String)childMap.get("kk0251_kshad_chg_um"));
		
		// 契約者住所変更希望年月日
		parentMap.put("kshad_chg_kibo_ymd", (String)childMap.get("kk0251_kshad_chg_kibo_ymd"));
		
		// 請求書用部屋番号
		boolean seikyusYoRmNoDspCtlFlg = bean[0].sendMessageBoolean(KKW00101SFConst.SEIKYUS_YO_RM_NO_DSP_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (seikyusYoRmNoDspCtlFlg)
		{
			parentMap.put("sks_yo_kisn_place_ad_rm_no", bean[0].sendMessageString(KKW00101SFConst.SEIKYUS_YO_RM_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// 新規申込
		if(MSKM_FLG_SHINKI.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			boolean kaisenAdChgSetFlg = false;
			// 書面かつADSL以外かつ書面かつモバイル以外 または 書面以外かつモバイル以外
			if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && !MSKMSHO_KIND_ADSL.equals(mskmshoKind) 
					&& MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && !MSKMSHO_KIND_MOBILE_ONLY.equals(mskmshoKind))
			{
				kaisenAdChgSetFlg = true;
			}
			
			// 書面以外かつモバイル以外
			if(!MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && !JYUKYO_TYPE_MOBILE_ONLY.equals(mskmshoKind))
			{
				kaisenAdChgSetFlg = true;
			}
			
			if(kaisenAdChgSetFlg)
			{
				// 上書予定設定 → サービス契約回線内訳登録マップ.請求書送付先住所変更有無
				boolean kaisenAdChgFlg = bean[0].sendMessageBoolean(KKW00101SFConst.KAISEN_AD_CHG_FLG, X31CWebConst.DATABEAN_GET_VALUE);
				String sksShsAdChgUm = "";
				if(kaisenAdChgFlg)
				{	// チェックあり（"1":固定値）
					sksShsAdChgUm = KAISEN_AD_CHG_FLG_ARI;
				}
				else
				{	// チェックなし（"0":固定値）
					sksShsAdChgUm = KAISEN_AD_CHG_FLG_NASI;
				}
				
				parentMap.put("sks_shs_ad_chg_um", sksShsAdChgUm);
				
				// 上書予定日 → サービス契約回線内訳登録マップ.請求書送付先住所変更希望年月日
				String kaisenAdChgRsvYmdY = bean[0].sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_RSV_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
				String kaisenAdChgRsvYmdM = bean[0].sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_RSV_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
				String kaisenAdChgRsvYmdD = bean[0].sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_RSV_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
				
				String kaisenAdChgRsvYmd = kaisenAdChgRsvYmdY + kaisenAdChgRsvYmdM + kaisenAdChgRsvYmdD;
				
				parentMap.put("sks_shs_ad_chg_kibo_ymd", kaisenAdChgRsvYmd);
				
				// 上書予定設定 → サービス契約回線内訳登録マップ.契約者住所変更有無
				parentMap.put("kshad_chg_um", sksShsAdChgUm);
				
				// 上書予定日 → サービス契約回線内訳登録マップ.契約者住所変更希望年月日
				parentMap.put("kshad_chg_kibo_ymd", kaisenAdChgRsvYmd);
			}
		}


		// 機器情報
		
		parentMap.put("kk0081_svc_kei_no", svcKeiNo);
		parentMap.put("kk0081_sysid", dataBean.sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		ArrayList<HashMap> preList = (ArrayList<HashMap>)preMap.get(KAISEN_KIKI_LIST);
		// モデム料金関連コード取得処理
		HashMap<String, String> prcKnrnMap = getModemPrcKnrnCd(bean[0], JKKWebCommon.isSameKisn(viewLogic), preList);
		String modemPcrsCd = prcKnrnMap.get(MODEM_PRC_KNRN_KEY_PCRSCD);
		String modemPplanCd = prcKnrnMap.get(MODEM_PRC_KNRN_KEY_PPLANCD);

		// 機器登録情報
		String prefix = "kk0341_";
		String[][] addKikiInfo = {{JKKStrConst.CD00132_ONU, JKKStrConst.CD00134_ONU, JKKStrConst.CD00565_ONU, prefix}
		, {JKKStrConst.CD00132_VONU, JKKStrConst.CD00134_VONU, JKKStrConst.CD00565_VONU, prefix}
		, {JKKStrConst.CD00132_MODEM, modemPcrsCd, modemPplanCd, prefix}
		, {JKKStrConst.KKTK_SVC_CD_TAKINORT, JKKStrConst.CD00134_TAKINORT, JKKStrConst.CD00565_TAKINORT, prefix}};
		
		ArrayList<HashMap<String, Object>> kikiAddList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> kikiMap = null;
		

		String idoDiv = JKKStrConst.MSKM_FLG_NEW.equals(mskmFlg) ? JKKStrConst.CD00576_00001 : JKKStrConst.CD00576_00002;
		
		// SYSID
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// サービス契約回線内訳番号
		String svcKeiKaisenUcwkNo = (String)childMap.get("kk0251_svc_kei_kaisen_ucwk_no");
		
		for(String[] kikiInfo : addKikiInfo)
		{
			kikiMap = new HashMap<String, Object>();
			
			// 機器情報設定
			JKKWebCommon.getKktkSvcKeiIniData(dataBean, kikiMap, kikiInfo[0], kikiInfo[1], kikiInfo[2], kikiInfo[3],
					mansionMap, JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
			
			// 異動区分
			kikiMap.put("kk0341_ido_div", idoDiv);
			
			// SYSID
			kikiMap.put("kk0341_sysid", sysid);
			
			// サービス契約回線内訳番号
			kikiMap.put("kk0341_svc_kei_kaisen_ucwk_no", svcKeiKaisenUcwkNo);
			
			// 請求契約番号
			kikiMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			
			kikiAddList.add(kikiMap);
		}
		
		// 機器提供サービス契約登録リスト
		parentMap.put("kktk_svc_add_list", kikiAddList);
		
		// 機器キャンセル、機器更新
		
		ArrayList<HashMap> dataList = new ArrayList();
		ArrayList updList = new ArrayList();
		ArrayList pplanChgList = new ArrayList();
		ArrayList ksnkkgetList = new ArrayList();
		ArrayList kkGetList = new ArrayList();
		ArrayList kkopGetList = new ArrayList();
		HashMap dataMap = null;
		HashMap updMap = null;
		HashMap pplanChgMap = null;
		String svcCd = null;
		String pcrsCd = null;
		String pplanCd = null;
		prefix = "kk0341_";
		
		// モデム機器の台数を取得
		int modemKikiCnt = getKaisenKktkSvcKeiCount(viewLogic, JKKStrConst.CD00132_MODEM, null);
		// ONU機器の台数を取得
		int onuKikiCnt = getKaisenKktkSvcKeiCount(viewLogic, JKKStrConst.CD00132_ONU, null);
		// V-ONU機器の台数を取得
		int vonuKikiCnt = getKaisenKktkSvcKeiCount(viewLogic, JKKStrConst.CD00132_VONU, null);
		
		// ルーターレンタルコード
		String routerRental = JKKWebCommon.getPullDownCode(bean[0],
				KKW00101SFConst.OP_ROUTER_RENTAL_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		// 照会時のルーターレンタルコード
		String shoukaiRouterRental =  JKKWebCommon.getPullDownCode(bean[0],
				KKW00101SFConst.HDN_OP_ROUTER_RENTAL_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		// ファミリーパック
		boolean opFamilyPack = bean[0].sendMessageBoolean(KKW00101SFConst.OP_FAMILY_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		// 照会時のファミリーパック
		boolean shoukaiOpFamilyPack = bean[0].sendMessageBoolean(KKW00101SFConst.HDN_OP_FAMILY_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		// 多機能ルーター申込フラグ
		boolean takinortFlg = ((OP_ROUTER_RENTAL_CD_BASIC.equals(routerRental) || 
				OP_ROUTER_RENTAL_CD_MUSEN.equals(routerRental) || opFamilyPack));
		
		// サービス契約更新制御フラグ（登録／更新／キャンセルの区別）を取得する
		HashMap<String, Boolean> svc_kei_upd_flgs = getSvcKeiUpdCtrMap(dataBean);
		
		// 多機能ルーター申込フラグ
		parentMap.put("router_mskm_flg", takinortFlg);
		// 多機能ルーター変更フラグ
		parentMap.put("tknrt_chg_flg", true);
		// ネットタブの表示状態
		parentMap.put("eoh_net_flg", dataBean.sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 電話タブの表示状態
		parentMap.put("eoh_tel_flg", dataBean.sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE));

		String hdnTelNum = dataBean.sendMessageString(KKW00101SFConst.HDN_EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String eohTelNum = dataBean.sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		boolean telChgflg = !hdnTelNum.equals(eohTelNum) || svc_kei_upd_flgs.get(IS_TEL1_CANCEL);
		// 電話変更フラグ
		parentMap.put("tel_chg_flg", telChgflg);
		//
		String kktkSvcKeiNo = null;
		
		for (HashMap preDataMap: preList)
		{
			svcCd = (String)preDataMap.get("kk0341_kktk_svc_cd");
			if(null == svcCd || 0 == svcCd.length())
			{
				continue;
			}
			
			// 取得情報設定
			HashMap getMap = new HashMap();
			getMap.put("kk0341_kktk_svc_cd", svcCd);
			getMap.put("kk0341_kktk_svc_kei_no", (String)preDataMap.get("kk0341_kktk_svc_kei_no"));
			getMap.put("kk0341_kktk_svc_kei_stat", (String)preDataMap.get("kk0341_kktk_svc_kei_stat"));
			ksnkkgetList.add(getMap);
			
			if (JKKStrConst.CD00132_MODEM.equals(svcCd) && modemKikiCnt > 1)
			{
				// 複数機器が存在する場合は更新しない
				continue;
			}
			else if (JKKStrConst.CD00132_ONU.equals(svcCd) && onuKikiCnt > 1)
			{
				// 複数機器が存在する場合は更新しない
				continue;
			}
			else if (JKKStrConst.CD00132_VONU.equals(svcCd) && vonuKikiCnt > 1)
			{
				// 複数機器が存在する場合は更新しない
				continue;
			}
			else if(JKKStrConst.CD00132_MODEM.equals(svcCd) && !"".equals(modemPcrsCd))
			{
				pplanCd = modemPplanCd;

				if((bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE) ||
					bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				&& !modemPplanCd.equals((String)preDataMap.get("kk0341_pplan_cd")))
				{
					/*-----------------------------------------------
					 * 機器提供サービス契約料金プラン変更
					 *-----------------------------------------------*/
					pplanChgMap = new HashMap();
					// 機器提供サービス契約番号
					pplanChgMap.put("kk0341_kktk_svc_kei_no", (String)preDataMap.get("kk0341_kktk_svc_kei_no"));
					// 料金コースコード
					pplanChgMap.put("kk0341_pcrs_cd", modemPcrsCd);
					// 料金プランコード
					pplanChgMap.put("kk0341_pplan_cd", modemPplanCd);
					// 申込明細番号
					pplanChgMap.put("kk0341_mskm_dtl_no", (String)preDataMap.get("kk0341_mskm_dtl_no"));
					// 予約適用年月日
					pplanChgMap.put("kk0341_rsv_aply_ymd", (String)preDataMap.get("kk0341_rsv_aply_ymd"));
					// 違約金発生コード
					pplanChgMap.put("kk0341_pnlty_hassei_cd", (String)preDataMap.get("kk0341_pnlty_hassei_cd"));
					// 異動区分
					pplanChgMap.put("kk0341_ido_div", idoDiv);
					// 更新年月日時分秒(更新前)
					pplanChgMap.put("kk0341_upd_dtm_bf", (String)preDataMap.get("kk0341_last_upd_dtm"));
					pplanChgList.add(pplanChgMap);
				}
			}
			else
			{
				pplanCd = (String)preDataMap.get("kk0341_pplan_cd");
			}
			//ANK-4315-00-00 MOD START
			// // 機器提供サービスコードが多機能ルーターの場合
			//if(JKKStrConst.KKTK_SVC_CD_TAKINORT.equals(svcCd))
			if(JKKStrConst.KKTK_SVC_CD_TAKINORT.equals(svcCd) || JKKStrConst.KKTK_SVC_CD_HGW.equals(svcCd))
			//ANK-4315-00-00 MOD END
			{
				kktkSvcKeiNo = (String)preDataMap.get("kk0341_kktk_svc_kei_no");
			}
			
			// キャンセル情報設定
			dataMap = new HashMap();
			dataMap.put("kk0341_kktk_svc_cd", svcCd);
			dataMap.put("kk0341_kktk_svc_kei_stat", (String)preDataMap.get("kk0341_kktk_svc_kei_stat"));
			dataMap.put("kk0341_kktk_svc_kei_no", (String)preDataMap.get("kk0341_kktk_svc_kei_no"));
			dataMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
			dataMap.put("kk0341_ido_div", idoDiv);
			dataMap.put("kk0341_upd_dtm_bf", (String)preDataMap.get("kk0341_last_upd_dtm"));
			dataMap.put("kk0341_kktk_svc_kei_no", (String)preDataMap.get("kk0341_kktk_svc_kei_no"));
			dataList.add(dataMap);
			
			/*-----------------------------------------------
			 * 機器提供サービス契約情報変更
			 *-----------------------------------------------*/
			updMap = new HashMap();
			updMap.put("kk0341_kktk_svc_cd", svcCd);
			updMap.put("kk0341_kktk_svc_kei_stat", (String)preDataMap.get("kk0341_kktk_svc_kei_stat"));
			
			// ｅｏ光多機能ルーター
			if(JKKStrConst.KKTK_SVC_CD_TAKINORT.equals(svcCd))
			{
				JKKWebCommon.getUpdSameKisnCksKikiIniData(dataBean, svcCd, pplanCd, updMap, prefix, preDataMap, prefix, null,
						JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), false);
			}
			else
			{
				JKKWebCommon.getUpdKktkSvcKeiIniData(dataBean, svcCd, pplanCd, updMap, prefix, preDataMap, prefix, null,
						JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), false);
			}
			
			updList.add(updMap);
		}
		
		String refPcrsCd = null;
		boolean isChgKkmdl = false;
		ArrayList<HashMap> ekk0341B508List = (ArrayList<HashMap>)preMap.get("kk0341_EKK0341B508CBSMsg1List");
		if (ekk0341B508List != null && ekk0341B508List.size() > 0)
		{
			for (HashMap preDataMap: ekk0341B508List)
			{
				isChgKkmdl = false;
				svcCd = (String)preDataMap.get("kk0341_kktk_svc_cd");
				pplanCd = (String)preDataMap.get("kk0341_pplan_cd");
				if(null == svcCd || 0 == svcCd.length())
				{
					continue;
				}

				// ネットがキャンセル以外の場合かつ、
				// ルーターかつ、ルーターに関する値が照会時から変更なしの場合
				boolean routerNotChg = dataBean.sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE) && 
				!svc_kei_upd_flgs.get(IS_NET_CANCEL) && JKKStrConst.CD00132_BBR.equals(svcCd) && 
					opFamilyPack == shoukaiOpFamilyPack && routerRental.equals(shoukaiRouterRental);
				if(routerNotChg) 
				{
					refPcrsCd = (String)preDataMap.get("kk0341_pcrs_cd");
					pcrsCd = null;
					
					// 100M無線ルーター
					if(JKKStrConst.CD00134_MUSEN_100M_RENT.equals(refPcrsCd)
							|| JKKStrConst.CD00134_OLD_MUSEN_100M_RENT.equals(refPcrsCd))
					{
						pcrsCd = JKKStrConst.CD00134_MUSEN_1G_RENT;
						pplanCd = JKKStrConst.CD00565_MUSEN_1G_RENT;
					}
					// 100Mベーシックルーター
					else if(JKKStrConst.CD00134_BASIC_100M_RENT.equals(refPcrsCd))
					{
						pcrsCd = JKKStrConst.CD00134_BASIC_1G_RENT;
						pplanCd = JKKStrConst.CD00565_BASIC_1G_RENT;
					}
					
					// 多機能ルーター変更フラグ(上書きする)
					parentMap.put("tknrt_chg_flg", false);
					
					/*-----------------------------------------------
					 * 機器提供サービス契約料金プラン変更
					 *-----------------------------------------------*/
					if(null != pcrsCd)
					{
						isChgKkmdl = true;
						pplanChgMap = new HashMap();
						// 機器提供サービス契約番号
						pplanChgMap.put("kk0341_kktk_svc_kei_no", (String)preDataMap.get("kk0341_kktk_svc_kei_no"));
						// 料金コースコード
						pplanChgMap.put("kk0341_pcrs_cd", pcrsCd);
						// 料金プランコード
						pplanChgMap.put("kk0341_pplan_cd", pplanCd);
						// 申込明細番号
						pplanChgMap.put("kk0341_mskm_dtl_no", (String)preDataMap.get("kk0341_mskm_dtl_no"));
						// 予約適用年月日
						pplanChgMap.put("kk0341_rsv_aply_ymd", (String)preDataMap.get("kk0341_rsv_aply_ymd"));
						// 違約金発生コード
						pplanChgMap.put("kk0341_pnlty_hassei_cd", (String)preDataMap.get("kk0341_pnlty_hassei_cd"));
						// 異動区分
						pplanChgMap.put("kk0341_ido_div", idoDiv);
						// 更新年月日時分秒(更新前)
						pplanChgMap.put("kk0341_upd_dtm_bf", (String)preDataMap.get("kk0341_last_upd_dtm"));
						// 機器提供サービスコード
						pplanChgMap.put("kk0341_kktk_svc_cd", svcCd);
						pplanChgList.add(pplanChgMap);
					}
				}
				
				// キャンセル情報設定
				dataMap = new HashMap();
				dataMap.put("kk0341_kktk_svc_cd", svcCd);
				dataMap.put("kk0341_kktk_svc_kei_stat", (String)preDataMap.get("kk0341_kktk_svc_kei_stat"));
				dataMap.put("kk0341_kktk_svc_kei_no", (String)preDataMap.get("kk0341_kktk_svc_kei_no"));
				dataMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				dataMap.put("kk0341_ido_div", idoDiv);
				dataMap.put("kk0341_upd_dtm_bf", (String)preDataMap.get("kk0341_last_upd_dtm"));
				dataMap.put("kk0341_kktk_svc_kei_no", (String)preDataMap.get("kk0341_kktk_svc_kei_no"));
				dataMap.put("kk0341_mskm_dtl_no", (String)preDataMap.get("kk0341_mskm_dtl_no"));
				dataList.add(dataMap);
				
				// ＶＡ、ルーター有無判定用
				HashMap getMap = new HashMap();
				getMap.put("kk0341_kktk_svc_cd", svcCd);
				// 更新年月日時分秒(更新前)
				getMap.put("kk0341_upd_dtm_bf", (String)preDataMap.get("kk0341_last_upd_dtm"));
				kkGetList.add(getMap);

				/*-----------------------------------------------
				 * 機器提供サービス契約情報変更
				 *-----------------------------------------------*/
				updMap = new HashMap();
				updMap.put("kk0341_kktk_svc_cd", svcCd);
				updMap.put("kk0341_kktk_svc_kei_stat", (String)preDataMap.get("kk0341_kktk_svc_kei_stat"));
				
				JKKWebCommon.getUpdKktkSvcKeiIniData(dataBean, svcCd, pplanCd, updMap, prefix, preDataMap, prefix, null,
						JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), isChgKkmdl);

				updList.add(updMap);
			}
		}
		
		/*-----------------------------------------------
		 * 機器オプションサービス契約登録
		 *-----------------------------------------------*/
		
		// 機器オプションサービス料金関連コード取得処理(ｅｏ光多機能ルーター ルーター機能)
		HashMap<String, String> netPrcKnrnMap = JKKWebCommon.getKkosvPrcKnrnCd(bean[0], JKKStrConst.KKOP_SVC_CD_ROUTER, preMap);
		String netRouterPcrsCd = netPrcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PCRSCD);
		String netRouterPplanCd = netPrcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PPLANCD);
		
		// 機器オプションサービス料金関連コード取得処理(ｅｏ光多機能ルーター 電話アダプター機能)
		HashMap<String, String> telPrcKnrnMap = JKKWebCommon.getKkosvPrcKnrnCd(bean[0], JKKStrConst.KKOP_SVC_CD_TEL_ADAPT, preMap);
		String telRouterPcrsCd = telPrcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PCRSCD);
		String telRouterPplanCd = telPrcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PPLANCD);
		
		String[][] addKikiOpInfo = {{JKKStrConst.KKOP_SVC_CD_ROUTER, netRouterPcrsCd, netRouterPplanCd}
		, {JKKStrConst.KKOP_SVC_CD_TEL_ADAPT, telRouterPcrsCd, telRouterPplanCd}};
		
		ArrayList<HashMap<String, Object>> kkoppAddList = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> kikiOpMap = null;

		for(String[] kikiOpInfo : addKikiOpInfo)
		{
			kikiOpMap = new HashMap<String, Object>();

			// 機器オプションサービスコード
			kikiOpMap.put("kk2811_kkop_svc_cd",  kikiOpInfo[0]);
			
			// 料金コースコード
			kikiOpMap.put("kk2811_pcrs_cd",  kikiOpInfo[1]);
			
			// 料金プランコード
			kikiOpMap.put("kk2811_pplan_cd",  kikiOpInfo[2]);
			
			// 異動区分
			kikiOpMap.put("kk2811_ido_div", idoDiv);
			
			// SYSID
			kikiOpMap.put("kk2811_sysid", sysid);
			
			// 請求契約番号
			kikiOpMap.put("kk2811_seiky_kei_no", seikyKeiNo);
			
			// 機器オプションサービス契約番号
			kikiOpMap.put("kk2811_kktk_svc_kei_no", kktkSvcKeiNo);
			
			kkoppAddList.add(kikiOpMap);
		}
		ArrayList kkopChgList = new ArrayList();
		ArrayList kkopInfoChgList = new ArrayList();
		ArrayList kkopCnclList = new ArrayList();
		HashMap kkopChgMap = null;
		HashMap kkopCnclMap = null;
		HashMap kkopInfoChgMap = null;
		String kkopsvccd = null;
		String kkosPcrsCd = null;
		String kkospPlanCd = null;
		HashMap<String, Object> svcKeiMap = null;
		HashMap<String, Object> sameKisnMap = (HashMap)mskmMap.get("KKSV007905SC");

		ArrayList<HashMap> kk2811B502List = (ArrayList<HashMap>)preMap.get("EKK2811B502CBSMsg1List");
		
		// ANK-3412-00-00 ADD START
		// 機器オプション料金コースコードリスト
		ArrayList<HashMap> kkopPcrsCdList = new ArrayList<HashMap>();
		// 機器オプション料金コースコードマップ
		HashMap<String, String> kkopPcrsCdMap = new HashMap<String, String>();
		// ANK-3412-00-00 ADD END
		
		if (kk2811B502List != null && kk2811B502List.size() > 0)
		{	
			for (HashMap preDataMap: kk2811B502List)
			{
				kkopsvccd = (String)preDataMap.get("kk2811_kkop_svc_cd");
				kkosPcrsCd = (String)preDataMap.get("kk2811_pcrs_cd");
				if(null == kkopsvccd || 0 == kkopsvccd.length())
				{
					continue;
				}
				
				// VAオプション、ルーターオプション有無判定用
				HashMap getMap = new HashMap();
				getMap.put("kk2811_kkop_svc_cd", kkopsvccd);
				// 機器オプションサービス契約ステータス
				getMap.put("kk2811_kkop_svc_kei_stat", (String)preDataMap.get("kk2811_kkop_svc_kei_stat"));
				kkopGetList.add(getMap);
				
				kkosPcrsCd = (String)preDataMap.get("kk2811_pcrs_cd");
				kkospPlanCd = (String)preDataMap.get("kk2811_pplan_cd");
				/*-----------------------------------------------
				 * 機器オプションサービス契約手続中料金プラン変更
				 *-----------------------------------------------*/
				kkopChgMap = new HashMap();
				
				// 機器オプションサービス料金関連コード取得処理(ｅｏ光多機能ルーター ルーター機能)
				prcKnrnMap = JKKWebCommon.getKkosvPrcKnrnCd(bean[0], kkopsvccd, null);
				
				
				// ｅｏ光多機能ルーター ルーター機能
				if(JKKStrConst.KKOP_SVC_CD_ROUTER.equals(kkopsvccd))
				{
					// 照会時と更新時の料金コースが異なる場合
					if(!kkosPcrsCd.equals(prcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PCRSCD)))
					{
						kkosPcrsCd = prcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PCRSCD);
						kkospPlanCd = prcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PPLANCD);
					}
					else
					{
						kkosPcrsCd = null;
						kkospPlanCd = null;
					}
				}
				// ｅｏ光多機能ルーター 電話アダプター機能
				else if(JKKStrConst.KKOP_SVC_CD_TEL_ADAPT.equals(kkopsvccd))
				{
					// 照会時から電話申込サービスが変更
					if (!bean[0].sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE).equals(
							bean[0].sendMessageString(KKW00101SFConst.HDN_EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
					{

						kkosPcrsCd = prcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PCRSCD);
						kkospPlanCd = prcKnrnMap.get(KKOSV_PRC_KNRN_KEY_PPLANCD);
					}
					else
					{
						kkosPcrsCd = null;
						kkospPlanCd = null;
					}
				}
				
				if(null != kkosPcrsCd && null != kkospPlanCd)
				{
					// 機器オプションサービス契約番号
					kkopChgMap.put("kk2811_kkop_svc_kei_no", (String)preDataMap.get("kk2811_kkop_svc_kei_no"));
					// 機器オプションサービスコード
					kkopChgMap.put("kk2811_kkop_svc_cd", (String)preDataMap.get("kk2811_kkop_svc_cd"));
					// 世代登録年月日時分秒
					kkopChgMap.put("kk2811_gene_add_dtm", (String)preDataMap.get("kk2811_gene_add_dtm"));
					// 申込明細番号
					kkopChgMap.put("kk2811_mskm_dtl_no", (String)preDataMap.get("kk2811_mskm_dtl_no"));
					// 違約金発生コード
					kkopChgMap.put("kk2811_pnlty_hassei_cd", (String)preDataMap.get("kk2811_pnlty_hassei_cd"));
					// 料金コースコード
					kkopChgMap.put("kk2811_pcrs_cd", kkosPcrsCd);
					// 料金プランコード
					kkopChgMap.put("kk2811_pplan_cd", kkospPlanCd);
					// 更新年月日時分秒(更新前)
					kkopChgMap.put("kk2811_upd_dtm_bf", (String)preDataMap.get("kk2811_last_upd_dtm"));
					// 機器オプションサービス契約ステータス
					kkopChgMap.put("kk2811_kkop_svc_kei_stat", (String)preDataMap.get("kk2811_kkop_svc_kei_stat"));
					
					kkopChgList.add(kkopChgMap);
				}
				
				/*-----------------------------------------------
				* 機器オプションサービス契約情報変更
				 *-----------------------------------------------*/
				kkopInfoChgMap = new HashMap();
				
				// 機器オプションサービス契約番号
				kkopInfoChgMap.put("kk2811_kkop_svc_kei_no", (String)preDataMap.get("kk2811_kkop_svc_kei_no"));
				// 申込明細番号
				kkopInfoChgMap.put("kk2811_mskm_dtl_no", (String)preDataMap.get("kk2811_mskm_dtl_no"));
				// 試用加入年月日
				kkopInfoChgMap.put("kk2811_ftrial_kanyu_ymd", (String)preDataMap.get("kk2811_ftrial_kanyu_ymd"));
				// 試用期間終了年月日
				kkopInfoChgMap.put("kk2811_ftrial_prd_endymd", (String)preDataMap.get("kk2811_ftrial_prd_endymd"));
				// 本加入年月日
				kkopInfoChgMap.put("kk2811_honkanyu_ymd", (String)preDataMap.get("kk2811_honkanyu_ymd"));
				// 本加入移行期限年月日
				kkopInfoChgMap.put("kk2811_honkanyu_iko_kigen_ymd", (String)preDataMap.get("kk2811_honkanyu_iko_kigen_ymd"));
				// 違約金発生コード
				kkopInfoChgMap.put("kk2811_pnlty_hassei_cd", (String)preDataMap.get("kk2811_pnlty_hassei_cd"));
				// 異動区分
				kkopInfoChgMap.put("kk2811_ido_div", idoDiv);
				// 機器連帯契約変更手続中フラグ
				kkopInfoChgMap.put("kk2811_kiki_rntai_kei_chgechu_flg", (String)preDataMap.get("kk2811_kiki_rntai_kei_chgechu_flg"));
				// 更新年月日時分秒(更新前)
				kkopInfoChgMap.put("kk2811_upd_dtm_bf", (String)preDataMap.get("kk2811_last_upd_dtm"));
				// 機器オプションサービス契約ステータス
				kkopInfoChgMap.put("kk2811_kkop_svc_kei_stat", (String)preDataMap.get("kk2811_kkop_svc_kei_stat"));
				// 機器オプションサービスコード
				kkopInfoChgMap.put("kk2811_kkop_svc_cd", (String)preDataMap.get("kk2811_kkop_svc_cd"));

				kkopInfoChgList.add(kkopInfoChgMap);
				
				/*-----------------------------------------------
				 * 機器オプションサービス契約キャンセル
				 *-----------------------------------------------*/
				kkopCnclMap = new HashMap();
				// 機器オプションサービス契約番号
				kkopCnclMap.put("kk2811_kkop_svc_kei_no", (String)preDataMap.get("kk2811_kkop_svc_kei_no"));
				// 申込明細番号
				kkopCnclMap.put("kk2811_mskm_dtl_no", (String)preDataMap.get("kk2811_mskm_dtl_no"));
				// 更新年月日時分秒(更新前)
				kkopCnclMap.put("kk2811_upd_dtm_bf", (String)preDataMap.get("kk2811_last_upd_dtm"));
				// 異動区分
				kkopCnclMap.put("kk2811_ido_div", idoDiv);
				// サービスキャンセル理由コード
				kkopCnclMap.put("kk2811_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 機器オプションサービス契約ステータス
				kkopCnclMap.put("kk2811_kkop_svc_kei_stat", (String)preDataMap.get("kk2811_kkop_svc_kei_stat"));
				// 機器オプションサービスコード
				kkopCnclMap.put("kk2811_kkop_svc_cd",  (String)preDataMap.get("kk2811_kkop_svc_cd"));
				
				// ルーター機能の場合、eo光ネットのサービス契約番号を設定する。
				if(JKKStrConst.KKOP_SVC_CD_ROUTER.equals(kkopsvccd))
				{
					svcKeiMap = JKKWebCommon.getSvcKeiMapFromSameKisnShokai(SVC_KEI_TYPE_NET, sameKisnMap, JKKStrConst.CD00037_DSL_ZM);
					
					if(!JKKCommonUtil.isNull(svcKeiMap))
					{
						kkopCnclMap.put("kk2811_svc_kei_no",  (String)svcKeiMap.get("svc_kei_no"));
					}
				}
				// 電話アダプター機能の場合、eo光電話のサービス契約番号を設定する。
				else if(JKKStrConst.KKOP_SVC_CD_TEL_ADAPT.equals(kkopsvccd))
				{
					svcKeiMap = JKKWebCommon.getSvcKeiMapFromSameKisnShokai(SVC_KEI_TYPE_TEL, sameKisnMap, JKKStrConst.CD00037_DSL_ZM);
					
					if(!JKKCommonUtil.isNull(svcKeiMap))
					{
						kkopCnclMap.put("kk2811_svc_kei_no",  (String)svcKeiMap.get("svc_kei_no"));
					}
				}
				
				kkopCnclList.add(kkopCnclMap);
				
				// ANK-3412-00-00 ADD START
				// 機器オプションサービス契約ステータスが"910"(解約済)未満の料金コースコードを保持する
				if (JKKStrConst.CD00037_DSL_ZM.compareTo((String)preDataMap.get("kk2811_kkop_svc_kei_stat")) > 0)
				{
					kkopPcrsCdMap.put((String)preDataMap.get("kk2811_pcrs_cd"), (String)preDataMap.get("kk2811_kkop_svc_kei_stat"));
				}
				// ANK-3412-00-00 ADD END
			}
		}

		//  eo光電話１、２キャンセル
		parentMap.put("tel_cancel_flg", svc_kei_upd_flgs.get(IS_TEL1_CANCEL));
		// eo光ネットキャンセル
		parentMap.put("net_cancel_flg", svc_kei_upd_flgs.get(IS_NET_CANCEL));
		//  eo光電話１、２登録
		parentMap.put("tel_add_flg", svc_kei_upd_flgs.get(IS_TEL1_ADD));
		// eo光ネット登録
		parentMap.put("net_add_flg", svc_kei_upd_flgs.get(IS_NET_ADD));
		
		parentMap.put("kktk_svc_cancel_list", dataList);
		parentMap.put("kktk_svc_update_list", updList);
		parentMap.put("kktk_pplan_chg_list", pplanChgList);
		parentMap.put("kktk_svc_get_list", ksnkkgetList);
		parentMap.put("kkop_svc_add_list", kkoppAddList);
		parentMap.put("kkop_svc_plan_upd_list", kkopChgList);
		parentMap.put("kkop_svc_cancel_list", kkopCnclList);
		parentMap.put("kkop_svc_info_upd_list", kkopInfoChgList);
		parentMap.put("kk_info_shokai_list", kkGetList);
		parentMap.put("kk_op_info_shokai_list", kkopGetList);
		
		// ANK-519 開始
		// マンション親機器有無
		parentMap.put("mansion_oya_kiki_um", bean[0].sendMessageString(KKW00101SFConst.MANSION_OYA_KIKI_UM, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-519 終了
		
		// v31.00.02 IT1-2018-0000114 DEL START
//		// v31.00.01 ANK-3136-00-00 ADD START
//		// ネット・電話の設備流用有無を設定する(0:流用なし、1:流用あり)
//		if( bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			parentMap.put("equip_ryuyo_um_nettel", "1");
//		}
//		else
//		{
//			parentMap.put("equip_ryuyo_um_nettel", "0");
//		}
//		
//		// テレビの設備流用有無を設定する(0:流用なし、1:流用あり)
//		if( bean[0].sendMessageBoolean(KKW00101SFConst.TV_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			parentMap.put("equip_ryuyo_um_tv", "1");
//		}
//		else
//		{
//			parentMap.put("equip_ryuyo_um_tv", "0");
//		}
//		// v31.00.01 ANK-3136-00-00 ADD END
		// v31.00.02 IT1-2018-0000114 DEL END
		
		// ANK-3412-00-00 ADD START
		// 機器交換リスト
		ArrayList<HashMap> kikiKokanList = new ArrayList<HashMap>();
		// 機器交換マップ
		HashMap kikiKokanMap = new HashMap();
		
		// 機器の自動交換用マッピング
		// 異動区分
		kikiKokanMap.put("ido_div", idoDiv);
		
		// eo光ルーターレンタルインデックスを初期化
		kikiKokanMap.put("router_rental_index", "");
		
		// サービス追加したサービス契約ごとにマッピングを分ける
		// ｅｏ光ネットがtrueの場合
		if (dataBean.sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG,  X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ｅｏ光ネットフラグを設定する
			kikiKokanMap.put("eoh_net_flg", "1");
			// ネットの料金プランコードと料金コースコードを設定する
			HashMap netPrcsPplanCdMap = getNetSvcKeiPrcKnrnCd(dataBean, mskmshoKind, mansionMap);
			kikiKokanMap.put("pcrs_cd",netPrcsPplanCdMap.get("pcrs_cd"));
			
			// 異動区分が"00002"(サービス追加)の場合
			if ("00002".equals(idoDiv))
			{
				// eo光ルーターレンタルを取得する(1:無線、2:有線、3:なし)
				X31SDataBeanAccess optionRuterRentalBean = dataBean.getDataBeanArray(KKW00101SFConst.OP_ROUTER_RENTAL_LIST).getDataBean(0);
				String routerRentalIndex = optionRuterRentalBean.sendMessageString(KKW00101SFConst.SELECT_CD_59, X31CWebConst.DATABEAN_GET_VALUE);
				
				// eo光ルーターレンタルインデックス
				kikiKokanMap.put("router_rental_index", routerRentalIndex);
			}
		}
		else
		{
			// ｅｏ光ネットフラグを設定しない
			kikiKokanMap.put("eoh_net_flg", "0");
		}
		// ｅｏ光電話がtrueの場合
		if (dataBean.sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG,  X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ｅｏ光電話フラグを設定する
			kikiKokanMap.put("eoh_tel_flg", "1");
			
			// ｅｏ光電話申込サービスフラグを取得する
			String telNumFlg = dataBean.sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			// ｅｏ光電話申込サービスフラグが"1"の場合
			if (TEL_ONE.equals(telNumFlg))
			{
				kikiKokanMap.put("pcrs_cd",JKKStrConst.CD00134_A31);
			}
			// ｅｏ光電話申込サービスフラグが"2"の場合
			else if (TEL_TWO.equals(telNumFlg))
			{
				kikiKokanMap.put("pcrs_cd",JKKStrConst.CD00134_A32);
			}
		}
		else
		{
			// ｅｏ光電話フラグを設定しない
			kikiKokanMap.put("eoh_tel_flg", "0");
		}
		
		// ネット既契約フラグを設定する
		if (dataBean.sendMessageBoolean(KKW00101SFConst.EOH_NET_KIKEI_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ｅｏ光ネット既契約フラグがtrueの場合、"1"を設定する
			kikiKokanMap.put("eoh_net_kikei_flg", "1");
		}
		else
		{
			// ｅｏ光ネット既契約フラグがfalseの場合、"0"を設定する
			kikiKokanMap.put("eoh_net_kikei_flg", "0");
		}
		
		// 電話既契約フラグを設定する
		if (dataBean.sendMessageBoolean(KKW00101SFConst.EOH_TEL_KIKEI_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ｅｏ光電話既契約フラグがtrueの場合、"1"を設定する
			kikiKokanMap.put("eoh_tel_kikei_flg", "1");
		}
		else
		{
			// ｅｏ光電話既契約フラグがfalseの場合、"0"を設定する
			kikiKokanMap.put("eoh_tel_kikei_flg", "0");
		}
		
		// 多機能ルーターを保持しているか判定するフラグ
		boolean isTakinoFlg = false;
		
		// 照査前回線機器提供サービス契約一覧照会リストを取得
		ArrayList<HashMap> ekk0341B516List = (ArrayList<HashMap>)preMap.get("EKK0341B516CBSMsg1List");
		
		// 照査前回線機器提供サービス契約一覧照会マップを取得
		HashMap ekk0341B516Map = new HashMap();
		
		if (ekk0341B516List.size() > 0)
		{
			for (int i = 0; i < ekk0341B516List.size(); i++)
			{
				ekk0341B516Map = ekk0341B516List.get(i);
				
				if (ekk0341B516Map.size() > 0)
				{
					// 旧機器として多機能ルーターを持っているか判定する
					// 機器提供サービスコードが"C024"(ｅｏ光多機能ルーター)である、かつ、
					// 宅内機器形式コードがnullではない、かつ、
					// 機器提供サービス契約ステータスが"910"(解約済)・"920"(キャンセル済)以外の場合
					if (JKKStrConst.KKTK_SVC_CD_TAKINORT.equals(ekk0341B516Map.get("kk0341_kktk_svc_cd"))
						//&& !JKKStringUtil.isNullBlank((String)ekk0341B516Map.get("kk0341_taknkiki_model_cd"))
						&& !JKKStrConst.CD00056_STAT_DSLZUMI.equals((String)ekk0341B516Map.get("kk0341_kktk_svc_kei_stat"))
						&& !JKKStrConst.CD00056_STAT_CANCELZUMI.equals((String)ekk0341B516Map.get("kk0341_kktk_svc_kei_stat")))
					{
						isTakinoFlg = true;
					}
				}
			}
		}
		
		// 多機能ルーターを持っているか判定する(0:持っていない、1:持っている)
		if (isTakinoFlg)
		{
			kikiKokanMap.put("is_takino_flg", "1");
		}
		else
		{
			kikiKokanMap.put("is_takino_flg", "0");
		}
		
		kikiKokanList.add(kikiKokanMap);
		parentMap.put("kikiKokanList", kikiKokanList);
		kkopPcrsCdList.add(kkopPcrsCdMap);
		parentMap.put("kkopPcrsCdList", kkopPcrsCdList);
		// ANK-3412-00-00 ADD END

		outputMap.put("KKSV008020CC", parentMap);

		return outputMap;

	}

	/**
	 * eo光ネット登録の上りマッピングを行います。
	 * @param bean [0]：申込新規登録画面
	 * @param outputMap データ出力先マップ
	 * @param func_code 機能コード
	 * @param opeDate 運用年月日(8桁)
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDateTimeStamp 運用年月日時分秒(17桁)
	 * @param mansionMap マンション情報マップ
	 * @param viewLogic ビューロジック
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008007CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate, HashMap mskmMap,
			String opeDateTimeStamp, HashMap mansionMap, JCCWebBusinessLogic viewLogic) throws Exception
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccess dataBean = bean[0];
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		/*-----------------------------------------------
		 * 申込明細登録
		 *-----------------------------------------------*/
		// 申込番号
		String mskmNo = bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("kk0021_mskm_no", mskmNo);

		// 申込形態コード
		parentMap.put("kk0021_mskm_form_cd", getAddMskmFormCd(bean[0]));

		// 申込書番号
		parentMap.put("kk0021_mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込年月日
		String mskmYmd =
				bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
		if (mskmYmd.length() != 8)
		{
			mskmYmd = opeDateTimeStamp.substring(0, 8);
		}

		// 申込年月日
		parentMap.put("kk0021_mskm_ymd", mskmYmd);

		// SYSID
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("kk0021_sysid", sysid);

		// 新規申込種別コード
		parentMap.put("kk0021_new_mskm_sbt_cd", bean[0].sendMessageString(KKW00101SFConst.NEW_MSKM_SBT_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込連絡先メールアドレス
		parentMap.put("kk0021_mskm_rrks_mlad", bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込フラグ
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{	// 追加申込の場合
			// オプションサービス引継有無
			String opSvcHktgiUm = JKKStrConst.CD_DIV_UM_NASHI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.SVC_NYO_HKTGI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				opSvcHktgiUm = JKKStrConst.CD_DIV_UM_ARI;
			}
			parentMap.put("kk0021_op_svc_hktgi_um", opSvcHktgiUm);

			// 解約書類送付希望有無
			String dslAticleSohuKiboUm = JKKStrConst.CD_DIV_UM_NASHI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO, X31CWebConst.DATABEAN_GET_VALUE))
			{
				dslAticleSohuKiboUm = JKKStrConst.CD_DIV_UM_ARI;
			}
			parentMap.put("kk0021_dsl_aticle_sohu_kibo_um", dslAticleSohuKiboUm);
		}

		// 申込形態コード
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込書の種類
		String mskmshoKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		// 住居タイプ
		String jyukyoType = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		
		boolean isHome = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null);
		boolean isMansion = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null);
		boolean isMezon = isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null);
		
		// 本人確認書類種別コード
		String hninBunshoKind = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SBT_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		hninBunshoKind = (JKKStrConst.CD01566_9.equals(hninBunshoKind))?(""):(hninBunshoKind);

		parentMap.put("kk0021_hnin_cfm_aticle_sbt_cd", hninBunshoKind);

		//本人確認書類コードがその他の場合
		if (JKKStrConst.CD00714_3.equals(hninBunshoKind))
		{
			parentMap.put("kk0021_hnin_cfm_aticle_nm",
					bean[0].sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));
		}

		String mskmshoSbtCd = null;
		if(MSKM_FORM_CD_TEL.equals(mskmFormCd))
		{	// 電話申込の場合
			mskmshoSbtCd = jyukyoType;
		}
		else if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{	// 書面申込
			mskmshoSbtCd = mskmshoKind;

			if(isHome || isMezon)
			{	// ホームまたはメゾン
				// 地図添付有無
				String maptempAri = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MAPTEMP_ARI
						, KKW00101SFConst.MAP_TEMP_UM_CD_38, KKW00101SFConst.MAP_TEMP_UM_CD_LIST_38);
				parentMap.put("kk0021_map_temp_um", maptempAri);

				// 申込書取扱情報担当者名
				parentMap.put("kk0021_mskmsho_trat_if_tntsha_nm",
						bean[0].sendMessageString(KKW00101SFConst.TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 申込書取扱情報電話番号
				parentMap.put("kk0021_mskmsho_trat_if_telno",
						bean[0].sendMessageString(KKW00101SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}

		// 申込書種別コード
		parentMap.put("kk0021_mskmsho_sbt_cd", mskmshoSbtCd);

		String hukkaAnken = null;
		String newconstBukken = null;
		// ANK-4088-00-00 ADD START
		String takchoApoKadenKibo = null;
		// ANK-4088-00-00 ADD END

		// ホームの場合
		if (isHome)
		{
			// 復活案件の判定
			if (bean[0].sendMessageBoolean(KKW00101SFConst.HUKKAT_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				hukkaAnken = HUKKAT_ARI;
			}
			else
			{
				hukkaAnken = HUKKAT_NASHI;
			}

			// 復活案件フラグ
			parentMap.put("kk0021_hukkat_anken_flg", hukkaAnken);

			// 新築物件の判定
			if (bean[0].sendMessageBoolean(KKW00101SFConst.NEWCONST_BUKKEN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				newconstBukken = NEWCONST_BKN_CD_NEWCONST;
			}
			else
			{
				newconstBukken = NEWCONST_BKN_CD_SHKV;
			}

			// ANK-4468-04-00 DEL START
//			// ANK-4088-00-00 ADD START
//			// 宅内調査のアポ架電希望の判定
//			if (bean[0].sendMessageBoolean(KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM, X31CWebConst.DATABEAN_GET_VALUE))
//			{
//			takchoApoKadenKibo = bean[0].sendMessageString(KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM, X31CWebConst.DATABEAN_GET_VALUE);
//			if (StringUtils.isEmpty(takchoApoKadenKibo))
//			{
//				takchoApoKadenKibo = JKKStrConst.KIBO_NO;
//			}
//			// ANK-4088-00-00 ADD END
			// ANK-4468-04-00 DEL END

			// 新築物件コード
			parentMap.put("kk0021_newconst_bukken_cd", newconstBukken);

			String sameEquipReMskm = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.SAME_EQUIP_RE_MSKM,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_56,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_LIST_56);

			// 同一設備再申込コード
			parentMap.put("kk0021_same_equip_re_mskm_cd", sameEquipReMskm);

			// ANK-4468-04-00 DEL START
//			// 宅内調査のアポ架電希望
//			parentMap.put("kk0021_takcho_apo_kaden_kibo_um", takchoApoKadenKibo);
//			// ANK-4088-00-00 ADD END
			// ANK-4468-04-00 DEL END
			// ANK-4468-04-00 ADD START
			// 宅内調査のアポ架電希望の判定
			parentMap.put("kk0021_takcho_apo_kaden_kibo_um", getApoKadenUmCode(bean[0], KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM));
			// ANK-4468-04-00 ADD END
		}
		else
		{
			// 画面に表示されていない場合、"0"を設定する。

			//復活案件フラグ
			parentMap.put("kk0021_hukkat_anken_flg", HUKKAT_NASHI);
			// 新築物件コード
			parentMap.put("kk0021_newconst_bukken_cd", NEWCONST_BKN_CD_SHKV);
			// 同一設備再申込コード
			parentMap.put("kk0021_same_equip_re_mskm_cd", SAME_EQUIP_RE_MSKM_CD_SHKV);
		}

		// マンション設備システム連携用記事欄
		parentMap.put("kk0021_manssbsys_rnki_yo_kijiran"
				, bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// マンション・メゾンの場合
		if (isMansion || isMezon)
		{
			String keiHukaCd = JKKWebCommon.convertCode(
			bean[0], KKW00101SFConst.FUKA_LIST,
			KKW00101SFConst.FUKA_CD_57,
			KKW00101SFConst.FUKA_CD_LIST_57);

			// 契約付加コード
			parentMap.put("kk0021_kei_huka_cd", keiHukaCd);

			// マンションID
			parentMap.put("kk0021_mansion_id", bean[0].sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE));
			// CAT-ID
			parentMap.put("kk0021_catid", bean[0].sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込種別コード
		String mskmSbtCd = JKKWebCommon.convertCode(
				bean[0], KKW00101SFConst.MSKM_SBT,
				KKW00101SFConst.SELECT_CD_59,
				KKW00101SFConst.CD_LIST_59);

		// 申込受付種別コード
		parentMap.put("kk0021_mkm_uk_sbt_cd", mskmSbtCd);

		// 更新年月日時分秒(更新前)
		String mskmUpdDtm = "";	// 申込の更新年月日時分秒
		HashMap mskmSvcKeiUcwkMap = (HashMap)mskmMap.get("KKSV007901CC");
		if(null != mskmSvcKeiUcwkMap)
		{
			ArrayList mskmSvcKeiUcwkList = (ArrayList)mskmSvcKeiUcwkMap.get("mskm_svc_kei_ucwk_list");
			if(null != mskmSvcKeiUcwkList && 0 <= mskmSvcKeiUcwkList.size())
			{
				HashMap childMap = (HashMap)mskmSvcKeiUcwkList.get(0);
				mskmUpdDtm = (String)childMap.get("last_upd_dtm");
				
				// 更新年月日時分秒(更新前)
				parentMap.put("kk0021_upd_dtm_bf", mskmUpdDtm);
			}
		}
		parentMap.put("kk0021_mskmsho_dtl_no", bean[0].sendMessageString(KKW00101SFConst.NET_TEL_MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// ANK-3136-00-00 ADD START
		// ホーム・メゾンの場合
		if (isHome || isMezon)
		{
			// 他システム連携_宅内調査要否
			String tsyrnTakchoYh = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_TAKCHO_HUYO_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnTakchoYh = JKKCommonConst.KH_FAIL;
			}
			else
			{
				tsyrnTakchoYh = JKKCommonConst.KH_PSG;
			}
			parentMap.put("kk0021_tsyrn_takcho_yh", tsyrnTakchoYh);
			// 他システム連携_工事連絡先氏名
			parentMap.put("kk0021_tsyrn_kj_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_工事連絡先電話番号
			parentMap.put("kk0021_tsyrn_kj_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先氏名
			parentMap.put("kk0021_tsyrn_takcho_ji_rrks_nm", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_宅内調査時連絡先電話番号
			parentMap.put("kk0021_tsyrn_takcho_ji_rrks_tln", bean[0].sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_連絡希望日時
			parentMap.put("kk0021_tsyrn_rrk_kibo_date", bean[0].sendMessageString(KKW00101SFConst.TSYRN_RRK_KIBO_DATE, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_地図有無
			String tsyrnMapUm = "";
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TSYRN_MAP_UM, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tsyrnMapUm = JKKCommonConst.UM_U;
			}
			else
			{
				tsyrnMapUm = JKKCommonConst.UM_M;
			}
			parentMap.put("kk0021_tsyrn_map_um", tsyrnMapUm);
			// 他システム連携_既存契約情報
			parentMap.put("kk0021_tsyrn_kzn_kei_inf", bean[0].sendMessageString(KKW00101SFConst.TSYRN_KZN_KEI_INF, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携_不備解消年月日
			parentMap.put("kk0021_tsyrn_hbi_kaishou_ymd", bean[0].sendMessageString(KKW00101SFConst.TSYRN_HBI_KAISHOU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用有無
// ANK-4468-11-00 MOD START
//			String equipRyuyoUm = "";
//			if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
//			{
//				equipRyuyoUm = JKKCommonConst.UM_U;
//			}
//			else
//			{
//				equipRyuyoUm = JKKCommonConst.UM_M;
//			}
			String equipRyuyoUm = JKKCommonConst.UM_M;
			String equipRyuyoUmKbn = bean[0].sendMessageString(KKW00101SFConst.EQUIP_RYUYO_UM_KBN, X31CWebConst.DATABEAN_GET_VALUE);
			if (!JKKStringUtil.isNullBlank(equipRyuyoUmKbn)){
				equipRyuyoUm = equipRyuyoUmKbn;
			} else {
				// 乗換以外は、従来通り
				if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
				{
					equipRyuyoUm = JKKCommonConst.UM_U;
				}
			}
// ANK-4468-11-00 MOD END
			parentMap.put("kk0021_equip_ryuyo_um", equipRyuyoUm);
			// 流用元工事案件番号
			parentMap.put("kk0021_ryuyo_moto_kjak_no", bean[0].sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用工事完了希望年月日
			String sbryKjFinKiboymd = bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_Y, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_M, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_D, X31CWebConst.DATABEAN_GET_VALUE);
			parentMap.put("kk0021_sbry_kj_fin_kiboymd", sbryKjFinKiboymd);
			// ANK-4096-00-00 ADD START
			// 現在利用先契約回線区分
			parentMap.put("kk0021_now_use_sk_kei_kisn_div", bean[0].sendMessageString(KKW00101SFConst.USE_SK_KEI_KISN_DIV, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器設置場所変更有無
			parentMap.put("kk0021_kiki_setplc_chgum", bean[0].sendMessageString(KKW00101SFConst.KIKI_SETPLACE_CHGE_RSV_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// 同日実施希望有無
			parentMap.put("kk0021_dojitu_jssi_kbum", bean[0].sendMessageString(KKW00101SFConst.TAKCHO_KJ_DOJITU_JSSI_UM, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4096-00-00 ADD END
		}
		// ANK-3136-00-00 ADD END

		/*-----------------------------------------------
		 * サービス契約<eo光ネット>登録
		 *-----------------------------------------------*/
		// SYSID
		parentMap.put("kk0091_sysid", sysid);
		// サービスコード
		String svcCd = getNetSvcCd(bean[0]);
		parentMap.put("kk0091_svc_cd", svcCd); // 01:インターネット

		if (isHome)
		{
			// 面開発案件番号
			parentMap.put("kk0091_menkaihat_anken_no",
					bean[0].sendMessageString(KKW00101SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		/*
		 *  料金グループコード
		 *  料金コースコード
		 */
		String prcGrpCd = JKKKeiNewCmnLogicUtil.getNetSvcKeiPgrpCd(bean[0], mskmshoSbtCd);
		parentMap.put("kk0091_prc_grp_cd", prcGrpCd);

		HashMap prcKnrnMap = getNetSvcKeiPrcKnrnCd(bean[0], mskmshoSbtCd, mansionMap);
		String pcourse = (String)prcKnrnMap.get(NET_PRC_KNRN_KEY_PCRSCD);
		String pPlanCd = (String)prcKnrnMap.get(NET_PRC_KNRN_KEY_PPLANCD);

		// 料金コースコード
		parentMap.put("kk0091_pcrs_cd", pcourse);

		// 料金プランコード
		parentMap.put("kk0091_pplan_cd", pPlanCd);

		if (isMansion || isMezon)
		{
			// 提供方式契約番号
			parentMap.put("kk0091_tk_hoshiki_kei_no", JKKWebCommon.getTkHoshikiKeiNo(mansionMap));
		}

		String svcUseStaKiboYmd = null;
		if (isMansion)
		{
			// サービス利用開始希望年月日
			svcUseStaKiboYmd = dataBean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
				+ dataBean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
				+ dataBean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
			parentMap.put("kk0091_svc_use_sta_kibo_ymd", svcUseStaKiboYmd);
		}
		
		// 支払い方法継続フラグ
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{
			parentMap.put("kk0091_payway_keizoku_flg", dataBean.sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 変更元法人eo読替サービス契約番号
		parentMap.put("kk0091_chmt_hjin_eo_ykae_svkei_no", bean[0].sendMessageString(KKW00101SFConst.TOKKI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 異動区分
		String idoDiv = null;
		if ("1".equals(mskmFlg))
		{
			// 新規申込の場合

			idoDiv =  "00001"; // 00001（新規契約）
		}
		else
		{
			// 新規申込以外の場合

			idoDiv = "00002"; // 00002（サービス追加）
		}
		parentMap.put("kk0091_ido_div", idoDiv);
		
		// 紹介コード
		parentMap.put("kk0091_intr_cd", dataBean.sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 業務連絡備考
		parentMap.put("kk0091_work_rrk_biko", dataBean.sendMessageString(KKW00101SFConst.NET_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));

		// 自動照査処理状態コード
		String autoShosaTranStatCd = null;

		if (MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{
			// 書面申込
			autoShosaTranStatCd = "2";	// 対象外
		}
		else
		{
			autoShosaTranStatCd = "0";	// 未処理
		}

		// 自動照査処理状態コード
		parentMap.put("kk0091_auto_shosa_tran_stat_cd", autoShosaTranStatCd);

		// 固定IPアドレス引継ぎ有無
		parentMap.put("kk0091_kotei_ip_ad_hktgi_um", "0"); // 0（なし）

		// PCパック有無
		parentMap.put("kk0091_pc_pack_um", "0"); // 0（なし）

		// 請求契約番号を追加
		// 申込情報マップから必要なマップを取得
		String seikyKeiNo = getSeikyKeiNo(mskmMap);
		
		if(MSKM_FLG_TSUIKA.equals(mskmFlg) 
				&& (PAYWAY_KEIZOKU_UPD.equals(bean[0].sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE))
				|| bean[0].sendMessageBoolean(KKW00101SFConst.PAYWAY_KEIZOKU_USE_FAIL_FLG, X31CWebConst.DATABEAN_GET_VALUE) == true))
		{	// 追加申込、支払方法変更 または 支払方法継続利用不可の場合
			seikyKeiNo = "";
		}
		
		// 請求契約番号
		parentMap.put("kk0091_seiky_kei_no", seikyKeiNo);

		// 課金開始年月日補正有無
		parentMap.put("kk0091_chrg_sta_ymd_hosei_um", "0");

		// 事務手数料自動適用要否
		parentMap.put("kk0091_rule0059_auto_aply", JKKStrConst.CD00001_0);
		// 工事費自動適用要否
		parentMap.put("kk0091_rule0079_auto_aply", JKKStrConst.CD00001_0);

		// ANK-4468-09-00 ADD START
		
		// 乗換元サービス契約番号
		String nrkemt_svkei_no = bean[0].sendMessageString(KKW00101SFConst.NRKEMT_SVKEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("kk0091_nrkemt_svkei_no", nrkemt_svkei_no);
		
		// ANK-4468-09-00 ADD END
// ANK-4427-00-00 ADD START
		// サービス契約<eo光ネット>へのtypeN項目をマッピングする
		if (BRAND_TYPE_TYPEN.equals(bean[0].sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// マッピング処理
			mappingKK0091(bean, parentMap);
		}
// ANK-4427-00-00 ADD END

		/*-----------------------------------------------
		 * サービス契約内訳＜eo光ネット＞登録
		 *-----------------------------------------------*/
		// 異動区分
		if ("1".equals(mskmFlg))
		{
			// 新規申込の場合

			parentMap.put("kk0171_ido_div", "00001"); // 00001（新規契約）
		}
		else
		{
			// 新規申込以外の場合

			parentMap.put("kk0171_ido_div", "00002"); // 00002（サービス追加）
		}

		// 提供帯域コード
		String tkTaiikiCd = getTkTaiikiCd(pcourse);
		parentMap.put("kk0171_tk_taiiki_cd", tkTaiikiCd);

		/*-----------------------------------------------
		 * オプションサービス契約＜ISP＞登録（メール・Myホームページ用）
		 *-----------------------------------------------*/
		// 料金コースコード
		parentMap.put("key_pcrs_cd", pcourse);

		// SYSID
		parentMap.put("kk0361_sysid", sysid);

		// 異動区分
		parentMap.put("kk0361_ido_div", idoDiv);

		// 親契約識別コード
		parentMap.put("kk0361_oya_kei_skbt_cd", "01"); // 01（サービス契約）

		// 請求契約番号追加
		if(null != seikyKeiNo)
		{
			// 請求契約番号
			parentMap.put("kk0361_seiky_kei_no", seikyKeiNo);
		}

		//
		// 機器提供サービス契約登録明細
		//    PLCアダプタ用
		//    タブレット用, タブレットクレードル用
		//
		ArrayList <HashMap<String, String>> kktkAddList = new ArrayList<HashMap<String, String>>();

		boolean opRemotePlus = bean[0].sendMessageBoolean(KKW00101SFConst.OP_REMOTE_PLUS, X31CWebConst.DATABEAN_GET_VALUE);
		// リモートサポートプラスが選択された場合のみ登録する。
		if (opRemotePlus)
		{
			/*-----------------------------------------------
			 * オプションサービス契約＜サポート＞登録（リモートサポートプラス用）
			 *-----------------------------------------------*/
			// オプションサービスコード
			parentMap.put("kk0391_op_svc_cd", JKKStrConst.OP_SVC_CD_RMTSPRT_PLUS); // B021（リモートサポートプラス）

			// 料金コースコード
			parentMap.put("kk0391_pcrs_cd", JKKStrConst.OPSVC_PCRS_RMTSPRT_PLUS); // B25（リモートサポートプラス）

			// 料金プランコード
			parentMap.put("kk0391_pplan_cd", JKKStrConst.OPSVC_PPLAN_RMTSPRT_PLUS); // PB2501（リモートサポートプラス　定額プラン）

			// SYSID
			parentMap.put("kk0391_sysid", sysid);

			// 異動区分
			parentMap.put("kk0391_ido_div", idoDiv);

			// 親契約識別コード
			parentMap.put("kk0391_oya_kei_skbt_cd", "01"); // 01（サービス契約）

			// 請求契約番号追加
			if(null != seikyKeiNo)
			{
				// 請求契約番号
				parentMap.put("kk0391_seiky_kei_no", seikyKeiNo);
			}
		}
		// ANK-3825-00-00 MOD START
//		boolean opPlcRental = bean[0].sendMessageBoolean(KKW00101SFConst.OP_PLC_RENTAL, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 光ＰＬＣアダプタレンタルリストを取得する(0:メッシュ、1:無線LAN中継機、2:申し込まない)
		X31SDataBeanAccess optionPlcRentalBean = dataBean.getDataBeanArray(KKW00101SFConst.OP_PLC_RENTAL_LIST).getDataBean(0);
		String plcRentalIndex = optionPlcRentalBean.sendMessageString(KKW00101SFConst.SELECT_CD_59, X31CWebConst.DATABEAN_GET_VALUE);
		
		// PLCアダプタが選択された場合のみ登録する。
//		if (opPlcRental)
		//宅内機器レンタルサービスの 1：無線LAN中継機を選択した場合
		if ("1".equals(plcRentalIndex))
		// ANK-3825-00-00 MOD END
		{
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（PLC1台目用）
			 *-----------------------------------------------*/
			HashMap <String, String> plcMap = new HashMap<String, String>();
			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					plcMap,
					JKKStrConst.CD00132_PLC,
// ANK-3529-00-00 MOD START
//					JKKStrConst.CD00134_PLC_RENT,
//					JKKStrConst.CD00565_PLC_RENT,
					JKKStrConst.CD00134_WLR_LAN,
					JKKStrConst.CD00565_WLR_LAN,
// ANK-3529-00-00 MOD END
					"kk0341_",
					mansionMap,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));

			// SYSID
			plcMap.put("kk0341_sysid", sysid);

			// 異動区分
			plcMap.put("kk0341_ido_div", idoDiv);

			// 請求契約番号追加
			if(null != seikyKeiNo)
			{
				// 請求契約番号
				plcMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			}
			
			// マンション物件番号
			plcMap.put("kk0341_mansion_bukken_no", JKKWebCommon.getMansionBukkenNo(mansionMap));

			kktkAddList.add(plcMap);

// ANK-3529-00-00 DEL START
//			/*-----------------------------------------------
//			 * 機器提供サービス契約登録（PLC2台目用）
//			 *-----------------------------------------------*/
//			kktkAddList.add(plcMap);
// ANK-3529-00-00 DEL END
		}
		// ANK-3825-00-00 ADD START
		//宅内機器レンタルサービスの 0：メッシュWi-Fiを選択した場合
		else if ("0".equals(plcRentalIndex))
		{
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（PLC1台目用）
			 *-----------------------------------------------*/
			HashMap <String, String> plcMap = new HashMap<String, String>();
			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					plcMap,
					JKKStrConst.CD00132_PLC,
					JKKStrConst.CD00134_MESH_WIFI,
					JKKStrConst.CD00565_MESH_WIFI,
					"kk0341_",
					mansionMap,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));

			// SYSID
			plcMap.put("kk0341_sysid", sysid);

			// 異動区分
			plcMap.put("kk0341_ido_div", idoDiv);

			// 請求契約番号追加
			if(null != seikyKeiNo)
			{
				// 請求契約番号
				plcMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			}
			
			// マンション物件番号
			plcMap.put("kk0341_mansion_bukken_no", JKKWebCommon.getMansionBukkenNo(mansionMap));

			kktkAddList.add(plcMap);
			
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（PLC2台目用）
			 *-----------------------------------------------*/
			
			kktkAddList.add(plcMap);
		}
		//ANK-3825-00-00 ADD END
		
		//スティック型STB
		if(bean[0].sendMessageBoolean(KKW00101SFConst.IP_STB_RENTAL, X31CWebConst.DATABEAN_GET_VALUE))
		{
			HashMap <String, String> ipStbMap = new HashMap<String, String>();
			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					ipStbMap,
					JKKStrConst.KKTK_SVC_CD_IP_STB,
					// IT1-2021-0000010 MOD START
					// JKKStrConst.CD00134_IP_STB,
					// JKKStrConst.CD00565_IP_STB,
					JKKStrConst.CD00134_SMP,
					JKKStrConst.CD00565_SMP,
					// IT1-2021-0000010 MOD END
					"kk0341_",
					mansionMap,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
			// SYSID
			ipStbMap.put("kk0341_sysid", sysid);

			// 異動区分
			ipStbMap.put("kk0341_ido_div", idoDiv);

			// 請求契約番号追加
			if(null != seikyKeiNo)
			{
				// 請求契約番号
				ipStbMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			}
			
			// マンション物件番号
			ipStbMap.put("kk0341_mansion_bukken_no", JKKWebCommon.getMansionBukkenNo(mansionMap));
			
			//スティックSTBご利用台数
			int ipStbUseCnt = Integer.parseInt(bean[0].sendMessageString(KKW00101SFConst.IP_STB_RENTAL_USE_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			for(int i = 0; i < ipStbUseCnt; i++)
			{
				kktkAddList.add(ipStbMap);
			}
			
			// ANK-3987-00-00 ADD START
			/*-----------------------------------------------
			 * 端末購入通知書情報
			 *-----------------------------------------------*/
			
			// 端末購入通知書情報登録
			HashMap <String, String> childMap = new HashMap<String, String>();
			
			// 端末購入通知書出力識別コード
			childMap.put("kk3271_tnmt_buy_tchisho_oput_skcd", JKKStrConst.CD01468_OUTPUT_NECESSARY); // 1（出力要）
			
			// 端末購入受付担当者名
			childMap.put("kk3271_tnmt_buy_uk_tntsha_nm",  bean[0].sendMessageString(KKW00101SFConst.SMP_TNMT_BUY_UK_TNTSHA_NM,
					X31CWebConst.DATABEAN_GET_VALUE));
			
			parentMap.put("tsho_add", childMap);
			// ANK-3987-00-00 ADD END

		}
		
		// 即割
		boolean isSokuwrib = bean[0].sendMessageBoolean(KKW00101SFConst.SOKUWRIB, X31CWebConst.DATABEAN_GET_VALUE);
		// 長割
		boolean chokzuwrib = bean[0].sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3412-05-00 ADD START
		// 高速割
		boolean isKosokuWrib = bean[0].sendMessageBoolean(KKW00101SFConst.KOSOKUWRI, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3412-05-00 ADD END
		ArrayList<String> addWribSvcCdList = new ArrayList<String>();
		if (!isMansion)
		{
			if (isSokuwrib)
			{
				// 即割を登録する
				addWribSvcCdList.add(JKKStrConst.WRIB_SVC_SOKU_WRIB);
			}
			else
			{
				// ANK-4468-00-00 ADD START
// ANK-4427-00-00 Modify START
//				if(!"A97".equals(pcourse) && !"A99".equals(pcourse))
				if(isEnabledChokiUseWrib(bean, pcourse))
// ANK-4427-00-00 Modify END
				{
				// ANK-4468-00-00 ADD END
				// 長期利用割引を登録する
				// ANK-4468-00-00 MOD START
				//addWribSvcCdList.add(JKKStrConst.WRIB_SVC_CHOKI_USE_WRIB);
					addWribSvcCdList.add(JKKStrConst.WRIB_SVC_CHOKI_USE_WRIB);
				// ANK-4468-00-00 MOD END
				// ANK-4468-00-00 ADD START
				}
				// ANK-4468-00-00 ADD END
			}

			String courseChoiceCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.COURSE_CHOICE_LIST,
																	KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
			if (JKKStrConst.CD00722_100ML.equals(courseChoiceCd))
			{
				// 100Mライトコース選択時
				chokzuwrib = false;
			}
			if (chokzuwrib)
			{
				// 長期継続利用割引を登録する
				addWribSvcCdList.add(JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB);
			}
			
			// ANK-3412-05-00 ADD START
			if (isKosokuWrib)
			{
				// 高速割を登録する
				addWribSvcCdList.add(JKKStrConst.WRIB_SVC_KOSOKU_WRIB);
			}
			// ANK-3412-05-00 ADD END
		}
		
		ArrayList<HashMap<String, Object>> wribAddList = new ArrayList<HashMap<String, Object>>();
		for(String wribSvcCd : addWribSvcCdList)
		{
			HashMap<String, Object> wribAddMap = new HashMap<String, Object>();

			/*-----------------------------------------------
			 * 割引サービス対象サービスコード一覧照会
			 *-----------------------------------------------*/
			// ＫＥＹ＿割引サービスコード
			wribAddMap.put("kk0451_key_wrib_svc_cd", wribSvcCd);
			
			// ＫＥＹ＿サービスコード
			wribAddMap.put("kk0451_key_svc_cd", svcCd);
			
			// ＫＥＹ＿料金グループコード
			wribAddMap.put("kk0451_key_prc_grp_cd", prcGrpCd);
			
			if(JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB.equals(wribSvcCd))
			{	// 長期継続利用割引
				
				// ＫＥＹ＿料金コースコード
				wribAddMap.put("kk0451_key_pcrs_cd", pcourse);
				
				// ＫＥＹ＿料金プランコード
				wribAddMap.put("kk0451_key_pplan_cd", pPlanCd);
			}
			
			/*-----------------------------------------------
			 * 割引サービス契約登録
			 *-----------------------------------------------*/
			// SYSID
			wribAddMap.put("kk0451_sysid", sysid);

			// 割引サービスコード
			wribAddMap.put("kk0451_wrib_svc_cd", wribSvcCd);

			// 即時適用フラグ
			wribAddMap.put("kk0451_aply_jun", "1");	// 1（する）

			// 異動区分
			wribAddMap.put("kk0451_ido_div", idoDiv);

			// 申込起算年月日 ← FormBeanの申込年月日（年）、申込年月日（月）、申込年月日（日）を設定
			wribAddMap.put("kk0451_mskm_kisan_ymd", mskmYmd);

			// 割引登録契機コード
			wribAddMap.put("kk0451_wrib_add_opty_cd", ADD_OPTY_CD_MANUAL);	// 2（手動設定）

			if(JKKStrConst.WRIB_SVC_CHOKI_KEIZK_USE_WRIB.equals(wribSvcCd))
			{	// 長期継続利用割引
				
				// 割引サービス契約自動継続識別コード
				if (bean[0].sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_AT_KEIZK_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE))
				{
					wribAddMap.put("kk0451_wrib_svc_kei_at_keizk_skcd", JKKStrConst.WRIB_SVC_KEI_AT_KEIZK_ARI);
				}
				else
				{
					wribAddMap.put("kk0451_wrib_svc_kei_at_keizk_skcd", JKKStrConst.WRIB_SVC_KEI_AT_KEIZK_NASHI);
				}
			}

			// 割引サービス対象契約明細
			ArrayList<HashMap<String, String>> wribAddDtlList = new ArrayList<HashMap<String, String>>();
			HashMap<String, String> wribAddDtlMap = new HashMap<String, String>();

			// 対象契約識別コード
			wribAddDtlMap.put("kk0451_tg_kei_skbt_cd", "01");	// 01（サービス契約）

			// 設定登録年月日
			wribAddDtlMap.put("kk0451_set_add_ymd", opeDate);

			// 割引サービス対象契約適用開始年月日
			wribAddDtlMap.put("kk0451_wrisvc_tg_kei_tstaymd", opeDate);

			// 割引サービス対象契約適用終了年月日
			wribAddDtlMap.put("kk0451_wrisvc_tg_kei_tendymd", END_YMD);
			
			wribAddDtlList.add(wribAddDtlMap);
			wribAddMap.put("kk0451_EKK0451D010CBSMsg1List", wribAddDtlList);

			wribAddList.add(wribAddMap);
		}
		parentMap.put("wrib_add_list", wribAddList);

		//
		// 割賦契約登録明細
		//
		ArrayList<HashMap<String, String>> kapAddList = new ArrayList<HashMap<String, String>>();

		//
		// 機器オプションサービス契約登録明細
		//
		ArrayList<HashMap<String, String>> kkopAddList = new ArrayList<HashMap<String, String>>();
		
		boolean tabletBuy = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_BUY, X31CWebConst.DATABEAN_GET_VALUE);
		// タブレット購入が選択された場合のみ登録する
		if (tabletBuy)
		{
			/*-----------------------------------------------
			 * 機器提供サービス契約登録（タブレット）
			 *-----------------------------------------------*/
			HashMap <String, String> tabletMap = new HashMap<String, String>();
			JKKWebCommon.getKktkSvcKeiIniData(bean[0],
					tabletMap,
					JKKStrConst.KKTK_SVC_CD_TABLET,
					JKKStrConst.CD00134_TABLET,
					JKKStrConst.CD00565_TABLET,
					"kk0341_",
					mansionMap,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));

			// SYSID
			tabletMap.put("kk0341_sysid", sysid);

			// 異動区分
			tabletMap.put("kk0341_ido_div", idoDiv);

			// 請求契約番号追加
			if(null != seikyKeiNo)
			{
				// 請求契約番号
				tabletMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			}

			// マンション物件番号
			tabletMap.put("kk0341_mansion_bukken_no", JKKWebCommon.getMansionBukkenNo(mansionMap));

			kktkAddList.add(tabletMap);

			
			HashMap <String, String> cradleMap = new HashMap<String, String>();
			String cradleTkniKkCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TABLET_TNMT_NM_LIST,
					KKW00101SFConst.TABLET_SELECT_CD_17, KKW00101SFConst.CRADLE_KIKI_MODEL_CD_LIST_17);

			//クレードルの宅内機器型式コードが空以外の場合のみ登録する。
			if(!"".equals(cradleTkniKkCd))
			{
				/*-----------------------------------------------
				 * 機器提供サービス契約登録（タブレット用クレードル）
				 *-----------------------------------------------*/

				JKKWebCommon.getKktkSvcKeiIniData(bean[0],
						cradleMap,
						JKKStrConst.KKTK_SVC_CD_TABLET_CRADLE,
						JKKStrConst.CD00134_TABLET_CRADLE,
						JKKStrConst.CD00565_TABLET_CRADLE,
						"kk0341_",
						mansionMap,
						JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));

				// SYSID
				cradleMap.put("kk0341_sysid", sysid);

				// 異動区分
				cradleMap.put("kk0341_ido_div", idoDiv);

				// 請求契約番号追加
				if(null != seikyKeiNo)
				{
					// 請求契約番号
					cradleMap.put("kk0341_seiky_kei_no", seikyKeiNo);
				}

				// マンション物件番号
				cradleMap.put("kk0341_mansion_bukken_no", JKKWebCommon.getMansionBukkenNo(mansionMap));

				kktkAddList.add(cradleMap);
			}

			HashMap <String, String> kapMap = new HashMap<String, String>();
			/*-----------------------------------------------
			 * 割賦契約登録
			 *-----------------------------------------------*/
			HashMap kksv007907scMap = (HashMap)mskmMap.get("KKSV007907SC");
			
			// 割賦プランコード
			kapMap.put("kk2541_kap_plan_cd", JKKWebCommon.getNetKapPlanCd(bean[0], kksv007907scMap));
			
			// ANK-3636-00-00 ADD START
			// 消費税増税対応の割賦プランコードの取得を行う
			// 変換後割賦プランコード
			String afKapPlanCd = getKapPlanCd(bean[0], kksv007907scMap);
			
			// getKapPlanCd()で変換後割賦プランコードを取得出る場合は割賦プランコードを上書きする
			if (!"".equals(afKapPlanCd))
			{
				// 割賦プランコードの上書き
				kapMap.put("kk2541_kap_plan_cd", afKapPlanCd);
			}
			// ANK-3636-00-00 ADD END

			// 異動区分
			kapMap.put("kk2541_ido_div", idoDiv);
			
			// 割賦支払い残回数
			kapMap.put("kk2541_kap_pay_zan_cnt", JKKWebCommon.getNetKapPayCnt(bean[0], kksv007907scMap));

			// 端末購入通知書出力識別コード
			kapMap.put("kk2541_tnmt_buy_tchisho_oput_skcd", JKKStrConst.CD01468_OUTPUT_NECESSARY); // 1（出力要）

			// 端末購入受付担当者名
			kapMap.put("kk2541_tnmt_buy_uk_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.TABLET_TNMT_BUY_UK_TNTSHA_NM,
					X31CWebConst.DATABEAN_GET_VALUE));

			kapAddList.add(kapMap);
			
			/*-----------------------------------------------
			 * 機器オプションサービス契約登録
			 *-----------------------------------------------*/
			boolean tabletTnmtComps = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_TNMT_COMPS, X31CWebConst.DATABEAN_GET_VALUE);
			
			// タブレット＿端末補償が選択された場合のみ登録する。
			if (tabletTnmtComps)
			{
				HashMap <String, String> kkopAddMap = new HashMap<String, String>();
			
				// 機器オプションサービスコード
				kkopAddMap.put("kk2811_kkop_svc_cd", JKKStrConst.KKOP_SVC_CD_TNMT_COMPS); // G03（端末補償）
				
				// 料金コースコード
				kkopAddMap.put("kk2811_pcrs_cd", JKKStrConst.CD00134_TABLET_TNMT_COMPS); // G05（【管理用】タブレット端末補償）
				
				// 料金プランコード
				kkopAddMap.put("kk2811_pplan_cd", JKKWebCommon.getNetTnmtCompsPlanCd(bean[0], kksv007907scMap));
				
				// SYSID
				kkopAddMap.put("kk2811_sysid", sysid);
				
				// 異動区分
				kkopAddMap.put("kk2811_ido_div", idoDiv);
				
				// 請求契約番号追加
				if(null != seikyKeiNo)
				{
					// 請求契約番号
					kkopAddMap.put("kk2811_seiky_kei_no", seikyKeiNo);
				}
				
				kkopAddList.add(kkopAddMap);
			
			}
		}
		parentMap.put("kktk_add_list", kktkAddList);
		parentMap.put("kap_add_list", kapAddList);
		parentMap.put("kkop_add_list", kkopAddList);

// ANK-4427-00-00 Modify START
//		ArrayList <HashMap<String, String>> opIspAddList = new ArrayList<HashMap<String, String>>();
		ArrayList <HashMap<String, Object>> opIspAddList = new ArrayList<HashMap<String, Object>>();
// ANK-4427-00-00 Modify START
		boolean tabletPremiumPack = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		// プレミアムパックが選択された場合のみ登録する。
		if (tabletPremiumPack)
		{
			/*-----------------------------------------------
			 * オプションサービス契約＜ISP＞登録（スマートリンクプレミアムパック用）
			 *-----------------------------------------------*/
// ANK-4427-00-00 Modify START
//			HashMap<String, String> opIspMap = new HashMap<String, String>();
			HashMap<String, Object> opIspMap = new HashMap<String, Object>();
// ANK-4427-00-00 Modify START

			// オプションサービスコード
			opIspMap.put("kk0361_op_svc_cd", JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM);

			// 料金コースコード
			opIspMap.put("kk0361_pcrs_cd", JKKStrConst.OPSVC_PCRS_SMARTLINK_PREMIUM);
			
			// 料金プランコード
			opIspMap.put("kk0361_pplan_cd", JKKStrConst.OPSVC_PPLAN_SMARTLINK_PREMIUM);
			
			// SYSID
			opIspMap.put("kk0361_sysid", sysid);
			
			// 異動区分
			opIspMap.put("kk0361_ido_div", idoDiv);
			
			// 親契約識別コード
			opIspMap.put("kk0361_oya_kei_skbt_cd", JKKStrConst.CD_DIV_OYAKEISKBTCD_SVCKEI);
			
			// 請求契約番号追加
			if(null != seikyKeiNo)
			{
				// 請求契約番号
				opIspMap.put("kk0361_seiky_kei_no", seikyKeiNo);
			}
			
			opIspAddList.add(opIspMap);
		}
// ANK-4427-00-00 ADD START
		// 
		// typeNのオプションを登録する
		// 
		if (BRAND_TYPE_TYPEN.equals(bean[0].sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE)) && 
				bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TEL_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// typeNの電話オプションを登録する
			opIspAddList.add(createTypeNTelOption(bean, sysid, idoDiv, seikyKeiNo));
		}
// ANK-4427-00-00 ADD END
		parentMap.put("op_isp_add_list", opIspAddList);

		// --------------------------
		// 回線対象サービス契約登録
		// --------------------------
		if (mskmMap != null)
		{
			HashMap kaisenTgSvcMap = (HashMap)mskmMap.get("KKSV007907CC");
			if (kaisenTgSvcMap != null)
			{
				ArrayList childList = null;
				childList = (ArrayList)kaisenTgSvcMap.get("mskm_svc_kei_ucwk_list");
				
				// 利用場所情報が取得出来た場合、サービス契約回線内訳番号を設定
				if (childList != null)
				{

					HashMap childMap = (HashMap)childList.get(0);

					// サービス契約回線内訳番号
					parentMap.put("kk0241_svc_kei_kaisen_ucwk_no", (String)childMap.get("kk0251_svc_kei_kaisen_ucwk_no"));
					
				}
			}
			
			// 別の回線(利用場所)を指定の場合は回線対象サービス契約登録は不要
			if ("1".equals(dataBean.sendMessageString(KKW00101SFConst.RIYO_KAISEN, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				parentMap.put("kk0241_svc_kei_kaisen_ucwk_no", null);
			}
		}
		
		
		outputMap.put("KKSV008007CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする（ｅｏ光ネットキャンセル）
	 * @param bean [0]：申込新規登録画面、[1]：共通
	 * @param outputMap データ出力先マップ
	 * @param func_code 機能コード
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008006CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap mskmMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		HashMap kksv007904CCMap = (HashMap)mskmMap.get("KKSV007904CC");

		HashMap childMap = new HashMap();
		//////////////////////////////////////
		// 割賦契約キャンセルリスト         //
		//////////////////////////////////////
		ArrayList kk2541_childList = new ArrayList();
		kk2541_childList = (ArrayList)kksv007904CCMap.get("kk2541_EKK2541B502CBSMsg1List");

		ArrayList kap_cancel_list = new ArrayList();

		if (kk2541_childList != null)
		{

			for (int i = 0; i < kk2541_childList.size(); i++)
			{
				HashMap kapCancelMap = new HashMap();
				childMap = (HashMap)kk2541_childList.get(i);

				// 割賦契約番号
				kapCancelMap.put("kk2541_kap_kei_no", (String)childMap.get("kk2541_kap_kei_no"));
				// 申込明細番号
				kapCancelMap.put("kk2541_mskm_dtl_no", (String)childMap.get("kk2541_mskm_dtl_no"));
				// 異動区分
				kapCancelMap.put("kk2541_ido_div", (String)childMap.get("kk2541_ido_div"));
				// 更新年月日時分秒(更新前)
				kapCancelMap.put("kk2541_upd_dtm_bf", (String)childMap.get("kk2541_last_upd_dtm"));

				kap_cancel_list.add(kapCancelMap);
			}
		}
		parentMap.put("kap_cancel_list", kap_cancel_list);

		//////////////////////////////////////
		// 割引サービス契約キャンセルリスト //
		//////////////////////////////////////
		ArrayList kk0451_childList = new ArrayList();
		kk0451_childList = (ArrayList)kksv007904CCMap.get("kk0451_EKK0451B030CBSMsg1List");

		ArrayList wrib_cancel_list = new ArrayList();

		if (kk0451_childList != null)
		{

			for (int i = 0; i < kk0451_childList.size(); i++)
			{
				HashMap wribCancelMap = new HashMap();
				childMap = (HashMap)kk0451_childList.get(i);

				// 割引サービス契約番号
				wribCancelMap.put("kk0451_wrib_svc_kei_no", childMap.get("kk0451_wrib_svc_kei_no"));
				// 申込明細番号
				wribCancelMap.put("kk0451_mskm_dtl_no", childMap.get("kk0451_mskm_dtl_no"));
				// サービスキャンセル理由コード
				wribCancelMap.put("kk0451_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 異動区分
				wribCancelMap.put("kk0451_ido_div", childMap.get("kk0451_ido_div"));
				// 割引解約キャンセル契機コード
				wribCancelMap.put("kk0451_wrib_dsl_cncl_opty_cd", ADD_OPTY_CD_MANUAL);
				// 更新年月日時分秒(更新前)
				wribCancelMap.put("kk0451_upd_dtm_bf", childMap.get("kk0451_last_upd_dtm"));

				wrib_cancel_list.add(wribCancelMap);
			}
		}

		parentMap.put("wrib_cancel_list", wrib_cancel_list);

		////////////////////////////////////////////////
		// 機器オプションサービス契約キャンセルリスト //
		////////////////////////////////////////////////
		ArrayList kk2811ChildList = new ArrayList();
		kk2811ChildList = (ArrayList)kksv007904CCMap.get("kk2811_EKK2811B502CBSMsg1List");

		ArrayList kkopCancelList = new ArrayList();

		if (kk2811ChildList != null)
		{
			for (int i = 0; i < kk2811ChildList.size(); i++)
			{
				HashMap kkopCancelMap = new HashMap();
				childMap = (HashMap)kk2811ChildList.get(i);
				
				// 機器オプションサービス契約番号
				kkopCancelMap.put("kk2811_kkop_svc_kei_no", childMap.get("kk2811_kkop_svc_kei_no"));
				// 申込明細番号
				kkopCancelMap.put("kk2811_mskm_dtl_no", childMap.get("kk2811_mskm_dtl_no"));
				// サービスキャンセル理由コード
				kkopCancelMap.put("kk2811_svc_cancel_rsn_cd", JKKStrConst.CD01390_CL_TEISE); // 取消（訂正）
				// 異動区分
				kkopCancelMap.put("kk2811_ido_div", getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
				// 更新年月日時分秒(更新前)
				kkopCancelMap.put("kk2811_upd_dtm_bf", childMap.get("kk2811_last_upd_dtm"));
				
				kkopCancelList.add(kkopCancelMap);
			}
		}

		parentMap.put("kkop_cancel_list", kkopCancelList);

		//////////////////////////
		// 機器キャンセルリスト //
		//////////////////////////
		ArrayList kk0341_childList = new ArrayList();
		kk0341_childList = (ArrayList)kksv007904CCMap.get("kk0341_EKK0341B508CBSMsg1List");

		ArrayList kktk_cancel_list = new ArrayList();

		if (kk0341_childList != null)
		{

			for (int i = 0; i < kk0341_childList.size(); i++)
			{
				HashMap kktkCancelMap = new HashMap();
				childMap = (HashMap)kk0341_childList.get(i);

				// 機器提供サービス契約番号（機器提供サービス契約）
				kktkCancelMap.put("kk0341_kktk_svc_kei_no", childMap.get("kk0341_kktk_svc_kei_no"));
				// 申込明細番号（機器提供サービス契約）
				kktkCancelMap.put("kk0341_mskm_dtl_no", childMap.get("kk0341_mskm_dtl_no"));
				// サービスキャンセル理由コード（機器提供サービス契約）
				kktkCancelMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 異動区分（機器提供サービス契約）
				kktkCancelMap.put("kk0341_ido_div", childMap.get("kk0341_ido_div"));
				// 更新年月日時分秒（更新前）（機器提供サービス契約）
				kktkCancelMap.put("kk0341_upd_dtm_bf", childMap.get("kk0341_last_upd_dtm"));

				kktk_cancel_list.add(kktkCancelMap);
			}
		}

		parentMap.put("kktk_cancel_list", kktk_cancel_list);

		////////////////////////////////
		// サブオプションサービス契約 //
		////////////////////////////////
		////////////////////////////
		// オプションサービス契約 //
		////////////////////////////
		ArrayList kk0401_childList = new ArrayList();
		kk0401_childList = (ArrayList)kksv007904CCMap.get("EKK0351B512CBSMsg1List");

		ArrayList op_cancel_list = new ArrayList();

		if (kk0401_childList != null)
		{
			// サブオプションサービス契約
			ArrayList<HashMap<String, String>> sbop_svc_kei_cancel_list = new ArrayList();
			for (int i = 0; i < kk0401_childList.size(); i++)
			{
				childMap = (HashMap)kk0401_childList.get(i);
				
				String kk0401OpSvcKeiNo = (String)childMap.get("kk0401_op_svc_kei_no");
				if (kk0401OpSvcKeiNo != null && !"".equals(kk0401OpSvcKeiNo))
				{
					HashMap sbopSvcKeiCancelMap = new HashMap();

					// オプションサービス契約番号
					sbopSvcKeiCancelMap.put("kk0401_op_svc_kei_no", childMap.get("kk0401_op_svc_kei_no"));
					// サブオプションサービス契約番号
					sbopSvcKeiCancelMap.put("kk0401_sbop_svc_kei_no", childMap.get("kk0401_sbop_svc_kei_no"));
					// 申込明細番号
					sbopSvcKeiCancelMap.put("kk0401_mskm_dtl_no", childMap.get("kk0401_mskm_dtl_no"));
					// サービスキャンセル理由コード
					sbopSvcKeiCancelMap.put("kk0401_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					sbopSvcKeiCancelMap.put("kk0401_ido_div", childMap.get("kk0401_ido_div"));
					// 更新年月日時分秒(更新前)
					sbopSvcKeiCancelMap.put("kk0401_upd_dtm_bf", childMap.get("kk0401_last_upd_dtm"));
					sbop_svc_kei_cancel_list.add(sbopSvcKeiCancelMap);
				}
			}

			// オプションサービス契約
			String kk0351OpSvcKeiNo = "";
			for (int i = 0; i < kk0401_childList.size(); i++)
			{
				childMap = (HashMap)kk0401_childList.get(i);
				if (kk0351OpSvcKeiNo.equals((String)childMap.get("kk0351_op_svc_kei_no")))
				{
					continue;
				}
				
				HashMap opCancelMap = new HashMap();
				ArrayList sbop_cancel_list = new ArrayList();
				
				// オプションサービス契約番号（オプションサービス契約）
				kk0351OpSvcKeiNo = (String)childMap.get("kk0351_op_svc_kei_no");
				opCancelMap.put("kk0351_op_svc_kei_no", kk0351OpSvcKeiNo);
				// 申込明細番号（オプションサービス契約）
				opCancelMap.put("kk0351_mskm_dtl_no", childMap.get("kk0351_mskm_dtl_no"));
				// サービスキャンセル理由コード（オプションサービス契約）
				opCancelMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 異動区分（オプションサービス契約）
				opCancelMap.put("kk0351_ido_div", childMap.get("kk0351_ido_div"));
				// 更新年月日時分秒（更新前）（オプションサービス契約）
				opCancelMap.put("kk0351_upd_dtm_bf", childMap.get("kk0351_last_upd_dtm"));
				
				// サブオプション契約キャンセル明細
				for (HashMap<String, String> mp : sbop_svc_kei_cancel_list)
				{
					if (kk0351OpSvcKeiNo.equals((String)mp.get("kk0401_op_svc_kei_no")))
					{
						sbop_cancel_list.add(mp);
					}
				}
				opCancelMap.put("sbop_cancel_list", sbop_cancel_list);
				
				op_cancel_list.add(opCancelMap);
			}
		}
		parentMap.put("op_cancel_list", op_cancel_list);

		ArrayList ekk0021B502_childList = new ArrayList();
		ekk0021B502_childList = (ArrayList)kksv007904CCMap.get("EKK0021B502CBSMsg1List");

		if (ekk0021B502_childList != null)
		{
			childMap = (HashMap)ekk0021B502_childList.get(0);
		}

		////////////////////////////////
		// サービス契約内訳キャンセル //
		////////////////////////////////
		// サービス契約内訳番号
		parentMap.put("kk0161_svc_kei_ucwk_no", childMap.get("kk0161_svc_kei_ucwk_no"));
		// 申込明細番号
		parentMap.put("kk0161_mskm_dtl_no", childMap.get("kk0161_mskm_dtl_no"));
		// サービスキャンセル理由コード
		parentMap.put("kk0161_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
		// 異動区分
		parentMap.put("kk0161_ido_div", childMap.get("kk0161_ido_div"));
		// 更新年月日時分秒(更新前)
		parentMap.put("kk0161_upd_dtm_bf", childMap.get("kk0161_last_upd_dtm"));

		//////////////////
		// サービス契約 //
		//////////////////
		// サービス契約番号
		parentMap.put("kk0081_svc_kei_no", childMap.get("kk0081_svc_kei_no"));
		// 申込明細番号
		parentMap.put("kk0081_mskm_dtl_no", childMap.get("kk0081_mskm_dtl_no"));
		// サービスキャンセル理由コード
		parentMap.put("kk0081_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
		// 異動区分
		parentMap.put("kk0081_ido_div", childMap.get("kk0081_ido_div"));
		// 更新年月日時分秒(更新前)
		parentMap.put("kk0081_upd_dtm_bf", childMap.get("kk0081_last_upd_dtm"));

		//////////////
		// 申込明細 //
		//////////////
		// 申込明細番号
		parentMap.put("kk0021_mskm_dtl_no", childMap.get("kk0021_mskm_dtl_no"));
		// 申込明細キャンセル理由コード(内容修正のため)
		parentMap.put("kk0021_mskm_dtl_cancel_rsn_cd", JKKStrConst.CD01254_20);
		// 申込明細キャンセル理由メモ
		parentMap.put("kk0021_mskm_dtl_cancel_rsn_memo", childMap.get("kk0021_mskm_dtl_cancel_rsn_memo"));
		// 更新年月日時分秒(更新前)
		parentMap.put("kk0021_upd_dtm_bf", childMap.get("kk0021_last_upd_dtm"));

		outputMap.put("KKSV008006CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする（eo光TVキャンセル）
	 * @param bean [0]：申込新規登録画面
	 * @param outputMap データ出力先マップ
	 * @param func_code 機能コード
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDate 運用年月日
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008015CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap mskmMap,
			String opeDate) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		HashMap kksv007906CCMap = (HashMap)mskmMap.get("KKSV007906CC");

		// 異動区分
		String idoDiv = getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		//////////////
		// 申込明細 //
		//////////////
		// 申込明細番号（申込明細キャンセル）
		parentMap.put("kk0021_mskm_dtl_no", kksv007906CCMap.get("kk0021_mskm_dtl_no"));
		// 申込明細キャンセル理由コード（申込明細キャンセル）
		parentMap.put("kk0021_mskm_dtl_cancel_rsn_cd", JKKStrConst.CD01254_20);
		// 申込明細キャンセル理由メモ（申込明細キャンセル）
		parentMap.put("kk0021_mskm_dtl_cancel_rsn_memo", kksv007906CCMap.get("kk0021_mskm_dtl_cancel_rsn_memo"));
		// 更新年月日時分秒(更新前)（申込明細キャンセル）
		parentMap.put("kk0021_upd_dtm_bf", kksv007906CCMap.get("kk0021_last_upd_dtm"));

		//////////////////
		// サービス契約 //
		//////////////////
		// サービス契約番号(サービス契約キャンセル)
		parentMap.put("kk0081_svc_kei_no", kksv007906CCMap.get("kk0081_svc_kei_no"));
		// 申込明細番号(サービス契約キャンセル)
		parentMap.put("kk0081_mskm_dtl_no", kksv007906CCMap.get("kk0081_mskm_dtl_no"));
		// サービスキャンセル理由コード(サービス契約キャンセル)
		parentMap.put("kk0081_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
		// 異動区分(サービス契約キャンセル)
		parentMap.put("kk0081_ido_div", kksv007906CCMap.get("kk0081_ido_div"));
		// 更新年月日時分秒(更新前)(サービス契約キャンセル)
		parentMap.put("kk0081_upd_dtm_bf", kksv007906CCMap.get("kk0081_last_upd_dtm"));

		////////////////////////////
		// オプションサービス契約 //
		////////////////////////////
		// オプションサービス契約番号（オプションサービス契約）
		parentMap.put("kk0351_op_svc_kei_no", kksv007906CCMap.get("kk0351_op_svc_kei_no"));
		// 申込明細番号（オプションサービス契約）
		parentMap.put("kk0351_mskm_dtl_no", kksv007906CCMap.get("kk0351_mskm_dtl_no"));
		// サービスキャンセル理由コード（オプションサービス契約）
		parentMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
		// 異動区分（オプションサービス契約）
		parentMap.put("kk0351_ido_div", kksv007906CCMap.get("kk0351_ido_div"));
		// 更新年月日時分秒（更新前）（オプションサービス契約）
		parentMap.put("kk0351_upd_dtm_bf", kksv007906CCMap.get("kk0351_last_upd_dtm"));

		//////////////////////
		// サービス契約内訳 //
		//////////////////////
		ArrayList kk0161_childList = new ArrayList();
		kk0161_childList = (ArrayList)kksv007906CCMap.get("svc_kei_ucwk_list");
		HashMap childMap = new HashMap();

		if (kk0161_childList != null)
		{
			ArrayList svc_kei_ucwk_list = new ArrayList();

			for (int i = 0; i < kk0161_childList.size(); i++)
			{
				HashMap svcKeiUcwkMap = new HashMap();
				childMap = (HashMap)kk0161_childList.get(i);

				// サービス契約内訳番号（サービス契約内訳）
				svcKeiUcwkMap.put("kk0161_svc_kei_ucwk_no", childMap.get("kk0161_svc_kei_ucwk_no"));
				// 申込明細番号(サービス契約内訳)
				svcKeiUcwkMap.put("kk0161_mskm_dtl_no", childMap.get("kk0161_mskm_dtl_no"));
				// サービスキャンセル理由コード（サービス契約内訳）
				svcKeiUcwkMap.put("kk0161_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 異動区分（サービス契約内訳）
				svcKeiUcwkMap.put("kk0161_ido_div", childMap.get("kk0161_ido_div"));
				// 更新年月日時分秒（更新前）（サービス契約内訳）
				svcKeiUcwkMap.put("kk0161_upd_dtm_bf", childMap.get("kk0161_last_upd_dtm"));

				svc_kei_ucwk_list.add(svcKeiUcwkMap);
			}

			parentMap.put("svc_kei_ucwk_list", svc_kei_ucwk_list);
		}

		//////////////////////////
		// 機器提供サービス契約 //
		//////////////////////////
		ArrayList<HashMap<String, Object>> kk0341_childList = new ArrayList<HashMap<String, Object>>();
		ArrayList<HashMap<String, Object>> kktkSvcKeiCancelList = null;
		// STB
		kk0341_childList = (ArrayList<HashMap<String, Object>>)kksv007906CCMap.get("kktk_svc_kei_list");
		if (kk0341_childList != null)
		{
			kktkSvcKeiCancelList = setTvkikiData(kk0341_childList);
		}
		parentMap.put("kktk_svc_kei_cancel_list", kktkSvcKeiCancelList);
		
		// B-CAS
		kk0341_childList = (ArrayList<HashMap<String, Object>>)kksv007906CCMap.get("bcas_kktk_svc_kei_list");
		if (kk0341_childList != null)
		{
			kktkSvcKeiCancelList = setTvkikiData(kk0341_childList);
		}
		parentMap.put("bcas_kktk_svc_kei_cancel_list", kktkSvcKeiCancelList);
		
		// C-CAS
		kk0341_childList = (ArrayList<HashMap<String, Object>>)kksv007906CCMap.get("ccas_kktk_svc_kei_list");
		if (kk0341_childList != null)
		{
			kktkSvcKeiCancelList = setTvkikiData(kk0341_childList);
		}
		parentMap.put("ccas_kktk_svc_kei_cancel_list", kktkSvcKeiCancelList);
		
		// スターチャンネルセット
		HashMap<String, Object> starChannelSetMap = getStarChannelSetMap(kksv007906CCMap);
		if (null != starChannelSetMap)
		{
			HashMap<String, Object> dataMap = new HashMap<String, Object>();
			
			// SYSID
			dataMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID,
					X31CWebConst.DATABEAN_GET_VALUE));
			// サービス契約番号
			dataMap.put("svc_kei_no", kksv007906CCMap.get("kk0081_svc_kei_no"));
			// 申込明細番号
			dataMap.put("mskm_dtl_no", kksv007906CCMap.get("kk0021_mskm_dtl_no"));
			// サービスキャンセル理由コード
			dataMap.put("svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
			// 起算日
			dataMap.put("kisan_ymd", opeDate);
			// 異動区分
			dataMap.put("ido_div", idoDiv);
			// 更新年月日時分秒（更新前）
			dataMap.put("kk0081_upd_dtm", starChannelSetMap.get("kk0451_last_upd_dtm"));
			
			parentMap.put("cnclStarChannelSetMap", dataMap);
		}
		
		// 申込時登録不可契約予約変更
		if (null != starChannelSetMap)
		{
			ArrayList<HashMap<String, Object>> updMkjAddfKeiRvList = new ArrayList<HashMap<String, Object>>();
			
			ArrayList<HashMap<String, Object>> mkjAddfKeiRvList = (ArrayList<HashMap<String, Object>>)kksv007906CCMap.get("kk2931_EKK2931B501CBSMsg1List");
			if (null != mkjAddfKeiRvList)
			{
				for (HashMap<String, Object> mkjAddfKeiRvMap : mkjAddfKeiRvList)
				{
					if (!JKKStrConst.OP_SVC_CD_STCH_BSPT.equals(mkjAddfKeiRvMap.get("kk2931_op_svc_cd")))
					{
						continue;
					}
					
					HashMap<String, Object> dataMap = new HashMap<String, Object>();
					
					// 申込時登録不可契約予約番号
					dataMap.put("kk2931_mkj_addf_kei_rv_no", mkjAddfKeiRvMap.get("kk2931_mkj_addf_kei_rv_no"));
					// 予約契約数
					dataMap.put("kk2931_rsv_kei_cnt", mkjAddfKeiRvMap.get("kk2931_rsv_kei_cnt"));
					// 申込時登録不可契約予約反映年月日
					dataMap.put("kk2931_mkj_addf_kei_rv_hanei_ymd", mkjAddfKeiRvMap.get("kk2931_mkj_addf_kei_rv_hanei_ymd"));
					// 申込時登録不可契約予約取消年月日
					dataMap.put("kk2931_mkj_addf_kei_rv_cl_ymd", opeDate);
					// 更新年月日時分秒(更新前)
					dataMap.put("kk2931_upd_dtm_bf", mkjAddfKeiRvMap.get("kk2931_last_upd_dtm"));
					
					updMkjAddfKeiRvList.add(dataMap);
				}
			}
			
			parentMap.put("updMkjAddfKeiRvList", updMkjAddfKeiRvList);
		}

		outputMap.put("KKSV008015CC", parentMap);

		return outputMap;
	}

	/**
	 * テレビキャンセルの機器提供サービス契約共通マッピング
	 * <p>テレビキャンセルの機器提供サービス契約で設定する項目のマッピングを行う</p>
	 * @param kk0341_childList
	 * @return 機器のキャンセルリスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap<String, Object>> setTvkikiData(ArrayList<HashMap<String, Object>> kk0341_childList)
	{
		HashMap kikiSvcMap = null;
		ArrayList<HashMap<String, Object>> kikiDataList = new ArrayList<HashMap<String, Object>>();
		
		for (HashMap<String, Object> childMap : kk0341_childList)
		{
			kikiSvcMap = new HashMap<String, Object>();

			// 機器提供サービス契約番号（機器提供サービス契約）
			kikiSvcMap.put("kk0341_kktk_svc_kei_no", childMap.get("kk0341_kktk_svc_kei_no"));
			// 申込明細番号（機器提供サービス契約）
			kikiSvcMap.put("kk0341_mskm_dtl_no", childMap.get("kk0341_mskm_dtl_no"));
			// サービスキャンセル理由コード（機器提供サービス契約）
			kikiSvcMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
			// 異動区分（機器提供サービス契約）
			kikiSvcMap.put("kk0341_ido_div", childMap.get("kk0341_ido_div"));
			// 更新年月日時分秒（更新前）（機器提供サービス契約）
			kikiSvcMap.put("kk0341_upd_dtm_bf", childMap.get("kk0341_last_upd_dtm"));
			
			kikiDataList.add(kikiSvcMap);
		}
		
		return kikiDataList;
	}

	/**
	 * 上りマッピングをする
	 * @param   bean      [0]：申込新規登録画面、[1]：共通
	 * @param   outputMap 登録データ
	 * @param   func_code 機能コード
	 * @param   opeDateTimeStamp 運用日付時分秒(ミリ秒)
	 * @param   mskmButtonCode 1：登録、2：申請、3：本申込み
	 * @param   mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param   svcKeiUpdFlgs サービス契約視点での登録更新フラグ
	 * @return  登録データ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008001SC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			String opeDateTimeStamp,
			String mskmButtonCode,
			HashMap mskmMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String opeDateTime = opeDateTimeStamp.substring(0, 14);

		// 共通フォームBeanから権限リストを取得
		X31SDataBeanAccessArray kggrpCdList = bean[1].getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
		// 共通フォームBeanからユーザーIDを取得
		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		// 共通フォームBeanからユーザー名を取得
		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 権限リストの2レコード目を取得
		X31SDataBeanAccess beanKggrpCdList2 = kggrpCdList.getDataBean(1);

		// 権限リストの2レコード目から組織CDを取得
		String wkkbtOrgCd = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		wkkbtOrgCd = shiteiSizeUmkm(wkkbtOrgCd, "0", 10);
		// 権限リストの2レコード目から組織名を取得
		String wkkbtOrgNm = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 実行フラグ(履歴対応)
		parentMap.put("history_flg", RUN_FLG);

		// 対応ユーザーID
		parentMap.put("taio_user_id", bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE));
		// 問合せ客番号
		parentMap.put("proscst_no", "");
		// MYBOX格納年月日時分秒
		parentMap.put("mybox_kakno_dtm",  opeDateTime);
		// 対応開始年月日時分秒
		parentMap.put("taio_sta_dtm", opeDateTime);
		// 問合せ受付種別コード
		parentMap.put("toiawase_uk_sbt_cd", TORK_TOIAWASE_UK_SBT_CD_OTHER);
		// 簡易メモ
		parentMap.put("easy_memo", "");
		// タイトル
		parentMap.put("title", JKKWebCommon.getTorkTitle(bean[0], svcKeiUpdFlgs, SINSEI, null, null));
		// 受付年月日時分秒
		parentMap.put("uk_dtm", opeDateTime);
		// 一時保存有無
		parentMap.put("tmp_save_um", TORK_TMP_SAVE_UM);
		// コールバック希望年月日
		parentMap.put("callbk_kibo_ymd", "");
		// コールバック希望時間
		parentMap.put("callbk_kibo_time", "");
		// コールバック時間指定タイプコード
		parentMap.put("callbk_shitei_type_cd", "");
		// ログインユーザーID
		parentMap.put("login_user_id", userId);
		// ログインユーザー名
		parentMap.put("login_user_nm", userNm);
		// 業務個別設定組織コード
		parentMap.put("wkkbt_org_cd", wkkbtOrgCd);
		// 業務個別設定組織名
		parentMap.put("wkkbt_org_nm", wkkbtOrgNm);

		// 申込書番号
		// 更新時にタイトルに使用するため修正
		parentMap.put("mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV008001SC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param   bean      [0]：申込新規登録画面、[1]：共通
	 * @param   outputMap 登録データ
	 * @param   func_code 機能コード
	 * @param   opeDateTimeStamp 運用日付時分秒(ミリ秒)
	 * @return  登録データ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008002SC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			String opeDateTimeStamp) throws Exception
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String opeDateTime = opeDateTimeStamp.substring(0, 14);

		// 共通フォームBeanから権限リストを取得
		X31SDataBeanAccessArray kggrpCdList = bean[1].getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
		// 共通フォームBeanからユーザーIDを取得
		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		// 共通フォームBeanからユーザー名を取得
		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 権限リストの2レコード目を取得
		X31SDataBeanAccess beanKggrpCdList2 = kggrpCdList.getDataBean(1);

		// 権限リストの2レコード目から組織CDを取得
		String wkkbtOrgCd = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		wkkbtOrgCd = shiteiSizeUmkm(wkkbtOrgCd, "0", 10);
		// 権限リストの2レコード目から組織名を取得
		String wkkbtOrgNm = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// アクション開始年月日時分秒
		parentMap.put("action_sta_dtm", opeDateTime);
		// アクション完了年月日時分秒
		parentMap.put("action_fin_dtm", opeDateTime);
		// 対応ユーザーID
		parentMap.put("taio_user_id", userId);
		// クローズ不可コード
		parentMap.put("close_fail_cd", TORK_CLOSE_FAIL_CD_FAIL);
		// ログインユーザーID
		parentMap.put("login_user_id", userId);
		// ログインユーザー名
		parentMap.put("login_user_nm", userNm);
		// 業務個別設定組織コード
		parentMap.put("wkkbt_org_cd", wkkbtOrgCd);
		// 業務個別設定組織名
		parentMap.put("wkkbt_org_nm", wkkbtOrgNm);

		outputMap.put("KKSV008002SC", parentMap);
	
		return outputMap;
	}

	/**
	 * 上りマッピングをする
	 * @param   bean      [0]：申込新規登録画面、[1]：共通
	 * @param   outputMap 登録データ
	 * @param   func_code 機能コード
	 * @return  登録データ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008021CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code) throws Exception
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		// 共通フォームBeanから権限リストを取得
		X31SDataBeanAccessArray kggrpCdList = bean[1].getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
		// 共通フォームBeanからユーザーIDを取得
		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		// 共通フォームBeanからユーザー名を取得
		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 権限リストの2レコード目を取得
		X31SDataBeanAccess beanKggrpCdList2 = kggrpCdList.getDataBean(1);

		// 権限リストの2レコード目から組織CDを取得
		String wkkbtOrgCd = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		wkkbtOrgCd = shiteiSizeUmkm(wkkbtOrgCd, "0", 10);
		// 権限リストの2レコード目から組織名を取得
		String wkkbtOrgNm = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
		HashMap<String, Object> rspCtgrListMap = new HashMap<String, Object>();

		// 対応記録内訳番号
		rspCtgrListMap.put("taio_kirok_ucwk_no", TORK_TAIO_KIROK_UCWK_NO);
		// 問合せ応対区分
		rspCtgrListMap.put("toiawase_rsp_div", TORK_TOIAWASE_RSP_DIV_TOIAWASE);
		// お客様の声
		rspCtgrListMap.put("cust_koe", "");
		// ＣＳＲの声
		rspCtgrListMap.put("csr_koe", "");
		// 表示順序
		rspCtgrListMap.put("dsp_jun", TORK_DSP_JUN);
		// 対応記録内訳抽出ワーク作成区分
		rspCtgrListMap.put("tiokr_uw_cst_wk_add_div", TORK_TIOKR_UW_CST_WK_DIV_TAIO);
		// 編集状態フラグ
		rspCtgrListMap.put("henshu_stat_flg", TORK_HENSHU_STAT_FLG_FIN);

		ArrayList<HashMap<String, Object>> uwCtgrnList = new ArrayList<HashMap<String, Object>>();

		for (int j = 0; j < TORK_CTGR_LV_MSKM_TEL.length; j++)
		{
			
			HashMap<String, Object> uwCtgrnMap = new HashMap<String, Object>();

			// 対応記録内訳番号
			uwCtgrnMap.put("taio_kirok_ucwk_no", TORK_TAIO_KIROK_UCWK_NO);
			// 対応記録内訳カテゴリー → 対応記録ホットボイスマップ.応対区分リスト.カテゴリーＮレベル
			uwCtgrnMap.put("taiokrk_uw_ctgr_lv", TORK_CTGR_LV_MSKM_TEL[j]);

			// 上位連結カテゴリー名
			if (TORK_TAIOKRK_UW_CTGR_LV1.equals(TORK_CTGR_LV_MSKM_TEL[j]))
			{
				// レベル１の場合、業務個別設定組織コードを設定
				uwCtgrnMap.put("joi_rnkt_ctgr_nm", wkkbtOrgCd);
			}
			else
			{
				// レベル１以外の場合、前空白埋めで160バイトの固定長で上位のカテゴリー名を設定
				uwCtgrnMap.put("joi_rnkt_ctgr_nm", shiteiSizeUmkm(COPE_HISTORY_CTGR_NM_MSKM_TEL[j - 1], " ", 160));
			}

			// 下位のカテゴリーが存在するか
			if (TORK_TAIOKRK_UW_CTGR_LV2.equals(TORK_CTGR_LV_MSKM_TEL[j]))
			{
				// レベル４の場合、下位カテゴリーは存在しない
				uwCtgrnMap.put("kai_ctgr_um", COPE_HISTORY_KAI_CTGR_UM_OFF);
			}
			else
			{
				// 下位カテゴリーが存在する。
				uwCtgrnMap.put("kai_ctgr_um", COPE_HISTORY_KAI_CTGR_UM_ON);
			}

			// 対応記録内訳カテゴリー名
			uwCtgrnMap.put("taiokrk_uw_ctgr_nm", COPE_HISTORY_CTGR_NM_MSKM_TEL[j]);
			// クローズ不可コード
			uwCtgrnMap.put("close_fail_cd", TORK_CLOSE_FAIL_CD_FAIL);
			// 編集状態フラグ
			uwCtgrnMap.put("henshu_stat_flg", TORK_HENSHU_STAT_FLG_FIN);
			// ログインユーザーID
			uwCtgrnMap.put("login_user_id", userId);
			// ログインユーザー名
			uwCtgrnMap.put("login_user_nm", userNm);
			// 業務個別設定組織コード
			uwCtgrnMap.put("wkkbt_org_cd", wkkbtOrgCd);
			// 業務個別設定組織名
			uwCtgrnMap.put("wkkbt_org_nm", wkkbtOrgNm);
			// 処理済フラグ
			uwCtgrnMap.put("syrzm_flg", COPE_HISTORY_SYRZM_FLG_MI_TRN);

			uwCtgrnList.add(uwCtgrnMap);
		}

		rspCtgrListMap.put("UW_CTGRN_List", uwCtgrnList);
		list.add(rspCtgrListMap);

		parentMap.put("RSP_CTGR_List", list);

		outputMap.put("ADDHOTVOICCC", parentMap);

		return outputMap;

	}

	/**
	 * 上りマッピングをする
	 * @param   bean      [0]：申込新規登録画面、[1]：共通
	 * @param   outputMap 登録データ
	 * @param   func_code 機能コード
	 * @param   opeDateTimeStamp 運用日付時分秒(ミリ秒)
	 * @return  登録データ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008003SC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			String opeDateTimeStamp) throws Exception
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}

		String opeDateTime = opeDateTimeStamp.substring(0, 14);

		// 共通フォームBeanから権限リストを取得
		X31SDataBeanAccessArray kggrpCdList = bean[1].getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
		// 共通フォームBeanからユーザーIDを取得
		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
		// 共通フォームBeanからユーザー名を取得
		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);

		// 権限リストの2レコード目を取得
		X31SDataBeanAccess beanKggrpCdList2 = kggrpCdList.getDataBean(1);

		// 権限リストの2レコード目から組織CDを取得
		String wkkbtOrgCd = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
		wkkbtOrgCd = shiteiSizeUmkm(wkkbtOrgCd, "0", 10);
		// 権限リストの2レコード目から組織名を取得
		String wkkbtOrgNm = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 対応ユーザーID
		parentMap.put("taio_user_id", userId);
		// キューBOX番号
		parentMap.put("que_box_no", getQueBoxNo(bean[0]));
		// キューBOX格納年月日時分秒
		parentMap.put("que_box_kakno_dtm", opeDateTime);
		// アクション開始年月日時分秒
		parentMap.put("action_sta_dtm", opeDateTime);
		// アクション完了年月日時分秒
		parentMap.put("action_fin_dtm", opeDateTime);
		// ログインユーザーID
		parentMap.put("login_user_id", userId);
		// ログインユーザー名
		parentMap.put("login_user_nm", userNm);
		// 業務個別設定組織コード
		parentMap.put("wkkbt_org_cd", wkkbtOrgCd);
		// 業務個別設定組織名
		parentMap.put("wkkbt_org_nm", wkkbtOrgNm);
		// エスカレーション先業務個別設定組織コード
		parentMap.put("escla_saki_wkso_cd", getEscleSakiWksoCd(bean[0]));

		outputMap.put("KKSV008003SC", parentMap);
	
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param   bean      [0]：申込新規登録画面
	 * @param   outputMap 登録データ
	 * @param   func_code 機能コード
	 * @return  登録データ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008007SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// ＫＥＹ＿キューBOX番号
		parentMap.put("key_que_box_no", getQueBoxNo(bean[0]));

		outputMap.put("KKSV008007SC", parentMap);
	
		return outputMap;
	}
	
	/**
	 * 上りマッピングをする
	 * @param   bean      [0]：申込新規登録画面
	 * @param   outputMap 登録データ
	 * @param   func_code 機能コード
	 * @return  登録データ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008008SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// ＫＥＹ＿業務個別設定組織コード
		parentMap.put("key_wkkbt_org_cd", getEscleSakiWksoCd(bean[0]));

		outputMap.put("KKSV008008SC", parentMap);
	
		return outputMap;
	}
	
	/**
	 * キューBOX番号を取得します。
	 * <br/>
	 * @param bean サービスフォームBean
	 * @return キューBOX番号
	 */
	private String getQueBoxNo(X31SDataBeanAccess bean)
	{
		// 申込内訳コードによってキューBOX番号を判断する
		String mskmUcwkCD = JKKWebCommon.convertCode(bean, KKW00101SFConst.MSKM_UCWK_CD,
				KKW00101SFConst.MSKM_UCWK_CD_11, KKW00101SFConst.MSKM_UCWK_CD_LIST_11);
		if (JKKStrConst.RYOHNTN_AGENCY_UK.equals(mskmUcwkCD))
		{
			return JCMAPLConstMgr.getString(PROP_QUE_BOX_NO_INFO_RYOHAN);
		}
		
		return JCMAPLConstMgr.getString(PROP_QUE_BOX_NO_INFO);
	}
	
	/**
	 * エスカレーション先業務個別設定組織コードを取得します。
	 * <br/>
	 * @param bean サービスフォームBean
	 * @return エスカレーション先業務個別設定組織コード
	 */
	private String getEscleSakiWksoCd(X31SDataBeanAccess bean)
	{
		// 申込内訳コードによってキューBOX番号を判断する
		String mskmUcwkCD = JKKWebCommon.convertCode(bean, KKW00101SFConst.MSKM_UCWK_CD,
				KKW00101SFConst.MSKM_UCWK_CD_11, KKW00101SFConst.MSKM_UCWK_CD_LIST_11);
		if (JKKStrConst.RYOHNTN_AGENCY_UK.equals(mskmUcwkCD))
		{
			return JCMAPLConstMgr.getString(PP_ES_WKSO_CD_INFO_RYOHAN);
		}
		
		return JCMAPLConstMgr.getString(PP_ESCLA_SAKI_WKSO_CD_INFO);
	}

	/**
	 * 上りマッピングをする（割引サービス契約自動登録）
	 * @param bean [0]：申込新規登録画面
	 * @param outputMap データ出力先マップ
	 * @param opeDate　オンライン運用日付
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008028CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String opeDate) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		// 機能コード（チェックのみ）
		parentMap.put("func_code", null);
		// 実行フラグ
		parentMap.put("fami_flg", "1");
		// ＫＥＹ＿割引タイプコード
		parentMap.put("key_wrib_type_cd", "20");
		// 割引サービスコード
		parentMap.put("wrib_svc_cd", "W00000006");
		// 割引サービス対象サービスコード	
		parentMap.put("wrib_svc_trgt_svc_cd", JKKKeiNewCmnLogicUtil.WRIB_TRGT_SVC_FAMIPA_HOME);
		// 予約適用年月日
		parentMap.put("rsv_aply_ymd", opeDate);
		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		if ("1".equals(mskmFlg))
		{
			// 新規申込の場合
			parentMap.put("ido_div", "00001"); // 00001（新規契約）
		}
		else
		{
			// 新規申込以外の場合
			parentMap.put("ido_div", "00002"); // 00002（サービス追加）
		}
		// 要求種別コード（新規）
		parentMap.put("yokyu_sbt_cd", "02");
		// 料金コースコード
		parentMap.put("pcrs_cd", JFUStrConst.CD00134_F01);
		// 料金プランコード
		parentMap.put("pplan_cd", JFUStrConst.CD00565_PF0101);
		outputMap.put("KKSV008028CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする（支払方法登録）
	 * @param bean         [0]：申込新規登録画面
	 * @param outputMap    出力マップ
	 * @param func_code    機能コード
	 * @param opeDate      オンライン運用日付
	 * @param mskmFlagMap  申込フラグマップ
	 * @param mansionMap   マンション情報マップ
	 * @return 支払方法登録マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008005CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			String opeDate,
			HashMap mskmFlagMap,
			HashMap mansionMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		String sohusAdCd = "";
		String pcdBf = "";
		String pcdAf = "";
		String manInputFlg = "";
		String stateNm = "";
		String cityNm = "";
		String oaztsuNm = "";
		String azchoNm = "";
		String bnchigo = "";
		String adrttm = "";
		String adrrm = "";
		String shsKana = "";
		String sohusNm = "";

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 運用日付
		parentMap.put("ope_date", opeDate);

		// 請求締結年月日
		parentMap.put("kei_cnc_ymd", opeDate);

		// ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));

		boolean isSohus = (mskmFlagMap.containsKey("mskm_shomen_flag")
								&& (Boolean)mskmFlagMap.get("mskm_shomen_flag") 
								&& PAYWAY_ARIV_CD_ARIV.equals(bean[0].sendMessageString(KKW00101SFConst.PAYWAY_ARIV, X31CWebConst.DATABEAN_GET_VALUE)))
							|| mskmFlagMap.containsKey("adsl_shomen_flag")
							&& (Boolean)mskmFlagMap.get("adsl_shomen_flag")
							|| mskmFlagMap.containsKey("mobile_shomen_flag")
							&& (Boolean)mskmFlagMap.get("mobile_shomen_flag");

		// 請求書発行要否
		String seikyusHakkoYhCd = null;
		// 支払方法
		String paywayCd = null;
		
		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 書面のみ、ADSLかモバイル単独の申込書、もしくは、支払方法到着が到着の場合
		if (isSohus)
		{
			sohusAdCd = bean[0].sendMessageString(KKW00101SFConst.SOHUS_AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
			pcdBf = bean[0].sendMessageString(KKW00101SFConst.SOHUS_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE);
			pcdAf = bean[0].sendMessageString(KKW00101SFConst.SOHUS_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE);
			manInputFlg = bean[0].sendMessageBoolean(KKW00101SFConst.SOHUS_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE) ? 
					JKKStrConst.AD_MAN_INPUT_YES : JKKStrConst.AD_MAN_INPUT_NO;
			stateNm = bean[0].sendMessageString(KKW00101SFConst.SOHUS_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE);
			cityNm = bean[0].sendMessageString(KKW00101SFConst.SOHUS_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE);
			oaztsuNm = bean[0].sendMessageString(KKW00101SFConst.SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE);
			azchoNm = bean[0].sendMessageString(KKW00101SFConst.SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE);
			bnchigo = bean[0].sendMessageString(KKW00101SFConst.SOHUS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE);
			adrttm = bean[0].sendMessageString(KKW00101SFConst.SOHUS_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE);
			adrrm = bean[0].sendMessageString(KKW00101SFConst.SOHUS_ADRRM, X31CWebConst.DATABEAN_GET_VALUE);
			shsKana = bean[0].sendMessageString(KKW00101SFConst.PAYWAY_SHS_KANA, X31CWebConst.DATABEAN_GET_VALUE);
			sohusNm = bean[0].sendMessageString(KKW00101SFConst.PAYWAY_SOHUS_NM, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 金融機関コード
			parentMap.put("bank_cd", bean[0].sendMessageString(KKW00101SFConst.BANK_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 金融機関支店コード
			parentMap.put("bank_shiten_cd", bean[0].sendMessageString(KKW00101SFConst.BANK_SHITEN_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 預金種目
			String yokinShumokuCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.YOKIN_SHUMOKU_NM, KKW00101SFConst.YOKIN_SHUMOKU_SKBT_CD_31,
					KKW00101SFConst.YOKIN_SHUMOKU_SKBT_CD_LIST_31);
			parentMap.put("yokin_shumoku", yokinShumokuCd);
			// 口座番号
			parentMap.put("koza_no", bean[0].sendMessageString(KKW00101SFConst.KOZA_NO, X31CWebConst.DATABEAN_GET_VALUE));
//			// 口座名義人(漢字)
//			parentMap.put("koza_meigin_kanji", bean[0].sendMessageString(KKW00101SFConst.KOZA_MEIGIN_KANJI, X31CWebConst.DATABEAN_GET_VALUE));
			// 口座名義人カナ名
			parentMap.put("koza_meigin_kana", bean[0].sendMessageString(KKW00101SFConst.KOZA_MEIGIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 通帳記号
			parentMap.put("tsucho_symbol", bean[0].sendMessageString(KKW00101SFConst.TSUCHO_SYMBOL, X31CWebConst.DATABEAN_GET_VALUE));
			// 通帳番号
			parentMap.put("tsucho_no", bean[0].sendMessageString(KKW00101SFConst.TSUCHO_NO, X31CWebConst.DATABEAN_GET_VALUE));

			// ++++++++++++++ 2016/04/14 v23.00.00 【ANK-2810-00-00】 DELETE start ++++++++++++++++ //
//			String creardNo1 = bean[0].sendMessageString(KKW00101SFConst.CRECARD_NO_1, X31CWebConst.DATABEAN_GET_VALUE);
//			String creardNo2 = bean[0].sendMessageString(KKW00101SFConst.CRECARD_NO_2, X31CWebConst.DATABEAN_GET_VALUE);
//			String creardNo3 = bean[0].sendMessageString(KKW00101SFConst.CRECARD_NO_3, X31CWebConst.DATABEAN_GET_VALUE);
//			String creardNo4 = bean[0].sendMessageString(KKW00101SFConst.CRECARD_NO_4, X31CWebConst.DATABEAN_GET_VALUE);
			// ++++++++++++++ 2016/04/14 v23.00.00 【ANK-2810-00-00】 DELETE end ++++++++++++++++ //
			String creardYkKigenY = bean[0].sendMessageString(KKW00101SFConst.CRECARD_YK_KIGEN_Y, X31CWebConst.DATABEAN_GET_VALUE);
			String creardYkKigenM = bean[0].sendMessageString(KKW00101SFConst.CRECARD_YK_KIGEN_M, X31CWebConst.DATABEAN_GET_VALUE);

			// クレジットカード会社コード
			String crecardMompCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.CRECARD_COMP_LIST, KKW00101SFConst.CRECARD_COMP_CD_32,
					KKW00101SFConst.CRECARD_COMP_CD_LIST_32);
			parentMap.put("crecard_comp_cd", crecardMompCd);
			
			// ++++++++++++++ 2016/04/14 v23.00.00 【ANK-2810-00-00】 MOD start ++++++++++++++++ //
//			// クレジットカード番号
//			parentMap.put("crecard_no", creardNo1 + creardNo2 + creardNo3 + creardNo4);

			// クレジットカード番号(問合せ用カード番号)
			parentMap.put("crecard_no", bean[0].sendMessageString(KKW00101SFConst.CR_INQUIRE_CARD_NO, X31CWebConst.DATABEAN_GET_VALUE));
			
			// ++++++++++++++ 2016/04/14 v23.00.00 【ANK-2810-00-00】 MOD end ++++++++++++++++ //
			// ++++++++++++++ 2015/11/17 v20.00.00 【ANK-2565-00-00】 MOD start ++++++++++++++++ //
			// クレジットカード番号預りID
			parentMap.put("crecard_no_azkri_id", bean[0].sendMessageString(KKW00101SFConst.CRECARD_NO_AZKRI_ID, X31CWebConst.DATABEAN_GET_VALUE));
			// 仕向先会社コード
			parentMap.put("shikosaki_comp_cd", bean[0].sendMessageString(KKW00101SFConst.SHIKOSAKI_COMP_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 支払い審査結果コード
			parentMap.put("pay_skekka_cd", "40");
			// オーソリ承認番号
			parentMap.put("authori_shonin_no", bean[0].sendMessageString(KKW00101SFConst.AUTHORI_SHONIN_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// ++++++++++++++ 2015/11/17 v20.00.00 【ANK-2565-00-00】 MOD end ++++++++++++++++ //
			
			// クレジットカード有効期限
			parentMap.put("crecard_yk_kigen", creardYkKigenY + creardYkKigenM);
			// クレジットカード名義カナ名
			parentMap.put("crecard_nm_kana", bean[0].sendMessageString(KKW00101SFConst.CRECARD_MEIGIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 送付先法人格種別コード
			String paywayHojinSbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.PAYWAY_HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16,
					KKW00101SFConst.HOJIN_SBT_CD_LIST_16);
			parentMap.put("shs_hojin_sbt_cd", paywayHojinSbtCd);
			// 送付先法人格前後指定コード
			String paywayHojinZengoShiteiCd = JKKWebCommon.convertCode(
					bean[0],
					KKW00101SFConst.PAYWAY_HOJIN_ZENGO_SHITEI_CD,
					KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15,
					KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15);
			parentMap.put("shs_hojin_zengo_shitei_cd", paywayHojinZengoShiteiCd);
			// 送付先部課名
			parentMap.put("sohus_bkm", bean[0].sendMessageString(KKW00101SFConst.PAYWAY_BKM, X31CWebConst.DATABEAN_GET_VALUE));
			// 送付先担当者名
			parentMap.put("sohus_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.PAYWAY_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 送付先電話番号
			parentMap.put("sohus_telno", bean[0].sendMessageString(KKW00101SFConst.PAYWAY_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// 支払タブが表示されている場合、支払方法から取得
			paywayCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.PAYWAY, KKW00101SFConst.PAYWAY_SKBT_CD_28,
					KKW00101SFConst.PAYWAY_SKBT_CD_LIST_28);
			parentMap.put("seiky_way_cd", paywayCd);
			// 請求書発行要否
			seikyusHakkoYhCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SEIKYUS_HAKKO_YH, KKW00101SFConst.SEIKYUS_HAKKO_YH_CD_29,
					KKW00101SFConst.SEIKYUS_HAKKO_YH_CD_LIST_29);
			parentMap.put("seikyus_hakko_yh", seikyusHakkoYhCd);

			// 口座名義人カナ名
			parentMap.put("koza_meigin_kana", bean[0].sendMessageString(KKW00101SFConst.KOZA_MEIGIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// クレジットカード名義カナ名
			parentMap.put("crecard_nm_kana", bean[0].sendMessageString(KKW00101SFConst.CRECARD_MEIGIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			
			// オーソリ要求コード
			if (MSKM_FLG_SHINKI.equals(mskmFlg))
			{
				// 新規申込の場合
				parentMap.put("authori_yokyu_cd", JKKStrConst.AUTHORI_YOKYU_CD_NEW_CONTRACT);
			}
			else if (MSKM_FLG_TSUIKA.equals(mskmFlg))
			{
				// 追加申込の場合
				parentMap.put("authori_yokyu_cd", JKKStrConst.AUTHORI_YOKYU_CD_SVC_ADD);
			}
		}
		else
		{
			sohusAdCd = bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE);
			pcdBf = bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE);
			pcdAf = bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE);
			manInputFlg = bean[0].sendMessageBoolean(KKW00101SFConst.KEISHA_EXCEPTION_INPUT, X31CWebConst.DATABEAN_GET_VALUE) ? 
					JKKStrConst.AD_MAN_INPUT_YES : JKKStrConst.AD_MAN_INPUT_NO;
			stateNm = bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE);
			cityNm = bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE);
			oaztsuNm = bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE);
			azchoNm = bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE);
			bnchigo = bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE);
			adrttm = bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE);
			adrrm = bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE);

// ANK-3921-00-00対応 20201107 星野 DEL START
//			// 各サービスの申込有無
//			Boolean mskmNet    = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//			Boolean mskmTel    = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//			Boolean mskmTv     = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//			Boolean mskmMobile = bean[0].sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//			
//			
//			// テレビ単独 または 電話単独
//			boolean judgeFlg = ((!mskmNet && (mskmTel || mskmTv) && !mskmMobile));
// ANK-3921-00-00対応 20201107 星野 DEL END

			// 支払いタブが表示されない場合、窓口固定
			parentMap.put("seiky_way_cd", JKKStrConst.SEIKY_WAY_CD_MADOGUCHI);
			
// ANK-3921-00-00対応 20201107 星野 DEL START
//			if (judgeFlg)
//			{
//				// 請求書発行要否(1:要)
//				parentMap.put("seikyus_hakko_yh", JKKStrConst.CD00001_1);
//			}
//			else
//			{
// ANK-3921-00-00対応 20201107 星野 DEL END
			// 請求書発行要否(0:否)
			parentMap.put("seikyus_hakko_yh", JKKStrConst.CD00001_0);
// ANK-3921-00-00対応 20201107 星野 DEL START
//			}
// ANK-3921-00-00対応 20201107 星野 DEL END

			// 送付先電話番号
			parentMap.put("sohus_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

			// 「契約者タイプ」が 「個人」 の場合
			if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
					bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				shsKana = bean[0].sendMessageString(KKW00101SFConst.CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE);
				sohusNm = bean[0].sendMessageString(KKW00101SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE);
			}
			else
			{
				shsKana = bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE);
				
				// 送付先部課名
				parentMap.put("sohus_bkm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_SHOZKBSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 送付先担当者名
				parentMap.put("sohus_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 送付先法人格種別コード
				String hojinSbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16,
						KKW00101SFConst.HOJIN_SBT_CD_LIST_16);
				parentMap.put("shs_hojin_sbt_cd", hojinSbtCd);
				// 送付先法人格前後指定コード
				String hojinZengoShiteiCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15,
						KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15);
				parentMap.put("shs_hojin_zengo_shitei_cd", hojinZengoShiteiCd);
				
				// 送付先名
				String hojinNm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
				String hojinSbtNm = JKKWebCommon.getPullDownName(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16,
						KKW00101SFConst.HOJIN_SBT_CD_LIST_16, KKW00101SFConst.HOJIN_SBT_NM_LIST_16);
				if (JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojinSbtCd))
				{
					// 法人格「指定なし」の場合、法人名
					sohusNm = hojinNm;
				}
				else if (HOJIN_ZENGO_SHITEI_BF.equals(hojinZengoShiteiCd))
				{
					// 法人格前後指定が前の場合、法人格種別＋全角スペース＋法人名
					sohusNm = hojinSbtNm + ZENKAKU_SPACE + hojinNm;
				}
				else if (HOJIN_ZENGO_SHITEI_AF.equals(hojinZengoShiteiCd))	
				{
					// 法人格前後指定が後の場合、法人名＋全角スペース＋法人格種別
					sohusNm = hojinNm + ZENKAKU_SPACE + hojinSbtNm;
				}
			}
		}

		// 送付先住所コード
		parentMap.put("sohus_ad_cd", sohusAdCd);
		// 送付先郵便番号
		parentMap.put("sohus_pcd", pcdBf + pcdAf);
		//送付先住所手動入力フラグ
		parentMap.put("sohus_ad_man_input_flg", manInputFlg);
		// 送付先都道府県名
		parentMap.put("sohus_state_nm", stateNm);
		// 送付先市区町村名
		parentMap.put("sohus_city_nm", cityNm);
		// 送付先大字通称名
		parentMap.put("sohus_oaztsu_nm", oaztsuNm);
		// 送付先字丁目名
		parentMap.put("sohus_azcho_nm", azchoNm);
		// 送付先編集前番地
		parentMap.put("sohus_bnchigo", bnchigo);
		// 送付先字丁目名
		parentMap.put("sohus_adrttm", adrttm);
		// 送付先編集前番地
		parentMap.put("sohus_adrrm", adrrm);
		// 送付先住所チェックレベル
		parentMap.put("sohus_ad_chk_lv", JKKStrConst.AD_CHK_LV2);

		// 送付先名カナ
		parentMap.put("shs_kana", shsKana);
		// 送付先名
		parentMap.put("sohus_nm", sohusNm);

		// 送付先と契約者の住所をチェック
		if (isComparisonAd(bean[0],
				pcdBf,
				pcdAf,
				stateNm,
				cityNm,
				oaztsuNm,
				azchoNm,
				bnchigo,
				adrttm,
				adrrm))
		{
			// 請求書送付先_契約者住所差異フラグ
			parentMap.put("sks_shs_ksh_ad_sai_flg", JKKStrConst.CD_DIV_UM_NASHI);
		}
		else
		{
			// 請求書送付先_契約者住所差異フラグ
			parentMap.put("sks_shs_ksh_ad_sai_flg", JKKStrConst.CD_DIV_UM_ARI);
		}

		// 送付先名の比較用の値を契約者情報から取得
		String keiKana = "";
		String keiNm = "";
		// 「契約者タイプ」が 「個人」 の場合
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
				bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			keiKana = bean[0].sendMessageString(KKW00101SFConst.CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE);
			keiNm = bean[0].sendMessageString(KKW00101SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else
		{
			keiKana = bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE);
			keiNm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
		}

		// 送付先名の比較
		if (keiKana.equals(shsKana) && keiNm.equals(sohusNm))
		{
			// 請求書送付先名_お客様名差異フラグ
			parentMap.put("sks_shs_nm_cust_nm_sai_flg", JKKStrConst.CD_DIV_UM_NASHI);
		}
		else
		{
			// 請求書送付先名_お客様名差異フラグ
			parentMap.put("sks_shs_nm_cust_nm_sai_flg", JKKStrConst.CD_DIV_UM_ARI);
		}

		// 異動区分
		parentMap.put("ido_div", getIdoDiv(mskmFlg));
		
		// マンションオーナーID
		parentMap.put("mansion_ownr_id", JKKWebCommon.getMansionOwnerId(mansionMap));
		
		if (PAYWAY_ARIV_CD_ARIV.equals(bean[0].sendMessageString(KKW00101SFConst.PAYWAY_ARIV, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 申込受付年月日
			String mskmUkYmd =
				bean[0].sendMessageString(KKW00101SFConst.MSKM_UK_DTM_Y, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean[0].sendMessageString(KKW00101SFConst.MSKM_UK_DTM_M, X31CWebConst.DATABEAN_GET_VALUE)
						+ bean[0].sendMessageString(KKW00101SFConst.MSKM_UK_DTM_D, X31CWebConst.DATABEAN_GET_VALUE);
	
			// 初回支払申込書受領年月日
			parentMap.put("first_pay_mskmsho_rcp_ymd", mskmUkYmd);
		}
		else
		{
			// 初回支払申込書受領年月日
			parentMap.put("first_pay_mskmsho_rcp_ymd", null);
		}
		

		// 新規コード
		parentMap.put("new_cd", JKKStrConst.CD00169_NEW);  // 1:新規
		
		outputMap.put("KKSV008005CC", parentMap);

		return outputMap;
	}

	/**
	 * 上りマッピングをする（支払方法変更）
	 * @param bean        [0]：申込新規登録画面
	 * @param outputMap   
	 * @param func_code   機能コード
	 * @param opeDate     オンライン運用日付
	 * @param mskmMap     KKSV0079_申込新規登録初期表示の検索結果
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008022CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			String opeDate,
			HashMap mskmMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		HashMap preMap = (HashMap)mskmMap.get("KKSV007903CC");

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 請求契約番号
		parentMap.put("seiky_kei_no", getSeikyKeiNo(mskmMap));
		// 運用日付
		parentMap.put("ope_date", opeDate);
		// ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込明細番号
		parentMap.put("mskm_dtl_no", preMap.get("mskm_dtl_no"));
		// 更新年月日時分秒(更新前)
		parentMap.put("kk0491_upd_dtm_bf", preMap.get("kk0491_upd_dtm"));

		// 契約種別が個人の場合設定する
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 送付先カナ名
			parentMap.put("shs_kana", bean[0].sendMessageString(KKW00101SFConst.CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 送付先名
			parentMap.put("sohus_nm", bean[0].sendMessageString(KKW00101SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// 個人以外の場合
		else
		{
			// 送付先名カナ
			parentMap.put("shs_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 送付先名
			String sohusNm = "";
			String hojinNm = bean[0].sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
			String hojinZengoCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD,
					KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15);
			String hojinSbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16,
					KKW00101SFConst.HOJIN_SBT_CD_LIST_16);
			String hojinSbtNm = JKKWebCommon.getPullDownName(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16,
					KKW00101SFConst.HOJIN_SBT_CD_LIST_16, KKW00101SFConst.HOJIN_SBT_NM_LIST_16);
			if (JKKStrConst.HOJIN_SBT_CD_BLANK.equals(hojinSbtCd))
			{
				// 法人格「指定なし」の場合、法人名
				sohusNm = hojinNm;
			}
			else if (HOJIN_ZENGO_SHITEI_BF.equals(hojinZengoCd))
			{
				// 法人格前後指定が前の場合、法人格種別＋全角スペース＋法人名
				sohusNm = hojinSbtNm + ZENKAKU_SPACE + hojinNm;
			}
			else if (HOJIN_ZENGO_SHITEI_AF.equals(hojinZengoCd))	
			{
				// 法人格前後指定が後の場合、法人名＋全角スペース＋法人格種別
				sohusNm = hojinNm + ZENKAKU_SPACE + hojinSbtNm;
			}
			parentMap.put("sohus_nm", sohusNm);
			
			// 送付先部課名
			parentMap.put("sohus_bkm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_SHOZKBSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 送付先担当者名
			parentMap.put("sohus_tntsha_nm", bean[0].sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 請求方法コード
		parentMap.put("seiky_way_cd", preMap.get("seiky_way_cd"));
		// 請求契約カナ名
		parentMap.put("seiky_kei_kana", preMap.get("seiky_kei_kana"));
		// 情報表示コード
		parentMap.put("info_dsp_cd", preMap.get("info_dsp_cd"));
		
// OM-2021-0000148対応 20210308 星野 DEL START
//		/*************************************************************************************
//		 * 支払方法の更新は再申請時のみなので請求書発行要否は
//		 * 常にサービスより判定する。
//		 * 継続の場合は支払方法の更新は行われない。
//		 *************************************************************************************/
//		// 各サービスの申込有無
//		boolean mskmNet    = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		boolean mskmTel    = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		boolean mskmTv     = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		boolean mskmMobile = bean[0].sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		
//		// テレビ または 電話
//		boolean isTvOrTel = ((!mskmNet && (mskmTel || mskmTv) && !mskmMobile));
//		
//		if (isTvOrTel)
//		{
//			// 請求書発行要否(1:要)
//			parentMap.put("seikyus_hakko_yh", JKKStrConst.CD00001_1);
//		}
//		else
//		{
// OM-2021-0000148対応 20210308 星野 DEL END
		// 請求書発行要否(0:否)
		parentMap.put("seikyus_hakko_yh", JKKStrConst.CD00001_0);
// OM-2021-0000148対応 20210308 星野 DEL START
//		}
// OM-2021-0000148対応 20210308 星野 DEL END
		
		// 請求書送付先_契約者住所差異フラグ
		parentMap.put("sks_shs_ksh_ad_sai_flg", JKKStrConst.CD_DIV_UM_NASHI);
		// 請求書送付先名_お客様名差異フラグ
		parentMap.put("sks_shs_nm_cust_nm_sai_flg", JKKStrConst.CD_DIV_UM_NASHI);
		// 送付先法人格種別コード
		parentMap.put("shs_hojin_sbt_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16,
				KKW00101SFConst.HOJIN_SBT_CD_LIST_16));
		// 送付先法人格前後指定コード
		parentMap.put("shs_hojin_zengo_shitei_cd", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD,
				KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15));
		// 送付先住所コード
		parentMap.put("sohus_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先郵便番号
		parentMap.put("sohus_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 送付先都道府県名
		parentMap.put("sohus_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先市区町村名
		parentMap.put("sohus_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先大字通称名
		parentMap.put("sohus_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先字丁目名
		parentMap.put("sohus_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先住所補記・建物名
		parentMap.put("sohus_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先住所補記・部屋番号
		parentMap.put("sohus_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先番地号
		parentMap.put("sohus_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先電話番号
		parentMap.put("sohus_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		// 送付先FAX番号
		parentMap.put("sohus_fax_no", preMap.get("sohus_fax_no"));
		// 送付先メールアドレス
		parentMap.put("sohus_mlad", preMap.get("sohus_mlad"));
		// 請求書送付先変更年月日
		parentMap.put("seikyus_sohus_chge_ymd", preMap.get("seikyus_sohus_chge_ymd"));
		// 請求方法適用調整年月日
		parentMap.put("seiky_way_aply_adj_ymd", preMap.get("seiky_way_aply_adj_ymd"));
		// 予約適用開始希望年月日
		parentMap.put("rsv_tsta_kibo_ymd", preMap.get("rsv_tsta_kibo_ymd"));
		// 初回請求年月	
		parentMap.put("first_seiky_ym", preMap.get("first_seiky_ym"));
		// 初回支払申込書送付要否
		parentMap.put("first_pay_mskmsho_sohu_yh", preMap.get("first_pay_mskmsho_sohu_yh"));
		//初回支払申込書送付年月日
		parentMap.put("first_pay_mskmsho_sohu_ymd", preMap.get("first_pay_mskmsho_sohu_ymd"));
		// 初回支払申込書受領年月日
		parentMap.put("first_pay_mskmsho_rcp_ymd", preMap.get("first_pay_mskmsho_rcp_ymd"));
		// 異動区分
		parentMap.put("ido_div", getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
		// 送付先住所手動入力フラグ
		parentMap.put("sohus_ad_man_input_flg", dataBeanGetBooleanCode(bean[0], KKW00101SFConst.KEISHA_EXCEPTION_INPUT,
				JKKStrConst.AD_MAN_INPUT_YES, JKKStrConst.AD_MAN_INPUT_NO));

		// 送付先住所チェックレベル
		parentMap.put("sohus_ad_chk_lv", JKKStrConst.AD_CHK_LV2);

		outputMap.put("KKSV008022CC", parentMap);

		return outputMap;
	}

	/**
	 * 指定されたサイズまで埋め込みを行う。
	 * <br>
	 * @param val　埋め込みを行う文字列
	 * @param umkmMozi 埋め込み文字
	 * @param byteSu　バイト数
	 * @return 出力先マップ
	 * @throws Exception
	 */
	private String shiteiSizeUmkm(String val, String umkmMozi, int byteSu) throws Exception
	{
		byte[] paraByte = null;

		String rslt = val;
		String thisUmkmMozi = umkmMozi;

		if (rslt == null)
		{
			rslt = "";
		}

		// 埋め込み文字のデフォルトは半角スペースを設定
		if (thisUmkmMozi == null
				|| "".equals(thisUmkmMozi))
		{
			thisUmkmMozi = " ";
		}

		paraByte = rslt.getBytes();

		int paraByteSize = paraByte.length;

		for (int i = paraByteSize; i < byteSu; i++)
		{
			rslt = thisUmkmMozi + rslt;
		}
		return rslt;
	}

	/**
	 * 上りマッピングをする（進捗登録）
	 * @param   bean              [0]：申込新規登録画面
	 * @param   outputMap         登録データ
	 * @param   func_code         機能コード
	 * @param   opeDateTimeStamp  運用日付（YYYYMMDDhhmmssSSS）
	 * @param   opeDateTimeStamp  運用日付（YYYYMMDDhhmmssSSS）
	 * @param   mode              "1":承認、"2":登録、"3"：本申込
	 * @param   svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @param   mskmInfoMap       照会マップ
	 * @return  登録データ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008031CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			String opeDateTimeStamp,
			String mode,
			HashMap<String, Boolean> svcKeiUpdFlgs,
			HashMap<String, Object> mskmInfoMap) throws Exception
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}
		HashMap<String, Object> parentMap = JKKWebCommon.getSvcMap(outputMap, KKSV008031CC);
		HashMap preMap = (HashMap)mskmInfoMap.get("KKSV007904CC");
		
		JKKWebCommon.setKktkPrgInfo(parentMap);
		
		//eo光ネット用進捗リスト
		ArrayList<HashMap<String, Object>> netList = new ArrayList<HashMap<String, Object>>();
		//eo光電話用進捗リスト
		ArrayList<HashMap<String, Object>> telList = new ArrayList<HashMap<String, Object>>();
		//eo光テレビ用進捗リスト
		ArrayList<HashMap<String, Object>> tvList = new ArrayList<HashMap<String, Object>>();
		//eoモバイル用進捗リスト
		ArrayList<HashMap<String, Object>> mobList = new ArrayList<HashMap<String, Object>>();
		//ADSL用進捗リスト
		ArrayList<HashMap<String, Object>> adslList = new ArrayList<HashMap<String, Object>>();
		//eo光ネットオプション用進捗リスト
		ArrayList<HashMap<String, Object>> netOptionList = new ArrayList<HashMap<String, Object>>();
		//eo光テレビオプション用進捗リスト
		ArrayList<HashMap<String, Object>> tvOptionList = new ArrayList<HashMap<String, Object>>();
		//eoモバイルオプション用進捗リスト
		ArrayList<HashMap<String, Object>> mblOptionList = new ArrayList<HashMap<String, Object>>();
		//ADSLオプション用進捗リスト
		ArrayList<HashMap<String, Object>> adslOptionList = new ArrayList<HashMap<String, Object>>();
		
		//進捗ステータス
		String prgStat = "";
		//特記事項
		String tokkiJiko = "";
		// IO→HT変更引継ぎサービス契約番号（ネット用）
		String tokkiSvcKeiNo = bean[0].sendMessageString(KKW00101SFConst.TOKKI_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE);

		//支払方法
		String payway = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.PAYWAY,
				KKW00101SFConst.PAYWAY_SKBT_CD_28, KKW00101SFConst.PAYWAY_SKBT_CD_LIST_28);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (MSKM_FLG_SHINKI.equals(mskmFlg))
		{
			// 新規申込の場合
			parentMap.put("kk109101_ido_div", JKKStrConst.CD00576_00001);
		}
		else
		{
			// 新規申込以外の場合
			parentMap.put("kk109101_ido_div", JKKStrConst.CD00576_00002);
		}
		
		// 異動理由明細
		parentMap.put("kk109101_EKK1091D010CBSMsg1List", getIrsnDtl());
		
		//登録の場合
		if(MSKM_ADD.equals(mode))
		{
			prgStat = JKKStrConst.CD00647_MSKMSHOUK;
		}
		//申請の場合
		else if(MSKM_SHINSEI.equals(mode))
		{
			prgStat = JKKStrConst.CD00647_MSKM_REQ_UK;
			//差戻中の場合
			if(bean[0].sendMessageBoolean(KKW00101SFConst.RTRN_CHU, X31CWebConst.DATABEAN_GET_VALUE))
			{
				tokkiJiko = RE_SHINSEI;
			}
			
		}
		//本登録の場合
		else if(MSKM_HON_MSKM.equals(mode))
		{
			prgStat = JKKStrConst.CD00647_MSKM_REQ_UK;
			tokkiJiko = HON_MSKM_JSSI;
		}
		
		//ネットのサービスが追加された場合
		if(svcKeiUpdFlgs.get(IS_NET_ADD))
		{
			netList.add(getPrgMap(prgStat, getTokkiJiko(tokkiSvcKeiNo, tokkiJiko), null));
			
			//支払方法がクレジットカードの場合
			if(isPaywayDsp(bean[0]) && JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(payway))
			{
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod start ++++++++++++++++ //
				//netList.add(getPrgMap(JKKStrConst.CD00647_PAYWAY_CRECARD_JDG_STAY, "", null));
				netList.add(getPrgMap(CD00647_PAYWAY_CRECARD_OK, "", null));
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod end ++++++++++++++++ //
			}
		}
		//電話のサービスが追加された場合
		if(svcKeiUpdFlgs.get(IS_TEL_ADD))
		{
			telList.add(getPrgMap(prgStat, tokkiJiko, null));
			
			//支払方法がクレジットカードの場合
			if(isPaywayDsp(bean[0]) && JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(payway))
			{
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod start ++++++++++++++++ //
				//telList.add(getPrgMap(JKKStrConst.CD00647_PAYWAY_CRECARD_JDG_STAY, "" , null));
				telList.add(getPrgMap(CD00647_PAYWAY_CRECARD_OK, "" , null));
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod end ++++++++++++++++ //
			}
		}
		//テレビのサービスが追加された場合
		if(svcKeiUpdFlgs.get(IS_TV_ADD))
		{
			tvList.add(getPrgMap(prgStat, tokkiJiko, null));
			
			//支払方法がクレジットカードの場合
			if(isPaywayDsp(bean[0]) && JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(payway))
			{
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod start ++++++++++++++++ //
				//tvList.add(getPrgMap(JKKStrConst.CD00647_PAYWAY_CRECARD_JDG_STAY, "" , null));
				tvList.add(getPrgMap(CD00647_PAYWAY_CRECARD_OK, "" , null));
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod end ++++++++++++++++ //
			}
		}
		//モバイルのサービスが追加された場合
		if(svcKeiUpdFlgs.get(IS_MOBILE_ADD))
		{
			mobList.add(getPrgMap(prgStat, tokkiJiko, null));
			
			//支払方法がクレジットカードの場合
			if(isPaywayDsp(bean[0]) && JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(payway))
			{
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod start ++++++++++++++++ //
				//mobList.add(getPrgMap(JKKStrConst.CD00647_PAYWAY_CRECARD_JDG_STAY, "" , null));
				mobList.add(getPrgMap(CD00647_PAYWAY_CRECARD_OK, "" , null));
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod end ++++++++++++++++ //
			}
		}
		//ADSLのサービスが追加された場合
		if(svcKeiUpdFlgs.get(IS_ADSL_ADD))
		{
			adslList.add(getPrgMap(prgStat, tokkiJiko, null));
			
			//支払方法がクレジットカードの場合
			if(isPaywayDsp(bean[0]) && JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(payway))
			{
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod start ++++++++++++++++ //
				//adslList.add(getPrgMap(JKKStrConst.CD00647_PAYWAY_CRECARD_JDG_STAY, "" , null));
				adslList.add(getPrgMap(CD00647_PAYWAY_CRECARD_OK, "" , null));
				//++++++++++++++ 2015/11/18 v20.00.00 【ANK-2565-00-00】 mod end ++++++++++++++++ //
			}
		}
		
		//ネットの進捗登録
		setNetPrg(bean[0], svcKeiUpdFlgs, preMap, netList, netOptionList);
		//電話の進捗登録
		setTelPrg(bean[0], svcKeiUpdFlgs, mskmInfoMap, parentMap, telList);
		//テレビの進捗登録
		setTvPrg(bean[0], svcKeiUpdFlgs, tvOptionList);
		//ADSLの進捗登録
		setAdslPrg(bean[0], svcKeiUpdFlgs, adslOptionList);
		
		parentMap.put("eohnt_prg_list", netList);
		parentMap.put("eohtl_prg_list", telList);
		parentMap.put("eohtv_prg_list", tvList);
		parentMap.put("eomoba_prg_list", mobList);
		parentMap.put("adsl_prg_list", adslList);
		parentMap.put("eohnt_op_prg_list", netOptionList);
		parentMap.put("eohtv_op_prg_list", tvOptionList);
		parentMap.put("eomoba_op_prg_list", mblOptionList);
		parentMap.put("adsl_op_prg_list", adslOptionList);

		return outputMap;

	}
	
	/**
	 * eoモバイルキャンセルの上りマッピングを行います。
	 * @param bean [0]：申込新規登録画面
	 * @param outputMap データ出力先マップ
	 * @param func_code 機能コード
	 * @param opeDate 運用年月日(8桁)
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDateTimeStamp 運用年月日時分秒(17桁)
	 * @param mskmFlagMap　申込フラグマップ
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008023CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate, HashMap mskmMap,
			String opeDateTimeStamp, HashMap mskmFlagMap) throws Exception
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		HashMap mobileMap = (HashMap)mskmMap.get("KKSV007908CC");

		//*-----------------------------------------------*

		// 申込明細番号
		String mskmDtlNo = (String)mobileMap.get("mobile_mskm_dtl_no");

		ArrayList mobile_optionList = (ArrayList)mobileMap.get("mobile_optionList");

		ArrayList sbopSvcKeiCancelList = new ArrayList();
		parentMap.put("subop_svc_kei_list", sbopSvcKeiCancelList);

		ArrayList opSvcKeiCancelList = new ArrayList();
		parentMap.put("op_svc_kei_list", opSvcKeiCancelList);

		if (mobile_optionList != null && mobile_optionList.size() > 0)
		{
			for (int i = 0; i < mobile_optionList.size(); i++)
			{
				HashMap childMap = (HashMap)mobile_optionList.get(i);

				String opSvcKeiNo = (String)childMap.get("kk0361_op_svc_kei_no");
				String sbopSvcKeiNo = (String)childMap.get("kk0401_sbop_svc_kei_no");

				if (sbopSvcKeiNo != null && !"".equals(sbopSvcKeiNo))
				{
					/*-----------------------------------------------
					 * サブオプションサービス契約キャンセル
					 *-----------------------------------------------*/
					HashMap sbopSvcKeiCancelMap = new HashMap();
					sbopSvcKeiCancelList.add(sbopSvcKeiCancelMap);

					// オプションサービス契約番号
					sbopSvcKeiCancelMap.put("kk0401_op_svc_kei_no", opSvcKeiNo);
					// サブオプションサービス契約番号
					sbopSvcKeiCancelMap.put("kk0401_sbop_svc_kei_no", sbopSvcKeiNo);
					// 申込明細番号
					sbopSvcKeiCancelMap.put("kk0401_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					sbopSvcKeiCancelMap.put("kk0401_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					sbopSvcKeiCancelMap.put("kk0401_ido_div", childMap.get("kk0401_ido_div"));
					// 更新年月日時分秒(更新前)
					sbopSvcKeiCancelMap.put("kk0401_upd_dtm_bf", childMap.get("kk0401_last_upd_dtm"));
				}

				if (opSvcKeiNo != null && !"".equals(opSvcKeiNo))
				{
					/*-----------------------------------------------
					 * オプションサービス契約キャンセル
					 *-----------------------------------------------*/
					HashMap opSvcKeiCancelMap = new HashMap();
					opSvcKeiCancelList.add(opSvcKeiCancelMap);

					// オプションサービス契約番号
					opSvcKeiCancelMap.put("kk0351_op_svc_kei_no", opSvcKeiNo);
					// 申込明細番号
					opSvcKeiCancelMap.put("kk0351_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					opSvcKeiCancelMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					opSvcKeiCancelMap.put("kk0351_ido_div", childMap.get("kk0351_ido_div"));
					// 更新年月日時分秒(更新前)
					opSvcKeiCancelMap.put("kk0351_upd_dtm_bf", childMap.get("kk0351_last_upd_dtm"));
				}
			}
		}

		/*-----------------------------------------------
		 * サービス契約内訳キャンセル
		 *-----------------------------------------------*/
		ArrayList mobile_svcKeiUcwkList = (ArrayList)mobileMap.get("mobile_EKK0201A010CBSMsg1List");

		ArrayList svcKeiUcwkCancelList = new ArrayList();
		parentMap.put("svc_kei_ucwk_list", svcKeiUcwkCancelList);

		if (mobile_svcKeiUcwkList != null && mobile_svcKeiUcwkList.size() > 0)
		{
			for (int i = 0; i < mobile_svcKeiUcwkList.size(); i++)
			{
				HashMap childMap = (HashMap)mobile_svcKeiUcwkList.get(i);

				String svcKeiUcwkNo = (String)childMap.get("kk0201_svc_kei_ucwk_no");

				if (svcKeiUcwkNo != null && !"".equals(svcKeiUcwkNo))
				{
					HashMap svcKeiUcwkCancelMap = new HashMap();
					svcKeiUcwkCancelList.add(svcKeiUcwkCancelMap);

					// サービス契約内訳番号
					svcKeiUcwkCancelMap.put("kk0161_svc_kei_ucwk_no", svcKeiUcwkNo);
					// 申込明細番号
					svcKeiUcwkCancelMap.put("kk0161_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					svcKeiUcwkCancelMap.put("kk0161_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					svcKeiUcwkCancelMap.put("kk0161_ido_div", childMap.get("kk0161_ido_div"));
					// 更新年月日時分秒(更新前)
					svcKeiUcwkCancelMap.put("kk0161_upd_dtm_bf", childMap.get("kk0201_last_upd_dtm"));
				}
			}
		}

		/*-----------------------------------------------
		 * サービス契約回線内訳キャンセル
		 *-----------------------------------------------*/
		ArrayList mobile_svcKeiKaisenUcwkList = (ArrayList)mobileMap.get("mobile_EKK0251B001CBSMsg1List");

		if (mobile_svcKeiKaisenUcwkList != null && mobile_svcKeiKaisenUcwkList.size() > 0)
		{
			HashMap childMap = (HashMap)mobile_svcKeiKaisenUcwkList.get(0);

			String svcKeiKaisenUcwkNo = (String)childMap.get("svc_kei_kaisen_ucwk_no");
			if (svcKeiKaisenUcwkNo != null && !"".equals(svcKeiKaisenUcwkNo))
			{
				// サービス契約内訳番号
				parentMap.put("kk0251_svc_kei_kaisen_ucwk_no", childMap.get("svc_kei_kaisen_ucwk_no"));
				// 申込明細番号
				parentMap.put("kk0251_mskm_dtl_no", mskmDtlNo);
				// サービスキャンセル理由コード
				parentMap.put("kk0251_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 更新年月日時分秒(更新前)
				parentMap.put("kk0251_upd_dtm_bf", childMap.get("last_upd_dtm"));
			}
		}

		/*-----------------------------------------------
		 * 機器提供サービス契約キャンセル
		 *-----------------------------------------------*/
		ArrayList mobile_KikiList = (ArrayList)mobileMap.get("mobile_EKK0341B508CBSMsg1List");
		ArrayList kikiCancelList = new ArrayList();
		

		if (mobile_KikiList != null && mobile_KikiList.size() > 0)
		{
			parentMap.put("Kiki_Cancel_list", kikiCancelList);
			
			for (int i = 0; i < mobile_KikiList.size(); i++)
			{
				HashMap childMap = (HashMap)mobile_KikiList.get(i);

				String kktkSvcKeiNo = (String)childMap.get("mobile_kktk_svc_kei_no");

				if (kktkSvcKeiNo != null && !"".equals(kktkSvcKeiNo))
				{
					HashMap kikiCancelMap = new HashMap();
					
					// 機器提供サービス契約番号
					kikiCancelMap.put("kk0341_kktk_svc_kei_no", kktkSvcKeiNo);
					// 申込明細番号
					kikiCancelMap.put("kk0341_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					kikiCancelMap.put("kk0341_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					kikiCancelMap.put("kk0341_ido_div", childMap.get("mobile_ido_div"));
					// 更新年月日時分秒(更新前)
					kikiCancelMap.put("kk0341_upd_dtm_bf", childMap.get("mobile_last_upd_dtm"));
					// 機能コード
					kikiCancelMap.put("func_code", func_code);
					
					kikiCancelList.add(kikiCancelMap);
				}
			}
		}

		/*-----------------------------------------------
		 * サービス契約キャンセル
		 *-----------------------------------------------*/
		String svcKeiNo = (String)mobileMap.get("mobile_svc_kei_no");
		if (svcKeiNo != null && !"".equals(svcKeiNo))
		{
			// サービス契約番号
			parentMap.put("kk0081_svc_kei_no", svcKeiNo);
			// 申込明細番号
			parentMap.put("kk0081_mskm_dtl_no", mskmDtlNo);
			// サービスキャンセル理由コード
			parentMap.put("kk0081_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
			// 異動区分
			parentMap.put("kk0081_ido_div", mobileMap.get("kk0081_ido_div"));
			// 更新年月日時分秒(更新前)
			parentMap.put("kk0081_upd_dtm_bf", mobileMap.get("kk0081_last_upd_dtm"));
		}

		/*-----------------------------------------------
		 * 申込明細キャンセル
		 *-----------------------------------------------*/
		if (mskmDtlNo != null && !"".equals(mskmDtlNo))
		{
			// 申込明細番号
			parentMap.put("KK0021_mskm_dtl_no", mskmDtlNo);
			// サービスキャンセル理由コード
			parentMap.put("KK0021_mskm_dtl_cancel_rsn_cd", JKKStrConst.CD01254_20);
			// 更新年月日時分秒(更新前)
			parentMap.put("KK0021_upd_dtm_bf", mobileMap.get("mobile_mskm_last_upd_dtm"));
		}

		outputMap.put("KKSV008023CC", parentMap);

		return outputMap;
	}
	
	/**
	 * eoモバイル登録の上りマッピングを行います。
	 * @param bean [0]：申込新規登録画面
	 * @param outputMap データ出力先マップ
	 * @param func_code 機能コード
	 * @param opeDate 運用年月日(8桁)
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDateTimeStamp 運用年月日時分秒(17桁)
	 * @param mskmFlagMap　申込フラグマップ
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008024CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String opeDate, HashMap mskmMap,
			String opeDateTimeStamp, HashMap mskmFlagMap) throws Exception
	{

		if (null == bean)
		{
			return null;
		}

		if (1 != bean.length)
		{
			return null;
		}

		X31SDataBeanAccess dataBean = bean[0];
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		/*-----------------------------------------------
		 * 申込明細登録
		 *-----------------------------------------------*/
		// 申込番号
		String mskmNo = bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("kk0021_mskm_no", mskmNo);

		// 申込形態コード
		parentMap.put("kk0021_mskm_form_cd", getAddMskmFormCd(bean[0]));

		// 申込書番号
		parentMap.put("kk0021_mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込年月日
		String mskmYmd =
			bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);

		if (8 == mskmYmd.length())
		{
			parentMap.put("kk0021_mskm_ymd", mskmYmd);
		}
		else
		{
			parentMap.put("kk0021_mskm_ymd", opeDateTimeStamp.substring(0, 8));
		}

		// SYSID
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("kk0021_sysid", sysid);

		// 新規申込種別コード
		parentMap.put("kk0021_new_mskm_sbt_cd", JKKStrConst.CD00683_TTL_UK);	// 004:総合受付

		// 申込連絡先メールアドレス
		parentMap.put("kk0021_mskm_rrks_mlad", bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込フラグ
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{	// 追加申込の場合
			// オプションサービス引継有無
			String opSvcHktgiUm = JKKStrConst.CD_DIV_UM_NASHI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.SVC_NYO_HKTGI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				opSvcHktgiUm = JKKStrConst.CD_DIV_UM_ARI;
			}
			parentMap.put("kk0021_op_svc_hktgi_um", opSvcHktgiUm);

			// 解約書類送付希望有無
			String dslAticleSohuKiboUm = JKKStrConst.CD_DIV_UM_NASHI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO, X31CWebConst.DATABEAN_GET_VALUE))
			{
				dslAticleSohuKiboUm = JKKStrConst.CD_DIV_UM_ARI;
			}
			parentMap.put("kk0021_dsl_aticle_sohu_kibo_um", dslAticleSohuKiboUm);
		}

		// マンション設備システム連携用記事欄
		parentMap.put("kk0021_manssbsys_rnki_yo_kijiran"
				, bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込形態コード
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込書の種類
		String mskmshoKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		// 住居タイプ
		String jyukyoType = bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE);

		// 本人確認書類種別コード
		String hninBunshoKind = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SBT_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		hninBunshoKind = (JKKStrConst.CD01566_9.equals(hninBunshoKind))?(""):(hninBunshoKind);

		parentMap.put("kk0021_hnin_cfm_aticle_sbt_cd", hninBunshoKind);

		//本人確認書類コードがその他の場合
		if (JKKStrConst.CD00714_3.equals(hninBunshoKind))
		{
			parentMap.put("kk0021_hnin_cfm_aticle_nm",
					bean[0].sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));
		}

		String mskmshoSbtCd = null;
		if(MSKM_FORM_CD_TEL.equals(mskmFormCd))
		{	// 電話申込の場合
			mskmshoSbtCd = jyukyoType;
		}
		else if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{	// 書面申込
			mskmshoSbtCd = mskmshoKind;

			if(MSKM_KIND_HOME.equals(mskmshoKind) || MSKM_KIND_MEZON.equals(mskmshoKind))
			{	// ホームまたはメゾン
				// 地図添付有無
				String maptempAri = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MAPTEMP_ARI
						, KKW00101SFConst.MAP_TEMP_UM_CD_38, KKW00101SFConst.MAP_TEMP_UM_CD_LIST_38);
				parentMap.put("kk0021_map_temp_um", maptempAri);

				// 申込書取扱情報担当者名
				parentMap.put("kk0021_mskmsho_trat_if_tntsha_nm",
						bean[0].sendMessageString(KKW00101SFConst.TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
				// 申込書取扱情報電話番号
				parentMap.put("kk0021_mskmsho_trat_if_telno",
						bean[0].sendMessageString(KKW00101SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}

		// 申込書種別コード
		parentMap.put("kk0021_mskmsho_sbt_cd", mskmshoSbtCd);

		String hukkaAnken = null;
		String newconstBukken = null;

		// ホームの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			// 復活案件の判定
			if (bean[0].sendMessageBoolean(KKW00101SFConst.HUKKAT_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				hukkaAnken = HUKKAT_ARI;
			}
			else
			{
				hukkaAnken = HUKKAT_NASHI;
			}

			// 復活案件フラグ
			parentMap.put("kk0021_hukkat_anken_flg", hukkaAnken);

			// 新築物件の判定
			if (bean[0].sendMessageBoolean(KKW00101SFConst.NEWCONST_BUKKEN, X31CWebConst.DATABEAN_GET_VALUE))
			{
				newconstBukken = NEWCONST_BKN_CD_NEWCONST;
			}
			else
			{
				newconstBukken = NEWCONST_BKN_CD_SHKV;
			}

			// 新築物件コード
			parentMap.put("kk0021_newconst_bukken_cd", newconstBukken);

			String sameEquipReMskm = JKKWebCommon.convertCode(
					bean[0], KKW00101SFConst.SAME_EQUIP_RE_MSKM,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_56,
					KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_LIST_56);

			// 同一設備再申込コード
			parentMap.put("kk0021_same_equip_re_mskm_cd", sameEquipReMskm);
		}
		else
		{
			// 画面に表示されていない場合、"0"を設定する。

			//復活案件フラグ
			parentMap.put("kk0021_hukkat_anken_flg", HUKKAT_NASHI);
			// 新築物件コード
			parentMap.put("kk0021_newconst_bukken_cd", NEWCONST_BKN_CD_SHKV);
			// 同一設備再申込コード
			parentMap.put("kk0021_same_equip_re_mskm_cd", SAME_EQUIP_RE_MSKM_CD_SHKV);
		}

		// マンション・メゾンの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null) || isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			String keiHukaCd = JKKWebCommon.convertCode(
			bean[0], KKW00101SFConst.FUKA_LIST,
			KKW00101SFConst.FUKA_CD_57,
			KKW00101SFConst.FUKA_CD_LIST_57);

			// 契約付加コード
			parentMap.put("kk0021_kei_huka_cd", keiHukaCd);

			// マンションID
			parentMap.put("kk0021_mansion_id", bean[0].sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE));
			// CAT-ID
			parentMap.put("kk0021_catid", bean[0].sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込種別コード
		String mskmSbtCd = JKKWebCommon.convertCode(
				bean[0], KKW00101SFConst.MSKM_SBT,
				KKW00101SFConst.SELECT_CD_59,
				KKW00101SFConst.CD_LIST_59);

		// 申込受付種別コード
		parentMap.put("kk0021_mkm_uk_sbt_cd", mskmSbtCd);

		// 更新年月日時分秒(更新前)
		String mskmUpdDtm = "";	// 申込の更新年月日時分秒
		HashMap mskmSvcKeiUcwkMap = (HashMap)mskmMap.get("KKSV007901CC");
		if (null != mskmSvcKeiUcwkMap)
		{
			ArrayList mskmSvcKeiUcwkList = (ArrayList)mskmSvcKeiUcwkMap.get("mskm_svc_kei_ucwk_list");
			if (null != mskmSvcKeiUcwkList && 0 <= mskmSvcKeiUcwkList.size())
			{
				HashMap childMap = (HashMap)mskmSvcKeiUcwkList.get(0);
				mskmUpdDtm = (String)childMap.get("last_upd_dtm");
				// 更新年月日時分秒(更新前)
				parentMap.put("kk0021_upd_dtm_bf", mskmUpdDtm);
			}
		}
		
		// 申込書明細番号
		parentMap.put("kk0021_mskmsho_dtl_no", bean[0].sendMessageString(KKW00101SFConst.MBL_MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE));


		/*-----------------------------------------------
		 * サービス契約<eoモバイル>登録
		 *-----------------------------------------------*/
		// SYSID
		parentMap.put("kk0121_sysid", sysid);
		// サービスコード
		parentMap.put("kk0121_svc_cd", getMobSvcCd(bean[0]));
		// 料金グループコード
		parentMap.put("kk0121_prc_grp_cd", getMobSvcKeiPgrpCd(bean[0]));
		// 料金コースコード
		parentMap.put("kk0121_pcrs_cd", getMobSvcKeiPcrsCd(bean[0]));
		// 料金プランコード
		parentMap.put("kk0121_pplan_cd", getMobSvcKeiPplanCd(bean[0]));

		String idoDiv = null;
		if (MSKM_FLG_SHINKI.equals(mskmFlg))
		{
			// 00001（新規契約）
			idoDiv = JKKStrConst.CD00576_00001;
		}
		else
		{
			// 00002（サービス追加）
			idoDiv = JKKStrConst.CD00576_00002;
		}
		parentMap.put("kk0121_ido_div", idoDiv);

		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			// 面開発案件番号
			parentMap.put("kk0121_menkaihat_anken_no",
					bean[0].sendMessageString(KKW00101SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 紹介コード
		parentMap.put("kk0121_intr_cd", dataBean.sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		//**********↓UI残-762**********
		// 業務連絡備考
		parentMap.put("kk0121_work_rrk_biko", dataBean.sendMessageString(KKW00101SFConst.MOBILE_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));
		//**********↑UI残-762**********

		// 自動照査処理状態コード
		String autoShosaTranStatCd = null;
		if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{
			// 書面申込
			autoShosaTranStatCd = JKKStrConst.CD00628_TGG;	// 対象外
		}
		else
		{
			autoShosaTranStatCd = JKKStrConst.CD00628_MI_TRAN;	// 未処理
		}
		parentMap.put("kk0121_auto_shosa_tran_stat_cd", autoShosaTranStatCd);

		// 事務手数料自動適用要否
		parentMap.put("kk0121_rule0059_auto_aply", JKKStrConst.CD00001_0); // 事務手数料自動適用要否

		// 請求契約番号を追加
		String seikyKeiNo = getSeikyKeiNo(mskmMap);
		if(MSKM_FLG_TSUIKA.equals(mskmFlg) 
				&& (PAYWAY_KEIZOKU_UPD.equals(bean[0].sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE))
				|| bean[0].sendMessageBoolean(KKW00101SFConst.PAYWAY_KEIZOKU_USE_FAIL_FLG, X31CWebConst.DATABEAN_GET_VALUE) == true))
		{	// 追加申込、支払方法変更 または 支払方法継続利用不可の場合
			seikyKeiNo = "";
		}

		/*-----------------------------------------------
		 * サービス契約内訳＜eoモバイル＞登録
		 *-----------------------------------------------*/
		if (!JKKStrConst.CD00134_MOB_MAIL.equals(getMobSvcKeiPcrsCd(bean[0])))
		{
			// 料金コースコード
			parentMap.put("kk0201_pcrs_cd", JKKStrConst.CD00134_MOB_WIFI);
			// 料金プランコード
			parentMap.put("kk0201_pplan_cd", JKKStrConst.CD00565_MOB_WIFI);
			// 異動区分
			if (MSKM_FLG_SHINKI.equals(mskmFlg))
			{
				parentMap.put("kk0201_ido_div", JKKStrConst.CD00576_00001);	// 00001（新規契約）
			}
			else
			{
				parentMap.put("kk0201_ido_div", JKKStrConst.CD00576_00002);	// 00002（サービス追加）
			}

			// スポットログインSYSID
			parentMap.put("kk0201_spot_login_sysid", sysid);
			// 提供帯域コード
			// 障害監理IT1-2012-0000046の対応で提供帯域コードにはNullを設定(マッピングしない)
			//parentMap.put("kk0201_tk_taiiki_cd", "01");	// 01:?
			// 事務手数料自動適用要否
			parentMap.put("rule0059_auto_aply", JKKStrConst.CD00001_0);
		}
		
		// UQ-WiMAXの場合
		if (JKKStrConst.CD00133_09.equals(getMobSvcKeiPgrpCd(bean[0])))
		{
			// 料金コースコード
			parentMap.put("kk020102_pcrs_cd", JKKStrConst.CD00134_MOB_WIMAX);
			// 料金プランコード
			parentMap.put("kk020102_pplan_cd", JKKStrConst.CD00565_MOB_WIMAX);
			// 異動区分
			if (MSKM_FLG_SHINKI.equals(mskmFlg))
			{
				parentMap.put("kk020102_ido_div", JKKStrConst.CD00576_00001);	// 00001（新規契約）
			}
			else
			{
				parentMap.put("kk020102_ido_div", JKKStrConst.CD00576_00002);	// 00002（サービス追加）
			}

			// スポットログインSYSID
			parentMap.put("kk020102_spot_login_sysid", sysid);
			// 提供帯域コード
			// 障害監理IT1-2012-0000046の対応で提供帯域コードにはNullを設定(マッピングしない)
			//parentMap.put("kk020102_tk_taiiki_cd", "01");	// 01:?
		}

		/*-----------------------------------------------
		 * オプションサービス契約登録
		 *-----------------------------------------------*/
		// SYSID
		parentMap.put("kk0361_sysid", sysid);
		// 異動区分
		parentMap.put("kk0361_ido_div", idoDiv);
		// 親契約識別コード
		parentMap.put("kk0361_oya_kei_skbt_cd", JKKKeiNewCmnLogicUtil.OYA_KEI_SKBT_CD_SVKEI); // 01（サービス契約）

		/*-----------------------------------------------
		 * 機器提供サービス契約登録
		 *-----------------------------------------------*/
		ArrayList dataList_kiki = new ArrayList();
		parentMap.put("kktk_add_list", dataList_kiki);
		
		String svcKeiPcrsCd = getMobSvcKeiPcrsCd(bean[0]);
		String kikiPcrsCd = null;
		String kikiPplanCd = null;
		String kikiSvcCd = null;
		// Wifiスポット、メールアドレス以外の場合
		if (!CD00134_MOB_WIFI.equals(svcKeiPcrsCd) && !JKKStrConst.CD00134_MOB_MAIL.equals(svcKeiPcrsCd))
		{
			HashMap childMap_kktk = new HashMap();
			
			kikiPcrsCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MOBILE_KIKI_COURSE_CHOICE,
					KKW00101SFConst.MOBILE_KIKI_CD_25, KKW00101SFConst.MOBILE_KIKI_CD_LIST_25);
			kikiPplanCd = getMobKikiPplanCd(bean[0], kikiPcrsCd);
			kikiSvcCd = getMobKikiSvcCd(bean[0], kikiPcrsCd);
			
			//機器提供サービス契約登録初期データ取得処理
			JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, kikiSvcCd, kikiPcrsCd, kikiPplanCd, "kk0341_", null, null,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
			
			// SYSID
			childMap_kktk.put("kk0341_sysid", sysid);
			// 異動区分
			childMap_kktk.put("kk0341_ido_div", idoDiv);
			
			// 3G 7.2Mコースルータタイプの場合
			if (CD00134_MOB_3G7_2M.equals(svcKeiPcrsCd) && CD00134_MOB_3G7_2M_ROUTER.equals(kikiPcrsCd))
			{
				// 宅内機器型式コード検索用料金プランコード
				childMap_kktk.put("kk0341_tkkkmdl_search_pplan_cd", PPLNCD_MOB_3G7_2M_ROUTER_DUMMY);
			}
			
			dataList_kiki.add(childMap_kktk);
		}
		
		// 光ハイブリッドの場合、上記の機器（クレイドル）と別にハイブリッド用ルータを作成する
		if (JKKStrConst.CD00134_3G72M_HYBRID.equals(svcKeiPcrsCd))
		{
			HashMap childMap_kktk = new HashMap();
			
			kikiPcrsCd = CD00134_MOB_3G7_2M_ROUTER;
			kikiPplanCd = getMobKikiPplanCd(bean[0], kikiPcrsCd);
			kikiSvcCd = getMobKikiSvcCd(bean[0], kikiPcrsCd);
			
			//機器提供サービス契約登録初期データ取得処理
			JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, kikiSvcCd, kikiPcrsCd, kikiPplanCd, "kk0341_", null, null,
					JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
			
			// SYSID
			childMap_kktk.put("kk0341_sysid", sysid);
			// 異動区分
			childMap_kktk.put("kk0341_ido_div", idoDiv);
			
			dataList_kiki.add(childMap_kktk);
		}
		
		// 請求契約番号追加
		if (null != seikyKeiNo)
		{
			// 請求契約番号
			parentMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			parentMap.put("kk0121_seiky_kei_no", seikyKeiNo);
			parentMap.put("kk0361_seiky_kei_no", seikyKeiNo);
			parentMap.put("seiky_kei_no", seikyKeiNo);
		}
		
		parentMap.put("key_pcrs_cd", getMobSvcKeiPcrsCd(bean[0]));
		
		
		// --------------------------
		// サービス契約内訳<eoモバイル>登録
		// --------------------------		
		// Wifiスポット、メールアドレス以外の場合
		if (!CD00134_MOB_WIFI.equals(svcKeiPcrsCd) && !JKKStrConst.CD00134_MOB_MAIL.equals(svcKeiPcrsCd))
		{
			// 回線コード(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_cd", JKKKeiNewCmnLogicUtil.getKaisenCd(bean[0], MSKM_KIND_MOBILE));
			// 回線場所住所コード(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_ad_cd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所郵便番号(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_pcd", bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所都道府県名(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_state_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所市区町村名(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_city_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所大字通称名(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所字丁目名(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所編集前番地(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_bnchigo", bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所住所補記・建物名(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_adrttm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// 回線場所住所補記・部屋番号(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_adrrm", bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
//			// 回線場所_契約者住所差異フラグ(サービス契約回線内訳)（契約者の住所を使用しているため差異がでない）
//			parentMap.put("kk0251_kaisen_plc_ksh_ad_sai_flg","0");
			// 住所形態コード(サービス契約回線内訳)（その他）
			parentMap.put("kk0251_ad_form_cd", JKKStrConst.CD00627_05);
			// 回線場所電話番号(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_place_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// お客様申告住所未確定フラグ
			parentMap.put("kk0251_cust_skk_ad_mi_fix_flg", null);
			// 回線場所住所未確定フラグ
			parentMap.put("kk0251_kisn_plc_ad_mi_fix_flg", "0");
			
			// 回線提供会社コード
			if (JKKStrConst.CD00133_09.equals(getMobSvcKeiPgrpCd(bean[0])))
			{
				parentMap.put("kk0251_kaisen_tk_comp_cd", JKKStrConst.CD00092_UQWiMAX);
			}
			else
			{
				parentMap.put("kk0251_kaisen_tk_comp_cd", JKKStrConst.CD00092_EMOBILE);
			}
		}

		// 支払い方法継続フラグ
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{
			parentMap.put("kk0121_payway_keizoku_flg", dataBean.sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE));
		}

		outputMap.put("KKSV008024CC", parentMap);

		return outputMap;
	}

	/**
	 * eoモバイル変更の上りマッピングを行います。
	 * <br>
	 * @param bean 申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @param opeDate 運用日付(yyyymmdd)
	 * @param mansionMap マンション情報マップ
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008025CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap mskmMap,
			String opeDate, HashMap mansionMap) throws Exception
	{
		if (null == bean)
		{
			return null;
		}

		if (1 != bean.length)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		HashMap preMap = (HashMap)mskmMap.get("KKSV007908CC");

		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 申込明細番号
		String mskmDtlNo = (String)preMap.get("mobile_mskm_dtl_no");
		ArrayList mobile_KikiList = (ArrayList)preMap.get("mobile_EKK0341B508CBSMsg1List");
		ArrayList kikiCancelList = new ArrayList();
		parentMap.put("Kiki_Cancel_list", kikiCancelList);
		ArrayList dataList_kiki = new ArrayList();
		parentMap.put("kktk_update_list", dataList_kiki);
		
		if (null != mobile_KikiList   && 0 < mobile_KikiList.size())
		{
			for (int i = 0; i < mobile_KikiList.size(); i++)
			{
				HashMap childMap = (HashMap)mobile_KikiList.get(i);

				// 機器提供サービス契約番号
				String kktkSvcKeiNo = (String)childMap.get("mobile_kktk_svc_kei_no");
				String svcKeiPcrsCd = getMobSvcKeiPcrsCd(bean[0]);
				String kikiPcrsCd = null;
				String kikiPplanCd = null;
				String kikiSvcCd = null;
				
				//ハイブリッドでコース変更されていない場合
				if(JKKStrConst.CD00134_3G72M_HYBRID.equals(svcKeiPcrsCd) 
						&& svcKeiPcrsCd.equals((String)childMap.get("mobile_pcrs_cd")))
				{
					kikiPcrsCd = (String)childMap.get("mobile_kktk_pcrs_cd");
				}
				else
				{
					kikiPcrsCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MOBILE_KIKI_COURSE_CHOICE,
							KKW00101SFConst.MOBILE_KIKI_CD_25, KKW00101SFConst.MOBILE_KIKI_CD_LIST_25);
				}
				kikiPplanCd = getMobKikiPplanCd(bean[0], kikiPcrsCd);
				kikiSvcCd = getMobKikiSvcCd(bean[0], kikiPcrsCd);
				
				// Wifiスポット、メールアドレス以外 かつ　コース変更されていない場合
				if (!CD00134_MOB_WIFI.equals(svcKeiPcrsCd) && !JKKStrConst.CD00134_MOB_MAIL.equals(svcKeiPcrsCd) 
						&& svcKeiPcrsCd.equals((String)childMap.get("mobile_pcrs_cd")))
				{
					boolean chgKkmdlFlg = false;
					
					//　機器が変更された場合
					if(!(kikiPcrsCd.equals((String)childMap.get("mobile_kktk_pcrs_cd"))) && !JKKStrConst.CD00134_3G72M_HYBRID.equals(svcKeiPcrsCd))
					{
						/*-----------------------------------------------
						 * 機器提供サービス契約料金プラン変更
						 *-----------------------------------------------*/
						// 機器提供サービス契約番号
						parentMap.put("kk034102_kktk_svc_kei_no", kktkSvcKeiNo);
						// 申込明細番号
						parentMap.put("kk034102_mskm_dtl_no", mskmDtlNo);
						// 料金コースコード
						parentMap.put("kk034102_pcrs_cd", kikiPcrsCd);
						// 料金プランコード
						parentMap.put("kk034102_pplan_cd", kikiPplanCd);
						// 予約適用年月日
						parentMap.put("kk034102_rsv_aply_ymd", opeDate);
						// 異動区分
						if (MSKM_FLG_SHINKI.equals(mskmFlg))
						{
							parentMap.put("kk034102_ido_div", JKKStrConst.CD00576_00001);	// 00001（新規契約）
						}
						else
						{
							parentMap.put("kk034102_ido_div", JKKStrConst.CD00576_00002);	// 00002（サービス追加）
						}
						// 更新年月日時分秒(更新前)
						parentMap.put("kk034102_upd_dtm_bf", (String)childMap.get("mobile_last_upd_dtm"));
						
						chgKkmdlFlg = true;
					}

					/*-----------------------------------------------
					 * 機器提供サービス契約情報変更
					 *-----------------------------------------------*/
					HashMap childMap_kktk = new HashMap();
					
					//機器提供サービス契約登録初期データ取得処理
					JKKWebCommon.getUpdKktkSvcKeiIniData(bean[0], kikiSvcCd, kikiPplanCd, childMap_kktk, "kk034103_", childMap, "mobile_", null,
							JKKWebCommon.getSvcMap(outputMap, KKSV008031CC), chgKkmdlFlg);
					// 申込明細番号
					childMap_kktk.put("kk034103_mskm_dtl_no", mskmDtlNo);
					
					// 3G 7.2Mコースルータタイプの場合
					if (CD00134_MOB_3G7_2M.equals(svcKeiPcrsCd) && CD00134_MOB_3G7_2M_ROUTER.equals(kikiPcrsCd))
					{
						// 宅内機器型式コード検索用料金プランコード
						childMap_kktk.put("kk034103_tkkkmdl_search_pplan_cd", PPLNCD_MOB_3G7_2M_ROUTER_DUMMY);
					}

					dataList_kiki.add(childMap_kktk);
				}
				
				// コース変更された時
				if(!svcKeiPcrsCd.equals((String)childMap.get("mobile_pcrs_cd")))
				{
					/*-----------------------------------------------
					 * 機器提供サービス契約キャンセル
					 *-----------------------------------------------*/
					

					HashMap kikiCancelMap = new HashMap();
					
					// 機器提供サービス契約番号
					kikiCancelMap.put("kk034101_kktk_svc_kei_no", kktkSvcKeiNo);
					// 申込明細番号
					kikiCancelMap.put("kk034101_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					kikiCancelMap.put("kk034101_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					kikiCancelMap.put("kk034101_ido_div", childMap.get("mobile_ido_div"));
					// 更新年月日時分秒(更新前)
					kikiCancelMap.put("kk034101_upd_dtm_bf", childMap.get("mobile_last_upd_dtm"));
					// 共通情報のマッピング
					kikiCancelMap.put("func_code", func_code);
					
					kikiCancelList.add(kikiCancelMap);
				}
			}
		}

		/*-----------------------------------------------
		 * サービス契約情報変更
		 *-----------------------------------------------*/
		// サービス契約番号
		parentMap.put("kk0121_svc_kei_no", (String)preMap.get("mobile_svc_kei_no"));
		// 申込明細番号
		parentMap.put("kk0121_mskm_dtl_no", (String)preMap.get("mobile_mskm_dtl_no"));

		// 整理番号
		parentMap.put("kk0121_seiri_no", (String)preMap.get("mobile_seiri_no")); 

		// 異動NG状態コード
		parentMap.put("kk0121_ido_ng_stat_cd", preMap.get("mobile_ido_ng_stat_cd"));

		// 異動区分
		if (MSKM_FLG_SHINKI.equals(mskmFlg))
		{
			parentMap.put("kk0121_ido_div", JKKStrConst.CD00576_00001);	// 00001（新規契約）
		}
		else
		{
			parentMap.put("kk0121_ido_div", JKKStrConst.CD00576_00002);	// 00002（サービス追加）
		}
		// 紹介コード
		parentMap.put("kk0121_intr_cd", bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));

		// 2012/05/04追加 UI残760 -->
		// 面開発案件番号
		// ホームの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			parentMap.put("kk0121_menkaihat_anken_no", bean[0].sendMessageString(KKW00101SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// <-- 2012/05/04追加 UI残760 

		//**********↓UI残-762**********
		// 業務連絡備考
		parentMap.put("kk0121_work_rrk_biko", bean[0].sendMessageString(KKW00101SFConst.MOBILE_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));
		//**********↑UI残-762**********
		
		// 自動照査処理状態コード
		String autoShosaTranStatCd = null;
		if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{
			// 書面申込
			autoShosaTranStatCd = JKKStrConst.CD00628_TGG;	// 対象外
		}
		else
		{
			autoShosaTranStatCd = JKKStrConst.CD00628_MI_TRAN;	// 未処理
		}
		parentMap.put("kk0121_auto_shosa_tran_stat_cd", autoShosaTranStatCd);
		
		// 審査結果コード
		parentMap.put("kk0121_skekka_cd", (String)preMap.get("mobile_skekka_cd"));
		// 審査結果詳細コード	
		parentMap.put("kk0121_skekka_dtl_cd", (String)preMap.get("mobile_skekka_dtl_cd"));
		// 審査結果補記コード	
		parentMap.put("kk0121_skekka_hoki_cd", (String)preMap.get("mobile_skekka_hoki_cd"));
		// 審査結果送信コード	
		parentMap.put("kk0121_skekka_send_cd", (String)preMap.get("mobile_skekka_send_cd"));

		parentMap.put("kk0121_upd_dtm_bf", (String)preMap.get("kk0121_last_upd_dtm")); // 更新年月日時分秒(更新前)

		// ID速報書出力要否
		parentMap.put("kk0121_id_sokhosho_output_yh", (String)preMap.get("kk0081_id_sokhosho_output_yh"));
		// 試用加入年月日
		parentMap.put("kk0121_ftrial_kanyu_ymd", (String)preMap.get("kk0081_ftrial_kanyu_ymd"));
		// 試用期間終了年月日
		parentMap.put("kk0121_ftrial_prd_endymd", (String)preMap.get("kk0081_ftrial_prd_endymd"));
		// 本加入年月日
		parentMap.put("kk0121_honkanyu_ymd", (String)preMap.get("kk0081_honkanyu_ymd"));
		// 本加入移行期限年月日
		parentMap.put("kk0121_honkanyu_iko_kigen_ymd", (String)preMap.get("kk0081_honkanyu_iko_kigen_ymd"));
		// レター発送仕分区分
		parentMap.put("kk0121_letter_hasso_shiwake_div", (String)preMap.get("kk0081_letter_hasso_shiwake_div"));
		// サンキューレター送付先コード
		parentMap.put("kk0121_thnx_letter_shs_cd", (String)preMap.get("kk0081_thnx_letter_shs_cd"));
		// WEBオプション追加不可フラグ
		parentMap.put("kk0121_web_op_add_fail_flg", (String)preMap.get("kk0081_web_op_add_fail_flg"));
		// 違約金発生コード
		parentMap.put("kk0121_pnlty_hassei_cd", (String)preMap.get("kk0081_pnlty_hassei_cd"));
		// MACアドレス
		parentMap.put("kk0121_macad", (String)preMap.get("kk0121_macad"));
		// 事業者用契約ID
		parentMap.put("kk0121_jigyosha_kei_id", (String)preMap.get("kk0121_jigyosha_kei_id"));
		// 事業者解約情報連携年月日
		parentMap.put("kk0121_jgs_dsl_info_rnki_ymd", (String)preMap.get("kk0121_jgs_dsl_info_rnki_ymd"));
		// 事業者解約情報連携受付年月日
		parentMap.put("kk0121_jgs_dsl_info_rnki_uk_ymd", (String)preMap.get("kk0121_jgs_dsl_info_rnki_uk_ymd"));
		// 事業者利用停止連携年月日
		parentMap.put("kk0121_jgs_use_stp_rnki_ymd", (String)preMap.get("kk0121_jgs_use_stp_rnki_ymd"));
		// 事業者利用停止受付年月日
		parentMap.put("kk0121_jgs_use_stp_uk_ymd", (String)preMap.get("kk0121_jgs_use_stp_uk_ymd"));
		// 事業者利用停止解除連携年月日
		parentMap.put("kk0121_jgs_use_stp_rls_rnki_ymd", (String)preMap.get("kk0121_jgs_use_stp_rls_rnki_ymd"));
		// 事業者利用停止解除受付年月日
		parentMap.put("kk0121_jgs_use_stp_rls_uk_ymd", (String)preMap.get("kk0121_jgs_use_stp_rls_uk_ymd"));
		// 事業者中断電話連絡年月日
		parentMap.put("kk0121_jgs_stp_tel_rrk_ymd", (String)preMap.get("kk0121_jgs_stp_tel_rrk_ymd"));
		// 事業者中断再開電話連絡年月日
		parentMap.put("kk0121_jgs_stp_skai_tel_rrk_ymd", (String)preMap.get("kk0121_jgs_stp_skai_tel_rrk_ymd"));
		// 事業者解約電話連絡年月日
		parentMap.put("kk0121_jgs_dsl_tel_rrk_ymd", (String)preMap.get("kk0121_jgs_dsl_tel_rrk_ymd"));
		// コース変更NG状態コード
		parentMap.put("kk0121_coursechg_ng_stat_cd", (String)preMap.get("kk0121_coursechg_ng_stat_cd"));
		// 事業者コース変更連携年月日
		parentMap.put("kk0121_jgs_coursechg_rnk_ymd", (String)preMap.get("kk0121_jgs_coursechg_rnk_ymd"));
		// コース変更通知メール作成年月日
		parentMap.put("kk0121_coursechg_tch_ml_sksi_ymd", (String)preMap.get("kk0121_coursechg_tch_ml_sksi_ymd"));
		// USIM返却年月日(KOPT)
		parentMap.put("kk0121_usim_rtn_ymd_kopt", (String)preMap.get("kk0121_usim_rtn_ymd_kopt"));
		// USIM返却年月日(モバイル事業者)
		parentMap.put("kk0121_usim_rtn_ymd_mbl_jgs", (String)preMap.get("kk0121_usim_rtn_ymd_mbl_jgs"));

		/*-----------------------------------------------
		 * 申込明細情報変更
		 *-----------------------------------------------*/
		// 申込明細番号
		parentMap.put("kk002102_mskm_dtl_no", (String)preMap.get("mobile_mskm_dtl_no"));

		// 申込書番号
		parentMap.put("kk002102_mskmsho_no", (String)preMap.get("mobile_mskmsho_no"));
		
		
		// 申込年月日
		String mskmYmd =
			bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE)
				+ bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("kk002102_mskm_ymd", mskmYmd);

		// 申込形態コード
		parentMap.put("kk002102_mskm_form_cd", getAddMskmFormCd(bean[0]));

		// 昼間連絡先電話番号
		parentMap.put("kk002102_dt_rrks_telno", (String)preMap.get("mobile_dt_rrks_telno"));
		
		// ホームの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_HOME, null))
		{
			// 新築物件コード
			parentMap.put("kk002102_newconst_bukken_cd", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.NEWCONST_BUKKEN, 
																				JKKStrConst.NEWCONST_BUKKEN_YES, JKKStrConst.NEWCONST_BUKKEN_NO));

			// 復活案件フラグ
			parentMap.put("kk002102_hukkat_anken_flg", JKKKeiNewCmnLogicUtil.dataBeanGetBooleanCode(bean[0], KKW00101SFConst.HUKKAT_ANKEN, 
																				JKKStrConst.HUKKAT_ANKEN_YES, JKKStrConst.HUKKAT_ANKEN_NO));

			// 同一設備再申込コード
			String sameEquipReMskmCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SAME_EQUIP_RE_MSKM
														, KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_56, KKW00101SFConst.SAME_EQUIP_RE_MSKM_CD_LIST_56);
			parentMap.put("kk002102_same_equip_re_mskm_cd", sameEquipReMskmCd);
		}
		else
		{
			parentMap.put("kk002102_newconst_bukken_cd", NEWCONST_BKN_CD_SHKV);
			parentMap.put("kk002102_hukkat_anken_flg", HUKKAT_NASHI);
			parentMap.put("kk002102_same_equip_re_mskm_cd", SAME_EQUIP_RE_MSKM_CD_SHKV);
		}		
		
		
		// 申込明細種別コード
		parentMap.put("kk002102_mskm_dtl_sbt_cd", (String)preMap.get("mobile_mskm_dtl_sbt_cd"));
		// 新規申込種別コード
		parentMap.put("kk002102_new_mskm_sbt_cd", (String)preMap.get("mobile_new_mskm_sbt_cd"));
		// 連絡事項登録年月日時分秒
		parentMap.put("kk002102_rrk_jiko_add_dtm", (String)preMap.get("mobile_rrk_jiko_add_dtm"));
		// 申込連絡先メールアドレス
		parentMap.put("kk002102_mskm_rrks_mlad", bean[0].sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE));
		// 連絡事項
		parentMap.put("kk002102_rrk_jiko", (String)preMap.get("mobile_rrk_jiko"));
		// 連絡先携帯電話番号
		parentMap.put("kk002102_rrks_ktai_telno", (String)preMap.get("mobile_rrks_ktai_telno"));
		// 連絡先勤務先名
		parentMap.put("kk002102_rrks_offc_nm", (String)preMap.get("mobile_rrks_offc_nm"));
		// 申込契機コード
		parentMap.put("kk002102_mskm_optnty_cd", (String)preMap.get("mobile_mskm_optnty_cd"));
		// 宅内調査希望アポ期限年月日
		parentMap.put("kk002102_takcho_kibo_apo_kigen_ymd", (String)preMap.get("mobile_takcho_kibo_apo_kigen_ymd"));
		// 工事アポ連絡先指定コード
		parentMap.put("kk002102_koji_apo_rrks_shitei_cd", (String)preMap.get("mobile_koji_apo_rrks_shitei_cd"));
		// 工事アポ連絡先電話番号
		parentMap.put("kk002102_koji_apo_rrks_telno", (String)preMap.get("mobile_koji_apo_rrks_telno"));
		// 工事進捗通知メールアドレス
		parentMap.put("kk002102_koji_prg_tchi_mlad", (String)preMap.get("mobile_koji_prg_tchi_mlad"));
		// 工事進捗通知携帯メールアドレス
		parentMap.put("kk002102_kjsc_tch_ktai_mlad", (String)preMap.get("mobile_kjsc_tch_ktai_mlad"));
		// 工事進捗通知PCメールアドレス変更年月日
		parentMap.put("kk002102_kjsc_tch_pc_mlad_chg_ymd", (String)preMap.get("mobile_kjsc_tch_pc_mlad_chg_ymd"));
		// 工事進捗通知携帯メールアドレス変更年月日
		parentMap.put("kk002102_kjsc_tch_ktai_mlad_chg_ymd", (String)preMap.get("mobile_kjsc_tch_ktai_mlad_chg_ymd"));
		// メール送信除外フラグ
		parentMap.put("kk002102_ml_send_jgi_flg", (String)preMap.get("mobile_ml_send_jgi_flg"));
		// メール送信除外理由メモ
		parentMap.put("kk002102_ml_send_jgi_rsn_memo", (String)preMap.get("mobile_ml_send_jgi_rsn_memo"));
		// 番ポ申込連絡先電話番号
		parentMap.put("kk002102_bmp_mskm_rrks_tln", (String)preMap.get("mobile_bmp_mskm_rrks_tln"));

		// マンション設備システム連携用記事欄 (2012/04/20追加 UI残759)
		parentMap.put("kk002102_manssbsys_rnki_yo_kijiran"
				, bean[0].sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 最新照会年月日
		parentMap.put("kk002102_rcnt_shokai_ymd", (String)preMap.get("mobile_rcnt_shokai_ymd"));
		// Web照会回数
		parentMap.put("kk002102_web_shokai_cnt", (String)preMap.get("mobile_web_shokai_cnt"));
		// PC照会回数
		parentMap.put("kk002102_pc_shokai_cnt", (String)preMap.get("mobile_pc_shokai_cnt"));
		// 携帯照会回数
		parentMap.put("kk002102_ktai_shokai_cnt", (String)preMap.get("mobile_ktai_shokai_cnt"));
		// KCNSTB申込台数
		parentMap.put("kk002102_kcn_stb_mskm_cnt", (String)preMap.get("mobile_kcn_stb_mskm_cnt"));
		// KCNSTB種類コード	
		parentMap.put("kk002102_kcn_stb_kind_cd", (String)preMap.get("mobile_kcn_stb_kind_cd"));
		
		String mskmSbtCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if(MSKM_FLG_TSUIKA.equals(mskmSbtCd))
		{	// 追加申込の場合
			// オプションサービス引継有無
			String opSvcHktgiUm = UMU_NASI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.SVC_NYO_HKTGI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				opSvcHktgiUm = UMU_ARI;
			}
			parentMap.put("kk002102_op_svc_hktgi_um", opSvcHktgiUm);

			// 解約書類送付希望有無
			String dslAticleSohuKiboUm = UMU_NASI;
			if(bean[0].sendMessageBoolean(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO, X31CWebConst.DATABEAN_GET_VALUE))
			{
				dslAticleSohuKiboUm = UMU_ARI;
			}
			parentMap.put("kk002102_dsl_aticle_sohu_kibo_um", dslAticleSohuKiboUm);
		}

		// 本人確認書類種別コード
		String hninBunshoKind = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SBT_LIST,
				KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		hninBunshoKind = (JKKStrConst.CD01566_9.equals(hninBunshoKind))?(""):(hninBunshoKind);

		parentMap.put("kk002102_hnin_cfm_aticle_sbt_cd", hninBunshoKind); 

		//本人確認書類コードがその他の場合
		if (JKKStrConst.CD00714_3.equals(hninBunshoKind))
		{
			parentMap.put("kk002102_hnin_cfm_aticle_nm",
					bean[0].sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));
		}

		if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd) && (MSKM_KIND_HOME.equals(mskmKind) || MSKM_KIND_MEZON.equals(mskmKind)))
		{	// 書面申込のホームまたはメゾン
			// 地図添付有無
			String maptempAri = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MAPTEMP_ARI
					, KKW00101SFConst.MAP_TEMP_UM_CD_38, KKW00101SFConst.MAP_TEMP_UM_CD_LIST_38);
			parentMap.put("kk002102_map_temp_um", maptempAri);
			// 申込書取扱情報担当者名
			parentMap.put("kk002102_mskmsho_trat_if_tntsha_nm"
					, bean[0].sendMessageString(KKW00101SFConst.TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 申込書取扱情報電話番号
			parentMap.put("kk002102_mskmsho_trat_if_telno"
					, bean[0].sendMessageString(KKW00101SFConst.TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 契約付加コード
		// マンション・メゾンの場合
		if (isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MANSION, null) || isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_MEZON, null))
		{
			String keiHukaCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.FUKA_LIST
											, KKW00101SFConst.FUKA_CD_57, KKW00101SFConst.FUKA_CD_LIST_57);
			parentMap.put("kk002102_kei_huka_cd", keiHukaCd);
			// マンションID
			parentMap.put("kk002102_mansion_id", bean[0].sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE));
			// CAT-ID
			parentMap.put("kk002102_catid", bean[0].sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 申込受付種別コード
		String mskmUkSbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MSKM_SBT
				, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		parentMap.put("kk002102_mkm_uk_sbt_cd", mskmUkSbtCd);
		// 更新年月日時分秒(更新前)
		parentMap.put("kk002102_upd_dtm_bf", (String)preMap.get("mobile_mskm_last_upd_dtm"));
		// 申込書明細番号
		parentMap.put("kk002102_mskmsho_dtl_no", bean[0].sendMessageString(KKW00101SFConst.MBL_MSKMSHO_DTL_NO, X31CWebConst.DATABEAN_GET_VALUE));


		/*-----------------------------------------------
		 * サービス契約回線内訳内容変更
		 *-----------------------------------------------*/
		// Wifiスポット、メールアドレス以外の場合
		String svcKeiPcrsCd = getMobSvcKeiPcrsCd(bean[0]);
		if (!CD00134_MOB_WIFI.equals(svcKeiPcrsCd) && !JKKStrConst.CD00134_MOB_MAIL.equals(svcKeiPcrsCd))
		{
			ArrayList<HashMap<String, Object>> svcKaisenList = (ArrayList<HashMap<String, Object>>)preMap.get("mobile_EKK0251B001CBSMsg1List");
			if(null !=  svcKaisenList && 0 < svcKaisenList.size())
			{
				HashMap<String, Object> svcKaisenMap = svcKaisenList.get(0);
				// サービス契約回線内訳番号
				parentMap.put("kk0251_svc_kei_kaisen_ucwk_no", svcKaisenMap.get("svc_kei_kaisen_ucwk_no"));
				// 申込明細番号
				parentMap.put("kk0251_mskm_dtl_no", svcKaisenMap.get("mskm_dtl_no"));
				// 回線場所住所未確定フラグ
				parentMap.put("kk0251_kisn_plc_ad_mi_fix_flg", svcKaisenMap.get("kisn_plc_ad_mi_fix_flg"));
				// 回線場所住所未確定解除年月日
				parentMap.put("kk0251_kisn_plc_ad_mi_fix_rls_ymd", svcKaisenMap.get("kisn_plc_ad_mi_fix_rls_ymd"));
				// 回線場所_契約者住所差異フラグ
				parentMap.put("kk0251_kaisen_plc_ksh_ad_sai_flg", svcKaisenMap.get("kaisen_plc_ksh_ad_sai_flg"));
				// お客様SOS利用有無
				parentMap.put("kk0251_cust_sos_use_um", svcKaisenMap.get("cust_sos_use_um"));
				// マンション物件番号
				parentMap.put("kk0251_mansion_bukken_no", svcKaisenMap.get("mansion_bukken_no"));
				// 回線場所カナ名
				parentMap.put("kk0251_kaisen_plc_kana", svcKaisenMap.get("kaisen_plc_kana"));
				// 回線場所区画整理中フラグ
				parentMap.put("kk0251_kisn_plc_kkk_seiri_chu_flg", svcKaisenMap.get("kisn_plc_kkk_seiri_chu_flg"));
				// 回線場所補足コード1
				parentMap.put("kk0251_kisn_plc_hsk_cd_1", svcKaisenMap.get("kisn_plc_hsk_cd_1"));
				// 回線場所補足コード2
				parentMap.put("kk0251_kisn_plc_hsk_cd_2", svcKaisenMap.get("kisn_plc_hsk_cd_2"));
				// 回線場所補足メモ
				parentMap.put("kk0251_kisn_plc_hsk_memo", svcKaisenMap.get("kisn_plc_hsk_memo"));
				// 回線場所住所確定後変更可否
				parentMap.put("kk0251_kisn_plc_ad_fix_af_chge_kh", svcKaisenMap.get("kisn_plc_ad_fix_af_chge_kh"));
				// 竣工予定年月日
				parentMap.put("kk0251_shunko_rsv_ymd", svcKaisenMap.get("shunko_rsv_ymd"));
				// 電力送電予定年月日
				parentMap.put("kk0251_epower_soden_rsv_ymd", svcKaisenMap.get("epower_soden_rsv_ymd"));
				// 入居予定年月日
				parentMap.put("kk0251_nyukyo_rsv_ymd", svcKaisenMap.get("nyukyo_rsv_ymd"));
				// 引渡し予定年月日
				parentMap.put("kk0251_hikiwatashi_rsv_ymd", svcKaisenMap.get("hikiwatashi_rsv_ymd"));
				// 引越し予定年月日
				parentMap.put("kk0251_hikkoshi_rsv_ymd", svcKaisenMap.get("hikkoshi_rsv_ymd"));
				// X座標
				parentMap.put("kk0251_xzahyo", svcKaisenMap.get("xzahyo"));
				// Y座標
				parentMap.put("kk0251_yzahyo", svcKaisenMap.get("yzahyo"));
				// 経度
				parentMap.put("kk0251_lgtd", svcKaisenMap.get("lgtd"));
				// 緯度
				parentMap.put("kk0251_lttd", svcKaisenMap.get("lttd"));
				// 座標補正有無
				parentMap.put("kk0251_zahyo_hosei_um", svcKaisenMap.get("zahyo_hosei_um"));
				// テレビ個別対応コード
				parentMap.put("kk0251_tv_kobet_taio_cd", svcKaisenMap.get("tv_kobet_taio_cd"));
				// TVアンテナ有無
				parentMap.put("kk0251_tv_antenna_um", svcKaisenMap.get("tv_antenna_um"));
				// 方角コード1
				parentMap.put("kk0251_direction_cd_1", svcKaisenMap.get("direction_cd_1"));
				// 方角コード2
				parentMap.put("kk0251_direction_cd_2", svcKaisenMap.get("direction_cd_2"));
				// 戸建建築階数コード
				parentMap.put("kk0251_kodate_kcku_flr_cnt_cd", svcKaisenMap.get("kodate_kcku_flr_cnt_cd"));
				// 集合住宅入居階数コード
				parentMap.put("kk0251_shugj_nyukyo_flr_cnt_cd", svcKaisenMap.get("shugj_nyukyo_flr_cnt_cd"));
				// PON種別コード
				parentMap.put("kk0251_pon_sbt_cd", svcKaisenMap.get("pon_sbt_cd"));
				// 回線提供会社コード
				parentMap.put("kk0251_kaisen_tk_comp_cd", svcKaisenMap.get("kaisen_tk_comp_cd"));
				// VDSL利用電話回線種別コード
				parentMap.put("kk0251_vdsl_use_tel_kisn_sbt_cd", svcKaisenMap.get("vdsl_use_tel_kisn_sbt_cd"));
				// VDSL利用電話回線切替予定年月日
				parentMap.put("kk0251_vdsl_use_dksn_swch_rsv_ymd", svcKaisenMap.get("vdsl_use_dksn_swch_rsv_ymd"));
				// VDSL利用対象電話番号回線種別コード
				parentMap.put("kk0251_vdsl_use_tg_dbksn_sbt_cd", svcKaisenMap.get("vdsl_use_tg_dbksn_sbt_cd"));
				// VDSL利用対象電話番号
				parentMap.put("kk0251_vdsl_use_tg_telno", svcKaisenMap.get("vdsl_use_tg_telno"));
				// 引越し年月日
				parentMap.put("kk0251_hikkoshi_ymd", svcKaisenMap.get("hikkoshi_ymd"));
				// 該当エリアサービス開始年月日
				parentMap.put("kk0251_gaito_area_svc_staymd", svcKaisenMap.get("gaito_area_svc_staymd"));
				// 撤去工事希望年月日
				parentMap.put("kk0251_tekkyo_koji_kibo_ymd", svcKaisenMap.get("tekkyo_koji_kibo_ymd"));
				// 起点変電所コード
				parentMap.put("kk0251_kiten_hdsho_cd", svcKaisenMap.get("kiten_hdsho_cd"));
				// 集約局コード
				parentMap.put("kk0251_shyakk_cd", svcKaisenMap.get("shyakk_cd"));
				// 更新年月日時分秒(更新前)
				parentMap.put("kk0251_upd_dtm_bf", svcKaisenMap.get("last_upd_dtm"));
			}
			// 回線コード(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_cd", JKKKeiNewCmnLogicUtil.getKaisenCd(bean[0], MSKM_KIND_MOBILE));
			
			// 回線場所電話番号
			parentMap.put("kk0251_kaisen_place_telno"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所住所コード
			parentMap.put("kk0251_kaisen_place_ad_cd"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_AD_CD, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所郵便番号
			parentMap.put("kk0251_kaisen_place_pcd"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)
					+ bean[0].sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所都道府県名
			parentMap.put("kk0251_kaisen_place_state_nm"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所市区町村名
			parentMap.put("kk0251_kaisen_place_city_nm"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所大字通称名
			parentMap.put("kk0251_kaisen_place_oaztsu_nm"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所字丁目名
			parentMap.put("kk0251_kaisen_place_azcho_nm"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所番地号
			parentMap.put("kk0251_kaisen_place_bnchigo"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所住所補記・建物名
			parentMap.put("kk0251_kaisen_place_adrttm"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 回線場所住所補記・部屋番号
			parentMap.put("kk0251_kaisen_place_adrrm"
					, bean[0].sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 住所形態コード
			parentMap.put("kk0251_ad_form_cd", JKKStrConst.CD00627_05);
			
			// 回線提供会社コード
			if (JKKStrConst.CD00133_09.equals(getMobSvcKeiPgrpCd(bean[0])))
			{
				parentMap.put("kk0251_kaisen_tk_comp_cd", JKKStrConst.CD00092_UQWiMAX);
			}
			else
			{
				parentMap.put("kk0251_kaisen_tk_comp_cd", JKKStrConst.CD00092_EMOBILE);
			}
			// お客様申告住所未確定フラグ
			parentMap.put("kk0251_cust_skk_ad_mi_fix_flg", null);
			// 回線コード(サービス契約回線内訳)
			parentMap.put("kk0251_kaisen_cd", JKKKeiNewCmnLogicUtil.getKaisenCd(bean[0], MSKM_KIND_MOBILE));
		}

		// 申込明細番号
		mskmDtlNo = (String)preMap.get("mobile_mskm_dtl_no");

		ArrayList mobile_optionList = (ArrayList)preMap.get("mobile_optionList");

		ArrayList sbopSvcKeiCancelList = new ArrayList();
		parentMap.put("subop_svc_kei_list", sbopSvcKeiCancelList);

		ArrayList opSvcKeiCancelList = new ArrayList();
		parentMap.put("op_svc_kei_list", opSvcKeiCancelList);

		if (null != mobile_optionList && 0 < mobile_optionList.size())
		{
			for (int i = 0; i < mobile_optionList.size(); i++)
			{
				HashMap childMap = (HashMap)mobile_optionList.get(i);

				String opSvcKeiNo = (String)childMap.get("kk0361_op_svc_kei_no");
				String sbopSvcKeiNo = (String)childMap.get("kk0401_sbop_svc_kei_no");

				if (null != sbopSvcKeiNo   && !"".equals(sbopSvcKeiNo))
				{
					/*-----------------------------------------------
					 * サブオプションサービス契約キャンセル
					 *-----------------------------------------------*/
					HashMap sbopSvcKeiCancelMap = new HashMap();
					sbopSvcKeiCancelList.add(sbopSvcKeiCancelMap);

					// オプションサービス契約番号
					sbopSvcKeiCancelMap.put("kk0401_op_svc_kei_no", opSvcKeiNo);
					// サブオプションサービス契約番号
					sbopSvcKeiCancelMap.put("kk0401_sbop_svc_kei_no", sbopSvcKeiNo);
					// 申込明細番号
					sbopSvcKeiCancelMap.put("kk0401_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					sbopSvcKeiCancelMap.put("kk0401_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					sbopSvcKeiCancelMap.put("kk0401_ido_div", childMap.get("kk0401_ido_div"));
					// 更新年月日時分秒(更新前)
					sbopSvcKeiCancelMap.put("kk0401_upd_dtm_bf", childMap.get("kk0401_last_upd_dtm"));
				}

				if (null != opSvcKeiNo  && !"".equals(opSvcKeiNo))
				{
					/*-----------------------------------------------
					 * オプションサービス契約キャンセル
					 *-----------------------------------------------*/
					HashMap opSvcKeiCancelMap = new HashMap();
					opSvcKeiCancelList.add(opSvcKeiCancelMap);

					// オプションサービス契約番号
					opSvcKeiCancelMap.put("kk0351_op_svc_kei_no", opSvcKeiNo);
					// 申込明細番号
					opSvcKeiCancelMap.put("kk0351_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					opSvcKeiCancelMap.put("kk0351_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					opSvcKeiCancelMap.put("kk0351_ido_div", childMap.get("kk0351_ido_div"));
					// 更新年月日時分秒(更新前)
					opSvcKeiCancelMap.put("kk0351_upd_dtm_bf", childMap.get("kk0351_last_upd_dtm"));
				}
			}
		}

		/*-----------------------------------------------
		 * サービス契約内訳キャンセル
		 *-----------------------------------------------*/
		ArrayList mobile_svcKeiUcwkList = (ArrayList)preMap.get("mobile_EKK0201A010CBSMsg1List");

		ArrayList svcKeiUcwkCancelList = new ArrayList();
		parentMap.put("svc_kei_ucwk_list", svcKeiUcwkCancelList);

		if (null != mobile_svcKeiUcwkList && 0 < mobile_svcKeiUcwkList.size())
		{
			for (int i = 0; i < mobile_svcKeiUcwkList.size(); i++)
			{
				HashMap childMap = (HashMap)mobile_svcKeiUcwkList.get(i);

				String svcKeiUcwkNo = (String)childMap.get("kk0201_svc_kei_ucwk_no");

				if (null != svcKeiUcwkNo && !"".equals(svcKeiUcwkNo))
				{
					HashMap svcKeiUcwkCancelMap = new HashMap();
					svcKeiUcwkCancelList.add(svcKeiUcwkCancelMap);

					// サービス契約内訳番号
					svcKeiUcwkCancelMap.put("kk0161_svc_kei_ucwk_no", svcKeiUcwkNo);
					// 申込明細番号
					svcKeiUcwkCancelMap.put("kk0161_mskm_dtl_no", mskmDtlNo);
					// サービスキャンセル理由コード
					svcKeiUcwkCancelMap.put("kk0161_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
					// 異動区分
					svcKeiUcwkCancelMap.put("kk0161_ido_div", childMap.get("kk0161_ido_div"));
					// 更新年月日時分秒(更新前)
					svcKeiUcwkCancelMap.put("kk0161_upd_dtm_bf", childMap.get("kk0201_last_upd_dtm"));
				}
			}
		}

		ArrayList mobile_svcKeiKaisenUcwkList = (ArrayList)preMap.get("mobile_EKK0251B001CBSMsg1List");

		if (null != mobile_svcKeiKaisenUcwkList && 0 < mobile_svcKeiKaisenUcwkList.size())
		{
			HashMap childMap = (HashMap)mobile_svcKeiKaisenUcwkList.get(0);

			String svcKeiKaisenUcwkNo = (String)childMap.get("svc_kei_kaisen_ucwk_no");
			if (null != svcKeiKaisenUcwkNo && !"".equals(svcKeiKaisenUcwkNo))
			{
				/*-----------------------------------------------
				 * 回線対象サービス契約一意照会
				 *-----------------------------------------------*/
				// サービス契約番号
				parentMap.put("kk024101_key_svc_kei_no", (String)preMap.get("mobile_svc_kei_no"));
				// サービス契約回線内訳番号
				parentMap.put("kk024101_key_svc_kei_kaisen_ucwk_no", svcKeiKaisenUcwkNo);

				/*-----------------------------------------------
				 * 回線対象サービス契約変更
				 *-----------------------------------------------*/
				// サービス契約番号
				parentMap.put("kk024102_svc_kei_no", (String)preMap.get("mobile_svc_kei_no"));
				// サービス契約回線内訳番号
				parentMap.put("kk024102_svc_kei_kaisen_ucwk_no", svcKeiKaisenUcwkNo);
				// 回線内訳使用終了年月日
				parentMap.put("kk024102_kaisen_ucwk_use_endymd", opeDate);

				/*-----------------------------------------------
				 * サービス契約回線内訳キャンセル
				 *-----------------------------------------------*/
				// サービス契約回線内訳番号
				parentMap.put("kk0251_svc_kei_kaisen_ucwk_no", childMap.get("svc_kei_kaisen_ucwk_no"));
				// 申込明細番号
				parentMap.put("kk0251_mskm_dtl_no", mskmDtlNo);
				// サービスキャンセル理由コード
				parentMap.put("kk0251_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
				// 更新年月日時分秒(更新前)
				parentMap.put("kk0251_upd_dtm_bf", childMap.get("last_upd_dtm"));
			}
		}

		// SYSID
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		// 異動区分
		String idoDiv = null;
		if (MSKM_FLG_SHINKI.equals(mskmFlg))
		{
			idoDiv = JKKStrConst.CD00576_00001;	// 00001（新規契約）
		}
		else
		{
			idoDiv = JKKStrConst.CD00576_00002;	// 00002（サービス追加）
		}
		// 請求契約番号
		String seikyKeiNo = getSeikyKeiNo(mskmMap); // 請求契約番号

		/*-----------------------------------------------
		 * サービス契約内訳＜eoモバイル＞登録
		 *-----------------------------------------------*/
		// Wifi用
		if (!JKKStrConst.CD00134_MOB_MAIL.equals(getMobSvcKeiPcrsCd(bean[0])))
		{
			// 料金コースコード
			parentMap.put("kk0201_pcrs_cd", JKKStrConst.CD00134_MOB_WIFI);
			// 料金プランコード
			parentMap.put("kk0201_pplan_cd", JKKStrConst.CD00565_MOB_WIFI);
			// 異動区分
			if (MSKM_FLG_SHINKI.equals(mskmFlg))
			{
				parentMap.put("kk0201_ido_div", JKKStrConst.CD00576_00001);	// 00001（新規契約）
			}
			else
			{
				parentMap.put("kk0201_ido_div", JKKStrConst.CD00576_00002);	// 00002（サービス追加）
			}

			// スポットログインSYSID
			parentMap.put("kk0201_spot_login_sysid", sysid);
			// 事務手数料自動適用要否
			parentMap.put("rule0059_auto_aply", JKKStrConst.CD00001_0);
			
		}

		// UQ-WiMAXの場合
		if (JKKStrConst.CD00133_09.equals(getMobSvcKeiPgrpCd(bean[0])))
		{
			// 認証ID用
			// 料金コースコード
			parentMap.put("kk020102_pcrs_cd", JKKStrConst.CD00134_MOB_WIMAX);
			// 料金プランコード
			parentMap.put("kk020102_pplan_cd", JKKStrConst.CD00565_MOB_WIMAX);
			// 異動区分
			if (MSKM_FLG_SHINKI.equals(mskmFlg))
			{
				parentMap.put("kk020102_ido_div", JKKStrConst.CD00576_00001);	// 00001（新規契約）
			}
			else
			{
				parentMap.put("kk020102_ido_div", JKKStrConst.CD00576_00002);	// 00002（サービス追加）
			}
			// スポットログインSYSID
			parentMap.put("kk020102_spot_login_sysid", sysid);
		}

		/*-----------------------------------------------
		 * オプションサービス契約登録
		 *-----------------------------------------------*/
		// SYSID
		parentMap.put("kk0361_sysid", sysid);
		// 異動区分
		parentMap.put("kk0361_ido_div", idoDiv);
		// 親契約識別コード
		parentMap.put("kk0361_oya_kei_skbt_cd", JKKStrConst.CD_DIV_OYAKEISKBTCD_SVCKEI); // 01（サービス契約）

		/*-----------------------------------------------
		 * 機器提供サービス契約登録
		 *-----------------------------------------------*/
		dataList_kiki = new ArrayList();
		parentMap.put("kktk_add_list", dataList_kiki);

		String kikiPcrsCd = null;
		String kikiPplanCd = null;
		String kikiSvcCd = null;

		// コース変更された場合
		if (!((String)preMap.get("mobile_pcrs_cd")).equals(svcKeiPcrsCd))
		{
			// Wifiスポット、メールアドレス以外の場合
			if (!CD00134_MOB_WIFI.equals(svcKeiPcrsCd) && !JKKStrConst.CD00134_MOB_MAIL.equals(svcKeiPcrsCd))
			{
				HashMap childMap_kktk = new HashMap();
				
				kikiPcrsCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MOBILE_KIKI_COURSE_CHOICE,
						KKW00101SFConst.MOBILE_KIKI_CD_25, KKW00101SFConst.MOBILE_KIKI_CD_LIST_25);
				kikiPplanCd = getMobKikiPplanCd(bean[0], kikiPcrsCd);
				kikiSvcCd = getMobKikiSvcCd(bean[0], kikiPcrsCd);
				
				//機器提供サービス契約登録初期データ取得処理
				JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, kikiSvcCd, kikiPcrsCd, kikiPplanCd, "kk0341_", null, null,
						JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
				// 申込明細番号
				childMap_kktk.put("kk0341_mskm_dtl_no", (String)preMap.get("mobile_mskm_dtl_no"));
				// サービス契約番号
				childMap_kktk.put("kk0341_svc_kei_no", (String)preMap.get("mobile_svc_kei_no"));
				// SYSID
				childMap_kktk.put("kk0341_sysid", sysid);
				// 異動区分
				childMap_kktk.put("kk0341_ido_div", idoDiv);
				
				// 請求契約番号追加
				if (null != seikyKeiNo)
				{
					// 請求契約番号
					childMap_kktk.put("kk0341_seiky_kei_no", seikyKeiNo);
				}
				
				// 3G 7.2Mコースルータタイプの場合
				if (CD00134_MOB_3G7_2M.equals(svcKeiPcrsCd) && CD00134_MOB_3G7_2M_ROUTER.equals(kikiPcrsCd))
				{
					// 宅内機器型式コード検索用料金プランコード
					childMap_kktk.put("kk0341_tkkkmdl_search_pplan_cd", PPLNCD_MOB_3G7_2M_ROUTER_DUMMY);
				}
				
				dataList_kiki.add(childMap_kktk);
			}
			
			// 光ハイブリッドの場合、上記の機器(クレイドル)と別にハイブリッド用ルータを作成する
			if (JKKStrConst.CD00134_3G72M_HYBRID.equals(svcKeiPcrsCd))
			{
				HashMap childMap_kktk = new HashMap();

				kikiPcrsCd = CD00134_MOB_3G7_2M_ROUTER;
				kikiPplanCd = getMobKikiPplanCd(bean[0], kikiPcrsCd);
				kikiSvcCd = getMobKikiSvcCd(bean[0], kikiPcrsCd);
				
				//機器提供サービス契約登録初期データ取得処理
				JKKWebCommon.getKktkSvcKeiIniData(bean[0], childMap_kktk, kikiSvcCd, kikiPcrsCd, kikiPplanCd, "kk0341_", null, null,
						JKKWebCommon.getSvcMap(outputMap, KKSV008031CC));
				
				// 申込明細番号
				childMap_kktk.put("kk0341_mskm_dtl_no", (String)preMap.get("mobile_mskm_dtl_no"));
				// サービス契約番号
				childMap_kktk.put("kk0341_svc_kei_no", (String)preMap.get("mobile_svc_kei_no"));
				// SYSID
				childMap_kktk.put("kk0341_sysid", sysid);
				// 異動区分
				childMap_kktk.put("kk0341_ido_div", idoDiv);
				
				// 請求契約番号追加
				if (null != seikyKeiNo)
				{
					// 請求契約番号
					childMap_kktk.put("kk0341_seiky_kei_no", seikyKeiNo);
				}
				
				dataList_kiki.add(childMap_kktk);
			}
		}

		// 請求契約番号追加
		if (null != seikyKeiNo)
		{
			// 請求契約番号
			parentMap.put("kk0341_seiky_kei_no", seikyKeiNo);
			parentMap.put("kk0121_seiky_kei_no", seikyKeiNo);
			parentMap.put("seiky_kei_no", seikyKeiNo);
			parentMap.put("kk0361_seiky_kei_no", seikyKeiNo);
		}

		parentMap.put("key_pcrs_cd", getMobSvcKeiPcrsCd(bean[0]));



		/*-----------------------------------------------
		 * サービス契約手続中料金プラン変更
		 *-----------------------------------------------*/
		// サービス契約番号
		parentMap.put("kk0081_svc_kei_no", (String)preMap.get("mobile_svc_kei_no"));
		// 申込明細番号
		parentMap.put("kk0081_mskm_dtl_no", mskmDtlNo);
		
		// 料金グループコード
		parentMap.put("kk0081_prc_grp_cd", getMobSvcKeiPgrpCd(bean[0]));
		// 料金コースコード
		parentMap.put("kk0081_pcrs_cd", getMobSvcKeiPcrsCd(bean[0]));
		// 料金プランコード
		parentMap.put("kk0081_pplan_cd", getMobSvcKeiPplanCd(bean[0]));
		// 更新年月日時分秒(更新前)
		parentMap.put("kk0081_upd_dtm_bf", (String)preMap.get("kk0081_last_upd_dtm"));

		// eoモバイル：コース変更有無フラグ
		if (!((String)preMap.get("mobile_pcrs_cd")).equals(getMobSvcKeiPcrsCd(bean[0])))
		{
			parentMap.put("mobile_course_flg", MOBILE_COURSE_CHANGE);
		}
		else
		{
			parentMap.put("mobile_course_flg", MOBILE_COURSE_NO_CHANGE);
		}
		
		parentMap.put("svc_kei_no", (String)preMap.get("mobile_svc_kei_no"));
		parentMap.put("mskm_dtl_no", mskmDtlNo);
		parentMap.put("svc_kei_pcrs_cd", svcKeiPcrsCd);
		parentMap.put("prc_grp_cd", getMobSvcKeiPgrpCd(bean[0]));
		
		// 支払い方法継続フラグ
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{
			parentMap.put("kk0121_payway_keizoku_flg", bean[0].sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE));
			parentMap.put("kk0251_payway_keizoku_flg", bean[0].sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE));
		}

		outputMap.put("KKSV008025CC", parentMap);

		return outputMap;
	}
	

	/**
	 * 利用場所情報の住所と契約者情報の住所を比較します。
	 * @param bean X31SDataBeanAccess
	 * @return 差異あり：false、差異なし：true
	 */
	private boolean isDifferentAd(X31SDataBeanAccess bean)
	{
		String[][] keys = {
				{KKW00101SFConst.KAISEN_PLACE_PCD_BF, KKW00101SFConst.KEISHA_PCD_BF}
				, {KKW00101SFConst.KAISEN_PLACE_PCD_AF, KKW00101SFConst.KEISHA_PCD_AF}
				, {KKW00101SFConst.KAISEN_PLACE_STATE_NM, KKW00101SFConst.KEISHA_STATE_NM}
				, {KKW00101SFConst.KAISEN_PLACE_CITY_NM, KKW00101SFConst.KEISHA_CITY_NM}
				, {KKW00101SFConst.KAISEN_PLACE_OAZTSU_NM, KKW00101SFConst.KEISHA_OAZTSU_NM}
				, {KKW00101SFConst.KAISEN_PLACE_AZCHO_NM, KKW00101SFConst.KEISHA_AZCHO_NM}
				, {KKW00101SFConst.KAISEN_PLACE_BNCHIGO, KKW00101SFConst.KEISHA_BNCHIGO}
				, {KKW00101SFConst.KAISEN_PLACE_ADRTTM, KKW00101SFConst.KEISHA_ADRTTM}
				, {KKW00101SFConst.KAISEN_PLACE_ADRRM, KKW00101SFConst.KEISHA_ADRRM}
		};
		
		for(String[] key : keys)
		{
			if(!bean.sendMessageString(key[0], X31CWebConst.DATABEAN_GET_VALUE)
					.equals(bean.sendMessageString(key[1], X31CWebConst.DATABEAN_GET_VALUE)))
			{
				return false;
			}
		}
		
		return true;
	}

	/**
	 * 契約者情報の住所と比較します。
	 * @param bean X31SDataBeanAccess
	 * @param pcdBf 郵便番号（前）
	 * @param pcdAf 郵便番号（後）
	 * @param stateNm 都道府県
	 * @param cityNm 市区町村
	 * @param oaztsuNm 大字通称
	 * @param azchoNm 字町名
	 * @param bnchigo 番地･号
	 * @param adrttm 建物名等
	 * @param adrrm 部屋番号等
	 * @return 差異あり：false、差異なし：true
	 */
	private boolean isComparisonAd(X31SDataBeanAccess bean,
			String pcdBf,
			String pcdAf,
			String stateNm,
			String cityNm,
			String oaztsuNm,
			String azchoNm,
			String bnchigo,
			String adrttm,
			String adrrm)
	{
		// 郵便番号（前）
		if(!pcdBf.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 郵便番号（後）
		if(!pcdAf.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 都道府県
		if(!stateNm.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 市区町村
		if(!cityNm.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 大字通称
		if(!oaztsuNm.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 字町名
		if(!azchoNm.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 番地･号
		if(!bnchigo.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 建物名等
		if(!adrttm.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		
		// 部屋番号等
		if(!adrrm.equals(bean.sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return false;
		}
		return true;
	}

	/**
	 * eoADSL登録の上りマッピングを行います。
	 * <br>
	 * @param bean
	 * @param outputMap
	 * @param func_code
	 * @param mskmInfoMap
	 * @param opeDate
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008026CC(X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap mskmInfoMap,
			String opeDate) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// サービス契約＜eoADSL＞
		// SYSID
		parentMap.put("kk0141_sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// サービスコード
		parentMap.put("kk0141_svc_cd", JKKStrConst.CD00130_01); // 01:インターネット
		
		String pgrpCd = getAdslSvcKeiPgrpCd(bean[0]);
		String pcrsCd = getAdslPcrsCd(bean[0]);
		String pplanCd = getAdslSvcKeiPplanCd(bean[0]);

		/* 料金グループコード */
		parentMap.put("kk0141_prc_grp_cd", pgrpCd);
		
		/* 料金コースコード */
		parentMap.put("kk0141_pcrs_cd", pcrsCd);
		String plnIdx = (bean[0].getDataBeanArray(KKW00101SFConst.PLAN)
				.getDataBean(0)).sendMessageString(KKW00101SFConst.ADSL_PLAN_CD_39, X31CWebConst.DATABEAN_GET_VALUE);
		/* 料金プランコード */
		parentMap.put("kk0141_pplan_cd", pplanCd);
			
		String eAccessOrFlets = bean[0].sendMessageString(KKW00101SFConst.EOADSL_EACCESS_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (JKKKeiNewCmnLogicUtil.EOADSL_EACCESS.equals(eAccessOrFlets))
		{
			// ADSLタイプコード
			String typeCd = JKKWebCommon.getPullDownCode(bean[0], 
					KKW00101SFConst.TYPE, 
					KKW00101SFConst.ADSL_TYPE_CD_40, 
					KKW00101SFConst.ADSL_TYPE_CD_LIST_40);
			if (JKKKeiNewCmnLogicUtil.EOADSL_TYPE1.equals(typeCd))
			{
				// タイプ1
				parentMap.put("kk0141_adsl_type_cd", JKKKeiNewCmnLogicUtil.EOADSL_TYPE1);

				// 既存電話回線−回線種別 → eoADSL登録確認マップ.ADSL回線種別コード
				String adslKaisenSbtCd = JKKWebCommon.getPullDownCode(bean[0],
																	KKW00101SFConst.KZN_DKSN_KISN_SBT,
																	KKW00101SFConst.KZN_DKSN_SBT_CD_41,
																	KKW00101SFConst.KZN_DKSN_SBT_CD_LIST_41);
				if (JKKKeiNewCmnLogicUtil.EOADSL_KAISEN_ISDN.equals(adslKaisenSbtCd))
				{
					// アナログ切替承認区分
					String analogSeitch = JKKWebCommon.getPullDownCode(bean[0], 
							KKW00101SFConst.ISDN_ANALOG_SWCH_SHONIN, 
							KKW00101SFConst.ISDN_ANALOG_SWCH_SHONIN_CD_42, 
							KKW00101SFConst.ISDN_ANALOG_SWCH_SHONIN_CD_LIST_42);
					parentMap.put("kk0141_analog_switch_shonin_div", analogSeitch);
				}
			}
			else
			{
				// タイプ2
				parentMap.put("kk0141_adsl_type_cd", JKKKeiNewCmnLogicUtil.EOADSL_TYPE2);
			}
			
			// ADSL宅内工事コード
			// 1:お客様工事
			parentMap.put("kk0141_adsl_taknikj_cd", "1");
		}
		
		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if (JKKKeiNewCmnLogicUtil.MSKM_FLG_SHINKI.equals(mskmFlg))
		{
			// 新規申込の場合
			parentMap.put("kk0141_ido_div", "00001"); // 00001（新規契約）
			parentMap.put("kk0221_ido_div", "00001"); // 00001（新規契約）
			parentMap.put("kk0341_ido_div", "00001"); // 00001（新規契約）
			parentMap.put("kk0361_ido_div", "00001"); // 00001（新規契約）
		}
		else
		{
			// 新規申込以外の場合
			parentMap.put("kk0141_ido_div", "00002"); // 00002（サービス追加）
			parentMap.put("kk0221_ido_div", "00002"); // 00002（サービス追加）
			parentMap.put("kk0341_ido_div", "00002"); // 00002（サービス追加）
			parentMap.put("kk0361_ido_div", "00002"); // 00002（サービス追加）

			// 支払方法継続フラグ(追加時のみ)
			parentMap.put("kk0141_payway_keizoku_flg", bean[0].sendMessageString(
					KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		//**********↓UI残-762**********
		// 業務連絡備考
		parentMap.put("kk0141_work_rrk_biko", bean[0].sendMessageString(
				KKW00101SFConst.ADSL_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));

		//**********↑UI残-762**********
		
		// 申込形態コード
		String mskmFormCd = bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// 自動照査処理状態コード
		String autoShosaTranStatCd = null;
		if(MSKM_FORM_CD_SHOMEN.equals(mskmFormCd))
		{
			// 書面申込
			autoShosaTranStatCd = "2";	// 対象外
		}
		else
		{
			autoShosaTranStatCd = "0";	// 未処理
		}
		parentMap.put("kk0141_auto_shosa_tran_stat_cd", autoShosaTranStatCd);
		
		String useTelNo = bean[0].sendMessageString(KKW00101SFConst.KZN_DKSN_TELNO, X31CWebConst.DATABEAN_GET_VALUE);
		if (useTelNo != null && useTelNo.length() > 0) 
		{
			// ADSL使用電話番号
			parentMap.put("kk0141_adsl_use_telno", useTelNo);
			// エリア判定局番
			String judgeKyokuNo = "";
			if (useTelNo.length() >= 7)
			{
				judgeKyokuNo = useTelNo.substring(0, 7);
			}
			parentMap.put("kk0141_area_judge_kyoku_no", judgeKyokuNo);
			// 設置先既設電話番号
			parentMap.put("kk0141_stc_saki_kst_telno", useTelNo);
		}
		
		// NTT集約局名 は取得方法がないため、設定しない。
		// NTT集約局名
		// parentMap.put("kk0141_ntt_shyakk_nm", (String)preMap.get("kk????_ntt_shyakk_nm"));

		// ADSL回線種別コード
		String kaisenSbtCd = JKKWebCommon.getPullDownCode(bean[0], 
				KKW00101SFConst.KZN_DKSN_KISN_SBT, 
				KKW00101SFConst.KZN_DKSN_SBT_CD_41, 
				KKW00101SFConst.KZN_DKSN_SBT_CD_LIST_41);
		parentMap.put("kk0141_adsl_kaisen_sbt_cd", kaisenSbtCd);

		// ADSL回線名義人名
		parentMap.put("kk0141_adsl_kaisen_meigin_nm", bean[0].sendMessageString(KKW00101SFConst.KZN_DKSN_KEISHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 事務手数料自動適用要否
		parentMap.put("kk0141_rule0059_auto_aply", JKKStrConst.CD00001_0);

		// 請求契約番号
		String seikyKeiNo = getSeikyKeiNo(mskmInfoMap);
		
		if(MSKM_FLG_TSUIKA.equals(mskmFlg) 
				&& (PAYWAY_KEIZOKU_UPD.equals(bean[0].sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE))
				|| bean[0].sendMessageBoolean(KKW00101SFConst.PAYWAY_KEIZOKU_USE_FAIL_FLG, X31CWebConst.DATABEAN_GET_VALUE) == true))
		{	// 追加申込、支払方法変更 または 支払方法継続利用不可の場合
			seikyKeiNo = "";
		}
		
		parentMap.put("kk0141_seiky_kei_no", seikyKeiNo);
		
		String intrCd = bean[0].sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE);
		parentMap.put("kk0141_intr_cd", intrCd);

		// 料金コース_オプションサービス一覧照会（料金コースコード）
		// ＫＥＹ＿料金コースコード

		// 親契約識別コード
		parentMap.put("kk0361_oya_kei_skbt_cd", JKKKeiNewCmnLogicUtil.OYA_KEI_SKBT_CD_SVKEI); // 01:サービス契約
		
		// SYSID
		parentMap.put("kk0361_sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		// モデムレンタル
		if (JKKKeiNewCmnLogicUtil.EOADSL_FLETS.equals(eAccessOrFlets))
		{
			parentMap.put("modem_rent_flg", "0");
		}
		else
		{
			if (JKKKeiNewCmnLogicUtil.EOADSL_PLAN_1M_NORENT_MODEM.equals(plnIdx))
			{
				parentMap.put("modem_rent_flg", "0");
			}
			else
			{
				parentMap.put("modem_rent_flg", "1");
				parentMap.put("kk0361_op_svc_cd", JKKStrConst.OP_SVC_CD_MDM_EM);
			}
		}
		
		outputMap.put("KKSV008026CC", parentMap);
		return outputMap;
	}

	/**
	 * 申込画面入力支援ワーク登録の上りマッピングをする
	 * @param   bean        [0]：申込新規登録画面
	 * @param   outputMap   登録データ
	 * @param   func_code   機能コード
	 * @param   mskmFlagMap 申込フラグマップ
	 * @return  登録データ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008005SC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap mskmFlagMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// モバイルタイプ
		boolean mobileTyepFlg = 
			(mskmFlagMap.containsKey("mobile_shomen_flag") && (Boolean)mskmFlagMap.get("mobile_shomen_flag"))
			|| (mskmFlagMap.containsKey("mobile_tel_flag") && (Boolean)mskmFlagMap.get("mobile_tel_flag"));

		// ADSLタイプ
		boolean adslTypeFlg =
			mskmFlagMap.containsKey("adsl_shomen_flag") && (Boolean)mskmFlagMap.get("adsl_shomen_flag");

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 回線場所_契約者住所差異フラグ
		String kaisenPlcksnAdsaiFlg = null;
		// 申込優先連絡先識別コード
		String mkmYusenRrksSkbtCd = null;
		// 機器送付先−入力補助
		String kikiShsAdSkbtCd = null;
		// 請求書送付先名_お客様名差異フラグ
		String sksShsNmCustNmSaiFlg = null;
		// 請求書送付先住所識別コード
		String sksShsAdSkbtCd = null;
		// NTT契約者住所識別コード1
		String nttKshadSkbtCd1 = null;
		// NTT契約者名_契約者名差異フラグ1
		String nkysNmKshNmSaiFlg1 = null;
		// 緊急通報用契約者名_契約者名差異フラグ1
		String emgkshNmKshNmSaiFlg1 = null;
		// NTT契約者住所識別コード2
		String nttKshadSkbtCd2 = null;
		// NTT契約者名_契約者名差異フラグ2
		String nkysNmKshNmSaiFlg2 = null;
		// 緊急通報用契約者名_契約者名差異フラグ2
		String emgkshNmKshNmSaiFlg2 = null;
		// モバイル機器送付先住所識別コード
		String mblKikiShsAdSkbtCd = null;
		String sikykeiknCustknSaiFlg = null;

		// 追加申込以外の場合;
		if (!MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// ＡＤＳＬが選択されている場合
			if (bean[0].sendMessageBoolean(KKW00101SFConst.EOADSL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.ADSL_USE_PLC, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 差異なし
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					// 差異あり
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			else
			{
				// ANK-3665-00-00 MOD START
				String mskmFormCd = getAddMskmFormCd(bean[0]);
				// ホームの場合(メゾン・マンションはチェックボックスの表示がなくなったため)
				if ((JKKStrConst.CD00591_04.equals(mskmFormCd)
						&& JYUKYO_TYPE_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
						|| (JKKStrConst.CD00591_05.equals(mskmFormCd)
								&& MSKMSHO_KIND_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
				{
					if (bean[0].sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE))
					{
						// 差異なし
						kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
					}
					else
					{
						// 差異あり
						kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_ARI;
					}
				}
				// ANK-3665-00-00 MOD END
			}

			if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
					bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mkmYusenRrksSkbtCd = bean[0].sendMessageString(KKW00101SFConst.KEISHA_YUSEN_RRSK_TEL_NM, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}

		// ANK-3665-00-00 ADD START
		// サービス追加(別の回線)
		if (MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				&& RIYO_KAISEN_OTHER.equals(bean[0].sendMessageString(KKW00101SFConst.RIYO_KAISEN, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			String mskmFormCd = getAddMskmFormCd(bean[0]);

			// ホームの場合
			if ((JKKStrConst.CD00591_04.equals(mskmFormCd)
					&& JYUKYO_TYPE_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
					|| (JKKStrConst.CD00591_05.equals(mskmFormCd)
							&& MSKMSHO_KIND_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 差異なし
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					// 差異あり
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
		}
		// ANK-3665-00-00 ADD END

		// モバイル単独・ADSLタイプ以外の場合
		if (!mobileTyepFlg && !adslTypeFlg)
		{
			// 機器送付先住所識別コード
			kikiShsAdSkbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.KEISHA_KIKI_SOHUS_INPUT_HOJO_LIST,
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		}

		// 支払方法画面が表示されている場合
		if (isPaywayDsp(bean[0]))
		{
			if (bean[0].sendMessageBoolean(KKW00101SFConst.PAYWAY_SHS_NM_STI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				sksShsNmCustNmSaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
			}
			else
			{
				sksShsNmCustNmSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
			}

			sksShsAdSkbtCd =
				JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SHS_STI,
					KKW00101SFConst.SEIKYUS_SOHUS_SKBT_CD_30, KKW00101SFConst.SEIKYUS_SOHUS_SKBT_CD_LIST_30);
			
			
			// 請求契約カナ名_お客様カナ名差異フラグ
			String seikyWayCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.PAYWAY,
					KKW00101SFConst.PAYWAY_SKBT_CD_28, KKW00101SFConst.PAYWAY_SKBT_CD_LIST_28);
			if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd) || JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.KOZA_MEIGIN_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.CRECARD_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			else
			{
				sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
			}
		}
		else
		{
			sksShsNmCustNmSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
			sksShsAdSkbtCd = JKKStrConst.CD00730_KSHAD;
			sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
			
		}

		// 電話が選択されている場合
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 番号ポータビリティを利用する
			if(TELNO_KIND_BMP.equals(
					bean[0].sendMessageString(KKW00101SFConst.TEL1_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				nttKshadSkbtCd1 = bean[0].sendMessageString(KKW00101SFConst.TEL1_KEISHA_INFO_INPUT_HOJO, X31CWebConst.DATABEAN_GET_VALUE);

				if (bean[0].sendMessageBoolean(KKW00101SFConst.TEL1_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					nkysNmKshNmSaiFlg1 = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					nkysNmKshNmSaiFlg1 = JKKStrConst.CD_DIV_UM_ARI;
				}

				// ロット１では項目が存在しないため固定
				emgkshNmKshNmSaiFlg1 = "0";
			}
		}

		// eo光電話2が申込されている場合
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				&& TEL_TWO.equals(bean[0].sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 番号ポータビリティを利用する
			if(TELNO_KIND_BMP.equals(
					bean[0].sendMessageString(KKW00101SFConst.TEL2_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				nttKshadSkbtCd2 = bean[0].sendMessageString(KKW00101SFConst.TEL2_KEISHA_INFO_INPUT_HOJO, X31CWebConst.DATABEAN_GET_VALUE);

				if (bean[0].sendMessageBoolean(KKW00101SFConst.TEL2_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					nkysNmKshNmSaiFlg2 = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					nkysNmKshNmSaiFlg2 = JKKStrConst.CD_DIV_UM_ARI;
				}

				// ロット１では項目が存在しないため固定
				emgkshNmKshNmSaiFlg2 = "0";
			}
		}

		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			mblKikiShsAdSkbtCd =
				JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MOBILE_KIKI_SOHUS_AD_SKBT,
					KKW00101SFConst.MOBILE_KIKI_SOHUS_AD_SKBT_CD_26, KKW00101SFConst.MOBILE_KIKI_SOHUS_AD_SKBT_CD_LIST_26);
		}

		// 追加元サービス契約番号
		parentMap.put("add_moto_svc_kei_no", bean[0].sendMessageString(KKW00101SFConst.PARAM_SVC_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光ネットエリアチェック結果有無
		parentMap.put("eohnt_area_ckrlt_um", bean[0].sendMessageString(KKW00101SFConst.MAP_SYS_AREA_NET, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光電話エリアチェック結果有無
		parentMap.put("eohtl_area_ckrlt_um", bean[0].sendMessageString(KKW00101SFConst.MAP_SYS_AREA_TEL, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光テレビエリアチェック結果有無
		parentMap.put("eohtv_area_ckrlt_um", bean[0].sendMessageString(KKW00101SFConst.MAP_SYS_AREA_TV, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光ネットエリアチェック結果詳細コード
		parentMap.put("eohnt_area_ckrlt_dtail_cd", bean[0].sendMessageString(KKW00101SFConst.MAP_SYS_AREA_NET_DTL, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光テレビエリアチェック結果詳細コード
		parentMap.put("eohtv_area_ckrlt_dtail_cd", bean[0].sendMessageString(KKW00101SFConst.MAP_SYS_AREA_TV_DTL, X31CWebConst.DATABEAN_GET_VALUE));
		// 回線場所_契約者住所差異フラグ
		parentMap.put("kaisen_plc_ksh_ad_sai_flg", kaisenPlcksnAdsaiFlg);
		// 申込優先連絡先識別コード
		parentMap.put("mkm_yusen_rrks_skbt_cd", mkmYusenRrksSkbtCd);
		// 機器送付先−入力補助
		parentMap.put("kiki_shs_ad_skbt_cd", kikiShsAdSkbtCd);
		// 請求書送付先名_お客様名差異フラグ
		parentMap.put("sks_shs_nm_cust_nm_sai_flg", sksShsNmCustNmSaiFlg);
		// 請求書送付先住所識別コード
		parentMap.put("sks_shs_ad_skbt_cd", sksShsAdSkbtCd);
		// NTT契約者住所識別コード1
		parentMap.put("ntt_kshad_skbt_cd_1", nttKshadSkbtCd1);
		// NTT契約者名_契約者名差異フラグ1
		parentMap.put("nkys_nm_ksh_nm_sai_flg_1", nkysNmKshNmSaiFlg1);
		// 緊急通報用契約者名_契約者名差異フラグ1
		parentMap.put("emgksh_nm_ksh_nm_sai_flg_1", emgkshNmKshNmSaiFlg1);
		// NTT契約者住所識別コード2
		parentMap.put("ntt_kshad_skbt_cd_2", nttKshadSkbtCd2);
		// NTT契約者名_契約者名差異フラグ2
		parentMap.put("nkys_nm_ksh_nm_sai_flg_2", nkysNmKshNmSaiFlg2);
		// 緊急通報用契約者名_契約者名差異フラグ2
		parentMap.put("emgksh_nm_ksh_nm_sai_flg_2", emgkshNmKshNmSaiFlg2);
		// モバイル機器送付先住所識別コード
		parentMap.put("mbl_kiki_shs_ad_skbt_cd", mblKikiShsAdSkbtCd);
		// お支払方法＿口座名義人＿契約申込者と同じ
		parentMap.put("sikykeikn_custkn_sai_flg", sikykeiknCustknSaiFlg);

		outputMap.put("KKSV008005SC", parentMap);

		return outputMap;
	}

	//ANK-4543-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：
	 * @param outputMap
	 * @param func_code　機能コード
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008047SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) {
		
		if(bean == null){
			return null;
		}
		
		if(bean.length != 1){
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// モバイル＿NTT卸サービス種別 → NTT卸契約登録マップ.NTT卸サービス種別
		String nttCourseCode = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MOBILE_NTTORS_SVC_SBT, KKW00101SFConst.MOBILE_NTTORS_COURSE_CD_70,
				KKW00101SFConst.MOBILE_NTTORS_COURSE_CD_LIST_70);
		parentMap.put("nttors_svc_sbt", nttCourseCode);

		// モバイル＿移転元サービス契約番号 → NTT卸契約登録マップ.移転元サービス契約番号
		parentMap.put("itenm_svc_kei_no", bean[0].sendMessageString("モバイル＿移転元サービス契約番号", X31CWebConst.DATABEAN_GET_VALUE));

		outputMap.put("KKSV008047SC", parentMap);
		
						
		return outputMap;
	}
	//ANK-4543-00-00 ADD END
	
	
	
	/**
	 * 申込画面入力支援ワーク変更の上りマッピングをする
	 * @param   bean        [0]：申込新規登録画面
	 * @param   outputMap   登録データ
	 * @param   func_code   機能コード
	 * @param   mskmFlagMap 申込フラグマップ
	 * @param   mskmInfoMap KKSV0079_申込新規登録初期表示の検索結果
	 * @return  登録データ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008006SC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap mskmFlagMap,
			HashMap mskmInfoMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// モバイルタイプ
		boolean mobileTyepFlg = 
			(mskmFlagMap.containsKey("mobile_shomen_flag") && (Boolean)mskmFlagMap.get("mobile_shomen_flag"))
			|| (mskmFlagMap.containsKey("mobile_tel_flag") && (Boolean)mskmFlagMap.get("mobile_tel_flag"));

		// ADSLタイプ
		boolean adslTypeFlg =
			mskmFlagMap.containsKey("adsl_shomen_flag") && (Boolean)mskmFlagMap.get("adsl_shomen_flag");

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		HashMap mkmScinsprtWkMap = (HashMap)mskmInfoMap.get("KKSV007903SC");
		if (mkmScinsprtWkMap == null)
		{
			mkmScinsprtWkMap = new HashMap();
		}

		ArrayList childList = null;

		childList = (ArrayList)mkmScinsprtWkMap.get("EKK2201A010CBSMsg1List");

		if (childList == null)
		{
			childList = new ArrayList();
		}

		HashMap childMap = (HashMap)childList.get(0);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 回線場所_契約者住所差異フラグ
		String kaisenPlcksnAdsaiFlg = null;
		// 申込優先連絡先識別コード
		String mkmYusenRrksSkbtCd = null;
		// 機器送付先−入力補助
		String kikiShsAdSkbtCd = null;
		// 請求書送付先名_お客様名差異フラグ
		String sksShsNmCustNmSaiFlg = null;
		// 請求書送付先住所識別コード
		String sksShsAdSkbtCd = null;
		// NTT契約者住所識別コード1
		String nttKshadSkbtCd1 = null;
		// NTT契約者名_契約者名差異フラグ1
		String nkysNmKshNmSaiFlg1 = null;
		// 緊急通報用契約者名_契約者名差異フラグ1
		String emgkshNmKshNmSaiFlg1 = null;
		// NTT契約者住所識別コード2
		String nttKshadSkbtCd2 = null;
		// NTT契約者名_契約者名差異フラグ2
		String nkysNmKshNmSaiFlg2 = null;
		// 緊急通報用契約者名_契約者名差異フラグ2
		String emgkshNmKshNmSaiFlg2 = null;
		// モバイル機器送付先住所識別コード
		String mblKikiShsAdSkbtCd = null;
		// 請求契約カナ名_お客様カナ名差異フラグ
		String sikykeiknCustknSaiFlg = null;

		// 追加申込以外の場合;
		if (!MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{

			// ANK-3665-00-00 MOD START
			String mskmFormCd = getAddMskmFormCd(bean[0]);
			// ホームの場合(メゾン・マンションはチェックボックスの表示がなくなったため)
			if ((JKKStrConst.CD00591_04.equals(mskmFormCd)
					&& JYUKYO_TYPE_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
					|| (JKKStrConst.CD00591_05.equals(mskmFormCd)
							&& MSKMSHO_KIND_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 差異なし
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					// 差異あり
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			else if (!JKKStrConst.CD00591_04.equals(mskmFormCd) && !JKKStrConst.CD00591_05.equals(mskmFormCd)
						&& (JYUKYO_TYPE_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE))
								|| MSKMSHO_KIND_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 差異なし
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					// 差異あり
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			// ANK-3665-00-00 MOD END

			if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
					bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				mkmYusenRrksSkbtCd = bean[0].sendMessageString(KKW00101SFConst.KEISHA_YUSEN_RRSK_TEL_NM, X31CWebConst.DATABEAN_GET_VALUE);
			}
		}

		// ANK-3665-00-00 ADD START
		// サービス追加(別の回線)
		if (MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				&& (RIYO_KAISEN_OTHER.equals(bean[0].sendMessageString(KKW00101SFConst.RIYO_KAISEN, X31CWebConst.DATABEAN_GET_VALUE))
					|| USE_PLACE_SCREEN_FLG_CGPSB.equals(bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_SCREEN_FLG, X31CWebConst.DATABEAN_GET_VALUE))))
		{
			String mskmFormCd = getAddMskmFormCd(bean[0]);

			// ホームの場合
			if ((JKKStrConst.CD00591_04.equals(mskmFormCd)
					&& JYUKYO_TYPE_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
					|| (JKKStrConst.CD00591_05.equals(mskmFormCd)
							&& MSKMSHO_KIND_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 差異なし
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					// 差異あり
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			else if (!JKKStrConst.CD00591_04.equals(mskmFormCd) && !JKKStrConst.CD00591_05.equals(mskmFormCd)
						&& (JYUKYO_TYPE_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE))
								|| MSKMSHO_KIND_HOME.equals(bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// 差異なし
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					// 差異あり
					kaisenPlcksnAdsaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
		}
		// ANK-3665-00-00 ADD END

		// モバイル単独・ADSLタイプ以外の場合
		if (!mobileTyepFlg && !adslTypeFlg)
		{
			// 機器送付先住所識別コード
			kikiShsAdSkbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.KEISHA_KIKI_SOHUS_INPUT_HOJO_LIST,
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		}

		// 支払方法画面が表示されている場合
		if (isPaywayDsp(bean[0]))
		{
			if (bean[0].sendMessageBoolean(KKW00101SFConst.PAYWAY_SHS_NM_STI, X31CWebConst.DATABEAN_GET_VALUE))
			{
				sksShsNmCustNmSaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
			}
			else
			{
				sksShsNmCustNmSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
			}

			sksShsAdSkbtCd =
				JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SHS_STI,
					KKW00101SFConst.SEIKYUS_SOHUS_SKBT_CD_30, KKW00101SFConst.SEIKYUS_SOHUS_SKBT_CD_LIST_30);


			// 請求契約カナ名_お客様カナ名差異フラグ
			String seikyWayCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.PAYWAY,
					KKW00101SFConst.PAYWAY_SKBT_CD_28, KKW00101SFConst.PAYWAY_SKBT_CD_LIST_28);
			if (JKKStrConst.SEIKY_WAY_CD_YOKIN.equals(seikyWayCd) || JKKStrConst.SEIKY_WAY_CD_YUCHO.equals(seikyWayCd))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.KOZA_MEIGIN_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			else if (JKKStrConst.SEIKY_WAY_CD_CREDIT.equals(seikyWayCd))
			{
				if (bean[0].sendMessageBoolean(KKW00101SFConst.CRECARD_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					sikykeiknCustknSaiFlg = JKKStrConst.CD_DIV_UM_ARI;
				}
			}
			else
			{
				sikykeiknCustknSaiFlg = (String)childMap.get("sikykeikn_custkn_sai_flg");
			}
		}
		else
		{
			sksShsNmCustNmSaiFlg = (String)childMap.get("sks_shs_nm_cust_nm_sai_flg");
			sksShsAdSkbtCd = (String)childMap.get("sks_shs_ad_skbt_cd");
			sikykeiknCustknSaiFlg = (String)childMap.get("sikykeikn_custkn_sai_flg");
		}

		// 電話が選択されている場合
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 番号ポータビリティを利用する
			if(TELNO_KIND_BMP.equals(
					bean[0].sendMessageString(KKW00101SFConst.TEL1_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				nttKshadSkbtCd1 = bean[0].sendMessageString(KKW00101SFConst.TEL1_KEISHA_INFO_INPUT_HOJO, X31CWebConst.DATABEAN_GET_VALUE);

				if (bean[0].sendMessageBoolean(KKW00101SFConst.TEL1_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					nkysNmKshNmSaiFlg1 = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					nkysNmKshNmSaiFlg1 = JKKStrConst.CD_DIV_UM_ARI;
				}

				// ロット１では入力項目が存在しないため固定
				emgkshNmKshNmSaiFlg1 = "0";
			}
		}

		// eo光電話2が申込されている場合
		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				&& TEL_TWO.equals(bean[0].sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 番号ポータビリティを利用する
			if(TELNO_KIND_BMP.equals(
					bean[0].sendMessageString(KKW00101SFConst.TEL2_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				nttKshadSkbtCd2 = bean[0].sendMessageString(KKW00101SFConst.TEL2_KEISHA_INFO_INPUT_HOJO, X31CWebConst.DATABEAN_GET_VALUE);

				if (bean[0].sendMessageBoolean(KKW00101SFConst.TEL2_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE))
				{
					nkysNmKshNmSaiFlg2 = JKKStrConst.CD_DIV_UM_NASHI;
				}
				else
				{
					nkysNmKshNmSaiFlg2 = JKKStrConst.CD_DIV_UM_ARI;
				}

				// ロット１では入力項目が存在しないため固定
				emgkshNmKshNmSaiFlg2 = "0";
			}
		}

		if (bean[0].sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			mblKikiShsAdSkbtCd =
				JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MOBILE_KIKI_SOHUS_AD_SKBT,
					KKW00101SFConst.MOBILE_KIKI_SOHUS_AD_SKBT_CD_26, KKW00101SFConst.MOBILE_KIKI_SOHUS_AD_SKBT_CD_LIST_26);
		}
		// 申込番号
		parentMap.put("mskm_no", childMap.get("mskm_no"));
		// 追加元サービス契約番号
		parentMap.put("add_moto_svc_kei_no", childMap.get("add_moto_svc_kei_no"));
		// eo光ネットエリアチェック結果有無
		parentMap.put("eohnt_area_ckrlt_um", childMap.get("eohnt_area_ckrlt_um"));
		// eo光電話エリアチェック結果有無
		parentMap.put("eohtl_area_ckrlt_um", childMap.get("eohtl_area_ckrlt_um"));
		// eo光テレビエリアチェック結果有無
		parentMap.put("eohtv_area_ckrlt_um", childMap.get("eohtv_area_ckrlt_um"));
		// eo光ネットエリアチェック結果詳細コード
		parentMap.put("eohnt_area_ckrlt_dtail_cd", childMap.get("eohnt_area_ckrlt_dtail_cd"));
		// eo光テレビエリアチェック結果詳細コード
		parentMap.put("eohtv_area_ckrlt_dtail_cd", childMap.get("eohtv_area_ckrlt_dtail_cd"));
		// 回線場所_契約者住所差異フラグ
		parentMap.put("kaisen_plc_ksh_ad_sai_flg", kaisenPlcksnAdsaiFlg);
		// 申込優先連絡先識別コード
		parentMap.put("mkm_yusen_rrks_skbt_cd", mkmYusenRrksSkbtCd);
		// 機器送付先−入力補助
		parentMap.put("kiki_shs_ad_skbt_cd", kikiShsAdSkbtCd);
		// 請求書送付先名_お客様名差異フラグ
		parentMap.put("sks_shs_nm_cust_nm_sai_flg", sksShsNmCustNmSaiFlg);
		// 請求書送付先住所識別コード
		parentMap.put("sks_shs_ad_skbt_cd", sksShsAdSkbtCd);
		// NTT契約者住所識別コード1
		parentMap.put("ntt_kshad_skbt_cd_1", nttKshadSkbtCd1);
		// NTT契約者名_契約者名差異フラグ1
		parentMap.put("nkys_nm_ksh_nm_sai_flg_1", nkysNmKshNmSaiFlg1);
		// 緊急通報用契約者名_契約者名差異フラグ1
		parentMap.put("emgksh_nm_ksh_nm_sai_flg_1", emgkshNmKshNmSaiFlg1);
		// NTT契約者住所識別コード2
		parentMap.put("ntt_kshad_skbt_cd_2", nttKshadSkbtCd2);
		// NTT契約者名_契約者名差異フラグ2
		parentMap.put("nkys_nm_ksh_nm_sai_flg_2", nkysNmKshNmSaiFlg2);
		// 緊急通報用契約者名_契約者名差異フラグ2
		parentMap.put("emgksh_nm_ksh_nm_sai_flg_2", emgkshNmKshNmSaiFlg2);
		// モバイル機器送付先住所識別コード
		parentMap.put("mbl_kiki_shs_ad_skbt_cd", mblKikiShsAdSkbtCd);
		// 契約者情報タブ制御コード
		parentMap.put("ksh_if_tab_ctl_cd", childMap.get("ksh_if_tab_ctl_cd"));
		// 支払方法タブ制御コード
		parentMap.put("pay_way_tab_ctl_cd", childMap.get("pay_way_tab_ctl_cd"));
		// ネットタブオプション情報制御コード
		parentMap.put("net_tab_op_if_ctl_cd", childMap.get("net_tab_op_if_ctl_cd"));
		// ネットタブ機器情報制御コード
		parentMap.put("net_tab_kiki_if_ctl_cd", childMap.get("net_tab_kiki_if_ctl_cd"));
		// 電話1タブオプション情報制御コード
		parentMap.put("tel_1_tab_op_if_ctl_cd", childMap.get("tel_1_tab_op_if_ctl_cd"));
		// 電話2タブオプション情報制御コード
		parentMap.put("tel_2_tab_op_if_ctl_cd", childMap.get("tel_2_tab_op_if_ctl_cd"));
		
		//↓↓↓【IT1-2012-0002093】TDIS情報制御コード追加対応 2012/12/19 FJ)薄出 START↓↓↓
		// 電話1タブTDIS情報制御コード
		parentMap.put("tel_1_tab_tdis_if_ctl_cd", (String)childMap.get("tel_1_tab_tdis_if_ctl_cd"));
		// 電話2タブTDIS情報制御コード
		parentMap.put("tel_2_tab_tdis_if_ctl_cd", (String)childMap.get("tel_2_tab_tdis_if_ctl_cd"));
		//↑↑↑【IT1-2012-0002093】TDIS情報制御コード追加対応 2012/12/19 FJ)薄出  END ↑↑↑
		
		// 電話タブ機器情報制御コード
		parentMap.put("tel_tab_kiki_if_ctl_cd", childMap.get("tel_tab_kiki_if_ctl_cd"));
		// モバイルタブオプション情報制御コード
		parentMap.put("mbl_tab_op_if_ctl_cd", childMap.get("mbl_tab_op_if_ctl_cd"));
		// モバイルタブ機器情報制御コード
		parentMap.put("mbl_tab_kiki_if_ctl_cd", childMap.get("mbl_tab_kiki_if_ctl_cd"));
		// ADSLタブオプション情報制御コード
		parentMap.put("adsl_tab_op_if_ctl_cd", childMap.get("adsl_tab_op_if_ctl_cd"));
		// TVタブオプション情報制御コード
		parentMap.put("tv_tab_op_if_ctl_cd", childMap.get("tv_tab_op_if_ctl_cd"));
		// TVタブ機器情報制御コード
		parentMap.put("tv_tab_kiki_if_ctl_cd", childMap.get("tv_tab_kiki_if_ctl_cd"));
		// エリアチェック制御コード
		parentMap.put("area_chk_ctl_cd", childMap.get("area_chk_ctl_cd"));
		// 不良顧客チェック制御コード
		parentMap.put("huryo_cust_chk_ctl_cd", childMap.get("huryo_cust_chk_ctl_cd"));
		// 更新前最終更新年月日時分秒
		parentMap.put("last_upd_dtm_bf", childMap.get("upd_dtm"));
		// 請求契約カナ名_お客様カナ名差異フラグ
		parentMap.put("sikykeikn_custkn_sai_flg", sikykeiknCustknSaiFlg);

		outputMap.put("KKSV008006SC", parentMap);

		return outputMap;
	}

	/**
	 * eo光電話1キャンセルの上りマッピングを行います。
	 * <br>
	 * @param bean　[0]：申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param preMap 申込情報マップ
	 * @param opeDate 運用日付
	 * @param opeDateTimeStamp 運用日付時分秒
	 * @param mansionMap マンション情報マップ
	 * @param svcKeiUpdFlgs サービス契約視点での登録更新フラグ
	 * @return 出力先マップ
	 * @throws Exception 
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008009CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap preMap,
			String opeDate,
			String opeDateTimeStamp,
			HashMap mansionMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		// 電話Bean項目の１⇔２番号対応辞書
		HashMap<String, Integer> telItemDic = new HashMap<String, Integer>();
		for (int i = 0; i < TEL_ITEM_NAMES[0].length; i++)
		{
			// 電話項目の件数は１番号目を基準にする
			for (int j = 0; j < TEL_ITEM_NAMES.length; j++)
			{
				telItemDic.put(TEL_ITEM_NAMES[j][i], i); // 電話１，２のBean名称より電話１，２共通のindexが得られる
			}
		}
		
		HashMap<String, Object> parentMap = null;
		HashMap  svcKeiMap = null;
		
		if ((null == bean) || (1 != bean.length))
		{
			return null;
		}

		/*--------------------------------------------* 
		 * 照会時情報から電話のサービス契約内訳を取得   
		 *--------------------------------------------*/
		svcKeiMap = (HashMap)preMap.get("KKSV007905CC");
		if (svcKeiMap == null)
		{
			return null;
		}

		parentMap = new HashMap<String, Object>();

		/*----------------------------* 
		 * キャンセル情報のマッピング   
		 *----------------------------*/
		
		// 異動区分
		String idoDiv = getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		// SYSIDを取得
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 番ポエイジング、電話番号マスタ削除
		
		// 電話１
		setCancelBmpAgingMap(bean, parentMap, svcKeiMap, svcKeiUpdFlgs, func_code, TEL_ONE); 
		// 電話２
		setCancelBmpAgingMap(bean, parentMap, svcKeiMap, svcKeiUpdFlgs, func_code, TEL_TWO); 
		
// ANK-4494-00-00 DEL START
//		// 同番移転キャンセル判定
//		getDobanCancel(bean, svcKeiMap, telItemDic, TEL_ONE); // 電話１
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG, telItemDic, TEL_ONE, opeDate, func_code);
//		getDobanCancel(bean, svcKeiMap, telItemDic, TEL_TWO); // 電話２
//		setDobanItenMap(bean, parentMap, svcKeiMap, KKW00101SFConst.TEL2_DOBANMOVE_CL_FLG, telItemDic, TEL_TWO, opeDate, func_code);
// ANK-4494-00-00 DEL END

		// サブオプションサービス契約
		ArrayList<HashMap<String, Object>> cancelSbopSvcKeiList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("CANCEL_SBOP_SVC_KEI", cancelSbopSvcKeiList);
		
		cancelSbopSvcKeiList.addAll(getEohTelCancelSbopSvcKeiList(TEL_ONE, getAllEohtlSbopSvcCdList(TEL_ONE, svcKeiMap),
				func_code, svcKeiMap, idoDiv));
		cancelSbopSvcKeiList.addAll(getEohTelCancelSbopSvcKeiList(TEL_TWO, getAllEohtlSbopSvcCdList(TEL_TWO, svcKeiMap),
				func_code, svcKeiMap, idoDiv));

		// オプションサービス契約
		ArrayList<HashMap<String, Object>> cancelOpSvcKeiList = new ArrayList<HashMap<String, Object>>();
		parentMap.put("CANCEL_OP_SVC_KEI", cancelOpSvcKeiList);

		cancelOpSvcKeiList.addAll(getEohTelCancelOpSvcKeiList(TEL_ONE, getAllEohtlOpSvcCdList(TEL_ONE, svcKeiMap),
				func_code, svcKeiMap, idoDiv));
		cancelOpSvcKeiList.addAll(getEohTelCancelOpSvcKeiList(TEL_TWO, getAllEohtlOpSvcCdList(TEL_TWO, svcKeiMap),
				func_code, svcKeiMap, idoDiv));

		// サービス契約内訳
		if (svcKeiUpdFlgs.get(IS_TEL1_CANCEL))
		{
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_CANCEL, func_code, telItemDic, TEL_ONE, null);
		}
		if (svcKeiUpdFlgs.get(IS_TEL2_MINUS) || svcKeiUpdFlgs.get(IS_TEL2_CANCEL))
		{
			setTelSvckeiUcwkMap(bean, parentMap, preMap, svcKeiMap, mansionMap, IS_CANCEL, func_code, telItemDic, TEL_TWO, null);
		}
		
		// 電話のサービス契約キャンセル
		setCancelTelSvcKeiMap(bean, parentMap, svcKeiMap, func_code);
		
		// 電話の申込明細キャンセル
		setCancelTelMskmDtlMap(bean, parentMap, svcKeiMap, func_code);
		
		// ｅｏ光電話パックキャンセル
		ArrayList<HashMap<String, Object>> cnclEohtlPackList = new ArrayList<HashMap<String, Object>>();
		
		cnclEohtlPackList.addAll(getCancelEohtlPackList(TEL_ONE, getAllEohtlPackCdList(TEL_ONE, svcKeiMap),
				svcKeiMap, idoDiv, sysid, opeDate));
		cnclEohtlPackList.addAll(getCancelEohtlPackList(TEL_TWO, getAllEohtlPackCdList(TEL_TWO, svcKeiMap),
				svcKeiMap, idoDiv, sysid, opeDate));
		
		parentMap.put("cncl_eohtl_pack_list", cnclEohtlPackList);

		outputMap.put("KKSV008009CC", parentMap);
		return outputMap;
	}

	/**
	 * 電話のサービス契約キャンセルの上りマッピングを行います。
	 * <br>
	 * @param bean [0]：申込新規登録画面
	 * @param parentMap 申込情報マップ
	 * @param svcKeiMap 電話照会時情報
	 * @param func_code 機能コード
	 */
	@SuppressWarnings("unchecked")
	private void setCancelTelSvcKeiMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap, HashMap svcKeiMap, String func_code)
	{
		// サービス契約のマッピング配列を取得する（無ければ作る）
		ArrayList svcKeiTelMapList = (ArrayList)parentMap.get("CANCEL_SVC_KEI");
		
		if (null == svcKeiTelMapList)
		{
			svcKeiTelMapList = new ArrayList();
			parentMap.put("CANCEL_SVC_KEI", svcKeiTelMapList);
		
		}
		
		HashMap svcKeiTelMap = new HashMap();
		
		svcKeiTelMap.put("func_code", func_code);
		
		/*----------------------* 
		 * キャンセル情報の転記   
		 *----------------------*/

		//サービス契約番号				svc_kei_no
		//申込明細番号					mskm_dtl_no
		//サービスキャンセル理由コード	svc_cancel_rsn_cd
		//異動区分						ido_div
		//更新年月日時分秒(更新前)		upd_dtm_bf
		
		parentMap.put("kk0111_svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no")); // サービス契約番号（排他制御のキーとして必要）
		svcKeiTelMap.put("kk0081_svc_kei_no",	(String)svcKeiMap.get("kk0081_svc_kei_no"));	// サービス契約番号
		svcKeiTelMap.put("kk0081_mskm_dtl_no",	(String)svcKeiMap.get("kk0081_mskm_dtl_no"));	// 申込明細番号
		svcKeiTelMap.put("kk0081_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);							// サービスキャンセル理由コード
		svcKeiTelMap.put("kk0081_ido_div",		(String)svcKeiMap.get("kk0081_ido_div"));		// 異動区分
		svcKeiTelMap.put("kk0081_upd_dtm_bf",	(String)svcKeiMap.get("kk0081_last_upd_dtm"));	// 更新年月日時分秒(更新前)
		
		svcKeiTelMapList.add(svcKeiTelMap);
		
	}

	/**
	 * 電話の申込明細キャンセルの上りマッピングを行います。
	 * <br>
	 * @param bean [0]：申込新規登録画面
	 * @param parentMap 申込情報マップ
	 * @param svcKeiMap 電話照会時情報
	 * @param func_code 機能コード
	 */
	@SuppressWarnings("unchecked")
	private void setCancelTelMskmDtlMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap, HashMap svcKeiMap, String func_code)
	{
		// 申込明細のマッピング配列を取得する（無ければ作る）
		ArrayList mskmDtlMapList = (ArrayList)parentMap.get("CANCEL_MSKM_DTL");
		
		if (null == mskmDtlMapList)
		{
			mskmDtlMapList = new ArrayList();
			parentMap.put("CANCEL_MSKM_DTL", mskmDtlMapList);
		
		}
		
		HashMap mskmDtlMap = new HashMap();
		
		mskmDtlMap.put("func_code", func_code);

		/*----------------------* 
		 * キャンセル情報の転記   
		 *----------------------*/

		//申込明細番号					mskm_dtl_no
		//申込明細キャンセル理由コード	mskm_dtl_cancel_rsn_cd
		//更新年月日時分秒(更新前)		upd_dtm_bf
		
		mskmDtlMap.put("kk0021_mskm_dtl_no",	(String)svcKeiMap.get("kk0021_mskm_dtl_no"));	// 申込明細番号
		mskmDtlMap.put("kk0021_mskm_dtl_cancel_rsn_cd", JKKStrConst.CD01254_20);				// 申込明細キャンセル理由コード
		mskmDtlMap.put("kk0021_upd_dtm_bf",		(String)svcKeiMap.get("kk0021_last_upd_dtm"));	// 更新年月日時分秒(更新前)

		mskmDtlMapList.add(mskmDtlMap);
	}

	/**
	 * 保留削除の上りマッピングをする
	 * @param   bean        [0]：申込新規登録画面
	 * @param   outputMap   登録データ
	 * @param   func_code   機能コード
	 * @param   mskmFlagMap 申込フラグマップ
	 * @param   pdingMap    KKSV0537_保留情報照会の検索結果
	 * @return  登録データ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008033CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			HashMap pdingMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// 保留番号
		String pdingNo = bean[0].sendMessageString(KKW00101SFConst.PDING_NO, X31CWebConst.DATABEAN_GET_VALUE);

		// 保留番号が設定されていない場合、保留スキーマにデータがないと判断
		if (pdingNo == null || "".equals(pdingNo.trim()))
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		////////////////////////////////////////
		// 申込保留内容設定コード一時保存削除 //
		////////////////////////////////////////

		// 申込保留内容設定コード一時保存一覧照会マップ
		HashMap mpnySetcdTppvMap = (HashMap)pdingMap.get("KKSV053704SC");

		if (mpnySetcdTppvMap != null)
		{
			// 申込保留内容設定コード一時保存削除マップ
			HashMap mpnySetcdTppvDelMap = new HashMap();
			parentMap.put("kk_t_mpny_setcd_tppv_del_map", mpnySetcdTppvDelMap);

			mpnySetcdTppvDelMap.put("kk2231_mskm_pny_tppv_no", pdingNo);
		}

		//////////////////////////////////////
		// 申込保留内容電話番号一時保存削除 //
		//////////////////////////////////////

		// 申込保留内容電話番号一時保存一覧照会マップ
		HashMap mpnySvkeiTppvTelMap = (HashMap)pdingMap.get("KKSV053703SC");
		// 一覧紹介から取得した申込保留内容電話番号一時保存リスト
		ArrayList icrnMTTList = null;
		// 申込保留内容電話番号一時保存削除リスト
		ArrayList mpnyTelnoTppvDelList = new ArrayList();

		
		if (mpnySvkeiTppvTelMap != null)
		{
			icrnMTTList = (ArrayList)mpnySvkeiTppvTelMap.get("EKK2221B010CBSMsg1List");
		}

		// 申込保留内容電話番号一時保存にレコードが存在する場合
		if (icrnMTTList != null)
		{
			parentMap.put("kk_t_mpny_telno_tppv_del_list", mpnyTelnoTppvDelList);

			for (int i = 0; i < icrnMTTList.size(); i++)
			{
				// 申込保留内容電話番号一時保存削除マップの作成
				HashMap mpnyTelnoTppvDelMap = new HashMap();
				// 申込保留内容電話番号一時保存リストから削除対象のレコード情報を取得
				HashMap inputMTTMap = (HashMap)icrnMTTList.get(i);
				mpnyTelnoTppvDelMap.put("kk2221_mskm_pny_tppv_no", inputMTTMap.get("mskm_pny_tppv_no"));
				mpnyTelnoTppvDelMap.put("kk2221_mpny_svkei_tppv_no", inputMTTMap.get("mpny_svkei_tppv_no"));
				mpnyTelnoTppvDelMap.put("kk2221_mpny_tg_telno_skbt_cd", inputMTTMap.get("mpny_tg_telno_skbt_cd"));

				mpnyTelnoTppvDelList.add(mpnyTelnoTppvDelMap);
			}
		}

		//////////////////////////////////////////
		// 申込保留内容サービス契約一時保存削除 //
		//////////////////////////////////////////

		// 申込保留内容サービス契約一時保存一覧照会マップ
		HashMap mpnySvkeiTppvMap = (HashMap)pdingMap.get("KKSV053702SC");
		// 一覧紹介から取得した申込保留内容サービス契約一時保存リスト
		ArrayList icrnMSTList = null;
		// 申込保留内容サービス契約一時保存削除リスト
		ArrayList mpnySvkeiTppvDelList = new ArrayList();

		if (mpnySvkeiTppvMap != null)
		{
			icrnMSTList = (ArrayList)mpnySvkeiTppvMap.get("EKK2211B010CBSMsg1List");
		}

		// 申込保留内容サービス契約一時保にレコードが存在する場合
		if (icrnMSTList != null)
		{
			parentMap.put("kk_t_mpny_svkei_tppv_del_list", mpnySvkeiTppvDelList);

			for (int i = 0; i < icrnMSTList.size(); i++)
			{
				// 申込保留内容サービス契約一時保存削除マップ
				HashMap mpnySvkeiTppvDelMap = new HashMap();
				// 申込保留内容電話番号一時保存リストから削除対象のレコード情報を取得
				HashMap inputMSTMap = (HashMap)icrnMSTList.get(i);
				mpnySvkeiTppvDelMap.put("kk2211_mskm_pny_tppv_no", inputMSTMap.get("mskm_pny_tppv_no"));
				mpnySvkeiTppvDelMap.put("kk2211_mpny_svkei_tppv_no", inputMSTMap.get("mpny_svkei_tppv_no"));
				
				mpnySvkeiTppvDelList.add(mpnySvkeiTppvDelMap);
			}
		}

		//////////////////////////////
		// 申込保留内容一時保存削除 //
		//////////////////////////////

		// 申込保留内容一時保存一意照会マップ
		HashMap mskmPnyTppvMap = (HashMap)pdingMap.get("KKSV053701SC");
		// 一意紹介から取得した申込保留内容一時保存リスト
		ArrayList mskmPnyTppvList = null;

		// 申込保留内容一時保存にレコードが存在する場合
		if (mskmPnyTppvMap != null)
		{
			mskmPnyTppvList = (ArrayList)mskmPnyTppvMap.get("EKK2081A010CBSMsg1List");
		}

		if (mskmPnyTppvList  != null && 0 <= mskmPnyTppvList.size())
		{
			// 申込保留内容一時保存用マップ
			HashMap childMskmPnyTppvMap = (HashMap)mskmPnyTppvList.get(0);
			// 申込保留内容一時保存削除マップ
			HashMap mskmPnyTppvDelMap = new HashMap();
			parentMap.put("kk_t_mskm_pny_tppv_del_map", mskmPnyTppvDelMap);

			// 申込保留内容一時保存番号
			mskmPnyTppvDelMap.put("kk2081_mskm_pny_tppv_no", childMskmPnyTppvMap.get("mskm_pny_tppv_no"));
			// 更新前最終更新年月日時分秒
			mskmPnyTppvDelMap.put("kk2081_last_upd_dtm_bf", childMskmPnyTppvMap.get("upd_dtm"));
		}

		outputMap.put("KKSV008033CC", parentMap);

		return outputMap;
	}
    //20170403 ANK-3149-00-00 ADD START
	/**
	 * セキュリティパック操作CCの上りマッピングをする
	 * @param bean [0]
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param ccMsg 申込情報マップ
	 * @param svcKeiUpdFlgs
	 * @param opeDate 運用日付
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
    //IT1-2017-0000083 DEL START
//	/** 登録解約コード：登録 */
//	private static final String ADD_DSL_CD_ADD = "1";
//	/** 登録解約コード：解約 */
//	private static final String ADD_DSL_CD_DSL = "2";
    //IT1-2017-0000083 DEL END
	public HashMap setKKSV008042CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code
			, HashMap ccMsg, HashMap<String, Boolean> svcKeiUpdFlgs, String opeDate) throws Exception
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// 登録前にファミリーパックが設定されているか判定
		ArrayList<HashMap<String, Object>> opCancelList = new ArrayList<HashMap<String, Object>>();
		HashMap preMap = (HashMap)ccMsg.get("KKSV007904CC");
		ArrayList<HashMap<String, String>> wribList = null;
		ArrayList<HashMap<String, String>> sbopMsg1List  = null;
		// サブオプションサービス契約を照会できている場合のみキャンセルする。
		if (preMap != null)
		{
			wribList = (ArrayList<HashMap<String, String>>) preMap.get("kk0451_EKK0451B030CBSMsg1List");
			sbopMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("EKK0351B512CBSMsg1List");
		}
		HashMap<String, String> SecurityPackWariMap = null;
		HashMap<String, String> inetsgwForMap = null;
		HashMap<String, String> ntfmlprmForMap = null;
		HashMap<String, String> PreyPackWariMap = null;
		// SYSIDを取得
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		// セキュリティパックを取得
		boolean opSecurityPack = bean[0].sendMessageBoolean(KKW00101SFConst.OP_SECURITY_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		// プレミアムパックを取得
		boolean prePack = bean[0].sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		// インターネットサギウォールを取得
		boolean inetsgwFor = bean[0].sendMessageBoolean(KKW00101SFConst.OP_INETSGW_FOR_EO, X31CWebConst.DATABEAN_GET_VALUE);
		// ノートンファミリープレミアを取得
		boolean ntfmlprFor = bean[0].sendMessageBoolean(KKW00101SFConst.OP_NTFMLPRM_FOR_EO, X31CWebConst.DATABEAN_GET_VALUE);
		String secupa = "";
		String inetsgw = "";
		String ntfmlprm = "";
		String prepa = "";
		//OM-2017-0000692 ADD START
		// ネットがキャンセル済 かつ 今回新たに追加された場合
		boolean isNetCancelAdd =
				(bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_CANCEL_FLG, X31CWebConst.DATABEAN_GET_VALUE)
			&& !bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_ZENKI_FLG, X31CWebConst.DATABEAN_GET_VALUE)
			&& bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		//OM-2017-0000692 ADD END
		//割引サービスコードより最終設定のセキュリティパック・プレミアムパックの有無情報確認
		//OM-2017-0000692 MOD START
		//if (null != wribList) {
		if (null != wribList &&  false == isNetCancelAdd) {
		//OM-2017-0000692 MOD END
			for (HashMap<String, String> childMap : wribList)
			{
				if (null != wribList) {
					String wribSvcCd = null;
		
					for (HashMap<String, String> childMap1 : wribList) {
						wribSvcCd = childMap1.get("kk0451_wrib_svc_cd"); // 割引サービスコード
		
						if (JKKStrConst.WRIB_SVC_CD_SECURITY_PACK.equals(wribSvcCd)) 
						{ // セキュリティパック
							SecurityPackWariMap = childMap;
						}
					}
				}
			}
		}
		if(null != SecurityPackWariMap && !opSecurityPack)
		{	// セキュリティーパックあり → セキュリティなし
			// セキュリティーパックキャンセル
			 secupa = ADD_DSL_CD_DSL;
		}
		else if(null == SecurityPackWariMap && opSecurityPack)
		{	// セキュリティーパックなし → セキュリティーパックあり
			 secupa = ADD_DSL_CD_ADD;
		}
		//オプションサービスコードより最終設定のインターネットサギウォール・ノートンファミリープレミアの有無情報確認
		//OM-2017-0000692 MOD START
		//if (sbopMsg1List != null)
		if (sbopMsg1List != null &&  false == isNetCancelAdd)
		//OM-2017-0000692 MOD END
		{
			String opSvcCd = null;
			for (HashMap<String, String> childMap : sbopMsg1List)
			{
				opSvcCd = childMap.get("kk0351_op_svc_cd");
				if(JKKStrConst.OP_SVC_CD_INETSGWL.equals(opSvcCd))
				{	// インターネットサギウォール
					inetsgwForMap = childMap;
				}
				if (JKKStrConst.OP_SVC_CD_NTFMLPRM.equals(opSvcCd))
				{	// ノートンファミリープレミア
					ntfmlprmForMap = childMap;
				}
				if (JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM.equals(opSvcCd))
				{	// スマートプレミアム
					PreyPackWariMap = childMap;
				}
			}
		}
		if(null != inetsgwForMap && !inetsgwFor)
		{	// インターネットサギウォールあり → インターネットサギウォールなし
			// インターネットサギウォール解約
			 inetsgw = ADD_DSL_CD_DSL;
		}
		else if(null == inetsgwForMap && inetsgwFor)
		{	// インターネットサギウォールなし → インターネットサギウォールあり
			// インターネットサギウォール登録
			 inetsgw = ADD_DSL_CD_ADD;
		}
		if(null != ntfmlprmForMap && !ntfmlprFor)
		{	// ノートンファミリープレミアあり → ノートンファミリープレミアなし
			// ノートンファミリープレミア解約
			 ntfmlprm = ADD_DSL_CD_DSL;
		}
		else if(null == ntfmlprmForMap && ntfmlprFor)
		{	// ノートンファミリープレミアなし → ノートンファミリープレミアあり
			// ノートンファミリープレミア登録
			 ntfmlprm = ADD_DSL_CD_ADD;
		}
		if(null != PreyPackWariMap && !prePack)
		{	// プレミアムパックあり → プレミアムパックなし
			// プレミアムパックキャンセル
			prepa = ADD_DSL_CD_DSL;
		}
		else if(null == PreyPackWariMap && prePack)
		{	// プレミアムパックなし → プレミアムパックあり
			prepa = ADD_DSL_CD_ADD;
		}
		if("".equals(secupa)&&"".equals(inetsgw)&&"".equals(ntfmlprm)&&"".equals(prepa))
		{
		return null;
		}
		// セキュリティパック操作CCを実行
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// 機能コード
		parentMap.put("func_code", "1");
		// 基準年月日
		parentMap.put("base_ymd", opeDate);
		// 引継有無
		parentMap.put("hikitugi_um", JKKStrConst.CD_DIV_UM_NASHI);
		
		// 異動区分
		String idoDiv = "";
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if ("1".equals(mskmFlg))
		{
			// 新規申込の場合

			idoDiv = "00001";
		}
		else
		{
			// 新規申込以外の場合

			idoDiv = "00002";
		}
		parentMap.put("ido_div", idoDiv);
		

		// 登録用情報リスト
		List<Map<String, String>> addInfoList = new ArrayList<Map<String, String>>();
		// 登録対象のデータが存在する場合 かえる
		if (ADD_DSL_CD_ADD.equals(secupa)
			|| ADD_DSL_CD_ADD.equals(inetsgw)
			|| ADD_DSL_CD_ADD.equals(ntfmlprm)
			|| ADD_DSL_CD_ADD.equals(prepa)
		)
		{
			Map<String, String> addInfo = new HashMap<String, String>();
			// SYSID
			addInfo.put("sysid", sysid);
			// サービス契約番号
			addInfo.put("svc_kei_no", null);
			// 申込明細番号
			addInfo.put("mskm_dtl_no", null);
			// 更新年月日時分秒
			addInfo.put("upd_dtm_bf", null);

			// セキュリティーパック対象フラグ
			String securityPackTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_ADD.equals(secupa))
			{
				securityPackTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				securityPackTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			addInfo.put("security_pack_tg_flg", securityPackTgFlg);

			// プレミアムパック対象フラグ対象フラグ
			String premiamPackTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_ADD.equals(prepa))
			{
				premiamPackTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				premiamPackTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			addInfo.put("premium_pack_tg_flg",premiamPackTgFlg);

			// インターネットサギウォール対象フラグ
			String inetsgwlTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_ADD.equals(inetsgw))
			{
				inetsgwlTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				inetsgwlTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			addInfo.put("inetsgwl_tg_flg", inetsgwlTgFlg);

			// ノートンファミリープレミア対象フラグ
			String ntfmlprmTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_ADD.equals(ntfmlprm))
			{
				ntfmlprmTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				ntfmlprmTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			addInfo.put("ntfmlprm_tg_flg", ntfmlprmTgFlg);

			addInfoList.add(addInfo);
			parentMap.put("add_info_list", addInfoList);
		}

		// 解約用情報リスト
		List<Map<String, String>> cancelInfoList = new ArrayList<Map<String, String>>();
		// 登録対象のデータが存在する場合
		if (ADD_DSL_CD_DSL.equals(secupa)
			|| ADD_DSL_CD_DSL.equals(inetsgw)
			|| ADD_DSL_CD_DSL.equals(ntfmlprm)
			|| ADD_DSL_CD_DSL.equals(prepa)
		)
		{
			Map<String, String> cancelInfo = new HashMap<String, String>();
			// SYSID
			cancelInfo.put("sysid", sysid);
			// サービス契約番号
			cancelInfo.put("svc_kei_no", null);
			// 申込明細番号
			cancelInfo.put("mskm_dtl_no", null);
			// 更新年月日時分秒
			cancelInfo.put("upd_dtm_bf", null);


			// セキュリティーパック対象フラグ
			String securityPackTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_DSL.equals(secupa))
			{
				securityPackTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				securityPackTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			cancelInfo.put("security_pack_tg_flg", securityPackTgFlg);

			// プレミアムパック対象対象フラグ
			String premiamPackTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_DSL.equals(prepa))
			{
				premiamPackTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				premiamPackTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			cancelInfo.put("premium_pack_tg_flg", premiamPackTgFlg);

			// インターネットサギウォール対象フラグ
			String inetsgwlTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_DSL.equals(inetsgw))
			{
				inetsgwlTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				inetsgwlTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			cancelInfo.put("inetsgwl_tg_flg", inetsgwlTgFlg);

			// ノートンファミリープレミア対象フラグ
			String ntfmlprmTgFlg = JKKStrConst.CD_DIV_UM_NASHI;
			if (ADD_DSL_CD_DSL.equals(ntfmlprm))
			{
				ntfmlprmTgFlg = JKKStrConst.CD_DIV_UM_ARI;
			}else
			{
				ntfmlprmTgFlg = KKW00101SFConst.TAISHO_FLG_NASHI;
			}
			cancelInfo.put("ntfmlprm_tg_flg", ntfmlprmTgFlg);

			
			cancelInfoList.add(cancelInfo);
			parentMap.put("cancel_info_list", cancelInfoList);
		}
		outputMap.put("KKSV008042CC", parentMap);
		
		return outputMap;
	}

    //20170403 ANK-3149-00-00 ADD END
	
	/**
	 * 割引サービス自動適用入力情報取得ＣＣの上りマッピングをする
	 * @param bean [0]
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param mskmInfoMap 申込情報マップ
	 * @param svcKeiUpdFlgs
	 * @param opeDate 運用日付
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008034CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code
			// IT1-2018-0000086 MOD START
			//, HashMap mskmInfoMap, HashMap<String, Boolean> svcKeiUpdFlgs, String opeDate) throws Exception
			, HashMap mskmInfoMap, HashMap<String, Boolean> svcKeiUpdFlgs, String opeDate, String sousaMode) throws Exception
			// IT1-2018-0000086 MOD END
	{
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		// ＳＹＳＩＤ
		parentMap.put("sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込番号
		parentMap.put("mskm_no", bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// 申込種別コード
		if (JKKKeiNewCmnLogicUtil.MSKM_FLG_SHINKI.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			parentMap.put("mskm_sbt_cd", JKKStrConst.MSKM_SBT_CD_NEW_KEI);
		}
		else
		{
			parentMap.put("mskm_sbt_cd", JKKStrConst.MSKM_SBT_CD_SVC_ADD);
		}
		
		// 異動区分
		String idoDiv = "";
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		if ("1".equals(mskmFlg))
		{
			// 新規申込の場合

			idoDiv = "00001";
		}
		else
		{
			// 新規申込以外の場合

			idoDiv = "00002";
		}
		parentMap.put("ido_div", idoDiv);
		
		// 機能コード
		parentMap.put("func_code", "1");  // 1:チェック＆登録
		
		// サービスキャンセル理由コード
		parentMap.put("svc_cancel_rsn_cd", JKKStrConst.CD01254_20);
		
		ArrayList<Object> cclList = new ArrayList<Object>();
		
		if (svcKeiUpdFlgs.get(IS_NET_CANCEL))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetNetSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no"));
			cclList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_TEL_CANCEL))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetTelSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no"));
			cclList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_TV_CANCEL))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetTvSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no"));
			cclList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_MOBILE_CANCEL))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetMobileSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("mobile_svc_kei_no"));
			cclList.add(tmpMap);
		}
		
		parentMap.put("cancel_inf_list", cclList);
		
		ArrayList<Object>addList = new ArrayList<Object>();
		
		if (svcKeiUpdFlgs.get(IS_NET_ADD))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			tmpMap.put("TemplateId",   "KKSV008007CC");
			tmpMap.put("SvKeiNoKmkNm", "kk0091_svc_kei_no");
			addList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_ADSL_ADD))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			tmpMap.put("TemplateId",   "KKSV008026CC");
			tmpMap.put("SvKeiNoKmkNm", "kk0141_svc_kei_no");
			addList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_TEL1_ADD))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			tmpMap.put("TemplateId",   "KKSV008501CC");
			tmpMap.put("SvKeiNoKmkNm", "kk0111_svc_kei_no");
			addList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_TV_ADD))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			tmpMap.put("TemplateId",   "KKSV008701CC");
			tmpMap.put("SvKeiNoKmkNm", "kk0101_svc_kei_no");
			addList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_MOBILE_ADD))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			tmpMap.put("TemplateId",   "KKSV008024CC");
			tmpMap.put("SvKeiNoKmkNm", "kk0121_svc_kei_no");
			addList.add(tmpMap);
		}
		
		parentMap.put("add_inf_list", addList);
		
		ArrayList<Object>updList = new ArrayList<Object>();
		
		if (svcKeiUpdFlgs.get(IS_NET_UPDATE))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetNetSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no"));
			// 変更前サービスコード
			tmpMap.put("chge_bf_svc_cd", (String)svcKeiMap.get("kk0081_svc_cd"));
			// 変更前料金グループコード
			tmpMap.put("chge_bf_prc_grp_cd", (String)svcKeiMap.get("kk0081_prc_grp_cd"));
			// 変更前料金コースコード
			tmpMap.put("chge_bf_pcrs_cd", (String)svcKeiMap.get("kk0081_pcrs_cd"));
			// 変更前料金プランコード
			tmpMap.put("chge_bf_pplan_cd", (String)svcKeiMap.get("kk0081_pplan_cd"));
			updList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_TEL1_UPDATE))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetTelSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no"));
			// 変更前サービスコード
			tmpMap.put("chge_bf_svc_cd", (String)svcKeiMap.get("kk0081_svc_cd"));
			// 変更前グループコード
			tmpMap.put("chge_bf_prc_grp_cd", (String)svcKeiMap.get("kk0081_prc_grp_cd"));
			// 変更前料金コースコード
			tmpMap.put("chge_bf_pcrs_cd", (String)svcKeiMap.get("kk0081_pcrs_cd"));
			// 変更前料金プランコード
			tmpMap.put("chge_bf_pplan_cd", (String)svcKeiMap.get("kk0081_pplan_cd"));
			updList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_TV_UPDATE))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetTvSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("kk0081_svc_kei_no"));
			// 変更前サービスコード
			tmpMap.put("chge_bf_svc_cd", (String)svcKeiMap.get("kk0081_svc_cd"));
			// 変更前料金グループコード
			tmpMap.put("chge_bf_prc_grp_cd", (String)svcKeiMap.get("kk0081_prc_grp_cd"));
			// 変更前料金コースコード
			tmpMap.put("chge_bf_pcrs_cd", (String)svcKeiMap.get("kk0081_pcrs_cd"));
			// 変更前料金プランコード
			tmpMap.put("chge_bf_pplan_cd", (String)svcKeiMap.get("kk0081_pplan_cd"));
			updList.add(tmpMap);
		}
		if (svcKeiUpdFlgs.get(IS_MOBILE_UPDATE))
		{
			HashMap<String, Object> tmpMap = new HashMap <String, Object>();
			HashMap svcKeiMap = getPresetMobileSvcKeiMap(mskmInfoMap);
			// サービス契約番号
			tmpMap.put("svc_kei_no", (String)svcKeiMap.get("mobile_svc_kei_no"));
			// 変更前サービスコード
			tmpMap.put("chge_bf_svc_cd", (String)svcKeiMap.get("mobile_svc_cd"));
			// 変更前料金グループコード
			tmpMap.put("chge_bf_prc_grp_cd", (String)svcKeiMap.get("mobile_prc_grp_cd"));
			// 変更前料金コースコード
			tmpMap.put("chge_bf_pcrs_cd", (String)svcKeiMap.get("mobile_pcrs_cd"));
			// 変更前料金プランコード
			tmpMap.put("chge_bf_pplan_cd", (String)svcKeiMap.get("mobile_pplan_cd"));
			updList.add(tmpMap);
		}
		
		parentMap.put("upd_inf_list", updList);
		
		parentMap.put("key_rsv_aply_ymd", opeDate);
		
		// IT1-2018-0000086 ADD START
		// 工事費割賦のステータスを渡す
		if(KJHI_KAP_KEI_ADD.equals(sousaMode))
		{
			parentMap.put("kojihi_kap_operate_stat", "1");
		}
		else if(KJHI_KAP_KEI_CHG_UPD.equals(sousaMode))
		{
			parentMap.put("kojihi_kap_operate_stat", "1");
		}
		else if(KJHI_KAP_KEI_UPD.equals(sousaMode))
		{
			parentMap.put("kojihi_kap_operate_stat", "1");
		}
		else if(KJHI_KAP_KEI_CANCEL.equals(sousaMode))
		{
			parentMap.put("kojihi_kap_operate_stat", "1");
		}
		else if(KJHI_KAP_KEI_MK.equals(sousaMode))
		{
			parentMap.put("kojihi_kap_operate_stat", "2");
		}
		//新規申込画面では、工事費割賦契約登録キャンセルは行われない予定
		else if(KJHI_KAP_KEI_ADD_CANCEL.equals(sousaMode))
		{
			parentMap.put("kojihi_kap_operate_stat", "1");
		}
		else 
		{
			//なし
			parentMap.put("kojihi_kap_operate_stat", "");
		}
		// IT1-2018-0000086 ADD END
		outputMap.put("KKSV008034CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * eo光ネットサービスの登録済みサービス契約情報を取得します。
	 * <br/>
	 * @param mskmInfoMap 申込情報マップ
	 * @return サービス契約情報マップ
	 */
	@SuppressWarnings("unchecked")
	private HashMap getPresetNetSvcKeiMap(HashMap mskmInfoMap)
	{
		return (HashMap)((ArrayList)((HashMap)mskmInfoMap.get("KKSV007904CC")).get("EKK0021B502CBSMsg1List")).get(0);
	}

	/**
	 * eo光電話サービスの登録済みサービス契約情報を取得します。
	 * <br/>
	 * @param mskmInfoMap 申込情報マップ
	 * @return サービス契約情報マップ
	 */
	@SuppressWarnings("unchecked")
	private HashMap getPresetTelSvcKeiMap(HashMap mskmInfoMap)
	{
		return (HashMap)mskmInfoMap.get("KKSV007905CC");
	}

	/**
	 * eo光テレビサービスの登録済みサービス契約情報を取得します。
	 * <br/>
	 * @param mskmInfoMap 申込情報マップ
	 * @return サービス契約情報マップ
	 */
	@SuppressWarnings("unchecked")
	private HashMap getPresetTvSvcKeiMap(HashMap mskmInfoMap)
	{
		return (HashMap)mskmInfoMap.get("KKSV007906CC");
	}

	/**
	 * eoモバイルサービスの登録済みサービス契約情報を取得します。
	 * <br/>
	 * @param mskmInfoMap 申込情報マップ
	 * @return サービス契約情報マップ
	 */
	@SuppressWarnings("unchecked")
	private HashMap getPresetMobileSvcKeiMap(HashMap mskmInfoMap)
	{
		return (HashMap)mskmInfoMap.get("KKSV007908CC");
	}
	
	/**
	 * 請求オプションサービス契約適用の上りマッピングを行います。
	 * <br>
	 * @param bean 申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008036CC(
			X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap mskmMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap preMap = (HashMap)mskmMap.get("KKSV007903CC");

		// 請求契約番号
		String seikyKeiNo = "";

		if (preMap == null)
		{
			preMap = new HashMap();
		}
		else
		{
			seikyKeiNo = getSeikyKeiNo(mskmMap);
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
// OM-2021-0000148対応 20210308 星野 DEL START
//		// 各サービスの申込有無
//		Boolean mskmNet    = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		Boolean mskmTel    = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		Boolean mskmTv     = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		Boolean mskmMobile = bean[0].sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE);
//		
//		// テレビ または 電話
//		boolean judgeFlg = ((!mskmNet && (mskmTel || mskmTv) && !mskmMobile));
// OM-2021-0000148対応 20210308 星野 DEL END
		//申込フラグ
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// 異動区分
		String idoDiv = getIdoDiv(mskmFlg);

		boolean isSohus = (MSKM_FORM_CD_SHOMEN.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE)) 
				&& PAYWAY_ARIV_CD_ARIV.equals(bean[0].sendMessageString(KKW00101SFConst.PAYWAY_ARIV, X31CWebConst.DATABEAN_GET_VALUE)))
			|| isMskmType(bean[0], IS_JDG_YO_MSKM_TYPE_ADSL, IS_JDG_YO_MSKM_FORM_SYO)
			|| isMskmType(bean[0], IS_JDG_YO_SKM_TYPE_MBL, IS_JDG_YO_MSKM_FORM_SYO);

		// 支払方法継続利用を取得
		String paywayKeizokuUse = bean[0].sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE);

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 支払タブが表示されている場合
		if (isSohus)
		{
			// 請求書発行要否
			parentMap.put("seikyus_hakko_yh", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SEIKYUS_HAKKO_YH, KKW00101SFConst.SEIKYUS_HAKKO_YH_CD_29,
					KKW00101SFConst.SEIKYUS_HAKKO_YH_CD_LIST_29));
		}
		// 追加申込 かつ 継続 の場合
		else if (MSKM_FLG_TSUIKA.equals(mskmFlg) && PAYWAY_KEIZOKU_USE.equals(paywayKeizokuUse))
		{
			parentMap.put("seikyus_hakko_yh", JKKWebCommon.convertCode(bean[0], KKW00101SFConst.SEIKYUS_HAKKO_YH, KKW00101SFConst.SEIKYUS_HAKKO_YH_CD_29,
					KKW00101SFConst.SEIKYUS_HAKKO_YH_CD_LIST_29));
		}
		else
		{
// OM-2021-0000148対応 20210308 星野 DEL START
//			if (judgeFlg)
//			{
//				// 請求書発行要否(1:要)
//				parentMap.put("seikyus_hakko_yh", JKKStrConst.CD00001_1);
//			}
//			else
//			{
// OM-2021-0000148対応 20210308 星野 DEL END
			// 請求書発行要否(0:否)
			parentMap.put("seikyus_hakko_yh", JKKStrConst.CD00001_0);
// OM-2021-0000148対応 20210308 星野 DEL START
//			}
// OM-2021-0000148対応 20210308 星野 DEL END
		}

		// ＫＥＹ＿請求契約番号
		parentMap.put("kk044101_key_seiky_kei_no", seikyKeiNo);
		// ＫＥＹ＿請求契約番号
		parentMap.put("KK0081_key_seiky_kei_no", seikyKeiNo);
		// 請求契約番号
		parentMap.put("kk044102_seiky_kei_no", seikyKeiNo);
		// SYSID
		parentMap.put("kk044102_sysid", bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求オプションサービスコード
		parentMap.put("kk044102_seiopsvc_cd", SEIOPSVC_CD_SKS_HAK_CMS);
		// 料金コースコード
		parentMap.put("kk044102_pcrs_cd", PORS_CD_SKS_HAK_CMS);
		// 料金プランコード
		parentMap.put("kk044102_pplan_cd", PPLAN_CD_SKS_HAK_CMS);
		// 異動区分
		parentMap.put("kk044102_ido_div", idoDiv);
		// 料金コースコード
		parentMap.put("kk044102_pcrs_cd", PORS_CD_SKS_HAK_CMS);
		// サービスキャンセル理由コード
		parentMap.put("kk044103_svc_cancel_rsn_cd", SVC_CANCEL_RSN_CD_CL);
		// 異動区分
		parentMap.put("kk044103_ido_div", idoDiv);
		// ＫＥＹ＿請求契約番号
		parentMap.put("KK008102_key_seiky_kei_no", seikyKeiNo);
		// 支払方法継続利用
		parentMap.put("payway_keizoku_use", paywayKeizokuUse);

		outputMap.put("KKSV008036CC", parentMap);

		return outputMap;
	}
	
	/**
	 * 対応履歴に対する上りマッピングを行う。
	 * @param bean
	 * @param outputMap
	 * @param funcCode
	 * @param mskmMap
	 * @param opeDateTimeStamp
	 * @param svcKeiUpdFlgs
	 * @return outputMap
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008037CC(X31SDataBeanAccess[] bean, HashMap outputMap, String funcCode, HashMap<String, Object> mskmMap, 
			String opeDateTimeStamp, HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 2)
		{
			return null;
		}
		
		//運用年月日時分秒の取得
		String opeDateTime = opeDateTimeStamp.substring(0, 14);
		//運用年月日の取得
		String opeDate = opeDateTimeStamp.substring(0, 8);

		ArrayList<HashMap<String, Object>> parentList = new ArrayList<HashMap<String, Object>>();
		
//		//申請時
//		if(MSKM_SHINSEI.equals(mskmButtonCode))
//		{
//			parentList.add(setJKKAddTaiorrki(bean, opeDateTime, opeDate, func_code, SINSEI ,svcKeiUpdFlgs, ""))
//		}
		
// ANK-4494-00-00 DEL START
//		//同番移転登録時（電話１）
//		if(bean[0].sendMessageBoolean(KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG , X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			parentList.add(setJKKAddTaiorrki(bean, opeDateTime, opeDate, funcCode, DOBANITEN_ADD, svcKeiUpdFlgs, null));
//		}
//
//		//同番移転取消時（電話１）
//		if(bean[0].sendMessageBoolean(KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG , X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			//電話１　同番移転受付番号
//			String tel1NttUkNo = getDobanitenNttUkNo(mskmMap, 0);
//
//			parentList.add(setJKKAddTaiorrki(bean, opeDateTime, opeDate, funcCode, DOBANITEN_CANCEL, svcKeiUpdFlgs, tel1NttUkNo));
//		}
//		//同番移転登録時（電話２）
//		if(bean[0].sendMessageBoolean(KKW00101SFConst.TEL2_DOBANMOVE_ADD_FLG , X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			parentList.add(setJKKAddTaiorrki(bean, opeDateTime, opeDate, funcCode, DOBANITEN_ADD, svcKeiUpdFlgs, null));
//		}
//
//		//同番移転取消時（電話２）
//		if(bean[0].sendMessageBoolean(KKW00101SFConst.TEL2_DOBANMOVE_CL_FLG , X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			//電話２　同番移転受付番号
//			String tel2NttUkNo = getDobanitenNttUkNo(mskmMap, 1);
//
//			parentList.add(setJKKAddTaiorrki(bean, opeDateTime, opeDate, funcCode, DOBANITEN_CANCEL, svcKeiUpdFlgs, tel2NttUkNo));
//		}
// ANK-4494-00-00 DEL END
		outputMap.put("KKSV008037CC", parentList);

		return outputMap;
	}

	/**
	 * 申込情報マップから請求契約番号を取得します。
	 * @param mskmInfoMap JKKGetMskmSvcKeiUcwkListCCで取得した申込情報マップ
	 * @return 請求契約番号
	 */
	@SuppressWarnings("unchecked")
	private String getSeikyKeiNo(HashMap<String, Object> mskmInfoMap)
	{
		HashMap paywayMap = (HashMap)mskmInfoMap.get("KKSV007903CC");
		if (paywayMap == null)
		{
			return null;
		}
		//ArrayList paywayMsg1List = (ArrayList)paywayMap.get("EKK0491B030CBSMSG1LIST");
		//HashMap paywayChildMap = (HashMap)paywayMsg1List.get(0);
		return (String)paywayMap.get("seiky_kei_no"); // 請求契約番号
	}

	/**
	 * 登録画面（支払方法）表示判定
	 * @param   bean      申込新規登録画面
	 * @return  判定結果
	 */
	private boolean isPaywayDsp(X31SDataBeanAccess bean)
	{
		// 書面申込かを判定
		boolean isMskmShomenFlag = MSKM_FORM_CD_SHOMEN.equals(bean.sendMessageString(KKW00101SFConst.MSKM_FORM_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 支払方法が到着
		boolean isPawayArivNmAriv = PAYWAY_ARIV_CD_ARIV.equals(bean.sendMessageString(KKW00101SFConst.PAYWAY_ARIV, X31CWebConst.DATABEAN_GET_VALUE));
		// ADSLタイプ
		boolean isAdslType =
			isMskmShomenFlag && MSKMSHO_KIND_ADSL.equals(bean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル単独（書面）
		boolean isMobaileType =
			isMskmShomenFlag && MSKMSHO_KIND_MOBILE_ONLY.equals(
					bean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE));
		// 登録画面（支払方法）表示判定
		boolean isPaywayDsp = (isMskmShomenFlag && isPawayArivNmAriv) || isAdslType || isMobaileType;

		return isPaywayDsp;
	}

	/**
	 * 上りマッピングをする（申込断面）
	 * @param   bean              [0]：申込新規登録画面
	 * @param   outputMap         登録データ
	 * @param   func_code         機能コード
	 * @param   opeDateTimeStamp  運用日付（YYYYMMDDhhmmssSSS）
	 * @param   svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @param   mskmInfoMap       申込情報マップ
	 * @return  登録データ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008038CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String func_code,
			String opeDateTimeStamp,
			HashMap<String, Boolean> svcKeiUpdFlgs,
			HashMap<String, Object> mskmInfoMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// 運用年月日時分秒
		String opedtm = opeDateTimeStamp.substring(0, 14);

		HashMap<String, Object> parentMap = new HashMap<String, Object>();


		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// 申込書番号
		parentMap.put("mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 代理店コード1-1
		parentMap.put("agnt_cd_1_1", bean[0].sendMessageString(KKW00101SFConst.TRAT_CD1, X31CWebConst.DATABEAN_GET_VALUE));
		// 代理店コード1-2
		parentMap.put("agnt_cd_1_2", bean[0].sendMessageString(KKW00101SFConst.TRAT_CD2, X31CWebConst.DATABEAN_GET_VALUE));
		// 代理店コード2-1
		parentMap.put("agnt_cd_2_1", bean[0].sendMessageString(KKW00101SFConst.TRAT_CD3, X31CWebConst.DATABEAN_GET_VALUE));
		// 代理店コード2-2
		parentMap.put("agnt_cd_2_2", bean[0].sendMessageString(KKW00101SFConst.TRAT_CD4, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込書種別コード
		parentMap.put("mskmsho_sbt_cd", bean[0].sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE));
		// 新規追加識別フラグ
		parentMap.put("new_add_skbt_flg", bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// オーダリングサービス選択コード
		parentMap.put("ordering_svc_choice_cd", JKKWebCommon.getOrderingSvcChoiceCd(bean[0], svcKeiUpdFlgs));
		// 申込断面明細取得年月日時分秒
		parentMap.put("mskm_dmen_dtl_stku_dtm", opedtm);
		// 申込断面明細変更年月日時分秒
		parentMap.put("mskm_dmen_dtl_chg_dtm", opedtm);
		// 申込形態コード
		parentMap.put("mskm_form_cd", getAddMskmFormCd(bean[0]));
		
		// ANK-3362-00-00 ADD START
		// 申込形態コード
		String mskmFormCd = (String)parentMap.get("mskm_form_cd");
		
		// 申込形態コードが04(電話)の場合、申込形態を1(電話)とする
		if (JKKStrConst.CD00591_04.equals(mskmFormCd))
		{
			mskmForm = IS_JDG_YO_MSKM_FORM_TEL;
		}
		// 申込形態コードが05(書面)の場合、申込形態を2(書面)とする
		else if (JKKStrConst.CD00591_05.equals(mskmFormCd))
		{
			mskmForm = IS_JDG_YO_MSKM_FORM_SYO;
			
			// 申込書種別コードは申込書の種類とする
			parentMap.put("mskmsho_sbt_cd", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE));
			
		}
		// ANK-3362-00-00 ADD END
		
		// お客様カナ名
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
				bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			parentMap.put("cust_kana", bean[0].sendMessageString(KKW00101SFConst.CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			parentMap.put("cust_kana", bean[0].sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// 契約者電話番号
		parentMap.put("keisha_telno", bean[0].sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		// 回線場所住所補記・建物名
		parentMap.put("kaisen_place_adrttm", bean[0].sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3362-00-00 ADD START
		// 申込受付種別コード
		String mkmUkSbtCd = JKKWebCommon.convertCode(bean[0], KKW00101SFConst.MSKM_SBT, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		parentMap.put("mkm_uk_sbt_cd", mkmUkSbtCd);
		// ANK-3362-00-00 ADD END

		setDmenXmlMap(bean[0], outputMap, svcKeiUpdFlgs, mskmInfoMap);

		outputMap.put("KKSV008038CC", parentMap);

		return outputMap;

	}

	/**
	 * 上りマッピングをする（申込断面XML）
	 * @param   bean              申込新規登録画面
	 * @param   outputMap         登録データ
	 * @param   svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @param   mskmInfoMap       申込情報マップ
	 * @return  登録データ
	 * @throws Exception 
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	private void setDmenXmlMap(
			X31SDataBeanAccess bean,
			HashMap outputMap,
			HashMap<String, Boolean> svcKeiUpdFlgs,
			HashMap<String, Object> mskmInfoMap) throws Exception
	{
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		outputMap.put("MSKM_DMEN", parentMap);

		parentMap.put("sbt", "BACKYARD");

		//////////////////////////////////////////////////
		// サービス選択                                 //
		//////////////////////////////////////////////////
		setMskmDmenServiceSelect(bean, parentMap);

		//////////////////////////////////////////////////
		// ご利用場所                                   //
		//////////////////////////////////////////////////
		setMskmDmenUsePlace(bean, parentMap);

		//////////////////////////////////////////////////
		// 契約情報                                     //
		//////////////////////////////////////////////////
		setMskmDmenContract(bean, parentMap);

		//////////////////////////////////////////////////
		// eo光ネット                                   //
		//////////////////////////////////////////////////
		setMskmDmenEohNet(bean, parentMap, svcKeiUpdFlgs);

		//////////////////////////////////////////////////
		// eo光電話１                                   //
		//////////////////////////////////////////////////
		setMskmDmenEohTel1(bean, parentMap, svcKeiUpdFlgs);

		//////////////////////////////////////////////////
		// eo光電話２                                   //
		//////////////////////////////////////////////////
		setMskmDmenEohTel2(bean, parentMap, svcKeiUpdFlgs);

		//////////////////////////////////////////////////
		// eo光テレビ                                   //
		//////////////////////////////////////////////////
		setMskmDmenEohTV(bean, parentMap, svcKeiUpdFlgs);

		//////////////////////////////////////////////////
		// eoモバイル                                   //
		//////////////////////////////////////////////////
		setMskmDmenEoMoba(bean, parentMap, svcKeiUpdFlgs);

		//////////////////////////////////////////////////
		// 特記                                         //
		//////////////////////////////////////////////////
		setMskmDmenTokki(bean, parentMap, mskmInfoMap);

		//////////////////////////////////////////////////
		// 割引                                         //
		//////////////////////////////////////////////////
		setMskmDmenWrib(bean, parentMap);
		
		// ANK-4092-00-00 ADD START
		//////////////////////////////////////////////////
		// コンテンツ                                   //
		//////////////////////////////////////////////////
		setMskmDmenCont(bean, parentMap);
		// ANK-4092-00-00 ADD END


		//////////////////////////////////////////////////
		// その他                                       //
		//////////////////////////////////////////////////
		setMskmDmenOther(bean, parentMap, svcKeiUpdFlgs);
	}

	/**
	 * 申込断面XML設定（サービス選択）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenServiceSelect(X31SDataBeanAccess bean, HashMap parentMap) throws Exception
	{
		// 申込フラグ
		String mskmFlg = bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// eo光ネット
		parentMap.put("eoh_net_flg", bean.sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光電話
		parentMap.put("eoh_tel_flg", bean.sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光電話申込サービス
		parentMap.put("eoh_tel_num_flg", bean.sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光テレビ
		parentMap.put("eoh_tv_flg", bean.sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光テレビ申込サービス
		parentMap.put("catv_comp_flg", bean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// eoモバイル
		parentMap.put("eomoba_flg", bean.sendMessageBoolean(KKW00101SFConst.EOMOBA_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込種別
		parentMap.put("mskm_sbt", JKKWebCommon.convertCode(
				bean, KKW00101SFConst.MSKM_SBT,
				KKW00101SFConst.SELECT_CD_59,
				KKW00101SFConst.CD_LIST_59));
		// 申込種別（表示用）
		parentMap.put("mskm_sbt_screen", bean.sendMessageString(KKW00101SFConst.MSKM_SBT_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// 利用開始希望日（年）
			parentMap.put("svc_sta_kibo_ymd_y", bean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE));
			// 利用開始希望日（月）
			parentMap.put("svc_sta_kibo_ymd_m", bean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_M, X31CWebConst.DATABEAN_GET_VALUE));
			// 利用開始希望日（日）
			parentMap.put("svc_sta_kibo_ymd_d", bean.sendMessageString(KKW00101SFConst.SVC_STA_KIBO_YMD_D, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス開始予定日（親）（年）
			parentMap.put("mansion_svc_sta_ymd_y", bean.sendMessageString(KKW00101SFConst.MANSION_SVC_STA_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス開始予定日（親）（月）
			parentMap.put("mansion_svc_sta_ymd_m", bean.sendMessageString(KKW00101SFConst.MANSION_SVC_STA_YMD_M, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス開始予定日（親）（日）
			parentMap.put("mansion_svc_sta_ymd_d", bean.sendMessageString(KKW00101SFConst.MANSION_SVC_STA_YMD_D, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 契約種別
		parentMap.put("keisha_type_cd", bean.sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE));
		// 契約種別（表示用）
		parentMap.put("keisha_type_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.KEISHA_TYPE_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込追加
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{
			// 支払方法の継続利用
			parentMap.put("payway_keizoku_use", bean.sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE, X31CWebConst.DATABEAN_GET_VALUE));
			// 支払方法の継続利用（表示用）
			parentMap.put("payway_keizoku_use_screen", bean.sendMessageString(KKW00101SFConst.PAYWAY_KEIZOKU_USE_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 受付担当者（表示用）
		parentMap.put("uk_tntsha_screen", bean.sendMessageString(KKW00101SFConst.UK_TNTSHA_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4075-00-00 ADD START
		// スキームタイプ（確認画面用）
		parentMap.put("scm_type", bean.sendMessageString(KKW00101SFConst.SCM_TYPE_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		
		// スキーム事業者（確認画面用）
		parentMap.put("scm_jgs", bean.sendMessageString(KKW00101SFConst.SCM_JGS_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4075-00-00 ADD END
	}

	/**
	 * 申込断面XML設定（利用場所）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenUsePlace(X31SDataBeanAccess bean, HashMap parentMap) throws Exception
	{
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_SKM_TYPE_MBL, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_SKM_TYPE_MBL, mskmForm))
// ANK-3362-00-00 MOD END
		{
			return;
		}

		// ご利用場所．郵便番号（前）
		parentMap.put("kaisen_place_pcd_bf", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．郵便番号（後）
		parentMap.put("kaisen_place_pcd_af", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．都道府県
		parentMap.put("kaisen_place_state_nm", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．市区町村
		parentMap.put("kaisen_place_city_nm", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．大字通称名
		parentMap.put("kaisen_place_oaztsu_nm", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．字丁目名
		parentMap.put("kaisen_place_azcho_nm", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．番地・号
		parentMap.put("kaisen_place_bnchigo", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．建物名等
		parentMap.put("kaisen_place_adrttm", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．部屋番号等
		parentMap.put("kaisen_place_adrrm", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3885-00-00 ADD START
		// ご利用場所．棟情報
		if(bean.sendMessageBoolean(KKW00101SFConst.RIYO_TOUINFO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE)){
			parentMap.put("kaisen_tou_info", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_TOU_INFO, X31CWebConst.DATABEAN_GET_VALUE));
		}else{
			parentMap.put("kaisen_tou_info", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_TOU_INFO, ""));
		}
		// ANK-3885-00-00 ADD END
		// ご利用場所．ご住所
		parentMap.put("kaisen_place_ad_screen", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_AD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ご利用場所．電話番号
		parentMap.put("kaisen_place_telno", bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

		// ホームタイプの場合
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// ご利用場所の形態（表示用）
			parentMap.put("ad_form_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.AD_FORM_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 階数（表示用）
			parentMap.put("kodate_kcku_flr_cnt_nm_cfm_screen",
					bean.sendMessageString(KKW00101SFConst.KODATE_KCKU_FLR_CNT_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 竣工予定年月（年）
			parentMap.put("shunko_rsv_ymd_y", bean.sendMessageString(KKW00101SFConst.SHUNKO_RSV_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE));
			// 竣工予定年月（月）
			parentMap.put("shunko_rsv_ymd_m", bean.sendMessageString(KKW00101SFConst.SHUNKO_RSV_YMD_M, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所番地確定（表示用）
			parentMap.put("kisn_place_ad_fix_flg_nm_cfm_screen",
					bean.sendMessageString(KKW00101SFConst.KISN_PLACE_AD_FIX_FLG_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 住所設定
			parentMap.put("kisn_plc_kkk_seiri_chu_flg", bean.sendMessageBoolean(KKW00101SFConst.KISN_PLC_KKK_SEIRI_CHU_FLG, X31CWebConst.DATABEAN_GET_VALUE));

			// 関西電力とのお客様情報の授受
			parentMap.put("kepco_custinfo_juju_doi", JKKWebCommon.getPullDownCode(bean, 
					KKW00101SFConst.KEPCO_CUSTINFO_JUJU_DOI_UM, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59));
			
			// 関西電力とのお客様情報の授受（表示用）
			parentMap.put("kepco_custinfo_juju_doi_screen", JKKWebCommon.getPullDownName(bean, KKW00101SFConst.KEPCO_CUSTINFO_JUJU_DOI_UM, 
					KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59, KKW00101SFConst.NM_LIST_59));
			
// ▽▽▽ ANK-4427-00-00 ADD START
			if (BRAND_TYPE_TYPEN.equals(bean.sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 住所番地メモ
				parentMap.put("typen_place_ad_bnchi_memo", bean.sendMessageString(KKW00101SFConst.WAO_AD_BNCHI_MEMO, X31CWebConst.DATABEAN_GET_VALUE));
			}
// △△△ ANK-4427-00-00 ADD END
		}

		// 請求書用部屋番号表示制御フラグ
		if (bean.sendMessageBoolean(KKW00101SFConst.SEIKYUS_YO_RM_NO_DSP_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 請求書用部屋番号
			parentMap.put("seikyus_yo_rm_no", bean.sendMessageString(KKW00101SFConst.SEIKYUS_YO_RM_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 入居予定日（年）
		parentMap.put("nyukyo_rsv_ymd_y", bean.sendMessageString(KKW00101SFConst.NYUKYO_RSV_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE));
		// 入居予定日（月）
		parentMap.put("nyukyo_rsv_ymd_m", bean.sendMessageString(KKW00101SFConst.NYUKYO_RSV_YMD_M, X31CWebConst.DATABEAN_GET_VALUE));
		// 入居予定日（日）
		parentMap.put("nyukyo_rsv_ymd_d", bean.sendMessageString(KKW00101SFConst.NYUKYO_RSV_YMD_D, X31CWebConst.DATABEAN_GET_VALUE));
		// 入居予定−メモ
		parentMap.put("nyukyo_rsv_memo", bean.sendMessageString(KKW00101SFConst.NYUKYO_RSV_MEMO, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4096-00-00 ADD START
		// 現在利用先契約回線区分（表示用）
		parentMap.put("use_sk_kei_kisn_div_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.USE_SK_KEI_KISN_DIV_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// 機器設置場所変更有無（表示用）
		parentMap.put("kiki_setplace_chge_rsv_um_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.KIKI_SETPLACE_CHGE_RSV_UM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// 宅内調査と工事同日実施有無（表示用）
		parentMap.put("takcho_kj_dojitu_jssi_um_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TAKCHO_KJ_DOJITU_JSSI_UM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-4096-00-00 ADD END
// ▽▽▽ ANK-4468-00-00 ADD START
		// 宅内調査予約形態（表示用）
		parentMap.put("takcho_rsv_form_screen", bean.sendMessageString(KKW00101SFConst.TAKCHO_RSV_FORM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
// △△△ ANK-4468-00-00 ADD END
	}

	/**
	 * 申込断面XML設定（契約者情報）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenContract(X31SDataBeanAccess bean, HashMap parentMap) throws Exception
	{
		// 申込フラグ
		String mskmFlg = bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// ご契約者情報．郵便番号（前）
		parentMap.put("keisha_pcd_bf", bean.sendMessageString(KKW00101SFConst.KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．郵便番号（後）
		parentMap.put("keisha_pcd_af", bean.sendMessageString(KKW00101SFConst.KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．都道府県
		parentMap.put("keisha_state_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．市区町村
		parentMap.put("keisha_city_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．大字通称名
		parentMap.put("keisha_oaztsu_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．字丁目名
		parentMap.put("keisha_azcho_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．番地・号
		parentMap.put("keisha_bnchigo", bean.sendMessageString(KKW00101SFConst.KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．建物名等
		parentMap.put("keisha_adrttm", bean.sendMessageString(KKW00101SFConst.KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．部屋番号等
		parentMap.put("keisha_adrrm", bean.sendMessageString(KKW00101SFConst.KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．ご住所
		parentMap.put("keisha_ad_screen", bean.sendMessageString(KKW00101SFConst.KEISHA_AD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ご契約者情報．電話番号
		parentMap.put("keisha_telno", bean.sendMessageString(KKW00101SFConst.KEISHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		// 連絡先メールアドレス
		parentMap.put("rrsk_mlad", bean.sendMessageString(KKW00101SFConst.RRSK_MLAD, X31CWebConst.DATABEAN_GET_VALUE));

		// 契約者タイプが 個人 の場合
		if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
				bean.sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 氏名
			parentMap.put("cust_nm", bean.sendMessageString(KKW00101SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 氏名カナ
			parentMap.put("cust_kana", bean.sendMessageString(KKW00101SFConst.CUST_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			if(!MSKM_FLG_TSUIKA.equals(mskmFlg))
			{
				// 優先連絡先名称(電話)（表示）
				parentMap.put("keisha_yusen_rrsk_tel_nm_cfm_screen",
						bean.sendMessageString(KKW00101SFConst.KEISHA_YUSEN_RRSK_TEL_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// 優先電話番号
			parentMap.put("keisha_yusen_telno", bean.sendMessageString(KKW00101SFConst.KEISHA_YUSEN_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// 生年月日（和暦）
			parentMap.put("keisha_birthd_wareki_nm_cfm_screen",
					bean.sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_WAREKI_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 生年月日（月）
			parentMap.put("keisha_birthd_m", bean.sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_M, X31CWebConst.DATABEAN_GET_VALUE));
			// 生年月日（日）
			parentMap.put("keisha_birthd_d", bean.sendMessageString(KKW00101SFConst.KEISHA_BIRTHD_D, X31CWebConst.DATABEAN_GET_VALUE));
			// 年齢
			parentMap.put("keisha_age", bean.sendMessageString(KKW00101SFConst.KEISHA_AGE, X31CWebConst.DATABEAN_GET_VALUE));
			// 性別（表示）
			parentMap.put("keisha_sex_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.KEISHA_SEX__NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4318-00-00 ADD START
			// 親権者情報．親権者名
			parentMap.put("sksha_nm", bean.sendMessageString(KKW00101SFConst.SKSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者情報．親権者名（カナ）
			parentMap.put("sksha_kana", bean.sendMessageString(KKW00101SFConst.SKSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者情報．生年月日（和暦）を生年月日（西暦）に変換
			// 親権者−生年月日−元号取得
			String skshagengoCd =
					JKKWebCommon.convertCode(bean, KKW00101SFConst.SKSHA_BIRTHD_WAREKI,
							KKW00101SFConst.SKSHA_BIRTHD_WAREKI_CD_20, KKW00101SFConst.SKSHA_BIRTHD_WAREKI_CD_LIST_20);
			// 親権者−生年月日−年
			String skshaBirthd_Y = bean.sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			// 親権者−生年月日−月
			String skshaBirthd_M = bean.sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_M, X31CWebConst.DATABEAN_GET_VALUE);
			// 親権者−生年月日−日
			String skshaBirthd_D = bean.sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_D, X31CWebConst.DATABEAN_GET_VALUE);
			// 親権者情報．生年月日（西暦）
			parentMap.put("sksha_birthd_year", getBirthYearAD(skshagengoCd, skshaBirthd_Y, skshaBirthd_M, skshaBirthd_D));
			// 親権者情報．生年月日（月）
			parentMap.put("sksha_birthd_month", bean.sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_M, X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者情報．生年月日（日）
			parentMap.put("sksha_birthd_day", bean.sendMessageString(KKW00101SFConst.SKSHA_BIRTHD_D, X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者情報．続柄コード
			parentMap.put("sksha_zokugara_cd", JKKWebCommon.getPullDownCode(bean, KKW00101SFConst.SKSHA_ZOKUGARA_CD, KKW00101SFConst.SKSHA_ZOKUGARA_CD_18,
					KKW00101SFConst.SKSHA_ZOKUGARA_CD_LIST_18));
			// 親権者情報．続柄（その他）
			parentMap.put("zokugara_other", bean.sendMessageString(KKW00101SFConst.SKSHA_ZOKUGARA_OTHER, X31CWebConst.DATABEAN_GET_VALUE));
			// 親権者情報．電話番号
			parentMap.put("sksha_telno", bean.sendMessageString(KKW00101SFConst.SKSHA_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4318-00-00 ADD END
		}
		// 個人以外の場合
		else
		{
			// 法人格前後指定（表示用）
			parentMap.put("hojin_zengo_shitei_nm_cfm_screen",
					bean.sendMessageString(KKW00101SFConst.HOJIN_ZENGO_SHITEI_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 法人格種別（表示用）
			parentMap.put("hojin_sbt_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.HOJIN_SBT_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 法人名
			parentMap.put("hojin_nm", bean.sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 法人名カナ
			parentMap.put("hojin_kana", bean.sendMessageString(KKW00101SFConst.HOJIN_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 代表者氏名
			parentMap.put("dihysha_nm", bean.sendMessageString(KKW00101SFConst.DIHYSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 代表者カナ
			parentMap.put("dihysha_kana", bean.sendMessageString(KKW00101SFConst.DIHYSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));

			// 業種（表示）
			parentMap.put("gshu_screen", bean.sendMessageString(KKW00101SFConst.GSHU_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 昼間の連絡先．PHS/携帯電話
			parentMap.put("daytime_rrsk_ktaitel", bean.sendMessageString(KKW00101SFConst.DAYTIME_RRSK_KTAITEL, X31CWebConst.DATABEAN_GET_VALUE));
			// 昼間の連絡先．名称
			parentMap.put("daytime_rrsk_nm", bean.sendMessageString(KKW00101SFConst.DAYTIME_RRSK_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 昼間の連絡先．電話番号
			parentMap.put("daytime_rrsk_tntsha_tel", bean.sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_TEL, X31CWebConst.DATABEAN_GET_VALUE));
			// 昼間の連絡先．内線番号
			parentMap.put("nisnno", bean.sendMessageString(KKW00101SFConst.NISNNO, X31CWebConst.DATABEAN_GET_VALUE));
			// 担当者所属部署
			parentMap.put("daytime_rrsk_tntsha_shozkbsho_nm",
					bean.sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_SHOZKBSHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 担当者名カナ
			parentMap.put("daytime_rrsk_tntsha_kana", bean.sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 担当者名
			parentMap.put("daytime_rrsk_tntsha_nm", bean.sendMessageString(KKW00101SFConst.DAYTIME_RRSK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// モバイル単独以外の場合
// ANK-3362-00-00 MOD START
//		if (!isMskmType(bean, IS_JDG_YO_SKM_TYPE_MBL, IS_JDG_YO_MSKM_FORM_TEL))
		if (!isMskmType(bean, IS_JDG_YO_SKM_TYPE_MBL, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// 機器送付先．郵便番号･ご住所
			parentMap.put("bunsho_kind_shs_input_hojo_cfm_screen",
					bean.sendMessageString(KKW00101SFConst.BUNSHO_KIND_SHS_INPUT_HOJO_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．郵便番号（前）
			parentMap.put("keisha_kiki_sohus_pcd_bf", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．郵便番号（後）
			parentMap.put("keisha_kiki_sohus_pcd_af", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．都道府県
			parentMap.put("keisha_kiki_sohus_state_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．市区町村
			parentMap.put("keisha_kiki_sohus_city_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．大字通称名
			parentMap.put("keisha_kiki_sohus_oaztsu_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．字丁目名
			parentMap.put("keisha_kiki_sohus_azcho_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．番地・号
			parentMap.put("keisha_kiki_sohus_bnchigo", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．建物名等
			parentMap.put("keisha_kiki_sohus_adrttm", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．部屋番号等
			parentMap.put("keisha_kiki_sohus_adrrm", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．ご住所
			parentMap.put("bunsho_kind_shs_ad", bean.sendMessageString(KKW00101SFConst.BUNSHO_KIND_SHS_AD, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．送付先名
			parentMap.put("keisha_kiki_sohus_shs_nm", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_SHS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．送付先名カナ
			parentMap.put("keisha_kiki_sohus_shs_nm_kana",
					bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_SHS_NM_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器送付先．電話番号
			parentMap.put("keisha_kiki_sohus_telno", bean.sendMessageString(KKW00101SFConst.KEISHA_KIKI_SOHUS_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

			// 追加申込以外の場合
			if(!MSKM_FLG_TSUIKA.equals(mskmFlg))
			{
				// ANK-3665-00-00 MOD START
				String mskmFormCd = getAddMskmFormCd(bean);
				// ホームの場合(メゾン・マンションはチェックボックスの表示がなくなったため)
				if ((JKKStrConst.CD00591_04.equals(mskmFormCd)
						&& JYUKYO_TYPE_HOME.equals(bean.sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
						|| (JKKStrConst.CD00591_05.equals(mskmFormCd)
								&& MSKMSHO_KIND_HOME.equals(bean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
				{
					// ご利用場所とご契約者住所(現住所)が同じフラグ
					parentMap.put("use_plc", bean.sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE));
				}
				else if (!JKKStrConst.CD00591_04.equals(mskmFormCd) && !JKKStrConst.CD00591_05.equals(mskmFormCd)
							&& (JYUKYO_TYPE_HOME.equals(bean.sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE))
								|| MSKMSHO_KIND_HOME.equals(bean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
				{
					// ご利用場所とご契約者住所(現住所)が同じフラグ
					parentMap.put("use_plc", bean.sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE));
				}
				// ANK-3665-00-00 MOD END

				// 上書予定設定
				parentMap.put("uwagaki_rsv_set", bean.sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_FLG_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
				// 上書予定日
				parentMap.put("uwagaki_rsvymd", bean.sendMessageString(KKW00101SFConst.KAISEN_AD_CHG_RSY_YMD_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// ANK-3665-00-00 ADD START
			// サービス追加(別の回線)
			if (MSKM_FLG_TSUIKA.equals(bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
					&& (RIYO_KAISEN_OTHER.equals(bean.sendMessageString(KKW00101SFConst.RIYO_KAISEN, X31CWebConst.DATABEAN_GET_VALUE))
						|| USE_PLACE_SCREEN_FLG_CGPSB.equals(bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_SCREEN_FLG, X31CWebConst.DATABEAN_GET_VALUE))))
			{
				String mskmFormCd = getAddMskmFormCd(bean);

				// ホームの場合
				if ((JKKStrConst.CD00591_04.equals(mskmFormCd)
						&& JYUKYO_TYPE_HOME.equals(bean.sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
						|| (JKKStrConst.CD00591_05.equals(mskmFormCd)
								&& MSKMSHO_KIND_HOME.equals(bean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
				{
					// ご利用場所とご契約者住所(現住所)が同じフラグ
					parentMap.put("use_plc", bean.sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE));
				}
				else if (!JKKStrConst.CD00591_04.equals(mskmFormCd) && !JKKStrConst.CD00591_05.equals(mskmFormCd)
							&& (JYUKYO_TYPE_HOME.equals(bean.sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE))
									|| MSKMSHO_KIND_HOME.equals(bean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE))))
				{
					// ご利用場所とご契約者住所(現住所)が同じフラグ
					parentMap.put("use_plc", bean.sendMessageBoolean(KKW00101SFConst.USE_PLC, X31CWebConst.DATABEAN_GET_VALUE));
				}
			}
			// ANK-3665-00-00 ADD END

			// 関電G個人情報取扱同意
			parentMap.put("kepg_kjnif_trat_doi_screen", bean.sendMessageString(KKW00101SFConst.KEPG_KJNIF_TRAT_DOI_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 関電G個人情報提供
			parentMap.put("kepcog_kjnift_screen", bean.sendMessageString(KKW00101SFConst.KEPCOG_KJNIFT_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		}
	}

	/**
	 * 申込断面XML設定（eo光ネット）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @param svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenEohNet(
			X31SDataBeanAccess bean,
			HashMap parentMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		if(!svcKeiUpdFlgs.get(IS_NET_ADD) && !svcKeiUpdFlgs.get(IS_NET_UPDATE))
		{
			return;
		}

		// ホーム・メゾンタイプの場合
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, IS_JDG_YO_MSKM_FORM_TEL)
//				|| isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MEZON, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, mskmForm)
				|| isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MEZON, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// ネット．コース選択
			parentMap.put("course_choice", JKKWebCommon.convertCode(
					bean, KKW00101SFConst.COURSE_CHOICE_LIST,
					KKW00101SFConst.SELECT_CD_59,
					KKW00101SFConst.CD_LIST_59));
			// ネット．コース選択（表示）
			parentMap.put("course_choice_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.COURSE_CHOICE_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 即割
			parentMap.put("sokuwrib_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.SOKUWRIB_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-3412-05-00 ADD START
			// 高速割
			parentMap.put("kosokuwri_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.KOSOKUWRIB_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-3412-05-00 ADD END
			if (bean.sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// 長割
				parentMap.put("chokzuwri_mskm_um", bean.sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE));
				// 長割（表示）
				parentMap.put("chokzuwri_mskm_um_screen",
					bean.sendMessageString(KKW00101SFConst.CHOKZUWRI_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
				// 長割自動継続
				parentMap.put("chokzuwri_at_keizk_mskm_um",
					bean.sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_AT_KEIZK_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE));
				// 長割自動継続（表示）
				parentMap.put("chokzuwri_at_keizk_mskm_um_screen",
					bean.sendMessageString(KKW00101SFConst.CHOKZUWRI_AT_KEIZK_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			}
// ▽▽▽ ANK-4427-00-00 ADD START
			
			// typeNのネット項目を設定
			if (BRAND_TYPE_TYPEN.equals(bean.sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// ネット．コース選択
				if ("01".equals(bean.sendMessageString("タイプＮ＿ネットタイプ", X31CWebConst.DATABEAN_GET_VALUE)))
				{
					parentMap.put("course_choice", JKKWebCommon.convertCode(bean, 
							KKW00101SFConst.TYPEN_COURSE_CHOICE_HT_LIST,
							KKW00101SFConst.SELECT_CD_59,
							KKW00101SFConst.CD_LIST_59).split("/")[1]);
				}
				else 
				{
					parentMap.put("course_choice", JKKWebCommon.convertCode(bean, 
							KKW00101SFConst.TYPEN_COURSE_CHOICE_MT_LIST,
							KKW00101SFConst.SELECT_CD_59,
							KKW00101SFConst.CD_LIST_59).split("/")[1]);
				}
				
				// 宅内機器レンタルサービス・メッシュWi-Fi(type N)
				parentMap.put("typen_kiki_mesh_wifi_screen", bean.sendMessageString(KKW00101SFConst.OP_MESH_RENTAL_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
				// 転用有無
				parentMap.put("typen_tenyo_um", JKKWebCommon.convertCode(bean, 
																	KKW00101SFConst.WAO_TENYO_DIV_LIST,
																	KKW00101SFConst.SELECT_CD_59,
																	KKW00101SFConst.CD_LIST_59));
				// 転用承諾番号
				parentMap.put("typen_tenyo_sdk_no", bean.sendMessageString(KKW00101SFConst.WAO_TENYO_SHODAKU_NO, X31CWebConst.DATABEAN_GET_VALUE));
				// 有効期限
				parentMap.put("typen_tenyo_yk_kigen", bean.sendMessageString(KKW00101SFConst.WAO_YK_KIGEN, X31CWebConst.DATABEAN_GET_VALUE));
				
				// 電話サービス 申し込み有無
				parentMap.put("typen_telsvc_mskm_um", bean.sendMessageString(KKW00101SFConst.TYPEN_TEL_MSKM_UM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-4640-00-00 MOD START
//				parentMap.put("typen_telsvc_banpo_sbt", JKKWebCommon.convertCode(bean, 
//																		KKW00101SFConst.TYPEN_BMP_SBT_LIST,
//																		KKW00101SFConst.SELECT_CD_59,
//																		KKW00101SFConst.CD_LIST_59));
				// 未選択時、JKKWebCommon.convertCodeだとNumberFormatExceptionとなって固定の0を返却してしまうので
				// 未選択時は、nullを返却する処理へ改修
				// 電話サービス 番ポ種別
				String bmpSbtCd = JKKWebCommon.getPullDownCode(bean, KKW00101SFConst.TYPEN_BMP_SBT_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
				parentMap.put("typen_telsvc_banpo_sbt", bmpSbtCd);
// ANK-4640-00-00 MOD END
				
				// 電話サービス 電話番号種類
				parentMap.put("typen_telsvc_telno_sri", JKKWebCommon.convertCode(bean, 
																		KKW00101SFConst.TYPEN_TELNO_SRI_LIST,
																		KKW00101SFConst.SELECT_CD_59,
																		KKW00101SFConst.CD_LIST_59));
				// 電話サービス 電話番号
				parentMap.put("typen_telsvc_telno", bean.sendMessageString(KKW00101SFConst.TYPEN_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
				
// ANK-4640-00-00 ADD START
				// 電話サービス 現在ご利用中の電話サービス提供事業者（表示用）
				parentMap.put("typen_telsvc_now_use_tel_svc_tk_jgs_nm", bean.sendMessageString(KKW00101SFConst.TYPEN_TEL_NOW_USE_TEL_SVC_TK_JGS_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4640-00-00 ADD END
				
				// 電話サービス 移転元契約者名義
				parentMap.put("typen_telsvc_itnmt_kys_meigi", bean.sendMessageString(KKW00101SFConst.TYPEN_TEL_ITNMT_KYS_MEIGI, X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス 郵便番号
				String pcd = JKKStringUtil.nullToBlank(bean.sendMessageString(KKW00101SFConst.TYPEN_TELAD_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
				if (!JKKStringUtil.isNullBlank(pcd))
				{
					pcd += JKKStringUtil.nullToBlank(bean.sendMessageString(KKW00101SFConst.TYPEN_TELAD_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
				}
				parentMap.put("typen_telsvc_pcd", pcd);
				// 電話サービス 住所
				parentMap.put("typen_telsvc_ad", bean.sendMessageString(KKW00101SFConst.TYPEN_TELAD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス 電話加入権有無
				parentMap.put("typen_telsvc_tel_knkn_um", bean.sendMessageString(KKW00101SFConst.TYPEN_TEL_KNKN_UM, X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス 電話加入権休止解約種別
				parentMap.put("typen_telsvc_tel_knkn_ksky_sbt", JKKWebCommon.convertCode(bean, 
																		KKW00101SFConst.TYPEN_TEL_KNKN_KSKY_SBT_LIST,
																		KKW00101SFConst.SELECT_CD_59,
																		KKW00101SFConst.CD_LIST_59));
				// 電話サービス オプション−電話番号通知有無
				parentMap.put("typen_telsvc_telno_tuti_um", bean.sendMessageString(KKW00101SFConst.TYPEN_TELOP_TELNO_TUTI_UM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス オプション−発信者番号表示有無
				parentMap.put("typen_telsvc_hsnsha_nodsp_um", bean.sendMessageString(KKW00101SFConst.TYPEN_TELOP_HSNSHA_NODSP_UM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス オプション−非通知着信拒否有無
				parentMap.put("typen_telsvc_hituti_cksnkh_um", bean.sendMessageString(KKW00101SFConst.TYPEN_TELOP_HITUTI_CKSNKH_UM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
				// 電話サービス オプション−国際電話利用抑止有無
				parentMap.put("typen_telsvc_kksitel_ryys_um", bean.sendMessageString(KKW00101SFConst.TYPEN_TELOP_KKSITEL_RYYS_UM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			}
// △△△ ANK-4427-00-00 ADD END
		}

		// マンションタイプの場合
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// 光配線方式
			if (MANSION_KAISEN_HSK_CD_OPTICAL.equals(bean.sendMessageString(KKW00101SFConst.MANSION_KAISEN_HOSHIKI, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 光配線方式
				parentMap.put("hikari_haisen_hsk", JKKWebCommon.convertCode(
						bean, KKW00101SFConst.HIKARI_HAISEN_HOSHIKI_LIST,
						KKW00101SFConst.SELECT_CD_59,
						KKW00101SFConst.CD_LIST_59));
				// イーサネット方式・光配線方式（表示）
				parentMap.put("mansion_course_screen", bean.sendMessageString(KKW00101SFConst.MANSION_COURSE_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			}
			// イーサネット方式
			else if (MANSION_KAISEN_HSK_CD_ETHER.equals(bean.sendMessageString(KKW00101SFConst.MANSION_KAISEN_HOSHIKI, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// イーサネット方式
				parentMap.put("enet_hsk", JKKWebCommon.convertCode(
						bean, KKW00101SFConst.ENET_HOSHIKI_LIST,
						KKW00101SFConst.SELECT_CD_59,
						KKW00101SFConst.CD_LIST_59));
				// イーサネット方式・光配線方式（表示）
				parentMap.put("mansion_course_screen", bean.sendMessageString(KKW00101SFConst.MANSION_COURSE_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		
		// ネット＿ＶＤＳＬ方式表示制御フラグがtrue（表示）の場合
		if (bean.sendMessageBoolean(KKW00101SFConst.NET_VDSL_HSK_DSP_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ＶＤＳＬ方式（確認画面用）
			parentMap.put("vdsl_hoshiki_screen", bean.sendMessageString(KKW00101SFConst.VDSL_HOSHIKI_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
	    //20170403 ANK-3149-00-00 ADD START
		// セキュリティーパック（表示）
		parentMap.put("op_security_pack_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_SECURITY_PACK_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
	    //20170403 ANK-3149-00-00 ADD END
		// ファミリーパック（表示）
		parentMap.put("op_family_pack_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_FAMILY_PACK_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// eo光ルータレンタル（表示）
		parentMap.put("op_tkn_router_rental_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_ROUTER_RENTAL_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// リモートサポートプラス（表示）
		parentMap.put("op_remote_plus_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_REMOTE_PLUS_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
	    //20170403 ANK-3149-00-00 ADD START
		// インターネットサギウォール for eo（表示）
		parentMap.put("op_inetsgw_for_eo_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_INETSGW_FOR_EO_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ノートンファミリープレミア for eo（表示）
		parentMap.put("op_ntfmlprm_for_eo_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_NTFMLPRM_FOR_EO_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3484-00-00 ADD START
		// オプション＿ＰＣプラン（確認画面用）
		parentMap.put("op_pc_plan_kei_um_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_PC_PLAN_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// オプション＿ＰＣワイドプラン（確認画面用）
		parentMap.put("op_pc_wide_plan_kei_um_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_PC_WIDE_PLAN_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// オプション＿ＴＶプラン（確認画面用）
		parentMap.put("op_tv_plan_kei_um_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.OP_TV_PLAN_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3484-00-00 ADD END
	    //20170403 ANK-3149-00-00 ADD END
		// eo光PLCアダプタレンタル（表示）
		parentMap.put("op_plc_rental_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.OP_PLC_RENTAL_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		//eo光スティックレンタルサービス（表示）
		parentMap.put("op_ip_stb_rental_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.IP_STB_RENTAL_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3987-00-00 MOD START
//		//eo光スティックレンタルサービス＿ご利用台数（表示）
//		parentMap.put("op_ip_stb_rental_cnt_cfm_screen", 
//				bean.sendMessageString(KKW00101SFConst.IP_STB_RENTAL_USE_CNT_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ストリーミングメディアプレイヤー端末名（表示）
		parentMap.put("smp_tanmt_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.SMP_TNMT_NM_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ストリーミングメディアプレイヤー購入の場合
		if(bean.sendMessageBoolean(KKW00101SFConst.IP_STB_RENTAL, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ストリーミングメディアプレイヤー端末購入受付担当者名
			parentMap.put("smp_buy_uk_tntsha_nm",
					bean.sendMessageString(KKW00101SFConst.SMP_TNMT_BUY_UK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
		}
		// ANK-3987-00-00 MOD END
		// タブレット端末
		parentMap.put("tablet_tanmt", bean.sendMessageBoolean(KKW00101SFConst.TABLET_BUY, X31CWebConst.DATABEAN_GET_VALUE));
		// タブレット端末（表示）
		parentMap.put("tablet_tanmt_screen", bean.sendMessageString(KKW00101SFConst.TABLET_TANMT_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// タブレット端末-端末名 （２種類設定しないといけないが、現状使用されていないため設定しない）
		parentMap.put("tablet_tanmt_nm", "");
		// タブレット端末名（表示）
		parentMap.put("tablet_tanmt_nm_screen", bean.sendMessageString(KKW00101SFConst.TABLET_TNMT_NM_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// タブレット端末-支払方法（表示）
		parentMap.put("tablet_tanmt_payway_screen",
				bean.sendMessageString(KKW00101SFConst.TABLET_TANMT_PAYWAY_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		
		// タブレット端末-端末補償（表示）
		parentMap.put("tablet_tanmt_comps_screen",
				bean.sendMessageString(KKW00101SFConst.TABLET_TNMT_COMPS_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		//タブレット購入の場合
		if(bean.sendMessageBoolean(KKW00101SFConst.TABLET_BUY, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// タブレット端末-端末購入受付担当者名
			parentMap.put("tanmt_buy_uk_tntsha_nm",
					bean.sendMessageString(KKW00101SFConst.TABLET_TNMT_BUY_UK_TNTSHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			
			// タブレット端末-支払方法
			parentMap.put("tablet_tanmt_payway", JKKWebCommon.convertCode(
					bean, KKW00101SFConst.TABLET_PAYWAY_LIST,
					KKW00101SFConst.SELECT_CD_59,
					KKW00101SFConst.CD_LIST_59));
		}

		// プレミアムパック
		parentMap.put("premium_pack", bean.sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE));
		// プレミアムパック（表示）
		parentMap.put("premium_pack_screen", bean.sendMessageString(KKW00101SFConst.PREMIUM_PACK_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

		// ネット・記事欄
		parentMap.put("net_kijiran", bean.sendMessageString(KKW00101SFConst.NET_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));
	}

	/**
	 * 申込断面XML設定（eo光電話1）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @param svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenEohTel1(
			X31SDataBeanAccess bean,
			HashMap parentMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		if(!svcKeiUpdFlgs.get(IS_TEL1_ADD) && !svcKeiUpdFlgs.get(IS_TEL1_UPDATE))
		{
			return;
		}

		// １番号目＿ＶＤＳＬ方式表示制御フラグが表示の場合
		if (bean.sendMessageBoolean(KKW00101SFConst.TEL1_VDSL_HSK_DSP_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// ＶＤＳＬ方式（確認画面用）
			parentMap.put("vdsl_hoshiki_screen", bean.sendMessageString(KKW00101SFConst.VDSL_HOSHIKI_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		}
		
		// １番号．電話番号の種類
		parentMap.put("tel1_telno_kind", bean.sendMessageString(KKW00101SFConst.TEL1_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE));
		// １番号．電話番号の種類（表示）
		parentMap.put("tel1_telno_kind_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL1_TELNO_KIND_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

		// 新番号
		if (TELNO_KIND_NEW.equals(
				bean.sendMessageString(KKW00101SFConst.TEL1_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// １番号．K-OPT電話番号
			parentMap.put("tel1_kopt_telno", bean.sendMessageString(KKW00101SFConst.TEL1_KOPT_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

		}
		// 番号ポータビリティ
		else
		{
			// １番号．番号ポータビリティの利用場所
			parentMap.put("tel1_bmp_use_plc", bean.sendMessageString(KKW00101SFConst.TEL1_BMP_USE_PLC, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号．番号ポータビリティの利用場所（表示）
			parentMap.put("tel1_bmp_use_plc_screen", bean.sendMessageString(KKW00101SFConst.TEL1_BMP_USE_PLC_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-4494-00-00 DEL START
//			// １番号目＿ＮＴＴ番号移転手続きについて（確認画面）
//			if (JKKStrConst.CD00720_BMP_USE_PLC_CD_REMOVAL.equals(bean.sendMessageString(KKW00101SFConst.TEL1_BMP_USE_PLC, X31CWebConst.DATABEAN_GET_VALUE)))
//			{
//				parentMap.put("tel1_ntt_no_iten_ttdk_screen", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_NO_ITEN_TTDK_SCREEN,
//						X31CWebConst.DATABEAN_GET_VALUE));
//			}
// ANK-4494-00-00 DEL END

			// １番号．契約者情報入力補助（表示）
			parentMap.put("tel1_keisha_info_input_hojo_cfm_screen",
					bean.sendMessageString(KKW00101SFConst.TEL1_KEISHA_INFO_INPUT_HOJO_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号．番号ポータビリティ・電話番号
			parentMap.put("tel1_bmp_telno", bean.sendMessageString(KKW00101SFConst.TEL1_BMP_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号．提供事業者（表示）
			parentMap.put("tel1_tsjgs_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.TEL1_TSJGS_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

			// 契約者タイプが 個人 の場合
			if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
					bean.sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// １番号．契約者名義_契約申込者と同じ
				parentMap.put("tel1_kei_mskmsha_same", bean.sendMessageBoolean(KKW00101SFConst.TEL1_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// １番号．契約者名義人
			parentMap.put("tel1_ntt_keisha_nm", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号．契約者名義カナ
			parentMap.put("tel1_ntt_keisha_kana", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号．郵便番号（前）
			parentMap.put("tel1_ntt_keisha_pcd_bf", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号．郵便番号（後）
			parentMap.put("tel1_ntt_keisha_pcd_af", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号目．都道府県
			parentMap.put("tel1_ntt_keisha_state_nm", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号目．市区町村
			parentMap.put("tel1_ntt_keisha_city_nm", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号目．大字通称名
			parentMap.put("tel1_ntt_keisha_oaztsu_nm", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号目．字丁目名
			parentMap.put("tel1_ntt_keisha_azcho_nm", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号目．番地・号
			parentMap.put("tel1_ntt_keisha_bnchigo", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号目．建物名等
			parentMap.put("tel1_ntt_keisha_adrttm", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号目．部屋番号等
			parentMap.put("tel1_ntt_keisha_adrrm", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// １番号．ご住所
			parentMap.put("tel1_ntt_keisha_ad_screen", bean.sendMessageString(KKW00101SFConst.TEL1_NTT_KEISHA_AD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-4494-00-00 DEL START
//			// マンションタイプで引越し先で利用の場合
//// ANK-3362-00-00 MOD START
////			if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, IS_JDG_YO_MSKM_FORM_TEL)
//			if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, mskmForm)
//// ANK-3362-00-00 MOD END
//					&& BMP_USE_PLC_CD_REMOVAL.equals(bean.sendMessageString(KKW00101SFConst.TEL1_BMP_USE_PLC, X31CWebConst.DATABEAN_GET_VALUE)))
//			{
//				// １番号．可否調査依頼
//				parentMap.put("tel1_ntt_dobanmove_kh_chosa_req", JKKWebCommon.convertCode(
//						bean, KKW00101SFConst.TEL1_NTT_DOBANMOVE_KH_CHOSA_REQ,
//						KKW00101SFConst.SELECT_CD_59,
//						KKW00101SFConst.CD_LIST_59));
//				// １番号．可否調査依頼（表示）
//				parentMap.put("tel1_kh_chosa_req_screen", bean.sendMessageString(KKW00101SFConst.TEL1_KH_CHOSA_REQ_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
//			}
// ANK-4494-00-00 DEL END
		}

		// １番号．発信者番号通知（表示）
		parentMap.put("tel1_htb_tchi_um_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL1_HTB_TCHI_UM_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// １番号．発信者番号表示（表示）
		parentMap.put("tel1_opt_htb_tchi_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL1_OPT_HTB_TCHI_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// １番号．非通知着信拒否（表示）
		parentMap.put("tel1_opt_htchi_kyohi_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL1_OPT_HTCHI_KYOHI_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// １番号．パック３
		parentMap.put("tel1_opt_eohtl_pack_3_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL1_OPT_EOHTL_PACK_3_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// １番号．パック７
		parentMap.put("tel1_opt_eohtl_pack_7_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3754-00-00 ADD START
		// １番号．あんしん電話パック
		parentMap.put("tel1_opt_ansn_tel_pack_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3754-00-00 ADD END
		// 電話・記事欄
		parentMap.put("tel_kijiran", bean.sendMessageString(KKW00101SFConst.TEL_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));
	}

	/**
	 * 申込断面XML設定（eo光電話2）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @param svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenEohTel2(
			X31SDataBeanAccess bean,
			HashMap parentMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		if(!svcKeiUpdFlgs.get(IS_TEL1_ADD) && !svcKeiUpdFlgs.get(IS_TEL1_UPDATE))
		{
			return;
		}

		if (!TEL_TWO.equals(bean.sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return;
		}

		// ２番号．電話番号の種類
		parentMap.put("tel2_telno_kind", bean.sendMessageString(KKW00101SFConst.TEL2_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE));
		// ２番号．電話番号の種類（表示）
		parentMap.put("tel2_telno_kind_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL2_TELNO_KIND_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

		// 新番号
		if (TELNO_KIND_NEW.equals(
				bean.sendMessageString(KKW00101SFConst.TEL2_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// ２番号．K-OPT電話番号
			parentMap.put("tel2_kopt_telno", bean.sendMessageString(KKW00101SFConst.TEL2_KOPT_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// 番号ポータビリティ
		else
		{
			// ２番号．番号ポータビリティの利用場所
			parentMap.put("tel2_bmp_use_plc", bean.sendMessageString(KKW00101SFConst.TEL2_BMP_USE_PLC, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号．番号ポータビリティの利用場所（表示）
			parentMap.put("tel2_bmp_use_plc_screen", bean.sendMessageString(KKW00101SFConst.TEL2_BMP_USE_PLC_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-4494-00-00 DEL START
//			// ２番号目＿ＮＴＴ番号移転手続きについて（確認画面）
//			if (JKKStrConst.CD00720_BMP_USE_PLC_CD_REMOVAL.equals(bean.sendMessageString(KKW00101SFConst.TEL2_BMP_USE_PLC, X31CWebConst.DATABEAN_GET_VALUE)))
//			{
//				parentMap.put("tel2_ntt_no_iten_ttdk_screen", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_NO_ITEN_TTDK_SCREEN,
//						X31CWebConst.DATABEAN_GET_VALUE));
//			}
// ANK-4494-00-00 DEL END

			// ２番号．契約者情報入力補助（表示）
			parentMap.put("tel2_keisha_info_input_hojo_cfm_screen",
					bean.sendMessageString(KKW00101SFConst.TEL2_KEISHA_INFO_INPUT_HOJO_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号．番号ポータビリティ・電話番号
			parentMap.put("tel2_bmp_telno", bean.sendMessageString(KKW00101SFConst.TEL2_BMP_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号．提供事業者（表示）
			parentMap.put("tel2_tsjgs_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.TEL2_TSJGS_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

			// 契約者タイプが 個人 の場合
			if (JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(
					bean.sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// ２番号．契約者名義_契約申込者と同じ
				parentMap.put("tel2_kei_mskmsha_same", bean.sendMessageBoolean(KKW00101SFConst.TEL2_KEI_MSKMSHA_SAME, X31CWebConst.DATABEAN_GET_VALUE));
			}

			// ２番号．契約者名義人
			parentMap.put("tel2_ntt_keisha_nm", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号．契約者名義カナ
			parentMap.put("tel2_ntt_keisha_kana", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号．郵便番号（前）
			parentMap.put("tel2_ntt_keisha_pcd_bf", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号．郵便番号（後）
			parentMap.put("tel2_ntt_keisha_pcd_af", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号目．都道府県
			parentMap.put("tel2_ntt_keisha_state_nm", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号目．市区町村
			parentMap.put("tel2_ntt_keisha_city_nm", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号目．大字通称名
			parentMap.put("tel2_ntt_keisha_oaztsu_nm", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号目．字丁目名
			parentMap.put("tel2_ntt_keisha_azcho_nm", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号目．番地・号
			parentMap.put("tel2_ntt_keisha_bnchigo", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号目．建物名等
			parentMap.put("tel2_ntt_keisha_adrttm", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号目．部屋番号等
			parentMap.put("tel2_ntt_keisha_adrrm", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// ２番号．ご住所
			parentMap.put("tel2_ntt_keisha_ad_screen", bean.sendMessageString(KKW00101SFConst.TEL2_NTT_KEISHA_AD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-4494-00-00 DEL START
//			// マンションタイプで引越し先で利用の場合
//// ANK-3362-00-00 MOD START
////			if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, IS_JDG_YO_MSKM_FORM_TEL)
//			if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, mskmForm)
//// ANK-3362-00-00 MOD END
//					&& BMP_USE_PLC_CD_REMOVAL.equals(bean.sendMessageString(KKW00101SFConst.TEL2_BMP_USE_PLC, X31CWebConst.DATABEAN_GET_VALUE)))
//			{
//				// ２番号．可否調査依頼
//				parentMap.put("tel2_ntt_dobanmove_kh_chosa_req", JKKWebCommon.convertCode(
//						bean, KKW00101SFConst.TEL2_NTT_DOBANMOVE_KH_CHOSA_REQ,
//						KKW00101SFConst.SELECT_CD_59,
//						KKW00101SFConst.CD_LIST_59));
//				// ２番号．可否調査依頼（表示）
//				parentMap.put("tel2_kh_chosa_req_screen", bean.sendMessageString(KKW00101SFConst.TEL2_KH_CHOSA_REQ_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
//			}
// ANK-4494-00-00 DEL END
		}

		// ２番号．発信者番号通知（表示）
		parentMap.put("tel2_htb_tchi_um_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL2_HTB_TCHI_UM_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ２番号．発信者番号表示（表示）
		parentMap.put("tel2_opt_htb_tchi_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL2_OPT_HTB_TCHI_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ２番号．非通知着信拒否（表示）
		parentMap.put("tel2_opt_htchi_kyohi_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL2_OPT_HTCHI_KYOHI_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ２番号．パック３
		parentMap.put("tel2_opt_eohtl_pack_3_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL2_OPT_EOHTL_PACK_3_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ２番号．パック７
		parentMap.put("tel2_opt_eohtl_pack_7_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3754-00-00 ADD START
		// ２番号．あんしん電話パック
		parentMap.put("tel2_opt_ansn_tel_pack_nm_cfm_screen",
				bean.sendMessageString(KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK_NM_CFM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ANK-3754-00-00 ADD END
	}

	/**
	 * 申込断面XML設定（eo光テレビ）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @param svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenEohTV(
			X31SDataBeanAccess bean,
			HashMap parentMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		if(!svcKeiUpdFlgs.get(IS_TV_ADD) && !svcKeiUpdFlgs.get(IS_TV_UPDATE))
		{
			return;
		}

		// 再送信項目、表示処理
		if (CATV_COMP_FLG_RESEND.equals(bean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// チャンネル
			parentMap.put("multi_channel", bean.sendMessageBoolean(KKW00101SFConst.MULTI_CHANNEL, X31CWebConst.DATABEAN_GET_VALUE));
			// 再送信種別（確認画面用）
			parentMap.put("re_send_tk_svc_sbt_cd_screen",
					bean.sendMessageString(KKW00101SFConst.RE_SEND_TK_SVC_SBT_CD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 電障コード
			parentMap.put("dmps_anken_no", bean.sendMessageString(KKW00101SFConst.DMPS_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// K-CAT項目、表示処理
		if (CATV_COMP_FLG_KCAT.equals(bean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				|| CATV_COMP_FLG_RESEND.equals(bean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// テレビ．コース選択
			parentMap.put("mskm_svc_choice", bean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE));
			
			// ベーシックHDまたはプレミアムHD
			if (MSKM_SVC_CHOICE_CD_HD.equals(bean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// テレビ．コース選択（表示）
				// ANK-2530-12-00 2016/07/12 MOD START
				//parentMap.put("mskm_svc_choice_nm_cfm_screen", MSKM_SVC_CHOICE_NM_HD_DMEN + MSKM_SVC_CHOICE_NM_TUNER_ARI);
				parentMap.put("mskm_svc_choice_nm_cfm_screen", MSKM_SVC_CHOICE_NM_HD_DMEN_NEW + MSKM_SVC_CHOICE_NM_TUNER_ARI);
				// ANK-2530-12-00 2016/07/12 MOD END
				
				// K-CAT_1台目_eo光テレビチューナー(STB)
				parentMap.put("kcat_tv_tuner_nm_cfm_screen_1",
						bean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_NM_CFM_SCREEN_1, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_2台目_eo光テレビチューナー(STB)
				parentMap.put("kcat_tv_tuner_nm_cfm_screen_2",
						bean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_NM_CFM_SCREEN_2, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_3台目_eo光テレビチューナー(STB)
				parentMap.put("kcat_tv_tuner_nm_cfm_screen_3",
						bean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_NM_CFM_SCREEN_3, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_4台目_eo光テレビチューナー(STB)
				parentMap.put("kcat_tv_tuner_nm_cfm_screen_4",
						bean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_NM_CFM_SCREEN_4, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_5台目_eo光テレビチューナー(STB)
				parentMap.put("kcat_tv_tuner_nm_cfm_screen_5",
						bean.sendMessageString(KKW00101SFConst.KCAT_TV_TUNER_NM_CFM_SCREEN_5, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_1台目_コース選択
				parentMap.put("kcat_course_choice_nm_cfm_screen_1",
						bean.sendMessageString(KKW00101SFConst.KCAT_COURSE_CHOICE_NM_CFM_SCREEN_1, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_2台目_コース選択
				parentMap.put("kcat_course_choice_nm_cfm_screen_2",
						bean.sendMessageString(KKW00101SFConst.KCAT_COURSE_CHOICE_NM_CFM_SCREEN_2, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_3台目_コース選択
				parentMap.put("kcat_course_choice_nm_cfm_screen_3",
						bean.sendMessageString(KKW00101SFConst.KCAT_COURSE_CHOICE_NM_CFM_SCREEN_3, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_4台目_コース選択
				parentMap.put("kcat_course_choice_nm_cfm_screen_4",
						bean.sendMessageString(KKW00101SFConst.KCAT_COURSE_CHOICE_NM_CFM_SCREEN_4, X31CWebConst.DATABEAN_GET_VALUE));
				// K-CAT_5台目_コース選択
				parentMap.put("kcat_course_choice_nm_cfm_screen_5",
						bean.sendMessageString(KKW00101SFConst.KCAT_COURSE_CHOICE_NM_CFM_SCREEN_5, X31CWebConst.DATABEAN_GET_VALUE));
				// eo光テレビガイド誌お申込み冊数
				parentMap.put("cable_guide_mskm_cnt", bean.sendMessageString(KKW00101SFConst.CABLE_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			}
			else if (MSKM_SVC_CHOICE_CD_TDBS.equals(bean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				if (bean.sendMessageBoolean(KKW00101SFConst.STAR_CHANNEL_SET, X31CWebConst.DATABEAN_GET_VALUE))
				{
					// テレビ．コース選択を"3"(地デジ・BSコース+スタchセット)に設定
					parentMap.put("mskm_svc_choice", MSKM_SVC_CHOICE_CD_TDBS_STARCH);
					// テレビ．コース選択（表示）
					parentMap.put("mskm_svc_choice_nm_cfm_screen", bean.sendMessageString(KKW00101SFConst.STAR_CHANNEL_SET_NM, X31CWebConst.DATABEAN_GET_VALUE));
				}
				else
				{
					// テレビ．コース選択（表示）
					parentMap.put("mskm_svc_choice_nm_cfm_screen", MSKM_SVC_CHOICE_NM_TDBS_DMEN + MSKM_SVC_CHOICE_NM_TUNER_NASHI);
				}
			}
			// ANK-4592-00-00 ADD START
			// CSベーシック
			else if (MSKM_SVC_CHOICE_CD_CSBASIC.equals(bean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// テレビ．コース選択（表示）
				parentMap.put("mskm_svc_choice_nm_cfm_screen", MSKM_SVC_CHOICE_NM_CSBASIC_DMEN);
				
				// eo光テレビガイド誌お申込み冊数
				parentMap.put("cable_guide_mskm_cnt", bean.sendMessageString(KKW00101SFConst.CABLE_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			}
			// CSプレミアム
			else if (MSKM_SVC_CHOICE_CD_CSPREMIUM.equals(bean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// テレビ．コース選択（表示）
				parentMap.put("mskm_svc_choice_nm_cfm_screen", MSKM_SVC_CHOICE_NM_CSPREMIUM_DMEN);
				
				// eo光テレビガイド誌お申込み冊数
				parentMap.put("cable_guide_mskm_cnt", bean.sendMessageString(KKW00101SFConst.CABLE_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE));
			}
			// ANK-4592-00-00 ADD END
		}
		// KCN
		else
		{
			// KCN_1台目_eo光テレビチューナー(STB)
			parentMap.put("kcn_tv_tuner_nm_cfm_screen_1",
					bean.sendMessageString(KKW00101SFConst.KCN_TV_TUNER_NM_CFM_SCREEN_1, X31CWebConst.DATABEAN_GET_VALUE));
			// KCN_2台目_eo光テレビチューナー(STB)
			parentMap.put("kcn_tv_tuner_nm_cfm_screen_2",
					bean.sendMessageString(KKW00101SFConst.KCN_TV_TUNER_NM_CFM_SCREEN_2, X31CWebConst.DATABEAN_GET_VALUE));
			// KCN_3台目_eo光テレビチューナー(STB)
			parentMap.put("kcn_tv_tuner_nm_cfm_screen_3",
					bean.sendMessageString(KKW00101SFConst.KCN_TV_TUNER_NM_CFM_SCREEN_3, X31CWebConst.DATABEAN_GET_VALUE));
			// KCN_4台目_eo光テレビチューナー(STB)
			parentMap.put("kcn_tv_tuner_nm_cfm_screen_4",
					bean.sendMessageString(KKW00101SFConst.KCN_TV_TUNER_NM_CFM_SCREEN_4, X31CWebConst.DATABEAN_GET_VALUE));
			// KCN_5台目_eo光テレビチューナー(STB)
			parentMap.put("kcn_tv_tuner_nm_cfm_screen_5",
					bean.sendMessageString(KKW00101SFConst.KCN_TV_TUNER_NM_CFM_SCREEN_5, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// テレビ・記事欄
		parentMap.put("tv_kijiran", bean.sendMessageString(KKW00101SFConst.TV_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));
	}

	/**
	 * 申込断面XML設定（eoモバイル）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @param svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenEoMoba(
			X31SDataBeanAccess bean,
			HashMap parentMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		if(!svcKeiUpdFlgs.get(IS_MOBILE_ADD) && !svcKeiUpdFlgs.get(IS_MOBILE_UPDATE))
		{
			return;
		}

		// モバイル機器表示フラグ
		boolean mobileKikiDispFlg =  bean.sendMessageBoolean(KKW00101SFConst.MOBILE_KIKI_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// モバイル．コース選択
		parentMap.put("mobile_course_choice", JKKWebCommon.convertCode(
				bean, KKW00101SFConst.MOBILE_COURSE_DSP_GRP,
				KKW00101SFConst.SELECT_CD_59,
				KKW00101SFConst.CD_LIST_59));
		// モバイル．コース選択（表示）
		parentMap.put("mobile_course_choice_screen", bean.sendMessageString(KKW00101SFConst.MOBILE_COURSE_CHOICE_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

		if (mobileKikiDispFlg)
		{
			// モバイル．郵便番号・ご住所
			parentMap.put("mobile_kiki_sohus_ad_skbt_screen",
					bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_AD_SKBT_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．郵便番号（前）
			parentMap.put("mobile_kiki_sohus_pcd_bf", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．郵便番号（後）
			parentMap.put("mobile_kiki_sohus_pcd_af", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．都道府県
			parentMap.put("mobile_kiki_sohus_state_nm", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_STATE_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．市区町村
			parentMap.put("mobile_kiki_sohus_city_nm", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_CITY_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．大字通称名
			parentMap.put("mobile_kiki_sohus_oaztsu_nm", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_OAZTSU_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．字丁目名
			parentMap.put("mobile_kiki_sohus_azcho_nm", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_AZCHO_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．番地・号
			parentMap.put("mobile_kiki_sohus_bnchigo", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．建物名等
			parentMap.put("mobile_kiki_sohus_adrttm", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．部屋番号等
			parentMap.put("mobile_kiki_sohus_adrrm", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．ご住所
			parentMap.put("mobile_kiki_ad_screen", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_AD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．送付先名
			parentMap.put("mobile_kiki_sohus_shs_nm", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_SHS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．送付先名カナ
			parentMap.put("mobile_kiki_sohus_shs_nm_kana",
					bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_SHS_NM_KANA, X31CWebConst.DATABEAN_GET_VALUE));
			// モバイル．電話番号
			parentMap.put("mobile_kiki_sohus_telno", bean.sendMessageString(KKW00101SFConst.MOBILE_KIKI_SOHUS_TELNO, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// モバイル・記事欄
		parentMap.put("mobile_kijiran", bean.sendMessageString(KKW00101SFConst.MOBILE_KIJIRAN, X31CWebConst.DATABEAN_GET_VALUE));
	}

	/**
	 * 申込断面XML設定（特記）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @param mskmInfoMap 申込情報マップ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenTokki(
			X31SDataBeanAccess bean,
			HashMap parentMap,
			HashMap<String, Object> mskmInfoMap) throws Exception
	{
		// 申込フラグ
		String mskmFlg = bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);

		// マンション・メゾンタイプの場合
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, IS_JDG_YO_MSKM_FORM_TEL)
//				|| isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MEZON, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, mskmForm)
				|| isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MEZON, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// P-ID
			parentMap.put("pid", bean.sendMessageString(KKW00101SFConst.PID, X31CWebConst.DATABEAN_GET_VALUE));
			// M-ID
			parentMap.put("mid", bean.sendMessageString(KKW00101SFConst.MID, X31CWebConst.DATABEAN_GET_VALUE));
			// 付加（表示）
			parentMap.put("fuka_screen", bean.sendMessageString(KKW00101SFConst.FUKA_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));

			if (KIKI_DISP_FLG_ON.equals(bean.sendMessageString(KKW00101SFConst.KIKI_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 機器（表示）
				parentMap.put("kiki_screen", bean.sendMessageString(KKW00101SFConst.KIKI_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			}
			// CAT-ID
			parentMap.put("catid", bean.sendMessageString(KKW00101SFConst.CATID, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// ご本人様確認書類（表示）
		parentMap.put("hnin_cfm_bunsho_kind_screen", bean.sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// ご本人様確認書類その他
		parentMap.put("hnin_cfm_bunsho_kind_otr", bean.sendMessageString(KKW00101SFConst.HNIN_CFM_BUNSHO_KIND_OTR, X31CWebConst.DATABEAN_GET_VALUE));

		// ホームタイプの場合
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// 工事連絡事項（表示）
			parentMap.put("telrrk_kibodow_screen", bean.sendMessageString(KKW00101SFConst.TELRRK_KIBODOW_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 電話連絡時間のご希望_時間（表示）
			parentMap.put("telrrk_kibotime_screen", bean.sendMessageString(KKW00101SFConst.TELRRK_KIBOTIME_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 宅調訪問時間のご希望（表示）
			parentMap.put("takcho_kibodow_screen", bean.sendMessageString(KKW00101SFConst.TAKCHO_KIBODOW_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 新築物件
			parentMap.put("newconst_bukken", bean.sendMessageBoolean(KKW00101SFConst.NEWCONST_BUKKEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 復活案件
			parentMap.put("hukkat_anken", bean.sendMessageBoolean(KKW00101SFConst.HUKKAT_ANKEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 同設再申込（表示）
			parentMap.put("same_equip_re_mskm_screen", bean.sendMessageString(KKW00101SFConst.SAME_EQUIP_RE_MSKM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4088-00-00 ADD START
			// 宅内調査のアポ架電希望
			parentMap.put("takcho_apo_kaden_kibo_screen", bean.sendMessageString(KKW00101SFConst.TAKCHO_APO_KADEN_KIBO_UM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// ANK-4088-00-00 ADD END
// ANK-4427-00-00 ADD START
			// typeNの項目を設定
			if (BRAND_TYPE_TYPEN.equals(bean.sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				// 派遣要否希望
				parentMap.put("typen_haken_ym_kibo_flg", bean.sendMessageBoolean(KKW00101SFConst.WAO_HAKEN_YH_KIBO_UM, X31CWebConst.DATABEAN_GET_VALUE));
				// 工事希望年月日１
				parentMap.put("typen_koji_kibo_ymd_1", bean.sendMessageString(KKW00101SFConst.WAO_KOJI_KIBO_YMD1_SCREEN, X31CWebConst.DATABEAN_GET_VALUE).replaceAll("/", ""));
				// 工事希望時間帯１
				parentMap.put("typen_koji_kibo_jkntai_1", getTimezCd(bean, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ1_LIST_SCREEN, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ1_LIST));
				// 工事希望年月日２
				parentMap.put("typen_koji_kibo_ymd_2", bean.sendMessageString(KKW00101SFConst.WAO_KOJI_KIBO_YMD2_SCREEN, X31CWebConst.DATABEAN_GET_VALUE).replaceAll("/", ""));
				// 工事希望時間帯２
				parentMap.put("typen_koji_kibo_jkntai_2", getTimezCd(bean, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ2_LIST_SCREEN,KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ2_LIST));
				// 工事希望年月日３
				parentMap.put("typen_koji_kibo_ymd_3", bean.sendMessageString(KKW00101SFConst.WAO_KOJI_KIBO_YMD3_SCREEN, X31CWebConst.DATABEAN_GET_VALUE).replaceAll("/", ""));
				// 工事希望時間帯３
				parentMap.put("typen_koji_kibo_jkntai_3", getTimezCd(bean, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ3_LIST_SCREEN, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ3_LIST));
				// 工事会社への連絡事項欄
				parentMap.put("typen_kjkis_rrkjikorn", bean.sendMessageString(KKW00101SFConst.WAO_KOCOMP_RRK_JIKO, X31CWebConst.DATABEAN_GET_VALUE));
			}
// ANK-4427-00-00 ADD END
		}
// ANK-4427-00-00 ADD START
		// 転居元お客さまID
		parentMap.put("tnkmt_svc_kei_no", bean.sendMessageString(KKW00101SFConst.ITENM_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-4427-00-00 ADD END

		// ANK-3136-00-00 ADD START
		// ホーム・メゾンタイプでネット・電話・テレビの場合
		if ((isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, null) || isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MEZON, null)) &&
				(bean.sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				|| bean.sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				|| bean.sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 他システム連携＿宅調不要フラグ（表示）
			parentMap.put("tsyrn_takcho_yh", bean.sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_HUYO_FLG_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿宅工事連絡先氏名
			parentMap.put("tsyrn_kj_rrks_nm", bean.sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿宅工事連絡先電話番号
			parentMap.put("tsyrn_kj_rrks_tln", bean.sendMessageString(KKW00101SFConst.TSYRN_TKJ_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿宅内調査時連絡先氏名
			parentMap.put("tsyrn_takcho_ji_rrks_nm", bean.sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_NM, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿宅内調査時連絡先電話番号
			parentMap.put("tsyrn_takcho_ji_rrks_tln", bean.sendMessageString(KKW00101SFConst.TSYRN_TAKCHO_JI_RRKS_TLN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿連絡希望日時
			parentMap.put("tsyrn_rrk_kibo_date", bean.sendMessageString(KKW00101SFConst.TSYRN_RRK_KIBO_DATE, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿地図有無（表示）
			parentMap.put("tsyrn_map_um", bean.sendMessageString(KKW00101SFConst.TSYRN_MAP_UM_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿既存契約情報
			parentMap.put("tsyrn_kzn_kei_inf", bean.sendMessageString(KKW00101SFConst.TSYRN_KZN_KEI_INF, X31CWebConst.DATABEAN_GET_VALUE));
			// 他システム連携＿不備解消年月日
			parentMap.put("tsyrn_hbi_kaishou_ymd", bean.sendMessageString(KKW00101SFConst.TSYRN_HBI_KAISHOU_YMD, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用（ｅｏ光ネット・ｅｏ光電話）−設備流用案件（表示）
			parentMap.put("net_equip_ryuyo_um", bean.sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用（ｅｏ光ネット・ｅｏ光電話）−流用元案件番号
			parentMap.put("net_ryuyo_moto_kjak_no", bean.sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用（ｅｏ光ネット・ｅｏ光電話）−流用希望年月日（表示）
			parentMap.put("net_sbry_kj_fin_kiboymd", bean.sendMessageString(KKW00101SFConst.NET_RYUYO_KIBO_YMD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用（ｅｏ光テレビ）−設備流用案件（表示）
			parentMap.put("tv_equip_ryuyo_um", bean.sendMessageString(KKW00101SFConst.TV_EQUIP_RYUYO_ANKEN_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用（ｅｏ光テレビ）−流用元案件番号
			parentMap.put("tv_ryuyo_moto_kjak_no", bean.sendMessageString(KKW00101SFConst.TV_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 設備流用（ｅｏ光テレビ）−流用希望年月日（表示）
			parentMap.put("tv_sbry_kj_fin_kiboymd", bean.sendMessageString(KKW00101SFConst.TV_RYUYO_KIBO_YMD_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		}
		else
		{
			// 他システム連携＿宅調不要フラグ（表示）
			parentMap.put("tsyrn_takcho_yh", "");
			// 他システム連携＿宅工事連絡先氏名
			parentMap.put("tsyrn_kj_rrks_nm", "");
			// 他システム連携＿宅工事連絡先電話番号
			parentMap.put("tsyrn_kj_rrks_tln", "");
			// 他システム連携＿宅内調査時連絡先氏名
			parentMap.put("tsyrn_takcho_ji_rrks_nm", "");
			// 他システム連携＿宅内調査時連絡先電話番号
			parentMap.put("tsyrn_takcho_ji_rrks_tln", "");
			// 他システム連携＿連絡希望日時
			parentMap.put("tsyrn_rrk_kibo_date", "");
			// 他システム連携＿地図有無（表示）
			parentMap.put("tsyrn_map_um", "");
			// 他システム連携＿既存契約情報
			parentMap.put("tsyrn_kzn_kei_inf", "");
			// 他システム連携＿不備解消年月日
			parentMap.put("tsyrn_hbi_kaishou_ymd", "");
			// 設備流用（ｅｏ光ネット・ｅｏ光電話）−設備流用案件（表示）
			parentMap.put("net_equip_ryuyo_um", "");
			// 設備流用（ｅｏ光ネット・ｅｏ光電話）−流用元案件番号
			parentMap.put("net_ryuyo_moto_kjak_no", "");
			// 設備流用（ｅｏ光ネット・ｅｏ光電話）−流用希望年月日（表示）
			parentMap.put("net_sbry_kj_fin_kiboymd", "");
			// 設備流用（ｅｏ光テレビ）−設備流用案件（表示）
			parentMap.put("tv_equip_ryuyo_um", "");
			// 設備流用（ｅｏ光テレビ）−流用元案件番号
			parentMap.put("tv_ryuyo_moto_kjak_no", "");
			// 設備流用（ｅｏ光テレビ）−流用希望年月日（表示）
			parentMap.put("tv_sbry_kj_fin_kiboymd", "");
		}
		// ANK-3136-00-00 ADD END

		// ホーム・マンションタイプの場合
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, IS_JDG_YO_MSKM_FORM_TEL)
//				|| isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, mskmForm)
				|| isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MANSION, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// 工事依頼情報-連絡事項
			parentMap.put("kojireqinfo_rrkjiko", bean.sendMessageString(KKW00101SFConst.KOJIREQINFO_RRKJIKO, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 連絡サポート情報．連絡条件（表示）
		parentMap.put("rrkjoken_screen", bean.sendMessageString(KKW00101SFConst.RRKJOKEN_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// 連絡サポート情報．連絡情報
		parentMap.put("rrkinfo", bean.sendMessageString(KKW00101SFConst.RRKINFO, X31CWebConst.DATABEAN_GET_VALUE));

		// 申込追加
		if(MSKM_FLG_TSUIKA.equals(mskmFlg))
		{
			// eo光ネットサービス併用
			parentMap.put("net_now_use_svc_screen", bean.sendMessageString(KKW00101SFConst.NET_NOW_USE_SVC_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// サービス内容の引き継ぎ
			parentMap.put("svc_nyo_hktgi_screen", bean.sendMessageString(KKW00101SFConst.SVC_NYO_HKTGI_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
			// 解約書類の送付希望
			parentMap.put("dsl_bunsho_kind_sohu_kibo_screen",
					bean.sendMessageString(KKW00101SFConst.DSL_BUNSHO_KIND_SOHU_KIBO_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		}

		// 取扱コード1-1
		parentMap.put("trat_cd1", bean.sendMessageString(KKW00101SFConst.TRAT_CD1, X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱コード1-1名称
		parentMap.put("agnt_nm1", bean.sendMessageString(KKW00101SFConst.AGNT_NM1, X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱コード1-2
		parentMap.put("trat_cd2", bean.sendMessageString(KKW00101SFConst.TRAT_CD2, X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱コード1-2名称
		parentMap.put("agnt_nm2", bean.sendMessageString(KKW00101SFConst.AGNT_NM2, X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱コード2-1
		parentMap.put("trat_cd3", bean.sendMessageString(KKW00101SFConst.TRAT_CD3, X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱コード2-1名称
		parentMap.put("agnt_nm3", bean.sendMessageString(KKW00101SFConst.AGNT_NM3, X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱コード2-2
		parentMap.put("trat_cd4", bean.sendMessageString(KKW00101SFConst.TRAT_CD4, X31CWebConst.DATABEAN_GET_VALUE));
		// 取扱コード2-2名称
		parentMap.put("agnt_nm4", bean.sendMessageString(KKW00101SFConst.AGNT_NM4, X31CWebConst.DATABEAN_GET_VALUE));
		// 連絡要否
		parentMap.put("rrk_yh_screen", bean.sendMessageString(KKW00101SFConst.RRK_YH_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		// 連絡事項
		parentMap.put("rrk_jiko", bean.sendMessageString(KKW00101SFConst.RRK_JIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// ホームタイプの場合
// ANK-3362-00-00 MOD START
//		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, IS_JDG_YO_MSKM_FORM_TEL))
		if (isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, mskmForm))
// ANK-3362-00-00 MOD END
		{
			// 面開発案件番号
			parentMap.put("menkaihat_anken_no", bean.sendMessageString(KKW00101SFConst.MENKAIHAT_ANKEN_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 案件名
			parentMap.put("anken_nm", bean.sendMessageString(KKW00101SFConst.ANKEN_NM, X31CWebConst.DATABEAN_GET_VALUE));
		}

		if (bean.sendMessageBoolean(KKW00101SFConst.SMTVL_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			String valCd = bean.sendMessageString(KKW00101SFConst.KDDI_VAL_CD, X31CWebConst.DATABEAN_GET_VALUE);
			// バリューコード
			parentMap.put("val_cd", valCd);

			if (valCd != null && !"".equals(valCd))
			{
				// 事業者契約管理番号
				parentMap.put("jigyosha_kei_knri_no", bean.sendMessageString(KKW00101SFConst.KDDI_JGS_KEI_KANRI_NO, X31CWebConst.DATABEAN_GET_VALUE));
			}
		}
		
		HashMap<String, Object> tokkiInfoMap = null;
		if (null != mskmInfoMap)
		{
			tokkiInfoMap = (HashMap<String, Object>)mskmInfoMap.get("KKSV007910CC");
		}
		
		if (null != tokkiInfoMap)
		{
			// 提携住宅会社コード
			parentMap.put("tkjcomp_cd", tokkiInfoMap.get("tkjcp_cd"));
			// 提携住宅会社名
			parentMap.put("tkjcomp_nm", tokkiInfoMap.get("tkjcp_nm"));
			// 提携住宅会社支店・営業所名
			parentMap.put("tkjcomp_shitenofc_nm", tokkiInfoMap.get("tkjcp_stnegs_nm"));
			// 提携住宅会社担当者名
			parentMap.put("tkjcomp_tntsha_nm", tokkiInfoMap.get("tkjcptts_nm"));
			// 提携住宅会社担当者職種
			parentMap.put("tkjcomp_tntsha_ss", tokkiInfoMap.get("tkjcptts_shksnm"));
			// 提携住宅会社担当者電話番号
			parentMap.put("tkjcomp_tntsha_telno", tokkiInfoMap.get("tkjcptts_tln"));
			// 分譲地名
			parentMap.put("bunjochi_nm", tokkiInfoMap.get("bunjochi_nm"));
			// 区画番号
			parentMap.put("kukaku_no", tokkiInfoMap.get("bunjochi_kkk_no_memo"));
			// 入居予定日（地プロ）
			parentMap.put("nyukyo_rsv_jiki", tokkiInfoMap.get("nyukyo_rsv_jk"));
		}
		// ANK-3951-00-00 ADD START
		// 画面の選択値に応じて断面での登録方法を変更
		String mskmNaiyoKapPayWay = "";
		String hyojinKojikapPayway = bean.sendMessageString(KKW00101SFConst.HYOJN_KJHI_KAP_PAYWAY_SCREEN, X31CWebConst.DATABEAN_GET_VALUE);
		if (hyojinKojikapPayway != null)
		{
			// 確認画面に渡った選択値が分割の場合
			if (hyojinKojikapPayway.contains(JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_BUNKATSU))
			{
				// 申込断面スキーマへ"分割"を設定
				mskmNaiyoKapPayWay = JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_BUNKATSU;
			}
			// 確認画面に渡った選択値が一括の場合
			else if (hyojinKojikapPayway.contains(JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_IKKATSU))
			{
				// 申込断面スキーマへ"一括"を設定
				mskmNaiyoKapPayWay = JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_IKKATSU;
			}
		}
		// ANK-3951-00-00 ADD END
		// ANK-3296-00-00 ADD START
		// 標準工事費割賦支払方法
		// ANK-3951-00-00 MOD START
//		parentMap.put("stdard_kojihi_payway_screen", bean.sendMessageString(KKW00101SFConst.HYOJN_KJHI_KAP_PAYWAY_SCREEN, X31CWebConst.DATABEAN_GET_VALUE));
		parentMap.put("stdard_kojihi_payway_screen", mskmNaiyoKapPayWay);
		// ANK-3951-00-00 MOD END
		// ANK-3296-00-00 ADD END
		
// ANK-3910-00-00 ADD START
		parentMap.put("tegak_svc", bean.sendMessageString(KKW00101SFConst.TEGAK_SVC_SELECT, X31CWebConst.DATABEAN_GET_VALUE));
// ANK-3910-00-00 ADD END
		
	}

	/**
	 * 申込断面XML設定（割引）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenWrib(
			X31SDataBeanAccess bean,
			HashMap parentMap) throws Exception
	{
		// 紹介コード
		parentMap.put("intr_cd", bean.sendMessageString(KKW00101SFConst.INTR_CD, X31CWebConst.DATABEAN_GET_VALUE));
		
		//ANK-4416-00-00 ADD START
		// クーポンコード
		parentMap.put("coupon_cd", bean.sendMessageString(KKW00101SFConst.COUPON_CD, X31CWebConst.DATABEAN_GET_VALUE));
		//ANK-4416-00-00 ADD END

		int count = bean.getDataBeanArray(KKW00101SFConst.WRIB_SVC_CD_LIST_SCREEN).getCount();

		ArrayList wribSvcCdLlist = new ArrayList();
		parentMap.put("wrib_svc_cd_list_screen_list", wribSvcCdLlist);

		for (int i = 0 ; i < count ; i++)
		{
			HashMap wribMap = new HashMap();
			X31SDataBeanAccess list1 = bean.getDataBeanArray(KKW00101SFConst.WRIB_SVC_CD_LIST_SCREEN).getDataBean(i);

			// コード
			wribMap.put("wrib_svc_cd", list1.sendMessageString(KKW00101SFConst.WRIB_SVC_CD_44, X31CWebConst.DATABEAN_GET_VALUE));
			// 名称
			wribMap.put("wrib_svc_nm", list1.sendMessageString(KKW00101SFConst.WRIB_SVC_NM_44, X31CWebConst.DATABEAN_GET_VALUE));
			// 受付開始日
			wribMap.put("uk_sta_dtm", list1.sendMessageString(KKW00101SFConst.UK_STA_DTM_44, X31CWebConst.DATABEAN_GET_VALUE));
			// 受付終了日
			wribMap.put("uk_end_dtm", list1.sendMessageString(KKW00101SFConst.UK_END_DTM_44, X31CWebConst.DATABEAN_GET_VALUE));
			// 適用方法
			wribMap.put("aply_way", list1.sendMessageString(KKW00101SFConst.APLY_WAY_44, X31CWebConst.DATABEAN_GET_VALUE));
			wribSvcCdLlist.add(wribMap);
		}

		count = bean.getDataBeanArray(KKW00101SFConst.HANYO_CD_LIST_SCREEN).getCount();

		ArrayList hanyoCdLlist = new ArrayList();
		parentMap.put("hanyo_cd_list_screen_list", hanyoCdLlist);

		for (int i = 0 ; i < count ; i++)
		{
			HashMap hanyoMap = new HashMap();
			X31SDataBeanAccess list1 = bean.getDataBeanArray(KKW00101SFConst.HANYO_CD_LIST_SCREEN).getDataBean(i);

			// コード
			hanyoMap.put("hanyo_cd", list1.sendMessageString(KKW00101SFConst.HANYO_CD_45, X31CWebConst.DATABEAN_GET_VALUE));
			// 名称
			hanyoMap.put("hanyo_nm", list1.sendMessageString(KKW00101SFConst.HANYO_NM_45, X31CWebConst.DATABEAN_GET_VALUE));
			// 受付開始日
			hanyoMap.put("hanyo_sta_dtm", list1.sendMessageString(KKW00101SFConst.HANYO_STA_DTM_45, X31CWebConst.DATABEAN_GET_VALUE));
			// 受付終了日
			hanyoMap.put("hanyo_end_dtm", list1.sendMessageString(KKW00101SFConst.HANYO_END_DTM_45, X31CWebConst.DATABEAN_GET_VALUE));
			// 適用方法
			hanyoMap.put("aply_way", list1.sendMessageString(KKW00101SFConst.APLY_WAY_45, X31CWebConst.DATABEAN_GET_VALUE));
			hanyoCdLlist.add(hanyoMap);
		}
	}

	// ANK-4092-00-00 ADD START
	/**
	 * 申込断面XML設定（コンテンツ）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenCont(
			X31SDataBeanAccess bean,
			HashMap parentMap) throws Exception
	{
		// コンテンツリスト
		X31SDataBeanAccessArray contListBean = bean.getDataBeanArray(KKW00101SFConst.CNT_LIST);
		ArrayList contListDmen = new ArrayList();
		parentMap.put("cnt_list", contListDmen);
		
		for(int i=0; i<contListBean.getCount(); i++)
		{
			HashMap contMap = new HashMap();
			X31SDataBeanAccess cntSelectBean = contListBean.getDataBean(i);
			
			// コンテンツ名
			contMap.put("cnt_nm", cntSelectBean.sendMessageString(KKW00101SFConst.CONT_SVC_NM, X31CWebConst.DATABEAN_GET_VALUE) );
			
			// コンテンツ申込
			boolean cntMskmFlg = cntSelectBean.sendMessageBoolean(KKW00101SFConst.CNT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			String cntMskm;
			if( cntMskmFlg )
			{
				cntMskm = "申し込む";
			}
			else
			{
				cntMskm = "申し込まない";
			}
			contMap.put("cnt_mskm", cntMskm);
			
			contListDmen.add(contMap);
		}

	}
	// ANK-4092-00-00 ADD END
	
	/**
	 * 申込断面XML設定（その他）
	 * <br>
	 * @param bean データBeanアクセスクラス
	 * @param parentMap 設定マップ
	 * @param svcKeiUpdFlgs     サービス契約視点での登録更新フラグ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	private void setMskmDmenOther(
			X31SDataBeanAccess bean,
			HashMap parentMap,
			HashMap<String, Boolean> svcKeiUpdFlgs) throws Exception
	{
		// 住居タイプ
		parentMap.put("jyukyo_type", bean.sendMessageString(KKW00101SFConst.JYUKYO_TYPE, X31CWebConst.DATABEAN_GET_VALUE));
		
		// ANK-3362-00-00 ADD START
		// 申込形態が2(書面)の場合、住居タイプを申込書の種類とする
		if (IS_JDG_YO_MSKM_FORM_SYO.equals(mskmForm))
		{
			parentMap.put("jyukyo_type", bean.sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE));
		}
		// ANK-3362-00-00 ADD END
		
		// 機器表示フラグ
		parentMap.put("kiki_disp_flg", bean.sendMessageString(KKW00101SFConst.KIKI_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// マンション回線提供方式フラグ
		parentMap.put("mansion_kaisen_hoshiki_flg", bean.sendMessageString(KKW00101SFConst.MANSION_KAISEN_HOSHIKI, X31CWebConst.DATABEAN_GET_VALUE));
		// 申込フラグ
		parentMap.put("mskm_flg", bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 請求書用部屋番号表示制御フラグ
		parentMap.put("seikyus_yo_rm_no_dsp_ctl_flg",
				bean.sendMessageBoolean(KKW00101SFConst.SEIKYUS_YO_RM_NO_DSP_CTL_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// モバイル機器表示フラグ
		parentMap.put("mobile_kiki_disp_flg", bean.sendMessageBoolean(KKW00101SFConst.MOBILE_KIKI_DISP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// 長割表示フラグ
		parentMap.put("chokzuwri_disp_flg", bean.sendMessageBoolean(KKW00101SFConst.CHOKZUWRI_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		// スマートバリュー表示フラグ
		parentMap.put("smtvl_disp_flg", bean.sendMessageBoolean(KKW00101SFConst.SMTVL_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE));
	}
	
// ANK-4494-00-00 DEL START
//	/**
//	 * 申込情報マップから同番移転リストのＮＴＴ受付番号を取得する。
//	 * @param mskmMap
//	 * @param telNo
//	 * @return String
//	 */
//	@SuppressWarnings("unchecked")
//	private String getDobanitenNttUkNo(HashMap<String, Object> mskmMap, int telNo)
//	{
//		if (!mskmMap.containsKey("KKSV007905CC"))
//		{
//			return null;
//		}
//		HashMap<String, Object> parentMap = (HashMap<String, Object>)mskmMap.get("KKSV007905CC");
//
//		if(!parentMap.containsKey("dobaniten_list"))
//		{
//			return null;
//		}
//		
//		ArrayList<HashMap<String, Object>> dobanitenList = (ArrayList<HashMap<String, Object>>)parentMap.get("dobaniten_list");
//		
//		if(dobanitenList.get(telNo).containsKey("tu0021_dobaniten_ntt_uk_no"))
//		{
//			return (String)dobanitenList.get(telNo).get("tu0021_dobaniten_ntt_uk_no");
//		}
//		
//		return null;
//		
//	}
//	
//	/**
//	 * 対応履歴上りマッピング
//	 * @param bean
//	 * @param opeDateTime
//	 * @param opeDate
//	 * @param funcCode
//	 * @param sksiSbt
//	 * @param svcKeiUpdFlgs
//	 * @param nttUkNo
//	 * @return returnMap
//	 * @throws Exception
//	 */
//	private HashMap<String, Object> setJKKAddTaiorrki(X31SDataBeanAccess[] bean, String opeDateTime,
//			String opeDate, String funcCode,  String sksiSbt, HashMap<String, Boolean> svcKeiUpdFlgs, String nttUkNo) throws Exception
//	{
//		
//		HashMap<String, Object> parentMap = new HashMap<String, Object>();
//
//		
//		// 共通フォームBeanから権限リストを取得
//		X31SDataBeanAccessArray kggrpCdList = bean[1].getDataBeanArray(CommonInfoCFConst.KGGRP_CD_LIST);
//		// 共通フォームBeanからユーザーIDを取得
//		String userId = bean[1].sendMessageString(CommonInfoCFConst.USER_ID, X31CWebConst.DATABEAN_GET_VALUE);
//		// 共通フォームBeanからユーザー名を取得
//		String userNm = bean[1].sendMessageString(CommonInfoCFConst.USER_NM, X31CWebConst.DATABEAN_GET_VALUE);
//
//		// 権限リストの2レコード目を取得
//		X31SDataBeanAccess beanKggrpCdList2 = kggrpCdList.getDataBean(1);
//
//		// 権限リストの2レコード目から組織CDを取得
//		String wkkbtOrgCd = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_CD_01, X31CWebConst.DATABEAN_GET_VALUE);
//		wkkbtOrgCd = shiteiSizeUmkm(wkkbtOrgCd, "0", 10);
//		// 権限リストの2レコード目から組織名を取得
//		String wkkbtOrgNm = beanKggrpCdList2.sendMessageString(CommonInfoCFConst.ORG_NM_01, X31CWebConst.DATABEAN_GET_VALUE);
//		
//		HashMap<String, Object> queBoxB020Map = new HashMap<String, Object>();
//		
//		// 共通情報のマッピング
//		parentMap.put("func_code", funcCode);
//		/********************************************************/
//		/** キューBOXMYBOX現在格納数                            */
//		/********************************************************/
//		//ユーザID
//		queBoxB020Map.put("key_user_id", userId);
//		parentMap.put("getQueBoxB020Map", queBoxB020Map);
//		
//		/********************************************************/
//		/** 対応登録                                            */
//		/********************************************************/
//		HashMap<String, Object> addTaioKirokD010Map = new HashMap<String, Object>();
//		//対応ユーザーＩＤ
//		addTaioKirokD010Map.put("taio_user_id", userId);
//		//光電話
//		if(DOBANITEN_CANCEL.equals(sksiSbt) && svcKeiUpdFlgs.get(IS_TEL1_CANCEL))
//		{
//			//サービス契約番号
//			addTaioKirokD010Map.put("svc_kei_no", bean[0].sendMessageString(KKW00101SFConst.TEL_SVC_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));
//		}
//		//問合せ客番号
//		addTaioKirokD010Map.put("proscst_no", "");
//		//ＭＹＢＯＸ番号
//		addTaioKirokD010Map.put("mybox_no", "");
//		//ＭＹＢＯＸ格納年月日時分秒
//		addTaioKirokD010Map.put("mybox_kakno_dtm", opeDateTime);
//		//対応開始年月日時分秒
//		addTaioKirokD010Map.put("taio_sta_dtm", opeDateTime);
//		//問合せ受付種別コード
//		addTaioKirokD010Map.put("toiawase_uk_sbt_cd", TORK_TOIAWASE_UK_SBT_CD_OTHER);
//		//簡易メモ
//		addTaioKirokD010Map.put("easy_memo", "");
//		//タイトル
//		addTaioKirokD010Map.put("title", JKKWebCommon.getTorkTitle(bean[0], svcKeiUpdFlgs, sksiSbt, opeDate, nttUkNo));
//		// 受付年月日時分秒
//		addTaioKirokD010Map.put("uk_dtm", opeDateTime);
//		// 一時保存有無
//		addTaioKirokD010Map.put("tmp_save_um", TORK_TMP_SAVE_UM);
//		// コールバック希望年月日
//		addTaioKirokD010Map.put("callbk_kibo_ymd", "");
//		// コールバック希望時間
//		addTaioKirokD010Map.put("callbk_kibo_time", "");
//		// コールバック時間指定タイプコード
//		addTaioKirokD010Map.put("callbk_shitei_type_cd", "");
//		// ログインユーザーID
//		addTaioKirokD010Map.put("login_user_id", userId);
//		// ログインユーザー名
//		addTaioKirokD010Map.put("login_user_nm", userNm);
//		// 業務個別設定組織コード
//		addTaioKirokD010Map.put("wkkbt_org_cd", wkkbtOrgCd);
//		// 業務個別設定組織名
//		addTaioKirokD010Map.put("wkkbt_org_nm", wkkbtOrgNm);
//		
//		parentMap.put("addTaioKirokD010Map", addTaioKirokD010Map);
//		
//		/********************************************************/
//		/** 対応記録明細登録用                                  */
//		/********************************************************/
//		HashMap<String, Object> addTaioKirokDtlD010Map = new HashMap<String, Object>();
//		//対応記録番号
//		addTaioKirokDtlD010Map.put("taio_kirok_no", "");
//		// アクション開始年月日時分秒
//		addTaioKirokDtlD010Map.put("action_sta_dtm", opeDateTime);
//		// アクション完了年月日時分秒
//		addTaioKirokDtlD010Map.put("action_fin_dtm", opeDateTime);
//		// 対応ユーザーID
//		addTaioKirokDtlD010Map.put("taio_user_id", userId);
//		// クローズ不可コード
//		addTaioKirokDtlD010Map.put("close_fail_cd", TORK_CLOSE_FAIL_CD_FAIL);
//		// ログインユーザーID
//		addTaioKirokDtlD010Map.put("login_user_id", userId);
//		// ログインユーザー名
//		addTaioKirokDtlD010Map.put("login_user_nm", userNm);
//		// 業務個別設定組織コード
//		addTaioKirokDtlD010Map.put("wkkbt_org_cd", wkkbtOrgCd);
//		// 業務個別設定組織名
//		addTaioKirokDtlD010Map.put("wkkbt_org_nm", wkkbtOrgNm);
//		
//		parentMap.put("addTaioKirokDtlD010Map", addTaioKirokDtlD010Map);
//		
//		/********************************************************/
//		/** 対応記録明細登録(コール）用                         */
//		/********************************************************/
//		HashMap<String, Object> addTaioKirokDtlD020Map = new HashMap<String, Object>();
//		//対応記録
//		addTaioKirokDtlD020Map.put("taio_kirok_no", "");
//		//アクション開始年月日時分秒
//		addTaioKirokDtlD020Map.put("action_sta_dtm", opeDateTime);
//		//アクション完了年月日時分秒
//		addTaioKirokDtlD020Map.put("action_fin_dtm", opeDateTime);
//		//対応ユーザーＩＤ
//		addTaioKirokDtlD020Map.put("taio_user_id", userId);
//		//問合せ元名
//		addTaioKirokDtlD020Map.put("toiawase_moto_nm", "");
//		//問合せ内容
//		addTaioKirokDtlD020Map.put("toiawase_naiyo", getTawsNyo(bean[0], sksiSbt, opeDate));
//		//回答内容
//		addTaioKirokDtlD020Map.put("ans_naiyo", "");
//		//コンタクト先コード
//		addTaioKirokDtlD020Map.put("contact_saki_cd", "");
//		//編集状態フラグ
//		addTaioKirokDtlD020Map.put("henshu_stat_flg", "0");
//		// ログインユーザーID
//		addTaioKirokDtlD020Map.put("login_user_id", userId);
//		// ログインユーザー名
//		addTaioKirokDtlD020Map.put("login_user_nm", userNm);
//		// 業務個別設定組織コード
//		addTaioKirokDtlD020Map.put("wkkbt_org_cd", wkkbtOrgCd);
//		// 業務個別設定組織名
//		addTaioKirokDtlD020Map.put("wkkbt_org_nm", wkkbtOrgNm);
//		
//		parentMap.put("addTaioKirokDtlD020Map", addTaioKirokDtlD020Map);
//		
//		/********************************************************/
//		/** ホットボイス                                        */
//		/********************************************************/
//		HashMap<String, Object> jkkAddHotVoicUtil = new HashMap<String, Object>();
//		ArrayList<HashMap<String, Object>> uwCtgrnList = new ArrayList<HashMap<String, Object>>();
//		ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();
//		HashMap<String, Object> rspCtgrMap = new HashMap<String, Object>();
//		
//		// 対応記録内訳番号
//		jkkAddHotVoicUtil.put("taio_kirok_ucwk_no", TORK_TAIO_KIROK_UCWK_NO);
//		// 問合せ応対区分
//		jkkAddHotVoicUtil.put("toiawase_rsp_div", TORK_TOIAWASE_RSP_DIV_TOIAWASE);
//		// お客様の声
//		jkkAddHotVoicUtil.put("cust_koe", "");
//		// ＣＳＲの声
//		jkkAddHotVoicUtil.put("csr_koe", "");
//		// 表示順序
//		jkkAddHotVoicUtil.put("dsp_jun", TORK_DSP_JUN);
//		// 対応記録内訳抽出ワーク作成区分
//		jkkAddHotVoicUtil.put("tiokr_uw_cst_wk_add_div", TORK_TIOKR_UW_CST_WK_DIV_TAIO);
//		// 編集状態フラグ
//		jkkAddHotVoicUtil.put("henshu_stat_flg", TORK_HENSHU_STAT_FLG_FIN);
//		
//		//対応履歴登録ケース別のカテゴリをリストを取得
//		String[][] ctgrList = JKKWebCommon.getTorkCtglList(sksiSbt);
//
//		for (int j = 0; j < ctgrList.length; j++)
//		{
//			
//			HashMap<String, Object> uwCtgrnMap = new HashMap<String, Object>();
//			
//			// 対応記録内訳番号
//			uwCtgrnMap.put("taio_kirok_ucwk_no", TORK_TAIO_KIROK_UCWK_NO);
//			// 対応記録内訳カテゴリー → 対応記録ホットボイスマップ.応対区分リスト.カテゴリーＮレベル
//			uwCtgrnMap.put("taiokrk_uw_ctgr_lv", ctgrList[j][0]);
//			
//			// 上位連結カテゴリー名
//			if (TORK_TAIOKRK_UW_CTGR_LV1.equals(ctgrList[j][0]))
//			{
//				// レベル１の場合、業務個別設定組織コードを設定
//				uwCtgrnMap.put("joi_rnkt_ctgr_nm", wkkbtOrgCd);
//			}
//			else
//			{
//				// レベル１以外の場合、前空白埋めで160バイトの固定長で上位のカテゴリー名を設定
//				uwCtgrnMap.put("joi_rnkt_ctgr_nm", shiteiSizeUmkm(ctgrList[j - 1][1], " ", 160));
//			}
//			
//			// 下位のカテゴリーが存在するか
//			if (SINSEI.equals(sksiSbt) && TORK_TAIOKRK_UW_CTGR_LV2.equals(ctgrList[j][0]))
//			{
//				// レベル４の場合、下位カテゴリーは存在しない
//				uwCtgrnMap.put("kai_ctgr_um", COPE_HISTORY_KAI_CTGR_UM_OFF);
//			}
//			else if((DOBANITEN_ADD.equals(sksiSbt) ||
//					DOBANITEN_CANCEL.equals(sksiSbt)) && TORK_TAIOKRK_UW_CTGR_LV4.equals(ctgrList[j][0]))
//			{
//				// レベル４の場合、下位カテゴリーは存在しない
//				uwCtgrnMap.put("kai_ctgr_um", COPE_HISTORY_KAI_CTGR_UM_OFF);
//			}
//			else
//			{
//				// 下位カテゴリーが存在する。
//				uwCtgrnMap.put("kai_ctgr_um", COPE_HISTORY_KAI_CTGR_UM_ON);
//			}
//			
//			// 対応記録内訳カテゴリー名
//			uwCtgrnMap.put("taiokrk_uw_ctgr_nm", ctgrList[j][1]);
//			// クローズ不可コード
//			uwCtgrnMap.put("close_fail_cd", TORK_CLOSE_FAIL_CD_FAIL);
//			// 編集状態フラグ
//			uwCtgrnMap.put("henshu_stat_flg", TORK_HENSHU_STAT_FLG_FIN);
//			// ログインユーザーID
//			uwCtgrnMap.put("login_user_id", userId);
//			// ログインユーザー名
//			uwCtgrnMap.put("login_user_nm", userNm);
//			// 業務個別設定組織コード
//			uwCtgrnMap.put("wkkbt_org_cd", wkkbtOrgCd);
//			// 業務個別設定組織名
//			uwCtgrnMap.put("wkkbt_org_nm", wkkbtOrgNm);
//			// 処理済フラグ
//			uwCtgrnMap.put("syrzm_flg", COPE_HISTORY_SYRZM_FLG_MI_TRN);
//			
//			uwCtgrnList.add(uwCtgrnMap);
//		}
//		
//		jkkAddHotVoicUtil.put("UW_CTGRN_List", uwCtgrnList);
//		
//		list.add(jkkAddHotVoicUtil);
//		
//		rspCtgrMap.put("RSP_CTGR_List", list);
//		
//		rspCtgrMap.put("func_code", funcCode);
//		
//		parentMap.put("JKKAddHotVoicUtil", rspCtgrMap);
//		
//		/**************************************************************************/
//		/**対応記録エスカレーション開始(キューBOX)更新用マップ（申請時作成）      */
//		/**************************************************************************/
//		if(SINSEI.equals(sksiSbt))
//		{
//			HashMap<String, Object> chgTaioKirokC010Map = new HashMap<String, Object>();
//			
//			//対応記録番号
//			chgTaioKirokC010Map.put("taio_kirok_no", "");
//			// 対応ユーザーID
//			chgTaioKirokC010Map.put("taio_user_id", userId);
//			// キューBOX番号
//			chgTaioKirokC010Map.put("que_box_no", JCMAPLConstMgr.getString(PROP_QUE_BOX_NO_INFO));
//			// キューBOX格納年月日時分秒
//			chgTaioKirokC010Map.put("que_box_kakno_dtm", opeDateTime);
//			// アクション開始年月日時分秒
//			chgTaioKirokC010Map.put("action_sta_dtm", opeDateTime);
//			// アクション完了年月日時分秒
//			chgTaioKirokC010Map.put("action_fin_dtm", opeDateTime);
//			//更新前更新年月日時分秒
//			chgTaioKirokC010Map.put("upd_dtm_bf", "");
//			// ログインユーザーID
//			chgTaioKirokC010Map.put("login_user_id", userId);
//			// ログインユーザー名
//			chgTaioKirokC010Map.put("login_user_nm", userNm);
//			// 業務個別設定組織コード
//			chgTaioKirokC010Map.put("wkkbt_org_cd", wkkbtOrgCd);
//			// 業務個別設定組織名
//			chgTaioKirokC010Map.put("wkkbt_org_nm", wkkbtOrgNm);
//			// エスカレーション先業務個別設定組織コード
//			chgTaioKirokC010Map.put("escla_saki_wkso_cd", JCMAPLConstMgr.getString(PP_ESCLA_SAKI_WKSO_CD_INFO));
//			
//			parentMap.put("chgTaioKirokC010Map", chgTaioKirokC010Map);
//		}
//		/**************************************************************************/
//		/**対応記録クローズ更新用マップ（同番移転登録・同番移転キャンセル時）     */
//		/**************************************************************************/
//		if(DOBANITEN_ADD.equals(sksiSbt) || DOBANITEN_CANCEL.equals(sksiSbt))
//		{
//			HashMap<String, Object> chgTaioKirokC080Map = new HashMap<String, Object>();
//			
//			//対応記録番号
//			chgTaioKirokC080Map.put("taio_kirok_no", "");
//			//対応完了年月日時分秒
//			chgTaioKirokC080Map.put("taio_fin_dtm", opeDateTime);
//			//対応クローズ年月日時分秒
//			chgTaioKirokC080Map.put("last_end_dtm", opeDateTime);
//			//アクション開始年月日時分秒
//			chgTaioKirokC080Map.put("action_sta_dtm", opeDateTime);
//			//アクション完了年月日時分秒
//			chgTaioKirokC080Map.put("action_fin_dtm", opeDateTime);
//			//対応ユーザーID
//			chgTaioKirokC080Map.put("taio_user_id", userId);
//			//更新前更新年月日時分秒
//			chgTaioKirokC080Map.put("upd_dtm_bf", "");
//			//業務個別設定組織コード
//			chgTaioKirokC080Map.put("wkkbt_org_cd", wkkbtOrgCd);
//			//業務個別設定組織名
//			chgTaioKirokC080Map.put("wkkbt_org_nm", wkkbtOrgNm);
//			//ログインユーザー名
//			chgTaioKirokC080Map.put("login_user_nm", userNm);
//			//ＰＡＲ＿対応ユーザーID
//			chgTaioKirokC080Map.put("par_taio_user_id", userId);
//			//対応開始年月日時分秒
//			chgTaioKirokC080Map.put("taio_sta_dtm", opeDateTime);
//			
//			parentMap.put("chgTaioKirokC080Map", chgTaioKirokC080Map);
//		}
//		// 申込書番号
//		// 更新時にタイトルに使用するため修正
//		parentMap.put("mskmsho_no", bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_NO, X31CWebConst.DATABEAN_GET_VALUE));
//		
//		return parentMap;
//	}
//	
//	/**
//	 * 対応履歴項目（問い合わせ内容）を返却する。
//	 * @param bean
//	 * @param sbtCd
//	 * @param opeDate
//	 * @return String
//	 */
//	private String getTawsNyo(X31SDataBeanAccess bean, String sbtCd, String opeDate)
//	{
//		//申込年月日（年）
//		String year = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
//		//申込年月日（月）
//		String month = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
//		//申込年月日（日）
//		String day = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
//		//契約種別
//		String keishaType = bean.sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE);
//		
//		String custNm = "";
//		
//		if(JKKStrConst.KEISHA_TYPE_CD_KOJIN.equals(keishaType))
//		{
//			custNm = bean.sendMessageString(KKW00101SFConst.CUST_NM, X31CWebConst.DATABEAN_GET_VALUE) + "様の";
//		}
//		else
//		{
//			String hojinZengoCd = JKKWebCommon.getPullDownCode(bean, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD, 
//					KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_15, KKW00101SFConst.HOJIN_ZENGO_SHITEI_CD_LIST_15);
//			
//			String hojinSbtNm = JKKWebCommon.getPullDownName(bean, KKW00101SFConst.HOJIN_SBT_CD, KKW00101SFConst.HOJIN_SBT_CD_16,
//					KKW00101SFConst.HOJIN_SBT_CD_LIST_16, KKW00101SFConst.HOJIN_SBT_NM_LIST_16);
//			
//			String hojinNm = bean.sendMessageString(KKW00101SFConst.HOJIN_NM, X31CWebConst.DATABEAN_GET_VALUE);
//				
//			
//			if(JKKStrConst.HOJIN_ZENGO_SHITEI_CD_BF.equals(hojinZengoCd))
//			{
//				custNm = hojinSbtNm + "　" + hojinNm + "様の";
//			}
//			else if(JKKStrConst.HOJIN_ZENGO_SHITEI_CD_AF.equals(hojinZengoCd))
//			{
//				custNm = hojinNm + "　" + hojinSbtNm + "様の";
//			}
//			else
//			{
//				custNm = hojinNm + "様の";
//			}
//		}
//		
//		if(SINSEI.equals(sbtCd))
//		{
//			return "";
//		}
//		else if(DOBANITEN_ADD.equals(sbtCd))
//		{
//			return year + month + day + JKKStrConst.LINE_SEPARATOR + custNm + JKKStrConst.LINE_SEPARATOR + JKKStrConst.MSG_DOBANITEN_ADD_EASY_MEMO;
//		}
//		else if(DOBANITEN_CANCEL.equals(sbtCd))
//		{
//			return opeDate + JKKStrConst.LINE_SEPARATOR + custNm + JKKStrConst.LINE_SEPARATOR + JKKStrConst.MSG_DOBANITEN_CANCEL_EASY_MEMO;
//		}
//		
//		return "";
//	}
// ANK-4494-00-00 DEL END

	/**
	 * サービス契約番号
	 * @param tokkiSvcKeiNo 特記＿サービス契約番号
	 * @param msg
	 * @return 特記事項
	 */
	private String getTokkiJiko(String tokkiSvcKeiNo, String msg)
	{
		if(!JKKCommonUtil.isNull(msg) && !JKKCommonUtil.isNull(tokkiSvcKeiNo))
		{
			return msg + "：IO→HT変更引継ぎ(" + tokkiSvcKeiNo + ")";
		}
		
		else if(JKKCommonUtil.isNull(msg) && !JKKCommonUtil.isNull(tokkiSvcKeiNo))
		{
			return "IO→HT変更引継ぎ(" + tokkiSvcKeiNo + ")";
		}

		return msg;
	}
	
	/**
	 * ネットに紐付く進捗を登録する。
	 * @param bean データビーン
	 * @param svcKeiUpdFlgs サービス契約視点での登録更新フラグ
	 * @param preMap 照会マップ
	 * @param netList eo光ネット用進捗リスト
	 * @param netOptionList eo光ネットオプション用進捗リスト
	 */
	private void setNetPrg(X31SDataBeanAccess bean, HashMap<String, Boolean> svcKeiUpdFlgs, HashMap<String, Object> preMap,
			ArrayList<HashMap<String, Object>> netList, ArrayList<HashMap<String, Object>> netOptionList)
	{
		
		if(svcKeiUpdFlgs.get(IS_NET_ADD))
		{
		    //20170403 ANK-3149-00-00 ADD START
			//セキュリティーパック
			if(bean.sendMessageBoolean(KKW00101SFConst.OP_SECURITY_PACK, X31CWebConst.DATABEAN_GET_VALUE))
			{
				netList.add(getPrgMap(JKKStrConst.CD00647_SECURITY_SETTE_FIN, "", null));
			}
			
		    //20170403 ANK-3149-00-00 ADD END
			//ファミリーパック
			if(bean.sendMessageBoolean(KKW00101SFConst.OP_FAMILY_PACK, X31CWebConst.DATABEAN_GET_VALUE))
			{
				netList.add(getPrgMap(JKKStrConst.CD00647_FAMIPA_SETTE_FIN, "", null));
			}
			
			//リモートサポートが申し込まれた場合
			if(bean.sendMessageBoolean(KKW00101SFConst.OP_REMOTE_PLUS, X31CWebConst.DATABEAN_GET_VALUE))
			{
				netList.add(getPrgMap(JKKStrConst.CD00647_RMTSPRT_ADD_FIN, "", null));
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, "", OP_SVC_REMOSUP_PLUS));
			}
			//プレミアムパック
			if(bean.sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE))
			{
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN,  "", JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM));
			}
		    //20170403 ANK-3149-00-00 ADD START
			//インターネットサギウォール for eo
			if(bean.sendMessageBoolean(KKW00101SFConst.OP_INETSGW_FOR_EO, X31CWebConst.DATABEAN_GET_VALUE))
			{
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN,  "", JKKStrConst.OP_SVC_CD_INETSGWL));
			}
			//ノートンファミリープレミア for eo
			if(bean.sendMessageBoolean(KKW00101SFConst.OP_NTFMLPRM_FOR_EO, X31CWebConst.DATABEAN_GET_VALUE))
			{
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN,  "", JKKStrConst.OP_SVC_CD_NTFMLPRM));
			}
		    //20170403 ANK-3149-00-00 ADD END
		}
		//ネットのサービスが更新された場合
		else if(svcKeiUpdFlgs.get(IS_NET_UPDATE))
		{
		    //20170403 ANK-3149-00-00 ADD　START
			//セキュリティーパック
			if(bean.sendMessageBoolean(KKW00101SFConst.OP_SECURITY_PACK, X31CWebConst.DATABEAN_GET_VALUE))
			{
			    //20170403 IT1-2017-0000078 MOD START
//				netList.add(getPrgMap(JKKStrConst.CD00647_FAMIPA_SETTE_FIN, "", null));
				netList.add(getPrgMap(JKKStrConst.CD00647_SECURITY_SETTE_FIN, "", null));
			    //20170403 IT1-2017-0000078 MOD	END
			}
		    //20170403 ANK-3149-00-00 ADD END
			//ファミリーパック
			if(bean.sendMessageBoolean(KKW00101SFConst.OP_FAMILY_PACK, X31CWebConst.DATABEAN_GET_VALUE))
			{
				netList.add(getPrgMap(JKKStrConst.CD00647_FAMIPA_SETTE_FIN, "", null));
			}
			
			if(remoteSupportHan(bean, preMap))
			{
				netList.add(getPrgMap(JKKStrConst.CD00647_RMTSPRT_ADD_FIN, "", null));
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, "", OP_SVC_REMOSUP_PLUS));
			}
			//プレミアムパック
			if(premiumPackHan(bean, preMap))
			{
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN,  "", JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM));
			}
		    //20170403 ANK-3149-00-00 ADD START
			//インターネットサギウォール for eo
		    //20170403 IT1-2017-0000078 MOD START
//			if(premiumPackHan(bean, preMap))
			if(interSW(bean, preMap))
		    //20170403 IT1-2017-0000078 MOD END
			{
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN,  "", JKKStrConst.OP_SVC_CD_INETSGWL));
			}
			//ノートンファミリープレミア for eo
		    //20170403 IT1-2017-0000078 MOD START
//			if(premiumPackHan(bean, preMap))
			if(nortonFam(bean, preMap))
		    //20170403 IT1-2017-0000078 MOD END
			{
				netOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN,  "", JKKStrConst.OP_SVC_CD_NTFMLPRM));
			}
		    //20170403 ANK-3149-00-00 ADD END
		}
	}
	
	/**
	 * 電話に紐付く進捗を登録する。
	 * @param bean データビーン
	 * @param svcKeiUpdFlgs サービス契約視点での登録更新フラグ
	 * @param preMap 照会マップ	
	 * @param outputMap データ格納マップ
	 * @param telList eo光電話用進捗リスト
	 */
	@SuppressWarnings("unchecked")
	private void setTelPrg(X31SDataBeanAccess bean, HashMap<String, Boolean> svcKeiUpdFlgs, HashMap<String, Object> preMap,
			HashMap<String, Object> outputMap, ArrayList<HashMap<String, Object>> telList)
	{

// ANK-4494-00-00 DEL START
//		//電話１同番移転登録フラグ
//		if(bean.sendMessageBoolean(KKW00101SFConst.TEL1_DOBANMOVE_ADD_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			telList.add(getPrgMap(JKKStrConst.CD00647_EOTL_DOBANITEN_ADD_FIN, "１番号目：登録", null));
//		}
//		//電話１同番移転更新フラグ
//		if(bean.sendMessageBoolean(KKW00101SFConst.TEL1_DOBANMOVE_UPD_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			telList.add(getPrgMap(JKKStrConst.CD00647_EOTL_DOBANITEN_ADD_FIN, 
//					getDobanItenInfo(bean, preMap, TEL_ONE), null));
//		}
//		
//		//電話１同番移転キャンセルフラグ
//		if(bean.sendMessageBoolean(KKW00101SFConst.TEL1_DOBANMOVE_CL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			telList.add(getPrgMap(JKKStrConst.CD00647_EOTL_DOBANITEN_ADD_FIN, "１番号目：取消", null));
//		}
//		//電話２同番移転登録フラグ
//		if(bean.sendMessageBoolean(KKW00101SFConst.TEL2_DOBANMOVE_ADD_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			telList.add(getPrgMap(JKKStrConst.CD00647_EOTL_DOBANITEN_ADD_FIN, "２番号目：登録", null));
//		}
//		//電話２同番移転更新フラグ
//		if(bean.sendMessageBoolean(KKW00101SFConst.TEL2_DOBANMOVE_UPD_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			telList.add(getPrgMap(JKKStrConst.CD00647_EOTL_DOBANITEN_ADD_FIN, 
//					getDobanItenInfo(bean, preMap, TEL_TWO), null));
//		}
//		
//		//電話２同番移転キャンセルフラグ
//		if(bean.sendMessageBoolean(KKW00101SFConst.TEL2_DOBANMOVE_CL_FLG, X31CWebConst.DATABEAN_GET_VALUE))
//		{
//			telList.add(getPrgMap(JKKStrConst.CD00647_EOTL_DOBANITEN_ADD_FIN, "２番号目：取消", null));
//		}
// ANK-4494-00-00 DEL END

		//eo光電話パック用進捗リスト
		ArrayList<HashMap<String, Object>> eohtlPackList = new ArrayList<HashMap<String, Object>>();
		//eo光電話オプション用進捗リスト
		ArrayList<HashMap<String, Object>> telOptionList = new ArrayList<HashMap<String, Object>>();
		//eo光電話サブオプション用進捗リスト
		ArrayList<HashMap<String, Object>> telSbopList = new ArrayList<HashMap<String, Object>>();
		
		if(svcKeiUpdFlgs.get(IS_TEL1_ADD))
		{
			// 電話１ｅｏ光電話パック
			ArrayList<String> eohtllPackCdList = getAddEohtlPackCdList(bean, TEL_ONE);
			for (String eohtllPackCd : eohtllPackCdList)
			{
				eohtlPackList.add(getWribPrgMap(JKKStrConst.CD00647_EOHTL_PACK_SETTE_FIN, TEL_FIRST, eohtllPackCd));
			}
			
			// 電話１オプションサービス契約
			ArrayList<String> opSvcCdList = getEohTelAddOpSvcCdList(bean, TEL_ONE);
			for (String opSvcCd : opSvcCdList)
			{
				telOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_FIRST, opSvcCd));
			}
			
			// 電話１サブオプションサービス契約
			ArrayList<String> sbopSvcCdList = getEohTelAddSbopSvcCdList(bean, TEL_ONE);
			for (String sbopSvcCd : sbopSvcCdList)
			{
				telSbopList.add(getSbopPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_FIRST, sbopSvcCd));
			}
		}
		
		if(svcKeiUpdFlgs.get(IS_TEL2_ADD) || svcKeiUpdFlgs.get(IS_TEL2_PLUS))
		{
			// 電話２ｅｏ光電話パック
			ArrayList<String> eohtllPackCdList = getAddEohtlPackCdList(bean, TEL_TWO);
			for (String eohtllPackCd : eohtllPackCdList)
			{
				eohtlPackList.add(getWribPrgMap(JKKStrConst.CD00647_EOHTL_PACK_SETTE_FIN, TEL_SECOND, eohtllPackCd));
			}
			
			// 電話２オプションサービス契約
			ArrayList<String> opSvcCdList = getEohTelAddOpSvcCdList(bean, TEL_TWO);
			for (String opSvcCd : opSvcCdList)
			{
				telOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_SECOND, opSvcCd));
			}
			
			// 電話２サブオプションサービス契約
			ArrayList<String> sbopSvcCdList = getEohTelAddSbopSvcCdList(bean, TEL_TWO);
			for (String sbopSvcCd : sbopSvcCdList)
			{
				telSbopList.add(getSbopPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_SECOND, sbopSvcCd));
			}
		}
		
		HashMap<String, Object> svcKeiMap = (HashMap<String, Object>)preMap.get("KKSV007905CC");
		
		//電話１のサービスが登録された場合、または、電話１のサービスが更新された場合
		if(svcKeiUpdFlgs.get(IS_TEL1_UPDATE))
		{
			// 電話１ｅｏ光電話パック
			ArrayList<String> eohtllPackCdList = getAddEohtlPackCdListForUpd(bean, TEL_ONE, svcKeiMap);
			for (String eohtllPackCd : eohtllPackCdList)
			{
				eohtlPackList.add(getWribPrgMap(JKKStrConst.CD00647_EOHTL_PACK_SETTE_FIN, TEL_FIRST, eohtllPackCd));
			}
			
			// 電話１オプションサービス契約
			ArrayList<String> opSvcCdList = getEohTelAddOpSvcCdListForUpd(bean, TEL_ONE, svcKeiMap);
			for (String opSvcCd : opSvcCdList)
			{
				telOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_FIRST, opSvcCd));
			}
			
			// 電話１サブオプションサービス契約
			ArrayList<String> sbopSvcCdList = getTelAddSbopSvcCdListForUpd(bean, TEL_ONE, svcKeiMap);
			for (String sbopSvcCd : sbopSvcCdList)
			{
				telSbopList.add(getSbopPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_FIRST, sbopSvcCd));
			}
		}
		
		//電話２のサービスが登録された場合、または、電話２のサービスが更新された場合
		if(svcKeiUpdFlgs.get(IS_TEL2_UPDATE))
		{
			// 電話２ｅｏ光電話パック
			ArrayList<String> eohtllPackCdList = getAddEohtlPackCdListForUpd(bean, TEL_TWO, svcKeiMap);
			for (String eohtllPackCd : eohtllPackCdList)
			{
				eohtlPackList.add(getWribPrgMap(JKKStrConst.CD00647_EOHTL_PACK_SETTE_FIN, TEL_SECOND, eohtllPackCd));
			}
			
			// 電話２オプションサービス契約
			ArrayList<String> opSvcCdList = getEohTelAddOpSvcCdListForUpd(bean, TEL_TWO, svcKeiMap);
			for (String opSvcCd : opSvcCdList)
			{
				telOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_SECOND, opSvcCd));
			}
			
			// 電話２サブオプションサービス契約
			ArrayList<String> sbopSvcCdList = getTelAddSbopSvcCdListForUpd(bean, TEL_TWO, svcKeiMap);
			for (String sbopSvcCd : sbopSvcCdList)
			{
				telSbopList.add(getSbopPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, TEL_SECOND, sbopSvcCd));
			}
		}
		
		outputMap.put("eohtl_wrib_prg_list", eohtlPackList);
		outputMap.put("eohtl_op_prg_list", telOptionList);
		outputMap.put("eohtl_sbop_prg_list", telSbopList);
	}
	
	/**
	 * テレビに紐付く進捗を登録する。
	 * @param bean データビーン
	 * @param svcKeiUpdFlgs サービス契約視点での登録更新フラグ
	 * @param tvOptionList eo光テレビオプション用進捗リスト
	 */
	private void setTvPrg(X31SDataBeanAccess bean, HashMap<String, Boolean> svcKeiUpdFlgs, ArrayList<HashMap<String, Object>> tvOptionList)
	{
		
		//ケーブルガイド誌の定期購入お申込み冊数
		String cableGuideMskmCnt = bean.sendMessageString(KKW00101SFConst.CABLE_GUIDE_MSKM_CNT, X31CWebConst.DATABEAN_GET_VALUE);
		//ｅｏ光テレビ申込サービス
		String catvComp = bean.sendMessageString(KKW00101SFConst.CATV_COMP_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		//申込サービス選択
		String mskmSvcChoice = bean.sendMessageString(KKW00101SFConst.MSKM_SVC_CHOICE, X31CWebConst.DATABEAN_GET_VALUE);
		//K-CATまたは再送信かつベーシックHDまたはプレミアムHD  
		if((JKKStrConst.CD00737_KCAT.equals(catvComp) || JKKStrConst.CD00737_RESEND.equals(catvComp)) && MSKM_SVC_CHOICE_CD_HD.equals(mskmSvcChoice))
		{
			//テレビのサービスが追加、更新された場合
			if(svcKeiUpdFlgs.get(IS_TV_ADD) || svcKeiUpdFlgs.get(IS_TV_UPDATE))
			{
				//ケーブルガイド誌
				if(!JKKCommonUtil.isNull(cableGuideMskmCnt) && !"0".equals(cableGuideMskmCnt))
				{
					tvOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, "", JKKStrConst.OP_SVC_CABLE_GUDMG));
				}
			}
		}
	}

	/**
	 * ADSLに紐付く進捗を登録する。
	 * @param bean データビーン
	 * @param svcKeiUpdFlgs サービス契約視点での登録更新フラグ
	 * @param adslOptionList eoADSLオプション用進捗リスト
	 */
	private void setAdslPrg(X31SDataBeanAccess bean, HashMap<String, Boolean> svcKeiUpdFlgs, ArrayList<HashMap<String, Object>> adslOptionList)
	{
		if(svcKeiUpdFlgs.get(IS_ADSL_ADD))
		{
			//プランの取得
			String plnIdx = (bean.getDataBeanArray(KKW00101SFConst.PLAN)
					.getDataBean(0)).sendMessageString(KKW00101SFConst.ADSL_PLAN_CD_39, X31CWebConst.DATABEAN_GET_VALUE);

			//eAcceseかつ、モデムレンタルの場合
			if(EOADSL_EACCESS.equals(bean.sendMessageString(KKW00101SFConst.EOADSL_EACCESS_FLG, X31CWebConst.DATABEAN_GET_VALUE))
					&& (EOADSL_PLAN_1M_RENT_MODEM.equals(plnIdx) || EOADSL_PLAN_50M_RENT_MODEM.equals(plnIdx)))
			{
				adslOptionList.add(getPrgMap(JKKStrConst.CD00647_OP_SETTE_FIN, "" , JKKStrConst.OP_SVC_CD_MDM_EM));
			}
		}
	}
	
	/**
	 * リモートサポートプラス（進捗）の登録判定を行う。
	 * @param bean データビーン
	 * @param preMap 照会マップ
	 * @return リモートサポート登録状況
	 */
	@SuppressWarnings("unchecked")
	private boolean remoteSupportHan(X31SDataBeanAccess bean, HashMap preMap)
	{
		//リモートサポートプラス
		boolean opRemotePlus = bean.sendMessageBoolean(KKW00101SFConst.OP_REMOTE_PLUS, X31CWebConst.DATABEAN_GET_VALUE);
		
		ArrayList<HashMap<String, String>> sbopMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("EKK0351B512CBSMsg1List");
		HashMap<String, String> remoteSupportMap = null;
		
		if (sbopMsg1List != null)
		{
			String opSvcCd = null;
			for (HashMap<String, String> childMap : sbopMsg1List)
			{
				opSvcCd = childMap.get("kk0351_op_svc_cd");

				if(JKKStrConst.OP_SVC_CD_RMTSPRT_PLUS.equals(opSvcCd))
				{	// リモートサポートプラス
					remoteSupportMap = childMap;
				}
			}
		}

		return (opRemotePlus && null == remoteSupportMap);
		
	}
	
	/**
	 * プレミアムパック（進捗）の登録判定を行う。
	 * @param bean データビーン
	 * @param preMap 照会マップ
	 * @return プレミアムパック登録状況
	 */
	@SuppressWarnings("unchecked")
	private boolean premiumPackHan(X31SDataBeanAccess bean, HashMap preMap)
	{
		//プレミアムパック
		boolean opPremiumPack = bean.sendMessageBoolean(KKW00101SFConst.TABLET_PREMIUM_PACK, X31CWebConst.DATABEAN_GET_VALUE);
		
		ArrayList<HashMap<String, String>> sbopMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("EKK0351B512CBSMsg1List");
		HashMap<String, String> premiumPackMap = null;
		
		if (sbopMsg1List != null)
		{
			String opSvcCd = null;
			for (HashMap<String, String> childMap : sbopMsg1List)
			{
				opSvcCd = childMap.get("kk0351_op_svc_cd");

				if(JKKStrConst.OP_SVC_CD_SMARTLINK_PREMIUM.equals(opSvcCd))
				{	// プレミアムパック
					premiumPackMap = childMap;
				}
			}
		}

		return (opPremiumPack && null == premiumPackMap);
		
	}
	
    //20170403 IT1-2017-0000078 ADD START
	/**
	 * インターネットサギウォール（進捗）の登録判定を行う。
	 * @param bean データビーン
	 * @param preMap 照会マップ
	 * @return インターネットサギウォール登録状況
	 */
	@SuppressWarnings("unchecked")
	private boolean interSW(X31SDataBeanAccess bean, HashMap preMap)
	{
		//インターネットサギウォール
		boolean opInterSW = bean.sendMessageBoolean(KKW00101SFConst.OP_INETSGW_FOR_EO, X31CWebConst.DATABEAN_GET_VALUE);
		
		ArrayList<HashMap<String, String>> sbopMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("EKK0351B512CBSMsg1List");
		HashMap<String, String> interNetSW = null;
		
		if (sbopMsg1List != null)
		{
			String opSvcCd = null;
			for (HashMap<String, String> childMap : sbopMsg1List)
			{
				opSvcCd = childMap.get("kk0351_op_svc_cd");

				if(JKKStrConst.OP_SVC_CD_INETSGWL.equals(opSvcCd))
				{	// インターネットサギウォール
					interNetSW = childMap;
				}
			}
		}

		return (opInterSW && null == interNetSW);
		
	}
	
	/**
	 * ノートンファミリープレミア（進捗）の登録判定を行う。
	 * @param bean データビーン
	 * @param preMap 照会マップ
	 * @return ノートンファミリープレミア登録状況
	 */
	@SuppressWarnings("unchecked")
	private boolean nortonFam(X31SDataBeanAccess bean, HashMap preMap)
	{
		//ノートンファミリープレミア
		boolean opNortonFM = bean.sendMessageBoolean(KKW00101SFConst.OP_NTFMLPRM_FOR_EO, X31CWebConst.DATABEAN_GET_VALUE);
		
		ArrayList<HashMap<String, String>> sbopMsg1List = (ArrayList<HashMap<String, String>>)preMap.get("EKK0351B512CBSMsg1List");
		HashMap<String, String> nortonFMpre = null;
		
		if (sbopMsg1List != null)
		{
			String opSvcCd = null;
			for (HashMap<String, String> childMap : sbopMsg1List)
			{
				opSvcCd = childMap.get("kk0351_op_svc_cd");

				if(JKKStrConst.OP_SVC_CD_NTFMLPRM.equals(opSvcCd))
				{	// ノートンファミリープレミア
					nortonFMpre = childMap;
				}
			}
		}

		return (opNortonFM && null == nortonFMpre);
		
	}
	
    //20170403 IT1-2017-0000078 ADD END
	/**
	 * 割引サービス契約進捗情報の上りマップを作成します。
	 * @param prgStat 進捗ステータス
	 * @param prgTkjk 特記事項１
	 * @param wribSvcCd 割引サービスコード
	 * @return prgMap 進捗マップ
	 */
	private HashMap<String, Object> getWribPrgMap(String prgStat, String prgTkjk, String wribSvcCd)
	{
		HashMap<String, Object> prgMap = new HashMap<String, Object>();

		//進捗ステータス
		prgMap.put("kk109101_prg_stat", prgStat);
		//進捗特記事項1
		prgMap.put("kk109101_prg_tkjk_1", prgTkjk);
		//オプションサービスコード
		if(!JKKCommonUtil.isNull(wribSvcCd))
		{
			prgMap.put("kk109101_wrib_svc_cd", wribSvcCd);
		}
		
		return prgMap;
	}
	
	/**
	 * 進捗情報の上りマップを作成します。
	 * @param prgStat 進捗ステータス
	 * @param prgTkjk 特記事項１
	 * @param opSvcCd オプションサービスコード
	 * @return prgMap 進捗マップ
	 */
	private HashMap<String, Object> getPrgMap(String prgStat, String prgTkjk, String opSvcCd)
	{
		HashMap<String, Object> prgMap = new HashMap<String, Object>();

		//進捗ステータス
		prgMap.put("kk109101_prg_stat", prgStat);
		//進捗特記事項1
		prgMap.put("kk109101_prg_tkjk_1", prgTkjk);
		//オプションサービスコード
		if(!JKKCommonUtil.isNull(opSvcCd))
		{
			prgMap.put("kk109101_op_svc_cd", opSvcCd);
		}
		
		return prgMap;
	}
	
	/**
	 * サブオプションサービス契約進捗情報の上りマップを作成します。
	 * @param prgStat 進捗ステータス
	 * @param prgTkjk 特記事項１
	 * @param sbopSvcCd サブオプションサービスコード
	 * @return prgMap 進捗マップ
	 */
	private HashMap<String, Object> getSbopPrgMap(String prgStat, String prgTkjk, String sbopSvcCd)
	{
		HashMap<String, Object> prgMap = new HashMap<String, Object>();

		//進捗ステータス
		prgMap.put("kk109101_prg_stat", prgStat);
		//進捗特記事項1
		prgMap.put("kk109101_prg_tkjk_1", prgTkjk);
		//オプションサービスコード
		if(!JKKCommonUtil.isNull(sbopSvcCd))
		{
			prgMap.put("kk109101_sbop_svc_cd", sbopSvcCd);
		}
		
		return prgMap;
	}
	
	/**
	 * 異動理由明細リストを作成する。
	 * @return irsnDtl
	 */
	private ArrayList<HashMap<String, Object>> getIrsnDtl()
	{
		// 異動理由明細
		ArrayList<HashMap<String, Object>> irsnDtl = new ArrayList<HashMap<String, Object>>();
		
		HashMap<String, Object> dtlMap = new HashMap<String, Object>();
		
		irsnDtl.add(dtlMap);
		
		// 異動理由コード（その他）
		dtlMap.put("kk109101_ido_rsn_cd", JKKStrConst.CD00846_OTHER);
		
		return irsnDtl;
	}
	
	/**
	 * 照会マップから同番移転更新情報を取得する。
	 * @param bean データビーン
	 * @param paramMap 照会マップ
	 * @param telFlg 電話フラグ
	 * @return dobanInfo 同番移転更新情報
	 */
	@SuppressWarnings("unchecked")
	private String getDobanItenInfo(X31SDataBeanAccess bean, HashMap<String, Object> paramMap, String telFlg)
	{
		if (!paramMap.containsKey("KKSV007905CC"))
		{
			return null;
		}
		HashMap parentMap = (HashMap)paramMap.get("KKSV007905CC");
		if (parentMap == null)
		{
			return null;
		}

		if ((String)parentMap.get("kk0081_svc_kei_no") == null)
		{
			return null;
		}
		
		if (!paramMap.containsKey("KKSV007907CC"))
		{
			return null;
		}
		HashMap usePlaseMap = (HashMap)paramMap.get("KKSV007907CC");
		if (parentMap == null)
		{
			return null;
		}

		String dobanInfo = "";
		
		// サービス契約内訳＜eo光電話＞
		ArrayList<HashMap> svcKeiUcwkList = (ArrayList<HashMap>)parentMap.get("svc_kei_ucwk_tel_list");
		
		// サービス契約回線内訳
		ArrayList childList = (ArrayList)usePlaseMap.get("mskm_svc_kei_ucwk_list");
		HashMap childMap = (childList != null) && (childList.size() > 0) ? (HashMap)childList.get(0) : null;
		if (childMap == null)
		{
			return null;
		}
		
		for (int i = 0; i < svcKeiUcwkList.size(); i++)
		{
			HashMap svcKeiUcwkMap = (HashMap)svcKeiUcwkList.get(i);
			if (i == 0)
			{
				if(TEL_ONE.equals(telFlg))
				{
					if (!JKKStrConst.CD_DIV_UM_NASHI.equals((String)svcKeiUcwkMap.get("kk0191_bmp_um")))
					{
						dobanInfo = TEL_FIRST + PRG_CHGE + ZENKAKU_SPACE + PRG_CHBF +
									(String)svcKeiUcwkMap.get("kk0191_telno") + 
									STR_CAMMA + (String)svcKeiUcwkMap.get("kk0191_ntt_keisha_nm") + 
									STR_CAMMA + (String)svcKeiUcwkMap.get("kk0191_ntt_ksh_kana");
					}
				}
			}
			else
			{
				if(TEL_TWO.equals(telFlg))
				{
					if (!JKKStrConst.CD_DIV_UM_NASHI.equals((String)svcKeiUcwkMap.get("kk0191_bmp_um")))
					{
						dobanInfo = TEL_SECOND + PRG_CHGE + ZENKAKU_SPACE + PRG_CHBF +
									(String)svcKeiUcwkMap.get("kk0191_telno") + 
									STR_CAMMA + (String)svcKeiUcwkMap.get("kk0191_ntt_keisha_nm") + 
									STR_CAMMA + (String)svcKeiUcwkMap.get("kk0191_ntt_ksh_kana");
					}
				}
			}
		}
		
		dobanInfo = dobanInfo + STR_CAMMA + (String)childMap.get("kk0251_kaisen_place_pcd");

		String ad = STR_CAMMA + JKKWebCommon.getAdUnion(
						(String)childMap.get("kk0251_kaisen_place_state_nm"),
						(String)childMap.get("kk0251_kaisen_place_city_nm"),
						(String)childMap.get("kk0251_kaisen_place_oaztsu_nm"),
						(String)childMap.get("kk0251_kaisen_place_azcho_nm"),
						(String)childMap.get("kk0251_kaisen_place_bnchigo"),
						(String)childMap.get("kk0251_kaisen_place_adrttm"),
						(String)childMap.get("kk0251_kaisen_place_adrrm"));
		
		// オプションサービス契約ステータス
		if((dobanInfo + ad).length() > 128)
		{
			return dobanInfo;
		}
		
		return dobanInfo + ad;
	}
	
	/**
	 * 一時金設定キャンセルの上りマッピングを行います
	 * @param outputMap 上りマップ
	 * @param func_code 機能コード
	 * @param mskmInfoMap 照会マップ
	 * @param svcKeiUpdFlgs サービス契約更新制御マップ
	 * @return 上りマップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008039CC(
			HashMap outputMap,
			String func_code,
			HashMap mskmInfoMap,
			HashMap svcKeiUpdFlgs)
	{

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList<Object> icjknCancelList = new ArrayList <Object>();
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// 各サービス単位(ネット、電話、テレビ、モバイル)でマッピングを呼び出す
		setSubKKSV008039CC(icjknCancelList, mskmInfoMap, IS_NET_ICJKN_CANCEL,    svcKeiUpdFlgs, "KKSV007913CC");
		setSubKKSV008039CC(icjknCancelList, mskmInfoMap, IS_TEL_ICJKN_CANCEL,    svcKeiUpdFlgs, "KKSV007914CC");
		setSubKKSV008039CC(icjknCancelList, mskmInfoMap, IS_TV_KNYKN_CANCEL,     svcKeiUpdFlgs, "KKSV007915CC");
		setSubKKSV008039CC(icjknCancelList, mskmInfoMap, IS_MOBILE_ICJKN_CANCEL, svcKeiUpdFlgs, "KKSV007916CC");

		parentMap.put("icjkn_sette_cancel_list", icjknCancelList);

		outputMap.put("KKSV008039CC", parentMap);

		return outputMap;
	}
	
	/**
	 * 一時金一括キャンセルの上りマッピングサブルーチン（サービス単位）。
	 * <br>
	 * @param icjknCancelList   一時金設定キャンセルリスト
	 * @param mskmInfoMap       申込情報セッションマップ
	 * @param icjknCancelFlgKey 一時金キャンセル制御フラグ取得キー
	 * @param svcKeiUpdFlgs     サービス契約更新制御マップ
	 * @param mapKey            一時金設定照会マップのキー
	 * @return 一時金設定キャンセルリスト
	 */
	@SuppressWarnings("unchecked")
	private void setSubKKSV008039CC(ArrayList icjknCancelList, HashMap mskmInfoMap, String icjknCancelFlgKey,
			HashMap<String, Boolean> svcKeiUpdFlgs, String mapKey)
	{		
		// 一時金キャンセルフラグが true の場合に処理する
		if (!svcKeiUpdFlgs.get(icjknCancelFlgKey))
		{
			return;
		}
		
		// 照会時の一時金情報を取得します。
		HashMap<String, Object> icjknMap = (HashMap<String, Object>)mskmInfoMap.get(mapKey);
		if (icjknMap == null)
		{
			return;
		}
		ArrayList<HashMap> icjknDtlList = (ArrayList<HashMap>)icjknMap.get("EKK1021B501CBSMsg1List");
		if (icjknDtlList == null || icjknDtlList.size() < 1)
		{
			return;
		}
		
		for (HashMap<String, Object> icjkn_sette : icjknDtlList)
		{
			// 一時金設定キャンセル
			HashMap<String, Object> icjknCancelMap = new HashMap <String, Object>();
			
			// 一時金設定番号
			// 更新年月日時分秒(更新前)
			icjknCancelMap.put("icjkn_sette_no", (String)icjkn_sette.get("icjkn_sette_no"));
			icjknCancelMap.put("upd_dtm_bf",     (String)icjkn_sette.get("upd_dtm"));
			
			icjknCancelList.add(icjknCancelMap);
		}
		
		return;
	}
	
	/**
	* 番ポエイジングと番ポ電話番号の削除用上りマッピングを行います。
	* <br>
	* @param bean           [0]：照査前登録画面
	* @param parentMap           申込情報マップ
	* @param svcKeiMap           HashMap 電話の照会時情報
	* @param svcKeiUpdFlgs       サービス契約更新フラグ
	* @param func_code           機能コード
	* @param tel_idx             電話番号目
	*/
	@SuppressWarnings("unchecked")
	private void setCancelBmpAgingMap(X31SDataBeanAccess[] bean, HashMap<String, Object> parentMap,
			HashMap svcKeiMap, HashMap<String, Boolean> svcKeiUpdFlgs, String func_code, String tel_idx)
	{
		//##############
		//### 初期化 ###
		//##############
		ArrayList<HashMap> svcKeiUcwkList    = null;
		ArrayList<HashMap> telNoAgingMapList = null;
		Boolean  telTabUm_1  = false;
		Boolean  telTabUm_2  = false;
		String   telNumCnt   = "";
		String   telNoKind_1 = "";
		String   telNoKind_2 = "";
		String   telNo_1     = "";
		String   telNo_2     = "";
		String   telNoshokai = "";
		
		//################
		//### 情報取得 ###
		//################
		// そもそも照会時の電話番号内訳が存在しない場合は何もしない(訂正追加時はこのケース)
		svcKeiUcwkList = (ArrayList<HashMap>)svcKeiMap.get("svc_kei_ucwk_tel_list");
		if ((null == svcKeiUcwkList) || svcKeiUcwkList.isEmpty())
		{
			return;
		}
		
		// 指定された電話番号目の照会時電話番号を取得する。
		for (HashMap tmpMap : svcKeiUcwkList)
		{
			if (tel_idx.equals(tmpMap.get("kk0191_telno_jun")) && UMU_ARI.equals(tmpMap.get("kk0191_bmp_um")))
			{
				telNoshokai = (String)tmpMap.get("kk0191_telno");
				break;
			}
		}
		
		// 対象の電話番号が取得できない場合は何もしない(照会時新番号や２番号目追加時はこのケース)
		if((null == telNoshokai) || ("".equals(telNoshokai)))
		{
			return;
		}
		
		// 以下の更新判定はサービス単位のキャンセルの際は不要
		// サービスを消した場合は単純にキャンセルして再登録する
		if (!(svcKeiUpdFlgs.get(IS_TEL_CANCEL)))
		{
			telNumCnt   = bean[0].sendMessageString(KKW00101SFConst.EOH_TEL_NUM_FLG, X31CWebConst.DATABEAN_GET_VALUE); // 更新時の電話番号数
			telTabUm_1  = bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG,    X31CWebConst.DATABEAN_GET_VALUE); // 更新時の電話１タブ有無
			telTabUm_2  = telTabUm_1 && TEL_TWO.equals(telNumCnt);                                                     // 更新時の電話２タブ有無
			telNoKind_1 = bean[0].sendMessageString(KKW00101SFConst.TEL1_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE); // 電話１画面上の電話番号種類
			telNoKind_2 = bean[0].sendMessageString(KKW00101SFConst.TEL2_TELNO_KIND, X31CWebConst.DATABEAN_GET_VALUE); // 電話２画面上の電話番号種類
			telNo_1     = bean[0].sendMessageString(KKW00101SFConst.TEL1_BMP_TELNO,  X31CWebConst.DATABEAN_GET_VALUE); // 電話１画面上の番ポ番号
			telNo_2     = bean[0].sendMessageString(KKW00101SFConst.TEL2_BMP_TELNO,  X31CWebConst.DATABEAN_GET_VALUE); // 電話２画面上の番ポ番号
			
			//############
			//### 判定 ###
			//############
			// 対象番号目の照会時番ポ番号が電話１の番ポ番号と一致する場合、削除の対象外
			if (telTabUm_1 && TELNO_KIND_BMP.equals(telNoKind_1) && telNoshokai.equals(telNo_1))
			{
				return;
			}
			// 対象番号目の照会時番ポ番号が電話２の番ポ番号と一致する場合、削除の対象外
			if (telTabUm_2 && TELNO_KIND_BMP.equals(telNoKind_2) && telNoshokai.equals(telNo_2))
			{
				return;
			}
		}
		
		//##################
		//### マッピング ###
		//##################
		// エイジングのマッピング配列を取得する（無ければ作る）
		telNoAgingMapList = (ArrayList)parentMap.get("DEL_BMP_AGING");
		
		if (null == telNoAgingMapList)
		{
			telNoAgingMapList = new ArrayList();
			parentMap.put("DEL_BMP_AGING", telNoAgingMapList);
		
		}
		HashMap telNoAgingMap = new HashMap();
		
		telNoAgingMap.put("func_code", func_code);
		telNoAgingMap.put("zm0121_key_telno", telNoshokai);

		telNoAgingMapList.add(telNoAgingMap);
	}

// --> ANK-406
	
	/**
	 * 他事業者割引契約申込適用の上りマッピングを行います。
	 * <br>
	 * @param bean 申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @param mskmMap KKSV0079_申込新規登録初期表示の検索結果
	 * @return 出力先マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008040CC(
			X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, HashMap mskmMap) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap preMap = (HashMap)mskmMap.get("KKSV007910CC");

		if (preMap == null)
		{
			preMap = new HashMap();
		}
		

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		
		HashMap<String, Boolean> svcKeiCtrMap = JKKKeiNewCmnLogicUtil.getSvcKeiUpdCtrMap(bean[0]);
		
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		// バリューコード（画面）
		String kddiValCdDsp = bean[0].sendMessageString(KKW00101SFConst.KDDI_VAL_CD, X31CWebConst.DATABEAN_GET_VALUE);
		// バリューコード（照会情報）
		String kddiValCdBf = bean[0].sendMessageString(KKW00101SFConst.KDDI_VAL_CD_BF, X31CWebConst.DATABEAN_GET_VALUE);
		// スマートバリュー表示フラグ
		Boolean smtvalDspFlg = bean[0].sendMessageBoolean(KKW00101SFConst.SMTVL_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// キャンセル条件
		Boolean delFlg = kddiValCdBf != null && !"".equals(kddiValCdBf) && ((svcKeiCtrMap.get(IS_NET_CANCEL) || svcKeiCtrMap.get(IS_TEL1_CANCEL))
					|| (kddiValCdDsp == null || "".equals(kddiValCdDsp)));
		// 更新マッピングの条件
		Boolean updFlg = (kddiValCdBf != null && !"".equals(kddiValCdBf)) && (kddiValCdDsp != null && !"".equals(kddiValCdDsp))  
				&& (!svcKeiCtrMap.get(IS_NET_CANCEL) && !svcKeiCtrMap.get(IS_TEL1_CANCEL));
		// 登録マッピングの条件
		Boolean addFlg = smtvalDspFlg && (kddiValCdDsp != null && !"".equals(kddiValCdDsp)) && ((kddiValCdBf == null || "".equals(kddiValCdBf)) 
				|| (svcKeiCtrMap.get(IS_NET_ADD) || svcKeiCtrMap.get(IS_TEL1_ADD)));
		
		// 削除マッピング
		if(delFlg)
		{
			// 他事業者割引契約番号（削除用）
			parentMap.put("del_tajgs_wrib_kei_no", preMap.get("tajgs_wrib_kei_no"));
			// 更新年月日時分秒（更新前）
			parentMap.put("upd_dtm_bf", preMap.get("last_upd_dtm"));
		}
		
		// 変更マッピング
		if(updFlg)
		{
			// バリューコード
			parentMap.put("kddi_val_cd_dsp", kddiValCdDsp);
			// 他事業者割引契約番号（更新用）
			parentMap.put("upd_tajgs_wrib_kei_no", preMap.get("tajgs_wrib_kei_no"));
			// 更新年月日時分秒（更新前）
			parentMap.put("upd_dtm_bf", preMap.get("last_upd_dtm"));
		}
		// 登録マッピング
		else if(addFlg)
		{
			// バリューコード
			parentMap.put("kddi_val_cd_dsp", kddiValCdDsp);
			
			HashMap sameKaisenSvcInfoMap = (HashMap)mskmMap.get("KKSV007905SC");
			if (null != sameKaisenSvcInfoMap)
			{
				ArrayList<HashMap<String, String>> dataList = (ArrayList<HashMap<String, String>>)sameKaisenSvcInfoMap.get("EKK0081B011CBSMsg1List");
				if (null != dataList)
				{
					for (HashMap<String, String> dataMap : dataList)
					{
						// 解約済のサービス契約は使用しない
						if (JKKStrConst.CD00037_DSL_ZM.equals(dataMap.get("svc_kei_stat")))
						{
							continue;
						}
						
						String svcType = getSvcKeiType(dataMap.get("svc_cd"), dataMap.get("prc_grp_cd"));
						if (SVC_KEI_TYPE_NET.equals(svcType)
								&& bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_KIKEI_FLG, X31CWebConst.DATABEAN_GET_VALUE))
						{
							// 申込明細番号
							parentMap.put("mskm_dtl_no", dataMap.get("mskm_dtl_no"));
							// サービス契約番号(ネット)
							parentMap.put("ki_svc_kei_no_net", dataMap.get("svc_kei_no"));
						}
						else if (SVC_KEI_TYPE_TEL.equals(svcType)
								&& bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_KIKEI_FLG, X31CWebConst.DATABEAN_GET_VALUE))
						{
							// サービス契約番号(電話)
							parentMap.put("ki_svc_kei_no_tel", dataMap.get("svc_kei_no"));
						}
					}
				}
			}
		}
		
		outputMap.put("KKSV008040CC", parentMap);

		return outputMap;
	}
	
	
// <-- ANK-406

	/**
	 * 初回照会マップのサービス契約番号リスト取得
	 * @param mskmInfoMap 初回照会マップ
	 * @return 判定結果 true：存在する
	 */
	@SuppressWarnings("unchecked")
	public ArrayList getMskmInfoSvcKeiNoList(HashMap mskmInfoMap)
	{
		ArrayList updSvcKeiNoList = new ArrayList();
		HashMap getSvcMap = new HashMap();

		if (mskmInfoMap.containsKey("KKSV007904CC"))
		{
			String netSvcKeiNo = "";

			getSvcMap = (HashMap)mskmInfoMap.get("KKSV007904CC");
			if (getSvcMap.containsKey("EKK0021B502CBSMsg1List"))
			{
				ArrayList<HashMap<String, Object>> netList = (ArrayList<HashMap<String, Object>>)getSvcMap.get("EKK0021B502CBSMsg1List");
				if (netList != null && netList.size() != 0 && netList.get(0) != null)
				{
					HashMap<String, Object> netMap = netList.get(0);
					netSvcKeiNo = (String)netMap.get("kk0081_svc_kei_no");
				}
			}

			if (!JKKCommonUtil.isNull(netSvcKeiNo))
			{
				HashMap svcMap = new HashMap();
				svcMap.put("svc_kei_no", netSvcKeiNo);
				updSvcKeiNoList.add(svcMap);
			}
		}
		if (mskmInfoMap.containsKey("KKSV007905CC"))
		{
			String telSvcKeiNo = "";

			getSvcMap = (HashMap)mskmInfoMap.get("KKSV007905CC");
			telSvcKeiNo = (String)getSvcMap.get("kk0081_svc_kei_no");

			if (!JKKCommonUtil.isNull(telSvcKeiNo))
			{
				HashMap svcMap = new HashMap();
				svcMap.put("svc_kei_no", telSvcKeiNo);
				updSvcKeiNoList.add(svcMap);
			}
		}
		if (mskmInfoMap.containsKey("KKSV007906CC"))
		{
			String tvSvcKeiNo = "";
			getSvcMap = (HashMap)mskmInfoMap.get("KKSV007906CC");
			tvSvcKeiNo = (String)getSvcMap.get("kk0081_svc_kei_no");

			if (!JKKCommonUtil.isNull(tvSvcKeiNo))
			{
				HashMap svcMap = new HashMap();
				svcMap.put("svc_kei_no", tvSvcKeiNo);
				updSvcKeiNoList.add(svcMap);
			}
		}
		if (mskmInfoMap.containsKey("KKSV007908CC"))
		{
			String mobaSvcKeiNo = "";
			getSvcMap = (HashMap)mskmInfoMap.get("KKSV007908CC");
			mobaSvcKeiNo = (String)getSvcMap.get("mobile_svc_kei_no");

			if (!JKKCommonUtil.isNull(mobaSvcKeiNo))
			{
				HashMap svcMap = new HashMap();
				svcMap.put("svc_kei_no", mobaSvcKeiNo);
				updSvcKeiNoList.add(svcMap);
			}
		}

		return updSvcKeiNoList;
	}
	
	/**
	 * 割引サービス契約手動適用CCの上りマッピングを行います。
	 * @param bean 申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param mskmInfoMap 初回照会マップ
	 * @param opeDate 運用年月日
	 * @return 出力先マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008014CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			HashMap mskmInfoMap,
			String opeDate)
	{
		if (null == bean)
		{
			return null;
		}
		
		if (1 != bean.length)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList mskmInfoSvcKeiNoList = getMskmInfoSvcKeiNoList(mskmInfoMap);

		// 共通情報のマッピング
		parentMap.put("func_code", JPCModelConstant.FUNC_CD_1);
		// ＫＥＹ＿予約適用年月日
		parentMap.put("key_rsv_aply_ymd", opeDate);
		// 運用年月日
		parentMap.put("ope_date", opeDate);

		// サービス契約番号リストの設定
		parentMap.put("svc_kei_no_list", mskmInfoSvcKeiNoList);
		// 割引の削除用リストを設定
		setWribDelInfo(bean[0], parentMap, mskmInfoMap);
		// 割引の登録用リストを設定
		setWribAddInfo(bean[0], parentMap, mskmInfoMap, opeDate);
		// 汎用の削除リストを設定
		setHanyoDelInfo(bean[0], parentMap, mskmInfoMap, opeDate);
		// 汎用の登録用リストを設定
		setHanyoAddInfo(bean[0], parentMap, mskmInfoMap, opeDate);
		// 割引整合マップを設定
		setWribSeigoMap(bean[0], parentMap);
		
		// サービス契約回線内訳番号
		if (null != mskmInfoMap)
		{
			HashMap preMap = (HashMap)mskmInfoMap.get("KKSV007907CC");
			if (null != preMap)
			{
				ArrayList<HashMap> childList = (ArrayList<HashMap>)preMap.get("mskm_svc_kei_ucwk_list");
				if (null != childList && childList.size() > 0)
				{
					// 追加申込かつ別回線の場合、利用場所照会マップには追加元のサービス契約回線内訳番号が入っている。
					// そのため。
					// （申込情報検索、仮申込検索からの遷移の場合はチェックしない。）
					boolean svcAddOtherKisn = JKKCommonUtil.isNull(bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE))
						&& MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
						&& RIYO_KAISEN_OTHER.equals(bean[0].sendMessageString(KKW00101SFConst.RIYO_KAISEN, X31CWebConst.DATABEAN_GET_VALUE));
					if(!svcAddOtherKisn)
					{
						parentMap.put("key_svc_kei_kaisen_ucwk_no", (String)childList.get(0).get("kk0251_svc_kei_kaisen_ucwk_no"));
					}
				}
			}
		}
		
		outputMap.put("KKSV008014CC", parentMap);

		return outputMap;
	}

	
	
	/**
	 * 割引の削除情報を設定する
	 * @param bean 申込新規登録画面
	 * @param parentMap 情報設定先マップ
	 * @param mskmInfoMap 初回照会マップ
	 */
	@SuppressWarnings("unchecked")
	private void setWribDelInfo(X31SDataBeanAccess bean, HashMap parentMap, HashMap mskmInfoMap)
	{
		X31SDataBeanAccessArray wribSvcCdListArray = bean.getDataBeanArray(KKW00101SFConst.WRIB_CTRL_LIST);

		// CCのマッピング前に設定するマップ
		HashMap setDelWribMap = new HashMap();
		ArrayList dataList = new ArrayList();

		for (int i = 0; i < wribSvcCdListArray.getCount(); i++)
		{
			HashMap childMap = new HashMap();
			X31SDataBeanAccess subBean = wribSvcCdListArray.getDataBean(i);

			// 区分が"0"の場合はトランザクションデータに存在しないので、キャンセル対象よりはずす
			if (KBN_SHK_ADD.equals(subBean.sendMessageString(KKW00101SFConst.KBN_21, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				continue;
			}

			// 削除チェックボックスにチェックが入っていない場合
			if (!subBean.sendMessageBoolean(KKW00101SFConst.HDN_DEL_CHK_21, X31CWebConst.DATABEAN_GET_VALUE))
			{
				continue;
			}

			// マッピング済みの割引サービスコードの場合、外す。
			String mWribSvcCd = subBean.sendMessageString(KKW00101SFConst.M_KEY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);
			if (setDelWribMap.containsKey(mWribSvcCd))
			{
				continue;
			}

			// 割引サービス契約番号
			String wribSvcNo = getWribSvcKeiNo(mWribSvcCd, mskmInfoMap);

			if (JKKCommonUtil.isNull(wribSvcNo))
			{
				continue;
			}

			childMap.put("wrib_svc_kei_no", wribSvcNo);
			// 申込明細番号
			childMap.put("mskm_dtl_no", subBean.sendMessageString(KKW00101SFConst.MSKM_DTL_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
			// サービスキャンセル理由コード
			String wribAddOptyCd = subBean.sendMessageString(KKW00101SFConst.ADD_OPTY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);
			if (JKKStrConst.CD00874_AUTO.equals(wribAddOptyCd))
			{
				// 30:手動(取消)
				childMap.put("svc_cancel_rsn_cd", JKKStrConst.CD01390_CL_MAN); 
			}
			else if (ADD_OPTY_CD_MANUAL.equals(wribAddOptyCd))
			{
				// 20:取消(訂正)
				childMap.put("svc_cancel_rsn_cd", JKKStrConst.CD01390_CL_TEISE);
			}
			// 異動区分 ← 異動区分　※変更しない（取得した値をそのまま設定）
			childMap.put("ido_div", getIdoDiv(bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
			// 割引解約キャンセル契機コード
			childMap.put("wrib_dsl_cncl_opty_cd", JKKStrConst.CD00874_MAN_SET);
			// 割引サービス契約に紐づいているサービス契約番号を設定する
			childMap.put("svc_kei_no_list", getSvcKeiNoListKK0481(wribSvcNo, mskmInfoMap));
			setDelWribMap.put(mWribSvcCd, childMap);
		}

		Iterator<String> itr = setDelWribMap.keySet().iterator();
		while (itr.hasNext())
		{
			String key = (String)itr.next();
			dataList.add(setDelWribMap.get(key));
		}
		parentMap.put("del_wrib_svc_kei_no_list", dataList);
	}

	/**
	 * 割引の登録情報を設定する
	 * @param bean 申込新規登録画面
	 * @param parentMap 情報設定先マップ
	 * @param mskmInfoMap 初回照会マップ
	 * @param opeDate 運用年月日
	 */
	@SuppressWarnings("unchecked")
	private void setWribAddInfo(X31SDataBeanAccess bean, HashMap parentMap, HashMap mskmInfoMap, String opeDate)
	{
		X31SDataBeanAccessArray wribSvcCdListArray = bean.getDataBeanArray(KKW00101SFConst.WRIB_CTRL_LIST);

		// CCのマッピング前に設定するマップ
		HashMap setAddWribMap = new HashMap();
		// 登録順を制御するリスト
		ArrayList<String> addCtrlList = new ArrayList<String>();
		
		ArrayList dataList = new ArrayList();

		String mskmYmdY = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmYmdM = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmYmdD = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);

		for (int i = 0; i < wribSvcCdListArray.getCount(); i++)
		{
			HashMap wribSvcTrgtMap = new HashMap();
			HashMap childMap = new HashMap();
			ArrayList<HashMap> wribSvcTrgtSvcList = new ArrayList<HashMap>();
			X31SDataBeanAccess subBean = wribSvcCdListArray.getDataBean(i);

			// 削除チェックボックスにチェックが入っている場合は処理しない
			if (subBean.sendMessageBoolean(KKW00101SFConst.HDN_DEL_CHK_21, X31CWebConst.DATABEAN_GET_VALUE))
			{
				continue;
			}

			// 自動適用CCで追加された割引は処理しない
			if (JKKStrConst.CD00874_AUTO.equals(
					subBean.sendMessageString(KKW00101SFConst.ADD_OPTY_CD_21, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				continue;
			}

			// 登録可能な条件の判定
			if (!subBean.sendMessageBoolean(KKW00101SFConst.ADD_TRG_FLG_21, X31CWebConst.DATABEAN_GET_VALUE))
			{
				continue;
			}

			// 割引サービスコード
			String wribSvcCd = subBean.sendMessageString(KKW00101SFConst.M_KEY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);

			if (setAddWribMap.containsKey(wribSvcCd))
			{
				wribSvcTrgtMap = (HashMap)setAddWribMap.get(wribSvcCd);
				wribSvcTrgtSvcList = (ArrayList<HashMap>)wribSvcTrgtMap.get("wrib_svc_trgt_svc_list");
				wribSvcTrgtSvcList.add(childMap);
			}
			else
			{
				setAddWribMap.put(wribSvcCd, wribSvcTrgtMap);
				wribSvcTrgtMap.put("wrib_svc_trgt_svc_list", wribSvcTrgtSvcList);
				wribSvcTrgtSvcList.add(childMap);

				// 割引サービスコード
				wribSvcTrgtMap.put("wrib_svc_cd", wribSvcCd);
				// 即時適用フラグ
				wribSvcTrgtMap.put("aply_jun", JKKStrConst.CD00403_OK);
				// 異動区分
				wribSvcTrgtMap.put("ido_div", getIdoDiv(bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
				// 申込起算年月日
				wribSvcTrgtMap.put("mskm_kisan_ymd", mskmYmdY + mskmYmdM + mskmYmdD);
				// 割引登録契機コード
				wribSvcTrgtMap.put("wrib_add_opty_cd", JKKStrConst.CD00874_MAN_SET);

				if (KBN_ADD_ZUMI.equals(subBean.sendMessageString(KKW00101SFConst.KBN_21, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// 割引サービス契約番号
					String wribSvcNo = getWribSvcKeiNo(wribSvcCd, mskmInfoMap);
					wribSvcTrgtMap.put("wrib_svc_kei_no", wribSvcNo);
				}

				// サービスキャンセル理由コード
				String wribAddOptyCd = subBean.sendMessageString(KKW00101SFConst.ADD_OPTY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);
				if (JKKStrConst.CD00874_AUTO.equals(wribAddOptyCd))
				{
					// 30:手動(取消)
					wribSvcTrgtMap.put("svc_cancel_rsn_cd", JKKStrConst.CD01390_CL_MAN); 
				}
				else if (ADD_OPTY_CD_MANUAL.equals(wribAddOptyCd))
				{
					// 20:取消(訂正)
					wribSvcTrgtMap.put("svc_cancel_rsn_cd", JKKStrConst.CD01390_CL_TEISE);
				}
				// 申込明細番号
				wribSvcTrgtMap.put("mskm_dtl_no", subBean.sendMessageString(KKW00101SFConst.MSKM_DTL_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				// 割引解約キャンセル契機コード
				wribSvcTrgtMap.put("wrib_dsl_cncl_opty_cd", JKKStrConst.CD00874_MAN_SET);
			}

			// 対象契約識別コード
			// 登録時に設定するためマッピングしない
			
			// 割引サービス対象サービスコード
			childMap.put("wrib_svc_trgt_svc_cd", subBean.sendMessageString(KKW00101SFConst.M_TRGT_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 設定登録年月日
			childMap.put("set_add_ymd", opeDate);
			// 割引サービス対象契約適用開始年月日
			childMap.put("wrisvc_tg_kei_tstaymd", opeDate);
			// 割引サービス対象契約適用終了年月日
			childMap.put("wrisvc_tg_kei_tendymd", END_YMD);
			// サービスコード ← サービスコード
			childMap.put("svc_cd", subBean.sendMessageString(KKW00101SFConst.SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金グループコード ← 料金グループコード
			childMap.put("prc_grp_cd", subBean.sendMessageString(KKW00101SFConst.PRC_GRP_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金コースコード ← 料金コースコード
			childMap.put("pcrs_cd", subBean.sendMessageString(KKW00101SFConst.PCRS_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金プランコード ← 料金プランコード
			childMap.put("pplan_cd", subBean.sendMessageString(KKW00101SFConst.PPLAN_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// オプションサービスコード ← オプションサービスコード
			childMap.put("op_svc_cd", subBean.sendMessageString(KKW00101SFConst.OP_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// サブオプションサービスコード ← サブオプションサービスコード
			childMap.put("sbop_svc_cd", subBean.sendMessageString(KKW00101SFConst.SBOP_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器提供サービスコード ← 機器提供サービスコード
			childMap.put("kktk_svc_cd", subBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器提供種別コード ← 機器提供種別コード
			childMap.put("kktk_sbt_cd", subBean.sendMessageString(KKW00101SFConst.KKTK_SBT_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 機器オプションサービスコード ← 機器オプションサービスコード
			childMap.put("kkop_svc_cd", subBean.sendMessageString(KKW00101SFConst.KKOP_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 請求オプションサービスコード ← 請求オプションサービスコード
			childMap.put("seiopsvc_cd", subBean.sendMessageString(KKW00101SFConst.SEIOPSVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));

			if (KBN_ADD_ZUMI.equals(subBean.sendMessageString(KKW00101SFConst.KBN_21, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				ArrayList<HashMap> keyList = null;
				
				// サービス契約
				keyList = getWribTgSvcKeiKeyList("svc_kei_no", subBean.sendMessageString(
						KKW00101SFConst.SVC_KEI_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				if (null != keyList)
				{
					childMap.put("svc_kei_no_list", keyList);
				}
				// サービス契約内訳
				keyList = getWribTgSvcKeiKeyList("svc_kei_ucwk_no", subBean.sendMessageString(
						KKW00101SFConst.SVC_KEI_UCWK_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				if (null != keyList)
				{
					childMap.put("svc_kei_ucwk_no_list", keyList);
				}
				// オプションサービス契約
				keyList = getWribTgSvcKeiKeyList("op_svc_kei_no", subBean.sendMessageString(
						KKW00101SFConst.OP_SVC_KEI_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				if (null != keyList)
				{
					childMap.put("op_svc_kei_no_list", keyList);
				}
				// サブオプションサービス契約
				keyList = getWribTgSvcKeiKeyList("sbop_svc_kei_no", subBean.sendMessageString(
						KKW00101SFConst.SBOP_SVC_KEI_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				if (null != keyList)
				{
					childMap.put("sbop_svc_kei_no_list", keyList);
				}
				// 機器提供サービス契約
				keyList = getWribTgSvcKeiKeyList("kktk_svc_kei_no", subBean.sendMessageString(
						KKW00101SFConst.KKTK_SVC_KEI_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				if (null != keyList)
				{
					childMap.put("kktk_svc_kei_no_list", keyList);
				}
				// 機器オプションサービス契約
				keyList = getWribTgSvcKeiKeyList("kkop_svc_kei_no", subBean.sendMessageString(
						KKW00101SFConst.KKOP_SVC_KEI_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				if (null != keyList)
				{
					childMap.put("kkop_svc_kei_no_list", keyList);
				}
			}
			
			// 割引タイプ
			childMap.put("wrib_type",
					JKKWebCommon.getWribType(subBean.sendMessageString(KKW00101SFConst.SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE),
							subBean.sendMessageString(KKW00101SFConst.OP_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE),
							subBean.sendMessageString(KKW00101SFConst.SBOP_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE),
							subBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE),
							subBean.sendMessageString(KKW00101SFConst.KKOP_SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE),
							subBean.sendMessageString(KKW00101SFConst.PCRS_CD_21, X31CWebConst.DATABEAN_GET_VALUE)).ordinal());

			if (!addCtrlList.contains(wribSvcCd))
			{
				addCtrlList.add(wribSvcCd);
			}
		}

		for (String key : addCtrlList)
		{
			dataList.add(setAddWribMap.get(key));
		}

		parentMap.put("wrib_svc_trgt_list", dataList);
	}
	
	/**
	 * 割引対象サービスのキー情報格納リストを作成します。
	 * <br>
	 * @param keyName キー名称
	 * @param setData 処理データ
	 * @return キー情報格納リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList<HashMap> getWribTgSvcKeiKeyList(String keyName, String setData)
	{
		if (JKKCommonUtil.isNull(setData))
		{
			return null;
		}
		
		ArrayList<HashMap> dataList = new ArrayList<HashMap>();
		String[] keyNoArray = setData.split(",");
		for (String keyNo : keyNoArray)
		{
			HashMap dataMap = new HashMap();
			dataMap.put(keyName, keyNo);
			dataList.add(dataMap);
		}
		
		return dataList;
	}

	/**
	 * 照会情報から割引CCの情報を取得
	 * @param mskmInfoMap 初回照会マップ
	 * @return 割引キャンペーン一覧照会明細
	 */
	@SuppressWarnings("unchecked")
	private HashMap getKKSV007911CCMap(HashMap mskmInfoMap)
	{
		HashMap kksv007911CCMap = new HashMap();

		if (!mskmInfoMap.containsKey("KKSV007911CC"))
		{
			return kksv007911CCMap;
		}

		kksv007911CCMap = (HashMap)mskmInfoMap.get("KKSV007911CC");

		if (kksv007911CCMap == null)
		{
			return new HashMap();
		}

		return kksv007911CCMap;
	}

	/**
	 * 照会情報から割引CCの割引キャンペーン一覧照会情報を取得
	 * @param mskmInfoMap 初回照会マップ
	 * @return 割引キャンペーン一覧照会明細
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getEKK0451B507List(HashMap mskmInfoMap)
	{
		ArrayList dataList = new ArrayList();

		HashMap getWribCCMap = getKKSV007911CCMap(mskmInfoMap);

		if (!getWribCCMap.containsKey("EKK0451B507CBSMsg1List"))
		{
			return new ArrayList();
		}

		dataList = (ArrayList)getWribCCMap.get("EKK0451B507CBSMsg1List");

		if (dataList == null)
		{
			return new ArrayList();
		}

		return dataList;
	}

	/**
	 * 照会情報から割引CCの汎用コード一覧照会情報を取得
	 * @param mskmInfoMap 初回照会マップ
	 * @return 割引キャンペーン一覧照会明細
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getEKK1391B501List(HashMap mskmInfoMap)
	{
		ArrayList dataList = new ArrayList();

		HashMap getWribCCMap = getKKSV007911CCMap(mskmInfoMap);

		if (!getWribCCMap.containsKey("EKK1391B501CBSMsg1List"))
		{
			return new ArrayList();
		}

		dataList = (ArrayList)getWribCCMap.get("EKK1391B501CBSMsg1List");

		if (dataList == null)
		{
			return new ArrayList();
		}

		return dataList;
	}

	/**
	 * 照会情報から割引CCの割引サービス対象契約登録制御用一覧照会情報を取得
	 * @param mskmInfoMap 初回照会マップ
	 * @return 割引キャンペーン一覧照会明細
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getEKK0481B502List(HashMap mskmInfoMap)
	{
		ArrayList dataList = null;

		HashMap getWribCCMap = getKKSV007911CCMap(mskmInfoMap);

		if (!getWribCCMap.containsKey("EKK0481B502CBSMsg1List"))
		{
			return new ArrayList();
		}

		dataList = (ArrayList)getWribCCMap.get("EKK0481B502CBSMsg1List");

		if (dataList == null)
		{
			return new ArrayList();
		}
		return dataList;
	}

	/**
	 * 照会情報から割引CCのデータ抽出項目設定対象契約登録制御用一覧照会明細情報を取得
	 * @param mskmInfoMap 初回照会マップ
	 * @return データ抽出項目設定対象契約登録制御用一覧照会明細
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getEKK1401B501List(HashMap mskmInfoMap)
	{
		ArrayList dataList = null;

		HashMap getWribCCMap = getKKSV007911CCMap(mskmInfoMap);

		if (!getWribCCMap.containsKey("EKK1401B501CBSMsg1List"))
		{
			return new ArrayList();
		}

		dataList = (ArrayList)getWribCCMap.get("EKK1401B501CBSMsg1List");

		if (dataList == null)
		{
			return new ArrayList();
		}
		return dataList;
	}

	/**
	 * 割引サービス契約番号取得
	 * @param mWribSvcCd 割引サービスコード（マスタ）
	 * @param mskmInfoMap 初回照会マップ
	 * @return 割引サービス契約番号
	 */
	@SuppressWarnings("unchecked")
	private String getWribSvcKeiNo(String mWribSvcCd, HashMap mskmInfoMap)
	{
		ArrayList dataList = getEKK0451B507List(mskmInfoMap);

		if (dataList.size() == 0)
		{
			return "";
		}

		for (HashMap dataMap : (ArrayList<HashMap>)dataList)
		{
			String wribSvcKeiNo = (String)dataMap.get("wrib_svc_kei_no");
			String wribSvcCd = (String)dataMap.get("wrib_svc_cd");

			if (mWribSvcCd.equals(wribSvcCd))
			{
				return wribSvcKeiNo;
			}
		}

		return "";
	}

	/**
	 * データ抽出項目設定番号取得
	 * @param dchskmCd データ抽出項目コード
	 * @param mskmInfoMap 初回照会マップ
	 * @return 割引サービス契約番号
	 */
	@SuppressWarnings("unchecked")
	private String getDchskmstNo(String dchskmCd, HashMap mskmInfoMap)
	{
		ArrayList dataList = getEKK1391B501List(mskmInfoMap);

		if (dataList.size() == 0)
		{
			return "";
		}

		for (HashMap dataMap : (ArrayList<HashMap>)dataList)
		{
			String dchskmstNo = (String)dataMap.get("dchskmst_no");
			String kk1391_dchskmCd = (String)dataMap.get("dchskm_cd");

			if (dchskmCd.equals(kk1391_dchskmCd))
			{
				return dchskmstNo;
			}
		}

		return "";
	}

	/**
	 * 割引サービス契約番号に紐づくサービス契約番号を取得
	 * @param wribSvcNo 割引サービス番号
	 * @param mskmInfoMap 初回照会マップ
	 * @return サービス契約番号格納リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getSvcKeiNoListKK0481(String wribSvcNo, HashMap mskmInfoMap)
	{
		ArrayList resultList = new ArrayList();
		ArrayList dataList = getEKK0481B502List(mskmInfoMap);
		ArrayList svcKeiNoList = new ArrayList();

		for (HashMap dataMap : (ArrayList<HashMap>)dataList)
		{
			String svcKeiNo = (String)dataMap.get("svc_kei_no");
			String svcKeiUcwkNo = (String)dataMap.get("svc_kei_ucwk_no");
			String opSvcKeiNo = (String)dataMap.get("op_svc_kei_no");
			String sbopSvcKeiNo = (String)dataMap.get("sbop_svc_kei_no");
			String kktkSvcKeiNo = (String)dataMap.get("kktk_svc_kei_no");
			String kkopSvcKeiNo = (String)dataMap.get("kkop_svc_kei_no");
			String getWribSvcKeiNo = (String)dataMap.get("wrib_svc_kei_no");
			String addKey = svcKeiNo + svcKeiUcwkNo + opSvcKeiNo + sbopSvcKeiNo + kktkSvcKeiNo + kkopSvcKeiNo;

			if (wribSvcNo.equals(getWribSvcKeiNo))
			{
				if (!svcKeiNoList.contains(addKey))
				{
					HashMap childMap = new HashMap();
					childMap.put("svc_kei_no", svcKeiNo);
					childMap.put("svc_kei_ucwk_no", svcKeiUcwkNo);
					childMap.put("op_svc_kei_no", opSvcKeiNo);
					childMap.put("sbop_svc_kei_no", sbopSvcKeiNo);
					childMap.put("kktk_svc_kei_no", kktkSvcKeiNo);
					resultList.add(childMap);
					svcKeiNoList.add(addKey);
				}
			}
		}

		return resultList;
	}
	
	/**
	 * データ抽出項目設定番号に紐づくサービス契約番号を取得
	 * @param dchskmstNo データ抽出項目設定番号
	 * @param mskmInfoMap 初回照会マップ
	 * @return サービス契約番号格納リスト
	 */
	@SuppressWarnings("unchecked")
	private ArrayList getSvcKeiNoListKK1401(String dchskmstNo, HashMap mskmInfoMap)
	{
		ArrayList resultList = new ArrayList();
		ArrayList dataList = getEKK1401B501List(mskmInfoMap);
		ArrayList svcKeiNoList = new ArrayList();

		for (HashMap dataMap : (ArrayList<HashMap>)dataList)
		{
			String svcKeiNo = (String)dataMap.get("svc_kei_no");
			String kk1401_dchskmstNo = (String)dataMap.get("dchskmst_no");

			if (dchskmstNo.equals(kk1401_dchskmstNo))
			{
				if (!svcKeiNoList.contains(svcKeiNo))
				{
					HashMap childMap = new HashMap();
					childMap.put("svc_kei_no", svcKeiNo);
					resultList.add(childMap);
					svcKeiNoList.add(svcKeiNo);
				}
			}
		}

		return resultList;
	}

	/**
	 * 汎用の削除情報を設定する
	 * @param bean 申込新規登録画面
	 * @param parentMap 情報設定先マップ
	 * @param mskmInfoMap 初回照会マップ
	 * @param opeDate 運用年月日
	 */
	@SuppressWarnings("unchecked")
	private void setHanyoDelInfo(X31SDataBeanAccess bean, HashMap parentMap, HashMap mskmInfoMap, String opeDate)
	{
		X31SDataBeanAccessArray hanyoCdListArray = bean.getDataBeanArray(KKW00101SFConst.HANYO_CD_CTRL_LIST);

		// CCのマッピング前に設定するマップ
		HashMap setDelHanyoMap = new HashMap();
		ArrayList dataList = new ArrayList();

		for (int i = 0; i < hanyoCdListArray.getCount(); i++)
		{
			HashMap childMap = new HashMap();
			X31SDataBeanAccess subBean = hanyoCdListArray.getDataBean(i);

			// 区分が"0"の場合はトランザクションデータに存在しないので、キャンセル対象よりはずす
			if (KBN_SHK_ADD.equals(subBean.sendMessageString(KKW00101SFConst.KBN_21, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				continue;
			}

			// 削除チェックボックスにチェックが入っていない場合
			if (!subBean.sendMessageBoolean(KKW00101SFConst.HDN_DEL_CHK_21, X31CWebConst.DATABEAN_GET_VALUE))
			{
				continue;
			}

			// マッピング済みの割引サービスコードの場合、外す。
			String dchskmCd = subBean.sendMessageString(KKW00101SFConst.M_KEY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);
			if (setDelHanyoMap.containsKey(dchskmCd))
			{
				continue;
			}

			// データ抽出項目設定番号
			String dchskmstNo = getDchskmstNo(dchskmCd, mskmInfoMap);

			if (JKKCommonUtil.isNull(dchskmstNo))
			{
				continue;
			}

			childMap.put("dchskmst_no", dchskmstNo);
			// データ抽出項目設定完了種別コード
			String dchskmstAddOptyCd = subBean.sendMessageString(KKW00101SFConst.ADD_OPTY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);
			if (JKKStrConst.CD00874_AUTO.equals(dchskmstAddOptyCd))
			{
				childMap.put("dchskmst_fin_sbt_cd", JKKStrConst.CD00809_050);  // 050:手動(取消)
			}
			else if (ADD_OPTY_CD_MANUAL.equals(dchskmstAddOptyCd))
			{
				childMap.put("dchskmst_fin_sbt_cd", JKKStrConst.CD00809_040);  // 040:取消(訂正)
			}
			// データ抽出項目設定終了年月日
			childMap.put("dchskmst_end_ymd", opeDate);
			// 異動区分
			childMap.put("ido_div", getIdoDiv(bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
			// データ抽出項目設定完了契機コード
			childMap.put("dchskmst_fin_opty_cd", JKKStrConst.CD00874_MAN_SET);
			// 申込明細番号
			childMap.put("mskm_dtl_no", subBean.sendMessageString(KKW00101SFConst.MSKM_DTL_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 割引サービス契約に紐づいているサービス契約番号を
			childMap.put("svc_kei_no_list", getSvcKeiNoListKK1401(dchskmstNo, mskmInfoMap));
			setDelHanyoMap.put(dchskmCd, childMap);
		}

		Iterator<String> itr = setDelHanyoMap.keySet().iterator();
		while (itr.hasNext())
		{
			String key = (String)itr.next();
			dataList.add(setDelHanyoMap.get(key));
		}
		parentMap.put("del_dchskmst_no_list", dataList);
	}

	/**
	 * 汎用の登録情報を設定する
	 * @param bean 申込新規登録画面
	 * @param parentMap 情報設定先マップ
	 * @param mskmInfoMap 初回照会マップ
	 * @param opeDate 運用年月日
	 */
	@SuppressWarnings("unchecked")
	private void setHanyoAddInfo(X31SDataBeanAccess bean, HashMap parentMap, HashMap mskmInfoMap, String opeDate)
	{
		X31SDataBeanAccessArray hanyoCdListArray = bean.getDataBeanArray(KKW00101SFConst.HANYO_CD_CTRL_LIST);

		// CCのマッピング前に設定するマップ
		HashMap setAddWribMap = new HashMap();
		// 登録順を制御するリスト
		ArrayList<String> addCtrlList = new ArrayList<String>();
		
		ArrayList dataList = new ArrayList();

		String mskmYmdY = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmYmdM = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
		String mskmYmdD = bean.sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);

		for (int i = 0; i < hanyoCdListArray.getCount(); i++)
		{
			HashMap hanyoTrgtMap = new HashMap();
			HashMap childMap = new HashMap();
			ArrayList<HashMap> hanyoTrgtSvcList = new ArrayList<HashMap>();
			X31SDataBeanAccess subBean = hanyoCdListArray.getDataBean(i);

			// 削除チェックボックスにチェックが入っている場合は処理しない
			if (subBean.sendMessageBoolean(KKW00101SFConst.HDN_DEL_CHK_21, X31CWebConst.DATABEAN_GET_VALUE))
			{
				continue;
			}

			// 自動適用CCで追加された割引は処理しない
			if (JKKStrConst.CD00874_AUTO.equals(
					subBean.sendMessageString(KKW00101SFConst.ADD_OPTY_CD_21, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				continue;
			}

			// 登録可能な条件の判定
			if (!subBean.sendMessageBoolean(KKW00101SFConst.ADD_TRG_FLG_21, X31CWebConst.DATABEAN_GET_VALUE))
			{
				continue;
			}

			// データ抽出項目コード
			String dchskmCd = subBean.sendMessageString(KKW00101SFConst.M_KEY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);

			if (setAddWribMap.containsKey(dchskmCd))
			{
				hanyoTrgtMap = (HashMap)setAddWribMap.get(dchskmCd);
				hanyoTrgtSvcList = (ArrayList<HashMap>)hanyoTrgtMap.get("dchskmst_tg_kei_list");
				hanyoTrgtSvcList.add(childMap);
			}
			else
			{
				setAddWribMap.put(dchskmCd, hanyoTrgtMap);
				hanyoTrgtMap.put("dchskmst_tg_kei_list", hanyoTrgtSvcList);
				hanyoTrgtSvcList.add(childMap);

				// データ抽出項目コード
				hanyoTrgtMap.put("dchskm_cd", dchskmCd);
				// 申込明細番号
				hanyoTrgtMap.put("mskm_dtl_no", subBean.sendMessageString(KKW00101SFConst.MSKM_DTL_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				// 即時適用フラグ
				hanyoTrgtMap.put("aply_jun", JKKStrConst.CD00403_OK);
				// データ抽出項目設定年月日
				hanyoTrgtMap.put("dchskmst_ymd", mskmYmdY + mskmYmdM + mskmYmdD);
				// データ抽出項目設定開始年月日
				hanyoTrgtMap.put("dchskmst_sta_ymd", mskmYmdY + mskmYmdM + mskmYmdD);
				// データ抽出項目設定終了年月日
				hanyoTrgtMap.put("dchskmst_end_ymd", END_YMD);
				// 異動区分
				hanyoTrgtMap.put("ido_div", getIdoDiv(bean.sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE)));
				// グループコード
				hanyoTrgtMap.put("grp_cd", "");
				// 紹介コード
				hanyoTrgtMap.put("intr_cd", "");
				// 申込起算年月日
				hanyoTrgtMap.put("mskm_kisan_ymd", mskmYmdY + mskmYmdM + mskmYmdD);
				// データ抽出項目設定登録契機コード
				hanyoTrgtMap.put("dchskmst_add_opty_cd", JKKStrConst.CD00874_MAN_SET);
				// データ抽出項目設定完了契機コード
				hanyoTrgtMap.put("dchskmst_fin_opty_cd", JKKStrConst.CD00874_MAN_SET);
				// 申込明細番号
				hanyoTrgtMap.put("mskm_dtl_no", subBean.sendMessageString(KKW00101SFConst.MSKM_DTL_NO_21, X31CWebConst.DATABEAN_GET_VALUE));
				if (KBN_ADD_ZUMI.equals(subBean.sendMessageString(KKW00101SFConst.KBN_21, X31CWebConst.DATABEAN_GET_VALUE)))
				{
					// データ抽出項目設定番号
					String dchskmstNo = getDchskmstNo(dchskmCd, mskmInfoMap);
					hanyoTrgtMap.put("dchskmst_no", dchskmstNo);
					// データ抽出項目設定番号に紐づくサービス契約番号を設定
					hanyoTrgtMap.put("svc_kei_no_list", getSvcKeiNoListKK1401(dchskmstNo, mskmInfoMap));
					//  データ抽出項目設定完了種別コード
					String dchskmstAddOptyCd = subBean.sendMessageString(KKW00101SFConst.ADD_OPTY_CD_21, X31CWebConst.DATABEAN_GET_VALUE);
					if (JKKStrConst.CD00874_AUTO.equals(dchskmstAddOptyCd))
					{
						hanyoTrgtMap.put("dchskmst_fin_sbt_cd", JKKStrConst.CD00809_050);  // 050:手動(取消)
					}
					else if (ADD_OPTY_CD_MANUAL.equals(dchskmstAddOptyCd))
					{
						hanyoTrgtMap.put("dchskmst_fin_sbt_cd", JKKStrConst.CD00809_040);  // 040:取消(訂正)
					}
				}
			}

			// 対象契約識別コード
			childMap.put("tg_kei_skbt_cd", JKKStrConst.CD00804_SVC_KEI);
			// 設定登録年月日
			childMap.put("set_add_ymd", opeDate);
			// データ抽出項目設定対象契約適用開始年月日
			childMap.put("dchskmst_tg_kei_tstaymd", opeDate);
			// データ抽出項目設定対象契約適用終了年月日
			childMap.put("dchskmst_tg_kei_tendymd", END_YMD);
			// サービスコード ← サービスコード
			childMap.put("svc_cd", subBean.sendMessageString(KKW00101SFConst.SVC_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金グループコード ← 料金グループコード
			childMap.put("prc_grp_cd", subBean.sendMessageString(KKW00101SFConst.PRC_GRP_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金コースコード ← 料金コースコード
			childMap.put("pcrs_cd", subBean.sendMessageString(KKW00101SFConst.PCRS_CD_21, X31CWebConst.DATABEAN_GET_VALUE));
			// 料金プランコード ← 料金プランコード
			childMap.put("pplan_cd", subBean.sendMessageString(KKW00101SFConst.PPLAN_CD_21, X31CWebConst.DATABEAN_GET_VALUE));

			if (!addCtrlList.contains(dchskmCd))
			{
				addCtrlList.add(dchskmCd);
			}
		}

		for (String key : addCtrlList)
		{
			dataList.add(setAddWribMap.get(key));
		}

		parentMap.put("hanyo_trgt_list", dataList);
	}
	
	/**
	 * 割引整合マップを設定します。
	 * @param bean dataBean
	 * @param parentMap 割引整合マップ格納先マップ
	 */
	@SuppressWarnings("unchecked")
	private void setWribSeigoMap(X31SDataBeanAccess bean, HashMap<String, Object> parentMap)
	{
		HashMap<String, HashMap<String, Object>> wribSeigoMap = new HashMap<String, HashMap<String, Object>>();
		X31SDataBeanAccessArray beanArray = bean.getDataBeanArray(KKW00101SFConst.SVC_KEI_SVC_KEI_UCWK_INFO);
		X31SDataBeanAccess childBean = null;
		String svcCd = null;
		String opSvcCd = null;
		String sbopSvcCd = null;
		String kktkSvcCd = null;
		String kkopSvcCd = null;
		String pcrsCd = null;
		String svcKindCd = null;
		String prcGrpCd = null;
		String pplanCd = null;
		String kktkSbtCd = null;
		WRIB_TYPE wribType = WRIB_TYPE.NONE;
		HashMap<String, Object> svcMap = null;
		HashMap<String, String> childMap = null;
		ArrayList<HashMap<String, String>> childList = null;
		
		for(int i = 0; i < beanArray.getCount(); i++)
		{
			childBean = beanArray.getDataBean(i);
			svcCd = childBean.sendMessageString(KKW00101SFConst.SVC_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			opSvcCd = childBean.sendMessageString(KKW00101SFConst.OP_SVC_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			sbopSvcCd = childBean.sendMessageString(KKW00101SFConst.SBOP_SVC_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			kktkSvcCd = childBean.sendMessageString(KKW00101SFConst.KKTK_SVC_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			kkopSvcCd = childBean.sendMessageString(KKW00101SFConst.KKOP_SVC_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			pcrsCd = childBean.sendMessageString(KKW00101SFConst.PCRS_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			
			// 割引タイプを求める。
			wribType = JKKWebCommon.getWribType(svcCd, opSvcCd, sbopSvcCd, kktkSvcCd, kkopSvcCd, pcrsCd);
			
			// 対象外の場合は次の要素を処理する。
			if(WRIB_TYPE.NONE.equals(wribType))
			{
				continue;
			}
			
			prcGrpCd = childBean.sendMessageString(KKW00101SFConst.PRC_GRP_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			pplanCd = childBean.sendMessageString(KKW00101SFConst.PPLAN_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			svcKindCd = childBean.sendMessageString(KKW00101SFConst.SVC_KIND_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			kktkSbtCd = childBean.sendMessageString(KKW00101SFConst.KKTK_SBT_CD_12, X31CWebConst.DATABEAN_GET_VALUE);
			svcMap = wribSeigoMap.get(svcKindCd);
			
			if(null == svcMap)
			{
				svcMap = new HashMap<String, Object>();
				svcMap.put("op_list", new ArrayList<HashMap<String, String>>());
				svcMap.put("sbop_list", new ArrayList<HashMap<String, String>>());
				svcMap.put("kktk_list", new ArrayList<HashMap<String, String>>());
				svcMap.put("kkop_list", new ArrayList<HashMap<String, String>>());
				svcMap.put("svc_kei_ucwk_list", new ArrayList<HashMap<String, String>>());
				wribSeigoMap.put(svcKindCd, svcMap);
			}
			
			// 割引タイプ単位で各値を設定する
			if(WRIB_TYPE.SVC_KEI.equals(wribType))
			{
				svcMap.put("svc_cd", svcCd);		// サービスコード
				svcMap.put("prc_grp_cd", prcGrpCd);	// 料金グループコード
				svcMap.put("pcrs_cd", pcrsCd);		// 料金コースコード
				svcMap.put("pplan_cd", pplanCd);	// 料金プランコード
			}
			else if(WRIB_TYPE.OP_SVC_KEI.equals(wribType))
			{
				childMap = new HashMap<String, String>();
				childMap.put("op_svc_cd", opSvcCd);	// オプションサービスコード
				childMap.put("pcrs_cd", pcrsCd);	// 料金コースコード
				childMap.put("pplan_cd", pplanCd);	// 料金プランコード
				
				childList = (ArrayList<HashMap<String, String>>)svcMap.get("op_list");
				childList.add(childMap);
			}
			else if(WRIB_TYPE.SBOP_SVC_KEI.equals(wribType))
			{
				childMap = new HashMap<String, String>();
				childMap.put("sbop_svc_cd", sbopSvcCd);	// サブオプションサービスコード
				childMap.put("pcrs_cd", pcrsCd);		// 料金コースコード
				childMap.put("pplan_cd", pplanCd);		// 料金プランコード
				
				childList = (ArrayList<HashMap<String, String>>)svcMap.get("sbop_list");
				childList.add(childMap);
			}
			else if(WRIB_TYPE.KKTK_SVC_KEI.equals(wribType))
			{
				childMap = new HashMap<String, String>();
				childMap.put("kktk_svc_cd", kktkSvcCd);	// 機器提供サービスコード
				childMap.put("pcrs_cd", pcrsCd);		// 料金コースコード
				childMap.put("pplan_cd", pplanCd);		// 料金プランコード
				childMap.put("kktk_sbt_cd", kktkSbtCd);	// 機器提供種別コード
				
				childList = (ArrayList<HashMap<String, String>>)svcMap.get("kktk_list");
				childList.add(childMap);
			}
			else if(WRIB_TYPE.KKOP_SVC_KEI.equals(wribType))
			{
				childMap = new HashMap<String, String>();
				childMap.put("kkop_svc_cd", kkopSvcCd);	// 機器オプションサービスコード
				childMap.put("pcrs_cd", pcrsCd);		// 料金コースコード
				childMap.put("pplan_cd", pplanCd);		// 料金プランコード
				
				childList = (ArrayList<HashMap<String, String>>)svcMap.get("kkop_list");
				childList.add(childMap);
			}
			else
			{
				childMap = new HashMap<String, String>();
				childMap.put("pcrs_cd", pcrsCd);	// 料金コースコード
				childMap.put("pplan_cd", pplanCd);	// 料金プランコード
				
				childList = (ArrayList<HashMap<String, String>>)svcMap.get("svc_kei_ucwk_list");
				childList.add(childMap);
			}
		}
		
		parentMap.put("wrib_seigo_map", wribSeigoMap);
	}
	
	/**
	 * 一時金設定変更の上りマッピング。
	 * @param bean 申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param mskmInfoMap 初回照会マップ
	 * @param svcKeiUpdFlgs 制御マップ
	 * @return 出力先マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008032CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			HashMap mskmInfoMap,
			HashMap<String, Boolean> svcKeiUpdFlgs)
	{
		if (null == bean)
		{
			return null;
		}
		
		if (1 != bean.length)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList<Object> delIcjknSetteList = new ArrayList <Object>();

		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String ido_div      = (MSKM_SBT_CD_SHINKI.equals(mskmFlg))?(IDO_DIV_NEW):(IDO_DIV_ADD);

		parentMap.put("ido_div", ido_div);
		parentMap.put("del_icjkn_sette_list", delIcjknSetteList);

		// 共通情報のマッピング
		parentMap.put("func_code", JPCModelConstant.FUNC_CD_1);

		// 各サービス単位(ネット、電話、テレビ、モバイル)でマッピングを呼び出す
		if (!svcKeiUpdFlgs.get(IS_NET_CANCEL))
		{
			setSubKKSV008039CC(delIcjknSetteList, mskmInfoMap, IS_NET_ICJKN_UPDATE,    svcKeiUpdFlgs, "KKSV007913CC");
		}
		if (!svcKeiUpdFlgs.get(IS_TEL_CANCEL))
		{
			setSubKKSV008039CC(delIcjknSetteList, mskmInfoMap, IS_TEL_ICJKN_UPDATE,    svcKeiUpdFlgs, "KKSV007914CC");
		}
		if (!svcKeiUpdFlgs.get(IS_TV_CANCEL))
		{
			setSubKKSV008039CC(delIcjknSetteList, mskmInfoMap, IS_TV_KNYKN_UPDATE,     svcKeiUpdFlgs, "KKSV007915CC");
		}
		if (!svcKeiUpdFlgs.get(IS_MOBILE_CANCEL))
		{
			setSubKKSV008039CC(delIcjknSetteList, mskmInfoMap, IS_MOBILE_ICJKN_UPDATE, svcKeiUpdFlgs, "KKSV007916CC");
		}

		// 追加申込で別回線以外の場合
		if (MSKM_FLG_TSUIKA.equals(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE))
				&& !RIYO_KAISEN_OTHER.equals(bean[0].sendMessageString(KKW00101SFConst.RIYO_KAISEN, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// サービス契約更新制御マップ取得
			HashMap<String, Boolean> svcKeiCtrMap = JKKKeiNewCmnLogicUtil.getSvcKeiUpdCtrMap(bean[0]);

			// 同一回線のネット
			if (!svcKeiCtrMap.get(IS_NET_ADD) && !svcKeiCtrMap.get(IS_NET_UPDATE) && !svcKeiCtrMap.get(IS_NET_CANCEL))
			{
				setSameKisnShokaiIcjknSette((HashMap)mskmInfoMap.get("KKSV007905SC"), SVC_KEI_TYPE_NET, parentMap);
			}
			// 同一回線の電話
			if (!svcKeiCtrMap.get(IS_TEL_ADD) && !svcKeiCtrMap.get(IS_TEL_UPDATE) && !svcKeiCtrMap.get(IS_TEL_CANCEL))
			{
				setSameKisnShokaiIcjknSette((HashMap)mskmInfoMap.get("KKSV007905SC"), SVC_KEI_TYPE_TEL, parentMap);
			}
			// 同一回線のテレビ
			if (!svcKeiCtrMap.get(IS_TV_ADD) && !svcKeiCtrMap.get(IS_TV_UPDATE) && !svcKeiCtrMap.get(IS_TV_CANCEL))
			{
				setSameKisnShokaiIcjknSette((HashMap)mskmInfoMap.get("KKSV007905SC"), SVC_KEI_TYPE_TV, parentMap);
			}
		}

		outputMap.put("KKSV008032CC", parentMap);

		return outputMap;
	}

	/**
	 * 一時金設定変更で同一回線用一時金設定一覧照会の設定。
	 * @param sameKisnMap 同一利用場所サービス契約一覧照会マップ
	 * @param svcKeiType サービス契約の種類
	 * @param icjknSetteChgMap 一時金設定変更マップ
	 */
	@SuppressWarnings("unchecked")
	private void setSameKisnShokaiIcjknSette(
			HashMap sameKisnMap,
			String svcKeiType,
			HashMap icjknSetteChgMap)
	{
		// サービス契約マップ取得
		HashMap svcKeiMap = JKKWebCommon.getSvcKeiMapFromSameKisnShokai(svcKeiType, sameKisnMap, JKKStrConst.CD00037_SHOSA_ZUMI);

		if (svcKeiMap == null)
		{
			return;
		}

		String svcTypCd = "";
		ArrayList<HashMap> sameKisnShokaiIcjknSetteList = (ArrayList<HashMap>)icjknSetteChgMap.get("same_kisn_shokai_icjkn_sette_list");
		if (sameKisnShokaiIcjknSetteList == null)
		{
			sameKisnShokaiIcjknSetteList = new ArrayList<HashMap>();
			icjknSetteChgMap.put("same_kisn_shokai_icjkn_sette_list", sameKisnShokaiIcjknSetteList);
		}
		
		HashMap<String, String> sameKisnShokaiIcjknSetteMap = new HashMap<String, String>();

		if (SVC_KEI_TYPE_NET.equals(svcKeiType))
		{
			svcTypCd = JKKStrConst.CD00684_NET;
		}
		else if (SVC_KEI_TYPE_TEL.equals(svcKeiType))
		{
			svcTypCd = JKKStrConst.CD00684_TEL;
		}
		else if (SVC_KEI_TYPE_TV.equals(svcKeiType))
		{
			svcTypCd = JKKStrConst.CD00684_TV;
		}

		// サービス種類コード
		sameKisnShokaiIcjknSetteMap.put("svc_typ_cd", svcTypCd);
		// 申込明細番号（変更用）
		sameKisnShokaiIcjknSetteMap.put("upd_mskm_dtl_no", (String)svcKeiMap.get("mskm_dtl_no"));
		// ＫＥＹ＿サービス契約番号
		sameKisnShokaiIcjknSetteMap.put("key_svc_kei_no", (String)svcKeiMap.get("svc_kei_no"));

		sameKisnShokaiIcjknSetteList.add(sameKisnShokaiIcjknSetteMap);
	}

	/**
	 * 上りマッピングをする
	 * @param viewLogic ビューロジック
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param mskmInfoMap 申込情報マップ
	 * @param svc_kei_upd_flgs サービス契約更新制御フラグ
	 * @return 出力先マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008012CC(JCCWebBusinessLogic viewLogic, HashMap outputMap, String func_code, HashMap mskmInfoMap)
	{
		X31SDataBeanAccess      bean      = viewLogic.getServiceFormBean(); // dataBean
		HashMap<String, Object> parentMap = new HashMap<String, Object>(); // 上り情報格納先
		
		//############################
		//## 他申込審査リセット要否 ##（回線場所に紐付いているものが対象）
		//############################
		
		if (bean.sendMessageBoolean(KKW00101SFConst.EOH_NET_KIKEI_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				|| bean.sendMessageBoolean(KKW00101SFConst.EOH_TEL_KIKEI_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				|| bean.sendMessageBoolean(KKW00101SFConst.EOH_TV_KIKEI_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			if (USE_PLACE_SCREEN_FLG_CGPSB.equals(bean.sendMessageString(KKW00101SFConst.KAISEN_PLACE_SCREEN_FLG, X31CWebConst.DATABEAN_GET_VALUE)))
			{
				if ((JKKWebCommon.isMskmType(bean, IS_JDG_YO_MSKM_TYPE_HOME, null)
					|| JKKWebCommon.isMskmType(bean, IS_JDG_YO_MSKM_TYPE_MEZON, null))
						&& !JKKWebCommon.isAreaDiff(viewLogic, mskmInfoMap))
				{
					// 既契約ネット、電話、テレビがあり、利用場所回線フラグ 変更可能で、ホームまたはメゾン、そのうえで利用場所に差異あり。
					parentMap.put(JKKStrConst.TA_MSKM_JDG_SBT_CDS_NAME, "13"); // エリアチェックのみを対象
				}
			}
		}
		
		parentMap.put("func_code", func_code);
		
		parentMap.put("jimskm_no", bean.sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE));
		
		outputMap.put("KKSV008012CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * eo光電話サービスで選択されているオプションのオプションサービスコードリストを取得します。
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @return オプションサービスコードリスト
	 */
	public static ArrayList<String> getEohTelAddOpSvcCdList(X31SDataBeanAccess bean, String telNoJun)
	{
		ArrayList<String> opSvcCdList = new ArrayList<String>();

		// 発信者番号通知
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_HTB_TCHI_UM,
				KKW00101SFConst.TEL2_HTB_TCHI_UM))
		{
			opSvcCdList.add(JKKStrConst.OP_SVC_CD_TELNO_TCHI);
		}

		// 発信者番号表示
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_HTB_TCHI,
						KKW00101SFConst.TEL2_OPT_HTB_TCHI))
		{
			opSvcCdList.add(JKKStrConst.OP_SVC_CD_HASINSHA_DSP);
		}
		
		// ｅｏ光電話パック３
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_3,
					KKW00101SFConst.TEL2_OPT_EOHTL_PACK_3))
		{
			opSvcCdList.addAll(Arrays.asList(JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_3)));
		}
		
		// ｅｏ光電話パック７
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			opSvcCdList.addAll(Arrays.asList(JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_7)));
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			opSvcCdList.addAll(Arrays.asList(JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_ANSN_TEL_PACK)));
		}
		// ANK-3754-00-00 ADD END
		return opSvcCdList;
	}
	
	/**
	 * eo光電話サービスで選択されているサブオプションのサブオプションサービスコードリストを取得します。
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @return サブオプションサービスコードリスト
	 */
	public static ArrayList<String> getEohTelAddSbopSvcCdList(X31SDataBeanAccess bean, String telNoJun)
	{
		ArrayList<String> sbopSvcCdList = new ArrayList<String>();

		// 非通知拒否
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_HTCHI_KYOHI,
				KKW00101SFConst.TEL2_OPT_HTCHI_KYOHI))
		{
			sbopSvcCdList.add(JKKStrConst.CD00137_HITCHI_KYOHI);
		}
		
		// ｅｏ光電話パック７
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			sbopSvcCdList.addAll(Arrays.asList(JKKWebCommon.getSbopSvcCdEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_7)));
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			sbopSvcCdList.addAll(Arrays.asList(JKKWebCommon.getSbopSvcCdEohtlOpPack(JKKStrConst.CD00138_ANSN_TEL_PACK)));
		}
		// ANK-3754-00-00 ADD END
		return sbopSvcCdList;
	}
	
	/**
	 * データBeanのeo光電話サービスのBoolean型項目の値を取得します。
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param tel1ItemNm Bean項目名称(1番号目用)
	 * @param tel2ItemNm Bean項目名称(2番号目用)
	 * @return Bean項目の値
	 */
	public static Boolean getEohTelBeanBooleanVal(X31SDataBeanAccess bean, String telNoJun, String tel1ItemNm, String tel2ItemNm)
	{
		if (TEL_ONE.equals(telNoJun))
		{
			return bean.sendMessageBoolean(tel1ItemNm, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else if (TEL_TWO.equals(telNoJun))
		{
			return bean.sendMessageBoolean(tel2ItemNm, X31CWebConst.DATABEAN_GET_VALUE);
		}
		return null;
	}
	
	/**
	 * データBeanのeo光電話サービスのString型項目の値を取得します。
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param tel1ItemNm Bean項目名称(1番号目用)
	 * @param tel2ItemNm Bean項目名称(2番号目用)
	 * @return String項目の値
	 */
	public static String getEohTelBeanStringVal(X31SDataBeanAccess bean, String telNoJun, String tel1ItemNm, String tel2ItemNm)
	{
		if (TEL_ONE.equals(telNoJun))
		{
			return bean.sendMessageString(tel1ItemNm, X31CWebConst.DATABEAN_GET_VALUE);
		}
		else if (TEL_TWO.equals(telNoJun))
		{
			return bean.sendMessageString(tel2ItemNm, X31CWebConst.DATABEAN_GET_VALUE);
		}
		return null;
	}
	
	/** eo光電話（サブ）オプションの登録・キャンセルのステータス定義 */
	private static enum EOHTL_OPT_ACT
	{
		ADD,
		DEL
	}
	
	/**
	 * eo光電話サービスのキャンセル対象オプションサービスコードリストを取得します。
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return キャンセル対象オプションサービスコードリスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<String> getEohTelCnclOpSvcCdListForUpd(X31SDataBeanAccess bean, String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> opSvcCdList = new ArrayList<String>();
		HashMap<String, EOHTL_OPT_ACT> opSvcCdActMap = new HashMap<String, EOHTL_OPT_ACT>();
		
		// 発信者番号通知
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_HTB_TCHI_UM,
				KKW00101SFConst.TEL2_HTB_TCHI_UM))
		{
			opSvcCdActMap.put(JKKStrConst.OP_SVC_CD_TELNO_TCHI, EOHTL_OPT_ACT.ADD);
		}
		else
		{
			opSvcCdActMap.put(JKKStrConst.OP_SVC_CD_TELNO_TCHI, EOHTL_OPT_ACT.DEL);
		}
		
		// 発信者番号表示が選択
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_HTB_TCHI,
				KKW00101SFConst.TEL2_OPT_HTB_TCHI))
		{
			opSvcCdActMap.put(JKKStrConst.OP_SVC_CD_HASINSHA_DSP, EOHTL_OPT_ACT.ADD);
		}
		else
		{
			opSvcCdActMap.put(JKKStrConst.OP_SVC_CD_HASINSHA_DSP, EOHTL_OPT_ACT.DEL);
		}
		
		// ｅｏ光電話パック３
		String[] pack3OpSvcCdList = JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_3);
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_3,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_3))
		{
			for (String opSvcCd : pack3OpSvcCdList)
			{
				opSvcCdActMap.put(opSvcCd, EOHTL_OPT_ACT.ADD);
			}
		}
		else
		{
			// 照会データにｅｏ光電話パック３あり
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_3, telNoJun, svcKeiMap))
			{
				for (String opSvcCd : pack3OpSvcCdList)
				{
					if (null == opSvcCdActMap.get(opSvcCd) || !EOHTL_OPT_ACT.ADD.equals(opSvcCdActMap.get(opSvcCd)))
					{
						opSvcCdActMap.put(opSvcCd, EOHTL_OPT_ACT.DEL);
					}
				}
			}
		}
		
		// ｅｏ光電話パック７
		String[] pack7OpSvcCdList = JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_7);
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			for (String opSvcCd : pack7OpSvcCdList)
			{
				opSvcCdActMap.put(opSvcCd, EOHTL_OPT_ACT.ADD);
			}
		}
		else
		{
			// 照会データにｅｏ光電話パック７あり
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_7, telNoJun, svcKeiMap))
			{
				for (String opSvcCd : pack7OpSvcCdList)
				{
					if (null == opSvcCdActMap.get(opSvcCd) || !EOHTL_OPT_ACT.ADD.equals(opSvcCdActMap.get(opSvcCd)))
					{
						opSvcCdActMap.put(opSvcCd, EOHTL_OPT_ACT.DEL);
					}
				}
			}
		}
		
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		String[] ansnOpSvcCdList = JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_ANSN_TEL_PACK);
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			for (String opSvcCd : ansnOpSvcCdList)
			{
				opSvcCdActMap.put(opSvcCd, EOHTL_OPT_ACT.ADD);
			}
		}
		else
		{
			// 照会データにあんしん電話パックあり
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_ANSN_TEL_PACK, telNoJun, svcKeiMap))
			{
				for (String opSvcCd : ansnOpSvcCdList)
				{
					if (null == opSvcCdActMap.get(opSvcCd) || !EOHTL_OPT_ACT.ADD.equals(opSvcCdActMap.get(opSvcCd)))
					{
						opSvcCdActMap.put(opSvcCd, EOHTL_OPT_ACT.DEL);
					}
				}
			}
		}
		// ANK-3754-00-00 ADD END
		
		// 照会情報と突合せを行い、キャンセルする対象を確定する。
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		if (null != opSvcKeiList)
		{
			for (HashMap<String, Object> opSvcKeiMap : opSvcKeiList)
			{
				if (!telNoJun.equals(opSvcKeiMap.get("telIndex").toString()))
				{
					continue;
				}
				
				// マップにオプションサービスコードが存在し、ステータスがキャンセルのもののみをキャンセル対象とする。
				String opSvcCd = (String)opSvcKeiMap.get("kk0351_op_svc_cd");
				if (EOHTL_OPT_ACT.DEL.equals(opSvcCdActMap.get(opSvcCd)))
				{
					opSvcCdList.add(opSvcCd);
				}
			}
		}
		
		return opSvcCdList;
	}
	
	/**
	 * eo光電話サービスの登録対象オプションサービスコードリストを取得します。(更新用)
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return 登録対象オプションサービスコードリスト
	 */
	public static ArrayList<String> getEohTelAddOpSvcCdListForUpd(X31SDataBeanAccess bean, String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> opSvcCdList = new ArrayList<String>();
		String opSvcCdKey = "kk0351_op_svc_cd";

		// 発信者番号通知
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_HTB_TCHI_UM,
				KKW00101SFConst.TEL2_HTB_TCHI_UM))
		{
			// 照会データに発信者番号通知なし
			if (!isExistOpSvcKei(telNoJun, JKKStrConst.OP_SVC_CD_TELNO_TCHI, svcKeiMap, opSvcCdKey))
			{
				opSvcCdList.add(JKKStrConst.OP_SVC_CD_TELNO_TCHI);
			}
		}

		// 発信者番号表示
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_HTB_TCHI,
						KKW00101SFConst.TEL2_OPT_HTB_TCHI))
		{
			// 照会データに発信者番号表示なし
			if (!isExistOpSvcKei(telNoJun, JKKStrConst.OP_SVC_CD_HASINSHA_DSP, svcKeiMap, opSvcCdKey))
			{
				opSvcCdList.add(JKKStrConst.OP_SVC_CD_HASINSHA_DSP);
			}
		}
		
		// ｅｏ光電話パック３
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_3,
					KKW00101SFConst.TEL2_OPT_EOHTL_PACK_3))
		{
			// 照会データにｅｏ光電話パック３なし
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_3, telNoJun, svcKeiMap))
			{
				String[] pack3OpSvcCdList = JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_3);
				for (String opSvcCd : pack3OpSvcCdList)
				{
					if (!isExistOpSvcKei(telNoJun, opSvcCd, svcKeiMap, opSvcCdKey))
					{
						opSvcCdList.add(opSvcCd);
					}
				}
			}
		}
		
		// ｅｏ光電話パック７
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			// 照会データにｅｏ光電話パック７なし
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_7, telNoJun, svcKeiMap))
			{
				String[] pack7OpSvcCdList = JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_7);
				for (String opSvcCd : pack7OpSvcCdList)
				{
					if (!isExistOpSvcKei(telNoJun, opSvcCd, svcKeiMap, opSvcCdKey))
					{
						opSvcCdList.add(opSvcCd);
					}
				}
			}
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			// 照会データにあんしん電話パックなし
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_ANSN_TEL_PACK, telNoJun, svcKeiMap))
			{
				String[] ansnOpSvcCdList = JKKWebCommon.getOpSvcCdListEohtlOpPack(JKKStrConst.CD00138_ANSN_TEL_PACK);
				for (String opSvcCd : ansnOpSvcCdList)
				{
					if (!isExistOpSvcKei(telNoJun, opSvcCd, svcKeiMap, opSvcCdKey))
					{
						opSvcCdList.add(opSvcCd);
					}
				}
			}
		}
		// ANK-3754-00-00 ADD END
		
		return opSvcCdList;
	}
	
	/**
	 * eo光電話サービスのキャンセル対象サブオプションサービスコードリストを取得します。(更新用)
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return キャンセル対象サブオプションサービスコードリスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<String> getTelCnclSbopSvcCdListForUpd(X31SDataBeanAccess bean, String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> sbopSvcCdList = new ArrayList<String>();
		HashMap<String, EOHTL_OPT_ACT> sbopSvcCdActMap = new HashMap<String, EOHTL_OPT_ACT>();
		
		// 非通知拒否
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_HTCHI_KYOHI,
				KKW00101SFConst.TEL2_OPT_HTCHI_KYOHI))
		{
			sbopSvcCdActMap.put(JKKStrConst.CD00137_HITCHI_KYOHI, EOHTL_OPT_ACT.ADD);
		}
		else
		{
			sbopSvcCdActMap.put(JKKStrConst.CD00137_HITCHI_KYOHI, EOHTL_OPT_ACT.DEL);
		}
		
		// ｅｏ光電話パック７
		String[] pack7SbopSvcCdList = JKKWebCommon.getSbopSvcCdEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_7);
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			for (String sbopSvcCd : pack7SbopSvcCdList)
			{
				sbopSvcCdActMap.put(sbopSvcCd, EOHTL_OPT_ACT.ADD);
			}
		}
		else
		{
			// 照会データにｅｏ光電話パック７あり
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_7, telNoJun, svcKeiMap))
			{
				for (String sbopSvcCd : pack7SbopSvcCdList)
				{
					if (null == sbopSvcCdActMap.get(sbopSvcCd) || !EOHTL_OPT_ACT.ADD.equals(sbopSvcCdActMap.get(sbopSvcCd)))
					{
						sbopSvcCdActMap.put(sbopSvcCd, EOHTL_OPT_ACT.DEL);
					}
				}
			}
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		String[] ansnSbopSvcCdList = JKKWebCommon.getSbopSvcCdEohtlOpPack(JKKStrConst.CD00138_ANSN_TEL_PACK);
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			for (String sbopSvcCd : ansnSbopSvcCdList)
			{
				sbopSvcCdActMap.put(sbopSvcCd, EOHTL_OPT_ACT.ADD);
			}
		}
		else
		{
			// 照会データにあんしん電話パックあり
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_ANSN_TEL_PACK, telNoJun, svcKeiMap))
			{
				for (String sbopSvcCd : ansnSbopSvcCdList)
				{
					if (null == sbopSvcCdActMap.get(sbopSvcCd) || !EOHTL_OPT_ACT.ADD.equals(sbopSvcCdActMap.get(sbopSvcCd)))
					{
						sbopSvcCdActMap.put(sbopSvcCd, EOHTL_OPT_ACT.DEL);
					}
				}
			}
		}
		// ANK-3754-00-00 ADD END
		// 照会情報と突合せを行い、キャンセルする対象を確定する。
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		if (null != opSvcKeiList)
		{
			for (HashMap<String, Object> opSvcKeiMap : opSvcKeiList)
			{
				if (!telNoJun.equals(opSvcKeiMap.get("telIndex").toString()))
				{
					continue;
				}
				
				// マップにサブオプションサービスコードが存在し、ステータスがキャンセルのもののみをキャンセル対象とする。
				String sbopSvcCd = (String)opSvcKeiMap.get("kk0401_sbop_svc_cd");
				if (null != sbopSvcCd && !"".equals(sbopSvcCd) && EOHTL_OPT_ACT.DEL.equals(sbopSvcCdActMap.get(sbopSvcCd)))
				{
					sbopSvcCdList.add(sbopSvcCd);
				}
			}
		}
		
		return sbopSvcCdList;
	}
	
	/**
	 * eo光電話サービスの登録対象サブオプションサービスコードリストを取得します。(更新用)
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return 登録対象サブオプションサービスコードリスト
	 */
	public static ArrayList<String> getTelAddSbopSvcCdListForUpd(X31SDataBeanAccess bean, String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> sbopSvcCdList = new ArrayList<String>();
		String sbopSvcCdKey = "kk0401_sbop_svc_cd";
		
		// 非通知拒否
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_HTCHI_KYOHI,
				KKW00101SFConst.TEL2_OPT_HTCHI_KYOHI))
		{
			// 照会データに非通知拒否なし
			if (!isExistOpSvcKei(telNoJun, JKKStrConst.CD00137_HITCHI_KYOHI, svcKeiMap, "kk0401_sbop_svc_cd"))
			{
				sbopSvcCdList.add(JKKStrConst.CD00137_HITCHI_KYOHI);
			}
		}
		
		// ｅｏ光電話パック７
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			// 照会データにｅｏ光電話パック７なし
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_7, telNoJun, svcKeiMap))
			{
				String[] pack7sbopCdList = JKKWebCommon.getSbopSvcCdEohtlOpPack(JKKStrConst.CD00138_EOHTL_PACK_7);
				for (String sbopSvcCd : pack7sbopCdList)
				{
					if (!isExistOpSvcKei(telNoJun, sbopSvcCd, svcKeiMap, sbopSvcCdKey))
					{
						sbopSvcCdList.add(sbopSvcCd);
					}
				}
			}
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			// 照会データにあんしん電話パックなし
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_ANSN_TEL_PACK, telNoJun, svcKeiMap))
			{
				String[] ansnsbopCdList = JKKWebCommon.getSbopSvcCdEohtlOpPack(JKKStrConst.CD00138_ANSN_TEL_PACK);
				for (String sbopSvcCd : ansnsbopCdList)
				{
					if (!isExistOpSvcKei(telNoJun, sbopSvcCd, svcKeiMap, sbopSvcCdKey))
					{
						sbopSvcCdList.add(sbopSvcCd);
					}
				}
			}
		}
		// ANK-3754-00-00 ADD END
		return sbopSvcCdList;
	}
	
	/**
	 * 照会データからeo光電話サービスの全オプションサービスコードリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return キャンセル対象オプションサービスコードリスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<String> getAllEohtlOpSvcCdList(String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> opSvcCdList = new ArrayList<String>();
		
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		
		for (HashMap<String, Object> opSvcKeiMap : opSvcKeiList)
		{
			// 対象以外の電話番号順のデータはスキップ
			if (!telNoJun.equals(((Integer)opSvcKeiMap.get("telIndex")).toString()))
			{
				continue;
			}
			
			opSvcCdList.add((String)opSvcKeiMap.get("kk0351_op_svc_cd"));
		}
		
		return opSvcCdList;
	}
	
	/**
	 * 照会データからeo光電話サービスの全サブオプションサービスコードリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return キャンセル対象サブオプションサービスコードリスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<String> getAllEohtlSbopSvcCdList(String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> sbopSvcCdList = new ArrayList<String>();
		
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		
		for (HashMap<String, Object> opSvcKeiMap : opSvcKeiList)
		{
			// 対象以外の電話番号順のデータはスキップ
			if (!telNoJun.equals(((Integer)opSvcKeiMap.get("telIndex")).toString()))
			{
				continue;
			}
			
			// サブオプションサービスコードのないデータはスキップ
			String sbopSvcCd = (String)opSvcKeiMap.get("kk0401_sbop_svc_cd");
			if (null == sbopSvcCd || "".equals(sbopSvcCd))
			{
				continue;
			}
			
			sbopSvcCdList.add(sbopSvcCd);
		}
		
		return sbopSvcCdList;
	}
	
	/**
	 * 検索対象割引サービス契約リストに指定の割引サービスコードのデータが存在するか判定します。
	 * <br/>
	 * @param chkWribSvcCd 検索割引サービスコード
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return true : 存在する false : 存在しない
	 */
	@SuppressWarnings("unchecked")
	private static boolean isExistEohtlPackWrib(String chkWribSvcCd, String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<HashMap<String, Object>> wribSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("kk0451_ekk0451b030cbsmsg1list");
		if (null != wribSvcKeiList)
		{
			for (HashMap<String, Object> wribSvcKeiMap : wribSvcKeiList)
			{
				if (chkWribSvcCd.equals((String)wribSvcKeiMap.get("kk0451_wrib_svc_cd"))
						&& telNoJun.equals((String)wribSvcKeiMap.get("telIndex")))
				{
					return true;
				}
			}
		}
		return false;
	}
	
	/**
	 * 検索対象オプションサービス契約リストに指定の(サブ)オプションサービスコードのデータが存在するか判定します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param chkSvcCd 検索(サブ)オプションサービスコード
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @param chkSvcCdKey 検索対象(サブ)オプションサービスコードキー名称
	 * @return true : 存在する false : 存在しない
	 */
	@SuppressWarnings("unchecked")
	private static boolean isExistOpSvcKei(String telNoJun, String chkSvcCd, HashMap<String, Object> svcKeiMap, 	String chkSvcCdKey)
	{
		ArrayList<HashMap<String, Object>> opSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("op_svc_kei_list");
		if (null == opSvcKeiList)
		{
			return false;
		}
		
		for (HashMap<String, Object> opSvcKeiMap : opSvcKeiList)
		{
			if (telNoJun.equals(opSvcKeiMap.get("telIndex").toString())
					&& chkSvcCd.equals((String)opSvcKeiMap.get(chkSvcCdKey)))
			{
				return true;
			}
		}
		return false;
	}
	
	/**
	 * ｅｏ光電話パックの登録の割引サービスコードのリストを取得します。
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @return ｅｏ光電話パックの登録の割引サービスコードリスト
	 */
	public static ArrayList<String> getAddEohtlPackCdList(X31SDataBeanAccess bean, String telNoJun)
	{
		ArrayList<String> eohtlPackCdList = new ArrayList<String>();
		
		// ｅｏ光電話パック３
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_3,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_3))
		{
			eohtlPackCdList.add(JKKStrConst.CD00138_EOHTL_PACK_3);
		}
		
		// ｅｏ光電話パック７
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			eohtlPackCdList.add(JKKStrConst.CD00138_EOHTL_PACK_7);
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			eohtlPackCdList.add(JKKStrConst.CD00138_ANSN_TEL_PACK);
		}
		// ANK-3754-00-00 ADD END
		return eohtlPackCdList;
	}
	
	/**
	 * ｅｏ光電話パックのキャンセルの割引サービスコードのリストを取得します。(更新用)
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return ｅｏ光電話パックのキャンセルの割引サービスコードリスト
	 */
	private ArrayList<String> getCnclEohtlPackCdListForUpd(X31SDataBeanAccess bean, String telNoJun,
			HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> eohtlPackCdList = new ArrayList<String>();
		
		// ｅｏ光電話パック３
		if (!getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_3,
					KKW00101SFConst.TEL2_OPT_EOHTL_PACK_3))
		{
			// 照会データに存在する場合はキャンセルする
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_3, telNoJun, svcKeiMap))
			{
				eohtlPackCdList.add(JKKStrConst.CD00138_EOHTL_PACK_3);
			}
		}
		
		// ｅｏ光電話パック７
		if (!getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			// 照会データに存在する場合はキャンセルする
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_7, telNoJun, svcKeiMap))
			{
				eohtlPackCdList.add(JKKStrConst.CD00138_EOHTL_PACK_7);
			}
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		if (!getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			// 照会データに存在する場合はキャンセルする
			if (isExistEohtlPackWrib(JKKStrConst.CD00138_ANSN_TEL_PACK, telNoJun, svcKeiMap))
			{
				eohtlPackCdList.add(JKKStrConst.CD00138_ANSN_TEL_PACK);
			}
		}
		// ANK-3754-00-00 ADD END
		return eohtlPackCdList;
	}
	
	/**
	 * ｅｏ光電話パックの登録の割引サービスコードのリストを取得します。(更新用)
	 * <br/>
	 * @param bean データBean
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return ｅｏ光電話パックの登録の割引サービスコードリスト
	 */
	private ArrayList<String> getAddEohtlPackCdListForUpd(X31SDataBeanAccess bean, String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> eohtlPackCdList = new ArrayList<String>();
		
		// ｅｏ光電話パック３
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_3,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_3))
		{
			// 照会データに存在しない登録する
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_3, telNoJun, svcKeiMap))
			{
				eohtlPackCdList.add(JKKStrConst.CD00138_EOHTL_PACK_3);
			}
		}
		
		// ｅｏ光電話パック７
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_EOHTL_PACK_7,
				KKW00101SFConst.TEL2_OPT_EOHTL_PACK_7))
		{
			// 照会データに存在しない登録する
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_EOHTL_PACK_7, telNoJun, svcKeiMap))
			{
				eohtlPackCdList.add(JKKStrConst.CD00138_EOHTL_PACK_7);
			}
		}
		// ANK-3754-00-00 ADD START
		// あんしん電話パック
		if (getEohTelBeanBooleanVal(bean, telNoJun, KKW00101SFConst.TEL1_OPT_ANSN_TEL_PACK,
				KKW00101SFConst.TEL2_OPT_ANSN_TEL_PACK))
		{
			// 照会データに存在しない登録する
			if (!isExistEohtlPackWrib(JKKStrConst.CD00138_ANSN_TEL_PACK, telNoJun, svcKeiMap))
			{
				eohtlPackCdList.add(JKKStrConst.CD00138_ANSN_TEL_PACK);
			}
		}
		// ANK-3754-00-00 ADD END
		return eohtlPackCdList;
	}
	
	/**
	 * 照会データからeo光電話パックの全割引サービスコードリストを取得します。
	 * <br/>
	 * @param telNoJun 電話番号順
	 * @param svcKeiMap 照会サービス契約情報マップ
	 * @return キャンセル対象割引サービスコードリスト
	 */
	@SuppressWarnings("unchecked")
	public static ArrayList<String> getAllEohtlPackCdList(String telNoJun, HashMap<String, Object> svcKeiMap)
	{
		ArrayList<String> eohtlPackCdList = new ArrayList<String>();
		
		ArrayList<HashMap<String, Object>> wribSvcKeiList = (ArrayList<HashMap<String, Object>>)svcKeiMap.get("kk0451_ekk0451b030cbsmsg1list");
		if (null != wribSvcKeiList)
		{
			for (HashMap<String, Object> wribSvcKeiMap : wribSvcKeiList)
			{
				if (telNoJun.equals((String)wribSvcKeiMap.get("telIndex")))
				{
					eohtlPackCdList.add((String)wribSvcKeiMap.get("kk0451_wrib_svc_cd"));
				}
			}
		}
		
		return eohtlPackCdList;
	}
	
	/**
	 * eo光テレビ照会データからスターチャンネルセットの割引サービス契約マップを取得します。
	 * <br>
	 * @param parentMap eo光テレビ照会マップ
	 * @return スターチャンネルセットの割引サービス契約マップ
	 */
	@SuppressWarnings("unchecked")
	public static HashMap<String, Object> getStarChannelSetMap(HashMap<String, Object> parentMap)
	{
		ArrayList<HashMap<String, Object>> wribSvcKeiList = (ArrayList<HashMap<String, Object>>)parentMap.get("kk0451_EKK0451B030CBSMsg1List");
		if (null == wribSvcKeiList)
		{
			return null;
		}
		
		// 割引サービス契約リストからスターチャンネルセットを検索
		for (HashMap<String, Object> wribSvcKeiMap : wribSvcKeiList)
		{
			if (JKKStrConst.WRIB_SVC_BS_STAR_CHANNEL_SET.equals(wribSvcKeiMap.get("kk0451_wrib_svc_cd")))
			{
				return wribSvcKeiMap;
			}
		}
		
		return null;
	}

// ANK-2480-00-00 2015/07/16 ADD START
	/**
	 * サービス契約グループ設定登録の上りマッピング。
	 * @param bean 申込新規登録画面
	 * @param outputMap 出力先マップ
	 * @param mskmInfoMap 初回照会マップ
	 * @param svcKeiUpdFlgs 制御マップ
	 * @return 出力先マップ
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008041CC(
			X31SDataBeanAccess[] bean,
			HashMap outputMap,
			String funcCode)
	{
		if (null == bean)
		{
			return null;
		}
		
		if (1 != bean.length)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		outputMap.put("KKSV008041CC", parentMap);

		// 同一利用場所・eo電気のプルダウンがあるかの判定（ネットサービスの申し込みかをチェック）
		// プルダウンが出ていなければ、サービス契約グループ設定登録処理を呼び出さない
		Boolean netFlg = (Boolean)bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3210-00-00 ADD START
		Boolean telFlg = (Boolean)bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TEL_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		Boolean tvFlg = (Boolean)bean[0].sendMessageBoolean(KKW00101SFConst.EOH_TV_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		// ANK-3210-00-00 ADD END
		// ANK-3210-00-00 MOD START
//		if (netFlg == null || !netFlg)
		if ((netFlg == null || !netFlg) && (telFlg == null || !telFlg ) && (tvFlg == null || !tvFlg))
		// ANK-3210-00-00 MOD END
		{
			return outputMap;
		}
		
		// 異動区分
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		String ido_div      = (MSKM_SBT_CD_SHINKI.equals(mskmFlg))?(IDO_DIV_NEW):(IDO_DIV_ADD);

		parentMap.put("ido_div", ido_div);

		// 共通情報のマッピング
		parentMap.put("func_code", funcCode);

		X31SDataBeanAccessArray arraybean = bean[0].getDataBeanArray(KKW00101SFConst.KAISEN_SAME_PLC_EOELEC_LIST);
		X31SDataBeanAccess elcPldwnBean = arraybean.getDataBean(0);
		
		String selectedCd = elcPldwnBean.sendMessageString(KKW00101SFConst.KAISEN_SAME_PLC_EOELEC_CD, X31CWebConst.DATABEAN_GET_VALUE);
		String pldwnValue = "";
		// コードタイプコード値リストの件数
		Integer count = (Integer)elcPldwnBean.sendMessage(KKW00101SFConst.KAISEN_SAME_PLC_EOELEC_CD_LIST, X31CWebConst.DATABEAN_GET_COUNT);
		
		for (int j = 0; j < count.intValue(); j++)
		{
			if (selectedCd.equals(String.valueOf(j)))
			{
				pldwnValue = elcPldwnBean.sendMessageString(KKW00101SFConst.KAISEN_SAME_PLC_EOELEC_NM_LIST, X31CWebConst.DATABEAN_GET_VALUE, j);
				break;
			}
		}

		// ** 同一利用場所・eo電気契約のサービス契約番号
		// ** プルダウンで選択された値をセット
		parentMap.put("ITENS_EOELEC_SVKEI_NO", pldwnValue);

		return outputMap;
	}
// ANK-2480-00-00 2015/07/16 ADD END
	// ANK-3243-00-00 ADD START
	/**
	 * 上りマッピングをする
	 * @param bean　[0]：お客様情報変更
	 * @param outputMap
	 * @param addSjishoFlg
	 * @return HashMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008043CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		//契約者タイプ
		String type = bean[0].sendMessageString(KKW00101SFConst.KEISHA_TYPE_CD, X31CWebConst.DATABEAN_GET_VALUE);
		//新規登録の場合は、サービス層で設定を行う。
		String sysid = bean[0].sendMessageString(KKW00101SFConst.PARAM_SYSID, X31CWebConst.DATABEAN_GET_VALUE);
		//更新前　組織グループコード
		String beforeGrpOrgCd = bean[0].sendMessageString(KKW00101SFConst.GRP_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE);
		//更新前　組織チームコード
		String beforeTeamOrgCd = bean[0].sendMessageString(KKW00101SFConst.TEAM_ORG_CD, X31CWebConst.DATABEAN_GET_VALUE);
		//更新後　組織グループコード
		String afterGrpOrgCd = JKKWebCommon.convertCode(bean[0],
				KKW00101SFConst.GRP_ORG_CD_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		//更新後　組織チームコード
		String afterTeamOrgCd = JKKWebCommon.convertCode(bean[0],
				KKW00101SFConst.TEAM_ORG_CD_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		//自社利用の場合
		if (JCKCommonConst.CD00036_JISHA_USE.equals(type))
		{
			//更新前　組織グループコード・更新前　組織チームコードが空の場合、登録を行う
			if ((beforeGrpOrgCd == null || "".equals(beforeGrpOrgCd)) &&
					(beforeTeamOrgCd == null || "".equals(beforeTeamOrgCd)))
			{
				//登録モード
				parentMap.put("shori_div", "3");
				// SYSID → SYSID
				parentMap.put("sysid", sysid);
				// グループ組織コード → グループ組織コード
				parentMap.put("grp_org_cd", afterGrpOrgCd);
				// チーム組織コード → チーム組織コード
				parentMap.put("team_org_cd", afterTeamOrgCd);
			}
		}

		outputMap.put("KKSV008043CC", parentMap);
						
		return outputMap;
	}
	
	// ANK-3243-00-00 ADD END

	// ANK-3136-00-00 ADD START
	/**
	 * eo光ネット設備流用チェックの上りマッピングをする
	 * @param   bean      [0]：申込新規登録画面
	 * @param   outputMap 登録データ
	 * @param   func_code 機能コード
	 * @return  登録データ
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008009SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code) throws Exception
	{
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		// 設備流用（ｅｏ光ネット・ｅｏ光電話）・設備流用（ｅｏ光テレビ）のいずれかが表示されている場合
		if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE)
				|| bean[0].sendMessageBoolean(KKW00101SFConst.TV_EQUIP_RYUYO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
		{
			HashMap<String, Object> parentMap = new HashMap<String, Object>();

			// 共通情報のマッピング
			parentMap.put("func_code", func_code);

			// 設備流用（ｅｏ光ネット・ｅｏ光電話）表示フラグ
			if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// ネット・電話設備流用有無
// ANK-4468-11-00 MOD START
//				String equipRyuyoUm = JKKCommonConst.UM_M;
//				if (bean[0].sendMessageBoolean(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
//				{
//					equipRyuyoUm = JKKCommonConst.UM_U;
//				}
				String equipRyuyoUm = bean[0].sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE);
// ANK-4468-11-00 MOD END
				parentMap.put("net_equip_ryuyo_um", equipRyuyoUm);

				// ネット・電話設備流用元工事案件番号
				String ryuyoMotoKjakNo = bean[0].sendMessageString(KKW00101SFConst.NET_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE);
				parentMap.put("net_ryuyo_moto_kjak_no", ryuyoMotoKjakNo);
			}
			// 設備流用（ｅｏ光テレビ）表示フラグ
			if (bean[0].sendMessageBoolean(KKW00101SFConst.TV_EQUIP_RYUYO_DSP_FLG, X31CWebConst.DATABEAN_GET_VALUE))
			{
				// テレビ設備流用有無
				String equipRyuyoUm = JKKCommonConst.UM_M;
				if (bean[0].sendMessageBoolean(KKW00101SFConst.TV_EQUIP_RYUYO_ANKEN, X31CWebConst.DATABEAN_GET_VALUE))
				{
					equipRyuyoUm = JKKCommonConst.UM_U;
				}
				parentMap.put("tv_equip_ryuyo_um", equipRyuyoUm);

				// テレビ設備流用元工事案件番号
				String ryuyoMotoKjakNo = bean[0].sendMessageString(KKW00101SFConst.TV_EQUIP_RYUYO_MT_KJAK_NO, X31CWebConst.DATABEAN_GET_VALUE);
				parentMap.put("tv_ryuyo_moto_kjak_no", ryuyoMotoKjakNo);
			}

			// ANK-4468-11-00 ADD START
			// プラン乗換フラグ → 特記登録確認マップ.乗換シンプルフラグ
//			String plnNrkeFlg = bean[0].sendMessageString(KKW00101SFConst.PLAN_NRKEMT_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			String nrkeSimpleFlg = "0";
			String nrkemtSvkeiNo = bean[0].sendMessageString(KKW00101SFConst.NRKEMT_SVKEI_NO, X31CWebConst.DATABEAN_GET_VALUE);
//			if ("2".equals(plnNrkeFlg) || "4".equals(plnNrkeFlg)){
			if (!JKKStringUtil.isNullBlank(nrkemtSvkeiNo))
			{
				nrkeSimpleFlg = "1";
			}
			parentMap.put("nrke_simple_flg", nrkeSimpleFlg);
			// ANK-4468-11-00 ADD END

			outputMap.put("KKSV008009SC", parentMap);
		}

		return outputMap;
	}
	// ANK-3136-00-00 ADD END
	
	// ANK-3296-00-00 ADD START
	
	/**
	 * 上りマッピングをする
	 * @param bean ビューロジック
	 * @param outputMap 出力先マップ
	 * @param sousaMode 操作モード
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008018CC(X31SDataBeanAccess[] bean
									, HashMap outputMap
									, String sousaMode
									, String func_code
									)
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}
		
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		//工事費割賦契約登録処理
		if(KJHI_KAP_KEI_ADD.equals(sousaMode))
		{
			// 処理区分のマッピング
			parentMap.put("shori_div", "3");
			// 申込種別コードを基に異動区分を取得
			String idoDiv = getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 標準工事費割賦支払方法を基に割賦プランコードを取得
			String hyojnKjhiKapPayway = bean[0].sendMessageString(KKW00101SFConst.HYOJN_KJHI_KAP_PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);
		
			// 共通情報のマッピング
			parentMap.put("func_code", func_code);
			
			// サービス契約回線内訳番号
			parentMap.put("key_svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW00101SFConst.KEY_SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 工事費割賦契約登録用マッピング
			// 申込明細番号はオペレーションにて設定する。
			
			// 割賦契約ステータス
			parentMap.put("kap_kei_stat", JKKStrConst.CD01471_UK_ZM);
			// サービス契約回線内訳番号
			parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW00101SFConst.KEY_SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 異動区分
			parentMap.put("ido_div", idoDiv);
			// 割賦請求済回数
			parentMap.put("kap_seiky_zumi_cnt", KAP_SEIKY_ZUMI_CNT_SHKV);
			// 割賦請求済金額
			parentMap.put("kap_seiky_zumi_amnt", KAP_SEIKY_ZUMI_AMNT_SHKV);
			
			// 割賦プランコードと割賦支払い残回数の設定
			// ANK-3951-00-00 MOD START
//			if (JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_0.equals(hyojnKjhiKapPayway))
//			{
//				// 0(分割)の場合、割賦プランコードに「KP0140：分割」、割賦支払い残回数に「30」を設定
//				// ANK-3636-00-00 MOD START
//				//parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_BUNKATSU);
//				parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_10PER_BUNKATSU);
//				// ANK-3636-00-00 MOD END
//				// IT1-2018-0000018 MOD START
//				//parentMap.put("kap_pay_zan_cnt", JKKStrConst.KAP_PAY_ZAN_CNT_SHKV_BUNKATSU);
//				parentMap.put("kap_pay_zan_cnt", bean[0].sendMessageString(KKW00101SFConst.KAP_PAY_CNT_30, X31CWebConst.DATABEAN_GET_VALUE));
//				// IT1-2018-0000018 MOD END
//			}
//			else if (JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_1.equals(hyojnKjhiKapPayway))
//			{
//				// 1(一括)の場合、割賦プランコードに「KP0141：一括」、割賦支払い残回数に「1」を設定
//				// ANK-3636-00-00 MOD START
//				//parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_IKKATSU);
//				parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_10PER_IKKATSU);
//				// ANK-3636-00-00 MOD END
//				// IT1-2018-0000018 MOD START
//				//parentMap.put("kap_pay_zan_cnt", JKKStrConst.KAP_PAY_ZAN_CNT_SHKV_IKKATSU);
//				parentMap.put("kap_pay_zan_cnt", bean[0].sendMessageString(KKW00101SFConst.KAP_PAY_CNT_1, X31CWebConst.DATABEAN_GET_VALUE));
//				// IT1-2018-0000018 MOD END
//			}
			// 業務パラメータ一覧照会の割賦プランコードリスト
			X31SDataBeanAccessArray add_kapPayWay_List = bean[0].getDataBeanArray(KKW00101SFConst.KAP_PLAN_CD_LIST);
			// 業務パラメータ一覧照会の割賦プランコードリストを動かして、プルダウンのコード区分と、その他に分ける
			for (int j = 0; j < add_kapPayWay_List.getCount(); j++)
			{
				X31SDataBeanAccess addKapBean = add_kapPayWay_List.getDataBean(j);
				// 割賦プランコードリストから1行取得
				String addKapPayWay = addKapBean.sendMessageString(KKW00101SFConst.KAP_PLAN_CD, X31CWebConst.DATABEAN_GET_VALUE);
				// 割賦プランコードリストの値をピリオドで分断
				String[] addKapPayWayValues = addKapPayWay.split("\\.");
				if (addKapPayWayValues != null && addKapPayWayValues.length > 0)
				{
					// コード区分を取得
					String kapCdDiv = addKapPayWayValues[0];
					// 割賦プランコードリストの値をカンマ区切りで分断
					String[] addKapPlanCd = addKapPayWay.split(",");
					if(addKapPlanCd != null && addKapPlanCd.length > 1)
					{
						// 割賦プランコードを取得
						String kapCd = addKapPlanCd[1];
						// 標準工事費割賦支払方法(画面の選択値)を+1してその値がプルダウンのコード区分と一致する場合に合致する割賦プランコードを渡す
						if (kapCdDiv.equals(String.valueOf(Integer.parseInt(hyojnKjhiKapPayway) + 1)))
						{
							parentMap.put("kap_plan_cd", kapCd);
						}
					}
				}
			}
			// ANK-3951-00-00 MOD END
		}
		//工事費割賦契約更新処理
		else if(KJHI_KAP_KEI_CHG_UPD.equals(sousaMode))
		{
			// 処理区分のマッピング
			parentMap.put("shori_div", "2");
			// 標準工事費割賦支払方法を基に割賦プランコードを取得
			String hyojnKjhiKapPayway = bean[0].sendMessageString(KKW00101SFConst.HYOJN_KJHI_KAP_PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);
						
			// 共通情報のマッピング
			parentMap.put("func_code", func_code);
			
			// 工事費割賦契約登録用マッピング
			parentMap.put("kojihi_kap_kei_no", bean[0].sendMessageString(KKW00101SFConst.KJHI_KAP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));			// 工事費割賦契約番号
			parentMap.put("upd_dtm_bf", bean[0].sendMessageString(KKW00101SFConst.KJHI_KAP_KEI_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));			// 更新年月日時分秒(更新前)
			
			// 割賦プランコードと割賦支払い残回数の設定
			// ANK-3951-00-00 MOD START
//			// 割賦プランコードと割賦支払い残回数の設定
//			if (JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_0.equals(hyojnKjhiKapPayway))
//			{
//				// 0(分割)の場合、割賦プランコードに「KP0140：分割」、割賦支払い残回数に「30」を設定
//				// ANK-3636-00-00 MOD START
//				//parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_BUNKATSU);
//				parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_10PER_BUNKATSU);
//				// ANK-3636-00-00 MOD END
//				// IT1-2018-0000018 MOD START
//				//parentMap.put("kap_pay_zan_cnt", JKKStrConst.KAP_PAY_ZAN_CNT_SHKV_BUNKATSU);
//				parentMap.put("kap_pay_zan_cnt", bean[0].sendMessageString(KKW00101SFConst.KAP_PAY_CNT_30, X31CWebConst.DATABEAN_GET_VALUE));
//				// IT1-2018-0000018 MOD END
//			}
//			else if (JKKStrConst.HYOJN_KJHI_KAP_PAYWAY_1.equals(hyojnKjhiKapPayway))
//			{
//				// 1(一括)の場合、割賦プランコードに「KP0141：一括」、割賦支払い残回数に「1」を設定
//				// ANK-3636-00-00 MOD START
//				//parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_IKKATSU);
//				parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_10PER_IKKATSU);
//				// ANK-3636-00-00 MOD END
//				// IT1-2018-0000018 MOD START
//				//parentMap.put("kap_pay_zan_cnt", JKKStrConst.KAP_PAY_ZAN_CNT_SHKV_IKKATSU);
//				parentMap.put("kap_pay_zan_cnt", bean[0].sendMessageString(KKW00101SFConst.KAP_PAY_CNT_1, X31CWebConst.DATABEAN_GET_VALUE));
//				// IT1-2018-0000018 MOD END
//			}
			// 業務パラメータ一覧照会の標準工事費割賦支払方法コードリスト
			X31SDataBeanAccessArray add_kapPayWay_List = bean[0].getDataBeanArray(KKW00101SFConst.KAP_PLAN_CD_LIST);
			// 標準工事費割賦支払方法コードリストを動かして、プルダウンのコード区分と、その他に分ける
			for (int j = 0; j < add_kapPayWay_List.getCount(); j++)
			{
				X31SDataBeanAccess addKapBean = add_kapPayWay_List.getDataBean(j);
				// 標準工事費割賦支払方法コードリストから1行取得
				String addKapPayWay = addKapBean.sendMessageString(KKW00101SFConst.KAP_PLAN_CD, X31CWebConst.DATABEAN_GET_VALUE);
				// 標準工事費割賦支払方法コードリストの値をピリオドで分断
				String[] addKapPayWayValues = addKapPayWay.split("\\.");
				if(addKapPayWayValues != null && addKapPayWayValues.length > 0)
				{
					// コード区分を取得
					String kapCdDiv = addKapPayWayValues[0];
					// 標準工事費割賦支払方法コードリストの値をカンマ区切りで分断
					String[] addKapPlanCd = addKapPayWay.split(",");
					if (addKapPlanCd != null && addKapPlanCd.length  > 1)
					{
						// 割賦プランコードを取得
						String kapCd = addKapPlanCd[1];
						// 標準工事費割賦支払方法を+1してその値がプルダウンのコード区分と一致する場合にその割賦プランコードを渡す
						if (kapCdDiv.equals(String.valueOf(Integer.parseInt(hyojnKjhiKapPayway) + 1)))
						{
							parentMap.put("kap_plan_cd", kapCd);
						}
					}
				}
			}
			// ANK-3951-00-00 MOD END
		}
		//工事費割賦契約キャンセル処理
		else if(KJHI_KAP_KEI_CANCEL.equals(sousaMode))
		{	
			// 処理区分のマッピング
			parentMap.put("shori_div", "5");
			// 共通情報のマッピング
			parentMap.put("func_code", func_code);
			
			// 工事費割賦契約登録用マッピング
			parentMap.put("kojihi_kap_kei_no", bean[0].sendMessageString(KKW00101SFConst.KJHI_KAP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));			// 工事費割賦契約番号
			parentMap.put("upd_dtm_bf", bean[0].sendMessageString(KKW00101SFConst.KJHI_KAP_KEI_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));			// 更新年月日時分秒(更新前)
			
		}
		//工事費割賦契約論理削除
		else if(KJHI_KAP_KEI_MK.equals(sousaMode))
		{
			// 工事費割賦契約登録用マッピング
			// 処理区分のマッピング
			parentMap.put("shori_div", "4");
			// 共通情報のマッピング
			parentMap.put("func_code", func_code);
			parentMap.put("kojihi_kap_kei_no", bean[0].sendMessageString(KKW00101SFConst.KJHI_KAP_KEI_NO, X31CWebConst.DATABEAN_GET_VALUE));			// 工事費割賦契約番号
			parentMap.put("upd_dtm_bf", bean[0].sendMessageString(KKW00101SFConst.KJHI_KAP_KEI_UPD_DTM_BF, X31CWebConst.DATABEAN_GET_VALUE));			// 更新年月日時分秒(更新前)
		}
		//工事費割賦契約登録キャンセル
		else if(KJHI_KAP_KEI_ADD_CANCEL.equals(sousaMode))
		{
			// 申込年月日（年）
			String mskmYmdY = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込年月日（月）
			String mskmYmdM = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込年月日（日）
			String mskmYmdD = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
			// 申込種類
			String mskmKind = bean[0].sendMessageString(KKW00101SFConst.MSKMSHO_KIND, X31CWebConst.DATABEAN_GET_VALUE);
			// 工事費割賦契約登録用マッピング
			// 処理区分のマッピング
			parentMap.put("shori_div", "99");
			// 共通情報のマッピング
			parentMap.put("func_code", func_code);
			
			parentMap.put("hjnkjh_kapsd_symd", bean[0].sendMessageString(KKW00101SFConst.KK_HJNKJH_KAPSD_SYMD, X31CWebConst.DATABEAN_GET_VALUE));		// 標準工事費割賦制度開始年月日
			parentMap.put("mskm_ymd", mskmYmdY + mskmYmdM + mskmYmdD);																					// 申込年月日
			parentMap.put("mskm_kind", mskmKind);																										// 申込種類

			
			// 申込種別コードを基に異動区分を取得
			String idoDiv = getIdoDiv(bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 標準工事費割賦支払方法を基に割賦プランコードを取得
			String hyojnKjhiKapPayway = bean[0].sendMessageString(KKW00101SFConst.HYOJN_KJHI_KAP_PAYWAY, X31CWebConst.DATABEAN_GET_VALUE);
			
			// サービス契約回線内訳番号
			parentMap.put("key_svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW00101SFConst.KEY_SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			
			// 工事費割賦契約登録用マッピング
			// 申込明細番号はオペレーションにて設定する。
			
			// 割賦契約ステータス
			parentMap.put("kap_kei_stat", JKKStrConst.CD01471_UK_ZM);
			// サービス契約回線内訳番号
			parentMap.put("svc_kei_kaisen_ucwk_no", bean[0].sendMessageString(KKW00101SFConst.KEY_SVC_KEI_KAISEN_UCWK_NO, X31CWebConst.DATABEAN_GET_VALUE));
			// 異動区分
			parentMap.put("ido_div", idoDiv);
			// 割賦請求済回数
			parentMap.put("kap_seiky_zumi_cnt", KAP_SEIKY_ZUMI_CNT_SHKV);
			// 割賦請求済金額
			parentMap.put("kap_seiky_zumi_amnt", KAP_SEIKY_ZUMI_AMNT_SHKV);
			
			// 割賦プランコードに「KP0040：分割」、割賦支払い残回数に「30」を設定
			// ANK-3636-00-00 MOD START
			//parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_BUNKATSU);
			// ANK-3951-00-00 MOD START
//			parentMap.put("kap_plan_cd", JKKStrConst.KAP_PLAN_CD_10PER_BUNKATSU);
			X31SDataBeanAccessArray cancel_kapPayWay_List = bean[0].getDataBeanArray(KKW00101SFConst.KAP_PLAN_CD_LIST);
			X31SDataBeanAccess cancelKapBean = cancel_kapPayWay_List.getDataBean(0);
			// 標準工事費割賦支払方法コードリストから一番上の1行取得
			String cancelKapPayWay = cancelKapBean.sendMessageString(KKW00101SFConst.KAP_PLAN_CD, X31CWebConst.DATABEAN_GET_VALUE);
			if (cancelKapPayWay != null)
			{
				// 標準工事費割賦支払方法コードリストの値をカンマ区切りで分断
				String[] cancelKapPlanCd = cancelKapPayWay.split(",");
				// 割賦プランコードを取得し設定
				if (cancelKapPlanCd != null && cancelKapPlanCd.length > 1)
				{
					String cancelkapCd = cancelKapPlanCd[1];
					parentMap.put("kap_plan_cd", cancelkapCd);
				}
			}
			// ANK-3951-00-00 MOD END
			// ANK-3636-00-00 MOD END
			
			// 割賦支払残回数のマッピングはKKSV0080OPOperationで実施。
			
			// ANK-3951-00-00 DEL START
//			// IT1-2018-0000018 MOD START
//			// 旧制度から新制度で工事費割賦を登録するが、標準工事費が無料のため、登録を行わない。(新制度の履歴を残すため)
//			//parentMap.put("kap_pay_zan_cnt", JKKStrConst.KAP_PAY_ZAN_CNT_SHKV_BUNKATSU);
//			parentMap.put("kap_pay_zan_cnt", bean[0].sendMessageString(KKW00101SFConst.KAP_PAY_CNT_30, X31CWebConst.DATABEAN_GET_VALUE));
//			// IT1-2018-0000018 MOD END
			// ANK-3951-00-00 DEL END
		}
		outputMap.put("KKSV008018CC", parentMap);
		
		return outputMap;
	}
	// ANK-3296-00-00 ADD END
	
	// ANK-3484-00-00 ADD START
	/**
	 * KKSV008044CCとKKSV008045CCの上りマッピングをする
	 * @param bean ビューロジック
	 * @param outputMap 出力先マップ
	 * @param ccMsg 申込情報マップ
	 * @param opeDate 運用日
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setTmcpOperationCC(X31SDataBeanAccess[] bean, HashMap outputMap, HashMap ccMsg, String opeDate)
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}
		
		// 初期表示処理の端末保障操作CCの照会結果
		HashMap kksv007923CCMap = (HashMap)ccMsg.get("KKSV007923CC");
		
		// 照会リスト
		HashMap<String, List<HashMap<String, Object>>> infoListMap = new HashMap<String, List<HashMap<String, Object>>>();
		// ＰＣプランリスト
		List<HashMap<String, Object>> pcPlanList = new ArrayList<HashMap<String, Object>>();
		// ＰＣワイドプランリスト
		List<HashMap<String, Object>> pcWidePlanList = new ArrayList<HashMap<String, Object>>();
		// ＴＶプランリスト
		List<HashMap<String, Object>> tvPlanList = new ArrayList<HashMap<String, Object>>();
		
		// ＰＣプランマップ
		HashMap<String, Object> pcPlanMap = new HashMap<String, Object>();
		// ＰＣワイドプランマップ
		HashMap<String, Object> pcWidePlanMap = new HashMap<String, Object>();
		// ＴＶプランマップ
		HashMap<String, Object> tvPlanMap = new HashMap<String, Object>();
		
		if (kksv007923CCMap != null)
		{
			// 初期表示処理の端末保障操作CCの照会結果がnull以外の場合
			if (kksv007923CCMap.get("info_list") != null)
			{
				// 照会リストの取得
				infoListMap = (HashMap<String, List<HashMap<String, Object>>>) kksv007923CCMap.get("info_list");
				
				// ＰＣプランリストの取得
				if (infoListMap.get("pc_plan_list") != null)
				{
					pcPlanList = infoListMap.get("pc_plan_list");
					if (pcPlanList.size() != 0)
					{
						// ＰＣプランマップの取得
						pcPlanMap = pcPlanList.get(0);
					}
				}
				
				// ＰＣワイドプランリストの取得
				if (infoListMap.get("pc_wide_list") != null)
				{
					pcWidePlanList = infoListMap.get("pc_wide_list");
					if (pcWidePlanList.size() != 0)
					{
						// ＰＣワイドプランマップの取得
						pcWidePlanMap = pcWidePlanList.get(0);
					}
				}
				
				// ＴＶプランリストの取得
				if (infoListMap.get("tv_plan_list") != null)
				{
					tvPlanList = infoListMap.get("tv_plan_list");
					if (tvPlanList.size() != 0)
					{
						// ＴＶプランマップの取得
						tvPlanMap = tvPlanList.get(0);
					}
				}
			}
		}
		
		// ネットをキャンセルして、追加しているか判定する。
		boolean isNetCancelAdd =
			(bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_CANCEL_FLG, X31CWebConst.DATABEAN_GET_VALUE)
			&& !bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_ZENKI_FLG, X31CWebConst.DATABEAN_GET_VALUE)
			&& bean[0].sendMessageBoolean(KKW00101SFConst.EOH_NET_FLG, X31CWebConst.DATABEAN_GET_VALUE));
		
		// オプション＿ＰＣプランの処理区分
		String opPcPlanShoriDiv = "0";
		// オプション＿ＰＣワイドプランの処理区分
		String opPcWidePlanShoriDiv = "0";
		// オプション＿ＴＶの処理区分
		String opTvPlanShoriDiv = "0";
		
		// 画面で選択しているオプション＿ＰＣプランの有無
		Boolean opPcPlanScreen = bean[0].sendMessageBoolean(KKW00101SFConst.OP_PC_PLAN, X31CWebConst.DATABEAN_GET_VALUE);
		// 画面で選択しているオプション＿ＰＣワイドプランの有無
		Boolean opPcWidePlanScreen = bean[0].sendMessageBoolean(KKW00101SFConst.OP_PC_WIDE_PLAN, X31CWebConst.DATABEAN_GET_VALUE);
		// 画面で選択しているオプション＿ＴＶプランの有無
		Boolean opTvPlanScreen = bean[0].sendMessageBoolean(KKW00101SFConst.OP_TV_PLAN, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 初期表示処理の端末保障操作CCの照会結果からＰＣプランの端末補償申込年月日を取得する
		String pcPlanTmcpMskmYmd = "";
		
		if (pcPlanMap != null && pcPlanMap.size() > 0)
		{
			pcPlanTmcpMskmYmd = (String)pcPlanMap.get("tmcp_mskm_ymd");
		}
		
		// 初期表示処理の端末保障操作CCの照会結果からＰＣプランの端末補償申込年月日を取得する
		String tvPlanTmcpMskmYmd = "";
		
		if (tvPlanMap != null && tvPlanMap.size() > 0)
		{
			tvPlanTmcpMskmYmd = (String)tvPlanMap.get("tmcp_mskm_ymd");
		}
		
		// 申込年月日を取得する
		// 申込年月日（年）
		String mskmYmdY = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_Y, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込年月日（月）
		String mskmYmdM = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_M, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込年月日（日）
		String mskmYmdD = bean[0].sendMessageString(KKW00101SFConst.MSKM_YMD_D, X31CWebConst.DATABEAN_GET_VALUE);
		// 申込年月日
		String mskmYmd = mskmYmdY + mskmYmdM + mskmYmdD;
		
		// 画面の申込年月日とＰＣプランの端末補償申込年月日を比較し、申込年月日が変更されているか判定する
		// (変更されている：true、変更されていない：false)
		Boolean chkPcPlanMskmYmdChngFlg = false;
		
		if (!mskmYmd.equals(pcPlanTmcpMskmYmd))
		{
			chkPcPlanMskmYmdChngFlg = true;
		}
		
		// 画面の申込年月日とＴＶプランの端末補償申込年月日を比較し、申込年月日が変更されているか判定する
		// (変更されている：true、変更されていない：false)
		Boolean chkTvPlanMskmYmdChngFlg = false;
		
		if (!mskmYmd.equals(tvPlanTmcpMskmYmd))
		{
			chkTvPlanMskmYmdChngFlg = true;
		}
		
		// オプション＿ＰＣプランとオプション＿ＰＣワイドプランの処理区分を設定する
		// 画面のオプション＿ＰＣプラン：有、画面のオプション＿ＰＣワイドプラン：無
		if (opPcPlanScreen == true && opPcWidePlanScreen == false)
		{
			// オプション＿ＰＣプランを元々持っている場合
			if (pcPlanMap.size() > 0 &&
				JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(pcPlanMap.get("op_svc_kei_stat")))
			{
				// オプション＿ＰＣワイドプランを元々持っている場合
				if (pcWidePlanMap.size() > 0 &&
					JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(pcWidePlanMap.get("sbop_svc_kei_stat")))
				{
					// ネットタブを消して、再度ネットを追加している場合、
					// または、画面の申込年月日が変更されている場合
					if (isNetCancelAdd || chkPcPlanMskmYmdChngFlg)
					{
						// オプション＿ＰＣプランの処理区分に"3":解約・登録を設定する
						opPcPlanShoriDiv = "3";
						// オプション＿ＰＣワイドプランの処理区分に"2":解約を設定する
						opPcWidePlanShoriDiv = "2";
					}
					// ネットタブを消さず、再度ネットを追加していない場合、
					// かつ、画面の申込年月日が変更されていない場合
					else
					{
						// オプション＿ＰＣプランの処理区分に"0":処理しないを設定する
						opPcPlanShoriDiv = "0";
						// オプション＿ＰＣワイドプランの処理区分に"2":解約を設定する
						opPcWidePlanShoriDiv = "2";
					}
				}
				// オプション＿ＰＣワイドプランを元々持っていない場合
				else
				{
					// ネットタブを消して、再度ネットを追加している場合、
					// または、画面の申込年月日が変更されている場合
					if (isNetCancelAdd || chkPcPlanMskmYmdChngFlg)
					{
						// オプション＿ＰＣプランの処理区分に"3":解約・登録を設定する
						opPcPlanShoriDiv = "3";
						// オプション＿ＰＣワイドプランの処理区分に"0":処理しないを設定する
						opPcWidePlanShoriDiv = "0";
					}
					// ネットタブを消さず、再度ネットを追加していない場合、
					// かつ、画面の申込年月日が変更されていない場合
					else
					{
						// オプション＿ＰＣプランの処理区分に"0":処理しないを設定する
						opPcPlanShoriDiv = "0";
						// オプション＿ＰＣワイドプランの処理区分に"0":処理しないを設定する
						opPcWidePlanShoriDiv = "0";
					}
				}
			}
			// オプション＿ＰＣプランを元々持っていない場合
			else
			{
				// オプション＿ＰＣプランの処理区分に"1":登録を設定する
				opPcPlanShoriDiv = "1";
				// オプション＿ＰＣワイドプランの処理区分に"0":処理しないを設定する
				opPcWidePlanShoriDiv = "0";
			}
		}
		// 画面のオプション＿ＰＣプラン：無、画面のオプション＿ＰＣワイドプラン：有
		else if (opPcPlanScreen == false && opPcWidePlanScreen == true)
		{
			// オプション＿ＰＣプランを元々持っている場合
			if (pcPlanMap.size() > 0 &&
				JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(pcPlanMap.get("op_svc_kei_stat")))
			{
				// オプション＿ＰＣワイドプランを元々持っている場合
				if (pcWidePlanMap.size() > 0 &&
					JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(pcWidePlanMap.get("sbop_svc_kei_stat")))
				{
					// ネットタブを消して、再度ネットを追加している場合、
					// または、画面の申込年月日が変更されている場合
					if (isNetCancelAdd || chkPcPlanMskmYmdChngFlg)
					{
						// オプション＿ＰＣプランの処理区分に"3":解約・登録を設定する
						opPcPlanShoriDiv = "3";
						// オプション＿ＰＣワイドプランの処理区分に"3":解約・登録を設定する
						opPcWidePlanShoriDiv = "3";
					}
					// ネットタブを消さず、再度ネットを追加していない場合、
					// かつ、画面の申込年月日が変更されていない場合
					else
					{
						// オプション＿ＰＣプランの処理区分に"0":処理しないを設定する
						opPcPlanShoriDiv = "0";
						// オプション＿ＰＣワイドプランの処理区分に"0":処理しないを設定する
						opPcWidePlanShoriDiv = "0";
					}
				}
				// オプション＿ＰＣワイドプランを元々持っていない場合
				else
				{
					// ネットタブを消して、再度ネットを追加している場合、
					// または、画面の申込年月日が変更されている場合
					if (isNetCancelAdd || chkPcPlanMskmYmdChngFlg)
					{
						// オプション＿ＰＣプランの処理区分に"3":解約・登録を設定する
						opPcPlanShoriDiv = "3";
						// オプション＿ＰＣワイドプランの処理区分に"1":登録を設定する
						opPcWidePlanShoriDiv = "1";
					}
					// ネットタブを消さず、再度ネットを追加していない場合、
					// かつ、画面の申込年月日が変更されていない場合
					else
					{
						// オプション＿ＰＣプランの処理区分に"0":処理しないを設定する
						opPcPlanShoriDiv = "0";
						// オプション＿ＰＣワイドプランの処理区分に"1":登録を設定する
						opPcWidePlanShoriDiv = "1";
					}
				}
			}
			// オプション＿ＰＣプランを元々持っていない場合
			else
			{
				// オプション＿ＰＣプランの処理区分に"1":登録を設定する
				opPcPlanShoriDiv = "1";
				// オプション＿ＰＣワイドプランの処理区分に"1":登録を設定する
				opPcWidePlanShoriDiv = "1";
			}
		}
		// 画面のオプション＿ＰＣプラン：無、画面のオプション＿ＰＣワイドプラン：無
		else if (opPcPlanScreen == false && opPcWidePlanScreen == false)
		{
			// オプション＿ＰＣプランを元々持っている場合
			if (pcPlanMap.size() > 0 &&
				JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(pcPlanMap.get("op_svc_kei_stat")))
			{
				// オプション＿ＰＣワイドプランを元々持っている場合
				if (pcWidePlanMap.size() > 0 &&
					JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(pcWidePlanMap.get("sbop_svc_kei_stat")))
				{
					// オプション＿ＰＣプランの処理区分に"2":解約を設定する
					opPcPlanShoriDiv = "2";
					// オプション＿ＰＣワイドプランの処理区分に"2":解約を設定する
					opPcWidePlanShoriDiv = "2";
				}
				// オプション＿ＰＣワイドプランを元々持っていない場合
				else
				{
					// オプション＿ＰＣプランの処理区分に"2":解約を設定する
					opPcPlanShoriDiv = "2";
					// オプション＿ＰＣワイドプランの処理区分に"0":処理しないを設定する
					opPcWidePlanShoriDiv = "0";
				}
			}
			// オプション＿ＰＣプランを元々持っていない場合
			else
			{
				// オプション＿ＰＣプランの処理区分に"0":処理しないを設定する
				opPcPlanShoriDiv = "0";
				// オプション＿ＰＣワイドプランの処理区分に"0":処理しないを設定する
				opPcWidePlanShoriDiv = "0";
			}
		}
		
		// オプション＿ＴＶプランの処理区分を設定する
		// 画面のオプション＿ＴＶプラン：有
		if (opTvPlanScreen == true)
		{
			// オプション＿ＴＶプランを元々持っている場合
			if (tvPlanMap.size() > 0 &&
				JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(tvPlanMap.get("op_svc_kei_stat")))
			{
				// ネットタブを消して、再度ネットを追加している場合、
				// または、画面の申込年月日が変更されている場合
				if (isNetCancelAdd || chkTvPlanMskmYmdChngFlg)
				{
					// オプション＿ＴＶプランの処理区分に"3":解約・登録を設定する
					opTvPlanShoriDiv = "3";
				}
				else
				{
					// オプション＿ＴＶプランの処理区分に"0":処理しないを設定する
					opTvPlanShoriDiv = "0";
				}
			}
			// オプション＿ＴＶプランを元々持っていない場合
			else
			{
				// オプション＿ＴＶプランの処理区分に"1":登録を設定する
				opTvPlanShoriDiv = "1";
			}
		}
		// 画面のオプション＿ＴＶプラン：無
		else if (opTvPlanScreen == false)
		{
			// オプション＿ＴＶプランを元々持っている場合
			if (tvPlanMap.size() > 0 &&
				JKKStrConst.OP_SVC_STAT_UKETSUKEZUMI.equals(tvPlanMap.get("op_svc_kei_stat")))
			{
				// オプション＿ＴＶプランの処理区分に"2":解約を設定する
				opTvPlanShoriDiv = "2";
			}
			// オプション＿ＴＶプランを元々持っていない場合
			else
			{
				// オプション＿ＴＶプランの処理区分に"0":何もしないを設定する
				opTvPlanShoriDiv = "0";
			}
		}
		
		// 申込フラグを取得する
		String mskmFlg = bean[0].sendMessageString(KKW00101SFConst.MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
		
		// 異動区分を取得する
		String idoDiv = "";
		if ("1".equals(mskmFlg))
		{
			// 新規申込の場合
			idoDiv = "00001";
		}
		else
		{
			// 新規申込以外の場合
			idoDiv = "00002";
		}
		
		// オプション＿ＰＣプラン、オプション＿ＰＣワイドプラン、オプション＿ＴＶの
		// 処理区分が"2"：解約または"3"：解約・登録の場合、マッピングを行う。
		if (("2".equals(opPcPlanShoriDiv) || "3".equals(opPcPlanShoriDiv))
			|| ("2".equals(opPcWidePlanShoriDiv) || "3".equals(opPcWidePlanShoriDiv))
			|| ("2".equals(opTvPlanShoriDiv) || "3".equals(opTvPlanShoriDiv)))
		{
			// 解約用マップ
			HashMap<String, Object> canselMap = new HashMap<String, Object>();
			
			// 機能コード
			canselMap.put("func_cd", "1");
			// 申込年月日
			canselMap.put("mskm_ymd", mskmYmd);
			// 処理区分
			canselMap.put("shori_div", "3");
			
			// サービス契約番号はKKSV0080OPOperationで設定する。
			
			// 異動区分
			canselMap.put("ido_div", idoDiv);
			
			// 解約用情報マップを設定する
			HashMap<String, Object> cancelInfoMap = new HashMap<String, Object>();
			// 解約用情報リストを設定する
			List<HashMap<String, Object>> cancelInfoList = new ArrayList<HashMap<String, Object>>();
			
			// サービス契約番号はKKSV0080OPOperationで設定する。
			
			// 申込明細番号はKKSV0080OPOperationで設定する。
			
			// 更新年月日時分秒（サービス契約）はKKSV0080OPOperationで設定する。
			
			// ＰＣプランのマッピング
			if ("2".equals(opPcPlanShoriDiv) || "3".equals(opPcPlanShoriDiv))
			{
				// ＰＣプラン対象フラグ
				cancelInfoMap.put("pc_plan_tg_flg", "1");
				// ＰＣプラン解約日
				cancelInfoMap.put("pc_plan_dsl_day", opeDate);
				// ＰＣプラン課金解約日
				cancelInfoMap.put("pc_plan_chrg_dsl_day", opeDate);
			}
			else
			{
				// ＰＣプラン対象フラグ
				cancelInfoMap.put("pc_plan_tg_flg", "0");
				// ＰＣプラン解約日
				cancelInfoMap.put("pc_plan_dsl_day", opeDate);
				// ＰＣプラン課金解約日
				cancelInfoMap.put("pc_plan_chrg_dsl_day", opeDate);
			}
			
			// ＰＣワイドプランのマッピング
			if ("2".equals(opPcWidePlanShoriDiv) || "3".equals(opPcWidePlanShoriDiv))
			{
				// ＰＣワイドプラン対象フラグ
				cancelInfoMap.put("pc_wide_plan_tg_flg", "1");
				// ＰＣワイドプラン解約日
				cancelInfoMap.put("pc_wide_plan_dsl_day", opeDate);
				// ＰＣワイドプラン課金解約日
				cancelInfoMap.put("pc_wide_plan_chrg_dsl_day", opeDate);
			}
			else
			{
				// ＰＣワイドプラン対象フラグ
				cancelInfoMap.put("pc_wide_plan_tg_flg", "0");
				// ＰＣワイドプラン解約日
				cancelInfoMap.put("pc_wide_plan_dsl_day", opeDate);
				// ＰＣワイドプラン課金解約日
				cancelInfoMap.put("pc_wide_plan_chrg_dsl_day", opeDate);
			}
			
			// ＴＶプランのマッピング
			if ("2".equals(opTvPlanShoriDiv) || "3".equals(opTvPlanShoriDiv))
			{
				// ＴＶプラン対象フラグ
				cancelInfoMap.put("tv_plan_tg_flg", "1");
				// ＴＶプラン解約日
				cancelInfoMap.put("tv_plan_dsl_day", opeDate);
				// ＴＶプラン課金解約日
				cancelInfoMap.put("tv_plan_chrg_dsl_day", opeDate);
			}
			else
			{
				// ＴＶプラン対象フラグ
				cancelInfoMap.put("tv_plan_tg_flg", "0");
				// ＴＶプラン解約日
				cancelInfoMap.put("tv_plan_dsl_day", opeDate);
				// ＴＶプラン課金解約日
				cancelInfoMap.put("tv_plan_chrg_dsl_day", opeDate);
			}
			
			cancelInfoList.add(cancelInfoMap);
			
			canselMap.put("cancel_info_list", cancelInfoList);
			
			outputMap.put("KKSV008044CC", canselMap);
		}
		
		// オプション＿ＰＣプラン、オプション＿ＰＣワイドプラン、オプション＿ＴＶの
		// 処理区分が"1"：登録または"3"：解約・登録の場合、マッピングを行う。
		if (("1".equals(opPcPlanShoriDiv) || "3".equals(opPcPlanShoriDiv))
			|| ("1".equals(opPcWidePlanShoriDiv) || "3".equals(opPcWidePlanShoriDiv))
			|| ("1".equals(opTvPlanShoriDiv) || "3".equals(opTvPlanShoriDiv)))
		{
			// 登録用マップ
			HashMap<String, Object> addMap = new HashMap<String, Object>();
			
			// 機能コード
			addMap.put("func_cd", "1");
			// 申込年月日
			addMap.put("mskm_ymd", mskmYmd);
			// 処理区分
			addMap.put("shori_div", "2");
			
			// サービス契約番号はKKSV0080OPOperationで設定する。
			
			// 異動区分
			addMap.put("ido_div", idoDiv);
			
			// 登録用情報マップを設定する
			HashMap<String, Object> addInfoMap = new HashMap<String, Object>();
			// 登録用情報リストを設定する
			List<HashMap<String, Object>> addInfoList = new ArrayList<HashMap<String, Object>>();
			
			// サービス契約番号はKKSV0080OPOperationで設定する。
			
			// 申込明細番号はKKSV0080OPOperationで設定する。
			
			// 更新年月日時分秒（サービス契約）はKKSV0080OPOperationで設定する。
			
			// ＰＣプランのマッピング
			if ("1".equals(opPcPlanShoriDiv) || "3".equals(opPcPlanShoriDiv))
			{
				// ＰＣプラン対象フラグ
				addInfoMap.put("pc_plan_tg_flg", "1");
				// ＰＣプラン申込日
				addInfoMap.put("pc_plan_mksm_ymd", mskmYmd);
			}
			else
			{
				// ＰＣプラン対象フラグ
				addInfoMap.put("pc_plan_tg_flg", "0");
				// ＰＣプラン申込日
				addInfoMap.put("pc_plan_mksm_ymd", mskmYmd);
			}
			
			// ＰＣワイドプランのマッピング
			if ("1".equals(opPcWidePlanShoriDiv) || "3".equals(opPcWidePlanShoriDiv))
			{
				// ＰＣワイドプラン対象フラグ
				addInfoMap.put("pc_wide_plan_tg_flg", "1");
				// ＰＣワイドプラン申込日
				addInfoMap.put("pc_wide_plan_mksm_ymd", mskmYmd);
			}
			else
			{
				// ＰＣワイドプラン対象フラグ
				addInfoMap.put("pc_wide_plan_tg_flg", "0");
				// ＰＣワイドプラン申込日
				addInfoMap.put("pc_wide_plan_mksm_ymd", mskmYmd);
			}
			
			// ＴＶプランのマッピング
			if ("1".equals(opTvPlanShoriDiv) || "3".equals(opTvPlanShoriDiv))
			{
				// ＴＶプラン対象フラグ
				addInfoMap.put("tv_plan_tg_flg", "1");
				// ＴＶプラン申込日
				addInfoMap.put("tv_plan_mksm_ymd", mskmYmd);
			}
			else
			{
				// ＴＶプラン対象フラグ
				addInfoMap.put("tv_plan_tg_flg", "0");
				// ＴＶプラン申込日
				addInfoMap.put("tv_plan_mksm_ymd", mskmYmd);
			}
			
			addInfoList.add(addInfoMap);
			
			addMap.put("add_info_list", addInfoList);
			
			outputMap.put("KKSV008045CC", addMap);
		}
		
		return outputMap;
	}

	// ANK-3484-00-00 ADD END
	// ANK-3951-00-00 ADD START
	/**
	 * 割賦プラン一意照会
	 * @param bean [0]：申込新規登録画面
	 * @param outputMap
	 * @param func_code 機能コード
	 * @param opeDate 運用日付
	 * @return マッピング結果
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008011SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{

		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		HashMap kksv008011scMap = (HashMap)outputMap.get("KKSV008018CC");
		if (kksv008011scMap != null)
		{
			String kapPlanCd = (String)kksv008011scMap.get("kap_plan_cd");
			if (kapPlanCd != null)
			{
				// 割賦プランコードを取得し渡す
				parentMap.put("key_kap_plan_cd", kapPlanCd);
				outputMap.put("KKSV008011SC", parentMap);
			}
		}

		return outputMap;
	}
	// ANK-3951-00-00 ADD END
	
	// ANK-4092-00-00 ADD START
	/**
	 * KKSV008046CCの上りマッピングをする
	 * @param bean ビューロジック
	 * @param outputMap 出力先マップ
	 * @param func_code 機能コード
	 * @return outputMap
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008046CC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code)
	{
		
		if (bean == null)
		{
			return null;
		}
		
		if (bean.length != 1)
		{
			return null;
		}
		
		HashMap<String, Object> parentMap = new HashMap<String, Object>();
		ArrayList<Object> contMskmAddList = new ArrayList <Object>();
		
		String shoriDiv = "1";
		
		parentMap.put("shori_div", shoriDiv);
		parentMap.put("mskm_no", bean[0].sendMessageString(KKW00101SFConst.MSKM_NO, X31CWebConst.DATABEAN_GET_VALUE));
		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		X31SDataBeanAccessArray cntList = bean[0].getDataBeanArray(KKW00101SFConst.CNT_LIST);
		setSubKKSV008046CCMap(contMskmAddList, cntList);
		
		parentMap.put("cont_mskm_add_list", contMskmAddList);
		
		outputMap.put("KKSV008046CC", parentMap);
		
		return outputMap;
	}
	
	/**
	 * subKKSV008046CCMapを設定する
	 * @param contMskmAddList コンテンツ申込登録リスト
	 * @param cntList コンテンツリスト
	 */
	@SuppressWarnings("unchecked")
	private void setSubKKSV008046CCMap(ArrayList contMskmAddList, X31SDataBeanAccessArray cntList)
	{
		for (int j = 0; j < cntList.getCount(); j++) 
		{
			X31SDataBeanAccess cntSelectBean = cntList.getDataBean(j);
			String cntSvcCd = cntSelectBean.sendMessageString(KKW00101SFConst.CONT_SVC_CD, X31CWebConst.DATABEAN_GET_VALUE);
			boolean cntMskmFlg = cntSelectBean.sendMessageBoolean(KKW00101SFConst.CNT_MSKM_FLG, X31CWebConst.DATABEAN_GET_VALUE);
			
			HashMap<String, Object> map = new HashMap <String, Object>();
			map.put("cont_svc_cd", cntSvcCd);
			
			if (cntMskmFlg) 
			{
				contMskmAddList.add(map);
			}
		}
		
		return;
	}
	// ANK-4092-00-00 ADD END
	// ANK-4318-00-00 ADD START
	/**
	 * 生年月日から西暦を取得します。
	 * <br>
	 * @param gengoCd  元号コード
	 * @param inpBirthdY 生年月日（年）
	 * @param inpBirthdM 生年月日（月）
	 * @param inpBirthdD 生年月日（日）
	 * @return true
	 * @throws Exception 業務サービス内でエラーが発生した場合
	 */
	private String getBirthYearAD(String gengoCd, String inpBirthdY, String inpBirthdM, String inpBirthdD) throws Exception
	{
		String birthd_y = inpBirthdY;
		String birthd_m = inpBirthdM;
		String birthd_d = inpBirthdD;
		
		// 月が１桁の場合
		if (birthd_m.length() == 1)
		{
			// ゼロ埋め
			birthd_m = CHAR_ZERO + birthd_m;
		}

		// 日が１桁の場合
		if (birthd_d.length() == 1)
		{
			// ゼロ埋め
			birthd_d = CHAR_ZERO + birthd_d;
		}

		String birthd_ymd = "";

		// 元号が西暦の場合
		if ("".equals(gengoCd) || GENGO_AD.equals(gengoCd))
		{
			// 生年月日が西暦の場合
			return birthd_y;
		}
		else
		{
			// 西暦の生年月日を取得
			birthd_ymd = JKKWebCommon.getAdCalendar(gengoCd, birthd_y, birthd_m, birthd_d);
			
			return birthd_ymd.substring(0, 4);
		}

	}
	// ANK-4318-00-00 ADD END


	//ANK-4416-00-00 ADD START
	
	/**
	 * クーポンコード一意照会の上りマッピングをする
	 * @param bean：申込新規登録画面
	 * @param outputMap：データ出力先マップ
	 * @param func_code：機能コード
	 * @param couponCd：クーポンコード
	 * @return
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008012SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, String couponCd) 
	{
		
		if(bean == null)
		{
			return null;
		}
		
		if(bean.length != 1)
		{
			return null;
		}


		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);

		// クーポンコード → 紹介一意照会SC.ＫＥＹ＿紹介コード
		parentMap.put("key_intr_cd", couponCd);

		outputMap.put("KKSV008012SC", parentMap);
						
		return outputMap;
	}
	
	/**
	 * クーポンコード登録の上りマッピングを行います。
	 * @param bean：申込新規登録画面
	 * @param outputMap：データ出力先マップ
	 * @param func_code：機能コード
	 * @param intrUpdDtm：更新年月日時分秒
	 * @param couponCd：クーポンコード
	 * @param clearFlug：クリア処理フラグ）
	 * @return データ格納マップ
	 * @throws Exception
	 */
	@SuppressWarnings("unchecked")
	public HashMap setKKSV008013SC(X31SDataBeanAccess[] bean, HashMap outputMap, String func_code, 
			HashMap couponInfo, String couponCd, String clearFlug) throws Exception
	{
		
		if (bean == null)
		{
			return null;
		}

		if (bean.length != 1)
		{
			return null;
		}

		X31SDataBeanAccess dataBean = bean[0];
		HashMap<String, Object> parentMap = new HashMap<String, Object>();

		// 共通情報のマッピング
		parentMap.put("func_code", func_code);
		
		/*-----------------------------------------------
		 * 紹介スキーマ登録
		 *-----------------------------------------------*/
	
		// クーポンコード
		parentMap.put("coupon_cd", couponCd);
		
		//更新年月日時分秒（更新前）
		parentMap.put("upd_dtm", (String)couponInfo.get("upd_dtm"));
		
		//被紹介者名
		parentMap.put("hishokai_nm", (String)couponInfo.get("hishokai_nm"));
		
		//被紹介者連絡先メールアドレス
		parentMap.put("hishokai_rrks_mlad",(String)couponInfo.get("hishokai_rrks_mlad"));
		
		//クリア処理フラグ
		parentMap.put("clear_flug", clearFlug);
			
		outputMap.put("KKSV008013SC", parentMap);

		return outputMap;
		
	}
	//ANK-4416-00-00 ADD END
// ANK-4427-00-00 ADD START
	
	/**
	 * typeNの電話オプション更新版を作成する
	 * <br>
	 * @param bean
	 * @param sysid
	 * @param seikyKeiNo
	 * @param typeNOpSvcList
	 */
	private HashMap<String, Object> createTypeNTelOption(X31SDataBeanAccess[] bean, String sysid, String seikyKeiNo, ArrayList<HashMap<String, String>> typeNOpSvcList)
	{
		// オプションサービス契約<ISP>を取り出す
		HashMap<String, String> opSvcIspMap = typeNOpSvcList.get(0);
		
		// 契約済のサブオプションコードのリスト
		ArrayList<String> sbOpSvcList = new ArrayList<String>();
		for (HashMap<String, String> opMap : typeNOpSvcList)
		{
			sbOpSvcList.add(opMap.get("kk0401_sbop_svc_cd"));
		}
		
		// 一旦新規で作成
		HashMap<String, Object> resultMap = createTypeNTelOption(bean, sysid, opSvcIspMap.get("kk0351_ido_div"), seikyKeiNo);
		
		// 以下の項目を契約から引継する
		
		// オプションサービス契約番号
		resultMap.put("kk0361_op_svc_kei_no", 	opSvcIspMap.get("kk0351_op_svc_kei_no"));
		// 申込明細番号
		resultMap.put("kk0361_mskm_dtl_no", 	opSvcIspMap.get("kk0351_mskm_dtl_no"));
		// 更新年月日時分秒(更新前)
		resultMap.put("kk0361_upd_dtm_bf", 		opSvcIspMap.get("kk0351_last_upd_dtm"));
		
		// サブオプションは契約が無いものだけ設定
		ArrayList<HashMap<String, Object>> fList = (ArrayList<HashMap<String, Object>>)resultMap.get("sbop_isp_add_list");
		ArrayList<HashMap<String, Object>> nList = new ArrayList<HashMap<String, Object>>();
		for (HashMap<String, Object> map : fList)
		{
			if (!sbOpSvcList.contains(map.get("kk0411_sbop_svc_cd"))) 
			{
				nList.add(map);
			}
		}
		// 入れ替える
		resultMap.put("sbop_isp_add_list", nList);
		return resultMap;
	}
	
	/**
	 * typeNの電話オプション新規登録版を作成する
	 * <br>
	 * @param sysid
	 * @param idoDiv
	 * @param seikyKeiNo
	 */
	private HashMap<String, Object> createTypeNTelOption(X31SDataBeanAccess[] bean, String sysid, String idoDiv, String seikyKeiNo)
	{
		// typeNの電話オプションを登録する
		/*-----------------------------------------------
		 * オプションサービス契約＜ISP＞登録（eo光電話（typeN））
		 *-----------------------------------------------*/
		HashMap<String, Object> opIspMap = new HashMap<String, Object>();

		// オプションサービスコード
		opIspMap.put("kk0361_op_svc_cd", JKKStrConst.OP_SVC_CD_EOTEL_TYPEN);

		// 料金コースコード
		opIspMap.put("kk0361_pcrs_cd", JKKStrConst.OPSVC_PCRS_EOTEL_TYPEN);
		
		// 料金プランコード
		opIspMap.put("kk0361_pplan_cd", JKKStrConst.OPSVC_PPLAN_EOTEL_TYPEN);
		
		// SYSID
		opIspMap.put("kk0361_sysid", sysid);
		
		// 異動区分
		opIspMap.put("kk0361_ido_div", idoDiv);
		
		// 親契約識別コード
		opIspMap.put("kk0361_oya_kei_skbt_cd", JKKStrConst.CD_DIV_OYAKEISKBTCD_SVCKEI);
		
		// 請求契約番号追加
		if(null != seikyKeiNo)
		{
			// 請求契約番号
			opIspMap.put("kk0361_seiky_kei_no", seikyKeiNo);
		}
		
		// typeN電話番号
		opIspMap.put("kk0361_typen_telno", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELNO, X31CWebConst.DATABEAN_GET_VALUE));

		// typeN番ポ種別
		String bmpSbtCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TYPEN_BMP_SBT_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		opIspMap.put("kk0361_typen_bmp_sbt", bmpSbtCd);
		
// ANK-4640-00-00 ADD START
		// typeN通信事業者コード
		String typeNTsjgsCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TYPEN_TEL_NOW_USE_TEL_SVC_TK_JGS_LIST, KKW00101SFConst.TYPEN_TSJGS_CD_72, KKW00101SFConst.TYPEN_TSJGS_CD_LIST_72);
		opIspMap.put("kk0361_typen_tsjgs_cd", typeNTsjgsCd);
// ANK-4640-00-00 ADD END
		
		// typeN契約者名
		opIspMap.put("kk0361_typen_keisha_nm", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TEL_ITNMT_KYS_MEIGI, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN住所情報識別コード
		String adSkbtCd = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.AD_CHOICE_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		opIspMap.put("kk0361_typen_ad_info_skcd", adSkbtCd);
		
		// typeN住所コード
		String adcd = JKKStringUtil.nullToBlank(bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_AD_CD1, X31CWebConst.DATABEAN_GET_VALUE));
		if (!JKKStringUtil.isNullBlank(adcd))
		{
			adcd = adcd + JKKStringUtil.nullToBlank(bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_AD_CD2, X31CWebConst.DATABEAN_GET_VALUE))
				   + JKKStringUtil.nullToBlank(bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_AD_CD3, X31CWebConst.DATABEAN_GET_VALUE))
				   + JKKStringUtil.nullToBlank(bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_AD_CD4, X31CWebConst.DATABEAN_GET_VALUE));
		}
		opIspMap.put("kk0361_typen_ad_cd", adcd);
		
		// typeN郵便番号
		String pcd = JKKStringUtil.nullToBlank(bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_PCD_BF, X31CWebConst.DATABEAN_GET_VALUE));
		if (!JKKStringUtil.isNullBlank(pcd))
		{
			pcd = pcd + JKKStringUtil.nullToBlank(bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_PCD_AF, X31CWebConst.DATABEAN_GET_VALUE));
		}
		opIspMap.put("kk0361_typen_pcd", pcd);
		
		// typeN都道府県名
		opIspMap.put("kk0361_typen_state_nm", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_STATE, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN市区町村名
		opIspMap.put("kk0361_typen_city_nm", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_CITY, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN大字通称名
		opIspMap.put("kk0361_typen_oaztsu_nm", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_OAZTSU, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN字丁目名
		opIspMap.put("kk0361_typen_azcho_nm", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_AZCHO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN番地号
		opIspMap.put("kk0361_typen_bnchigo", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_BNCHIGO, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN住所補記・建物名
		opIspMap.put("kk0361_typen_adrttm", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_ADRTTM, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN住所補記・部屋番号
		opIspMap.put("kk0361_typen_adrrm", bean[0].sendMessageString(KKW00101SFConst.TYPEN_TELAD_ADRRM, X31CWebConst.DATABEAN_GET_VALUE));
		
		// typeN住所手動入力フラグ
		if (bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELAD_MAN_INPUT, X31CWebConst.DATABEAN_GET_VALUE))
		{
			opIspMap.put("kk0361_typen_ad_man_input_flg", JKKStrConst.CD00002_UMU_1);
		}
		else
		{
			opIspMap.put("kk0361_typen_ad_man_input_flg", JKKStrConst.CD00002_UMU_0);
		}
		
		// 電話加入権ありの場合
		if ("1".equals(bean[0].sendMessageString(KKW00101SFConst.TYPEN_TEL_KNKN_UM, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			// 電話加入権取扱コード
			String telKnknKskySbt = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TYPEN_TEL_KNKN_KSKY_SBT_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
			opIspMap.put("kk0361_typen_tel_knkn_trat_cd", telKnknKskySbt);
		}
		
		// typeN電話番号種別コード
		String telnoSriCD = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.TYPEN_TELNO_SRI_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		opIspMap.put("kk0361_typen_telno_sbt_cd", telnoSriCD);
		
		// サブオプション
		ArrayList<HashMap<String, Object>> sbopMapList = new ArrayList<HashMap<String, Object>>();
		
		// サブオプションをチェックする
		// 電話番号通知
		if (bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_TELNO_TUTI_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			sbopMapList.add(createSubOpMap(JKKStrConst.SBOP_SVC_CD_TELNO_TUTI, JKKStrConst.SBOPSVC_PCRS_TELNO_TUTI, JKKStrConst.SBOPSVC_PPLAN_TELNO_TUTI, sysid, idoDiv, seikyKeiNo));
		}
		// 発信者番号表示
		if (bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_HSNSHA_NODSP_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			sbopMapList.add(createSubOpMap(JKKStrConst.SBOP_SVC_CD_HSNSHA_NODSP, JKKStrConst.SBOPSVC_PCRS_HSNSHA_NODSP, JKKStrConst.SBOPSVC_PPLAN_HSNSHA_NODSP, sysid, idoDiv, seikyKeiNo));
		}
		// 非通知着信拒否
		if (bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_HITUTI_CKSNKH_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			sbopMapList.add(createSubOpMap(JKKStrConst.SBOP_SVC_CD_HITUTI_CKSNKH, JKKStrConst.SBOPSVC_PCRS_HITUTI_CKSNKH, JKKStrConst.SBOPSVC_PPLAN_HITUTI_CKSNKH, sysid, idoDiv, seikyKeiNo));
		}
		// 国際電話利抑止
		if (bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_KKSITEL_RYYS_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			sbopMapList.add(createSubOpMap(JKKStrConst.SBOP_SVC_CD_KKSITEL_RYYS, JKKStrConst.SBOPSVC_PCRS_KKSITEL_RYYS, JKKStrConst.SBOPSVC_PPLAN_KKSITEL_RYYS, sysid, idoDiv, seikyKeiNo));
		}
		opIspMap.put("sbop_isp_add_list", sbopMapList);
		
		return opIspMap;
	}
	
	/**
	 * サブオプションのマップを作成する
	 * <br>
	 * @param sbopCd
	 * @pranm pcrsCd
	 * @param pplanCd
	 * @param sysid
	 */
	private HashMap<String, Object> createSubOpMap(String sbopCd, String pcrsCd, String pplanCd, String sysid, String idoDiv, String seikyKeiNo)
	{
		HashMap<String, Object> sbopMap = new HashMap<String, Object>();

		// サブオプションサービスコード
		sbopMap.put("kk0411_sbop_svc_cd", sbopCd);

		// 料金コース
		sbopMap.put("kk0411_pcrs_cd", pcrsCd);

		// 料金プラン
		sbopMap.put("kk0411_pplan_cd", pplanCd);

		// 異動区分
		sbopMap.put("kk0411_ido_div", idoDiv);
		
		// 請求契約番号追加
		if(null != seikyKeiNo)
		{
			// 請求契約番号
			sbopMap.put("kk0411_seiky_kei_no", seikyKeiNo);
		}

		return sbopMap;
	}
	
	/**
	 * 長期利用割引の対象かどうかを返す。
	 * <br>
	 * @param bean
	 * @param pcrseCd	料金コースコード（過去実装との互換性）
	 * @return true: 対象 false: 非対称
	 */
	private boolean isEnabledChokiUseWrib(X31SDataBeanAccess[] bean, String pcourse)
	{
		// ブランドタイプ
		String brandType = bean[0].sendMessageString(KKW00101SFConst.BRAND_TYPE, X31CWebConst.DATABEAN_GET_VALUE);
		if (BRAND_TYPE_TYPEN.equals(brandType) || BRAND_TYPE_SIMPLE.equals(brandType)) 
		{
			return false;
		}
		
		// 一応念のために。。。。
		if(!"A97".equals(pcourse) && !"A99".equals(pcourse))
		{
			return true;
		}
		else 
		{
			return false;
		}
	}
	
	/**
	 * サービス契約<eo光ネット>のマッピング
	 * <br>
	 * @param bean
	 * @param parentMap
	 */
	private void mappingKK0091(X31SDataBeanAccess[] bean, HashMap parentMap)
	{
		// 派遣要否希望
		if (bean[0].sendMessageBoolean(KKW00101SFConst.WAO_HAKEN_YH_KIBO_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			// 要
			parentMap.put("kk0091_wao_haken_yh_kibo", JKKStrConst.CD00001_1);
		}
		else
		{
			// 否
			parentMap.put("kk0091_wao_haken_yh_kibo", JKKStrConst.CD00001_0);
		}
		
		// 工事希望年n、工事希望月n、工事希望日n、工事希望時間帯n
		String[][] KJ_KIBO_ITEM_LIST = {
				{KKW00101SFConst.WAO_KOJI_KIBO_Y1, KKW00101SFConst.WAO_KOJI_KIBO_M1, KKW00101SFConst.WAO_KOJI_KIBO_D1, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ1_LIST},
				{KKW00101SFConst.WAO_KOJI_KIBO_Y2, KKW00101SFConst.WAO_KOJI_KIBO_M2, KKW00101SFConst.WAO_KOJI_KIBO_D2, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ2_LIST},
				{KKW00101SFConst.WAO_KOJI_KIBO_Y3, KKW00101SFConst.WAO_KOJI_KIBO_M3, KKW00101SFConst.WAO_KOJI_KIBO_D3, KKW00101SFConst.WAO_KOJI_KIBO_TIMEZ3_LIST},
		};
		
		for (int i = 0 ; i < KJ_KIBO_ITEM_LIST.length; i++)
		{
			String y = bean[0].sendMessageString(KJ_KIBO_ITEM_LIST[i][0], X31CWebConst.DATABEAN_GET_VALUE);
			String m = bean[0].sendMessageString(KJ_KIBO_ITEM_LIST[i][1], X31CWebConst.DATABEAN_GET_VALUE);
			String d = bean[0].sendMessageString(KJ_KIBO_ITEM_LIST[i][2], X31CWebConst.DATABEAN_GET_VALUE);
			String suffix = "_" + Integer.toString(i + 1);
			
			if (!JKKStringUtil.isNullBlank(y) && !JKKStringUtil.isNullBlank(m) && !JKKStringUtil.isNullBlank(d))
			{
				String timez = JKKWebCommon.getPullDownCode(bean[0], KJ_KIBO_ITEM_LIST[i][3], KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);

				parentMap.put("kk0091_wao_koji_kibo_ymd"   + suffix, toYmdStr(y, m, d));
				parentMap.put("kk0091_wao_koji_kibo_timez" + suffix, timez);
			}
			else
			{
				parentMap.put("kk0091_wao_koji_kibo_ymd"   + suffix, "");
				parentMap.put("kk0091_wao_koji_kibo_timez" + suffix, "");
			}
		}
		
		// WAO工事会社連絡事項
		parentMap.put("kk0091_wao_kocomp_rrk_jiko", bean[0].sendMessageString(KKW00101SFConst.WAO_KOCOMP_RRK_JIKO, X31CWebConst.DATABEAN_GET_VALUE));

		// WAO転用区分
		String tenyoDiv = JKKWebCommon.getPullDownCode(bean[0], KKW00101SFConst.WAO_TENYO_DIV_LIST, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		parentMap.put("kk0091_wao_tenyo_div", tenyoDiv);

		// WAO転用承諾番号
		parentMap.put("kk0091_wao_tenyo_shodaku_no", bean[0].sendMessageString(KKW00101SFConst.WAO_TENYO_SHODAKU_NO, X31CWebConst.DATABEAN_GET_VALUE));

		// WAO有効期限
		parentMap.put("kk0091_wao_yk_kigen", bean[0].sendMessageString(KKW00101SFConst.WAO_YK_KIGEN, X31CWebConst.DATABEAN_GET_VALUE));

// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD START
		// 住所番地はお決まりですか。:建築途中で決まっていないを選択した場合
		if(JKKStrConst.AD_BNCHI_NO.equals(bean[0].sendMessageString(KKW00101SFConst.KISN_PLACE_AD_FIX_FLG, X31CWebConst.DATABEAN_GET_VALUE))){
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD END
			// WAO住所番地メモ
			parentMap.put("kk0091_wao_ad_bnchi_memo", bean[0].sendMessageString(KKW00101SFConst.WAO_AD_BNCHI_MEMO, X31CWebConst.DATABEAN_GET_VALUE));		
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD START
		} else {
			// WAO住所番地メモのマッピングは行わない。DataBeanには空を設定する
			bean[0].sendMessageString(KKW00101SFConst.WAO_AD_BNCHI_MEMO, X31CWebConst.DATABEAN_SET_VALUE, "");
			
		}
// ANK-4427-00-00 ソースレビュー指摘対応 20241219 星野 ADD END
	}
	
	/**
	 * 日付を返す。
	 * <br>
	 * @param y
	 * @param m
	 * @param d
	 * @return
	 */
	private String toYmdStr(String y, String m, String d)
	{
		StringBuffer buffer = new StringBuffer();
		if (!JKKStringUtil.isNullBlank(y) && !JKKStringUtil.isNullBlank(m) && !JKKStringUtil.isNullBlank(d))
		{
			buffer.append(y);
			if (m.length() == 1) 
			{
				buffer.append("0");
			}
			buffer.append(m);
			if (d.length() == 1) 
			{
				buffer.append("0");
			}
			buffer.append(d);
		}
		return buffer.toString();
	}
	
	/**
	 * キャンセルするサブオプションをチェックする。
	 * <br>
	 * @param bean
	 * @param childMap
	 * @param idoDiv
	 * @return
	 */
	private HashMap<String, String> checkCancelSbOp(X31SDataBeanAccess[] bean, HashMap<String,String> childMap, String idoDiv)
	{
		// サブオプションコード
		String sbOpCd = childMap.get("kk0401_sbop_svc_cd");
		
		// サブオプションサービス契約キャンセルマップ
		HashMap<String, String> sbopCancelMap = new HashMap<String, String>();
		
		// オプションサービス契約番号
		sbopCancelMap.put("kk0401_op_svc_kei_no", childMap.get("kk0401_op_svc_kei_no"));

		// サブオプションサービス契約番号
		sbopCancelMap.put("kk0401_sbop_svc_kei_no", childMap.get("kk0401_sbop_svc_kei_no"));

		// 申込明細番号
		sbopCancelMap.put("kk0401_mskm_dtl_no", childMap.get("kk0401_mskm_dtl_no"));

		// サービスキャンセル理由コード
		sbopCancelMap.put("kk0401_svc_cancel_rsn_cd", JKKStrConst.CD01254_20);

		// 異動区分 
		sbopCancelMap.put("kk0401_ido_div", idoDiv);

		// 更新年月日時分秒(更新前)
		sbopCancelMap.put("kk0401_upd_dtm_bf", childMap.get("kk0401_last_upd_dtm"));

		// 電話OPがキャンセルされている場合、無条件でキャンセルする。
		if (!bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TEL_MSKM_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			return sbopCancelMap;
		}
		// オプションの申込が取消された場合マップを返す。
		if (JKKStrConst.SBOP_SVC_CD_HITUTI_CKSNKH.equals(sbOpCd) && !bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_HITUTI_CKSNKH_UM, X31CWebConst.DATABEAN_GET_VALUE)) 
		{
			return sbopCancelMap;
		} 
		else if (JKKStrConst.SBOP_SVC_CD_HSNSHA_NODSP.equals(sbOpCd) && !bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_HSNSHA_NODSP_UM, X31CWebConst.DATABEAN_GET_VALUE)) 
		{
			return sbopCancelMap;
		} 
		else if (JKKStrConst.SBOP_SVC_CD_TELNO_TUTI.equals(sbOpCd) && !bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_TELNO_TUTI_UM, X31CWebConst.DATABEAN_GET_VALUE)) 
		{
			return sbopCancelMap;
		} 
		else if (JKKStrConst.SBOP_SVC_CD_KKSITEL_RYYS.equals(sbOpCd) && !bean[0].sendMessageBoolean(KKW00101SFConst.TYPEN_TELOP_KKSITEL_RYYS_UM, X31CWebConst.DATABEAN_GET_VALUE))
		{
			return sbopCancelMap;
		}
		
		return null;
	}
	
	/**
	 * 時間帯のコード値を返す。
	 * <br>
	 * @param bean
	 * @param screenName
	 * @param listName
	 * @return
	 */
	private String getTimezCd(X31SDataBeanAccess bean, String screenName, String listName)
	{
		
		if (!JKKStringUtil.isNullBlank(bean.sendMessageString(screenName, X31CWebConst.DATABEAN_GET_VALUE)))
		{
			return JKKWebCommon.getPullDownCode(bean, listName, KKW00101SFConst.SELECT_CD_59, KKW00101SFConst.CD_LIST_59);
		}

		return "";
	}
// ANK-4427-00-00 ADD END
}

