intra-mart Accel Kaiden! プログラミングガイド 第12版 2020-04-01

5.3.2. 経費区分マスタメンテナンス

経費区分マスタメンテナンスのサンプルソースです。
本サンプルソースは「intra-mart Accel Kaiden! ワークフローモジュール 2.0.2」から抜粋したソースです。

5.3.2.1. 一覧

src
└─main
    ├─generated
    │  └─jp
    │      └─co
    │          └─slcs
    │              └─kaiden2
    │                  └─product_workflow
    │                      └─foundation
    │                          └─model
    │                              ├─entity
    │                              │      K30mExpType.java
    │                              │      K30mExpTypeNames.java
    │                              └─service
    │                                      K30mExpTypeCondition.java
    │                                      K30mExpTypeService.java
    ├─java
    │  └─jp
    │      └─co
    │          └─slcs
    │              └─kaiden2
    │                  └─product_workflow
    │                      ├─feature
    │                      │  ├─action
    │                      │  │  └─kaiden
    │                      │  │      └─master
    │                      │  │              ExpTypeAction.java
    │                      │  ├─dto
    │                      │  │  └─kaiden
    │                      │  │      └─master
    │                      │  │              ExpTypeDto.java
    │                      │  ├─form
    │                      │  │  └─kaiden
    │                      │  │      └─master
    │                      │  │              ExpTypeForm.java
    │                      │  └─logic
    │                      │      └─kaiden
    │                      │          └─master
    │                      │                  ExpTypeLogic.java
    │                      └─foundation
    │                          └─manager
    │                              └─exptype
    │                                  │  ExpTypeManager.java
    │                                  │  ExpTypeManagerDto.java
    │                                  │  ExpTypeManagerDtoFieldName.java
    │                                  └─impl
    │                                          ExpTypeManagerImpl.java
    ├─resources
    │  └─META-INF
    │      └─sql
    │          └─jp
    │              └─co
    │                  └─slcs
    │                      └─kaiden2
    │                          └─product_workflow
    │                              └─foundation
    │                                  └─model
    │                                      └─service
    │                                          └─K30mExpTypeService
    │                                                  selectView.sql
    └─webapp
        └─WEB-INF
            ├─classes
            │  └─jp
            │      └─co
            │          └─slcs
            │              └─kaiden2
            │                  └─product_workflow
            │                      └─feature
            │                          └─action
            │                              └─kaiden
            │                                  └─master
            │                                          ExpTypeMasterMaintenanceSettings.xml
            └─view
                └─kaiden2
                    └─product_workflow
                        └─master
                            └─expType
                                    expTypeMainte.jsp

5.3.2.2. Java

5.3.2.2.1. Action

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/action/kaiden/master/ExpTypeAction.java
package jp.co.slcs.kaiden2.product_workflow.feature.action.kaiden.master;

import javax.annotation.Resource;
import jp.co.intra_mart.foundation.authz.annotation.Authz;
import jp.co.slcs.kaiden2.base.foundation.conf.ModuleEnum;
import jp.co.slcs.kaiden2.base.foundation.conf.ResultType;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenSystemException;
import jp.co.slcs.kaiden2.base.foundation.master.AbstractMasterMaintenanceDto;
import jp.co.slcs.kaiden2.base.foundation.master.AbstractMasterMaintenanceForm;
import jp.co.slcs.kaiden2.base.foundation.master.AbstractMasterMaintenanceLogic;
import jp.co.slcs.kaiden2.base.foundation.master.AbstractTermMasterMaintenanceAction;
import jp.co.slcs.kaiden2.base.foundation.master.MasterMainternanceSettingsDto;
import jp.co.slcs.kaiden2.base.foundation.master.MasterMainternanceSettingsReader;
import jp.co.slcs.kaiden2.base.foundation.model.annotation.Module;
import jp.co.slcs.kaiden2.base.foundation.model.dto.LogicResultDto;
import jp.co.slcs.kaiden2.product_workflow.feature.dto.kaiden.master.ExpTypeDto;
import jp.co.slcs.kaiden2.product_workflow.feature.form.kaiden.master.ExpTypeForm;
import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.master.ExpTypeLogic;
import org.seasar.struts.annotation.ActionForm;
import org.seasar.struts.annotation.Execute;

/**
 * 経費区分マスタメンテナンス(Action).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpTypeAction extends AbstractTermMasterMaintenanceAction {
    
    /** ExpTypeDto. */
    @Resource
    public ExpTypeDto expTypeDto;
    
    /** ExpTypeForm. */
    @ActionForm
    @Resource
    public ExpTypeForm expTypeForm;
    
    /** ExpTypeLogic. */
    @Resource
    public ExpTypeLogic expTypeLogic;
    
    /**
     * 入力ページのパスを返却.
     * 
     * @return 入力ページのパス
     * @throws KaidenSystemException XML読み込み例外
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String index() throws KaidenSystemException {
        
        // プロパティファイルから一覧画面の設定を読み込み
        MasterMainternanceSettingsReader reader = new MasterMainternanceSettingsReader();
        expTypeDto.settings = new MasterMainternanceSettingsDto(reader.read(ExpTypeAction.class));
        
        // 一覧画面の設定をレスポンスに設定
        return super.index();
    }
    
    /**
     * AJAXにて検索を実行.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String search() {
        return super.search();
    }
    
    /**
     * AJAXにてメンテナンス対象データを返却.
     * 
     * @return メンテナンス対象データ
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String select() {
        return super.select();
    }
    
    /**
     * AJAXにてデータを登録.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String entry() {
        return super.entry();
    }
    
    /**
     * AJAXにて無効化.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String toDisabled() {
        return super.toDisabled();
    }
    
    /**
     * AJAXにてデータ削除.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String remove() {
        return super.remove();
    }
    
    /**
     * AJAXにてデータ更新.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String renew() {
        return super.renew();
    }
    
    /**
     * AJAXにてメンテナンス対象データの期間データを返却.
     * 
     * @return メンテナンス対象データ
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String selectTerm() {
        return super.selectTerm();
    }
    
    /**
     * AJAXにて有効化.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String toEnabled() {
        return super.toEnabled();
    }
    
    /**
     * AJAXにて期間分割.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String divideTerm() {
        return super.divideTerm();
    }
    
    /**
     * AJAXにて期間変更.
     * <p>
     * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力
     * </p>
     * 
     * @return null
     */
    @Override
    @Execute(validator = false)
    @Authz(uri = "service://kaiden/master/expType", action = "execute")
    public String moveTerm() {
        return super.moveTerm();
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected AbstractMasterMaintenanceDto getDto() {
        return expTypeDto;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected AbstractMasterMaintenanceForm getForm() {
        return expTypeForm;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected AbstractMasterMaintenanceLogic getLogic() {
        return expTypeLogic;
    }
    
}

5.3.2.2.2. Dto

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/dto/kaiden/master/ExpTypeDto.java
package jp.co.slcs.kaiden2.product_workflow.feature.dto.kaiden.master;

import jp.co.slcs.kaiden2.base.foundation.master.AbstractTermMasterMaintenanceDto;

/**
 * 経費区分マスタメンテナンス(DTO).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpTypeDto extends AbstractTermMasterMaintenanceDto {
    
}

5.3.2.2.3. Form

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/form/kaiden/master/ExpTypeForm.java
package jp.co.slcs.kaiden2.product_workflow.feature.form.kaiden.master;

import jp.co.slcs.kaiden2.base.foundation.master.AbstractTermMasterMaintenanceForm;

/**
 * 経費区分マスタメンテナンス(Form).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpTypeForm extends AbstractTermMasterMaintenanceForm {
    
}

5.3.2.2.4. Logic

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/feature/logic/kaiden/master/ExpTypeLogic.java
package jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.master;

import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.ACCOUNT_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.COMPANY_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.DELETE_FLAG;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.END_DATE;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.EXP_TYPE_CATEGORY;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.EXP_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.EXP_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.SORT_KEY;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.START_DATE;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.TAX_TYPE_CD;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Stack;
import javax.annotation.Resource;
import jp.co.slcs.kaiden2.base.foundation.conf.BaseProp;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenRuntimeException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenSystemException;
import jp.co.slcs.kaiden2.base.foundation.master.AbstractMasterMaintenanceForm;
import jp.co.slcs.kaiden2.base.foundation.master.AbstractTermMasterMaintenanceForm;
import jp.co.slcs.kaiden2.base.foundation.master.AbstractTermMasterMaintenanceLogic;
import jp.co.slcs.kaiden2.base.foundation.master.MasterMainternanceSettingsDto;
import jp.co.slcs.kaiden2.base.foundation.master.MasterMainternanceSettingsReader;
import jp.co.slcs.kaiden2.base.foundation.master.MasterManager;
import jp.co.slcs.kaiden2.base.foundation.model.dto.LogicResultDto;
import jp.co.slcs.kaiden2.base.foundation.util.ConvertForJsonSource;
import jp.co.slcs.kaiden2.base.foundation.util.JsonUtil;
import jp.co.slcs.kaiden2.product_workflow.feature.action.kaiden.master.ExpTypeAction;
import jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManager;

/**
 * 経費区分マスタメンテナンス(Logic).
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpTypeLogic extends AbstractTermMasterMaintenanceLogic {
    
    /** ExpTypeManager. */
    @Resource
    public ExpTypeManager expTypeManager;
    
    /**
     * {@inheritDoc}
     */
    @Override
    public LogicResultDto selectTermAjax(AbstractTermMasterMaintenanceForm form) {
        Convert conv = new Convert();
        return super.selectTermAjax(form, conv);
    }
    
    /**
     * 経費区分メンテナンス画面へデータを渡す際の書式変換.
     * 
     * @author Sumitomo Life Information Systems Co.,Ltd.
     */
    private static class Convert extends ConvertForJsonSource {
        
        /**
         * {@inheritDoc}
         * <p>
         * 本サブクラスでは、以下の書式変換を行う。<br>
         * <table border="1">
         * <tr>
         * <td>項目名</td>
         * <td>書式</td>
         * </tr>
         * <tr>
         * <td>開始日</td>
         * <td>システムの日付時刻形式</td>
         * </tr>
         * <tr>
         * <td>終了日</td>
         * <td>システムの日付時刻形式</td>
         * </tr>
         * </table>
         * </p>
         */
        @Override
        protected Map<String, String> formatFormatedValue(Map<String, Object> map, Stack<String> fldNameStack) {
            // 標準書式変換
            Map<String, String> result = super.formatFormatedValue(map, fldNameStack);
            
            // 開始日の書式変換
            Object startDate = map.get(START_DATE);
            if (startDate != null) {
                result.put(START_DATE, dateHelper.formatDateSystemTz((Timestamp) startDate));
            }
            
            // 終了日の書式変換
            Object endDate = map.get(END_DATE);
            if (endDate != null) {
                result.put(END_DATE, dateHelper.formatDateSystemTz((Timestamp) endDate));
            }
            
            return result;
        }
        
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected MasterManager<?> getManager() {
        return expTypeManager;
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected String[] getKeywordSearchTargetCol() {
        // プロパティファイルから一覧画面の設定を読み込み
        MasterMainternanceSettingsReader reader = new MasterMainternanceSettingsReader();
        MasterMainternanceSettingsDto settings;
        try {
            settings = new MasterMainternanceSettingsDto(reader.read(ExpTypeAction.class));
        } catch (KaidenSystemException e) {
            throw KaidenRuntimeException.makeInstance(e);
        }
        
        return settings.searchTargetCol.toArray(new String[settings.searchTargetCol.size()]);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected List<String> getI18nTargetField() {
        return Arrays.asList(EXP_TYPE_NAME);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    protected Map<String, Object> getInputData(AbstractMasterMaintenanceForm form) {
        
        Map<String, Object> map = JsonUtil.getMap(form.updateDataJson, Arrays.asList("inputArea"));
        
        return map;
        
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * ■設定値一覧<br>
     * <table border="1">
     * <tr>
     * <td>設定キー</td>
     * <td>設定値</td>
     * </tr>
     * <tr>
     * <td>companyCd</td>
     * <td>会社</td>
     * </tr>
     * <tr>
     * <td>expTypeCd</td>
     * <td>経費区分コード</td>
     * </tr>
     * <tr>
     * <td>startDate</td>
     * <td>開始日</td>
     * </tr>
     * <tr>
     * <td>endDate</td>
     * <td>終了日</td>
     * </tr>
     * <tr>
     * <td>expTypeName</td>
     * <td>経費区分名</td>
     * </tr>
     * <tr>
     * <td>expTypeCategory</td>
     * <td>経費区分カテゴリ</td>
     * </tr>
     * <tr>
     * <td>accountCd</td>
     * <td>勘定科目</td>
     * </tr>
     * <tr>
     * <td>taxTypeCd</td>
     * <td>税区分</td>
     * </tr>
     * <tr>
     * <td>sortKey</td>
     * <td>ソートキー</td>
     * </tr>
     * <tr>
     * <td>deleteFlag</td>
     * <td>ステータス</td>
     * </tr>
     * </table>
     * </p>
     */
    @Override
    protected Map<String, String> getSurfaces() {
        
        Map<String, String> result = new HashMap<String, String>();
        
        result.put(COMPANY_CD, propertyHelper.getSurface(BaseProp.S.COMPANY));
        result.put(EXP_TYPE_CD, propertyHelper.getSurface(ProductWorkflowProp.S.EXP_TYPE_CD));
        result.put(START_DATE, propertyHelper.getSurface(BaseProp.S.START_DATE));
        result.put(END_DATE, propertyHelper.getSurface(BaseProp.S.END_DATE));
        result.put(EXP_TYPE_NAME, propertyHelper.getSurface(ProductWorkflowProp.S.EXP_TYPE_NAME));
        result.put(EXP_TYPE_CATEGORY, propertyHelper.getSurface(ProductWorkflowProp.S.ExpType.EXP_TYPE_CATEGORY));
        result.put(ACCOUNT_CD, propertyHelper.getSurface(ProductWorkflowProp.S.ACCOUNT));
        result.put(TAX_TYPE_CD, propertyHelper.getSurface(ProductWorkflowProp.S.TAX_TYPE));
        result.put(SORT_KEY, propertyHelper.getSurface(BaseProp.S.SORT_KEY));
        result.put(DELETE_FLAG, propertyHelper.getSurface(BaseProp.S.STATUS));
        
        return result;
    }
}

5.3.2.2.5. Manager

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/exptype/ExpTypeManager.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype;

import java.util.List;
import java.util.Map;
import jp.co.slcs.kaiden2.base.foundation.manager.KeywordsCriteriaDto;
import jp.co.slcs.kaiden2.base.foundation.master.TermMasterManagerForJob;
import jp.co.slcs.kaiden2.base.foundation.model.dto.KaidenDto;
import jp.co.slcs.kaiden2.base.foundation.model.dto.OrderDto;
import jp.co.slcs.kaiden2.base.foundation.model.service.SqlResultFilterIF;
import jp.co.slcs.kaiden2.base.foundation.util.validate.model.dto.ValidateDefsDto;

/**
 * 経費区分マスタへの各種操作を提供するAPIのinterface.<br>
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public interface ExpTypeManager extends TermMasterManagerForJob<ExpTypeManagerDto> {
    
    /** 経費区分コード. */
    public static final int EXP_TYPE_CD_LEN = 100;
    
    /** 経費区分名称. */
    public static final int EXP_TYPE_NAME_LEN = 250;
    
    /** 経費区分カテゴリ. */
    public static final int EXP_TYPE_CATEGORY_LEN = 250;
    
    /** 勘定科目コード. */
    public static final int ACCOUNT_CD_LEN = 100;
    
    /** 税区分コード. */
    public static final int TAX_TYPE_CD_LEN = 100;
    
    /** ソートキー. */
    public static final int SORT_KEY_LEN = 15;
    
    /**
     * 新規登録用の検証定義リストを返却します.
     * 
     * @return バリデート実行クラス用パラメタDTOリスト
     */
    public List<ValidateDefsDto> getValidateDefsDtoList4Entry();
    
    /**
     * 更新登録用の検証定義リストを返却します.
     * 
     * @return バリデート実行クラス用パラメタDTOリスト
     */
    public List<ValidateDefsDto> getValidateDefsDtoList4Renew();
    
    /**
     * マスタ検索部品向け 一覧取得.
     * 
     * @param criteria 検索条件
     * @param order ソート順
     * @param filter フィルタークラス
     * @return 検索結果
     */
    public Map<String, Object> selectList4MstSearch(KaidenDto criteria, List<OrderDto> order,
            KeywordsCriteriaDto keywordsCriteria, SqlResultFilterIF[] filter);
    
}

5.3.2.2.6. Manager(実装)

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/exptype/impl/ExpTypeManagerImpl.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.impl;

import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldLength.TERM_CD_LEN;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_A;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_B;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_C;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_D;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_E;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_F;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_G;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_H;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_I;
import static jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames.EXTENSION_J;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_COMPANY_EXISTS;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_DATE;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_DATE_MIN;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_FLAG;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_INTEGER;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_KAIDEN_ID;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_LOCALE;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_MAX_LENGTH;
import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_REQUIRED;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.ACCOUNT_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.ACCOUNT_NAME;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.COMPANY_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.COMPANY_NAME;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.DELETE_FLAG;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.END_DATE;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.EXP_TYPE_CATEGORY;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.EXP_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.EXP_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.LOCALE_ID;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.SORT_KEY;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.START_DATE;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.TAX_TYPE_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.TAX_TYPE_NAME;
import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDtoFieldName.TERM_CD;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_ACCOUNT_EXISTS;
import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_TAX_TYPE_EXISTS;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import jp.co.slcs.kaiden2.base.foundation.conf.GenericFlag;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenApplicationException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenDuplicationEntryException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenHaventAuthorityToCompanyException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenIllegalParametersException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenOptimisticLockException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenSystemException;
import jp.co.slcs.kaiden2.base.foundation.exception.KaidenValidateException;
import jp.co.slcs.kaiden2.base.foundation.manager.AbstractTermMasterManager;
import jp.co.slcs.kaiden2.base.foundation.manager.AuthorityCriteriaDto;
import jp.co.slcs.kaiden2.base.foundation.manager.KeywordsCriteriaDto;
import jp.co.slcs.kaiden2.base.foundation.manager.common.IterateBusinessLogicIF;
import jp.co.slcs.kaiden2.base.foundation.model.dto.KaidenDto;
import jp.co.slcs.kaiden2.base.foundation.model.dto.OrderDto;
import jp.co.slcs.kaiden2.base.foundation.model.service.SqlResultFilterIF;
import jp.co.slcs.kaiden2.base.foundation.util.CollectionUtil;
import jp.co.slcs.kaiden2.base.foundation.util.StringUtil;
import jp.co.slcs.kaiden2.base.foundation.util.validate.KaidenValidateResult;
import jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ErrorMode;
import jp.co.slcs.kaiden2.base.foundation.util.validate.model.dto.ValidateDefsDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManager;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.ExpTypeManagerDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.service.K30mExpTypeService;
import org.seasar.framework.beans.util.Beans;

/**
 * 経費区分マスタへの各種操作を提供するAPI.<br>
 * <br>
 * <p>
 * 本APIは、主にデータベース操作を行いますが、より業務的な機能を付加した操作を提供します。<br>
 * 使用する際には、{@link ExpTypeManagerDto}クラスまたはそのリストをパラメータとして渡すと、<br>
 * {@link ExpTypeManagerDto}クラスまたはそのリストが戻り値として返却されます。<br>
 * (一部例外あり。各APIを参照。)<br>
 * <br>
 * <b>機能一覧(共通)</b>
 * <table border="1">
 * <tr>
 * <th>機能概要</th>
 * <th>メソッド</th>
 * <th>カテゴリ</th>
 * <th>備考</th>
 * </tr>
 * <tr>
 * <tr>
 * <td>主キー検索</td>
 * <td>select</td>
 * <td>主キー検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>主キー検索(認可設定無視)</td>
 * <td>selectIgnoreAuthCompany</td>
 * <td>主キー検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>汎用検索</td>
 * <td>selectList</td>
 * <td>汎用検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>汎用検索(認可設定無視)</td>
 * <td>selectListIgnoreAuthCompany</td>
 * <td>汎用検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>ロケール検索</td>
 * <td>selectLocales</td>
 * <td>ロケール検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>ロケール検索(認可設定無視)</td>
 * <td>selectLocalesIgnoreAuthCompany</td>
 * <td>ロケール検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>参照検索</td>
 * <td>selectListWithReference</td>
 * <td>参照検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>参照検索(認可設定無視)</td>
 * <td>selectListWithReferenceIgnoreAuthCompany</td>
 * <td>参照検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>キーワード検索</td>
 * <td>selectListKeywordFilter</td>
 * <td>キーワード検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>キーワード検索(認可設定無視)</td>
 * <td>selectListKeywordFilterIgnoreAuthCompany</td>
 * <td>キーワード検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>有効化</td>
 * <td>toEnabled</td>
 * <td>削除フラグ更新</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>有効化(認可設定無視)</td>
 * <td>toEnabledIgnoreAuthCompany</td>
 * <td>削除フラグ更新</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>無効化</td>
 * <td>toDisabled</td>
 * <td>削除フラグ更新</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>無効化(認可設定無視)</td>
 * <td>toDisabledIgnoreAuthCompany</td>
 * <td>削除フラグ更新</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>登録</td>
 * <td>entry</td>
 * <td>登録</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>登録(認可設定無視)</td>
 * <td>entryIgnoreAuthCompany</td>
 * <td>登録</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>削除</td>
 * <td>remove</td>
 * <td>削除</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>削除(認可設定無視)</td>
 * <td>removeIgnoreAuthCompany</td>
 * <td>削除</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>更新</td>
 * <td>renew</td>
 * <td>更新</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>更新(認可設定無視)</td>
 * <td>renewIgnoreAuthCompany</td>
 * <td>更新</td>
 * <td>&nbsp;</td>
 * </tr>
 * </table>
 * <br>
 * <b>機能一覧(期間化)</b>
 * <table border="1">
 * <tr>
 * <th>機能概要</th>
 * <th>メソッド</th>
 * <th>カテゴリ</th>
 * <th>備考</th>
 * </tr>
 * <tr>
 * <td>期間検索</td>
 * <td>selectTerms</td>
 * <td>期間検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>期間検索(認可設定無視)</td>
 * <td>selectTermsIgnoreAuthCompany</td>
 * <td>期間検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>基準日指定検索</td>
 * <td>selectListIncluedsSearchDate</td>
 * <td>基準日指定検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>基準日指定検索(認可設定無視)</td>
 * <td>selectListIncluedsSearchDateIgnoreAuthCompany</td>
 * <td>基準日指定検索</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>期間分割</td>
 * <td>divideTerm</td>
 * <td>期間分割</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>期間分割(認可設定無視)</td>
 * <td>divideTermIgnoreAuthCompany</td>
 * <td>期間分割</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>期間変更</td>
 * <td>moveTerm</td>
 * <td>期間変更</td>
 * <td>&nbsp;</td>
 * </tr>
 * <tr>
 * <td>期間変更(認可設定無視)</td>
 * <td>moveTermIgnoreAuthCompany</td>
 * <td>期間変更</td>
 * <td>&nbsp;</td>
 * </tr>
 * </table>
 * <br>
 * <br>
 * 機能に対するI/Oを以下に示します。(上記一覧のカテゴリ単位)<br>
 * <br>
 * 【IN】
 * <table border="1">
 * <tr>
 * <td align="right">●</td>
 * <td>:必須</td>
 * </tr>
 * <tr>
 * <td align="right">△</td>
 * <td>:任意、検索時完全一致条件</td>
 * </tr>
 * <tr>
 * <td align="right">▲</td>
 * <td>:任意、検索時部分一致条件</td>
 * </tr>
 * <tr>
 * <td align="right">×</td>
 * <td>:不要(設定されていても無視します。)</td>
 * </tr>
 * <tr>
 * <td align="right">☆</td>
 * <td>:各APIの説明を参照</td>
 * </tr>
 * <tr>
 * <td align="right">-</td>
 * <td>:対象外</td>
 * </tr>
 * </table>
 * <br>
 * 【OUT】
 * <table border="1">
 * <tr>
 * <td align="right">○</td>
 * <td>:あり</td>
 * </tr>
 * <tr>
 * <td align="right">×</td>
 * <td>:なし</td>
 * </tr>
 * <tr>
 * <td align="right">-</td>
 * <td>:対象外</td>
 * </tr>
 * </table>
 * <br>
 * <b>DTOクラスと機能のI/Oマトリクス(共通)</b>
 * <table border="1">
 * <tr>
 * <th rowspan="2">DTOフィールド論理名</th>
 * <th rowspan="2">DTOフィールド名</th>
 * <th colspan="2">主キー<br>
 * 検索</th>
 * <th colspan="2">汎用<br>
 * 検索</th>
 * <th colspan="2">ロケール<br>
 * 検索</th>
 * <th colspan="2">参照<br>
 * 検索</th>
 * <th colspan="2">キーワード<br>
 * 検索</th>
 * <th colspan="2">削除フラグ<br>
 * 更新</th>
 * <th colspan="2">登録</th>
 * <th colspan="2">削除</th>
 * <th colspan="2">更新</th>
 * </tr>
 * <tr>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * </tr>
 * <tr>
 * <td><b>会社コード(*)</b></td>
 * <td><b>companyCd</b></td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td><b>経費区分コード(*)</b></td>
 * <td><b>expTypeCd</b></td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td><b>期間コード(*)</b></td>
 * <td><b>termCd</b></td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td><b>ロケールID(*)</b></td>
 * <td><b>localeId</b></td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>経費区分名称</td>
 * <td>expTypeName</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>経費区分カテゴリ</td>
 * <td>expTypeCategory</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>開始日</td>
 * <td>startDate</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>終了日</td>
 * <td>endDate</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>勘定科目コード</td>
 * <td>accountCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>税区分コード</td>
 * <td>taxTypeCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>ソートキー</td>
 * <td>sortKey</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>削除フラグ</td>
 * <td>deleteFlag</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>予備項目A~J</td>
 * <td>extensionA~J</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>登録日時</td>
 * <td>entryTs</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>登録者コード</td>
 * <td>entryUserCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>更新カウンタ</td>
 * <td>renewCnt</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">☆</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>更新日時</td>
 * <td>renewTs</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>更新者コード</td>
 * <td>renewUserCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">△</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>会社名称</td>
 * <td>companyName</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>勘定科目名称</td>
 * <td>accountName</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>税区分名称</td>
 * <td>taxTypeName</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">▲</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>検索基準日</td>
 * <td>searchCriteriaDate</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">☆</td>
 * <td align="center">-</td>
 * <td align="center">☆</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * </table>
 * <br>
 * <b>DTOクラスと機能のI/Oマトリクス(期間化)</b>
 * <table border="1">
 * <tr>
 * <th rowspan="2">DTOフィールド論理名</th>
 * <th rowspan="2">DTOフィールド名</th>
 * <th colspan="2">期間検索</th>
 * <th colspan="2">基準日指定<br>
 * 検索</th>
 * <th colspan="2">期間分割</th>
 * <th colspan="2">期間変更</th>
 * </tr>
 * <tr>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * <th>I</th>
 * <th>O</th>
 * </tr>
 * <tr>
 * <td><b>会社コード(*)</b></td>
 * <td><b>companyCd</b></td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td><b>経費区分コード(*)</b></td>
 * <td><b>expTypeCd</b></td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td><b>期間コード(*)</b></td>
 * <td><b>termCd</b></td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td><b>ロケールID(*)</b></td>
 * <td><b>localeId</b></td>
 * <td align="center">●</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>経費区分名称</td>
 * <td>expTypeName</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>経費区分カテゴリ</td>
 * <td>expTypeCategory</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>開始日</td>
 * <td>startDate</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>終了日</td>
 * <td>endDate</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>勘定科目コード</td>
 * <td>accountCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>税区分コード</td>
 * <td>taxTypeCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>ソートキー</td>
 * <td>sortKey</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>削除フラグ</td>
 * <td>deleteFlag</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>予備項目A~J</td>
 * <td>extensionA~J</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>登録日時</td>
 * <td>entryTs</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>登録者コード</td>
 * <td>entryUserCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>更新カウンタ</td>
 * <td>renewCnt</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">☆</td>
 * <td align="center">-</td>
 * <td align="center">☆</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>更新日時</td>
 * <td>renewTs</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <tr>
 * <td>更新者コード</td>
 * <td>renewUserCd</td>
 * <td align="center">×</td>
 * <td align="center">○</td>
 * <td align="center">△</td>
 * <td align="center">○</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>会社名称</td>
 * <td>companyName</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>勘定科目名称</td>
 * <td>accountName</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>税区分名称</td>
 * <td>taxTypeName</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * <tr>
 * <td>検索基準日</td>
 * <td>searchCriteriaDate</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">●</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * <td align="center">×</td>
 * <td align="center">-</td>
 * </tr>
 * </table>
 * <br>
 * テーブルのPK項目にはフィールド名に(*)を付与しています。<br>
 * </p>
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpTypeManagerImpl extends AbstractTermMasterManager<ExpTypeManagerDto> implements ExpTypeManager {
    
    /** K30mExpTypeService. */
    @Resource
    protected K30mExpTypeService k30mExpTypeService;
    
    /**
     * {@inheritDoc}
     */
    @Override
    public ExpTypeManagerDto select(ExpTypeManagerDto criteria, AuthorityCriteriaDto authCriteria) {
        return super.select(k30mExpTypeService, criteria, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public ExpTypeManagerDto selectIgnoreAuthCompany(ExpTypeManagerDto criteria) {
        return super.selectIgnoreAuthCompany(k30mExpTypeService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectList(ExpTypeManagerDto criteria, AuthorityCriteriaDto authCriteria,
            List<OrderDto> order) {
        return super.selectList(k30mExpTypeService, criteria, authCriteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectListIgnoreAuthCompany(ExpTypeManagerDto criteria, List<OrderDto> order) {
        return super.selectListIgnoreAuthority(k30mExpTypeService, criteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectLocales(ExpTypeManagerDto criteria, AuthorityCriteriaDto authCriteria) {
        return super.selectLocales(k30mExpTypeService, criteria, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectLocalesIgnoreAuthCompany(ExpTypeManagerDto criteria) {
        return super.selectLocalesIgnoreAuthCompany(k30mExpTypeService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectListWithReference(KaidenDto criteria, List<OrderDto> order,
            AuthorityCriteriaDto authCriteria) {
        String[] likeTarget = {EXP_TYPE_NAME, EXP_TYPE_CATEGORY, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D,
                EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME,
                ACCOUNT_NAME, TAX_TYPE_NAME};
        return super.selectBySql(k30mExpTypeService, "selectView.sql", criteria, order, authCriteria, likeTarget);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectListWithReferenceIgnoreAuthCompany(KaidenDto criteria, List<OrderDto> order) {
        String[] likeTarget = {EXP_TYPE_NAME, EXP_TYPE_CATEGORY, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D,
                EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME,
                ACCOUNT_NAME, TAX_TYPE_NAME};
        return super.selectBySqlIgnoreAuthority(k30mExpTypeService, "selectView.sql", criteria, order, likeTarget);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public Map<String, Object> selectListKeywordFilter(KaidenDto criteria, List<OrderDto> order,
            KeywordsCriteriaDto keywordsCriteria, AuthorityCriteriaDto authCriteria) {
        String[] likeTarget = {EXP_TYPE_NAME, EXP_TYPE_CATEGORY, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D,
                EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME,
                ACCOUNT_NAME, TAX_TYPE_NAME};
        return super.selectListByKeywords(k30mExpTypeService, "selectView.sql", criteria, order, keywordsCriteria,
                authCriteria, likeTarget);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public Map<String, Object> selectListKeywordFilterIgnoreAuthCompany(KaidenDto criteria, List<OrderDto> order,
            KeywordsCriteriaDto keywordsCriteria) {
        String[] likeTarget = {EXP_TYPE_NAME, EXP_TYPE_CATEGORY, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D,
                EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME,
                ACCOUNT_NAME, TAX_TYPE_NAME};
        return super.selectListByKeywordsIgnoreAuthority(k30mExpTypeService, "selectView.sql", criteria, order,
                keywordsCriteria, likeTarget);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void toEnabled(ExpTypeManagerDto criteria, AuthorityCriteriaDto authCriteria)
            throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException {
        super.toEnabled(k30mExpTypeService, criteria, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void toEnabledIgnoreAuthCompany(ExpTypeManagerDto criteria) throws KaidenOptimisticLockException {
        super.toEnabledIgnoreAuthCompany(k30mExpTypeService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void toDisabled(ExpTypeManagerDto criteria, AuthorityCriteriaDto authCriteria)
            throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException {
        super.toDisabled(k30mExpTypeService, criteria, authCriteria);
        
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void toDisabledIgnoreAuthCompany(ExpTypeManagerDto criteria) throws KaidenOptimisticLockException {
        super.toDisabledIgnoreAuthCompany(k30mExpTypeService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int entry(List<ExpTypeManagerDto> dataList, AuthorityCriteriaDto authCriteria)
            throws KaidenHaventAuthorityToCompanyException, KaidenDuplicationEntryException {
        return super.entry(k30mExpTypeService, dataList, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int entryIgnoreAuthCompany(List<ExpTypeManagerDto> dataList) throws KaidenDuplicationEntryException {
        return super.entryIgnoreAuthCompany(k30mExpTypeService, dataList);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int remove(ExpTypeManagerDto criteria, AuthorityCriteriaDto authCriteria)
            throws KaidenHaventAuthorityToCompanyException {
        return super.remove(k30mExpTypeService, criteria, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int removeIgnoreAuthCompany(ExpTypeManagerDto criteria) {
        return super.removeIgnoreAuthCompany(k30mExpTypeService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int renew(List<ExpTypeManagerDto> dataList, AuthorityCriteriaDto authCriteria)
            throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException {
        return super.renew(k30mExpTypeService, dataList, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public int renewIgnoreAuthCompany(List<ExpTypeManagerDto> dataList) throws KaidenOptimisticLockException {
        return super.renewIgnoreAuthCompany(k30mExpTypeService, dataList);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectTerms(ExpTypeManagerDto criteria, AuthorityCriteriaDto authCriteria) {
        return super.selectTerms(k30mExpTypeService, criteria, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectTermsIgnoreAuthCompany(ExpTypeManagerDto criteria) {
        return super.selectTermsIgnoreAuthCompany(k30mExpTypeService, criteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectListIncluedsSearchDate(ExpTypeManagerDto criteria,
            AuthorityCriteriaDto authCriteria, List<OrderDto> order) {
        return super.selectListIncluedsSearchDate(k30mExpTypeService, criteria, authCriteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public List<ExpTypeManagerDto> selectListIncluedsSearchDateIgnoreAuthCompany(ExpTypeManagerDto criteria,
            List<OrderDto> order) {
        return super.selectListIncluedsSearchDateIgnoreAuthCompany(k30mExpTypeService, criteria, order);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void divideTerm(ExpTypeManagerDto criteria, Date divideDate, AuthorityCriteriaDto authCriteria)
            throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException, KaidenValidateException {
        super.divideTerm(k30mExpTypeService, criteria, divideDate, authCriteria);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void divideTerm(ExpTypeManagerDto criteria, Date divideDate, AuthorityCriteriaDto authCriteria,
            String deleteFlag2nd) throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException,
            KaidenValidateException {
        String termCd2nd = super.divideTerm(k30mExpTypeService, criteria, divideDate, authCriteria);
        if (StringUtil.isNotEmpty(deleteFlag2nd)) {
            ExpTypeManagerDto criteria2nd = Beans.createAndCopy(ExpTypeManagerDto.class, criteria).execute();
            criteria2nd.termCd = termCd2nd;
            if (GenericFlag.isOn(deleteFlag2nd)) {
                this.toDisabled(criteria2nd, authCriteria);
            } else if (GenericFlag.isOff(deleteFlag2nd)) {
                this.toEnabled(criteria2nd, authCriteria);
            } else {
                throw KaidenIllegalParametersException.makeInstance();
            }
        }
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void divideTermIgnoreAuthCompany(ExpTypeManagerDto criteria, Date divideDate)
            throws KaidenOptimisticLockException, KaidenValidateException {
        super.divideTermIgnoreAuthCompany(k30mExpTypeService, criteria, divideDate);
        
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void divideTermIgnoreAuthCompany(ExpTypeManagerDto criteria, Date divideDate, String deleteFlag2nd)
            throws KaidenOptimisticLockException, KaidenValidateException {
        String termCd2nd = super.divideTermIgnoreAuthCompany(k30mExpTypeService, criteria, divideDate);
        if (StringUtil.isNotEmpty(deleteFlag2nd)) {
            ExpTypeManagerDto criteria2nd = Beans.createAndCopy(ExpTypeManagerDto.class, criteria).execute();
            criteria2nd.termCd = termCd2nd;
            if (GenericFlag.isOn(deleteFlag2nd)) {
                this.toDisabledIgnoreAuthCompany(criteria2nd);
            } else if (GenericFlag.isOff(deleteFlag2nd)) {
                this.toEnabledIgnoreAuthCompany(criteria2nd);
            } else {
                throw KaidenIllegalParametersException.makeInstance();
            }
        }
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void moveTerm(ExpTypeManagerDto criteria, Date newStartDate, Date newEndDate,
            AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException,
            KaidenOptimisticLockException, KaidenValidateException {
        super.moveTerm(k30mExpTypeService, criteria, newStartDate, newEndDate, authCriteria);
        
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void moveTermIgnoreAuthCompany(ExpTypeManagerDto criteria, Date newStartDate, Date newEndDate)
            throws KaidenOptimisticLockException, KaidenValidateException {
        super.moveTermIgnoreAuthCompany(k30mExpTypeService, criteria, newStartDate, newEndDate);
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public Class<? extends KaidenDto> getDtoClass() {
        return super.dtoClass;
    }
    
    /**
     * 重複チェック確認フィールドを返却.
     * <p>
     * 新規登録時、登録済みデータと引数の登録データの重複チェックを行うフィールドを返します。
     * </p>
     * 
     * @return 重複チェック確認フィールドリスト
     */
    @Override
    protected List<String> getDuplicationCheckField() {
        return Arrays.asList(new String[] {COMPANY_CD, EXP_TYPE_CD});
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * {@link #getValidateDefsDtoList4Entry()}で取得した定義を基にバリデートを実行します。
     * </p>
     */
    @Override
    public List<KaidenValidateResult> validate4Entry(List<?> dtoList, Map<String, String> surfaces) {
        if (dtoList == null) {
            throw KaidenIllegalParametersException.makeInstance();
        }
        return makeValidateExecuter(dtoList, surfaces, getValidateDefsDtoList4Entry()).executeAll(
                ErrorMode.ERROR_CONTINUE);
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * {@link #getValidateDefsDtoList4Renew()}で取得した定義を基にバリデートを実行します。
     * </p>
     */
    @Override
    public List<KaidenValidateResult> validate4Renew(List<?> dtoList, Map<String, String> surfaces) {
        if (dtoList == null) {
            throw KaidenIllegalParametersException.makeInstance();
        }
        return makeValidateExecuter(dtoList, surfaces, getValidateDefsDtoList4Renew()).executeAll(
                ErrorMode.ERROR_CONTINUE);
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 以下のバリデート定義のリストを返却します。
     * </p>
     * <table border="1">
     * <tr>
     * <th>項目名</th>
     * <th>検証内容</th>
     * </tr>
     * <tr>
     * <td>会社コード</td>
     * <td>必須、マスタ存在確認</td>
     * </tr>
     * <tr>
     * <td>経費区分コード</td>
     * <td>必須、100桁、皆伝コード</td>
     * </tr>
     * <tr>
     * <td>ロケールID</td>
     * <td>必須、ロケール妥当性</td>
     * </tr>
     * <tr>
     * <td>経費区分名称</td>
     * <td>必須、250桁</td>
     * </tr>
     * <tr>
     * <td>経費区分カテゴリ</td>
     * <td>250桁</td>
     * </tr>
     * <tr>
     * <td>開始日</td>
     * <td>必須、日付(システム期間内)</td>
     * </tr>
     * <tr>
     * <td>終了日</td>
     * <td>必須、日付(システム期間内)、開始日・終了日大小チェック</td>
     * </tr>
     * <tr>
     * <td>勘定科目コード</td>
     * <td>必須、100桁、皆伝コード、マスタ存在確認</td>
     * </tr>
     * <tr>
     * <td>税区分コード</td>
     * <td>必須、100桁、皆伝コード、マスタ存在確認</td>
     * </tr>
     * <tr>
     * <td>ソートキー</td>
     * <td>必須、数値</td>
     * </tr>
     * <tr>
     * <td>削除フラグ</td>
     * <td>フラグ妥当性</td>
     * </tr>
     * </table>
     */
    @Override
    public List<ValidateDefsDto> getValidateDefsDtoList4Entry() {
        List<ValidateDefsDto> result = new ArrayList<ValidateDefsDto>();
        // 会社コード
        result.add(new ValidateDefsDto(COMPANY_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(COMPANY_CD, VALID_COMPANY_EXISTS, COMPANY_CD, "", "true"));
        // 経費区分コード
        result.add(new ValidateDefsDto(EXP_TYPE_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(EXP_TYPE_CD, VALID_MAX_LENGTH, String.valueOf(EXP_TYPE_CD_LEN)));
        result.add(new ValidateDefsDto(EXP_TYPE_CD, VALID_KAIDEN_ID));
        // ロケールID
        result.add(new ValidateDefsDto(LOCALE_ID, VALID_REQUIRED));
        result.add(new ValidateDefsDto(LOCALE_ID, VALID_LOCALE));
        // 経費区分名称
        result.add(new ValidateDefsDto(EXP_TYPE_NAME, VALID_REQUIRED));
        result.add(new ValidateDefsDto(EXP_TYPE_NAME, VALID_MAX_LENGTH, String.valueOf(EXP_TYPE_NAME_LEN)));
        // 経費区分カテゴリ
        result.add(new ValidateDefsDto(EXP_TYPE_CATEGORY, VALID_MAX_LENGTH, String.valueOf(EXP_TYPE_CATEGORY_LEN)));
        // 開始日
        result.add(new ValidateDefsDto(START_DATE, VALID_REQUIRED));
        result.add(new ValidateDefsDto(START_DATE, VALID_DATE));
        // 終了日
        result.add(new ValidateDefsDto(END_DATE, VALID_REQUIRED));
        result.add(new ValidateDefsDto(END_DATE, VALID_DATE));
        result.add(new ValidateDefsDto(END_DATE, VALID_DATE_MIN, START_DATE));
        // 勘定科目コード
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_MAX_LENGTH, String.valueOf(ACCOUNT_CD_LEN)));
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_KAIDEN_ID));
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_ACCOUNT_EXISTS, ACCOUNT_CD, COMPANY_CD, "", "true"));
        // 税区分コード
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_MAX_LENGTH, String.valueOf(TAX_TYPE_CD_LEN)));
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_KAIDEN_ID));
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_TAX_TYPE_EXISTS, TAX_TYPE_CD, COMPANY_CD, "", "true"));
        // ソートキー
        result.add(new ValidateDefsDto(SORT_KEY, VALID_REQUIRED));
        result.add(new ValidateDefsDto(SORT_KEY, VALID_INTEGER, String.valueOf(SORT_KEY_LEN)));
        // 削除フラグ
        result.add(new ValidateDefsDto(DELETE_FLAG, VALID_FLAG));
        
        return result;
    }
    
    /**
     * {@inheritDoc}
     * <p>
     * 以下のバリデート定義のリストを返却します。
     * </p>
     * <table border="1">
     * <tr>
     * <th>項目名</th>
     * <th>検証内容</th>
     * </tr>
     * <tr>
     * <td>会社コード</td>
     * <td>必須、マスタ存在確認</td>
     * </tr>
     * <tr>
     * <td>経費区分コード</td>
     * <td>必須、100桁、皆伝コード</td>
     * </tr>
     * <tr>
     * <td>期間コード</td>
     * <td>必須、50桁、皆伝コード</td>
     * </tr>
     * <tr>
     * <td>ロケールID</td>
     * <td>必須、ロケール妥当性</td>
     * </tr>
     * <tr>
     * <td>経費区分名称</td>
     * <td>必須、250桁</td>
     * </tr>
     * <tr>
     * <td>経費区分カテゴリ</td>
     * <td>250桁</td>
     * </tr>
     * <tr>
     * <td>開始日</td>
     * <td>必須、日付(システム期間内)</td>
     * </tr>
     * <tr>
     * <td>終了日</td>
     * <td>必須、日付(システム期間内)、開始日・終了日大小チェック</td>
     * </tr>
     * <tr>
     * <td>勘定科目コード</td>
     * <td>必須、100桁、皆伝コード、マスタ存在確認</td>
     * </tr>
     * <tr>
     * <td>税区分コード</td>
     * <td>必須、100桁、皆伝コード、マスタ存在確認</td>
     * </tr>
     * <tr>
     * <td>ソートキー</td>
     * <td>必須、数値</td>
     * </tr>
     * </table>
     */
    @Override
    public List<ValidateDefsDto> getValidateDefsDtoList4Renew() {
        List<ValidateDefsDto> result = new ArrayList<ValidateDefsDto>();
        // 会社コード
        result.add(new ValidateDefsDto(COMPANY_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(COMPANY_CD, VALID_COMPANY_EXISTS, COMPANY_CD, "", "true"));
        // 経費区分コード
        result.add(new ValidateDefsDto(EXP_TYPE_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(EXP_TYPE_CD, VALID_MAX_LENGTH, String.valueOf(EXP_TYPE_CD_LEN)));
        result.add(new ValidateDefsDto(EXP_TYPE_CD, VALID_KAIDEN_ID));
        // 期間コード
        result.add(new ValidateDefsDto(TERM_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(TERM_CD, VALID_MAX_LENGTH, String.valueOf(TERM_CD_LEN)));
        result.add(new ValidateDefsDto(TERM_CD, VALID_KAIDEN_ID));
        // ロケールID
        result.add(new ValidateDefsDto(LOCALE_ID, VALID_REQUIRED));
        result.add(new ValidateDefsDto(LOCALE_ID, VALID_LOCALE));
        // 経費区分名称
        result.add(new ValidateDefsDto(EXP_TYPE_NAME, VALID_REQUIRED));
        result.add(new ValidateDefsDto(EXP_TYPE_NAME, VALID_MAX_LENGTH, String.valueOf(EXP_TYPE_NAME_LEN)));
        result.add(new ValidateDefsDto(EXP_TYPE_CATEGORY, VALID_MAX_LENGTH, String.valueOf(EXP_TYPE_CATEGORY_LEN)));
        // 開始日
        result.add(new ValidateDefsDto(START_DATE, VALID_REQUIRED));
        result.add(new ValidateDefsDto(START_DATE, VALID_DATE));
        // 終了日
        result.add(new ValidateDefsDto(END_DATE, VALID_REQUIRED));
        result.add(new ValidateDefsDto(END_DATE, VALID_DATE));
        result.add(new ValidateDefsDto(END_DATE, VALID_DATE_MIN, START_DATE));
        // 勘定科目コード
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_MAX_LENGTH, String.valueOf(ACCOUNT_CD_LEN)));
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_KAIDEN_ID));
        result.add(new ValidateDefsDto(ACCOUNT_CD, VALID_ACCOUNT_EXISTS, ACCOUNT_CD, COMPANY_CD, "", "true"));
        // 税区分コード
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_REQUIRED));
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_MAX_LENGTH, String.valueOf(TAX_TYPE_CD_LEN)));
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_KAIDEN_ID));
        result.add(new ValidateDefsDto(TAX_TYPE_CD, VALID_TAX_TYPE_EXISTS, TAX_TYPE_CD, COMPANY_CD, "", "true"));
        // ソートキー
        result.add(new ValidateDefsDto(SORT_KEY, VALID_REQUIRED));
        result.add(new ValidateDefsDto(SORT_KEY, VALID_INTEGER, String.valueOf(SORT_KEY_LEN)));
        
        return result;
    }
    
    /** {@inheritDoc} */
    @Override
    public Class<ExpTypeManagerDto> getMainManagerDtoClass() {
        return ExpTypeManagerDto.class;
    }
    
    @Override
    public List<ExpTypeManagerDto> selectListIgnoreAuthCompanyWithLock(ExpTypeManagerDto criteria, List<OrderDto> order) {
        Map<String, Object> criteriaMap = k30mExpTypeService.getCriteria(criteria);
        return complementEndDateForDisp(CollectionUtil.createListAndCopy(ExpTypeManagerDto.class,
                k30mExpTypeService.genericSelectList4Update(criteriaMap, order)));
    }
    
    /** {@inheritDoc} */
    @Override
    public List<String> getPkFileds() {
        return k30mExpTypeService.getPkFiled();
    }
    
    /**
     * {@inheritDoc}
     */
    @Override
    public void executeIterateLogic(ExpTypeManagerDto criteria, List<OrderDto> order,
            IterateBusinessLogicIF<ExpTypeManagerDto> logic) throws KaidenSystemException, KaidenApplicationException {
        super.iterateLogic(k30mExpTypeService, criteria, order, logic);
    }
    
    @Override
    public Map<String, Object> selectList4MstSearch(KaidenDto criteria, List<OrderDto> order,
            KeywordsCriteriaDto keywordsCriteria, SqlResultFilterIF[] filter) {
        String[] likeTarget = {EXP_TYPE_NAME, EXP_TYPE_CATEGORY, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D,
                EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME,
                ACCOUNT_NAME, TAX_TYPE_NAME};
        Map<String, Object> resultMap = super.selectListByKeywordsFilter(k30mExpTypeService, "selectView.sql",
                criteria, order, keywordsCriteria, likeTarget, filter);
        @SuppressWarnings("unchecked")
        List<ExpTypeManagerDto> newList = (List<ExpTypeManagerDto>) resultMap.get("resultList");
        resultMap.put("resultList", newList);
        
        return resultMap;
    }
}

5.3.2.2.7. ManagerDto

  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/exptype/ExpTypeManagerDto.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype;

import java.math.BigDecimal;
import java.sql.Timestamp;
import jp.co.slcs.kaiden2.base.foundation.model.dto.KaidenMasterManagerDto;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.impl.ExpTypeManagerImpl;

/**
 * 経費区分マスタDTO.
 * <p>
 * マネージャクラス({@link ExpTypeManagerImpl})へ渡すパラメータ、及びマネージャからの結果返却で当クラスを使用します。
 * </p>
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public class ExpTypeManagerDto extends KaidenMasterManagerDto {
    
    /** 会社コード. */
    public String companyCd;
    /** 経費区分コード. */
    public String expTypeCd;
    /** 期間コード. */
    public String termCd;
    /** ロケールid. */
    public String localeId;
    /** 経費区分名称. */
    public String expTypeName;
    /** 経費区分カテゴリ. */
    public String expTypeCategory;
    /** 開始日. */
    public Timestamp startDate;
    /** 終了日. */
    public Timestamp endDate;
    /** 勘定科目コード. */
    public String accountCd;
    /** 税区分コード. */
    public String taxTypeCd;
    /** ソートキー. */
    public Long sortKey;
    /** 削除フラグ. */
    public String deleteFlag;
    /** 予備項目a. */
    public String extensionA;
    /** 予備項目b. */
    public String extensionB;
    /** 予備項目c. */
    public String extensionC;
    /** 予備項目d. */
    public String extensionD;
    /** 予備項目e. */
    public String extensionE;
    /** 予備項目f. */
    public String extensionF;
    /** 予備項目g. */
    public String extensionG;
    /** 予備項目h. */
    public String extensionH;
    /** 予備項目i. */
    public String extensionI;
    /** 予備項目j. */
    public String extensionJ;
    /** 登録日時. */
    public Timestamp entryTs;
    /** 登録者コード. */
    public String entryUserCd;
    /** 更新カウンタ. */
    public Long renewCnt;
    /** 更新日時. */
    public Timestamp renewTs;
    /** 更新者コード. */
    public String renewUserCd;
    
    /** 会社名称(他マスタ名称). */
    public String companyName;
    /** 勘定科目名称(他マスタ名称). */
    public String accountName;
    /** 税区分名称(他マスタ名称). */
    public String taxTypeName;
    /** 税率(他マスタ). */
    public BigDecimal taxRate;
    
}
  • Path
    src/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/exptype/ExpTypeManagerDtoFieldName.java
package jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype;

import jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames;
import jp.co.slcs.kaiden2.product_workflow.foundation.manager.exptype.impl.ExpTypeManagerImpl;

/**
 * 経費区分マスタDTO フィールド名定義クラス.
 * <p>
 * マネージャクラス({@link ExpTypeManagerImpl})へ渡すパラメータ、及びマネージャからの結果返却で当クラスを使用します。
 * </p>
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
public final class ExpTypeManagerDtoFieldName extends EntityCommonFieldNames {
    
    /**
     * コンストラクタ.
     */
    private ExpTypeManagerDtoFieldName() {
    }
    
    /** 会社コード. */
    public static final String COMPANY_CD = EntityCommonFieldNames.COMPANY_CD;
    /** 経費区分コード. */
    public static final String EXP_TYPE_CD = "expTypeCd";
    /** 期間コード. */
    public static final String TERM_CD = EntityCommonFieldNames.TERM_CD;
    /** ロケールid. */
    public static final String LOCALE_ID = EntityCommonFieldNames.LOCALE_ID;
    /** 経費区分名称. */
    public static final String EXP_TYPE_NAME = "expTypeName";
    /** 経費区分カテゴリ. */
    public static final String EXP_TYPE_CATEGORY = "expTypeCategory";
    /** 開始日. */
    public static final String START_DATE = EntityCommonFieldNames.START_DATE;
    /** 終了日. */
    public static final String END_DATE = EntityCommonFieldNames.END_DATE;
    /** 勘定科目コード. */
    public static final String ACCOUNT_CD = "accountCd";
    /** 税区分コード. */
    public static final String TAX_TYPE_CD = "taxTypeCd";
    /** ソートキー. */
    public static final String SORT_KEY = EntityCommonFieldNames.SORT_KEY;
    /** 削除フラグ. */
    public static final String DELETE_FLAG = EntityCommonFieldNames.DELETE_FLAG;
    
    /** 会社名称(他マスタ名称). */
    public static final String COMPANY_NAME = "companyName";
    /** 勘定科目名称(他マスタ名称). */
    public static final String ACCOUNT_NAME = "accountName";
    /** 税区分名称(他マスタ名称). */
    public static final String TAX_TYPE_NAME = "taxTypeName";
    /** 税率(他マスタ). */
    public static final String TAX_RATE = "taxRate";
}

5.3.2.3. Java(S2JDBC)

5.3.2.3.1. Entity

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/K30mExpType.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.entity;

import java.io.Serializable;
import java.sql.Timestamp;
import javax.annotation.Generated;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import jp.co.slcs.kaiden2.base.foundation.model.entity.GenerateEntity;

/**
 * 経費区分マスタ.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Entity
@Table(name = "k30m_exp_type")
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl" })
public final class K30mExpType extends GenerateEntity implements Serializable {
    
    /** シリアルバージョンUID. */
    private static final long serialVersionUID = 1L;

    /** 会社コード. */
    @Id
    @Column(name = "company_cd", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String companyCd;

    /** 経費区分コード. */
    @Id
    @Column(name = "exp_type_cd", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String expTypeCd;

    /** 期間コード. */
    @Id
    @Column(name = "term_cd", columnDefinition = "varchar2(50)", nullable = false, unique = false)
    public String termCd;

    /** ロケールid. */
    @Id
    @Column(name = "locale_id", columnDefinition = "varchar2(50)", nullable = false, unique = false)
    public String localeId;

    /** 経費区分名称. */
    @Column(name = "exp_type_name", columnDefinition = "varchar2(1000)", nullable = false, unique = false)
    public String expTypeName;

    /** 経費区分カテゴリ. */
    @Column(name = "exp_type_category", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String expTypeCategory;

    /** 開始日. */
    @Column(name = "start_date", columnDefinition = "timestamp(6)", nullable = false, unique = false)
    public Timestamp startDate;

    /** 終了日. */
    @Column(name = "end_date", columnDefinition = "timestamp(6)", nullable = false, unique = false)
    public Timestamp endDate;

    /** 勘定科目コード. */
    @Column(name = "account_cd", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String accountCd;

    /** 税区分コード. */
    @Column(name = "tax_type_cd", columnDefinition = "varchar2(100)", nullable = false, unique = false)
    public String taxTypeCd;

    /** ソートキー. */
    @Column(name = "sort_key", columnDefinition = "number(15,0)", nullable = false, unique = false)
    public Long sortKey;

    /** 削除フラグ. */
    @Column(name = "delete_flag", columnDefinition = "varchar2(1)", nullable = false, unique = false)
    public String deleteFlag;

    /** 予備項目a. */
    @Column(name = "extension_a", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionA;

    /** 予備項目b. */
    @Column(name = "extension_b", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionB;

    /** 予備項目c. */
    @Column(name = "extension_c", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionC;

    /** 予備項目d. */
    @Column(name = "extension_d", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionD;

    /** 予備項目e. */
    @Column(name = "extension_e", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionE;

    /** 予備項目f. */
    @Column(name = "extension_f", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionF;

    /** 予備項目g. */
    @Column(name = "extension_g", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionG;

    /** 予備項目h. */
    @Column(name = "extension_h", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionH;

    /** 予備項目i. */
    @Column(name = "extension_i", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionI;

    /** 予備項目j. */
    @Column(name = "extension_j", columnDefinition = "varchar2(1000)", nullable = true, unique = false)
    public String extensionJ;
}

5.3.2.3.2. Names

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/K30mExpTypeNames.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.entity;

import java.sql.Timestamp;
import javax.annotation.Generated;
import org.seasar.extension.jdbc.name.PropertyName;

/**
 * {@link K30mExpType}の名称クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.NamesModelFactoryImpl" })
public final class K30mExpTypeNames {
    
    /**
     * デフォルトコンストラクタ.
     */
     private K30mExpTypeNames() {
         super();
     }
    
    /**
     * companyCdのプロパティ名を返却.
     * 
     * @return companyCdのプロパティ名
     */
    public static PropertyName<String> companyCd() {
        return new PropertyName<String>("companyCd");
    }
    
    /**
     * expTypeCdのプロパティ名を返却.
     * 
     * @return expTypeCdのプロパティ名
     */
    public static PropertyName<String> expTypeCd() {
        return new PropertyName<String>("expTypeCd");
    }
    
    /**
     * termCdのプロパティ名を返却.
     * 
     * @return termCdのプロパティ名
     */
    public static PropertyName<String> termCd() {
        return new PropertyName<String>("termCd");
    }
    
    /**
     * localeIdのプロパティ名を返却.
     * 
     * @return localeIdのプロパティ名
     */
    public static PropertyName<String> localeId() {
        return new PropertyName<String>("localeId");
    }
    
    /**
     * expTypeNameのプロパティ名を返却.
     * 
     * @return expTypeNameのプロパティ名
     */
    public static PropertyName<String> expTypeName() {
        return new PropertyName<String>("expTypeName");
    }
    
    /**
     * expTypeCategoryのプロパティ名を返却.
     * 
     * @return expTypeCategoryのプロパティ名
     */
    public static PropertyName<String> expTypeCategory() {
        return new PropertyName<String>("expTypeCategory");
    }
    
    /**
     * startDateのプロパティ名を返却.
     * 
     * @return startDateのプロパティ名
     */
    public static PropertyName<Timestamp> startDate() {
        return new PropertyName<Timestamp>("startDate");
    }
    
    /**
     * endDateのプロパティ名を返却.
     * 
     * @return endDateのプロパティ名
     */
    public static PropertyName<Timestamp> endDate() {
        return new PropertyName<Timestamp>("endDate");
    }
    
    /**
     * accountCdのプロパティ名を返却.
     * 
     * @return accountCdのプロパティ名
     */
    public static PropertyName<String> accountCd() {
        return new PropertyName<String>("accountCd");
    }
    
    /**
     * taxTypeCdのプロパティ名を返却.
     * 
     * @return taxTypeCdのプロパティ名
     */
    public static PropertyName<String> taxTypeCd() {
        return new PropertyName<String>("taxTypeCd");
    }
    
    /**
     * sortKeyのプロパティ名を返却.
     * 
     * @return sortKeyのプロパティ名
     */
    public static PropertyName<Long> sortKey() {
        return new PropertyName<Long>("sortKey");
    }
    
    /**
     * deleteFlagのプロパティ名を返却.
     * 
     * @return deleteFlagのプロパティ名
     */
    public static PropertyName<String> deleteFlag() {
        return new PropertyName<String>("deleteFlag");
    }
    
    /**
     * extensionAのプロパティ名を返却.
     * 
     * @return extensionAのプロパティ名
     */
    public static PropertyName<String> extensionA() {
        return new PropertyName<String>("extensionA");
    }
    
    /**
     * extensionBのプロパティ名を返却.
     * 
     * @return extensionBのプロパティ名
     */
    public static PropertyName<String> extensionB() {
        return new PropertyName<String>("extensionB");
    }
    
    /**
     * extensionCのプロパティ名を返却.
     * 
     * @return extensionCのプロパティ名
     */
    public static PropertyName<String> extensionC() {
        return new PropertyName<String>("extensionC");
    }
    
    /**
     * extensionDのプロパティ名を返却.
     * 
     * @return extensionDのプロパティ名
     */
    public static PropertyName<String> extensionD() {
        return new PropertyName<String>("extensionD");
    }
    
    /**
     * extensionEのプロパティ名を返却.
     * 
     * @return extensionEのプロパティ名
     */
    public static PropertyName<String> extensionE() {
        return new PropertyName<String>("extensionE");
    }
    
    /**
     * extensionFのプロパティ名を返却.
     * 
     * @return extensionFのプロパティ名
     */
    public static PropertyName<String> extensionF() {
        return new PropertyName<String>("extensionF");
    }
    
    /**
     * extensionGのプロパティ名を返却.
     * 
     * @return extensionGのプロパティ名
     */
    public static PropertyName<String> extensionG() {
        return new PropertyName<String>("extensionG");
    }
    
    /**
     * extensionHのプロパティ名を返却.
     * 
     * @return extensionHのプロパティ名
     */
    public static PropertyName<String> extensionH() {
        return new PropertyName<String>("extensionH");
    }
    
    /**
     * extensionIのプロパティ名を返却.
     * 
     * @return extensionIのプロパティ名
     */
    public static PropertyName<String> extensionI() {
        return new PropertyName<String>("extensionI");
    }
    
    /**
     * extensionJのプロパティ名を返却.
     * 
     * @return extensionJのプロパティ名
     */
    public static PropertyName<String> extensionJ() {
        return new PropertyName<String>("extensionJ");
    }
    
    /**
     * entryTsのプロパティ名を返却.
     * 
     * @return entryTsのプロパティ名
     */
    public static PropertyName<Timestamp> entryTs() {
        return new PropertyName<Timestamp>("entryTs");
    }
    
    /**
     * entryUserCdのプロパティ名を返却.
     * 
     * @return entryUserCdのプロパティ名
     */
    public static PropertyName<String> entryUserCd() {
        return new PropertyName<String>("entryUserCd");
    }
    
    /**
     * renewCntのプロパティ名を返却.
     * 
     * @return renewCntのプロパティ名
     */
    public static PropertyName<Long> renewCnt() {
        return new PropertyName<Long>("renewCnt");
    }
    
    /**
     * renewTsのプロパティ名を返却.
     * 
     * @return renewTsのプロパティ名
     */
    public static PropertyName<Timestamp> renewTs() {
        return new PropertyName<Timestamp>("renewTs");
    }
    
    /**
     * renewUserCdのプロパティ名を返却.
     * 
     * @return renewUserCdのプロパティ名
     */
    public static PropertyName<String> renewUserCd() {
        return new PropertyName<String>("renewUserCd");
    }
    
    /**
     * @author S2JDBC-Gen
     */
    public static class _K30mExpTypeNames extends PropertyName<K30mExpType> {
        
        /**
         * インスタンスを構築.
         */
        public _K30mExpTypeNames() {
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param name 名前
         */
        public _K30mExpTypeNames(final String name) {
            super(name);
        }
        
        /**
         * インスタンスを構築.
         * 
         * @param parent 親
         * @param name 名前
         */
        public _K30mExpTypeNames(final PropertyName<?> parent, final String name) {
            super(parent, name);
        }
        
        /**
         * companyCdのプロパティ名を返却.
         *
         * @return companyCdのプロパティ名
         */
        public PropertyName<String> companyCd() {
            return new PropertyName<String>(this, "companyCd");
        }
        
        /**
         * expTypeCdのプロパティ名を返却.
         *
         * @return expTypeCdのプロパティ名
         */
        public PropertyName<String> expTypeCd() {
            return new PropertyName<String>(this, "expTypeCd");
        }
        
        /**
         * termCdのプロパティ名を返却.
         *
         * @return termCdのプロパティ名
         */
        public PropertyName<String> termCd() {
            return new PropertyName<String>(this, "termCd");
        }
        
        /**
         * localeIdのプロパティ名を返却.
         *
         * @return localeIdのプロパティ名
         */
        public PropertyName<String> localeId() {
            return new PropertyName<String>(this, "localeId");
        }
        
        /**
         * expTypeNameのプロパティ名を返却.
         *
         * @return expTypeNameのプロパティ名
         */
        public PropertyName<String> expTypeName() {
            return new PropertyName<String>(this, "expTypeName");
        }
        
        /**
         * expTypeCategoryのプロパティ名を返却.
         *
         * @return expTypeCategoryのプロパティ名
         */
        public PropertyName<String> expTypeCategory() {
            return new PropertyName<String>(this, "expTypeCategory");
        }
        
        /**
         * startDateのプロパティ名を返却.
         *
         * @return startDateのプロパティ名
         */
        public PropertyName<Timestamp> startDate() {
            return new PropertyName<Timestamp>(this, "startDate");
        }
        
        /**
         * endDateのプロパティ名を返却.
         *
         * @return endDateのプロパティ名
         */
        public PropertyName<Timestamp> endDate() {
            return new PropertyName<Timestamp>(this, "endDate");
        }
        
        /**
         * accountCdのプロパティ名を返却.
         *
         * @return accountCdのプロパティ名
         */
        public PropertyName<String> accountCd() {
            return new PropertyName<String>(this, "accountCd");
        }
        
        /**
         * taxTypeCdのプロパティ名を返却.
         *
         * @return taxTypeCdのプロパティ名
         */
        public PropertyName<String> taxTypeCd() {
            return new PropertyName<String>(this, "taxTypeCd");
        }
        
        /**
         * sortKeyのプロパティ名を返却.
         *
         * @return sortKeyのプロパティ名
         */
        public PropertyName<Long> sortKey() {
            return new PropertyName<Long>(this, "sortKey");
        }
        
        /**
         * deleteFlagのプロパティ名を返却.
         *
         * @return deleteFlagのプロパティ名
         */
        public PropertyName<String> deleteFlag() {
            return new PropertyName<String>(this, "deleteFlag");
        }
        
        /**
         * extensionAのプロパティ名を返却.
         *
         * @return extensionAのプロパティ名
         */
        public PropertyName<String> extensionA() {
            return new PropertyName<String>(this, "extensionA");
        }
        
        /**
         * extensionBのプロパティ名を返却.
         *
         * @return extensionBのプロパティ名
         */
        public PropertyName<String> extensionB() {
            return new PropertyName<String>(this, "extensionB");
        }
        
        /**
         * extensionCのプロパティ名を返却.
         *
         * @return extensionCのプロパティ名
         */
        public PropertyName<String> extensionC() {
            return new PropertyName<String>(this, "extensionC");
        }
        
        /**
         * extensionDのプロパティ名を返却.
         *
         * @return extensionDのプロパティ名
         */
        public PropertyName<String> extensionD() {
            return new PropertyName<String>(this, "extensionD");
        }
        
        /**
         * extensionEのプロパティ名を返却.
         *
         * @return extensionEのプロパティ名
         */
        public PropertyName<String> extensionE() {
            return new PropertyName<String>(this, "extensionE");
        }
        
        /**
         * extensionFのプロパティ名を返却.
         *
         * @return extensionFのプロパティ名
         */
        public PropertyName<String> extensionF() {
            return new PropertyName<String>(this, "extensionF");
        }
        
        /**
         * extensionGのプロパティ名を返却.
         *
         * @return extensionGのプロパティ名
         */
        public PropertyName<String> extensionG() {
            return new PropertyName<String>(this, "extensionG");
        }
        
        /**
         * extensionHのプロパティ名を返却.
         *
         * @return extensionHのプロパティ名
         */
        public PropertyName<String> extensionH() {
            return new PropertyName<String>(this, "extensionH");
        }
        
        /**
         * extensionIのプロパティ名を返却.
         *
         * @return extensionIのプロパティ名
         */
        public PropertyName<String> extensionI() {
            return new PropertyName<String>(this, "extensionI");
        }
        
        /**
         * extensionJのプロパティ名を返却.
         *
         * @return extensionJのプロパティ名
         */
        public PropertyName<String> extensionJ() {
            return new PropertyName<String>(this, "extensionJ");
        }
        
        /**
         * entryTsのプロパティ名を返却.
         *
         * @return entryTsのプロパティ名
         */
        public PropertyName<Timestamp> entryTs() {
            return new PropertyName<Timestamp>(this, "entryTs");
        }
        
        /**
         * entryUserCdのプロパティ名を返却.
         *
         * @return entryUserCdのプロパティ名
         */
        public PropertyName<String> entryUserCd() {
            return new PropertyName<String>(this, "entryUserCd");
        }
        
        /**
         * renewCntのプロパティ名を返却.
         *
         * @return renewCntのプロパティ名
         */
        public PropertyName<Long> renewCnt() {
            return new PropertyName<Long>(this, "renewCnt");
        }
        
        /**
         * renewTsのプロパティ名を返却.
         *
         * @return renewTsのプロパティ名
         */
        public PropertyName<Timestamp> renewTs() {
            return new PropertyName<Timestamp>(this, "renewTs");
        }
        
        /**
         * renewUserCdのプロパティ名を返却.
         *
         * @return renewUserCdのプロパティ名
         */
        public PropertyName<String> renewUserCd() {
            return new PropertyName<String>(this, "renewUserCd");
        }
    }
}

5.3.2.3.3. Service

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30mExpTypeService.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.service;

import javax.annotation.Generated;
import jp.co.slcs.kaiden2.base.foundation.model.service.GenerateService;
import jp.co.slcs.kaiden2.product_workflow.foundation.model.entity.K30mExpType;

/**
 * {@link K30mExpType}のサービスクラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.ServiceModelFactoryImpl" })
public final class K30mExpTypeService extends GenerateService<K30mExpType> {
    //
}

5.3.2.3.4. Condition

  • Path
    src/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30mExpTypeCondition.java
package jp.co.slcs.kaiden2.product_workflow.foundation.model.service;

import java.sql.Timestamp;
import javax.annotation.Generated;
import org.seasar.extension.jdbc.where.ComplexWhere;
import org.seasar.extension.jdbc.where.condition.AbstractEntityCondition;
import org.seasar.extension.jdbc.where.condition.NotNullableCondition;
import org.seasar.extension.jdbc.where.condition.NotNullableStringCondition;
import org.seasar.extension.jdbc.where.condition.NullableStringCondition;

/**
 * {@link K30mExpType}の条件クラス.
 * 
 * @author Sumitomo Life Information Systems Co.,Ltd.
 */
@Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.ConditionModelFactoryImpl" })
public final class K30mExpTypeCondition extends
        AbstractEntityCondition<K30mExpTypeCondition> {
    
    /**
     * インスタンスを構築.
     */
    public K30mExpTypeCondition() {
    }
    
    /**
     * インスタンスを構築.
     * 
     * @param prefix プレフィックス
     * @param where 検索条件
     */
    public K30mExpTypeCondition(String prefix, ComplexWhere where) {
        super(prefix, where);
    }
    
    /** companyCdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> companyCd =
        new NotNullableStringCondition<K30mExpTypeCondition>("companyCd", this);
    
    /** expTypeCdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> expTypeCd =
        new NotNullableStringCondition<K30mExpTypeCondition>("expTypeCd", this);
    
    /** termCdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> termCd =
        new NotNullableStringCondition<K30mExpTypeCondition>("termCd", this);
    
    /** localeIdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> localeId =
        new NotNullableStringCondition<K30mExpTypeCondition>("localeId", this);
    
    /** expTypeNameの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> expTypeName =
        new NotNullableStringCondition<K30mExpTypeCondition>("expTypeName", this);
    
    /** expTypeCategoryの条件. */
    public NullableStringCondition<K30mExpTypeCondition> expTypeCategory =
        new NullableStringCondition<K30mExpTypeCondition>("expTypeCategory", this);
    
    /** startDateの条件. */
    public NotNullableCondition<K30mExpTypeCondition, Timestamp> startDate =
        new NotNullableCondition<K30mExpTypeCondition, Timestamp>("startDate", this);
    
    /** endDateの条件. */
    public NotNullableCondition<K30mExpTypeCondition, Timestamp> endDate =
        new NotNullableCondition<K30mExpTypeCondition, Timestamp>("endDate", this);
    
    /** accountCdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> accountCd =
        new NotNullableStringCondition<K30mExpTypeCondition>("accountCd", this);
    
    /** taxTypeCdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> taxTypeCd =
        new NotNullableStringCondition<K30mExpTypeCondition>("taxTypeCd", this);
    
    /** sortKeyの条件. */
    public NotNullableCondition<K30mExpTypeCondition, Long> sortKey =
        new NotNullableCondition<K30mExpTypeCondition, Long>("sortKey", this);
    
    /** deleteFlagの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> deleteFlag =
        new NotNullableStringCondition<K30mExpTypeCondition>("deleteFlag", this);
    
    /** extensionAの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionA =
        new NullableStringCondition<K30mExpTypeCondition>("extensionA", this);
    
    /** extensionBの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionB =
        new NullableStringCondition<K30mExpTypeCondition>("extensionB", this);
    
    /** extensionCの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionC =
        new NullableStringCondition<K30mExpTypeCondition>("extensionC", this);
    
    /** extensionDの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionD =
        new NullableStringCondition<K30mExpTypeCondition>("extensionD", this);
    
    /** extensionEの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionE =
        new NullableStringCondition<K30mExpTypeCondition>("extensionE", this);
    
    /** extensionFの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionF =
        new NullableStringCondition<K30mExpTypeCondition>("extensionF", this);
    
    /** extensionGの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionG =
        new NullableStringCondition<K30mExpTypeCondition>("extensionG", this);
    
    /** extensionHの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionH =
        new NullableStringCondition<K30mExpTypeCondition>("extensionH", this);
    
    /** extensionIの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionI =
        new NullableStringCondition<K30mExpTypeCondition>("extensionI", this);
    
    /** extensionJの条件. */
    public NullableStringCondition<K30mExpTypeCondition> extensionJ =
        new NullableStringCondition<K30mExpTypeCondition>("extensionJ", this);
    
    /** entryTsの条件. */
    public NotNullableCondition<K30mExpTypeCondition, Timestamp> entryTs =
        new NotNullableCondition<K30mExpTypeCondition, Timestamp>("entryTs", this);
    
    /** entryUserCdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> entryUserCd =
        new NotNullableStringCondition<K30mExpTypeCondition>("entryUserCd", this);
    
    /** renewCntの条件. */
    public NotNullableCondition<K30mExpTypeCondition, Long> renewCnt =
        new NotNullableCondition<K30mExpTypeCondition, Long>("renewCnt", this);
    
    /** renewTsの条件. */
    public NotNullableCondition<K30mExpTypeCondition, Timestamp> renewTs =
        new NotNullableCondition<K30mExpTypeCondition, Timestamp>("renewTs", this);
    
    /** renewUserCdの条件. */
    public NotNullableStringCondition<K30mExpTypeCondition> renewUserCd =
        new NotNullableStringCondition<K30mExpTypeCondition>("renewUserCd", this);
}

5.3.2.4. SQL

5.3.2.4.1. 検索

  • Path
    src/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30mExpTypeService/selectView.sql
select
  exp.company_cd 
, exp.exp_type_cd
, exp.term_cd
, exp.locale_id
, exp.exp_type_name
, exp.exp_type_category
, exp.start_date
, exp.end_date
, exp.account_cd
, exp.tax_type_cd
, exp.sort_key
, exp.delete_flag
, exp.extension_a
, exp.extension_b
, exp.extension_c
, exp.extension_d
, exp.extension_e
, exp.extension_f
, exp.extension_g
, exp.extension_h
, exp.extension_i
, exp.extension_j
, exp.entry_ts
, exp.entry_user_cd
, exp.renew_cnt
, exp.renew_ts
, exp.renew_user_cd
, dept.department_name as company_name
, account.account_name as account_name
, tax.tax_type_name as tax_type_name
, tax.tax_rate as tax_rate
from k30m_exp_type exp
   left join ( select imm_department.company_cd
                    , imm_department.department_set_cd
                    , imm_department.department_cd
                    , imm_department.locale_id
                    , imm_department.start_date
                    , imm_department.end_date
                    , imm_department.department_name
              from imm_department) dept
     on  exp.company_cd = dept.company_cd
     and exp.company_cd = dept.department_set_cd
     and exp.company_cd = dept.department_cd
     and exp.locale_id = dept.locale_id
     /*IF searchCriteriaDate != null*/
     and dept.start_date <= /*searchCriteriaDate*/'2000/01/01'
     and dept.end_date > /*searchCriteriaDate*/'2000/01/01'
     --ELSE and dept.start_date <= exp.start_date 
     --ELSE and dept.end_date > exp.start_date 
     /*END*/
   left join k30m_account account
     on  exp.company_cd = account.company_cd
     and exp.account_cd = account.account_cd
     and exp.locale_id = account.locale_id
     /*IF searchCriteriaDate != null*/
     and account.start_date <= /*searchCriteriaDate*/'2000/01/01'
     and account.end_date > /*searchCriteriaDate*/'2000/01/01'
     --ELSE and account.start_date <= exp.start_date 
     --ELSE and account.end_date > exp.start_date 
     /*END*/
   left join k30m_tax_type tax
     on  exp.company_cd = tax.company_cd
     and exp.tax_type_cd = tax.tax_type_cd
     and exp.locale_id = tax.locale_id
     /*IF searchCriteriaDate != null*/
     and tax.start_date <= /*searchCriteriaDate*/'2000/01/01'
     and tax.end_date > /*searchCriteriaDate*/'2000/01/01'
     --ELSE and tax.start_date <= exp.start_date 
     --ELSE and tax.end_date > exp.start_date 
     /*END*/
/*BEGIN*/
where
/*IF companyCd != null*/
    exp.company_cd in/*companyCd*/('comp')
/*END*/
/*IF expTypeCd != null*/
  and exp.exp_type_cd = /*expTypeCd*/'expTypeCd'
/*END*/
/*IF termCd != null*/
  and exp.term_cd = /*termCd*/'termCd'
/*END*/
/*IF localeId != null*/
  and exp.locale_id = /*localeId*/'localeId'
/*END*/
/*IF expTypeName != null*/
  and exp.exp_type_name like /*expTypeName*/'%' ESCAPE '$'
/*END*/
/*IF expTypeCategory != null*/
  and exp.exp_type_category like /*expTypeCategory*/'expTypeCategory' ESCAPE '$'
/*END*/
/*IF searchCriteriaDate != null*/
  and exp.start_date <= /*searchCriteriaDate*/'1900/01/01'
  and exp.end_date    > /*searchCriteriaDate*/'2999/12/31'
/*END*/
/*IF accountCd != null*/
  and exp.account_cd = /*accountCd*/'accountCd'
/*END*/
/*IF taxTypeCd != null*/
  and exp.tax_type_cd = /*taxTypeCd*/'taxTypeCd'
/*END*/
/*IF sortKey != null*/
  and exp.sort_key = /*sortKey*/'0'
/*END*/
/*IF deleteFlag != null*/
  and exp.delete_flag = /*deleteFlag*/'0' 
/*END*/
/*IF extensionA != null*/
  and exp.extension_a like /*extensionA*/'extensionA' ESCAPE '$'
/*END*/
/*IF extensionB != null*/
  and exp.extension_b like /*extensionB*/'extensionB' ESCAPE '$'
/*END*/
/*IF extensionC != null*/
  and exp.extension_c like /*extensionC*/'extensionC' ESCAPE '$'
/*END*/
/*IF extensionD != null*/
  and exp.extension_d like /*extensionD*/'extensionD' ESCAPE '$'
/*END*/
/*IF extensionE != null*/
  and exp.extension_e like /*extensionE*/'extensionE' ESCAPE '$'
/*END*/
/*IF extensionF != null*/
  and exp.extension_f like /*extensionF*/'extensionF' ESCAPE '$'
/*END*/
/*IF extensionG != null*/
  and exp.extension_g like /*extensionG*/'extensionG' ESCAPE '$'
/*END*/
/*IF extensionH != null*/
  and exp.extension_h like /*extensionH*/'extensionH' ESCAPE '$'
/*END*/
/*IF extensionI != null*/
  and exp.extension_i like /*extensionI*/'extensionI' ESCAPE '$'
/*END*/
/*IF extensionJ != null*/
  and exp.extension_j like /*extensionJ*/'extensionJ' ESCAPE '$'
/*END*/ 
/*IF companyName != null*/
  and dept.department_name like /*companyName*/'companyName' ESCAPE '$'
/*END*/ 
/*IF accountName != null*/
  and account.account_name like /*accountName*/'accountName' ESCAPE '$'
/*END*/ 
/*IF taxTypeName != null*/
  and tax.tax_type_name like /*taxTypeName*/'taxTypeName' ESCAPE '$'
/*END*/ 
/*IF taxRate != null*/
  and tax.tax_rate = /*taxRate*/'0' 
/*END*/ 
/*END*/
/*IF orderBy != null*/
 ORDER BY /*$orderBy*/company_cd
/*END*/

5.3.2.5. XML

  • Path
    src/main/webapp/WEB-INF/classes/jp/co/slcs/kaiden2/product_workflow/feature/action/kaiden/master/ExpTypeMasterMaintenanceSettings.xml
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<genericMasterMaintenanceSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterMaintenanceSettings">
  <!-- 画面タイトルラベルID -->
  <titleSurfaceKey>PWKF.master.expType.title</titleSurfaceKey>
  <!-- 検索画面JSPフルパス -->
  <searchGadgetJsp></searchGadgetJsp><!-- デフォルトを利用 -->
  <!-- メンテナンス画面JSPフルパス -->
  <maintenanceGadgetJsp>/WEB-INF/view/kaiden2/product_workflow/master/expType/expTypeMainte.jsp</maintenanceGadgetJsp>
  <!-- AjaxAccessUrl -->
  <ajaxAccessUrl>kaiden/master/expType</ajaxAccessUrl>
  <!-- 1ページあたりの件数(0以下はページングせずすべて表示) -->
  <limit>20</limit>
  <!-- 検索条件の検索基準日 使用/不使用 -->
  <useSearchCriteriaDate>true</useSearchCriteriaDate>
  <!-- 検索条件の検索基準日 必須/任意 -->
  <requiredSearchCriteriaDate>true</requiredSearchCriteriaDate>
  <!-- 検索条件の検索基準日 デフォルト値(システム日付) 設定/非設定(必須の場合にはこの設定にかかわらずデフォルト値が設定される) -->
  <defaultSearchCriteriaDate>true</defaultSearchCriteriaDate>
  <!-- 検索条件の会社 使用/不使用 -->
  <useSearchCompany>true</useSearchCompany>
  <!-- 検索条件のロケール 使用/不使用 -->
  <useSearchLocale>true</useSearchLocale>
  <!-- 検索条件のステータス無効データも検索。 使用/不使用 -->
  <useSearchWithDisabled>true</useSearchWithDisabled>
  <!-- 汎用一覧・検索画面の行番号ラベルID -->
  <rownumberSurfaceKey></rownumberSurfaceKey><!-- デフォルトを利用 -->
  <!-- 汎用一覧・検索画面のカラム設定 -->
  <listCols>
    <listCol>
      <!-- 対象マスタのフィールドキー -->
      <fieldKey>expTypeCd</fieldKey>
      <!-- キーワード検索対象とするか否か -->
      <keywordSearchTarget>true</keywordSearchTarget>
      <!-- 表示幅 -->
      <width>120px</width>
      <!-- 表示位置 -->
      <align></align>
      <!-- ヘッダラベルID -->
      <headerSurfaceKey>PWKF.expTypeCd</headerSurfaceKey>
      <!-- ソート可能か否か -->
      <sortable>true</sortable>
    </listCol>
    <listCol>
      <fieldKey>expTypeName</fieldKey>
      <keywordSearchTarget>true</keywordSearchTarget>
      <width></width>
      <align></align>
      <headerSurfaceKey>PWKF.expTypeName</headerSurfaceKey>
      <sortable>true</sortable>
    </listCol>
    <listCol>
      <fieldKey>accountCd</fieldKey>
      <keywordSearchTarget>true</keywordSearchTarget>
      <width>120px</width>
      <align></align>
      <headerSurfaceKey>PWKF.accountCd</headerSurfaceKey>
      <sortable>true</sortable>
    </listCol>
    <listCol>
      <fieldKey>accountName</fieldKey>
      <keywordSearchTarget>true</keywordSearchTarget>
      <width></width>
      <align></align>
      <headerSurfaceKey>PWKF.accountName</headerSurfaceKey>
      <sortable>true</sortable>
    </listCol>
    <listCol>
      <fieldKey>taxTypeName</fieldKey>
      <keywordSearchTarget>true</keywordSearchTarget>
      <width></width>
      <align></align>
      <headerSurfaceKey>PWKF.taxTypeName</headerSurfaceKey>
      <sortable>true</sortable>
    </listCol>
    <listCol>
      <fieldKey>sortKey</fieldKey>
      <keywordSearchTarget>false</keywordSearchTarget>
      <width>90px</width>
      <align>right</align>
      <headerSurfaceKey>BASE.sortKey</headerSurfaceKey>
      <sortable>true</sortable>
    </listCol>
    <listCol>
      <fieldKey>deleteFlag</fieldKey>
      <keywordSearchTarget>false</keywordSearchTarget>
      <width>100px</width>
      <align>center</align>
      <headerSurfaceKey>BASE.status</headerSurfaceKey>
      <sortable>false</sortable>
    </listCol>
  </listCols>
  <!-- 検索・一覧画面のソート順 (汎用マスタ一覧は、第二ソートキーまで有効)-->
  <orders>
    <order>
      <fieldKey>sortKey</fieldKey>
      <type>asc</type>
    </order>
    <order>
      <fieldKey>expTypeCd</fieldKey>
      <type>asc</type>
    </order>
  </orders>
  <!-- 対象マスタの主キーフィールド -->
  <pkFields>
    <pkField>companyCd</pkField>
    <pkField>expTypeCd</pkField>
    <pkField>termCd</pkField>
    <pkField>localeId</pkField>
  </pkFields>
</genericMasterMaintenanceSettings>

5.3.2.6. JSP

  • Path
    src/main/webapp/WEB-INF/view/kaiden2/product_workflow/master/expType/expTypeMainte.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="im" uri="http://www.intra-mart.co.jp/taglib/im-tenant" %>
<%@ taglib prefix="k" uri="http://kaiden.slcs.co.jp/taglib/ui" %>
<%@ taglib prefix="klist_base" uri="http://kaiden.slcs.co.jp/taglib/listdata/base" %>
<%@ taglib prefix="klist_workflow" uri="http://kaiden.slcs.co.jp/taglib/listdata/workflow" %>
<%@ page import="jp.co.slcs.kaiden2.base.foundation.conf.BaseProp" %>
<%@ page import="jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp" %>
<%@ taglib prefix="kmsw" uri="http://kaiden.slcs.co.jp/taglib/master_search/workflow" %>

<%-- product_workflow 共通インクルード --%>
<c:if test="${empty pwkfCommonIncluded}" scope="request">
  <jsp:include page="/WEB-INF/view/kaiden2/product_workflow/foundation/commonInclude.jsp"></jsp:include>
  <c:set var="pwkfCommonIncluded"  scope="request">true</c:set>
</c:if>


<%--汎用マスタ一覧・検索 --%>
<%-- 設定 --%>
<c:set var="gadgetClass">expTypeMainte</c:set>
<c:set var="gadgetVariation">v01</c:set>
<c:set var="gadgetInstance">${param.gadget_instance}</c:set>
<c:set var="gadgetId">${gadgetClass}_${gadgetVariation}_${gadgetInstance}</c:set>
<c:set var="gadgetTitle">${maintenanceDto.settings.title}</c:set>
<c:set var="accessUrl">${maintenanceDto.settings.ajaxAccessUrl}</c:set>

<c:set var="surfaceStartDate"><%= BaseProp.S.START_DATE %></c:set>
<c:set var="surfaceConcatChar"><%= BaseProp.S.CONCAT_CHAR %></c:set>
<c:set var="surfaceEndDate"><%= BaseProp.S.END_DATE %></c:set>
<c:set var="surfaceCompany"><%= BaseProp.S.COMPANY %></c:set>
<c:set var="surfaceExpTypeCd"><%= ProductWorkflowProp.S.EXP_TYPE_CD %></c:set>
<c:set var="surfaceExpTypeName"><%= ProductWorkflowProp.S.EXP_TYPE_NAME %></c:set>
<c:set var="surfaceExpTypeCategory"><%= ProductWorkflowProp.S.ExpType.EXP_TYPE_CATEGORY %></c:set>
<c:set var="surfaceAccount"><%= ProductWorkflowProp.S.ACCOUNT %></c:set>
<c:set var="surfaceTaxType"><%= ProductWorkflowProp.S.TAX_TYPE %></c:set>
<c:set var="surfaceSortKey"><%= BaseProp.S.SORT_KEY %></c:set>

<%-- バリデーション --%>
<c:set var="validStartDate_def">{k_required:[''], k_date:['']}</c:set>
<c:set var="validEndDate_def">{k_required:[''], k_date:[''], k_dateMin:['startDate']}</c:set>
<c:set var="validCompanyCd_def">{k_required:[''], k_companyExists:['companyCd', '', 'true']}</c:set>
<c:set var="validExpTypeCd_def">{k_required:[''],k_kaidenId:[''], k_maxLength:['100']}</c:set>
<c:set var="validExpTypeName_def">{k_required:[''], k_maxLength:['250']}</c:set>
<c:set var="validExpTypeCategory_def">{k_maxLength:['250']}</c:set>
<c:set var="validAccount_def">{k_required:[''], k_accountExists:['accountCd', 'companyCd','', 'true']}</c:set>
<c:set var="validTaxType_def">{k_required:[''], k_taxTypeExists:['taxTypeCd', 'companyCd','', 'true']}</c:set>
<c:set var="validSortKey_def">{k_required:[''], k_numeric:[''], k_maxLength:['15']}</c:set>

<%-- 期間一覧ガジェット --%>
<div class="kaiden-ui-master-term-list">
  <jsp:include page="/WEB-INF/view/kaiden2/base/foundation/gadget/genericMasterTermList.jsp" flush="true">
    <jsp:param name="gadget_instance" value="0" />
  </jsp:include>
</div>
<div class="kaiden-ui-master-maintenance-area">
<k:gadgetContainer gadgetClass="${gadgetClass}"
                   gadgetVariation="${gadgetVariation}"
                   gadgetInstance="${gadgetInstance}"
                   gadgetTitle="${gadgetTitle}"
                   gadgetId="${gadgetId}"
                   hideGadgetTitle="true"
                   class="kaiden-ui-master-maintenance-input-area">
                   
  <k:blockContainer id="inputArea">
    <form id="inputForm" onsubmit="return false;">
      <table class="imui-form" style="table-layout:fixed">
          <colgroup>
            <col style="width:150px;" />
            <col />
          </colgroup>
          <tr style="height:30px;">
              <th>
                  <k:surface surfaceKey="${surfaceStartDate}"  style="display:inline-block" requiredMark="true"/>
                  <k:surface surfaceKey="${surfaceConcatChar}" style="display:inline-block" />
                  <k:surface surfaceKey="${surfaceEndDate}"  style="display:inline-block" requiredMark="true"/>
              </th>
              <td>
                  <k:date name="startDate"
                          mode="0"
                          surfaceKey="${surfaceStartDate}"
                          validationDefault="${validStartDate_def}"
                          />
                  <k:surface surfaceKey="${surfaceConcatChar}" style="display:inline-block;margin-left:1em;margin-right:1em;"/>
                  <k:date name="endDate"
                          mode="0"
                          surfaceKey="${surfaceEndDate}"
                          validationDefault="${validEndDate_def}"
                          />
              </td>
          </tr>
          <tr>
              <th>
                  <k:surface surfaceKey="${surfaceCompany}" requiredMark="true"/>
              </th>
              <td>
                  <klist_base:listDataCompany name="readParmitCompany" type="readParmitCompany" blank="false"/>
                  <k:select name="companyCd"
                            mode="0"
                            validationDefault="${validCompanyCd_def}"
                            surfaceKey="${surfaceCompany}"
                            dataName="readParmitCompany"
                            style="width:300px;"
                            includeDisabled="true"/>
              </td>
          </tr>
          <tr>
              <th>
                  <k:surface surfaceKey="${surfaceExpTypeCd}" requiredMark="true"/>
              </th>
              <td>
                  <k:codeText name="expTypeCd"
                          mode="0"
                          style="width:300px;"
                          surfaceKey="${surfaceExpTypeCd}"
                          validationDefault="${validExpTypeCd_def}"
                          maxlength="100"
                          />
              </td>
          </tr>
          <tr>
              <th>
                  <k:surface surfaceKey="${surfaceExpTypeName}" requiredMark="true"/>
              </th>
              <td>
                  <k:text-locales name="expTypeName"
                          mode="0"
                          style="width:300px;"
                          surfaceKey="${surfaceExpTypeName}"
                          validationDefault="${validExpTypeName_def}"
                          imeMode="on"
                          maxlength="250"
                          />
              </td>
          </tr>
          <tr>
              <th>
                  <k:surface surfaceKey="${surfaceExpTypeCategory}" />
              </th>
              <td>
                  <k:text name="expTypeCategory"
                          mode="0"
                          style="width:300px;"
                          surfaceKey="${surfaceExpTypeCategory}"
                          validationDefault="${validExpTypeCategory_def}"
                          imeMode="on"
                          maxlength="250"
                          />
              </td>
          </tr>
          <tr>
              <th>
                  <k:surface surfaceKey="${surfaceAccount}" requiredMark="true"/>
              </th>
              <td>
                  <kmsw:account name="accountName"
                                mode="0"
                                resultChain="{accountCd:'accountCd'}"
                                searchCriteriaAccountCd="accountCd" 
                                searchCriteriaCompany="companyCd"
                                resultValue="accountName"
                                primaryTarget="accountCd"
                                includeDisabled="true"
                                style="width:280px"
                                imeMode="on"
                                surfaceKey="${surfaceAccount}"
                                validationDefault="${validAccount_def}"
                                />
                  <k:hidden name="accountCd" mode="0" />
              </td>
          </tr>
          <tr>
              <th>
                  <k:surface mode="0" surfaceKey="${surfaceTaxType}" requiredMark="true"/>
              </th>
              <td>
                  <klist_workflow:listDataTaxType name="taxTypeName" blank="false" companyCd="" />
                  <k:select name="taxTypeCd"
                            mode="0"
                            validationDefault="${validTaxType_def}"
                            surfaceKey="${surfaceTaxType}"
                            dataName="taxTypeName"
                            style="width:300px;"
                            includeDisabled="true"
                            />
              </td>
          </tr>
          <tr>
              <th>
                  <k:surface mode="0" surfaceKey="${surfaceSortKey}" requiredMark="true"/>
              </th>
              <td>
                  <k:numericText name="sortKey"
                                 mode="0"
                                 style="width:50px;"
                                 surfaceKey="${surfaceSortKey}"
                                 validationDefault="${validSortKey_def}"
                                 maxlength="15"
                                 />
              </td>
          </tr>
                  <k:hidden name="renewCnt" mode="0"/>
                  <k:hidden name="termCd" mode="0"/>
                  <k:hidden name="deleteFlag" mode="0"/>
                  <k:hidden name="pk_json" mode="0"/>
      </table>
    </form>
  </k:blockContainer>
  </k:gadgetContainer>
  <script type="text/javascript">
  jQuery(function($) {
      
      var eventMan = KAIDEN.getGadget("${gadgetId}").eventManager
        , inputAreaAccessor = KAIDEN.getGadget("${gadgetId}").blockAccessors["inputArea"];
       
      //trunsNewEntry(新規入力画面表示)イベントリスナの登録
      eventMan.registPushListener("trunsNewEntry", function(/**Object*/arg) {
          //入力欄を一括クリア
          KAIDEN.getGadget("${gadgetId}").clearInput("inputArea");
          
          //開始日・終了日にシステム開始日・システム終了日を設定
          inputAreaAccessor("startDate").setValue("${k:getSystemStartDate()}");
          inputAreaAccessor("endDate").setValue("${k:getSystemEndDateDecrement()}");
          
          //開始日・終了日、会社、経費区分コードをdisabled
          inputAreaAccessor("startDate").removeDisabled();
          inputAreaAccessor("endDate").removeDisabled();
          inputAreaAccessor("companyCd").removeDisabled();
          inputAreaAccessor("expTypeCd").removeDisabled();
          
          if (inputAreaAccessor("companyCd").elem().children().length > 0) {
              inputAreaAccessor("companyCd").elem().get(0).selectedIndex = 0;
              inputAreaAccessor("companyCd").elem().trigger("change");
            }
          KAIDEN.MasterSearch.refreshAll(true);
          
          
          //会社をフォーカス
          inputAreaAccessor("companyCd").elem().focus();
          
      });
      
      //loadData(表示対象データのロード)イベントリスナの登録
      eventMan.registPushListener("loadData", function(/**Object*/arg) {
          var ajax = KAIDEN.Ajax()
          , criteria = {}
          , stat = false;
          
          criteria.criteriaJson = arg;
        
          ajax.postSyncAuto("${accessUrl}/select", criteria
              , function(returnData) {
                //正常系
                //メンテナンス画面にデータセット
                for (var key in returnData.mainteTarget) {
                    inputAreaAccessor(key).setValueIgnore(returnData.mainteTarget[key]);
                }
                inputAreaAccessor("pk_json").setValue(arg); //主キーを保存
                inputAreaAccessor("companyCd").elem().trigger("change4Load");
                inputAreaAccessor("taxTypeCd").setValue(returnData.mainteTarget["taxTypeCd"])
                KAIDEN.MasterSearch.refreshAll(true);
                stat = true;
            }
            , function(returnData) {
              stat = false;
            }
          );
          return stat;
      });
      
  
      //trunsRenewEntry(更新画面表示)イベントリスナの登録
      eventMan.registPushListener("trunsRenewEntry", function(/**Object*/arg) {
            //開始日・終了日、会社、経費区分コードをdisabled
            inputAreaAccessor("startDate").disabled();
            inputAreaAccessor("endDate").disabled();
            inputAreaAccessor("companyCd").disabled();
            inputAreaAccessor("expTypeCd").disabled();
            
            $("div[data-kaiden-gadget-id='${gadgetId}'] input[data-kaiden-org-name^='expTypeName']").eq(0).focus();
            
      });
      
      //currentPrimaryInfo(現在表示中データの主キーを要求)イベントリスナの登録
      eventMan.registPullListener("claimCurrentDataPk", function(/**Object*/arg) {
          return inputAreaAccessor("pk_json").getValue(); //主キーを返却
      });
      
      inputAreaAccessor("companyCd").elem().on("change", function() {
        var criteria = {};
        criteria.companyCd = inputAreaAccessor("companyCd").getValue();
        KAIDEN.SelectListData.refreshList("taxTypeName", criteria);
        KAIDEN.MasterSearch.clear(inputAreaAccessor("accountName").elem());
      });
      inputAreaAccessor("companyCd").elem().on("change4Load", function() {
        var criteria = {};
        criteria.companyCd = inputAreaAccessor("companyCd").getValue();
        KAIDEN.SelectListData.refreshList("taxTypeName", criteria);
      });
  
  });
  </script>
  <%-- マスタメンテナンス汎用ボタンガジェット --%>
  <div style="clear:both;">
    <jsp:include page="/WEB-INF/view/kaiden2/base/foundation/gadget/genericMasterOperationButton.jsp" flush="true">
      <jsp:param name="gadget_instance" value="0" />
      <jsp:param name="maintenanceGadgetId" value="${gadgetId}" />
    </jsp:include>
  </div>
</div>