From 03aa00d3d1047d0ed0ae0afd4561c8d259da2e1f Mon Sep 17 00:00:00 2001
From: s-tajihi <2026_04_00508@it-college.co.jp>
Date: Thu, 10 Sep 2026 15:37:38 +0900
Subject: [PATCH] =?UTF-8?q?[edit]=20=E7=AC=AC=E4=B8=80=E6=AE=B5=E9=9A=8E?=
=?UTF-8?q?=E3=81=BE=E3=81=A7=E3=81=AE=E5=AE=9F=E8=A3=85=E3=82=92=E3=81=97?=
=?UTF-8?q?=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 3 +-
.../model/SearchConditionDepartment.java | 16 +-
.../rhizome/app/domain/service/Login.java | 4 +-
.../service/impl/RegisterDepartmentImpl.java | 35 ++++
.../InsertDepartmentConfirmController.java | 107 +++++++++++
.../InsertDepartmentController.java | 22 +++
.../SelectDepartmentController.java | 82 +++++++++
.../PageReturnAttributeKeyword.java | 18 +-
.../TransitionTargetPageNameKeyword.java | 162 +++++++++--------
.../app/presentation/form/DepartmentForm.java | 9 +-
.../form/InsertDepartmentForm.java | 68 +++++++
.../form/SearchConditionDepartmentForm.java | 53 ++++++
src/main/resources/application.properties | 2 +-
.../templates/insertDepartmentConfirm.html | 79 ++++++++
.../templates/insertDepartmentInput.html | 58 ++++++
.../templates/insertDepartmentResult.html | 41 +++++
src/main/resources/templates/menu.html | 170 +++++++++---------
.../resources/templates/selectDepartment.html | 111 ++++++++++++
18 files changed, 864 insertions(+), 176 deletions(-)
create mode 100644 src/main/java/com/example/rhizome/app/domain/service/impl/RegisterDepartmentImpl.java
create mode 100644 src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentConfirmController.java
create mode 100644 src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentController.java
create mode 100644 src/main/java/com/example/rhizome/app/presentation/controller/SelectDepartmentController.java
create mode 100644 src/main/java/com/example/rhizome/app/presentation/form/InsertDepartmentForm.java
create mode 100644 src/main/java/com/example/rhizome/app/presentation/form/SearchConditionDepartmentForm.java
create mode 100644 src/main/resources/templates/insertDepartmentConfirm.html
create mode 100644 src/main/resources/templates/insertDepartmentInput.html
create mode 100644 src/main/resources/templates/insertDepartmentResult.html
create mode 100644 src/main/resources/templates/selectDepartment.html
diff --git a/pom.xml b/pom.xml
index 24be8c6..8a043e7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -15,8 +15,9 @@
war
EM-Spring
Demo project for Spring Boot
-
+
17
+ 1.18.34
diff --git a/src/main/java/com/example/rhizome/app/domain/model/SearchConditionDepartment.java b/src/main/java/com/example/rhizome/app/domain/model/SearchConditionDepartment.java
index 1e365eb..7682a78 100644
--- a/src/main/java/com/example/rhizome/app/domain/model/SearchConditionDepartment.java
+++ b/src/main/java/com/example/rhizome/app/domain/model/SearchConditionDepartment.java
@@ -9,13 +9,13 @@ import lombok.Getter;
@Getter
@AllArgsConstructor
public class SearchConditionDepartment {
- /**
- * 部署ID
- */
- private final Integer idDepartment;
- /**
- * 部署名
- */
- private final String nmDepartment;
+ /**
+ * 部署ID
+ */
+ private final Integer idDepartment;
+ /**
+ * 部署名
+ */
+ private final String nmDepartment;
}
diff --git a/src/main/java/com/example/rhizome/app/domain/service/Login.java b/src/main/java/com/example/rhizome/app/domain/service/Login.java
index 7756d83..e6c0e9a 100644
--- a/src/main/java/com/example/rhizome/app/domain/service/Login.java
+++ b/src/main/java/com/example/rhizome/app/domain/service/Login.java
@@ -4,7 +4,7 @@ import com.example.rhizome.app.domain.model.LoginInfo;
import com.example.rhizome.app.domain.model.LoginUser;
public interface Login {
- LoginUser doLogin(LoginInfo loginInfo);
+ LoginUser doLogin(LoginInfo loginInfo);
- boolean canLogin(LoginInfo loginInfo);
+ boolean canLogin(LoginInfo loginInfo);
}
diff --git a/src/main/java/com/example/rhizome/app/domain/service/impl/RegisterDepartmentImpl.java b/src/main/java/com/example/rhizome/app/domain/service/impl/RegisterDepartmentImpl.java
new file mode 100644
index 0000000..7d6626a
--- /dev/null
+++ b/src/main/java/com/example/rhizome/app/domain/service/impl/RegisterDepartmentImpl.java
@@ -0,0 +1,35 @@
+package com.example.rhizome.app.domain.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.example.rhizome.app.domain.model.Department;
+import com.example.rhizome.app.domain.service.RegisterDepartment;
+import com.example.rhizome.app.infra.entity.DepartmentEntity;
+import com.example.rhizome.app.infra.repository.DepartmentRepository;
+
+/**
+ * Department テーブルの登録系の機能を集約させるサービスクラスです。
+ */
+@Service
+@Transactional
+public class RegisterDepartmentImpl implements RegisterDepartment {
+
+ DepartmentRepository departmentRepository;
+
+ @Autowired
+ public RegisterDepartmentImpl(DepartmentRepository departmentRepository) {
+ this.departmentRepository = departmentRepository;
+ }
+
+ /**
+ * employee インスタンスの内容を登録する
+ *
+ * @param employee 登録対象のデータ
+ */
+ public void registerDepartment(Department department) {
+ departmentRepository.save(DepartmentEntity.convertFrom(department));
+ }
+
+}
diff --git a/src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentConfirmController.java b/src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentConfirmController.java
new file mode 100644
index 0000000..23fe4f8
--- /dev/null
+++ b/src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentConfirmController.java
@@ -0,0 +1,107 @@
+package com.example.rhizome.app.presentation.controller;
+
+import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*;
+
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.servlet.http.HttpSession;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.example.rhizome.aop.aspect.PermissionCheck;
+import com.example.rhizome.aop.aspect.SessionCheck;
+import com.example.rhizome.app.domain.service.SearchDepartment;
+import com.example.rhizome.app.domain.service.impl.SearchDepartmentImpl;
+import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword;
+import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
+import com.example.rhizome.app.presentation.form.DepartmentForm;
+import com.example.rhizome.app.presentation.form.InsertDepartmentForm;
+import com.example.rhizome.app.presentation.form.MessageForm;
+
+/**
+ * 新規登録情報チェック用のコントローラ
+ */
+@Controller
+public class InsertDepartmentConfirmController {
+ // ログ出力用インスタンス
+ private final static Logger LOGGER = Logger.getLogger(InsertEmployeeConfirmController.class.getName());
+
+ // エラーメッセージ用の定数フィールド
+ private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
+
+ HttpSession httpSession;
+ SearchDepartment searchDepartment;
+
+ @Autowired
+ public InsertDepartmentConfirmController(
+ HttpSession httpSession,
+ SearchDepartmentImpl searchDepartment) {
+ this.httpSession = httpSession;
+ this.searchDepartment = searchDepartment;
+ }
+
+ @ModelAttribute
+ public InsertDepartmentForm insertDepartmentForm() {
+ return new InsertDepartmentForm();
+ }
+
+ /**
+ * 登録情報のチェックを行う
+ *
+ * @param insertDepartmentForm 登録情報
+ * @param model ビューにデータを渡すためのコンテナ
+ * @return 遷移先の画面
+ */
+ @PermissionCheck
+ @SessionCheck
+ @RequestMapping(value = INSERT_DEPARTMENT_CONFIRM, method = RequestMethod.POST)
+ public String insertDepartmentConfirm(InsertDepartmentForm insertDepartmentForm, Model model) {
+
+ try {
+ // 部署一覧を取得し、画面に返す用のクラスに詰め替える
+ // 作成した部署一覧をセット
+ model.addAttribute(
+ PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
+ DepartmentForm.convertFrom(
+ searchDepartment.selectAll()));
+
+ // 登録用パラメータチェック
+ List error = insertDepartmentForm.validateParameter();
+
+ // 入力内容に誤りがあるか
+ if (!error.isEmpty()) {
+ // 誤りがあった場合
+ // 誤りがあった箇所のエラーメッセージを表示
+ model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR,
+ new MessageForm(String.join(", ", error) + "が不正です。"));
+ // 画面に返す為の登録情報をセット
+ model.addAttribute(PageReturnAttributeKeyword.INSERT_DEPARTMENT_FORM, insertDepartmentForm);
+ // 登録画面に遷移
+ return TransitionTargetPageNameKeyword.INSERT_DEPARTMENT_INPUT_HTML;
+ }
+
+ // 登録確認ページに遷移
+ model.addAttribute(PageReturnAttributeKeyword.INSERT_DEPARTMENT_FORM, insertDepartmentForm);
+ // 登録確認画面に遷移
+ return TransitionTargetPageNameKeyword.INSERT_DEPARTMENT_CONFIRM_HTML;
+
+ } catch (Exception e) {
+ // ログイン情報の破棄
+ httpSession.invalidate();
+
+ e.printStackTrace();
+
+ // エラーログ出力
+ LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
+ // エラー画面遷移
+ return TransitionTargetPageNameKeyword.ERROR_HTML;
+ }
+ }
+}
diff --git a/src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentController.java b/src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentController.java
new file mode 100644
index 0000000..33d7f0c
--- /dev/null
+++ b/src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentController.java
@@ -0,0 +1,22 @@
+package com.example.rhizome.app.presentation.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+
+import com.example.rhizome.app.presentation.form.InsertDepartmentForm;
+
+/**
+ * 新規登録用のコントローラ
+ */
+@Controller
+public class InsertDepartmentController {
+
+ @PostMapping("/insertDepartmentInput")
+ public String insertDepartmentInput(@ModelAttribute InsertDepartmentForm form) {
+
+ return "insertDepartmentInput";
+
+ }
+
+}
diff --git a/src/main/java/com/example/rhizome/app/presentation/controller/SelectDepartmentController.java b/src/main/java/com/example/rhizome/app/presentation/controller/SelectDepartmentController.java
new file mode 100644
index 0000000..d8ae09d
--- /dev/null
+++ b/src/main/java/com/example/rhizome/app/presentation/controller/SelectDepartmentController.java
@@ -0,0 +1,82 @@
+package com.example.rhizome.app.presentation.controller;
+
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.servlet.http.HttpSession;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.example.rhizome.aop.aspect.PermissionCheck;
+import com.example.rhizome.aop.aspect.SessionCheck;
+import com.example.rhizome.app.domain.service.SearchDepartment;
+import com.example.rhizome.app.presentation.controller.pageproperty.PageReturnAttributeKeyword;
+import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword;
+import com.example.rhizome.app.presentation.form.DepartmentForm;
+import com.example.rhizome.app.presentation.form.SearchConditionDepartmentForm;
+
+@Controller
+public class SelectDepartmentController {
+
+ // ログ出力用インスタンス
+ private final static Logger LOGGER = Logger.getLogger(SelectDepartmentController.class.getName());
+ // エラーメッセージ用の定数フィールド
+ private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!";
+
+ HttpSession httpSession;
+ SearchDepartment searchDepartment;
+
+ @Autowired
+ public SelectDepartmentController(HttpSession httpSession, SearchDepartment searchDepartment) {
+ this.httpSession = httpSession;
+ this.searchDepartment = searchDepartment;
+ }
+
+ @ModelAttribute
+ public SearchConditionDepartmentForm searchConditionDepartmentForm() {
+ return new SearchConditionDepartmentForm();
+ }
+
+ /**
+ * 部署検索画面表示処理コントローラ
+ *
+ * @param searchConditionDepartmentForm 検索画面のフォーム
+ * @param model ビューにデータを渡すためのコンテナ
+ * @return 遷移先の画面
+ */
+ @PermissionCheck
+ @SessionCheck
+ @RequestMapping(value = TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_INFO, method = RequestMethod.POST)
+ public String select(SearchConditionDepartmentForm searchConditionDepartmentForm, Model model) {
+
+ try {
+
+ // 検索条件を元に検索を実施
+ // 取得した EmployeeInfo( employee + department )の情報を画面に返す用の型に詰め替えてセット
+ model.addAttribute(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST,
+ DepartmentForm.convertFrom(searchDepartment
+ .searchByWithLike(SearchConditionDepartmentForm.convertTo(searchConditionDepartmentForm))));
+
+ // 検索ページに遷移
+ return TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_HTML;
+
+ } catch (Exception e) {
+ // ログイン情報の破棄
+ httpSession.invalidate();
+
+ e.printStackTrace();
+
+ // エラーログ出力
+ LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e);
+ // エラー画面遷移
+ return TransitionTargetPageNameKeyword.ERROR_HTML;
+ }
+
+ }
+
+}
diff --git a/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java b/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java
index 5e9ec04..f0ab753 100644
--- a/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java
+++ b/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/PageReturnAttributeKeyword.java
@@ -5,14 +5,16 @@ package com.example.rhizome.app.presentation.controller.pageproperty;
*/
public class PageReturnAttributeKeyword {
- public static final String MESSAGE_ERROR = "messageError";
- public static final String MESSAGE_INFO = "messageInfo";
+ public static final String MESSAGE_ERROR = "messageError";
+ public static final String MESSAGE_INFO = "messageInfo";
- public static final String DEPARTMENT_FORM_LIST = "departmentFormList";
- public static final String UPDATE_EMPLOYEE_INFO_FORM = "updateEmployeeInfoForm";
- public static final String INSERT_EMPLOYEE_FORM = "insertEmployeeForm";
- public static final String LOGIN_INFO_FORM = "loginInfoForm";
- public static final String UPDATE_PERSONAL_EMPLOYEE_USER_FORM = "updatePersonalEmployeeUserForm";
- public static final String EMPLOYEE_INFO_FORM_LIST = "employeeInfoFormList";
+ public static final String DEPARTMENT_FORM_LIST = "departmentFormList";
+ public static final String UPDATE_EMPLOYEE_INFO_FORM = "updateEmployeeInfoForm";
+ public static final String INSERT_EMPLOYEE_FORM = "insertEmployeeForm";
+ public static final String LOGIN_INFO_FORM = "loginInfoForm";
+ public static final String UPDATE_PERSONAL_EMPLOYEE_USER_FORM = "updatePersonalEmployeeUserForm";
+ public static final String EMPLOYEE_INFO_FORM_LIST = "employeeInfoFormList";
+ public static final String DEPARTMENT_INFO_FORM_LIST = "departmentInfoFormList";
+ public static final String INSERT_DEPARTMENT_FORM = "insertDepartmentForm";
}
diff --git a/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java b/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java
index 90ded96..eef1b6d 100644
--- a/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java
+++ b/src/main/java/com/example/rhizome/app/presentation/controller/pageproperty/TransitionTargetPageNameKeyword.java
@@ -7,87 +7,105 @@ import java.util.Set;
*/
public class TransitionTargetPageNameKeyword {
- // 共通
- public static final String LOGIN_HTML = "login";
+ // 共通
+ public static final String LOGIN_HTML = "login";
- // 一般向け
- public static final String UPDATE_PERSONAL_EMPLOYEE_INPUT_HTML = "updatePersonalEmployeeInput";
- public static final String UPDATE_PERSONAL_RESULT_HTML = "updatePersonalEmployeeResult";
+ // 一般向け
+ public static final String UPDATE_PERSONAL_EMPLOYEE_INPUT_HTML = "updatePersonalEmployeeInput";
+ public static final String UPDATE_PERSONAL_RESULT_HTML = "updatePersonalEmployeeResult";
- // 管理者向け
- public static final String MENU_HTML = "menu";
- public static final String SELECT_EMPLOYEE_HTML = "selectEmployee";
- public static final String INSERT_EMPLOYEE_INPUT_HTML = "insertEmployeeInput";
- public static final String INSERT_EMPLOYEE_CONFIRM_HTML = "insertEmployeeConfirm";
- public static final String INSERT_EMPLOYEE_RESULT_HTML = "insertEmployeeResult";
- public static final String UPDATE_EMPLOYEE_INPUT_HTML = "updateEmployeeInput";
+ // 管理者向け
+ public static final String MENU_HTML = "menu";
+ public static final String SELECT_EMPLOYEE_HTML = "selectEmployee";
+ public static final String SELECT_DEPARTMENT_HTML = "selectDepartment";
+ public static final String INSERT_EMPLOYEE_INPUT_HTML = "insertEmployeeInput";
+ public static final String INSERT_EMPLOYEE_CONFIRM_HTML = "insertEmployeeConfirm";
+ public static final String INSERT_EMPLOYEE_RESULT_HTML = "insertEmployeeResult";
+ public static final String INSERT_DEPARTMENT_INPUT_HTML = "insertDepartmentInput";
+ public static final String INSERT_DEPARTMENT_CONFIRM_HTML = "insertDepartmentConfirm";
+ public static final String INSERT_DEPARTMENT_RESULT_HTML = "insertDepartmentResult";
- public static final String ERROR_HTML = "error";
+ public static final String UPDATE_EMPLOYEE_INPUT_HTML = "updateEmployeeInput";
- // 共通(Controller)
- public static final String INDEX_BLANK = "";
- public static final String INDEX_SLASH = "/";
- public static final String INDEX_LOGIN = "/login";
- public static final String LOGOUT = "/logout";
- public static final String DO_LOGIN = "/doLogin";
+ public static final String ERROR_HTML = "error";
- // 一般向け(Controller)
- public static final String PERSONAL_UPDATE_RESULT = "/updatePersonalEmployeeResult";
+ // 共通(Controller)
+ public static final String INDEX_BLANK = "";
+ public static final String INDEX_SLASH = "/";
+ public static final String INDEX_LOGIN = "/login";
+ public static final String LOGOUT = "/logout";
+ public static final String DO_LOGIN = "/doLogin";
- // 管理者向け(Controller)
- public static final String DELETE_EMPLOYEE = "/deleteEmployee";
- public static final String INSERT_EMPLOYEE_INPUT = "/insertEmployeeInput";
- public static final String INSERT_EMPLOYEE_CONFIRM = "/insertEmployeeConfirm";
- public static final String INSERT_EMPLOYEE = "/insertEmployee";
- public static final String SHOW_MENU = "/showMenu";
- public static final String SELECT_EMPLOYEE_INFO = "/selectEmployeeInfo";
- public static final String SELECT_EMPLOYEE_INFO_FORM_EMPTY = "/selectAll";
- public static final String SHOW_UPDATE_EMPLOYEE = "/showUpdateEmployee";
- public static final String UPDATE_EMPLOYEE_RESULT = "/updateEmployeeResult";
+ // 一般向け(Controller)
+ public static final String PERSONAL_UPDATE_RESULT = "/updatePersonalEmployeeResult";
- // Department
- // HTML
- // Controller
+ // 管理者向け(Controller)
+ public static final String DELETE_EMPLOYEE = "/deleteEmployee";
+ public static final String INSERT_EMPLOYEE_INPUT = "/insertEmployeeInput";
+ public static final String INSERT_EMPLOYEE_CONFIRM = "/insertEmployeeConfirm";
+ public static final String INSERT_EMPLOYEE = "/insertEmployee";
+ public static final String INSERT_DEPARTMENT_INPUT = "/insertDepartmentInput";
+ public static final String INSERT_DEPARTMENT_CONFIRM = "/insertDepartmentConfirm";
+ public static final String INSERT_DEPARTMENT = "/insertDepartment";
- /**
- * 管理者向けのページリストを返す
- *
- * @return 管理者向けのページリスト
- */
- public static Set getAdminPageList() {
+ public static final String SHOW_MENU = "/showMenu";
+ public static final String SELECT_EMPLOYEE_INFO = "/selectEmployeeInfo";
+ public static final String SELECT_EMPLOYEE_INFO_FORM_EMPTY = "/selectAll";
+ public static final String SELECT_DEPARTMENT_INFO = "/selectDepartment";
+ public static final String SELECT_DEPARTMENT_INFO_FORM_EMPTY = "/selectDepartmentAll";
+ public static final String SHOW_UPDATE_EMPLOYEE = "/showUpdateEmployee";
+ public static final String UPDATE_EMPLOYEE_RESULT = "/updateEmployeeResult";
- return Set.of(
- INDEX_BLANK,
- INDEX_SLASH,
- INDEX_LOGIN,
- LOGOUT,
- DO_LOGIN,
- DELETE_EMPLOYEE,
- INSERT_EMPLOYEE_INPUT,
- INSERT_EMPLOYEE_CONFIRM,
- INSERT_EMPLOYEE,
- SHOW_MENU,
- SELECT_EMPLOYEE_INFO,
- SELECT_EMPLOYEE_INFO_FORM_EMPTY,
- SHOW_UPDATE_EMPLOYEE,
- UPDATE_EMPLOYEE_RESULT
- );
- }
+ // Department
+ // HTML
+ // Controller
- /**
- * 一般向けのページリストを返す
- *
- * @return 一般向けのページリスト
- */
- public static Set getUserPageList() {
- return Set.of(
- INDEX_BLANK,
- INDEX_SLASH,
- INDEX_LOGIN,
- LOGOUT,
- DO_LOGIN,
- PERSONAL_UPDATE_RESULT
- );
- }
+ /**
+ * 管理者向けのページリストを返す
+ *
+ * @return 管理者向けのページリスト
+ */
+ public static Set getAdminPageList() {
+
+ return Set.of(
+ INDEX_BLANK,
+ INDEX_SLASH,
+ INDEX_LOGIN,
+ LOGOUT,
+ DO_LOGIN,
+ DELETE_EMPLOYEE,
+
+ INSERT_EMPLOYEE_INPUT,
+ INSERT_EMPLOYEE_CONFIRM,
+ INSERT_EMPLOYEE,
+ INSERT_DEPARTMENT_INPUT,
+ INSERT_DEPARTMENT_CONFIRM,
+ INSERT_DEPARTMENT,
+
+ SHOW_MENU,
+ SELECT_EMPLOYEE_INFO,
+ SELECT_EMPLOYEE_INFO_FORM_EMPTY,
+
+ SELECT_DEPARTMENT_INFO,
+ SELECT_DEPARTMENT_INFO_FORM_EMPTY,
+
+ SHOW_UPDATE_EMPLOYEE,
+ UPDATE_EMPLOYEE_RESULT);
+ }
+
+ /**
+ * 一般向けのページリストを返す
+ *
+ * @return 一般向けのページリスト
+ */
+ public static Set getUserPageList() {
+ return Set.of(
+ INDEX_BLANK,
+ INDEX_SLASH,
+ INDEX_LOGIN,
+ LOGOUT,
+ DO_LOGIN,
+ PERSONAL_UPDATE_RESULT);
+ }
}
diff --git a/src/main/java/com/example/rhizome/app/presentation/form/DepartmentForm.java b/src/main/java/com/example/rhizome/app/presentation/form/DepartmentForm.java
index 6648423..d060e8b 100644
--- a/src/main/java/com/example/rhizome/app/presentation/form/DepartmentForm.java
+++ b/src/main/java/com/example/rhizome/app/presentation/form/DepartmentForm.java
@@ -1,12 +1,13 @@
package com.example.rhizome.app.presentation.form;
+import java.util.List;
+
import com.example.rhizome.app.domain.model.Department;
+
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
-import java.util.List;
-
/**
* 画面の表示に使う部署コード管理用のクラス
*/
@@ -31,7 +32,9 @@ public class DepartmentForm {
* @return 画面用(presentation 層)の DepartmentForm インスタンス
*/
public static DepartmentForm convertFrom(Department department) {
- return new DepartmentForm(department.getIdDepartment(), department.getNmDepartment());
+ return new DepartmentForm(
+ department.getIdDepartment(),
+ department.getNmDepartment());
}
/**
diff --git a/src/main/java/com/example/rhizome/app/presentation/form/InsertDepartmentForm.java b/src/main/java/com/example/rhizome/app/presentation/form/InsertDepartmentForm.java
new file mode 100644
index 0000000..1cfc5ee
--- /dev/null
+++ b/src/main/java/com/example/rhizome/app/presentation/form/InsertDepartmentForm.java
@@ -0,0 +1,68 @@
+package com.example.rhizome.app.presentation.form;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.example.rhizome.app.domain.model.Department;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 画面から渡ってきた登録内容をまとめ、再度画面に表示する為のクラス
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class InsertDepartmentForm {
+ /**
+ * 部署名
+ */
+ private String nmDepartment;
+
+ /**
+ * 仮引数を null or 空 判定する
+ *
+ * @param str 判定対象の文字列
+ * @return true:null or 空 false:null or 空 では無い
+ */
+ private static boolean isNullOrBlank(String str) {
+ if (null == str) {
+ return true;
+ }
+
+ return str.isBlank();
+ }
+
+ /**
+ * 画面から渡ってきた登録内容をまとめ、ビジネスモデルに変換
+ *
+ * @param insertEmployeeForm 画面から渡ってきた登録内容
+ * @return ビジネスモデルのインスタンス
+ */
+ public static Department convertTo(InsertDepartmentForm insertDepartmentForm) {
+ return new Department(
+ null,
+ insertDepartmentForm.getNmDepartment());
+ }
+
+ /**
+ * 登録データのValidationを行う
+ *
+ * @return エラーが有った場合はエラー文言、無ければ空のリストが返る
+ */
+ public List validateParameter() {
+ final String DEPARTMENT_NAME_NULL_BLANK = "部署名";
+
+ List error = new ArrayList<>();
+
+ if (isNullOrBlank(nmDepartment)) {
+ error.add(DEPARTMENT_NAME_NULL_BLANK);
+ }
+
+ return error;
+
+ }
+
+}
diff --git a/src/main/java/com/example/rhizome/app/presentation/form/SearchConditionDepartmentForm.java b/src/main/java/com/example/rhizome/app/presentation/form/SearchConditionDepartmentForm.java
new file mode 100644
index 0000000..7545990
--- /dev/null
+++ b/src/main/java/com/example/rhizome/app/presentation/form/SearchConditionDepartmentForm.java
@@ -0,0 +1,53 @@
+package com.example.rhizome.app.presentation.form;
+
+import com.example.rhizome.app.domain.model.SearchConditionDepartment;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 画面から渡ってきた検索条件をまとめ、再度画面に表示する為のクラス
+ */
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SearchConditionDepartmentForm {
+
+ /**
+ * 部署ID
+ */
+ private Integer idDepartment;
+
+ /**
+ * 部署名
+ */
+ private String nmDepartment;
+
+ /**
+ * business 層の SearchConditionDepartment クラスから画面用(presentation 層)の SearchConditionDepartmentForm に
+ * 変換します。
+ *
+ * @param searchConditionDepartment business 層の SearchConditionDepartment インスタンス
+ * @return 画面用(presentation 層)の SearchConditionDepartmentForm インスタンス
+ */
+ public static SearchConditionDepartmentForm convertFrom(SearchConditionDepartment searchConditionDepartment) {
+ return new SearchConditionDepartmentForm(
+ searchConditionDepartment.getIdDepartment(),
+ searchConditionDepartment.getNmDepartment());
+ }
+
+ /**
+ * 画面用(presentation 層)の SearchConditionDepartmentForm クラスから business 層の SearchConditionDepartment クラスに
+ * 変換します。
+ *
+ * @param searchConditionEmployeeForm 画面用(presentation 層)の SearchConditionDepartmentForm インスタンス
+ * @return business 層の SearchConditionDepartment インスタンス
+ */
+ public static SearchConditionDepartment convertTo(SearchConditionDepartmentForm searchConditionDepartmentForm) {
+ return new SearchConditionDepartment(
+ searchConditionDepartmentForm.getIdDepartment(),
+ searchConditionDepartmentForm.getNmDepartment());
+ }
+
+}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 88b15aa..6eca8cd 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -1,3 +1,3 @@
-spring.datasource.url=jdbc:mysql://localhost:3306/rezodb
+spring.datasource.url=jdbc:mysql://localhost:3306/springdb
spring.datasource.username=rezouser
spring.datasource.password=Rezo_0000
diff --git a/src/main/resources/templates/insertDepartmentConfirm.html b/src/main/resources/templates/insertDepartmentConfirm.html
new file mode 100644
index 0000000..5669ddf
--- /dev/null
+++ b/src/main/resources/templates/insertDepartmentConfirm.html
@@ -0,0 +1,79 @@
+
+
+
+
+
+
+
+
+
+
+
+ 登録内容確認
+
+
+
+ 登録内容確認
+
+ ログイン者名:
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/insertDepartmentInput.html b/src/main/resources/templates/insertDepartmentInput.html
new file mode 100644
index 0000000..967513b
--- /dev/null
+++ b/src/main/resources/templates/insertDepartmentInput.html
@@ -0,0 +1,58 @@
+
+
+
+
+
+
+
+
+
+
+
+ 部署登録
+
+
+
+
+ 部署登録
+
+ ログイン者名:
+
+
+
+
+ メニューに戻る
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/insertDepartmentResult.html b/src/main/resources/templates/insertDepartmentResult.html
new file mode 100644
index 0000000..37f0767
--- /dev/null
+++ b/src/main/resources/templates/insertDepartmentResult.html
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+ 部署登録完了
+
+
+
+ 部署登録が完了しました
+
+ 続けて登録する | メニューに戻る
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/templates/menu.html b/src/main/resources/templates/menu.html
index 6d0ee4a..0a2e604 100644
--- a/src/main/resources/templates/menu.html
+++ b/src/main/resources/templates/menu.html
@@ -3,115 +3,123 @@
-
-
-
-
-
-
- メニュー
+
+
+
+
+
+
+ メニュー
-
- メインメニュー
-
- ログイン者名:
-
-
-
-