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 |
+ 部署名 |
+
+
+
+
+ |
+ |
+
+
+
+
+
+
+ 検索結果はありません。
+
+
+
+
+
\ 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 @@
- 検索条件入力
+ 検索条件入力
ログイン者名: