diff --git a/EM-System/src/main/java/com/example/rhizome/app/domain/model/Employee.java b/EM-System/src/main/java/com/example/rhizome/app/domain/model/Employee.java index 91f20a5..6e2eb33 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/domain/model/Employee.java +++ b/EM-System/src/main/java/com/example/rhizome/app/domain/model/Employee.java @@ -1,5 +1,7 @@ package com.example.rhizome.app.domain.model; +import java.time.LocalDate; + import lombok.AllArgsConstructor; import lombok.Getter; @@ -37,5 +39,9 @@ public class Employee { * 部署ID */ private final Integer idDepartment; + /** + * 入社年月日 + */ + private final LocalDate dateHired; } diff --git a/EM-System/src/main/java/com/example/rhizome/app/domain/model/EmployeeInfo.java b/EM-System/src/main/java/com/example/rhizome/app/domain/model/EmployeeInfo.java index 49f137f..54b6e35 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/domain/model/EmployeeInfo.java +++ b/EM-System/src/main/java/com/example/rhizome/app/domain/model/EmployeeInfo.java @@ -6,6 +6,8 @@ */ package com.example.rhizome.app.domain.model; +import java.time.Period; + import lombok.AllArgsConstructor; import lombok.Getter; @@ -24,5 +26,10 @@ public class EmployeeInfo { * 部署名 */ private final Department department; + + /** + * 勤続年数 + */ + private final Period lengthOfService; } diff --git a/EM-System/src/main/java/com/example/rhizome/app/domain/model/LoginUser.java b/EM-System/src/main/java/com/example/rhizome/app/domain/model/LoginUser.java index d0bd75c..3e381f7 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/domain/model/LoginUser.java +++ b/EM-System/src/main/java/com/example/rhizome/app/domain/model/LoginUser.java @@ -1,5 +1,7 @@ package com.example.rhizome.app.domain.model; +import java.time.LocalDate; + import lombok.AllArgsConstructor; import lombok.Getter; @@ -39,6 +41,11 @@ public class LoginUser { * 部署ID */ private final Integer idDepartment; + + /** + * 入社年月日 + */ + private final LocalDate dateHired; /** * ログインユーザが管理者か diff --git a/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/SearchEmployeeInfoImpl.java b/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/SearchEmployeeInfoImpl.java index 09763c9..3110897 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/SearchEmployeeInfoImpl.java +++ b/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/SearchEmployeeInfoImpl.java @@ -1,16 +1,20 @@ package com.example.rhizome.app.domain.service.impl; +import java.time.LocalDate; +import java.time.Period; +import java.util.ArrayList; +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.EmployeeInfo; import com.example.rhizome.app.domain.model.SearchConditionEmployee; import com.example.rhizome.app.domain.service.SearchEmployeeInfo; import com.example.rhizome.app.infra.entity.EmployeeDepartmentEntity; import com.example.rhizome.app.infra.repository.EmployeeInfoRepository; -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; /** * SearchEmployeeInfoImpl (employee join department) 検索系の機能を集約させるサービスクラスです @@ -19,44 +23,55 @@ import java.util.List; @Transactional public class SearchEmployeeInfoImpl implements SearchEmployeeInfo { - EmployeeInfoRepository employeeInfoRepository; + EmployeeInfoRepository employeeInfoRepository; - @Autowired - public SearchEmployeeInfoImpl(EmployeeInfoRepository employeeInfoRepository) { - this.employeeInfoRepository = employeeInfoRepository; - } + @Autowired + public SearchEmployeeInfoImpl(EmployeeInfoRepository employeeInfoRepository) { + this.employeeInfoRepository = employeeInfoRepository; + } + /** + * EmployeeInfo (employee join department) のレコードを全件取得 + * + * @return 取得したレコード全件 + */ + public List selectAll() { - /** - * EmployeeInfo (employee join department) のレコードを全件取得 - * - * @return 取得したレコード全件 - */ - public List selectAll() { + List entityList = employeeInfoRepository.findAll(); + List lengthOfServiceList = new ArrayList<>(); - return EmployeeDepartmentEntity.createEmployeeInfoList(employeeInfoRepository.findAll()); + for (EmployeeDepartmentEntity entity : entityList) { + lengthOfServiceList.add(Period.between(entity.getDateHired(), LocalDate.now())); + } - } + return EmployeeDepartmentEntity.createEmployeeInfoList(entityList, lengthOfServiceList); - /** - * SearchConditionEmployee の情報を元に EmployeeInfo (employee join department) のレコードを取得 - * - * @param searchConditionEmployee 検索条件 - * @return 検索結果のレコードリスト - */ - public List searchBy(SearchConditionEmployee searchConditionEmployee) { - // 動的に検索条件を絞り込む - // Specification は Criteria API の Predicate をラップしたもの - return EmployeeDepartmentEntity - .createEmployeeInfoList( - employeeInfoRepository.findAll(Specification - .where(EmployeeInfoRepository.idEmployeeEqual(searchConditionEmployee.getIdEmployee())) - .and(EmployeeInfoRepository.nmEmployeeEqual(searchConditionEmployee.getNmEmployee())) - .and(EmployeeInfoRepository.knEmployeeEqual(searchConditionEmployee.getKnEmployee())) - .and(EmployeeInfoRepository.mailAddressEqual(searchConditionEmployee.getMailAddress())) - .and(EmployeeInfoRepository.idDepartmentEqual(searchConditionEmployee.getIdDepartment())) - ) - ); + } - } + /** + * SearchConditionEmployee の情報を元に EmployeeInfo (employee join department) のレコードを取得 + * + * @param searchConditionEmployee 検索条件 + * @return 検索結果のレコードリスト + */ + public List searchBy(SearchConditionEmployee searchConditionEmployee) { + // 動的に検索条件を絞り込む + // Specification は Criteria API の Predicate をラップしたもの + List entityList = employeeInfoRepository.findAll(Specification + .where(EmployeeInfoRepository.idEmployeeEqual(searchConditionEmployee.getIdEmployee())) + .and(EmployeeInfoRepository.nmEmployeeEqual(searchConditionEmployee.getNmEmployee())) + .and(EmployeeInfoRepository.knEmployeeEqual(searchConditionEmployee.getKnEmployee())) + .and(EmployeeInfoRepository.mailAddressEqual(searchConditionEmployee.getMailAddress())) + .and(EmployeeInfoRepository.idDepartmentEqual(searchConditionEmployee.getIdDepartment()))); + + List lengthOfServiceList = new ArrayList<>(); + + for (EmployeeDepartmentEntity entity : entityList) { + lengthOfServiceList.add(Period.between(entity.getDateHired(), LocalDate.now())); + } + + return EmployeeDepartmentEntity.createEmployeeInfoList(entityList, lengthOfServiceList); + + + } } diff --git a/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/UpdateEmployeeImpl.java b/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/UpdateEmployeeImpl.java index 599a2f9..06204b4 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/UpdateEmployeeImpl.java +++ b/EM-System/src/main/java/com/example/rhizome/app/domain/service/impl/UpdateEmployeeImpl.java @@ -1,12 +1,13 @@ package com.example.rhizome.app.domain.service.impl; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.example.rhizome.app.domain.model.Employee; import com.example.rhizome.app.domain.service.UpdateEmployee; import com.example.rhizome.app.infra.entity.EmployeeEntity; import com.example.rhizome.app.infra.repository.EmployeeRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; /** * employee の更新系の機能を集約させるサービスクラスです。 @@ -52,7 +53,8 @@ public class UpdateEmployeeImpl implements UpdateEmployee { updateEmployee.getMailAddress(), updateEmployee.getPassword().isBlank() ? beforeEmployee.getPassword() : updateEmployee.getPassword(), updateEmployee.getAdminAuth() == null ? beforeEmployee.getAdminAuth() : updateEmployee.getAdminAuth(), - updateEmployee.getIdDepartment() == null ? beforeEmployee.getIdDepartment() : updateEmployee.getIdDepartment() + updateEmployee.getIdDepartment() == null ? beforeEmployee.getIdDepartment() : updateEmployee.getIdDepartment(), + beforeEmployee.getDateHired() ); } diff --git a/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeDepartmentEntity.java b/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeDepartmentEntity.java index 989d2cc..2b5cb69 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeDepartmentEntity.java +++ b/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeDepartmentEntity.java @@ -1,16 +1,30 @@ package com.example.rhizome.app.infra.entity; +import java.time.LocalDate; +import java.time.Period; +import java.util.List; +import java.util.stream.IntStream; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.NamedEntityGraph; +import javax.persistence.Table; + +import org.hibernate.annotations.Fetch; +import org.hibernate.annotations.FetchMode; + import com.example.rhizome.app.domain.model.Department; import com.example.rhizome.app.domain.model.Employee; import com.example.rhizome.app.domain.model.EmployeeInfo; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import org.hibernate.annotations.Fetch; -import org.hibernate.annotations.FetchMode; - -import javax.persistence.*; -import java.util.List; /** * Employee + Department の Join 情報を保持するEntity @@ -70,14 +84,21 @@ public class EmployeeDepartmentEntity { @JoinColumn(name = "id_department", referencedColumnName = "id_department", insertable = false, updatable = false) @Fetch(FetchMode.JOIN) private DepartmentEntity department; + + /* + * 入社年月日 + */ + @Column(name = "date_hired", nullable = false) + private LocalDate dateHired; /** * EmployeeDepartmentEntity(DataAccess層依存) を EmployeeInfo(BusinessLogic層依存) に変換します。 * * @param employeeDepartmentEntity  EmployeeDepartmentEntity のインスタンス + * @param lengthOfService  勤続年数 * @return EmployeeInfo のインスタンス */ - public static EmployeeInfo createEmployeeInfo(EmployeeDepartmentEntity employeeDepartmentEntity) { + public static EmployeeInfo createEmployeeInfo(EmployeeDepartmentEntity employeeDepartmentEntity, Period lengthOfService) { // コンストラクタを使って書くとSetterを使用するより簡略化出来ます。 // 混乱してしまう人は落ち着いて EmployeeInfo のフィールドを見に行って、 @@ -90,12 +111,14 @@ public class EmployeeDepartmentEntity { employeeDepartmentEntity.getMailAddress(), employeeDepartmentEntity.getPassword(), employeeDepartmentEntity.getAdminAuth(), - employeeDepartmentEntity.getDepartment() == null ? null : employeeDepartmentEntity.getDepartment().getIdDepartment() + employeeDepartmentEntity.getDepartment() == null ? null : employeeDepartmentEntity.getDepartment().getIdDepartment(), + employeeDepartmentEntity.getDateHired() ), new Department( employeeDepartmentEntity.getDepartment() == null ? null : employeeDepartmentEntity.getDepartment().getIdDepartment(), employeeDepartmentEntity.getDepartment() == null ? null : employeeDepartmentEntity.getDepartment().getNmDepartment() - ) + ), + lengthOfService ); } @@ -105,14 +128,25 @@ public class EmployeeDepartmentEntity { * (リスト版) * * @param employeeDepartmentEntityList EmployeeDepartmentEntity インスタンスのリスト + * @param 勤続年数のリスト * @return EmployeeInfo インスタンスのリスト */ - public static List createEmployeeInfoList(List employeeDepartmentEntityList) { + public static List createEmployeeInfoList( + List employeeDepartmentEntityList, + List lengthOfServiceList) { - // StreamAPI を使うとこうなります。 - return employeeDepartmentEntityList.stream().map(EmployeeDepartmentEntity::createEmployeeInfo).toList(); + if (employeeDepartmentEntityList.size() != lengthOfServiceList.size()) { + throw new IllegalArgumentException( + "社員情報と勤続年数の件数が一致しません。"); + } + return IntStream.range(0, employeeDepartmentEntityList.size()) + .mapToObj(index -> EmployeeDepartmentEntity + .createEmployeeInfo(employeeDepartmentEntityList.get(index), lengthOfServiceList.get(index))) + .toList(); } + + } diff --git a/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeEntity.java b/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeEntity.java index 17721b5..ab70751 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeEntity.java +++ b/EM-System/src/main/java/com/example/rhizome/app/infra/entity/EmployeeEntity.java @@ -7,16 +7,24 @@ package com.example.rhizome.app.infra.entity; +import java.time.LocalDate; +import java.util.List; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.Table; + import com.example.rhizome.app.domain.model.Employee; import com.example.rhizome.app.domain.model.LoginUser; import com.example.rhizome.app.domain.model.SearchConditionEmployee; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import javax.persistence.*; -import java.util.List; - /** * EmployeeテーブルのEntity * @@ -72,6 +80,12 @@ public class EmployeeEntity { */ @Column(name = "id_department", nullable = false) private Integer idDepartment; + + /** + * 入社年月日 + */ + @Column(name = "date_hired", nullable = false) + private LocalDate dateHired; /** @@ -89,7 +103,8 @@ public class EmployeeEntity { employee.getMailAddress(), employee.getPassword(), employee.getAdminAuth(), - employee.getIdDepartment() + employee.getIdDepartment(), + employee.getDateHired() ); } @@ -129,7 +144,8 @@ public class EmployeeEntity { employeeEntity.getMailAddress(), employeeEntity.getPassword(), employeeEntity.getAdminAuth(), - employeeEntity.getIdDepartment() + employeeEntity.getIdDepartment(), + employeeEntity.getDateHired() ); } @@ -167,7 +183,8 @@ public class EmployeeEntity { getMailAddress(), getPassword(), getAdminAuth(), - getIdDepartment() + getIdDepartment(), + getDateHired() ); } diff --git a/EM-System/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java b/EM-System/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java index a532295..839f6c5 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java +++ b/EM-System/src/main/java/com/example/rhizome/app/presentation/controller/InsertEmployeeController.java @@ -1,5 +1,22 @@ package com.example.rhizome.app.presentation.controller; +import static com.example.rhizome.app.presentation.controller.pageproperty.TransitionTargetPageNameKeyword.*; + +import java.time.LocalDate; +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 +28,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; /** * 新規登録用のコントローラ @@ -82,7 +85,8 @@ public class InsertEmployeeController { insertEmployeeForm.getMailAddress(), insertEmployeeForm.getPassword(), insertEmployeeForm.getAdminAuth(), - insertEmployeeForm.getIdDepartment() + insertEmployeeForm.getIdDepartment(), + insertEmployeeForm.getDateHired() ); // エラーが1件以上有る場合 @@ -126,7 +130,8 @@ public class InsertEmployeeController { String mailAddress, String password, Integer management, - Integer departmentId + Integer departmentId, + LocalDate hireDate ) { final String EMPLOYEE_NAME_NULL_BLANK = "社員名"; @@ -135,6 +140,7 @@ public class InsertEmployeeController { final String PASSWORD_NULL_BLANK = "パスワード"; final String MANAGEMENT_ERROR = "管理者権限指定"; final String DEPARTMENT_ID_NULL_BLANK = "所属部署"; + final String HIRE_DATE_NULL_BLANK = "入社年月日"; List error = new ArrayList<>(); @@ -173,6 +179,12 @@ public class InsertEmployeeController { // エラー内容を追加 error.add(DEPARTMENT_ID_NULL_BLANK); } + + // null判定 + if (hireDate == null) { + //エラー内容を追加 + error.add(HIRE_DATE_NULL_BLANK); + } return error; diff --git a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/EmployeeInfoForm.java b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/EmployeeInfoForm.java index ed8996a..62d8511 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/EmployeeInfoForm.java +++ b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/EmployeeInfoForm.java @@ -1,13 +1,16 @@ package com.example.rhizome.app.presentation.form; +import java.time.LocalDate; +import java.time.Period; +import java.util.List; + import com.example.rhizome.app.domain.model.EmployeeInfo; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.List; - /** * 画面に表示するために employee と department を Join した構造を扱うクラス */ @@ -48,6 +51,16 @@ public class EmployeeInfoForm { * 部署名 */ private String nmDepartment; + + /** + * 入社年月日 + */ + private LocalDate dateHired; + + /** + * 勤続年数 + */ + private String lengthOfService; /** * business 層の EmployeeInfo クラスから画面用(presentation 層)の EmployeeInfoForm に @@ -57,6 +70,11 @@ public class EmployeeInfoForm { * @return クラスから画面用(presentation 層)の EmployeeInfoForm インスタンス */ public static EmployeeInfoForm convertFrom(EmployeeInfo employeeInfo) { + Period period = employeeInfo.getLengthOfService(); + + String lengthOfService = + period.getYears() + "年" + period.getMonths() + "ヵ月"; + return new EmployeeInfoForm( employeeInfo.getEmployee().getIdEmployee(), employeeInfo.getEmployee().getNmEmployee(), @@ -65,7 +83,9 @@ public class EmployeeInfoForm { employeeInfo.getEmployee().getPassword(), employeeInfo.getEmployee().getAdminAuth(), employeeInfo.getDepartment().getIdDepartment(), - employeeInfo.getDepartment().getNmDepartment() + employeeInfo.getDepartment().getNmDepartment(), + employeeInfo.getEmployee().getDateHired(), + lengthOfService ); } diff --git a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/InsertEmployeeForm.java b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/InsertEmployeeForm.java index 5261142..2e695f9 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/InsertEmployeeForm.java +++ b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/InsertEmployeeForm.java @@ -1,13 +1,17 @@ package com.example.rhizome.app.presentation.form; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.format.annotation.DateTimeFormat; + import com.example.rhizome.app.domain.model.Employee; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.ArrayList; -import java.util.List; - /** * 画面から渡ってきた登録内容をまとめ、再度画面に表示する為のクラス */ @@ -50,6 +54,13 @@ public class InsertEmployeeForm { * 部署ID */ private Integer idDepartment; + + /** + * 入社年月日 + */ + + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate dateHired; /** * パスワードのValidation @@ -106,7 +117,8 @@ public class InsertEmployeeForm { insertEmployeeForm.getMailAddress(), insertEmployeeForm.getPassword(), insertEmployeeForm.getAdminAuth(), - insertEmployeeForm.getIdDepartment() + insertEmployeeForm.getIdDepartment(), + insertEmployeeForm.getDateHired() ); } @@ -121,6 +133,7 @@ public class InsertEmployeeForm { final String MAIL_ADDRESS_NULL_BLANK = "メールアドレス"; final String MANAGEMENT_ERROR = "管理者権限指定"; final String DEPARTMENT_ID_NULL_BLANK = "所属部署"; + final String HIRE_DATE_NULL = "入社年月日"; List error = new ArrayList<>(); @@ -133,6 +146,9 @@ public class InsertEmployeeForm { if (isNullOrBlank(mailAddress)) { error.add(MAIL_ADDRESS_NULL_BLANK); } + if(dateHired == null) { + error.add(HIRE_DATE_NULL); + } // パスワードが仕様を満たしているか確認 checkPassword(password, passwordConfirm, error); diff --git a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/LoginUserForm.java b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/LoginUserForm.java index 00dbab3..ebb6b18 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/LoginUserForm.java +++ b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/LoginUserForm.java @@ -1,7 +1,10 @@ package com.example.rhizome.app.presentation.form; +import java.time.LocalDate; + import com.example.rhizome.app.domain.model.LoginUser; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -40,6 +43,11 @@ public class LoginUserForm { * 部署ID */ private Integer idDepartment; + + /** + * 入社年月日 + */ + private LocalDate dateHired; /** * business 層の LoginUser クラスから画面用(presentation 層)の LoginUserForm に @@ -56,7 +64,8 @@ public class LoginUserForm { loginUser.getMailAddress(), loginUser.getPassword(), loginUser.getAdminAuth(), - loginUser.getIdDepartment() + loginUser.getIdDepartment(), + loginUser.getDateHired() ); } @@ -75,7 +84,8 @@ public class LoginUserForm { loginUserForm.getMailAddress(), loginUserForm.getPassword(), loginUserForm.getAdminAuth(), - loginUserForm.getIdDepartment() + loginUserForm.getIdDepartment(), + loginUserForm.getDateHired() ); } diff --git a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdateEmployeeInfoForm.java b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdateEmployeeInfoForm.java index 9a42815..f34dd66 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdateEmployeeInfoForm.java +++ b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdateEmployeeInfoForm.java @@ -1,13 +1,15 @@ package com.example.rhizome.app.presentation.form; +import java.time.LocalDate; +import java.util.List; + import com.example.rhizome.app.domain.model.Employee; import com.example.rhizome.app.domain.model.EmployeeInfo; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; -import java.util.List; - /** * 画面から渡ってきた更新内容をまとめ、再度画面に表示する為のクラス */ @@ -48,6 +50,10 @@ public class UpdateEmployeeInfoForm { * 部署ID */ private Integer idDepartment; + /** + * 入社年月日 + */ + private LocalDate dateHired; /** * business 層の EmployeeInfo クラスから画面用(presentation 層)の UpdateEmployeeInfoForm に @@ -65,7 +71,8 @@ public class UpdateEmployeeInfoForm { employeeInfo.getEmployee().getPassword(), null, employeeInfo.getEmployee().getAdminAuth(), - employeeInfo.getDepartment().getIdDepartment() + employeeInfo.getDepartment().getIdDepartment(), + employeeInfo.getEmployee().getDateHired() ); } @@ -95,7 +102,8 @@ public class UpdateEmployeeInfoForm { updateEmployeeInfoForm.getMailAddress(), updateEmployeeInfoForm.getPassword(), updateEmployeeInfoForm.getAdminAuth(), - updateEmployeeInfoForm.getIdDepartment() + updateEmployeeInfoForm.getIdDepartment(), + updateEmployeeInfoForm.getDateHired() ); } diff --git a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdatePersonalUserForm.java b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdatePersonalUserForm.java index 279e40b..50a2b59 100644 --- a/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdatePersonalUserForm.java +++ b/EM-System/src/main/java/com/example/rhizome/app/presentation/form/UpdatePersonalUserForm.java @@ -2,6 +2,7 @@ package com.example.rhizome.app.presentation.form; import com.example.rhizome.app.domain.model.Employee; import com.example.rhizome.app.domain.model.LoginUser; + import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @@ -54,6 +55,7 @@ public class UpdatePersonalUserForm { updatePersonalUserForm.getMailAddress(), updatePersonalUserForm.getPassword(), null, + null, null ); } diff --git a/EM-System/src/main/resources/templates/insertEmployeeConfirm.html b/EM-System/src/main/resources/templates/insertEmployeeConfirm.html index 55bd6cb..76047c9 100644 --- a/EM-System/src/main/resources/templates/insertEmployeeConfirm.html +++ b/EM-System/src/main/resources/templates/insertEmployeeConfirm.html @@ -3,155 +3,143 @@ - - - - - - - 登録内容確認 + + + + + + + 登録内容確認 -

登録内容確認    -
- ログイン者名: - -
-

+

登録内容確認    +
+ ログイン者名: + +
+

-
+ -
- -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
社員ID - -
社員名 - -
社員名フリガナ - -
メールアドレス - -
パスワード - -
管理者権限 - - -
所属部署 - -
- -
- 登録内容の編集 | メニューに戻る -
+
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
社員ID + +
社員名 + +
社員名フリガナ + +
メールアドレス + +
パスワード + +
管理者権限 + + +
所属部署 + +
入社年月日 + +
+ +
+ 登録内容の編集 | メニューに戻る + - + form.submit(); + } + + \ No newline at end of file diff --git a/EM-System/src/main/resources/templates/insertEmployeeInput.html b/EM-System/src/main/resources/templates/insertEmployeeInput.html index ff0c02d..2f4f735 100644 --- a/EM-System/src/main/resources/templates/insertEmployeeInput.html +++ b/EM-System/src/main/resources/templates/insertEmployeeInput.html @@ -3,156 +3,135 @@ - - - - - - - 社員登録 + + + + + + + 社員登録 -

- 社員登録    -
- ログイン者名: - -
-

-
+

+ 社員登録    +
+ ログイン者名: + +
+

+ -
- -
+
+ +
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
社員ID - -
社員名 - -
社員名フリガナ - -
メールアドレス - -
パスワード - -
※半角英数字をそれぞれ1種類以上含む3-10文字 -
パスワード確認用 - -
管理者権限 - - -
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - -
社員ID + +
社員名 + +
社員名フリガナ + +
メールアドレス + +
パスワード + +
※半角英数字をそれぞれ1種類以上含む3-10文字 +
パスワード確認用 + +
管理者権限 + + +
所属部署 - -
- -
-
-メニューに戻る + + 所属部署 + + + + + + 入社年月日 + + + + + + + + + + + + メニューに戻る + \ No newline at end of file diff --git a/EM-System/src/main/resources/templates/selectEmployee.html b/EM-System/src/main/resources/templates/selectEmployee.html index 47cf487..d5e2636 100644 --- a/EM-System/src/main/resources/templates/selectEmployee.html +++ b/EM-System/src/main/resources/templates/selectEmployee.html @@ -107,7 +107,9 @@ パスワード 管理者フラグ 所属部署 - 操作 + 入社年月日 + 勤続年数 + 操作 @@ -119,6 +121,8 @@ + +