diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java b/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java index aeabb7ca..5eacfbb8 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java @@ -7,6 +7,7 @@ import com.dbnt.faisp.main.codeMgt.model.CodeMgt; import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; import com.dbnt.faisp.main.fipTarget.model.PartInfo; import com.dbnt.faisp.main.fipTarget.model.ShipInfo; +import com.dbnt.faisp.main.userInfo.model.PersonnelStatus; import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; import com.dbnt.faisp.main.userInfo.service.UserInfoService; @@ -16,6 +17,7 @@ import com.dbnt.faisp.util.Utils; import lombok.RequiredArgsConstructor; import java.io.IOException; +import java.time.LocalDateTime; import java.util.Collections; import java.util.Comparator; import java.util.List; @@ -149,11 +151,20 @@ public class FaispController { } @GetMapping("/personnelStatus") - public ModelAndView personnelStatus(@AuthenticationPrincipal UserInfo loginUser){ + public ModelAndView personnelStatus(@AuthenticationPrincipal UserInfo loginUser, PersonnelStatus personnelStatus){ ModelAndView mav = new ModelAndView("faisp/personnelStatus"); + if(personnelStatus.getYear()==null){ + personnelStatus.setYear(Integer.toString(LocalDateTime.now().getYear())); + } + personnelStatus.setDownOrganCdList(loginUser.getDownOrganCdList()); + mav.addObject("searchParams", personnelStatus); List jtList = codeMgtService.selectCodeMgtList("JT"); jtList.sort((o1, o2) -> o2.getItemCd().compareTo(o1.getItemCd())); mav.addObject("jtList", jtList); + mav.addObject("mgtOgList", loginUser.getDownOrganCdList()); + List statusList = userInfoService.selectPersonnelStatusList(personnelStatus); + statusList = calcStatusList(statusList); + mav.addObject("statusList", statusList); return mav; } @GetMapping("/careerMgt") @@ -196,4 +207,12 @@ public class FaispController { mav.addObject("searchParams", userInfo); return mav; } + + private List calcStatusList(List statusList){ + for(PersonnelStatus status: statusList){ + status.setSumMax(status.getJt001Max()+status.getJt002Max()+status.getJt003Max()+status.getJt004Max()+status.getJt005Max()+status.getJt006Max()+status.getJt007Max()); + status.setSumNow(status.getJt001Now()+status.getJt002Now()+status.getJt003Now()+status.getJt004Now()+status.getJt005Now()+status.getJt006Now()+status.getJt007Now()); + } + return statusList; + } } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java b/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java index 68964630..6ba07f2d 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java @@ -1,6 +1,7 @@ package com.dbnt.faisp.main.userInfo.mapper; import com.dbnt.faisp.main.userInfo.model.DashboardConfig; +import com.dbnt.faisp.main.userInfo.model.PersonnelStatus; import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; import com.dbnt.faisp.util.ParamMap; @@ -26,4 +27,6 @@ public interface UserInfoMapper { List selectPoliceHisList(UserInfoHistory userInfoHistory); UserInfoHistory selectpoliceHistoryView(UserInfoHistory userInfoHistory); + + List selectPersonnelStatusList(PersonnelStatus personnelStatus); } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/model/PersonnelStatus.java b/src/main/java/com/dbnt/faisp/main/userInfo/model/PersonnelStatus.java new file mode 100644 index 00000000..28ae858f --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/model/PersonnelStatus.java @@ -0,0 +1,84 @@ +package com.dbnt.faisp.main.userInfo.model; + +import com.dbnt.faisp.config.BaseModel; +import lombok.*; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +import javax.persistence.*; +import java.io.Serializable; +import java.time.LocalDateTime; + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@Table(name = "personnel_status") +@IdClass(PersonnelStatus.personnelStatusId.class) +public class PersonnelStatus extends BaseModel { + @Id + @Column(name = "year") + private String year; + @Id + @Column(name = "og_cd") + private String ogCd; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "jt007_max") + private Integer jt007Max = 0; + @Column(name = "jt007_now") + private Integer jt007Now = 0; + @Column(name = "jt006_max") + private Integer jt006Max = 0; + @Column(name = "jt006_now") + private Integer jt006Now = 0; + @Column(name = "jt005_max") + private Integer jt005Max = 0; + @Column(name = "jt005_now") + private Integer jt005Now = 0; + @Column(name = "jt004_max") + private Integer jt004Max = 0; + @Column(name = "jt004_now") + private Integer jt004Now = 0; + @Column(name = "jt003_max") + private Integer jt003Max = 0; + @Column(name = "jt003_now") + private Integer jt003Now = 0; + @Column(name = "jt002_max") + private Integer jt002Max = 0; + @Column(name = "jt002_now") + private Integer jt002Now = 0; + @Column(name = "jt001_max") + private Integer jt001Max = 0; + @Column(name = "jt001_now") + private Integer jt001Now = 0; + @Column(name = "organ_cd") + private String organCd; + @Column(name = "part_cd") + private String partCd; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_user_grd") + private String wrtUserGrd; + @Column(name = "wrt_user_nm") + private String wrtUserNm; + @Column(name = "wrt_dt") + private LocalDateTime wrtDt; + + @Transient + private Integer sumMax; + @Transient + private Integer sumNow; + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class personnelStatusId implements Serializable { + private String year; + private String ogCd; + private Integer versionNo; + } +} diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/repository/PersonnelStatusRepository.java b/src/main/java/com/dbnt/faisp/main/userInfo/repository/PersonnelStatusRepository.java new file mode 100644 index 00000000..2c4ea957 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/repository/PersonnelStatusRepository.java @@ -0,0 +1,8 @@ +package com.dbnt.faisp.main.userInfo.repository; + +import com.dbnt.faisp.main.userInfo.model.PersonnelStatus; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface PersonnelStatusRepository extends JpaRepository { + +} diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java index 0d51b28d..576a6f10 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java @@ -5,6 +5,7 @@ import com.dbnt.faisp.main.fipTarget.model.PartInfo; import com.dbnt.faisp.main.fipTarget.model.ShipInfo; import com.dbnt.faisp.main.userInfo.mapper.UserInfoMapper; import com.dbnt.faisp.main.userInfo.model.DashboardConfig; +import com.dbnt.faisp.main.userInfo.model.PersonnelStatus; import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; import com.dbnt.faisp.main.userInfo.repository.DashboardConfigRepository; @@ -291,4 +292,8 @@ public class UserInfoService implements UserDetailsService { public String selectuserStatus(UserInfoHistory userInfoHistory) { return userInfoRepository.getUserStatus(userInfoHistory.getUserSeq()); } + + public List selectPersonnelStatusList(PersonnelStatus personnelStatus) { + return userInfoMapper.selectPersonnelStatusList(personnelStatus); + } } diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml index 23707e47..83265201 100644 --- a/src/main/resources/mybatisMapper/UserInfoMapper.xml +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -184,4 +184,48 @@ where user_seq = #{userSeq} and version_no = #{versionNo} + \ No newline at end of file diff --git a/src/main/resources/static/js/faisp/personnelStatus.js b/src/main/resources/static/js/faisp/personnelStatus.js new file mode 100644 index 00000000..8acd2384 --- /dev/null +++ b/src/main/resources/static/js/faisp/personnelStatus.js @@ -0,0 +1,3 @@ +$(document).on('change', '#year', function (){ + $("#searchFm").submit(); +}) \ No newline at end of file diff --git a/src/main/resources/templates/faisp/personnelStatus.html b/src/main/resources/templates/faisp/personnelStatus.html index eb18a403..95be1ee4 100644 --- a/src/main/resources/templates/faisp/personnelStatus.html +++ b/src/main/resources/templates/faisp/personnelStatus.html @@ -3,7 +3,7 @@ xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout" layout:decorate="~{layout/layout}"> - +
@@ -13,14 +13,13 @@
-
+
- + + +
@@ -55,82 +54,42 @@ cnt cnt - 정원 - 현원 + cnt + cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - cnt - + + + + + + + + + + + + + + + + + + + -
-
-
-
- -
+
+