diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java b/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java new file mode 100644 index 00000000..deb8c24c --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java @@ -0,0 +1,65 @@ +package com.dbnt.faisp.main.userInfo; + + +import com.dbnt.faisp.main.authMgt.service.AuthMgtService; +import com.dbnt.faisp.main.codeMgt.service.CodeMgtService; +import com.dbnt.faisp.main.userInfo.model.UserInfo; +import com.dbnt.faisp.main.userInfo.service.UserInfoService; + +import lombok.RequiredArgsConstructor; + + +import javax.servlet.http.HttpServletResponse; + +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; + +@RestController +@RequiredArgsConstructor +@RequestMapping("/faisp") +public class FaispController { + + private final AuthMgtService authMgtService; + private final CodeMgtService codeMgtService; + private final UserInfoService userInfoService; + + + @GetMapping("/policeList") + public ModelAndView partInfoList(@AuthenticationPrincipal UserInfo loginUser,UserInfo userInfo, HttpServletResponse response) { + ModelAndView mav = new ModelAndView("faisp/policeList"); + userInfo.setDownOrganCdList(loginUser.getDownOrganCdList()); + if(userInfo.getUserStatus() == null) { + userInfo.setUserStatus("USC003"); + } + + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/policeList").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + userInfo.setQueryInfo(); + mav.addObject("policeList", userInfoService.selectPoliceList(userInfo)); + userInfo.setContentCnt(userInfoService.selectPoliceListCnt(userInfo)); + userInfo.setPaginationInfo(); + mav.addObject("mgtOrganList", loginUser.getDownOrganCdList()); + mav.addObject("userSatus", userInfo.getUserStatus()); + mav.addObject("searchParams", userInfo); + return mav; + } + + @GetMapping("/policeEditModal") + public ModelAndView menuEditModal(UserInfo userInfo){ + ModelAndView mav = new ModelAndView("/faisp/policeEditModal"); + mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG")); + mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC")); + mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT")); + mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC")); + mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC")); + mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG")); + mav.addObject("statusList", codeMgtService.selectCodeMgtList("USC")); + + mav.addObject("userInfo", userInfoService.selectUserInfo(userInfo.getUserSeq())); + return mav; + } + + +} 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 ddf5f7a4..5ccda58a 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 @@ -17,4 +17,8 @@ public interface UserInfoMapper { List selectManagerList(ParamMap param); List selectDashboardConfigList(Integer userSeq); + + List selectPoliceList(UserInfo userInfo); + + Integer selectPoliceListCnt(UserInfo userInfo); } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/model/UserInfoHistory.java b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserInfoHistory.java new file mode 100644 index 00000000..2da5800e --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserInfoHistory.java @@ -0,0 +1,121 @@ +package com.dbnt.faisp.main.userInfo.model; + + +import com.dbnt.faisp.config.BaseModel; + + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; +import org.springframework.format.annotation.DateTimeFormat; + + +import javax.persistence.*; + +import java.io.Serializable; +import java.time.LocalDate; +import java.time.LocalDateTime; + + + +@Getter +@Setter +@Entity +@NoArgsConstructor +@DynamicInsert +@DynamicUpdate +@IdClass(UserInfoHistory.UserInfoHistoryId.class) +@Table(name = "user_info_history") +public class UserInfoHistory extends BaseModel implements Serializable{ + @Id + @Column(name = "user_seq") + private Integer userSeq; + @Id + @Column(name = "version_no") + private Integer versionNo; + @Column(name = "dic_code") + private String dicCode; + @Column(name = "user_id") + private String userId; + @Column(name = "user_nm") + private String userNm; + @Column(name = "birth_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate birthDate; + @Column(name = "sex") + private String sex; + @Column(name = "email") + private String email; + @Column(name = "phone_no") + private String phoneNo; + @Column(name = "area_cd") + private String areaCd; + @Column(name = "og_cd") + private String ogCd; + @Column(name = "ofc_cd") + private String ofcCd; + @Column(name = "title_cd") + private String titleCd; + @Column(name = "group_cd") + private String groupCd; + @Column(name = "series_cd") + private String seriesCd; + @Column(name = "ofc_head_yn") + private String ofcHeadYn; + @Column(name = "hiring_cd") + private String hiringCd; + @Column(name = "employ_cd") + private String employCd; + @Column(name = "outturn_cd") + private String outturnCd; + @Column(name = "work_cd") + private String workCd; + @Column(name = "job_in_cd") + private String jobInCd; + @Column(name = "language_cd") + private String languageCd; + @Column(name = "police_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate policeInDate; + @Column(name = "organ_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate organInDate; + @Column(name = "ofc_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate ofcInDate; + @Column(name = "title_in_date") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate titleInDate; + @Column(name = "user_status") + private String userStatus; + @Column(name = "wrt_organ") + private String wrtOrgan; + @Column(name = "wrt_part") + private String wrtPart; + @Column(name = "wrt_title") + private String wrtTitle; + @Column(name = "wrt_user_seq") + private Integer wrtUserSeq; + @Column(name = "wrt_nm") + private String wrtNm; + @Column(name = "wrt_dt") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private LocalDateTime wrtDt; + + + + + + @Embeddable + @Data + @NoArgsConstructor + @AllArgsConstructor + public static class UserInfoHistoryId implements Serializable { + private Integer userSeq; + private Integer versionNo; + } +} diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserInfoHistoryRepository.java b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserInfoHistoryRepository.java new file mode 100644 index 00000000..f8e9e699 --- /dev/null +++ b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserInfoHistoryRepository.java @@ -0,0 +1,15 @@ +package com.dbnt.faisp.main.userInfo.repository; + +import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; + +import org.springframework.data.jpa.repository.JpaRepository; + + + + +public interface UserInfoHistoryRepository extends JpaRepository { + + UserInfoHistory findByUserSeq(Integer userSeq); + + +} 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 c54bc645..1f8769d9 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 @@ -1,10 +1,13 @@ package com.dbnt.faisp.main.userInfo.service; import com.dbnt.faisp.config.Role; +import com.dbnt.faisp.main.fipTarget.model.PartInfo; import com.dbnt.faisp.main.userInfo.mapper.UserInfoMapper; import com.dbnt.faisp.main.userInfo.model.DashboardConfig; import com.dbnt.faisp.main.userInfo.model.UserInfo; +import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; import com.dbnt.faisp.main.userInfo.repository.DashboardConfigRepository; +import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository; import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository; import com.dbnt.faisp.util.ParamMap; @@ -24,6 +27,7 @@ import java.util.List; public class UserInfoService implements UserDetailsService { private final UserInfoRepository userInfoRepository; + private final UserInfoHistoryRepository userInfoHistoryRepository; private final DashboardConfigRepository dashboardConfigRepository; private final UserInfoMapper userInfoMapper; @@ -36,7 +40,46 @@ public class UserInfoService implements UserDetailsService { userInfo.setUserStatus("USC002"); userInfo.setPassword(convertPassword(userInfo.getPassword())); userInfo.setWrtDt(LocalDateTime.now()); - return userInfoRepository.save(userInfo).getUserId(); + UserInfo result = userInfoRepository.save(userInfo); + UserInfoHistory dbHis = userInfoHistoryRepository.findByUserSeq(result.getUserSeq()); + if(dbHis == null) { + UserInfoHistory hisTmp = new UserInfoHistory(); + hisTmp.setUserSeq(result.getUserSeq()); + hisTmp.setVersionNo(1); + hisTmp.setDicCode(result.getDicCode()); + hisTmp.setUserId(result.getUserId()); + hisTmp.setUserNm(result.getUserNm()); + hisTmp.setBirthDate(result.getBirthDate()); + hisTmp.setSex(result.getSex()); + hisTmp.setEmail(result.getEmail()); + hisTmp.setPhoneNo(result.getPhoneNo()); + hisTmp.setAreaCd(result.getAreaCd()); + hisTmp.setOgCd(result.getOgCd()); + hisTmp.setOfcCd(result.getOfcCd()); + hisTmp.setTitleCd(result.getTitleCd()); + hisTmp.setGroupCd(result.getGroupCd()); + hisTmp.setSeriesCd(result.getSeriesCd()); + hisTmp.setOfcHeadYn(result.getOfcHeadYn()); + hisTmp.setHiringCd(result.getHiringCd()); + hisTmp.setEmployCd(result.getEmployCd()); + hisTmp.setOutturnCd(result.getOutturnCd()); + hisTmp.setWorkCd(result.getWorkCd()); + hisTmp.setJobInCd(result.getJobInCd()); + hisTmp.setLanguageCd(result.getLanguageCd()); + hisTmp.setPoliceInDate(result.getPoliceInDate()); + hisTmp.setOrganInDate(result.getOrganInDate()); + hisTmp.setOfcInDate(result.getOfcInDate()); + hisTmp.setTitleInDate(result.getTitleInDate()); + hisTmp.setUserStatus(result.getUserStatus()); + hisTmp.setWrtOrgan(result.getOgCd()); + hisTmp.setWrtPart(result.getOfcCd()); + hisTmp.setWrtTitle(result.getTitleCd()); + hisTmp.setWrtUserSeq(result.getUserSeq()); + hisTmp.setWrtNm(result.getUserNm()); + hisTmp.setWrtDt(result.getWrtDt()); + userInfoHistoryRepository.save(hisTmp); + } + return result.getUserId(); } @Transactional public void updateUserInfo(UserInfo userInfo){ @@ -188,4 +231,11 @@ public class UserInfoService implements UserDetailsService { } dashboardConfigRepository.saveAll(configList); } + + public List selectPoliceList(UserInfo userInfo) { + return userInfoMapper.selectPoliceList(userInfo); + } + public Integer selectPoliceListCnt(UserInfo userInfo) { + return userInfoMapper.selectPoliceListCnt(userInfo); + } } diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml index 6713fcd8..e4b2d1d4 100644 --- a/src/main/resources/mybatisMapper/UserInfoMapper.xml +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -80,4 +80,58 @@ where b.user_seq = #{userSeq} order by b.order_num + + + + user_status = #{userStatus} + and og_cd in + + #{item} + + + + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/faisp/police.js b/src/main/resources/static/js/faisp/police.js new file mode 100644 index 00000000..6814a8fb --- /dev/null +++ b/src/main/resources/static/js/faisp/police.js @@ -0,0 +1,22 @@ +$(document).on('click', '.policeTr', function (){ + const userSeq = (Number($(this).find(".userSeq").val())); + console.log(userSeq); + showModal(userSeq); +}); + +function showModal(userSeq){ + $.ajax({ + url: '/faisp/policeEditModal', + data: {userSeq: userSeq}, + type: 'GET', + dataType:"html", + success: function(html){ + $("#policeEditModalContent").empty().append(html); + $("#policeEditModal").modal('show'); + }, + error:function(){ + + } + }); +} + diff --git a/src/main/resources/templates/faisp/policeEditModal.html b/src/main/resources/templates/faisp/policeEditModal.html new file mode 100644 index 00000000..5ad5c529 --- /dev/null +++ b/src/main/resources/templates/faisp/policeEditModal.html @@ -0,0 +1,149 @@ + + + + + + \ No newline at end of file diff --git a/src/main/resources/templates/faisp/policeList.html b/src/main/resources/templates/faisp/policeList.html new file mode 100644 index 00000000..45176728 --- /dev/null +++ b/src/main/resources/templates/faisp/policeList.html @@ -0,0 +1,171 @@ + + + + + +
+
+

現 외사경찰 현황

+ + +
+
+
+
+ + +
+
+ +
+
+ +
+
+
+
+
+
+ +
+
+ +
+
+ +
+ +
+
+
+
+
+
+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
순번계급성명현부서
생년월일성별최초
임용
현 계급
임용
현 부서
임용
수사경과
보유여부
외사경력입직
경로
최종
수정일
전출
+
+
+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+
+ + + + +
+ \ No newline at end of file diff --git a/src/main/resources/templates/translator/translator.html b/src/main/resources/templates/translator/translator.html index 4b46a587..2afe90f8 100644 --- a/src/main/resources/templates/translator/translator.html +++ b/src/main/resources/templates/translator/translator.html @@ -124,8 +124,8 @@ - +