5.4.1. プロジェクトマスタインポート¶
プロジェクトマスタインポートのサンプルソースです。
本サンプルソースは「intra-mart Accel Kaiden! ワークフローモジュール 2.0.2」から抜粋したソースです。
5.4.1.1. 一覧¶
src └─main ├─generated │ └─jp │ └─co │ └─slcs │ └─kaiden2 │ └─product_workflow │ └─foundation │ └─model │ ├─entity │ │ K30mProject.java │ │ K30mProjectNames.java │ └─service │ K30mProjectCondition.java │ K30mProjectService.java ├─java │ └─jp │ └─co │ └─slcs │ └─kaiden2 │ └─product_workflow │ ├─feature │ │ └─job │ │ └─kaiden │ │ └─project │ │ │ ProjectJobConstants.java │ │ │ ProjectProp.java │ │ └─imp │ │ ProjectImportJob.java │ └─foundation │ ├─manager │ │ └─project │ │ │ ProjectCriteriaDto.java │ │ │ ProjectManager.java │ │ │ ProjectManagerDto.java │ │ │ ProjectManagerDtoFieldName.java │ │ └─impl │ │ ProjectManagerImpl.java │ └─model │ └─xml_schema │ └─project_import_settings │ ProjectImportSettings.java ├─resources │ └─META-INF │ └─sql │ └─jp │ └─co │ └─slcs │ └─kaiden2 │ └─product_workflow │ └─foundation │ └─model │ └─service │ └─K30mProjectService │ selectView.sql └─webapp └─WEB-INF └─classes └─jp └─co └─slcs └─kaiden2 └─product_workflow └─foundation └─model └─xml_schema └─project_import_settings ProjectImportSettings.xml
5.4.1.2. Java¶
5.4.1.2.1. Job¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/feature/job/kaiden/project/imp/ProjectImportJob.javapackage jp.co.slcs.kaiden2.product_workflow.feature.job.kaiden.project.imp; 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_KAIDEN_ID; import static jp.co.slcs.kaiden2.base.foundation.util.validate.conf.ConstValidationIdKaidenBase.VALID_MAX_LENGTH; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_COMPANY_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_PROJECT_CD; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import jp.co.slcs.kaiden2.base.foundation.job.AbstractTermMasterImportJob; import jp.co.slcs.kaiden2.base.foundation.job.KaidenJobProcessType; 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.xml_schema.generic_jop_process_result.GenericJobProcessResult; 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.feature.job.kaiden.project.ProjectJobConstants; import jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManager; import jp.co.slcs.kaiden2.product_workflow.foundation.model.xml_schema.project_import_settings.ProjectImportSettings; import jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow; import org.seasar.framework.container.SingletonS2Container; /** * プロジェクトマスタImporter. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public class ProjectImportJob extends AbstractTermMasterImportJob<ProjectImportSettings, GenericJobProcessResult> { /** ProjectManager. */ private final ProjectManager projectManager; /** * コンストラクタ. */ public ProjectImportJob() { super(KaidenJobProcessType.IMPORT, ProjectJobConstants.KAIDEN_JOB_ID, ErrorMode.ERROR_CONTINUE); projectManager = SingletonS2Container.getComponent("projectManager"); } /** * {@inheritDoc} */ @Override protected ProjectImportSettings readSettingsForImport() { return super.read(ProjectImportSettings.class); } /** * {@inheritDoc} */ @Override protected GenericJobProcessResult getGenericJobProcessResult() { return new GenericJobProcessResult(); } /** * {@inheritDoc} */ @Override protected LinkedHashMap<String, Map<String, String>> getSurfacesMap() { LinkedHashMap<String, Map<String, String>> surfacesMap = new LinkedHashMap<String, Map<String, String>>(); surfacesMap.put(createUniqueKey(TARGET_MASTER_KEY), ProjectJobConstants.PROJECT_MST_SURFACES); return surfacesMap; } /** * {@inheritDoc} */ @Override protected List<ValidateDefsDto> addValidateRuleSub() { // 新規登録用の検証定義リスト取得 List<ValidateDefsDto> vDefs = projectManager.getValidateDefsDtoList4Entry(); int trgIdx = -1; for (int i = 0; i < vDefs.size(); i++) { if (ConstValidationIdKaidenProductWorkflow.VALID_PROJECT_EXISTS.equals(vDefs.get(i).singleValidationId)) { trgIdx = i; break; } } // プロジェクトマスタ存在チェックを削除(これから登録するので存在チェックは行わない) if (trgIdx >= 0) { vDefs.remove(trgIdx); } // インポートバッチ独自実装分追加 // 会社コード(上位) vDefs.add(new ValidateDefsDto(PARENT_COMPANY_CD, VALID_COMPANY_EXISTS, PARENT_COMPANY_CD, "", "true")); // プロジェクトコード(上位) vDefs.add(new ValidateDefsDto(PARENT_PROJECT_CD, VALID_MAX_LENGTH, String .valueOf(ProjectManager.PROJECT_CD_LEN))); vDefs.add(new ValidateDefsDto(PARENT_PROJECT_CD, VALID_KAIDEN_ID)); return vDefs; } /** {@inheritDoc} */ @SuppressWarnings("unchecked") @Override protected TermMasterManagerForJob<? extends KaidenDto> getDefaultManager() { return (TermMasterManagerForJob<? extends KaidenDto>) projectManager; } }
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/feature/job/kaiden/project/ProjectJobConstants.javapackage jp.co.slcs.kaiden2.product_workflow.feature.job.kaiden.project; import java.util.LinkedHashMap; import jp.co.slcs.kaiden2.base.foundation.job.KaidenJobIdIF; /** * プロジェクトマスタImporter/expoter定数. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public final class ProjectJobConstants { /** * コンストラクタ. */ private ProjectJobConstants() { } /** 処理対象機能皆伝ジョブID:プロジェクトマスタ. */ public static final KaidenJobIdIF KAIDEN_JOB_ID = ProjectProp.KaidenJobID.KAIDEN_JOB_ID_IMPORT; /** プロジェクトマスタラベル定義. */ public static final LinkedHashMap<String, String> PROJECT_MST_SURFACES = ProjectProp.Surfaces.getSurfaces(); /** プロジェクトマスタファイルIndex. */ public static final int DATA_FILE_INDEX = 0; }
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/feature/job/kaiden/project/ProjectProp.javapackage jp.co.slcs.kaiden2.product_workflow.feature.job.kaiden.project; import java.util.LinkedHashMap; import jp.co.slcs.kaiden2.base.foundation.conf.BaseProp; import jp.co.slcs.kaiden2.base.foundation.exception.KaidenIllegalParametersException; import jp.co.slcs.kaiden2.base.foundation.helper.PropertyHelper; import jp.co.slcs.kaiden2.base.foundation.job.KaidenJobIdIF; import jp.co.slcs.kaiden2.base.foundation.job.SurfacesIF; import jp.co.slcs.kaiden2.product_workflow.foundation.conf.ExtensionsProp; import jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp; import jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName; import org.seasar.framework.container.SingletonS2Container; /** * プロジェクトマスタDBカラムプロパティ. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public final class ProjectProp { /** * プロジェクトマスタDBカラム. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public static final class C { /** 皆伝ジョブID. */ public static final String KAIDEN_JOB_ID_IMPORT = "kaiden-job-master-import-project"; /** 会社コード. */ public static final String COMPANY_CD = ProjectManagerDtoFieldName.COMPANY_CD; /** プロジェクトコード. */ public static final String PROJECT_CD = ProjectManagerDtoFieldName.PROJECT_CD; /** 期間コード. */ public static final String TERM_CD = ProjectManagerDtoFieldName.TERM_CD; /** ロケールid. */ public static final String LOCALE_ID = ProjectManagerDtoFieldName.LOCALE_ID; /** プロジェクト名称. */ public static final String PROJECT_NAME = ProjectManagerDtoFieldName.PROJECT_NAME; /** 開始日. */ public static final String START_DATE = ProjectManagerDtoFieldName.START_DATE; /** 終了日. */ public static final String END_DATE = ProjectManagerDtoFieldName.END_DATE; /** 削除フラグ. */ public static final String DELETE_FLAG = ProjectManagerDtoFieldName.DELETE_FLAG; /** 会社コード(上位プロジェクト). */ public static final String PARENT_COMPANY_CD = ProjectManagerDtoFieldName.PARENT_COMPANY_CD; /** プロジェクトコード(上位プロジェクト). */ public static final String PARENT_PROJECT_CD = ProjectManagerDtoFieldName.PARENT_PROJECT_CD; } /** * プロジェクトマスタDBカラム名称. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public static final class S { /** ジョブ名称. */ public static final String JOB_NAME_IMPORT = ProductWorkflowProp.S.ProjectJob.JOB_NAME_IMPORT; /** 会社コード. */ public static final String COMPANY_CD = BaseProp.S.COMPANY_CD; /** プロジェクトコード. */ public static final String PROJECT_CD = ProductWorkflowProp.S.PROJECT_CD; /** 期間コード. */ public static final String TERM_CD = BaseProp.S.TERM_CD; /** ロケールid. */ public static final String LOCALE_ID = BaseProp.S.LOCALE_ID; /** プロジェクト名称. */ public static final String PROJECT_NAME = ProductWorkflowProp.S.PROJECT_NAME; /** 開始日. */ public static final String START_DATE = BaseProp.S.START_DATE; /** 終了日. */ public static final String END_DATE = BaseProp.S.END_DATE; /** 削除フラグ. */ public static final String DELETE_FLAG = BaseProp.S.DELETE_FLAG; /** 会社コード(上位プロジェクト). */ public static final String PARENT_COMPANY_CD = ProductWorkflowProp.S.Project.PARENT_COMPANY_CD; /** プロジェクトコード(上位プロジェクト). */ public static final String PARENT_PROJECT_CD = ProductWorkflowProp.S.Project.PARENT_PROJECT_CD; } /** * プロジェクトマスタJob IDの列挙. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public static enum KaidenJobID implements KaidenJobIdIF { /** 皆伝ジョブID(インポート). */ KAIDEN_JOB_ID_IMPORT(ProjectProp.C.KAIDEN_JOB_ID_IMPORT, ProjectProp.S.JOB_NAME_IMPORT); /** 皆伝ジョブID. */ private final String kaidenJobId; /** ジョブ名称用サーフェスキー. */ private final String surfaceKey; /** * コンストラクタ. * * @param kaidenJobId ジョブID * @param surfaceKey サーフィスキー */ private KaidenJobID(String kaidenJobId, String surfaceKey) { this.kaidenJobId = kaidenJobId; this.surfaceKey = surfaceKey; } /** * {@inheritDoc} */ @Override public String getKaidenJobId() { return kaidenJobId; } /** * {@inheritDoc} */ @Override public String getKaidenJobName() { return SingletonS2Container.getComponent(PropertyHelper.class).getSurface(surfaceKey); } } /** * プロジェクトマスタラベル定義の列挙. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public enum Surfaces implements SurfacesIF { /** 会社コード. */ COMPANY_CD(ProjectProp.C.COMPANY_CD, ProjectProp.S.COMPANY_CD), /** プロジェクトコード. */ PROJECT_CD(ProjectProp.C.PROJECT_CD, ProjectProp.S.PROJECT_CD), /** 期間コード. */ TERM_CD(ProjectProp.C.TERM_CD, ProjectProp.S.TERM_CD), /** ロケールid. */ LOCALE_ID(ProjectProp.C.LOCALE_ID, ProjectProp.S.LOCALE_ID), /** プロジェクト名称. */ PROJECT_NAME(ProjectProp.C.PROJECT_NAME, ProjectProp.S.PROJECT_NAME), /** 開始日. */ START_DATE(ProjectProp.C.START_DATE, ProjectProp.S.START_DATE), /** 終了日. */ END_DATE(ProjectProp.C.END_DATE, ProjectProp.S.END_DATE), /** 削除フラグ. */ DELETE_FLAG(ProjectProp.C.DELETE_FLAG, ProjectProp.S.DELETE_FLAG), /** 会社コード(上位プロジェクト). */ PARENT_COMPANY_CD(ProjectProp.C.PARENT_COMPANY_CD, ProjectProp.S.PARENT_COMPANY_CD), /** プロジェクトコード(上位プロジェクト). */ PARENT_PROJECT_CD(ProjectProp.C.PARENT_PROJECT_CD, ProjectProp.S.PARENT_PROJECT_CD); /** ラベルキー. */ private final String key; /** ラベル名称. */ private final String name; /** * コンストラクタ. * * @param columnName ラベルキー * @param surfaceKey サーフィスキー */ private Surfaces(String columnName, String surfaceKey) { key = columnName; name = SingletonS2Container.getComponent(PropertyHelper.class).getSurface(surfaceKey); } /** * {@inheritDoc} */ @Override public String getKey() { return key; } /** * {@inheritDoc} */ @Override public String getValue() { return name; } /** * ラベルキーから自身を返却. * * @param key ラベルキー値 * @return 自身 */ public static Surfaces codeOf(String key) { for (Surfaces that : Surfaces.values()) { if (that.getKey().equals(key)) { return that; } } throw KaidenIllegalParametersException.makeInstance(); } /** * ラベル名称から自身を返却. * * @param name ラベル名称 * @return 自身 */ public static Surfaces nameOf(String name) { for (Surfaces that : Surfaces.values()) { if (that.getValue().equals(name)) { return that; } } throw KaidenIllegalParametersException.makeInstance(); } /** * ラベル定義を取得します. * * @return ラベル定義 */ public static LinkedHashMap<String, String> getSurfaces() { LinkedHashMap<String, String> surfaces = new LinkedHashMap<String, String>(); for (Surfaces projectSurfaces : Surfaces.values()) { surfaces.put(projectSurfaces.getKey(), projectSurfaces.getValue()); } surfaces.putAll(ExtensionsProp.Surfaces.getSurfaces()); return surfaces; } } }
5.4.1.2.2. Manager¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/project/ProjectManager.javapackage jp.co.slcs.kaiden2.product_workflow.foundation.manager.project; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.COMPANY_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_COMPANY_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_PROJECT_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PROJECT_CD; import java.util.List; import java.util.Map; import jp.co.slcs.kaiden2.base.foundation.exception.KaidenIllegalParametersException; import jp.co.slcs.kaiden2.base.foundation.helper.PropertyHelper; import jp.co.slcs.kaiden2.base.foundation.helper.ValidateMapHelper; import jp.co.slcs.kaiden2.base.foundation.master.TermMasterManager; import jp.co.slcs.kaiden2.base.foundation.master.TermMasterManagerForJob; import jp.co.slcs.kaiden2.base.foundation.util.StringUtil; import jp.co.slcs.kaiden2.base.foundation.util.validate.KaidenAbstractValidator; import jp.co.slcs.kaiden2.base.foundation.util.validate.KaidenValidateResult; import jp.co.slcs.kaiden2.base.foundation.util.validate.KaidenValidatorIF; import jp.co.slcs.kaiden2.base.foundation.util.validate.model.dto.ValidateDefsDto; import jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp; import org.seasar.framework.container.SingletonS2Container; /** * プロジェクトマネージャのinterface. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public interface ProjectManager extends TermMasterManager<ProjectManagerDto>, TermMasterManagerForJob<ProjectManagerDto> { /** * プロジェクトコードの最大長. */ public static final int PROJECT_CD_LEN = 100; /** * プロジェクト名の最大長. */ public static final int PROJECT_NAME_LEN = 250; /** * 新規登録用の検証定義リストを返却します. * * @return バリデート実行クラス用パラメタDTOリスト */ public List<ValidateDefsDto> getValidateDefsDtoList4Entry(); /** * 更新登録用の検証定義リストを返却します. * * @return バリデート実行クラス用パラメタDTOリスト */ public List<ValidateDefsDto> getValidateDefsDtoList4Renew(); /** * カスタムバリデート_自プロジェクト・上位プロジェクト同一チェック. * <p> * 自プロジェクトと上位プロジェクトが同一コードの場合はエラーとする。 * </p> */ class CustomValidateNotEqualParent extends KaidenAbstractValidator implements KaidenValidatorIF { /** コンストラクタ. */ public CustomValidateNotEqualParent() { super(); } /** * {@inheritDoc} * <p> * チェックエラーとなる条件<br> * <ul> * <li>自プロジェクト・上位プロジェクト同一チェック。</li> * <li>自プロジェクトと上位プロジェクトが同一コードの場合はエラーとする。</li> * </ul> * 以下の場合、チェックを行いません。 * <ul> * <li>自プロジェクトコード・自会社コードのいずれかが設定されていない場合</li> * <li>上位プロジェクトコード・上位会社コードの両方が未設定の場合</li> * </ul> * 以下の場合、パラメーターエラーとします。 * <ul> * <li>上位プロジェクトコード・上位会社コードの片方が未設定の場合</li> * </ul> * </p> */ @Override public KaidenValidateResult executeValidate(Map<String, Object> valueMap, String fieldKey, String[] args, Map<String, String> surfaces) { KaidenValidateResult result = super.makeNewValidateResult(fieldKey, surfaces); ValidateMapHelper validateMapHelper = SingletonS2Container.getComponent(ValidateMapHelper.class); String thisCompanyCd = validateMapHelper.getValueForString(valueMap, COMPANY_CD); String thisProjectCd = validateMapHelper.getValueForString(valueMap, PROJECT_CD); // 自プロジェクトコードまたは自会社コードが設定されていない場合は、エラーとしない if (StringUtil.isEmptyAnyOne(thisCompanyCd, thisProjectCd)) { return result; } String parentCompanyCd = validateMapHelper.getValueForString(valueMap, PARENT_COMPANY_CD); String parentProjectCd = validateMapHelper.getValueForString(valueMap, PARENT_PROJECT_CD); // 上位プロジェクトコードと上位会社コードの両方が未設定の場合、エラーとしない if (StringUtil.isEmpty(parentCompanyCd, parentProjectCd)) { return result; } // 上位プロジェクトコード・上位会社コードの片方が未設定の場合、パラメーターエラー if (StringUtil.isEmptyAnyOne(thisCompanyCd, thisProjectCd)) { throw KaidenIllegalParametersException.makeInstance(); } // 自プロジェクトコードと上位プロジェクトコードが同一かつ、自会社コードと上位会社コードが同一の場合、チェックエラー if (thisCompanyCd.equals(parentCompanyCd) && thisProjectCd.equals(parentProjectCd)) { PropertyHelper propertyHelper = SingletonS2Container.getComponent(PropertyHelper.class); String fieldName = validateMapHelper.getSurfaces(valueMap, surfaces, PARENT_PROJECT_CD); result.setErrorStatus(true); result.setValidateClass(this.getClass()); result.setFieldKey(PARENT_PROJECT_CD); result.setFieldNm(fieldName); result.setMainMessageKey(ProductWorkflowProp.M.Project.W001); result.setMainMessage(propertyHelper.getMessage(ProductWorkflowProp.M.Project.W001, fieldName)); } return result; } } }
5.4.1.2.3. Manager(実装)¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/project/impl/ProjectManagerImpl.javapackage jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.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_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.project.ProjectManagerDtoFieldName.COMPANY_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.COMPANY_NAME; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.DELETE_FLAG; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.END_DATE; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.LOCALE_ID; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_COMPANY_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_PROJECT_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_PROJECT_NAME; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PROJECT_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PROJECT_NAME; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.START_DATE; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.TERM_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.util.validate.conf.ConstValidationIdKaidenProductWorkflow.VALID_PROJECT_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.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.project.ProjectManager; import jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDto; import jp.co.slcs.kaiden2.product_workflow.foundation.model.service.K30mProjectService; import org.seasar.framework.beans.util.Beans; /** * プロジェクトマスタへの各種操作を提供するAPI.<br> * <br> * <p> * 本APIは、主にデータベース操作を行いますが、より業務的な機能を付加した操作を提供します。<br> * 使用する際には、{@link ProjectManagerDto}クラスまたはそのリストをパラメータとして渡すと、<br> * {@link ProjectManagerDto}クラスまたはそのリストが戻り値として返却されます。<br> * (一部例外あり。各APIを参照。)<br> * <br> * <b>機能一覧(共通)</b> * <table border="1"> * <tr> * <td>機能概要</td> * <td>メソッド</td> * <td>カテゴリ</td> * <td>備考</td> * </tr> * <tr> * <td>主キー検索</td> * <td>select</td> * <td>主キー検索</td> * <td> </td> * </tr> * <tr> * <td>主キー検索(認可設定無視)</td> * <td>selectIgnoreAuthCompany</td> * <td>主キー検索</td> * <td> </td> * </tr> * <tr> * <td>汎用検索</td> * <td>selectList</td> * <td>汎用検索</td> * <td> </td> * </tr> * <tr> * <td>汎用検索(認可設定無視)</td> * <td>selectListIgnoreAuthCompany</td> * <td>汎用検索</td> * <td> </td> * </tr> * <tr> * <td>ロケール検索</td> * <td>selectLocales</td> * <td>ロケール検索</td> * <td> </td> * </tr> * <tr> * <td>ロケール検索(認可設定無視)</td> * <td>selectLocalesIgnoreAuthCompany</td> * <td>ロケール検索</td> * <td> </td> * </tr> * <tr> * <td>参照検索</td> * <td>selectListWithReference</td> * <td>参照検索</td> * <td> </td> * </tr> * <tr> * <td>参照検索(認可設定無視)</td> * <td>selectListWithReferenceIgnoreAuthCompany</td> * <td>参照検索</td> * <td> </td> * </tr> * <tr> * <td>キーワード検索</td> * <td>selectListKeywordFilter</td> * <td>キーワード検索</td> * <td> </td> * </tr> * <tr> * <td>キーワード検索(認可設定無視)</td> * <td>selectListKeywordFilterIgnoreAuthCompany</td> * <td>キーワード検索</td> * <td> </td> * </tr> * <tr> * <td>有効化</td> * <td>toEnabled</td> * <td>削除フラグ更新</td> * <td> </td> * </tr> * <tr> * <td>有効化(認可設定無視)</td> * <td>toEnabledIgnoreAuthCompany</td> * <td>削除フラグ更新</td> * <td> </td> * </tr> * <tr> * <td>無効化</td> * <td>toDisabled</td> * <td>削除フラグ更新</td> * <td> </td> * </tr> * <tr> * <td>無効化(認可設定無視)</td> * <td>toDisabledIgnoreAuthCompany</td> * <td>削除フラグ更新</td> * <td> </td> * </tr> * <tr> * <td>登録</td> * <td>entry</td> * <td>登録</td> * <td> </td> * </tr> * <tr> * <td>登録(認可設定無視)</td> * <td>entryIgnoreAuthCompany</td> * <td>登録</td> * <td> </td> * </tr> * <tr> * <td>削除</td> * <td>remove</td> * <td>削除</td> * <td> </td> * </tr> * <tr> * <td>削除(認可設定無視)</td> * <td>removeIgnoreAuthCompany</td> * <td>削除</td> * <td> </td> * </tr> * <tr> * <td>更新</td> * <td>renew</td> * <td>更新</td> * <td> </td> * </tr> * <tr> * <td>更新(認可設定無視)</td> * <td>renewIgnoreAuthCompany</td> * <td>更新</td> * <td> </td> * </tr> * </table> * <br> * <br> * <b>機能一覧(期間化)</b> * <table border="1"> * <tr> * <td>機能概要</td> * <td>メソッド</td> * <td>カテゴリ</td> * <td>備考</td> * </tr> * <tr> * <td>期間検索</td> * <td>selectTerms</td> * <td>期間検索</td> * <td> </td> * </tr> * <tr> * <td>期間検索(認可設定無視)</td> * <td>selectTermsIgnoreAuthCompany</td> * <td>期間検索</td> * <td> </td> * </tr> * <tr> * <td>基準日指定検索</td> * <td>selectListIncluedsSearchDate</td> * <td>基準日指定検索</td> * <td> </td> * </tr> * <tr> * <td>基準日指定検索(認可設定無視)</td> * <td>selectListIncluedsSearchDateIgnoreAuthCompany</td> * <td>基準日指定検索</td> * <td> </td> * </tr> * <tr> * <td>期間分割</td> * <td>divideTerm</td> * <td>期間分割</td> * <td><b> </b></td> * </tr> * <tr> * <td>期間分割(認可設定無視)</td> * <td>divideTermIgnoreAuthCompany</td> * <td>期間分割</td> * <td><b> </b></td> * </tr> * <tr> * <td>期間変更</td> * <td>moveTerm</td> * <td>期間変更</td> * <td> </td> * </tr> * <tr> * <td>期間変更(認可設定無視)</td> * <td>moveTermIgnoreAuthCompany</td> * <td>期間変更</td> * <td> </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> * <td rowspan="2" align="center"><b>DTOフィールド論理名</b></td> * <td rowspan="2" align="center"><b>DTOフィールド名</b></td> * <td colspan="2" align="center"><b>主キー<br> * 検索</b></td> * <td colspan="2" align="center"><b>汎用<br> * 検索</b></td> * <td colspan="2" align="center"><b>ロケール<br> * 検索</b></td> * <td colspan="2" align="center"><b>参照<br> * 検索</b></td> * <td colspan="2" align="center"><b>キーワード<br> * 検索</b></td> * <td colspan="2" align="center"><b>削除フラグ<br> * 更新</b></td> * <td colspan="2" align="center"><b>登録</b></td> * <td colspan="2" align="center"><b>削除</b></td> * <td colspan="2" align="center"><b>更新</b></td> * </tr> * <tr> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * </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>projectCd</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>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>projectName</td> * <td align="center">×</td> * <td align="center">○</td> * <td align="center">△</td> * <td align="center">○</td> * <td align="center">×</td> * <td align="center">○</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">×</td> * <td align="center">-</td> * <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>会社コード(上位)</td> * <td>parentCompanyCd</td> * <td align="center">×</td> * <td align="center">○</td> * <td align="center">△</td> * <td align="center">○</td> * <td align="center">×</td> * <td align="center">○</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">×</td> * <td align="center">-</td> * <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>parentProjectCd</td> * <td align="center">×</td> * <td align="center">○</td> * <td align="center">△</td> * <td align="center">○</td> * <td align="center">×</td> * <td align="center">○</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">×</td> * <td align="center">-</td> * <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>parentProjectName</td> * <td align="center">-</td> * <td align="center">-</td> * <td align="center">-</td> * <td align="center">-</td> * <td align="center">-</td> * <td align="center">-</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">▲</td> * <td align="center">○</td> * <td align="center">-</td> * <td align="center">-</td> * <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> * <td rowspan="2" align="center"><b>DTOフィールド論理名</b></td> * <td rowspan="2" align="center"><b>DTOフィールド名</b></td> * <td colspan="2" align="center"><b>期間検索</b></td> * <td colspan="2" align="center"><b>基準日指定検索</b></td> * <td colspan="2" align="center"><b>期間分割</b></td> * <td colspan="2" align="center"><b>期間変更</b></td> * </tr> * <tr> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * <td align="center"><b>I</b></td> * <td align="center"><b>O</b></td> * </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>projectCd</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>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>projectName</td> * <td align="center">×</td> * <td align="center">○</td> * <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>会社コード(上位)</td> * <td>parentCompanyCd</td> * <td align="center">×</td> * <td align="center">○</td> * <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>parentProjectCd</td> * <td align="center">×</td> * <td align="center">○</td> * <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> * <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>parentProjectName</td> * <td align="center">×</td> * <td align="center">×</td> * <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> * <br> * テーブルのPK項目にはフィールド名に(*)を付与しています。<br> * </p> * * @author Sumitomo Life Information Systems Co.,Ltd. */ public class ProjectManagerImpl extends AbstractTermMasterManager<ProjectManagerDto> implements ProjectManager { /** K30mProjectService. */ @Resource protected K30mProjectService k30mProjectService; /** * {@inheritDoc} */ @Override public ProjectManagerDto select(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria) { return super.select(k30mProjectService, criteria, authCriteria); } /** * {@inheritDoc} */ @Override public ProjectManagerDto selectIgnoreAuthCompany(ProjectManagerDto criteria) { return super.selectIgnoreAuthCompany(k30mProjectService, criteria); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectList(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria, List<OrderDto> order) { return super.selectList(k30mProjectService, criteria, authCriteria, order); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectListIgnoreAuthCompany(ProjectManagerDto criteria, List<OrderDto> order) { return super.selectListIgnoreAuthority(k30mProjectService, criteria, order); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectListWithReference(KaidenDto criteria, List<OrderDto> order, AuthorityCriteriaDto authCriteria) { String[] likeTarget = {PROJECT_NAME, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D, EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME, PARENT_PROJECT_NAME}; return super.selectBySql(k30mProjectService, "selectView.sql", criteria, order, authCriteria, likeTarget); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectListWithReferenceIgnoreAuthCompany(KaidenDto criteria, List<OrderDto> order) { String[] likeTarget = {PROJECT_NAME, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D, EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME, PARENT_PROJECT_NAME}; return super.selectBySqlIgnoreAuthority(k30mProjectService, "selectView.sql", criteria, order, likeTarget); } /** * {@inheritDoc} */ @Override public Map<String, Object> selectListKeywordFilter(KaidenDto criteria, List<OrderDto> order, KeywordsCriteriaDto keywordsCriteria, AuthorityCriteriaDto authCriteria) { String[] likeTarget = {PROJECT_NAME, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D, EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME, PARENT_PROJECT_NAME}; return super.selectListByKeywords(k30mProjectService, "selectView.sql", criteria, order, keywordsCriteria, authCriteria, likeTarget); } /** * {@inheritDoc} */ @Override public Map<String, Object> selectListKeywordFilterIgnoreAuthCompany(KaidenDto criteria, List<OrderDto> order, KeywordsCriteriaDto keywordsCriteria) { String[] likeTarget = {PROJECT_NAME, EXTENSION_A, EXTENSION_B, EXTENSION_C, EXTENSION_D, EXTENSION_E, EXTENSION_F, EXTENSION_G, EXTENSION_H, EXTENSION_I, EXTENSION_J, COMPANY_NAME, PARENT_PROJECT_NAME}; return super.selectListByKeywordsIgnoreAuthority(k30mProjectService, "selectView.sql", criteria, order, keywordsCriteria, likeTarget); } /** * {@inheritDoc} * * @throws KaidenOptimisticLockException */ @Override public void toEnabled(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException { super.toEnabled(k30mProjectService, criteria, authCriteria); } /** * {@inheritDoc} * * @throws KaidenOptimisticLockException */ @Override public void toEnabledIgnoreAuthCompany(ProjectManagerDto criteria) throws KaidenOptimisticLockException { super.toEnabledIgnoreAuthCompany(k30mProjectService, criteria); } /** * {@inheritDoc} */ @Override public void toDisabled(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException { super.toDisabled(k30mProjectService, criteria, authCriteria); } /** * {@inheritDoc} */ @Override public void toDisabledIgnoreAuthCompany(ProjectManagerDto criteria) throws KaidenOptimisticLockException { super.toDisabledIgnoreAuthCompany(k30mProjectService, criteria); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectLocales(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria) { return super.selectLocales(k30mProjectService, criteria, authCriteria); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectLocalesIgnoreAuthCompany(ProjectManagerDto criteria) { return super.selectLocalesIgnoreAuthCompany(k30mProjectService, criteria); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectTerms(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria) { return super.selectTerms(k30mProjectService, criteria, authCriteria); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectTermsIgnoreAuthCompany(ProjectManagerDto criteria) { return super.selectTermsIgnoreAuthCompany(k30mProjectService, criteria); } /** * {@inheritDoc} */ @Override public int entry(List<ProjectManagerDto> dataList, AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException, KaidenDuplicationEntryException { return super.entry(k30mProjectService, dataList, authCriteria); } /** * {@inheritDoc} */ @Override public int entryIgnoreAuthCompany(List<ProjectManagerDto> dataList) throws KaidenDuplicationEntryException { return super.entryIgnoreAuthCompany(k30mProjectService, dataList); } /** * {@inheritDoc} */ @Override public int remove(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException { return super.remove(k30mProjectService, criteria, authCriteria); } /** * {@inheritDoc} */ @Override public int removeIgnoreAuthCompany(ProjectManagerDto criteria) { return super.removeIgnoreAuthCompany(k30mProjectService, criteria); } /** * {@inheritDoc} */ @Override public int renew(List<ProjectManagerDto> dataList, AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException { return super.renew(k30mProjectService, dataList, authCriteria); } /** * {@inheritDoc} */ @Override public int renewIgnoreAuthCompany(List<ProjectManagerDto> dataList) throws KaidenOptimisticLockException { return super.renewIgnoreAuthCompany(k30mProjectService, dataList); } /** * {@inheritDoc} */ @Override public void divideTerm(ProjectManagerDto criteria, Date divideDate, AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException, KaidenValidateException { super.divideTerm(k30mProjectService, criteria, divideDate, authCriteria); } /** * {@inheritDoc} */ @Override public void divideTerm(ProjectManagerDto criteria, Date divideDate, AuthorityCriteriaDto authCriteria, String deleteFlag2nd) throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException, KaidenValidateException { String termCd2nd = super.divideTerm(k30mProjectService, criteria, divideDate, authCriteria); if (StringUtil.isNotEmpty(deleteFlag2nd)) { ProjectManagerDto criteria2nd = Beans.createAndCopy(ProjectManagerDto.class, criteria).execute(); criteria2nd.termCd = termCd2nd; if (GenericFlag.isOn(deleteFlag2nd)) { toDisabled(criteria2nd, authCriteria); } else if (GenericFlag.isOff(deleteFlag2nd)) { toEnabled(criteria2nd, authCriteria); } else { throw KaidenIllegalParametersException.makeInstance(); } } } /** * {@inheritDoc} */ @Override public void divideTermIgnoreAuthCompany(ProjectManagerDto criteria, Date divideDate) throws KaidenOptimisticLockException, KaidenValidateException { super.divideTermIgnoreAuthCompany(k30mProjectService, criteria, divideDate); } /** * {@inheritDoc} */ @Override public void divideTermIgnoreAuthCompany(ProjectManagerDto criteria, Date divideDate, String deleteFlag2nd) throws KaidenOptimisticLockException, KaidenValidateException { String termCd2nd = super.divideTermIgnoreAuthCompany(k30mProjectService, criteria, divideDate); if (StringUtil.isNotEmpty(deleteFlag2nd)) { ProjectManagerDto criteria2nd = Beans.createAndCopy(ProjectManagerDto.class, criteria).execute(); criteria2nd.termCd = termCd2nd; if (GenericFlag.isOn(deleteFlag2nd)) { toDisabledIgnoreAuthCompany(criteria2nd); } else if (GenericFlag.isOff(deleteFlag2nd)) { toEnabledIgnoreAuthCompany(criteria2nd); } else { throw KaidenIllegalParametersException.makeInstance(); } } } /** * {@inheritDoc} */ @Override public void moveTerm(ProjectManagerDto criteria, Date newStartDate, Date newEndDate, AuthorityCriteriaDto authCriteria) throws KaidenHaventAuthorityToCompanyException, KaidenOptimisticLockException, KaidenValidateException { super.moveTerm(k30mProjectService, criteria, newStartDate, newEndDate, authCriteria); } /** * {@inheritDoc} */ @Override public void moveTermIgnoreAuthCompany(ProjectManagerDto criteria, Date newStartDate, Date newEndDate) throws KaidenOptimisticLockException, KaidenValidateException { super.moveTermIgnoreAuthCompany(k30mProjectService, criteria, newStartDate, newEndDate); } /** * {@inheritDoc} */ @Override public Class<? extends KaidenDto> getDtoClass() { return super.dtoClass; } /** * {@inheritDoc} */ @Override protected List<String> getDuplicationCheckField() { return Arrays.asList(new String[] {COMPANY_CD, PROJECT_CD}); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectListIncluedsSearchDate(ProjectManagerDto criteria, AuthorityCriteriaDto authCriteria, List<OrderDto> order) { return super.selectListIncluedsSearchDate(k30mProjectService, criteria, authCriteria, order); } /** * {@inheritDoc} */ @Override public List<ProjectManagerDto> selectListIncluedsSearchDateIgnoreAuthCompany(ProjectManagerDto criteria, List<OrderDto> order) { return super.selectListIncluedsSearchDateIgnoreAuthCompany(k30mProjectService, criteria, order); } /** * {@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>必須、日付(システム期間内)</td> * </tr> * <tr> * <td>終了日</td> * <td>必須、日付(システム期間内)、開始日・終了日大小チェック</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>フラグ妥当性</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(PROJECT_CD, VALID_REQUIRED)); result.add(new ValidateDefsDto(PROJECT_CD, VALID_MAX_LENGTH, String.valueOf(PROJECT_CD_LEN))); result.add(new ValidateDefsDto(PROJECT_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(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(PROJECT_NAME, VALID_REQUIRED)); result.add(new ValidateDefsDto(PROJECT_NAME, VALID_MAX_LENGTH, String.valueOf(PROJECT_NAME_LEN))); // プロジェクトコード(上位) result.add(new ValidateDefsDto(PARENT_PROJECT_CD, VALID_PROJECT_EXISTS, PARENT_PROJECT_CD, PARENT_COMPANY_CD, "", "true")); result.add(new ValidateDefsDto(PARENT_PROJECT_CD, new CustomValidateNotEqualParent())); // 削除フラグ 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>必須、日付(システム期間内)</td> * </tr> * <tr> * <td>終了日</td> * <td>必須、日付(システム期間内)、開始日・終了日大小チェック</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>自身のプロジェクトと上位プロジェクトの同一チェック</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(PROJECT_CD, VALID_REQUIRED)); result.add(new ValidateDefsDto(PROJECT_CD, VALID_MAX_LENGTH, String.valueOf(PROJECT_CD_LEN))); result.add(new ValidateDefsDto(PROJECT_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(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(PROJECT_NAME, VALID_REQUIRED)); result.add(new ValidateDefsDto(PROJECT_NAME, VALID_MAX_LENGTH, String.valueOf(PROJECT_NAME_LEN))); // プロジェクトコード(上位) result.add(new ValidateDefsDto(PARENT_PROJECT_CD, VALID_PROJECT_EXISTS, PARENT_PROJECT_CD, PARENT_COMPANY_CD, "", "true")); result.add(new ValidateDefsDto(PARENT_PROJECT_CD, new CustomValidateNotEqualParent())); return result; } /** {@inheritDoc} */ @Override public Class<ProjectManagerDto> getMainManagerDtoClass() { return ProjectManagerDto.class; } /** {@inheritDoc} */ @Override public List<ProjectManagerDto> selectListIgnoreAuthCompanyWithLock(ProjectManagerDto criteria, List<OrderDto> order) { Map<String, Object> criteriaMap = k30mProjectService.getCriteria(criteria); return complementEndDateForDisp(CollectionUtil.createListAndCopy(ProjectManagerDto.class, k30mProjectService.genericSelectList4Update(criteriaMap, order))); } /** {@inheritDoc} */ @Override public List<String> getPkFileds() { return k30mProjectService.getPkFiled(); } /** * {@inheritDoc} */ @Override public void executeIterateLogic(ProjectManagerDto criteria, List<OrderDto> order, IterateBusinessLogicIF<ProjectManagerDto> logic) throws KaidenSystemException, KaidenApplicationException { super.iterateLogic(k30mProjectService, criteria, order, logic); } }
5.4.1.2.4. ManagerDto¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/project/ProjectCriteriaDto.javapackage jp.co.slcs.kaiden2.product_workflow.foundation.manager.project; import java.sql.Timestamp; import jp.co.slcs.kaiden2.base.foundation.master.TermMasterMaintenanceCriteriaDto; /** * プロジェクトマスタ 検索条件DTO. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public class ProjectCriteriaDto extends TermMasterMaintenanceCriteriaDto { /** 会社コード. */ // public String companyCd; //親クラスで定義済み /** プロジェクトコード. */ public String projectCd; /** 期間コード. */ public String termCd; /** ロケールID. */ // public String localeId;//親クラスで定義済み /** 開始日. */ public Timestamp startDate; /** 終了日. */ public Timestamp endDate; /** プロジェクト名称. */ public String projectName; /** 削除フラグ. */ // public String deleteFlag; //親クラスで定義済み /** プロジェクトコード(上位). */ public String parentProjectCd; /** 予備項目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 String companyName; /** プロジェクト名称(上位). */ public String parentProjectName; }
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/project/ProjectManagerDto.javapackage jp.co.slcs.kaiden2.product_workflow.foundation.manager.project; import java.sql.Timestamp; import jp.co.slcs.kaiden2.base.foundation.model.dto.KaidenMasterManagerDto; /** * プロジェクトDTO. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public class ProjectManagerDto extends KaidenMasterManagerDto { /** 会社コード. */ public String companyCd; /** プロジェクトコード. */ public String projectCd; /** 期間コード. */ public String termCd; /** ロケールID. */ public String localeId; /** 開始日. */ public Timestamp startDate; /** 終了日. */ public Timestamp endDate; /** プロジェクト名称. */ public String projectName; /** 削除フラグ. */ public String deleteFlag; /** 会社コード(上位). */ public String parentCompanyCd; /** プロジェクトコード(上位). */ public String parentProjectCd; /** 予備項目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 parentProjectName; }
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/manager/project/ProjectManagerDtoFieldName.javapackage jp.co.slcs.kaiden2.product_workflow.foundation.manager.project; import jp.co.slcs.kaiden2.base.foundation.model.conf.EntityCommonFieldNames; import jp.co.slcs.kaiden2.base.foundation.model.conf.EntityExtensionFieldNames; /** * プロジェクトマスタDTO フィールド名定義クラス. * * @author Sumitomo Life Information Systems Co.,Ltd. */ public final class ProjectManagerDtoFieldName implements EntityExtensionFieldNames { /** * コンストラクタ. */ private ProjectManagerDtoFieldName() { } /** 会社コード. */ public static final String COMPANY_CD = EntityCommonFieldNames.COMPANY_CD; /** プロジェクトコード. */ public static final String PROJECT_CD = "projectCd"; /** 期間コード. */ public static final String TERM_CD = EntityCommonFieldNames.TERM_CD; /** ロケールid. */ public static final String LOCALE_ID = EntityCommonFieldNames.LOCALE_ID; /** プロジェクト名称. */ public static final String PROJECT_NAME = "projectName"; /** 開始日. */ public static final String START_DATE = EntityCommonFieldNames.START_DATE; /** 終了日. */ public static final String END_DATE = EntityCommonFieldNames.END_DATE; /** 削除フラグ. */ public static final String DELETE_FLAG = EntityCommonFieldNames.DELETE_FLAG; /** 会社コード(上位). */ public static final String PARENT_COMPANY_CD = "parentCompanyCd"; /** プロジェクトコード(上位). */ public static final String PARENT_PROJECT_CD = "parentProjectCd"; /** 会社名称(他マスタ名称). */ public static final String COMPANY_NAME = "companyName"; /** プロジェクト名称(上位). */ public static final String PARENT_PROJECT_NAME = "parentProjectName"; }
5.4.1.2.5. Settings¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/foundation/model/xml_schema/project_import_settings/ProjectImportSettings.javapackage jp.co.slcs.kaiden2.product_workflow.foundation.model.xml_schema.project_import_settings; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.COMPANY_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.DELETE_FLAG; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.END_DATE; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.LOCALE_ID; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_COMPANY_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PARENT_PROJECT_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PROJECT_CD; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.PROJECT_NAME; import static jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManagerDtoFieldName.START_DATE; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlType; import jp.co.slcs.kaiden2.base.foundation.model.xml_schema.generic_import_settings.GenericImportSettings; /** * プロジェクトマスタ読込設定DTO. * * @author Sumitomo Life Information Systems Co.,Ltd. */ @XmlRootElement @XmlType(propOrder = {}) public class ProjectImportSettings extends GenericImportSettings { /** serialVersionUID. */ private static final long serialVersionUID = 1L; /** * フィールド定義配列. */ protected String[] filedNames = new String[] {COMPANY_CD, PROJECT_CD, LOCALE_ID, START_DATE, END_DATE, PROJECT_NAME, DELETE_FLAG, PARENT_COMPANY_CD, PARENT_PROJECT_CD}; /** {@inheritDoc} */ @Override protected void initOrders() { super.getOrders().add(new Order(COMPANY_CD, Order.SORT_ASC)); super.getOrders().add(new Order(PROJECT_CD, Order.SORT_ASC)); super.getOrders().add(new Order(LOCALE_ID, Order.SORT_ASC)); } /** {@inheritDoc} */ @Override protected void initPkFields() { super.getPkFields().add(COMPANY_CD); super.getPkFields().add(PROJECT_CD); super.getPkFields().add(LOCALE_ID); } /** {@inheritDoc} */ @Override protected void initI18NFields() { super.getI18NFields().add(PROJECT_NAME); } /** {@inheritDoc} */ @Override protected void initFieldsOrder() { for (String j : filedNames) { super.getFieldsOrder().add(j); } } }
5.4.1.3. Java(S2JDBC)¶
5.4.1.3.1. Entity¶
Pathsrc/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/K30mProject.javapackage 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_project") @Generated(value = {"S2JDBC-Gen 2.4.46", "org.seasar.extension.jdbc.gen.internal.model.EntityModelFactoryImpl" }) public final class K30mProject 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 = "project_cd", columnDefinition = "varchar2(100)", nullable = false, unique = false) public String projectCd; /** 期間コード. */ @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 = "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 = "project_name", columnDefinition = "varchar2(1000)", nullable = false, unique = false) public String projectName; /** 削除フラグ. */ @Column(name = "delete_flag", columnDefinition = "varchar2(1)", nullable = false, unique = false) public String deleteFlag; /** 会社コード(上位プロジェクト). */ @Column(name = "parent_company_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false) public String parentCompanyCd; /** プロジェクトコード(上位プロジェクト). */ @Column(name = "parent_project_cd", columnDefinition = "varchar2(100)", nullable = true, unique = false) public String parentProjectCd; /** 予備項目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.4.1.3.2. Names¶
Pathsrc/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/entity/K30mProjectNames.javapackage 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 K30mProject}の名称クラス. * * @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 K30mProjectNames { /** * デフォルトコンストラクタ. */ private K30mProjectNames() { super(); } /** * companyCdのプロパティ名を返却. * * @return companyCdのプロパティ名 */ public static PropertyName<String> companyCd() { return new PropertyName<String>("companyCd"); } /** * projectCdのプロパティ名を返却. * * @return projectCdのプロパティ名 */ public static PropertyName<String> projectCd() { return new PropertyName<String>("projectCd"); } /** * 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"); } /** * 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"); } /** * projectNameのプロパティ名を返却. * * @return projectNameのプロパティ名 */ public static PropertyName<String> projectName() { return new PropertyName<String>("projectName"); } /** * deleteFlagのプロパティ名を返却. * * @return deleteFlagのプロパティ名 */ public static PropertyName<String> deleteFlag() { return new PropertyName<String>("deleteFlag"); } /** * parentCompanyCdのプロパティ名を返却. * * @return parentCompanyCdのプロパティ名 */ public static PropertyName<String> parentCompanyCd() { return new PropertyName<String>("parentCompanyCd"); } /** * parentProjectCdのプロパティ名を返却. * * @return parentProjectCdのプロパティ名 */ public static PropertyName<String> parentProjectCd() { return new PropertyName<String>("parentProjectCd"); } /** * 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 _K30mProjectNames extends PropertyName<K30mProject> { /** * インスタンスを構築. */ public _K30mProjectNames() { } /** * インスタンスを構築. * * @param name 名前 */ public _K30mProjectNames(final String name) { super(name); } /** * インスタンスを構築. * * @param parent 親 * @param name 名前 */ public _K30mProjectNames(final PropertyName<?> parent, final String name) { super(parent, name); } /** * companyCdのプロパティ名を返却. * * @return companyCdのプロパティ名 */ public PropertyName<String> companyCd() { return new PropertyName<String>(this, "companyCd"); } /** * projectCdのプロパティ名を返却. * * @return projectCdのプロパティ名 */ public PropertyName<String> projectCd() { return new PropertyName<String>(this, "projectCd"); } /** * 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"); } /** * 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"); } /** * projectNameのプロパティ名を返却. * * @return projectNameのプロパティ名 */ public PropertyName<String> projectName() { return new PropertyName<String>(this, "projectName"); } /** * deleteFlagのプロパティ名を返却. * * @return deleteFlagのプロパティ名 */ public PropertyName<String> deleteFlag() { return new PropertyName<String>(this, "deleteFlag"); } /** * parentCompanyCdのプロパティ名を返却. * * @return parentCompanyCdのプロパティ名 */ public PropertyName<String> parentCompanyCd() { return new PropertyName<String>(this, "parentCompanyCd"); } /** * parentProjectCdのプロパティ名を返却. * * @return parentProjectCdのプロパティ名 */ public PropertyName<String> parentProjectCd() { return new PropertyName<String>(this, "parentProjectCd"); } /** * 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.4.1.3.3. Service¶
Pathsrc/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30mProjectService.javapackage 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.K30mProject; /** * {@link K30mProject}のサービスクラス. * * @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 K30mProjectService extends GenerateService<K30mProject> { // }
5.4.1.3.4. Condition¶
Pathsrc/main/generated/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30mProjectCondition.javapackage 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 K30mProject}の条件クラス. * * @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 K30mProjectCondition extends AbstractEntityCondition<K30mProjectCondition> { /** * インスタンスを構築. */ public K30mProjectCondition() { } /** * インスタンスを構築. * * @param prefix プレフィックス * @param where 検索条件 */ public K30mProjectCondition(String prefix, ComplexWhere where) { super(prefix, where); } /** companyCdの条件. */ public NotNullableStringCondition<K30mProjectCondition> companyCd = new NotNullableStringCondition<K30mProjectCondition>("companyCd", this); /** projectCdの条件. */ public NotNullableStringCondition<K30mProjectCondition> projectCd = new NotNullableStringCondition<K30mProjectCondition>("projectCd", this); /** termCdの条件. */ public NotNullableStringCondition<K30mProjectCondition> termCd = new NotNullableStringCondition<K30mProjectCondition>("termCd", this); /** localeIdの条件. */ public NotNullableStringCondition<K30mProjectCondition> localeId = new NotNullableStringCondition<K30mProjectCondition>("localeId", this); /** startDateの条件. */ public NotNullableCondition<K30mProjectCondition, Timestamp> startDate = new NotNullableCondition<K30mProjectCondition, Timestamp>("startDate", this); /** endDateの条件. */ public NotNullableCondition<K30mProjectCondition, Timestamp> endDate = new NotNullableCondition<K30mProjectCondition, Timestamp>("endDate", this); /** projectNameの条件. */ public NotNullableStringCondition<K30mProjectCondition> projectName = new NotNullableStringCondition<K30mProjectCondition>("projectName", this); /** deleteFlagの条件. */ public NotNullableStringCondition<K30mProjectCondition> deleteFlag = new NotNullableStringCondition<K30mProjectCondition>("deleteFlag", this); /** parentCompanyCdの条件. */ public NullableStringCondition<K30mProjectCondition> parentCompanyCd = new NullableStringCondition<K30mProjectCondition>("parentCompanyCd", this); /** parentProjectCdの条件. */ public NullableStringCondition<K30mProjectCondition> parentProjectCd = new NullableStringCondition<K30mProjectCondition>("parentProjectCd", this); /** extensionAの条件. */ public NullableStringCondition<K30mProjectCondition> extensionA = new NullableStringCondition<K30mProjectCondition>("extensionA", this); /** extensionBの条件. */ public NullableStringCondition<K30mProjectCondition> extensionB = new NullableStringCondition<K30mProjectCondition>("extensionB", this); /** extensionCの条件. */ public NullableStringCondition<K30mProjectCondition> extensionC = new NullableStringCondition<K30mProjectCondition>("extensionC", this); /** extensionDの条件. */ public NullableStringCondition<K30mProjectCondition> extensionD = new NullableStringCondition<K30mProjectCondition>("extensionD", this); /** extensionEの条件. */ public NullableStringCondition<K30mProjectCondition> extensionE = new NullableStringCondition<K30mProjectCondition>("extensionE", this); /** extensionFの条件. */ public NullableStringCondition<K30mProjectCondition> extensionF = new NullableStringCondition<K30mProjectCondition>("extensionF", this); /** extensionGの条件. */ public NullableStringCondition<K30mProjectCondition> extensionG = new NullableStringCondition<K30mProjectCondition>("extensionG", this); /** extensionHの条件. */ public NullableStringCondition<K30mProjectCondition> extensionH = new NullableStringCondition<K30mProjectCondition>("extensionH", this); /** extensionIの条件. */ public NullableStringCondition<K30mProjectCondition> extensionI = new NullableStringCondition<K30mProjectCondition>("extensionI", this); /** extensionJの条件. */ public NullableStringCondition<K30mProjectCondition> extensionJ = new NullableStringCondition<K30mProjectCondition>("extensionJ", this); /** entryTsの条件. */ public NotNullableCondition<K30mProjectCondition, Timestamp> entryTs = new NotNullableCondition<K30mProjectCondition, Timestamp>("entryTs", this); /** entryUserCdの条件. */ public NotNullableStringCondition<K30mProjectCondition> entryUserCd = new NotNullableStringCondition<K30mProjectCondition>("entryUserCd", this); /** renewCntの条件. */ public NotNullableCondition<K30mProjectCondition, Long> renewCnt = new NotNullableCondition<K30mProjectCondition, Long>("renewCnt", this); /** renewTsの条件. */ public NotNullableCondition<K30mProjectCondition, Timestamp> renewTs = new NotNullableCondition<K30mProjectCondition, Timestamp>("renewTs", this); /** renewUserCdの条件. */ public NotNullableStringCondition<K30mProjectCondition> renewUserCd = new NotNullableStringCondition<K30mProjectCondition>("renewUserCd", this); }
5.4.1.4. SQL¶
5.4.1.4.1. 検索¶
Pathsrc/main/resources/META-INF/sql/jp/co/slcs/kaiden2/product_workflow/foundation/model/service/K30mProjectService/selectView.sqlselect prj.company_cd , prj.project_cd , prj.term_cd , prj.locale_id , prj.start_date , prj.end_date , prj.project_name , prj.delete_flag , prj.parent_company_cd , prj.parent_project_cd , prj.extension_a , prj.extension_b , prj.extension_c , prj.extension_d , prj.extension_e , prj.extension_f , prj.extension_g , prj.extension_h , prj.extension_i , prj.extension_j , prj.entry_ts , prj.entry_user_cd , prj.renew_cnt , prj.renew_ts , prj.renew_user_cd , dept.department_name as company_name , parent.project_name as parent_project_name from k30m_project prj 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 prj.company_cd = dept.company_cd and prj.company_cd = dept.department_set_cd and prj.company_cd = dept.department_cd and prj.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 <= prj.start_date --ELSE and dept.end_date > prj.start_date /*END*/ left join k30m_project parent on prj.parent_company_cd = parent.company_cd and prj.parent_project_cd = parent.project_cd and prj.locale_id = parent.locale_id /*IF searchCriteriaDate != null*/ and parent.start_date <= /*searchCriteriaDate*/'2000/01/01' and parent.end_date > /*searchCriteriaDate*/'2000/01/01' --ELSE and parent.start_date <= prj.start_date --ELSE and parent.end_date > prj.start_date /*END*/ /*BEGIN*/ where /*IF companyCd != null*/ prj.company_cd in/*companyCd*/('comp') /*END*/ /*IF projectCd != null*/ and prj.project_cd = /*projectCd*/'projectCd' /*END*/ /*IF termCd != null*/ and prj.term_cd = /*termCd*/'termCd' /*END*/ /*IF localeId != null*/ and prj.locale_id = /*localeId*/'localeId' /*END*/ /*IF searchCriteriaDate != null*/ and prj.start_date <= /*searchCriteriaDate*/'1900/01/01' and prj.end_date > /*searchCriteriaDate*/'2999/12/31' /*END*/ /*IF projectName != null*/ and prj.project_name like /*projectName*/'%' ESCAPE '$' /*END*/ /*IF deleteFlag != null*/ and prj.delete_flag = /*deleteFlag*/'0' /*END*/ /*IF parentCompanyCd != null*/ and prj.parent_company_cd = /*parentCompanyCd*/'parentCompanyCd' /*END*/ /*IF parentProjectCd != null*/ and prj.parent_project_cd = /*parentProjectCd*/'parentProjectCd' /*END*/ /*IF extensionA != null*/ and prj.extension_a like /*extensionA*/'extensionA' ESCAPE '$' /*END*/ /*IF extensionB != null*/ and prj.extension_b like /*extensionB*/'extensionB' ESCAPE '$' /*END*/ /*IF extensionC != null*/ and prj.extension_c like /*extensionC*/'extensionC' ESCAPE '$' /*END*/ /*IF extensionD != null*/ and prj.extension_d like /*extensionD*/'extensionD' ESCAPE '$' /*END*/ /*IF extensionE != null*/ and prj.extension_e like /*extensionE*/'extensionE' ESCAPE '$' /*END*/ /*IF extensionF != null*/ and prj.extension_f like /*extensionF*/'extensionF' ESCAPE '$' /*END*/ /*IF extensionG != null*/ and prj.extension_g like /*extensionG*/'extensionG' ESCAPE '$' /*END*/ /*IF extensionH != null*/ and prj.extension_h like /*extensionH*/'extensionH' ESCAPE '$' /*END*/ /*IF extensionI != null*/ and prj.extension_i like /*extensionI*/'extensionI' ESCAPE '$' /*END*/ /*IF extensionJ != null*/ and prj.extension_j like /*extensionJ*/'extensionJ' ESCAPE '$' /*END*/ /*IF companyName != null*/ and dept.department_name like /*companyName*/'companyName' ESCAPE '$' /*END*/ /*IF parentProjectName != null*/ and parent.project_name like /*parentProjectName*/'parentProjectName' ESCAPE '$' /*END*/ /*END*/ /*IF orderBy != null*/ ORDER BY /*$orderBy*/company_cd /*END*/
5.4.1.5. XML¶
Pathsrc/main/webapp/WEB-INF/classes/jp/co/slcs/kaiden2/product_workflow/foundation/model/xml_schema/project_import_settings/ProjectImportSettings.xml<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <genericImportSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericImportSettings" xmlns:tns="http://kaiden.slcs.co.jp/xmlschema/genericImportSettings"> <!-- デフォルト設定値 --> <defaultSettings> <import_mode>1</import_mode> <start_date></start_date> <end_date></end_date> <shift_date></shift_date> <company_cd></company_cd> <character>UTF-8</character> <delimiter>,</delimiter> <enclosing>"</enclosing> <normal_log>true</normal_log> <target_files> <target_file>kaiden/import/project/project_import.csv</target_file> </target_files> <start_rows>0</start_rows> <archive_files> <archive_file>kaiden/archive/import/project/project_import_{YMDHMSN}.csv</archive_file> </archive_files> <delete_flag>false</delete_flag> </defaultSettings> <!-- 会社ごとの設定(サンプル) --> <!-- companySettings> <companySetting> <settings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="settings"> <import_mode>1</import_mode> <start_date></start_date> <end_date></end_date> <shift_date>1</shift_date> <company_cd>sample_company_01</company_cd> <character>UTF-8</character> <delimiter>,</delimiter> <enclosing>"</enclosing> <normal_log>true</normal_log> <target_files> <target_file>sample_company_01_project.csv</target_file> </target_files> <start_rows>1</start_rows> <archive_files> <archive_file>archive/sample_company_01_project.csv</archive_file> </archive_files> <delete_flag>true</delete_flag> </settings> </companySetting> </companySettings--> <!-- Import時ソート順リスト --> </genericImportSettings>