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..d5707c9 --- /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.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; +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; + SearchEmployeeInfo searchEmployeeInfo; + + @Autowired + public SelectDepartmentController(HttpSession httpSession, SearchDepartment searchDepartment, + SearchEmployeeInfo searchEmployeeInfo) { + this.httpSession = httpSession; + this.searchDepartment = searchDepartment; + this.searchEmployeeInfo = searchEmployeeInfo; + } + + @ModelAttribute + public SearchConditionDepartmentForm searchConditionDepartmentForm() { + return new SearchConditionDepartmentForm(); + } + + @SessionCheck + @PermissionCheck + @RequestMapping(value = TransitionTargetPageNameKeyword.SELECT_DEPARTMENT, method = RequestMethod.POST) + public String select(SearchConditionDepartmentForm searchConditionDepartmentForm, Model model) { + try { + + 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; + } + + } + + @SessionCheck + @PermissionCheck + @RequestMapping(value = TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_INFO_FORM_EMPTY, method = RequestMethod.POST) + public String select(Model model) { + + model.addAttribute(PageReturnAttributeKeyword.DEPARTMENT_FORM_LIST, DepartmentForm.convertFrom( + searchDepartment.searchBy(SearchConditionDepartmentForm.convertTo(searchConditionDepartmentForm())))); + + return TransitionTargetPageNameKeyword.SELECT_DEPARTMENT_HTML; + } + +} 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..9652337 --- /dev/null +++ b/src/main/java/com/example/rhizome/app/presentation/form/SearchConditionDepartmentForm.java @@ -0,0 +1,28 @@ +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 +@NoArgsConstructor +@AllArgsConstructor +public class SearchConditionDepartmentForm { + + private Integer idDepartment; + private String nmDepartment; + + public static SearchConditionDepartmentForm convertFrom(SearchConditionDepartment searchConditionDepartment) { + return new SearchConditionDepartmentForm( + searchConditionDepartment.getIdDepartment(), + searchConditionDepartment.getNmDepartment()); + } + + public static SearchConditionDepartment convertTo(SearchConditionDepartmentForm searchConditionDepartmentForm) { + return new SearchConditionDepartment( + searchConditionDepartmentForm.getIdDepartment(), + searchConditionDepartmentForm.getNmDepartment()); + } +} diff --git a/src/main/resources/templates/selectDepartment.html b/src/main/resources/templates/selectDepartment.html new file mode 100644 index 0000000..63ac191 --- /dev/null +++ b/src/main/resources/templates/selectDepartment.html @@ -0,0 +1,115 @@ + + + +
+ + + + + + + +| 部署ID | +部署名 | +操作 | +
|---|---|---|
| + | + | + + + + + | +