/********************************************************************* * All Rights reserved,Copyright (c) K-Opticom * ********************************************************************** *<プログラム内容> * システム名 :eo顧客基幹システム * モジュール名 :JBSbatCHSeikyusPulloutChsht * ソースファイル名 :JBSbatCHSeikyusPulloutChsht.java * 作成者 :富士通 * 作成日 :2011年05月25日 *<機能概要> * 請求書引抜き対象抽出部品です。 *<修正履歴> * バージョン 修正日 修正者 修正内容 * v1.00.00 2011/05/25 富士通 新規作成 * v4.00.00 2012/12/04 FJ)加島 【IT1-2012-0002261】請求書引抜き対象抽出条件に、郵便自動振込を追加 * v4.00.01 2013/01/22 FJ) 早崎 【内部管理番号-0000171】当月請求なし+前月領収ありの引抜送信が行われない * v4.00.02 2013/01/22 FJ) 早崎 【内部管理番号-0000173】請求書引抜・当月請求書発行対象外でも引抜データを連携してしまう * v4.00.03 2013/04/14 FJ) 小柴 【内部管理番号-0000703】引抜対象の取得方法の変更・出力時の出力対象判定処理を追加 * v5.00.00 2013/09/16 FJ) 後藤 【OM-2013-0002077】請求抽出条件追加 * v5.00.01 2013/10/31 FJ) 早崎 【OM-2013-0003314,3420】対応 *********************************************************************/ package eo.business.service; import eo.business.common.JACbatDebugLogUtil; import eo.business.common.JBSbatBusinessService; import eo.business.util.file.JBSbatCHIFM220; import eo.business.util.table.JBSbatCH_T_SEIKY; import eo.business.util.table.JBSbatCH_T_SKS_HIKINUKI; import eo.common.constant.JACStrConst; import eo.framework.item.JBSbatCommonItem; import eo.framework.item.JBSbatOutputItem; import eo.framework.item.JBSbatServiceInterfaceMap; /** * 請求書引抜きデータ抽出
*
* @author 富士通
*/
public class JBSbatCHSeikyusPulloutChsht extends JBSbatBusinessService
{
/**▼▼▼▼▼▼ツールから生成した宣言です 開始▼▼▼▼▼▼*/
/**▲▲▲▲▲▲ツールから生成した宣言です 終了▲▲▲▲▲▲*/
/** 前月.請求方法コード */
private static final String ZEN_SEIKY_WAY_CD = "ZEN_SEIKY_WAY_CD";
/** 前月.請求年月 */
private static final String ZEN_SEIKY_YM = "ZEN_SEIKY_YM";
/** 前月.請求番号 */
private static final String ZEN_SEIKY_NO = "ZEN_SEIKY_NO";
/** 前月.領収額出力有無 */
private static final String ZEN_RECEIPT_AMNT_OUTPUT_UM = "ZEN_RECEIPT_AMNT_OUTPUT_UM";
/** 当月.送信区分 */
private String sendKbn = JACStrConst.KARA_MOJI;
/** 前月.送信区分 */
private String zenSendKbn = JACStrConst.KARA_MOJI;
/** 送信区分 */
private String sendKbnCount = JACStrConst.KARA_MOJI;
/**
* 初期処理
* @param JBSbatCommonItem commonItem バッチ共通パラメータ電文
* @throws Exception
*/
public void initial(JBSbatCommonItem commonItem) throws Exception
{
/**▼▼▼▼▼▼業務サービスの初期処理を記述してください。▼▼▼▼▼▼*/
/**▼▼▼▼▼▼ツールから生成した初期化のソースです 開始▼▼▼▼▼▼*/
// 共通パラメータを設定します
super.setCommonInfo(commonItem);
/**▲▲▲▲▲▲ツールから生成した初期化のソースです 終了▲▲▲▲▲▲*/
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial]");
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][opeDate=" + super.opeDate + "]");
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][initial][freeItem=" + super.freeItem + "]");
// フリー項目を分割する
String[] freeItem = super.freeItem.split(JACStrConst.FREE_DIV);
this.sendKbnCount = freeItem[0];
assert this.sendKbnCount != null ? JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][initial][sendKbnCount = " + this.sendKbnCount + "]") : true;
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][initial]");
/**▲▲▲▲▲▲業務サービスの初期処理を記述してください。▲▲▲▲▲▲*/
}
/**
* 主処理
*
* @param inMap 入力電文
* @return JBSbatOutputItem 出力情報
* @throws Exception
*/
public JBSbatOutputItem execute(JBSbatServiceInterfaceMap inMap) throws Exception
{
/**▼▼▼▼▼▼業務サービスの主処理を記述してください。▼▼▼▼▼▼*/
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][execute]");
// 出力値判定処理
outPutValueJudge(inMap);
// 請求書引抜き情報作成
JBSbatOutputItem outputBean = makeOutputBean(inMap);
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][execute]");
return outputBean;
/**▲▲▲▲▲▲業務サービスの主処理を記述してください。▲▲▲▲▲▲*/
}
/**
* 出力項目「送信区分」の値を設定する
*
* @param inMap 入力電文
* @return outputBean 出力共通電文。
* @throws Exception 業務サービス内で発生した例外全般。
*/
private void outPutValueJudge(JBSbatServiceInterfaceMap inMap) throws Exception
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][outPutValueJudge]");
// 請求番号
String seikyNo = inMap.getString(JBSbatCH_T_SEIKY.SEIKY_NO);
// 請求方法コード
String seikyWayCd = inMap.getString(JBSbatCH_T_SEIKY.SEIKY_WAY_CD);
// 請求書発行対象フラグ
String seikysHakkoTgFlg = inMap.getString(JBSbatCH_T_SEIKY.SEIKYUS_HAKKO_TG_FLG);
// 前月.請求番号
String zenSeikyNo = inMap.getString(ZEN_SEIKY_NO);
// 前月.請求方法コード
String zenSeikyWayCd = inMap.getString(ZEN_SEIKY_WAY_CD);
// 前月.領収額出力有無
String zenReceipAmntOutPutUm = inMap.getString(ZEN_RECEIPT_AMNT_OUTPUT_UM);
// 当月請求あり
if(!JACStrConst.KARA_MOJI.equals(seikyNo) && null != seikyNo)
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][当月請求あり]");
// 請求書発行あり
if(JACStrConst.SKS_HAK_TG_FLG_TG.equals(seikysHakkoTgFlg))
{
// 口座振替または郵便振替
if(JACStrConst.SEIKY_KHRI.equals(seikyWayCd) || JACStrConst.SEIKY_YUFUIRI.equals(seikyWayCd))
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替]");
// 当月.送信区分 ← 送信済み
this.sendKbn = this.sendKbnCount;
// 前月月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
// 上記以外
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替以外]");
// 前月請求あり
if(!JACStrConst.KARA_MOJI.equals(zenSeikyNo) && null != zenSeikyNo)
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][前月請求あり]");
// 口座振替または郵便振替
if(JACStrConst.SEIKY_KHRI.equals(zenSeikyWayCd) || JACStrConst.SEIKY_YUFUIRI.equals(zenSeikyWayCd))
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替]");
// 領収額出力あり
if(JACStrConst.RECEIPT_AMNT_OUTPUT_UM_ARI.equals(zenReceipAmntOutPutUm))
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][領収額出力あり]");
// 当月.送信区分 ← 送信済み
this.sendKbn = this.sendKbnCount;
// 前月月.送信区分 ← 送信済み
this.zenSendKbn = this.sendKbnCount;
}
// 領収額出力なし
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][領収額出力なし]");
// 当月.送信区分 ← 送信済み
this.sendKbn = this.sendKbnCount;
// 前月月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
// 上記以外
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替以外]");
// 当月.送信区分 ← 送信済み
this.sendKbn = this.sendKbnCount;
// 前月月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
// 前月請求なし
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][前月請求なし]");
// 当月.送信区分 ← 送信済み
this.sendKbn = this.sendKbnCount;
// 前月月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
}
// 請求書発行なし
else
{
// 前月請求あり
if(!JACStrConst.KARA_MOJI.equals(zenSeikyNo) && null != zenSeikyNo)
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][前月請求あり]");
// 口座振替または郵便振替
if(JACStrConst.SEIKY_KHRI.equals(zenSeikyWayCd) || JACStrConst.SEIKY_YUFUIRI.equals(zenSeikyWayCd))
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替]");
// 領収額出力あり
if(JACStrConst.RECEIPT_AMNT_OUTPUT_UM_ARI.equals(zenReceipAmntOutPutUm))
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][領収額出力あり]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月月.送信区分 ← 送信済み
this.zenSendKbn = this.sendKbnCount;
}
// 領収額出力なし
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][領収額出力なし]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
// 上記以外
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替以外]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
// 前月請求なし
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][前月請求なし]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
}
// 当月請求なし
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][当月請求なし]");
// 前月請求あり
if(!JACStrConst.KARA_MOJI.equals(zenSeikyNo) && null != zenSeikyNo)
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][前月請求あり]");
// 口座振替または郵便振替
if(JACStrConst.SEIKY_KHRI.equals(zenSeikyWayCd) || JACStrConst.SEIKY_YUFUIRI.equals(zenSeikyWayCd))
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替]");
// 領収額出力あり
if(JACStrConst.RECEIPT_AMNT_OUTPUT_UM_ARI.equals(zenReceipAmntOutPutUm))
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][領収額出力あり]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月.送信区分 ← 送信済み
this.zenSendKbn = this.sendKbnCount;
}
// 領収額出力なし
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][領収額出力なし]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
// 上記以外
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][口座振替以外]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
// 前月請求なし
else
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][前月請求なし]");
// 当月.送信区分 ← "9"(未送信)
this.sendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
// 前月.送信区分 ← "9"(未送信)
this.zenSendKbn = JACStrConst.PULLOUT_SEND_CD_MI_SEND;
}
}
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][前月.送信区分=" + this.zenSendKbn + "]");
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[L][outPutValueJudge][当月.送信区分=" + this.sendKbn + "]");
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][outPutValueJudge]");
}
/**
* 入力電文(請求書引抜き情報)を設定した出力共通電文を返します。
*
* p
* @param inMap 入力電文
* @return outputBean 出力共通電文。
* @throws Exception 業務サービス内で発生した例外全般。
*/
private JBSbatOutputItem makeOutputBean(JBSbatServiceInterfaceMap inMap) throws Exception
{
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][makeOutputBean]");
JBSbatOutputItem outputBean = new JBSbatOutputItem();
// 請求書引抜き番号
String sksHikinukiNo = inMap.getString(JBSbatCH_T_SKS_HIKINUKI.SKS_HIKINUKI_NO);
// 請求契約番号
String seikyKeiNo = inMap.getString(JBSbatCH_T_SKS_HIKINUKI.SEIKY_KEI_NO);
// 当月分の請求書引抜き情報を出力する
JBSbatServiceInterfaceMap outmap = new JBSbatServiceInterfaceMap();
// 請求書引抜き番号
outmap.setString(JBSbatCHIFM220.SKS_HIKINUKI_NO, sksHikinukiNo);
// 請求契約番号
outmap.setString(JBSbatCHIFM220.SEIKY_KEI_NO, seikyKeiNo);
// 請求年月
outmap.setString(JBSbatCHIFM220.SEIKY_YM, inMap.getString(JBSbatCH_T_SEIKY.SEIKY_YM));
// 請求番号
outmap.setString(JBSbatCHIFM220.SEIKY_NO, inMap.getString(JBSbatCH_T_SEIKY.SEIKY_NO));
// 請求方法コード
outmap.setString(JBSbatCHIFM220.SEIKY_WAY_CD, inMap.getString(JBSbatCH_T_SEIKY.SEIKY_WAY_CD));
// 送信区分
outmap.setString(JBSbatCHIFM220.SEND_KBN, this.sendKbn);
// 出力フラグ設定
outmap.setOutFlg(true);
// 出力共通電文に設定
outputBean.addOutMapList(outmap);
// 全月分の請求書引抜き情報を出力する
JBSbatServiceInterfaceMap zenOutmap = new JBSbatServiceInterfaceMap();
// 請求書引抜き番号
zenOutmap.setString(JBSbatCHIFM220.SKS_HIKINUKI_NO, sksHikinukiNo);
// 請求契約番号
zenOutmap.setString(JBSbatCHIFM220.SEIKY_KEI_NO, seikyKeiNo);
// 請求年月
zenOutmap.setString(JBSbatCHIFM220.SEIKY_YM, inMap.getString(ZEN_SEIKY_YM));
// 請求番号
zenOutmap.setString(JBSbatCHIFM220.SEIKY_NO, inMap.getString(ZEN_SEIKY_NO));
// 請求方法コード
zenOutmap.setString(JBSbatCHIFM220.SEIKY_WAY_CD, inMap.getString(ZEN_SEIKY_WAY_CD));
// 送信区分
zenOutmap.setString(JBSbatCHIFM220.SEND_KBN, this.zenSendKbn);
// 出力フラグ設定
zenOutmap.setOutFlg(true);
// 出力共通電文に設定
outputBean.addOutMapList(zenOutmap);
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][makeOutputBean]");
return outputBean;
}
/**
* 業務サービス終了処理
* @throws Exception
*/
public void terminal() throws Exception
{
/**▼▼▼▼▼▼業務サービスの終了処理を記述してください。▼▼▼▼▼▼*/
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[S][terminal]");
/**▼▼▼▼▼▼ツールから生成した終了処理のソースです 開始▼▼▼▼▼▼*/
/**▲▲▲▲▲▲ツールから生成した終了処理のソースです 終了▲▲▲▲▲▲*/
assert JACbatDebugLogUtil.printDebugLog(super.logPrint, "[E][terminal]");
/**▲▲▲▲▲▲業務サービスの終了処理を記述してください。▲▲▲▲▲▲*/
}
/**▼▼▼▼▼▼ツールから生成したメソッドです 開始▼▼▼▼▼▼*/
/**▲▲▲▲▲▲ツールから生成したメソッドです 終了▲▲▲▲▲▲*/
}