From 9836412eee9bb2e54b6dd1eb1f983d4fdd729939 Mon Sep 17 00:00:00 2001 From: TaehunPark Date: Wed, 16 Nov 2022 13:33:03 +0900 Subject: [PATCH] =?UTF-8?q?fix:=EC=99=B8=EC=82=AC=EA=B2=BD=EC=B0=B0=20?= =?UTF-8?q?=EA=B5=90=EC=9C=A1=ED=98=84=ED=99=A9=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../faisp/main/userInfo/FaispController.java | 34 ++++++++--- .../main/userInfo/mapper/UserInfoMapper.java | 5 ++ .../faisp/main/userInfo/model/UserEdu.java | 15 ++++- .../repository/UserEduRepository.java | 2 + .../userInfo/service/UserInfoService.java | 47 +++++++++++++++ .../mybatisMapper/UserInfoMapper.xml | 31 ++++++++++ src/main/resources/static/js/faisp/edu.js | 57 +++++++++++++++++-- .../templates/faisp/eduEditModal.html | 34 +++++------ .../templates/faisp/educationMgt.html | 3 - 9 files changed, 197 insertions(+), 31 deletions(-) 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 f5585478..a9b82d6d 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/FaispController.java @@ -8,6 +8,7 @@ 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.UserEdu; import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; import com.dbnt.faisp.main.userInfo.service.UserInfoService; @@ -187,6 +188,7 @@ public class FaispController { mav.addObject("searchParams", userInfo); return mav; } + @GetMapping("/educationMgt") public ModelAndView educationMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo, HttpServletResponse response){ ModelAndView mav = new ModelAndView("faisp/educationMgt"); @@ -196,7 +198,7 @@ public class FaispController { } //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/policeList").get(0).getAccessAuth(); + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/educationMgt").get(0).getAccessAuth(); mav.addObject("accessAuth", accessAuth); userInfo.setQueryInfo(); mav.addObject("policeList", userInfoService.selectPoliceList(userInfo)); @@ -207,15 +209,33 @@ public class FaispController { mav.addObject("searchParams", userInfo); return mav; } - + @GetMapping("/eduEditModal") - public ModelAndView eduEditModal(@AuthenticationPrincipal UserInfo loginUser,UserInfo userInfo){ + public ModelAndView eduEditModal(@AuthenticationPrincipal UserInfo loginUser,UserEdu userEdu){ ModelAndView mav = new ModelAndView("/faisp/eduEditModal"); - //메뉴권한 확인 - String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/policeList").get(0).getAccessAuth(); - mav.addObject("accessAuth", accessAuth); - return mav; + //메뉴권한 확인 + String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/educationMgt").get(0).getAccessAuth(); + mav.addObject("accessAuth", accessAuth); + mav.addObject("userInfo", userInfoService.selectPoliceInfo(userEdu.getUserSeq())); + mav.addObject("eduList", userInfoService.selectEduList(userEdu)); + mav.addObject("userSeq", loginUser.getUserSeq()); + return mav; + } + + @PostMapping("/saveEdu") + @ResponseBody + public int saveEdu(@AuthenticationPrincipal UserInfo loginUser,@RequestBody List userEdu){ + System.out.println("userEdu"+userEdu); + int userSeq = userInfoService.saveEdu(loginUser,userEdu); + return userSeq; + } + + @PostMapping("/deleteEdu") + @ResponseBody + public int deleteEdu(@RequestBody UserEdu userEdu) { + int userSeq = userInfoService.deleteEdu(userEdu); + return userSeq; } private List calcStatusList(List 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 6ba07f2d..a5a556a4 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 @@ -2,6 +2,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.UserEdu; import com.dbnt.faisp.main.userInfo.model.UserInfo; import com.dbnt.faisp.main.userInfo.model.UserInfoHistory; import com.dbnt.faisp.util.ParamMap; @@ -29,4 +30,8 @@ public interface UserInfoMapper { UserInfoHistory selectpoliceHistoryView(UserInfoHistory userInfoHistory); List selectPersonnelStatusList(PersonnelStatus personnelStatus); + + UserInfo selectPoliceInfo(Integer userSeq); + + List selectEduList(UserEdu userEdu); } diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/model/UserEdu.java b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserEdu.java index 2f1476b8..1c7c5da6 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/model/UserEdu.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/model/UserEdu.java @@ -59,7 +59,20 @@ public class UserEdu extends BaseModel{ @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") private LocalDateTime wrtDt; - @Embeddable + + + + @Override +public String toString() { + return "UserEdu [eduSeq=" + eduSeq + ", userSeq=" + userSeq + ", eduName=" + eduName + ", eduSdate=" + eduSdate + + ", eduEdate=" + eduEdate + ", eduRa=" + eduRa + ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart + + ", wrtTitle=" + wrtTitle + ", wrtUserSeq=" + wrtUserSeq + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + "]"; +} + + + + +@Embeddable @Data @NoArgsConstructor @AllArgsConstructor diff --git a/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserEduRepository.java b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserEduRepository.java index 92c32111..74eebd3d 100644 --- a/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserEduRepository.java +++ b/src/main/java/com/dbnt/faisp/main/userInfo/repository/UserEduRepository.java @@ -9,6 +9,8 @@ import org.springframework.data.jpa.repository.JpaRepository; public interface UserEduRepository extends JpaRepository { + UserEdu findTopByUserSeqOrderByEduSeqDesc(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 576a6f10..5d5a3d12 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 @@ -6,9 +6,12 @@ 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.UserEdu; +import com.dbnt.faisp.main.userInfo.model.UserEdu.UserEduId; 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.UserEduRepository; import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository; import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository; import com.dbnt.faisp.util.ParamMap; @@ -33,6 +36,7 @@ public class UserInfoService implements UserDetailsService { private final UserInfoRepository userInfoRepository; private final UserInfoHistoryRepository userInfoHistoryRepository; private final DashboardConfigRepository dashboardConfigRepository; + private final UserEduRepository userEduRepository; private final UserInfoMapper userInfoMapper; @Transactional @@ -296,4 +300,47 @@ public class UserInfoService implements UserDetailsService { public List selectPersonnelStatusList(PersonnelStatus personnelStatus) { return userInfoMapper.selectPersonnelStatusList(personnelStatus); } + + public UserInfo selectPoliceInfo(Integer userSeq) { + return userInfoMapper.selectPoliceInfo(userSeq); + } + + @Transactional + public int saveEdu(@AuthenticationPrincipal UserInfo loginUser,List userEdu) { + int userSeq = 0; + for(UserEdu ue : userEdu ) { + UserEdu dbEdu = userEduRepository.findTopByUserSeqOrderByEduSeqDesc(ue.getUserSeq()); + if (dbEdu == null) { + ue.setEduSeq(1); + ue.setWrtOrgan(loginUser.getOgCd()); + ue.setWrtPart(loginUser.getOfcCd()); + ue.setWrtTitle(loginUser.getTitleCd()); + ue.setWrtUserSeq(loginUser.getUserSeq()); + ue.setWrtNm(loginUser.getUserNm()); + ue.setWrtDt(LocalDateTime.now()); + userEduRepository.save(ue); + } else { + ue.setEduSeq(dbEdu.getEduSeq()+ 1); + ue.setWrtOrgan(loginUser.getOgCd()); + ue.setWrtPart(loginUser.getOfcCd()); + ue.setWrtTitle(loginUser.getTitleCd()); + ue.setWrtUserSeq(loginUser.getUserSeq()); + ue.setWrtNm(loginUser.getUserNm()); + ue.setWrtDt(LocalDateTime.now()); + userEduRepository.save(ue); + } + userSeq = ue.getUserSeq(); + } + return userSeq; + } + public List selectEduList(UserEdu userEdu) { + return userInfoMapper.selectEduList(userEdu); + } + + @Transactional + public int deleteEdu(UserEdu userEdu) { + userEduRepository.deleteById(new UserEduId(userEdu.getEduSeq(), userEdu.getUserSeq())); + return userEdu.getUserSeq(); + } + } diff --git a/src/main/resources/mybatisMapper/UserInfoMapper.xml b/src/main/resources/mybatisMapper/UserInfoMapper.xml index 83265201..bb9af0c8 100644 --- a/src/main/resources/mybatisMapper/UserInfoMapper.xml +++ b/src/main/resources/mybatisMapper/UserInfoMapper.xml @@ -228,4 +228,35 @@ order by c.organ_type, c.parent_organ, c.organ_cd + + + + \ No newline at end of file diff --git a/src/main/resources/static/js/faisp/edu.js b/src/main/resources/static/js/faisp/edu.js index 368fb1a3..a2bb9cd1 100644 --- a/src/main/resources/static/js/faisp/edu.js +++ b/src/main/resources/static/js/faisp/edu.js @@ -5,7 +5,7 @@ $(document).on('click', '.policeTr', function (event){ const target = event.target; if(!(target.className === "checkBoxTd" ||$(target).parents("td").length>0)){ const userSeq = (Number($(this).find(".userSeq").val())); - showModal(1); + showModal(userSeq); } }); @@ -45,7 +45,7 @@ $(document).on('click', '#notPoliceTab', function (){ }) $(document).on('click', '#eduAddBtn', function (){ - const userSeq = (Number(1)); + const userSeq = (Number($(this).data('userseq'))); $('#insertEdu').append( '
'+ '
'+ @@ -81,7 +81,7 @@ $(document).on('click', '#eduAddBtn', function (){ format: "yyyy-mm-dd", language: "ko" }); - eduList.push({useSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""}); + eduList.push({userSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""}); }) $(document).on('click', '.rowDeleteBtn', function (){ @@ -110,7 +110,56 @@ $(document).on('change', '.eduInput', function (){ }) $(document).on('click', '#saveBtn', function (){ - console.log(eduList); + if(eduList.length < 1){ + alert("새로 입력된 교육정보가 없습니다."); + return false; + } + if(confirm("저장하시겠습니까?")){ + contentFade("in"); + $.ajax({ + type : 'POST', + data : JSON.stringify(eduList), + url : "/faisp/saveEdu", + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + contentFade("out"); + alert("교육등록이 완료되었습니다."); + showModal(data); + eduList.length = 0; + }, + error : function(xhr, status) { + contentFade("out"); + alert("교육등록을 실패하였습니다"); + } + }) + } +}) + +$(document).on('click', '#deleteBtn', function (){ + const eduSeq = (Number($(this).data('eduseq'))); + const userSeq = (Number($(this).data('userseq'))); + if(confirm("삭제하시겠습니까?")){ + $.ajax({ + type : 'POST', + url : "/faisp/deleteEdu", + data : JSON.stringify({eduSeq:eduSeq, + userSeq:userSeq}), + contentType: 'application/json', + beforeSend: function (xhr){ + xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val()); + }, + success : function(data) { + alert("삭제 처리되었습니다."); + showModal(data); + }, + error : function(xhr, status) { + alert("삭제 처리에 실패하였습니다"); + } + }) + } }) diff --git a/src/main/resources/templates/faisp/eduEditModal.html b/src/main/resources/templates/faisp/eduEditModal.html index 23c60621..73a3e919 100644 --- a/src/main/resources/templates/faisp/eduEditModal.html +++ b/src/main/resources/templates/faisp/eduEditModal.html @@ -1,42 +1,42 @@
-
+
@@ -58,18 +58,20 @@ - - - - - + + + + +
+ +
- +
diff --git a/src/main/resources/templates/faisp/educationMgt.html b/src/main/resources/templates/faisp/educationMgt.html index daa96d98..3ee6ed2b 100644 --- a/src/main/resources/templates/faisp/educationMgt.html +++ b/src/main/resources/templates/faisp/educationMgt.html @@ -43,9 +43,6 @@
-
- -