From 5f438d96b6d0a910abbb9d8dc99e6d401d240f6c Mon Sep 17 00:00:00 2001 From: "h.hein" <26-h-kyaw-sakuracommunication@it-college.co.jp> Date: Fri, 9 Oct 2026 12:36:03 +0900 Subject: [PATCH] first stept --- ....eclipse.wst.common.project.facet.core.xml | 7 ++ .../domain/service/SearchDepartmentImpl.java | 42 ++++++++++ .../SelectDepartmentController.java | 39 ++++++++++ .../form/SearchConditionDepartmentForm.java | 36 +++++++++ .../resources/templates/selectDepartment.html | 78 +++++++++++++++++++ .../resources/templates/selectEmployee.html | 2 +- 6 files changed, 203 insertions(+), 1 deletion(-) create mode 100644 .settings/org.eclipse.wst.common.project.facet.core.xml create mode 100644 src/main/java/com/example/rhizome/app/domain/service/SearchDepartmentImpl.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/SearchConditionDepartmentForm.java create mode 100644 src/main/resources/templates/selectDepartment.html 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/src/main/java/com/example/rhizome/app/domain/service/SearchDepartmentImpl.java b/src/main/java/com/example/rhizome/app/domain/service/SearchDepartmentImpl.java new file mode 100644 index 0000000..60d6c23 --- /dev/null +++ b/src/main/java/com/example/rhizome/app/domain/service/SearchDepartmentImpl.java @@ -0,0 +1,42 @@ +package com.example.rhizome.app.domain.service; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.jpa.domain.Specification; +import org.springframework.stereotype.Service; + +import com.example.rhizome.app.domain.model.Department; +import com.example.rhizome.app.domain.model.SearchConditionDepartment; +import com.example.rhizome.app.infra.entity.DepartmentEntity; +import com.example.rhizome.app.infra.repository.DepartmentRepository; + +@Service +public class SearchDepartmentImpl implements SearchDepartment { + + @Autowired + private DepartmentRepository departmentRepository; + + @Override + public List selectAll() { + return DepartmentEntity.createDepartmentList(departmentRepository.findAll()); + } + + @Override + public List searchBy(SearchConditionDepartment searchConditionDepartment) { + Specification spec = Specification + .where(DepartmentRepository.idDepartmentEqual(searchConditionDepartment.getIdDepartment())) + .and(DepartmentRepository.nmDepartmentEqual(searchConditionDepartment.getNmDepartment())); + + return DepartmentEntity.createDepartmentList(departmentRepository.findAll(spec)); + } + + @Override + public List searchByWithLike(SearchConditionDepartment searchConditionDepartment) { + Specification spec = Specification + .where(DepartmentRepository.idDepartmentEqual(searchConditionDepartment.getIdDepartment())) + .and(DepartmentRepository.nmDepartmentLike(searchConditionDepartment.getNmDepartment())); + + return DepartmentEntity.createDepartmentList(departmentRepository.findAll(spec)); + } +} \ No newline at end of file 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..bde8694 --- /dev/null +++ b/src/main/java/com/example/rhizome/app/presentation/controller/SelectDepartmentController.java @@ -0,0 +1,39 @@ +package com.example.rhizome.app.presentation.controller; + +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; + +import com.example.rhizome.app.domain.model.Department; +import com.example.rhizome.app.domain.service.SearchDepartment; +import com.example.rhizome.app.presentation.form.DepartmentForm; +import com.example.rhizome.app.presentation.form.SearchConditionDepartmentForm; + +@Controller +public class SelectDepartmentController { + + @Autowired + private SearchDepartment searchDepartment; + + /** 部署検索画面の初期表示 */ + @GetMapping("/showSelectDepartment") + public String showSelectDepartment(@ModelAttribute SearchConditionDepartmentForm searchConditionDepartmentForm) { + return "department/selectDepartment"; + } + + /** 部署検索処理 */ + @PostMapping("/selectDepartment") + public String selectDepartment(@ModelAttribute SearchConditionDepartmentForm searchConditionDepartmentForm, Model model) { + List departmentList = searchDepartment.searchByWithLike( + SearchConditionDepartmentForm.convertTo(searchConditionDepartmentForm) + ); + + model.addAttribute("departmentFormList", DepartmentForm.convertFrom(departmentList)); + return "department/selectDepartment"; + } +} \ No newline at end of file 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..43abca9 --- /dev/null +++ b/src/main/java/com/example/rhizome/app/presentation/form/SearchConditionDepartmentForm.java @@ -0,0 +1,36 @@ +package com.example.rhizome.app.presentation.form; + +import com.example.rhizome.app.domain.model.SearchConditionDepartment; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 部署検索条件用のFormクラス + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class SearchConditionDepartmentForm { + + /** 部署ID */ + private Integer idDepartment; + + /** 部署名 */ + private String nmDepartment; + + public static SearchConditionDepartmentForm convertFrom(SearchConditionDepartment searchConditionDepartment) { + return new SearchConditionDepartmentForm( + searchConditionDepartment.getIdDepartment(), + searchConditionDepartment.getNmDepartment() + ); + } + + public static SearchConditionDepartment convertTo(SearchConditionDepartmentForm form) { + return new SearchConditionDepartment( + form.getIdDepartment(), + form.getNmDepartment() + ); + } +} \ No newline at end of file diff --git a/src/main/resources/templates/selectDepartment.html b/src/main/resources/templates/selectDepartment.html new file mode 100644 index 0000000..339a7eb --- /dev/null +++ b/src/main/resources/templates/selectDepartment.html @@ -0,0 +1,78 @@ + + + + + + + + 部署検索 + + +

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

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

検索結果

+
+ + + + + + + + + + + + + + + +
部署ID部署名
+
+ + + 検索結果はありません。 + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/selectEmployee.html b/src/main/resources/templates/selectEmployee.html index 47cf487..185b116 100644 --- a/src/main/resources/templates/selectEmployee.html +++ b/src/main/resources/templates/selectEmployee.html @@ -14,7 +14,7 @@

- 検索条件入力    + 検索条件入力

ログイン者名: