5.3.1. プロジェクトマスタメンテナンス¶
プロジェクトマスタメンテナンスのサンプルソースです。
本サンプルソースは「intra-mart Accel Kaiden! ワークフローモジュール 2.0.2」から抜粋したソースです。
5.3.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 │ │ ├─action │ │ │ └─kaiden │ │ │ └─master │ │ │ ProjectAction.java │ │ ├─dto │ │ │ └─kaiden │ │ │ └─master │ │ │ ProjectDto.java │ │ ├─form │ │ │ └─kaiden │ │ │ └─master │ │ │ ProjectForm.java │ │ └─logic │ │ └─kaiden │ │ └─master │ │ ProjectLogic.java │ └─foundation │ └─manager │ └─project │ │ ProjectCriteriaDto.java │ │ ProjectManager.java │ │ ProjectManagerDto.java │ │ ProjectManagerDtoFieldName.java │ └─impl │ ProjectManagerImpl.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 │ └─feature │ └─action │ └─kaiden │ └─master │ ProjectMasterMaintenanceSettings.xml └─view └─kaiden2 └─product_workflow └─master └─project projectMainte.jsp
5.3.1.2. Java¶
5.3.1.2.1. Action¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/feature/action/kaiden/master/ProjectAction.javapackage 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.ProjectDto; import jp.co.slcs.kaiden2.product_workflow.feature.form.kaiden.master.ProjectForm; import jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.master.ProjectLogic; import org.seasar.struts.annotation.ActionForm; import org.seasar.struts.annotation.Execute; /** * プロジェクトマスタメンテナンス(Action). * * @author Sumitomo Life Information Systems Co.,Ltd. */ public class ProjectAction extends AbstractTermMasterMaintenanceAction { /** ProjectDto. */ @Resource public ProjectDto projectDto; /** ProjectForm. */ @ActionForm @Resource public ProjectForm projectForm; /** ProjectLogic. */ @Resource public ProjectLogic projectLogic; /** * 入力ページのパスを返却. * * @return 入力ページのパス * @throws KaidenSystemException XML読み込み例外 */ @Override @Execute(validator = false) @Authz(uri = "service://kaiden/master/project", action = "execute") public String index() throws KaidenSystemException { // プロパティファイルから一覧画面の設定を読み込み MasterMainternanceSettingsReader reader = new MasterMainternanceSettingsReader(); projectDto.settings = new MasterMainternanceSettingsDto(reader.read(ProjectAction.class)); // 一覧画面の設定をレスポンスに設定 return super.index(); } /** * AJAXにて検索を実行. * <p> * レスポンスに、JSON化した、ロジッククラスの戻り値{@link LogicResultDto}を出力 * </p> * * @return null */ @Override @Execute(validator = false) @Authz(uri = "service://kaiden/master/project", action = "execute") public String search() { return super.search(); } /** * AJAXにてメンテナンス対象データを返却. * * @return メンテナンス対象データ */ @Override @Execute(validator = false) @Authz(uri = "service://kaiden/master/project", 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/project", 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/project", 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/project", 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/project", action = "execute") public String renew() { return super.renew(); } /** * AJAXにてメンテナンス対象データの期間データを返却. * * @return メンテナンス対象データ */ @Override @Execute(validator = false) @Authz(uri = "service://kaiden/master/project", 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/project", 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/project", 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/project", action = "execute") public String moveTerm() { return super.moveTerm(); } /** * {@inheritDoc} */ @Override protected AbstractMasterMaintenanceDto getDto() { return projectDto; } /** * {@inheritDoc} */ @Override protected AbstractMasterMaintenanceForm getForm() { return projectForm; } /** * {@inheritDoc} */ @Override protected AbstractMasterMaintenanceLogic getLogic() { return projectLogic; } }
5.3.1.2.2. Dto¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/feature/dto/kaiden/master/ProjectDto.javapackage 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 ProjectDto extends AbstractTermMasterMaintenanceDto { }
5.3.1.2.3. Form¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/feature/form/kaiden/master/ProjectForm.javapackage 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 ProjectForm extends AbstractTermMasterMaintenanceForm { }
5.3.1.2.4. Logic¶
Pathsrc/main/java/jp/co/slcs/kaiden2/product_workflow/feature/logic/kaiden/master/ProjectLogic.javapackage jp.co.slcs.kaiden2.product_workflow.feature.logic.kaiden.master; 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.END_DATE; 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 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.ProjectAction; import jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp; import jp.co.slcs.kaiden2.product_workflow.foundation.manager.project.ProjectManager; /** * プロジェクトマスタメンテナンス(Logic). * * @author Sumitomo Life Information Systems Co.,Ltd. */ public class ProjectLogic extends AbstractTermMasterMaintenanceLogic { /** ProjectManager. */ @Resource public ProjectManager projectManager; /** * {@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 projectManager; } /** * {@inheritDoc} */ @Override protected String[] getKeywordSearchTargetCol() { // プロパティファイルから一覧画面の設定を読み込み MasterMainternanceSettingsReader reader = new MasterMainternanceSettingsReader(); MasterMainternanceSettingsDto settings; try { settings = new MasterMainternanceSettingsDto(reader.read(ProjectAction.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("projectName"); } /** * {@inheritDoc} */ @Override protected Map<String, Object> getInputData(AbstractMasterMaintenanceForm form) { return JsonUtil.getMap(form.updateDataJson, Arrays.asList("inputArea")); } /** * {@inheritDoc} * <p> * ■設定値一覧<br> * <table border="1"> * <tr> * <td>設定キー</td> * <td>設定値</td> * </tr> * <tr> * <td>companyCd</td> * <td>会社</td> * </tr> * <tr> * <td>projectCd</td> * <td>プロジェクトコード</td> * </tr> * <tr> * <td>startDate</td> * <td>開始日</td> * </tr> * <tr> * <td>endDate</td> * <td>終了日</td> * </tr> * <tr> * <td>projectName</td> * <td>プロジェクト名</td> * </tr> * <tr> * <td>parentProjectCd</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(PROJECT_CD, propertyHelper.getSurface(ProductWorkflowProp.S.PROJECT_CD)); result.put(START_DATE, propertyHelper.getSurface(BaseProp.S.START_DATE)); result.put(END_DATE, propertyHelper.getSurface(BaseProp.S.END_DATE)); result.put(PROJECT_NAME, propertyHelper.getSurface(ProductWorkflowProp.S.PROJECT_NAME)); result.put(PARENT_PROJECT_CD, propertyHelper.getSurface(ProductWorkflowProp.S.Project.PARENT_PROJECT)); return result; } }
5.3.1.2.5. 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.3.1.2.6. 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.3.1.2.7. 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.3.1.3. Java(S2JDBC)¶
5.3.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.3.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.3.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.3.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.3.1.4. SQL¶
5.3.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.3.1.5. XML¶
Pathsrc/main/webapp/WEB-INF/classes/jp/co/slcs/kaiden2/product_workflow/feature/action/kaiden/master/ProjectMasterMaintenanceSettings.xml<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <genericMasterMaintenanceSettings xmlns="http://kaiden.slcs.co.jp/xmlschema/genericMasterMaintenanceSettings"> <!-- 画面タイトルラベルID --> <titleSurfaceKey>PWKF.master.project.title</titleSurfaceKey> <!-- 検索画面JSPフルパス --> <searchGadgetJsp></searchGadgetJsp><!-- デフォルトを利用 --> <!-- メンテナンス画面JSPフルパス --> <maintenanceGadgetJsp>/WEB-INF/view/kaiden2/product_workflow/master/project/projectMainte.jsp</maintenanceGadgetJsp> <!-- AjaxAccessUrl --> <ajaxAccessUrl>kaiden/master/project</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>projectCd</fieldKey> <!-- キーワード検索対象とするか否か --> <keywordSearchTarget>true</keywordSearchTarget> <!-- 表示幅 --> <width>150px</width> <!-- 表示位置 --> <align></align> <!-- ヘッダラベルID --> <headerSurfaceKey>PWKF.projectCd</headerSurfaceKey> <!-- ソート可能か否か --> <sortable>true</sortable> </listCol> <listCol> <fieldKey>projectName</fieldKey> <keywordSearchTarget>true</keywordSearchTarget> <width></width> <align></align> <headerSurfaceKey>PWKF.projectName</headerSurfaceKey> <sortable>true</sortable> </listCol> <listCol> <fieldKey>parentProjectName</fieldKey> <keywordSearchTarget>true</keywordSearchTarget> <width></width> <align></align> <headerSurfaceKey>PWKF.master.project.parentProjectName</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>projectCd</fieldKey> <type>asc</type> </order> <order> <fieldKey>projectName</fieldKey> <type>asc</type> </order> </orders> <!-- 対象マスタの主キーフィールド --> <pkFields> <pkField>companyCd</pkField> <pkField>projectCd</pkField> <pkField>termCd</pkField> <pkField>localeId</pkField> </pkFields> </genericMasterMaintenanceSettings>
5.3.1.6. JSP¶
Pathsrc/main/webapp/WEB-INF/view/kaiden2/product_workflow/master/project/projectMainte.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="kmsw" uri="http://kaiden.slcs.co.jp/taglib/master_search/workflow" %> <%@ page import="jp.co.slcs.kaiden2.base.foundation.conf.BaseProp" %> <%@ page import="jp.co.slcs.kaiden2.product_workflow.foundation.conf.ProductWorkflowProp" %> <%@ page import="jp.co.slcs.kaiden2.base.foundation.util.PropertyJspUtil" %> <%-- 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">projectMainte</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="surfaceCompany"><%= BaseProp.S.COMPANY %></c:set> <c:set var="surfaceProjectCd"><%= ProductWorkflowProp.S.PROJECT_CD %></c:set> <c:set var="surfaceProjectName"><%= ProductWorkflowProp.S.PROJECT_NAME %></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="surfaceParentProject"><%= ProductWorkflowProp.S.Project.PARENT_PROJECT %></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="validProjectCd_def">{k_required:[''], k_kaidenId:[''], k_maxLength:['100']}</c:set> <c:set var="validProjectName_def">{k_required:[''], k_maxLength:['250']}</c:set> <c:set var="validParentProject_def">{k_projectExists:['parentProjectCd', 'parentCompanyCd', '', 'true'], k_notEqualParent:['']}</c:set> <%-- メッセージ --%> <c:set var="msgNotEqualParent"><%= PropertyJspUtil.getMessage(ProductWorkflowProp.M.Project.W001) %></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:170px;" /> <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></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="${surfaceProjectCd}" requiredMark="true"/> </th> <td> <k:codeText name="projectCd" mode="0" style="width:300px;" maxlength="100" surfaceKey="${surfaceProjectCd}" validationDefault="${validProjectCd_def}" /> </td> </tr> <tr> <th> <k:surface surfaceKey="${surfaceProjectName}" requiredMark="true" /> </th> <td> <k:text-locales name="projectName" mode="0" style="width:300px;" maxlength="250" surfaceKey="${surfaceProjectName}" validationDefault="${validProjectName_def}" imeMode="on" /> </td> </tr> <tr> <th> <k:surface surfaceKey="${surfaceParentProject}" /> </th> <td> <kmsw:project name="parentProjectName" mode="0" resultChain="{parentCompanyCd:'companyCd', parentProjectCd:'projectCd'}" searchCriteriaProjectCd="parentProjectCd" searchCriteriaCompany="companyCd" primaryTarget="parentCompanyCd,parentProjectCd" resultValue="projectName" includeDisabled="true" style="width:300px;" imeMode="on" surfaceKey="${surfaceParentProject}" validationDefault="${validParentProject_def}" /> <k:hidden name="parentCompanyCd" mode="0"/> <k:hidden name="parentProjectCd" mode="0"/> <%--隠し項目 --%> <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"/> </td> </tr> </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("projectCd").removeDisabled(); if (inputAreaAccessor("companyCd").elem().children().length > 0) { inputAreaAccessor("companyCd").elem().get(0).selectedIndex = 0; } 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); //主キーを保存 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("projectCd").disabled(); $("div[data-kaiden-gadget-id='${gadgetId}'] input[data-kaiden-org-name^='projectName']").eq(0).focus(); }); //currentPrimaryInfo(現在表示中データの主キーを要求)イベントリスナの登録 eventMan.registPullListener("claimCurrentDataPk", function(/**Object*/arg) { return inputAreaAccessor("pk_json").getValue(); //主キーを返却 }); /** * 自身のプロジェクトと上位プロジェクトの同一チェック. * <p>自身のプロジェクトと上位プロジェクトの同一の場合エラー</p> * @param value 値 * @param element 対象エレメント * @param param パラメータ(配列) */ KAIDEN.validator.addValidateMethod("k_notEqualParent", function(/**String*/value, /**HtmlElement*/element, /**array*/param) { var na = KAIDEN.gadgetMan.getNeighboringAccessor , thisCompanyCd = na(element, "companyCd").getValue() , thisProjectCd = na(element, "projectCd").getValue() , parentCompanyCd = na(element, "parentCompanyCd").getValue() , parentProjectCd = na(element, "parentProjectCd").getValue(); return !(thisCompanyCd === parentCompanyCd && thisProjectCd === parentProjectCd); }); KAIDEN.validator.setInvalidMessage("k_notEqualParent",function(arg, element) { var msgParam = []; return KAIDEN.validator.formatMessage("${msgNotEqualParent}", element, msgParam); }); inputAreaAccessor("companyCd").elem().on("change", function() { KAIDEN.MasterSearch.clear(inputAreaAccessor("parentProjectName").elem()); }); }); </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>