From dee00597e69bc669bf75e910b2f64d2e1ed6aede Mon Sep 17 00:00:00 2001 From: a-kawaguchi <26-a-kawaguchi-kyoeisystems@it-college.co.jp> Date: Thu, 10 Sep 2026 13:50:10 +0900 Subject: [PATCH] no message --- .gitignore | 4 + .settings/.jsdtscope | 13 ++ .settings/org.eclipse.core.resources.prefs | 6 + .settings/org.eclipse.jdt.core.prefs | 11 ++ .settings/org.eclipse.wst.common.component | 10 ++ ....eclipse.wst.common.project.facet.core.xml | 7 ++ ...rg.eclipse.wst.jsdt.ui.superType.container | 1 + .../org.eclipse.wst.jsdt.ui.superType.name | 1 + .settings/org.eclipse.wst.validation.prefs | 2 + pom.xml | 3 +- .../service/impl/SearchDepartmentImpl.java | 15 +-- .../InsertDepartmentController.java | 86 ++++++++++++++ .../SelectDepartmentController.java | 98 ++++++++++++++++ .../controller/SelectEmployeeController.java | 22 ++-- .../TransitionTargetPageNameKeyword.java | 11 ++ .../app/presentation/form/DepartmentForm.java | 21 +++- src/main/resources/application.properties | 2 +- .../templates/insertDevelopmentInput.html | 23 ++++ src/main/resources/templates/menu.html | 14 ++- .../resources/templates/selectDepartment.html | 111 ++++++++++++++++++ 20 files changed, 439 insertions(+), 22 deletions(-) create mode 100644 .gitignore create mode 100644 .settings/.jsdtscope create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.wst.common.component create mode 100644 .settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.container create mode 100644 .settings/org.eclipse.wst.jsdt.ui.superType.name create mode 100644 .settings/org.eclipse.wst.validation.prefs 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/resources/templates/insertDevelopmentInput.html create mode 100644 src/main/resources/templates/selectDepartment.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..af9d5c2 --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +/target/ +/bin/ +.classpath +.project diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 0000000..e4a0c2d --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..29abf99 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,6 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f9e3458 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.methodParameters=generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component new file mode 100644 index 0000000..36e6ccc --- /dev/null +++ b/.settings/org.eclipse.wst.common.component @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.settings/org.eclipse.wst.common.project.facet.core.xml b/.settings/org.eclipse.wst.common.project.facet.core.xml new file mode 100644 index 0000000..36d3a1f --- /dev/null +++ b/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/.settings/org.eclipse.wst.validation.prefs b/.settings/org.eclipse.wst.validation.prefs new file mode 100644 index 0000000..04cad8c --- /dev/null +++ b/.settings/org.eclipse.wst.validation.prefs @@ -0,0 +1,2 @@ +disabled=06target +eclipse.preferences.version=1 diff --git a/pom.xml b/pom.xml index 24be8c6..0efa303 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/service/impl/SearchDepartmentImpl.java b/src/main/java/com/example/rhizome/app/domain/service/impl/SearchDepartmentImpl.java index feb6b37..c2860af 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,18 @@ package com.example.rhizome.app.domain.service.impl; +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 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 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; /** * 部署情報検索系の機能を集約させるサービスクラスです。 @@ -54,7 +55,7 @@ public class SearchDepartmentImpl implements SearchDepartment { .createDepartmentList( departmentRepository.findAll(Specification .where(DepartmentRepository.idDepartmentEqual(searchConditionDepartment.getIdDepartment())) - .and(DepartmentRepository.nmDepartmentEqual(searchConditionDepartment.getNmDepartment())) + .and(DepartmentRepository.nmDepartmentLike(searchConditionDepartment.getNmDepartment())) ) ); 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..b64e5f9 --- /dev/null +++ b/src/main/java/com/example/rhizome/app/presentation/controller/InsertDepartmentController.java @@ -0,0 +1,86 @@ +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.RegisterEmployee; +import com.example.rhizome.app.domain.service.SearchDepartment; +import com.example.rhizome.app.domain.service.impl.RegisterEmployeeImpl; +import com.example.rhizome.app.domain.service.impl.SearchDepartmentImpl; +import com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword; +import com.example.rhizome.app.presentation.form.InsertEmployeeForm; + +/** + * 新規登録用のコントローラ + */ +@Controller +public class InsertDepartmentController { + + // ログ出力用インスタンス + private final static Logger LOGGER = Logger.getLogger(InsertDepartmentController.class.getName()); + + // エラーメッセージ用の定数フィールド + private final static String SEVERE_ERROR_MESSAGE = "エラーが発生しました!"; + + HttpSession httpSession; + RegisterEmployee registerEmployee; + SearchDepartment searchDepartment; + + @Autowired + public InsertDepartmentController(HttpSession httpSession, RegisterEmployeeImpl registerEmployee, SearchDepartmentImpl searchDepartment) { + this.httpSession = httpSession; + this.registerEmployee = registerEmployee; + this.searchDepartment = searchDepartment; + } + + @ModelAttribute + public InsertEmployeeForm insertEmployeeForm() { + return new InsertEmployeeForm(); + } + + /** + * 新規登録画面表示処理 + * + * @param insertEmployeeForm 登録情報 + * @param model ビューにデータを渡すためのコンテナ + * @return 遷移先の画面 + */ + @PermissionCheck + @SessionCheck + @RequestMapping(value = TransitionTargetPageNameKeyword.INSERT_DEPARTMENT, method = RequestMethod.POST) + public String insertEmployee(InsertEmployeeForm insertEmployeeForm, Model model) { + + try { + + // 登録結果画面に遷移 + return TransitionTargetPageNameKeyword.INSERT_DEVELOPMENT_INPUT_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/SelectDepartmentController.java b/src/main/java/com/example/rhizome/app/presentation/controller/SelectDepartmentController.java new file mode 100644 index 0000000..7b43a31 --- /dev/null +++ b/src/main/java/com/example/rhizome/app/presentation/controller/SelectDepartmentController.java @@ -0,0 +1,98 @@ +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.domain.service.SearchEmployeeInfo; +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; + +/** + * 社員検索画面用コントローラ リスト全件表示、検索表示、更新、削除が可能 + */ +@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; + SearchEmployeeInfo searchEmployeeInfo; + + @Autowired + public SelectDepartmentController(HttpSession httpSession, SearchDepartment searchDepartment, SearchEmployeeInfo searchEmployeeInfo) { + this.httpSession = httpSession; + this.searchDepartment = searchDepartment; + this.searchEmployeeInfo = searchEmployeeInfo; + } + + @ModelAttribute + public DepartmentForm departmentForm() { + return new DepartmentForm(); + } + + /** + * 社員検索画面表示処理コントローラ + * + * @param searchConditionEmployeeForm 検索画面のフォーム + * @param model ビューにデータを渡すためのコンテナ + * @return 遷移先の画面 + */ + @PermissionCheck + @SessionCheck + @RequestMapping(value = TransitionTargetPageNameKeyword.SELECT_DEPARTMENT, method = RequestMethod.POST) + public String select(DepartmentForm departmentForm, Model model) { + + try { + // 部署一覧を取得し、画面に返す用のクラスに詰め替える + // 作成した部署一覧をセット + System.out.println(departmentForm); + model.addAttribute( + PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, + DepartmentForm.convertFrom(searchDepartment.selectAll()) + ); + System.out.println(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST); + System.out.println(DepartmentForm.convertFrom(searchDepartment.selectAll())); + System.out.println(model.getAttribute("departmentFormList")); + + // 検索条件を元に検索を実施 + // 取得した department の情報を画面に返す用の型に詰め替えてセット + model.addAttribute(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, DepartmentForm.convertFrom(searchDepartment.searchBy(DepartmentForm.convertTo(departmentForm)))); + + // 検索ページに遷移 + return TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_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/SelectEmployeeController.java b/src/main/java/com/example/rhizome/app/presentation/controller/SelectEmployeeController.java index fa41f62..f8baeaa 100644 --- a/src/main/java/com/example/rhizome/app/presentation/controller/SelectEmployeeController.java +++ b/src/main/java/com/example/rhizome/app/presentation/controller/SelectEmployeeController.java @@ -1,5 +1,17 @@ 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; @@ -9,16 +21,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.EmployeeInfoForm; import com.example.rhizome.app.presentation.form.SearchConditionEmployeeForm; -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.logging.Level; -import java.util.logging.Logger; /** * 社員検索画面用コントローラ リスト全件表示、検索表示、更新、削除が可能 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..801a865 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 @@ -17,9 +17,11 @@ public class TransitionTargetPageNameKeyword { // 管理者向け 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_DEVELOPMENT_INPUT_HTML = "insertDevelopmentInput"; public static final String UPDATE_EMPLOYEE_INPUT_HTML = "updateEmployeeInput"; public static final String ERROR_HTML = "error"; @@ -36,14 +38,21 @@ public class TransitionTargetPageNameKeyword { // 管理者向け(Controller) public static final String DELETE_EMPLOYEE = "/deleteEmployee"; +// public static final String DELETE_DEPARTMENT = "/deleteDepartment"; 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 = "/insertDepartmentInput"; +// public static final String INSERT_DEPARTMENT_INPUT = "/selectDepartmentInfo"; +// public static final String INSERT_DEPARTMENT_CONFIRM = "/selectDepartmentConfirm"; 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"; + public static final String SELECT_DEPARTMENT = "/selectDepartment"; + public static final String SELECT_DEPARTMENT_INFO_FORM_EMPTY = "/selectDepartmentAll"; + // Department // HTML @@ -66,8 +75,10 @@ public class TransitionTargetPageNameKeyword { INSERT_EMPLOYEE_INPUT, INSERT_EMPLOYEE_CONFIRM, INSERT_EMPLOYEE, + INSERT_DEPARTMENT, SHOW_MENU, SELECT_EMPLOYEE_INFO, + SELECT_DEPARTMENT, SELECT_EMPLOYEE_INFO_FORM_EMPTY, SHOW_UPDATE_EMPLOYEE, UPDATE_EMPLOYEE_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..0eead59 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,14 @@ package com.example.rhizome.app.presentation.form; +import java.util.List; + import com.example.rhizome.app.domain.model.Department; +import com.example.rhizome.app.domain.model.SearchConditionDepartment; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.List; - /** * 画面の表示に使う部署コード管理用のクラス */ @@ -44,4 +46,19 @@ public class DepartmentForm { public static List convertFrom(List departmentList) { return departmentList.stream().map(DepartmentForm::convertFrom).toList(); } + + /** + * 画面用(presentation 層)の DepartmentForm クラスから business 層の SearchConditionDepartment クラスに + * 変換します。 + * + * @param departmentForm 画面用(presentation 層)の departmentForm インスタンス + * @return business 層の searchConditionDepartment インスタンス + */ + public static SearchConditionDepartment convertTo(DepartmentForm departmentForm) { + return new SearchConditionDepartment( + departmentForm.getIdDepartment(), + departmentForm.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/insertDevelopmentInput.html b/src/main/resources/templates/insertDevelopmentInput.html new file mode 100644 index 0000000..50e8907 --- /dev/null +++ b/src/main/resources/templates/insertDevelopmentInput.html @@ -0,0 +1,23 @@ + + + + + + + + + + + + 社員登録 + + + +

+ 社員登録    + +

+ +メニューに戻る + + \ No newline at end of file diff --git a/src/main/resources/templates/menu.html b/src/main/resources/templates/menu.html index 6d0ee4a..df033b5 100644 --- a/src/main/resources/templates/menu.html +++ b/src/main/resources/templates/menu.html @@ -25,13 +25,25 @@ 社員検索 - 登録済みのユーザ一覧表示と
更新、削除を行います。 + 登録済みのユーザ一覧表示と更新、削除を行います。 社員登録 新規でユーザ追加を行います。 + + + 部署検索 + + 登録済みの部署一覧表示と更新、削除を行います。 + + + + 部署登録 + + 新規で部署追加を行います。 + diff --git a/src/main/resources/templates/selectDepartment.html b/src/main/resources/templates/selectDepartment.html new file mode 100644 index 0000000..3a555f9 --- /dev/null +++ b/src/main/resources/templates/selectDepartment.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + 検索 + + + +

+ 検索条件入力    +
+ ログイン者名: + +
+

+
+ +
+ +
+ + + + + + + + + + + + + + +
部署ID + +
部署名 + 部署名 +
+ + + +
+
+
+メニューに戻る +
+

検索結果

+
+ + + +
+ + + + + + + + + + + + + + + + + +
部署ID部署名操作
+ + + + + +
+
+ + + 検索結果はありません。 + + + + + + + \ No newline at end of file