From d2828cbf7c3bde47861c7699b6bb099bbfacc813 Mon Sep 17 00:00:00 2001 From: s-ikeda <26-s-ikeda-tmn@it-college.co.jp> Date: Wed, 14 Oct 2026 15:49:13 +0900 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC1=E6=AE=B5=E9=9A=8E=E7=B5=82=E4=BA=86?= =?UTF-8?q?=E3=81=97=E3=81=BE=E3=81=97=E3=81=9F=E3=80=82=E6=B1=A0=E7=94=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/domain/service/SearchDepartment.java | 23 +- .../service/impl/SearchDepartmentImpl.java | 39 ++- .../InsertEmployeeConfirmController.java | 265 +++++++++--------- .../controller/InsertEmployeeController.java | 33 ++- .../PageReturnAttributeKeyword.java | 2 + .../TransitionTargetPageNameKeyword.java | 9 + src/main/resources/templates/menu.html | 12 + 7 files changed, 221 insertions(+), 162 deletions(-) diff --git a/src/main/java/com/example/rhizome/app/domain/service/SearchDepartment.java b/src/main/java/com/example/rhizome/app/domain/service/SearchDepartment.java index 572dcee..3a2c687 100644 --- a/src/main/java/com/example/rhizome/app/domain/service/SearchDepartment.java +++ b/src/main/java/com/example/rhizome/app/domain/service/SearchDepartment.java @@ -1,14 +1,25 @@ package com.example.rhizome.app.domain.service; -import com.example.rhizome.app.domain.model.Department; -import com.example.rhizome.app.domain.model.SearchConditionDepartment; - import java.util.List; +import com.example.rhizome.app.domain.model.Department; +import com.example.rhizome.app.domain.model.Employee; +import com.example.rhizome.app.domain.model.LoginUser; +import com.example.rhizome.app.domain.model.SearchConditionDepartment; + public interface SearchDepartment { - List selectAll(); - List searchBy(SearchConditionDepartment searchConditionDepartment); + List searchDepartmentBynmDepartment(String nmDepartment); + + List searchDepartmentByIdDepartment(Integer idDepartment); + + // これはなにをしている? SearchEmployeeより + LoginUser searchLoginUser(String mailAddress); + + Employee searchEmployeeByIdEmployee(Integer idEmployee); + + List selectAll(); + + List searchByWithLike(SearchConditionDepartment condition); - List searchByWithLike(SearchConditionDepartment searchConditionDepartment); } diff --git a/src/main/java/com/example/rhizome/app/domain/service/impl/SearchDepartmentImpl.java b/src/main/java/com/example/rhizome/app/domain/service/impl/SearchDepartmentImpl.java index feb6b37..4bbe912 100644 --- a/src/main/java/com/example/rhizome/app/domain/service/impl/SearchDepartmentImpl.java +++ b/src/main/java/com/example/rhizome/app/domain/service/impl/SearchDepartmentImpl.java @@ -1,17 +1,20 @@ package com.example.rhizome.app.domain.service.impl; -import com.example.rhizome.app.domain.model.Department; -import com.example.rhizome.app.domain.model.SearchConditionDepartment; -import com.example.rhizome.app.domain.service.SearchDepartment; -import com.example.rhizome.app.infra.entity.DepartmentEntity; -import com.example.rhizome.app.infra.repository.DepartmentRepository; +import java.util.List; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.jpa.domain.Specification; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.List; +import com.example.rhizome.app.domain.model.Department; +import com.example.rhizome.app.domain.model.Employee; +import com.example.rhizome.app.domain.model.LoginUser; +import com.example.rhizome.app.domain.model.SearchConditionDepartment; +import com.example.rhizome.app.domain.service.SearchDepartment; +import com.example.rhizome.app.infra.entity.DepartmentEntity; +import com.example.rhizome.app.infra.repository.DepartmentRepository; /** * 部署情報検索系の機能を集約させるサービスクラスです。 @@ -79,4 +82,28 @@ public class SearchDepartmentImpl implements SearchDepartment { ); } + + @Override + public List searchDepartmentBynmDepartment(String nmDepartment) { + // TODO 自動生成されたメソッド・スタブ + return null; + } + + @Override + public List searchDepartmentByIdDepartment(Integer idDepartment) { + // TODO 自動生成されたメソッド・スタブ + return null; + } + + @Override + public LoginUser searchLoginUser(String mailAddress) { + // TODO 自動生成されたメソッド・スタブ + return null; + } + + @Override + public Employee searchEmployeeByIdEmployee(Integer idEmployee) { + // TODO 自動生成されたメソッド・スタブ + return null; + } } diff --git a/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeConfirmController.java b/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeConfirmController.java index 4cdf8d1..76ce9c4 100644 --- a/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeConfirmController.java +++ b/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeConfirmController.java @@ -1,133 +1,132 @@ -package com.example.rhizome.app.presentation.controller; - -import com.example.rhizome.aop.aspect.PermissionCheck; -import com.example.rhizome.aop.aspect.SessionCheck; -import com.example.rhizome.app.domain.model.Employee; -import com.example.rhizome.app.domain.service.SearchDepartment; -import com.example.rhizome.app.domain.service.SearchEmployee; -import com.example.rhizome.app.domain.service.impl.SearchDepartmentImpl; -import com.example.rhizome.app.domain.service.impl.SearchEmployeeImpl; -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.InsertEmployeeForm; -import com.example.rhizome.app.presentation.form.MessageForm; -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 javax.servlet.http.HttpSession; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_CONFIRM; - -/** - * 新規登録者情報チェック用のコントローラ - */ -@Controller -public class InsertEmployeeConfirmController { - - // ログ出力用インスタンス - private final static Logger LOGGER = Logger.getLogger(InsertEmployeeConfirmController.class.getName()); - - // エラーメッセージ用の定数フィールド - private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; - - HttpSession httpSession; - SearchDepartment searchDepartment; - SearchEmployee searchEmployee; - - @Autowired - public InsertEmployeeConfirmController( - HttpSession httpSession, - SearchDepartmentImpl searchDepartment, - SearchEmployeeImpl searchEmployee - ) { - this.httpSession = httpSession; - this.searchDepartment = searchDepartment; - this.searchEmployee = searchEmployee; - } - - @ModelAttribute - public InsertEmployeeForm insertEmployeeForm() { - return new InsertEmployeeForm(); - } - - /** - * 登録情報のチェックを行う - * - * @param insertEmployeeForm 登録情報 - * @param model ビューにデータを渡すためのコンテナ - * @return 遷移先の画面 - */ - @PermissionCheck - @SessionCheck - @RequestMapping(value = INSERT_EMPLOYEE_CONFIRM, method = RequestMethod.POST) - public String insertEmployeeConfirm(InsertEmployeeForm insertEmployeeForm, Model model) { - - try { - // 部署一覧を取得し、画面に返す用のクラスに詰め替える - // 作成した部署一覧をセット - model.addAttribute( - PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, - DepartmentForm.convertFrom( - searchDepartment.selectAll() - )); - - // 登録用パラメータチェック - List error = insertEmployeeForm.validateParameter(); - - // 入力内容に誤りがあるか - if (!error.isEmpty()) { - // 誤りがあった場合 - // 誤りがあった箇所のエラーメッセージを表示 - model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(String.join(", ", error) + "が不正です。")); - // 画面に返す為の登録情報をセット - model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); - // 登録画面に遷移 - return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; - } - - final String DUPLICATION = "既に登録済みのメールアドレスです。"; - - // 登録対象のメールアドレスを元に検索 - List employeeList = searchEmployee.searchEmployee(insertEmployeeForm.getMailAddress()); - - // 検索結果があるか - if (!employeeList.isEmpty()) { - // 検索した結果0件ではない場合 - // 重複を許さないため、エラー処理 - model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(DUPLICATION)); - // 画面に返す為の登録情報をセット - model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); - // 登録画面に遷移 - return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; - } - - // 登録確認ページに遷移 - model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); - // 登録確認画面に遷移 - return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_CONFIRM_HTML; - - - } catch (Exception e) { - // ログイン情報の破棄 - httpSession.invalidate(); - - e.printStackTrace(); - - // エラーログ出力 - LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); - // エラー画面遷移 - return TransitionTargetPageNameKeyword.ERROR_HTML; - } - } -} - - - +//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.model.Employee; +//import com.example.rhizome.app.domain.service.SearchDepartment; +//import com.example.rhizome.app.domain.service.SearchEmployee; +//import com.example.rhizome.app.domain.service.impl.SearchDepartmentImpl; +//import com.example.rhizome.app.domain.service.impl.SearchEmployeeImpl; +//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.InsertEmployeeForm; +//import com.example.rhizome.app.presentation.form.MessageForm; +// +///** +// * 新規登録者情報チェック用のコントローラ +// */ +//@Controller +//public class InsertEmployeeConfirmController { +// +// // ログ出力用インスタンス +// private final static Logger LOGGER = Logger.getLogger(InsertEmployeeConfirmController.class.getName()); +// +// // エラーメッセージ用の定数フィールド +// private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; +// +// HttpSession httpSession; +// SearchDepartment searchDepartment; +// SearchEmployee searchEmployee; +// +// @Autowired +// public InsertEmployeeConfirmController( +// HttpSession httpSession, +// SearchDepartmentImpl searchDepartment, +// SearchEmployeeImpl searchEmployee +// ) { +// this.httpSession = httpSession; +// this.searchDepartment = searchDepartment; +// this.searchEmployee = searchEmployee; +// } +// +// @ModelAttribute +// public InsertEmployeeForm insertEmployeeForm() { +// return new InsertEmployeeForm(); +// } +// +// /** +// * 登録情報のチェックを行う +// * +// * @param insertEmployeeForm 登録情報 +// * @param model ビューにデータを渡すためのコンテナ +// * @return 遷移先の画面 +// */ +// @PermissionCheck +// @SessionCheck +// @RequestMapping(value = INSERT_EMPLOYEE_CONFIRM, method = RequestMethod.POST) +// public String insertEmployeeConfirm(InsertEmployeeForm insertEmployeeForm, Model model) { +// +// try { +// // 部署一覧を取得し、画面に返す用のクラスに詰め替える +// // 作成した部署一覧をセット +// model.addAttribute( +// PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, +// DepartmentForm.convertFrom( +// searchDepartment.selectAll() +// )); +// +// // 登録用パラメータチェック +// List error = insertEmployeeForm.validateParameter(); +// +// // 入力内容に誤りがあるか +// if (!error.isEmpty()) { +// // 誤りがあった場合 +// // 誤りがあった箇所のエラーメッセージを表示 +// model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(String.join(", ", error) + "が不正です。")); +// // 画面に返す為の登録情報をセット +// model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); +// // 登録画面に遷移 +// return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; +// } +// +// final String DUPLICATION = "既に登録済みのメールアドレスです。"; +// +// // 登録対象のメールアドレスを元に検索 +// List employeeList = searchEmployee.searchEmployee(insertEmployeeForm.getMailAddress()); +// +// // 検索結果があるか +// if (!employeeList.isEmpty()) { +// // 検索した結果0件ではない場合 +// // 重複を許さないため、エラー処理 +// model.addAttribute(PageReturnAttributeKeyword.MESSAGE_ERROR, new MessageForm(DUPLICATION)); +// // 画面に返す為の登録情報をセット +// model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); +// // 登録画面に遷移 +// return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_INPUT_HTML; +// } +// +// // 登録確認ページに遷移 +// model.addAttribute(PageReturnAttributeKeyword.INSERT_EMPLOYEE_FORM, insertEmployeeForm); +// // 登録確認画面に遷移 +// return TransitionTargetPageNameKeyword.INSERT_EMPLOYEE_CONFIRM_HTML; +// +// +// } catch (Exception e) { +// // ログイン情報の破棄 +// httpSession.invalidate(); +// +// e.printStackTrace(); +// +// // エラーログ出力 +// LOGGER.log(Level.SEVERE, SEVERE_ERROR_MESSAGE, e); +// // エラー画面遷移 +// return TransitionTargetPageNameKeyword.ERROR_HTML; +// } +// } +//} \ No newline at end of file diff --git a/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java b/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java index a532295..8391e55 100644 --- a/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java +++ b/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java @@ -1,5 +1,21 @@ package com.example.rhizome.app.presentation.controller; +import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*; + +import java.util.ArrayList; +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.RegisterEmployee; @@ -11,20 +27,6 @@ import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTa import com.example.rhizome.app.presentation.form.DepartmentForm; import com.example.rhizome.app.presentation.form.InsertEmployeeForm; import com.example.rhizome.app.presentation.form.MessageForm; -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 javax.servlet.http.HttpSession; -import java.util.ArrayList; -import java.util.List; -import java.util.logging.Level; -import java.util.logging.Logger; - -import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.INSERT_EMPLOYEE; /** * 新規登録用のコントローラ @@ -193,6 +195,3 @@ public class InsertEmployeeController { } } - - - 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..1313f12 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 @@ -14,5 +14,7 @@ public class PageReturnAttributeKeyword { 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"; } 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..2b8dfe5 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 @@ -45,9 +45,18 @@ public class TransitionTargetPageNameKeyword { public static final String SHOW_UPDATE_EMPLOYEE = "/showUpdateEmployee"; public static final String UPDATE_EMPLOYEE_RESULT = "/updateEmployeeResult"; + public static final String SELECT_DEPARTMENT_INFO = "/selectEmployeeInfo"; + public static final String SELECT_DEPARTMENT_INFO_FORM_EMPTY = "/selectAll"; + + public static final String DELETE_DEPARTMENT = "/deleteDepartment"; + + // Department // HTML + public static final String SELECT_DEPARTMENT_HTML = "selectDepartment"; + // Controller + public static final String SELECT_DEPARTMENT = "/selectDepartment"; /** * 管理者向けのページリストを返す diff --git a/src/main/resources/templates/menu.html b/src/main/resources/templates/menu.html index 6d0ee4a..569e6d9 100644 --- a/src/main/resources/templates/menu.html +++ b/src/main/resources/templates/menu.html @@ -32,6 +32,18 @@ 社員登録 新規でユーザ追加を行います。 + + + + 部署検索 + + 登録済みの部署一覧表示と
更新、削除を行います。 + + + 部署登録 + + 新規で部署追加を行います。 +