Merge branch 'master' of http://118.219.150.34:50501/DBNT/FAISP
# Conflicts: # src/main/java/com/dbnt/faisp/main/userInfo/mapper/UserInfoMapper.java # src/main/java/com/dbnt/faisp/main/userInfo/service/UserInfoService.java # src/main/resources/mybatisMapper/UserInfoMapper.xml
commit
810d893daf
|
|
@ -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.PartInfo;
|
||||||
import com.dbnt.faisp.main.fipTarget.model.ShipInfo;
|
import com.dbnt.faisp.main.fipTarget.model.ShipInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
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.UserInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
||||||
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
||||||
|
|
@ -212,6 +213,7 @@ public class FaispController {
|
||||||
mav.addObject("searchParams", userInfo);
|
mav.addObject("searchParams", userInfo);
|
||||||
return mav;
|
return mav;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/educationMgt")
|
@GetMapping("/educationMgt")
|
||||||
public ModelAndView educationMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo, HttpServletResponse response){
|
public ModelAndView educationMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo, HttpServletResponse response){
|
||||||
ModelAndView mav = new ModelAndView("faisp/educationMgt");
|
ModelAndView mav = new ModelAndView("faisp/educationMgt");
|
||||||
|
|
@ -221,7 +223,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);
|
mav.addObject("accessAuth", accessAuth);
|
||||||
userInfo.setQueryInfo();
|
userInfo.setQueryInfo();
|
||||||
mav.addObject("policeList", userInfoService.selectPoliceList(userInfo));
|
mav.addObject("policeList", userInfoService.selectPoliceList(userInfo));
|
||||||
|
|
@ -232,15 +234,33 @@ public class FaispController {
|
||||||
mav.addObject("searchParams", userInfo);
|
mav.addObject("searchParams", userInfo);
|
||||||
return mav;
|
return mav;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/eduEditModal")
|
@GetMapping("/eduEditModal")
|
||||||
public ModelAndView eduEditModal(@AuthenticationPrincipal UserInfo loginUser,UserInfo userInfo){
|
public ModelAndView eduEditModal(@AuthenticationPrincipal UserInfo loginUser,UserEdu userEdu){
|
||||||
ModelAndView mav = new ModelAndView("/faisp/eduEditModal");
|
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> 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<PersonnelStatus> calcStatusList(List<PersonnelStatus> statusList) {
|
private List<PersonnelStatus> calcStatusList(List<PersonnelStatus> statusList) {
|
||||||
|
|
|
||||||
|
|
@ -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.DashboardConfig;
|
||||||
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
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.UserInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
||||||
import com.dbnt.faisp.util.ParamMap;
|
import com.dbnt.faisp.util.ParamMap;
|
||||||
|
|
@ -31,4 +32,9 @@ public interface UserInfoMapper {
|
||||||
List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus);
|
List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus);
|
||||||
|
|
||||||
PersonnelStatus nowPersonnelStatus(String ogCd);
|
PersonnelStatus nowPersonnelStatus(String ogCd);
|
||||||
|
|
||||||
|
UserInfo selectPoliceInfo(Integer userSeq);
|
||||||
|
|
||||||
|
List<UserEdu> selectEduList(UserEdu userEdu);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,7 +59,20 @@ public class UserEdu extends BaseModel{
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private LocalDateTime wrtDt;
|
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
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
public interface UserEduRepository extends JpaRepository<UserEdu, UserEdu.UserEduId> {
|
public interface UserEduRepository extends JpaRepository<UserEdu, UserEdu.UserEduId> {
|
||||||
|
|
||||||
|
UserEdu findTopByUserSeqOrderByEduSeqDesc(Integer userSeq);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,10 +6,13 @@ import com.dbnt.faisp.main.fipTarget.model.ShipInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.mapper.UserInfoMapper;
|
import com.dbnt.faisp.main.userInfo.mapper.UserInfoMapper;
|
||||||
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
||||||
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
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.UserInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.DashboardConfigRepository;
|
import com.dbnt.faisp.main.userInfo.repository.DashboardConfigRepository;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.PersonnelStatusRepository;
|
import com.dbnt.faisp.main.userInfo.repository.PersonnelStatusRepository;
|
||||||
|
import com.dbnt.faisp.main.userInfo.repository.UserEduRepository;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository;
|
import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository;
|
import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository;
|
||||||
import com.dbnt.faisp.util.ParamMap;
|
import com.dbnt.faisp.util.ParamMap;
|
||||||
|
|
@ -35,6 +38,7 @@ public class UserInfoService implements UserDetailsService {
|
||||||
private final UserInfoHistoryRepository userInfoHistoryRepository;
|
private final UserInfoHistoryRepository userInfoHistoryRepository;
|
||||||
private final DashboardConfigRepository dashboardConfigRepository;
|
private final DashboardConfigRepository dashboardConfigRepository;
|
||||||
private final PersonnelStatusRepository personnelStatusRepository;
|
private final PersonnelStatusRepository personnelStatusRepository;
|
||||||
|
private final UserEduRepository userEduRepository;
|
||||||
private final UserInfoMapper userInfoMapper;
|
private final UserInfoMapper userInfoMapper;
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -49,41 +53,41 @@ public class UserInfoService implements UserDetailsService {
|
||||||
UserInfo result = userInfoRepository.save(userInfo);
|
UserInfo result = userInfoRepository.save(userInfo);
|
||||||
UserInfoHistory dbHis = userInfoHistoryRepository.findByUserSeq(result.getUserSeq());
|
UserInfoHistory dbHis = userInfoHistoryRepository.findByUserSeq(result.getUserSeq());
|
||||||
if(dbHis == null) {
|
if(dbHis == null) {
|
||||||
UserInfoHistory hisTmp = new UserInfoHistory();
|
UserInfoHistory hisTmp = new UserInfoHistory();
|
||||||
hisTmp.setUserSeq(result.getUserSeq());
|
hisTmp.setUserSeq(result.getUserSeq());
|
||||||
hisTmp.setVersionNo(1);
|
hisTmp.setVersionNo(1);
|
||||||
hisTmp.setDicCode(result.getDicCode());
|
hisTmp.setDicCode(result.getDicCode());
|
||||||
hisTmp.setUserId(result.getUserId());
|
hisTmp.setUserId(result.getUserId());
|
||||||
hisTmp.setUserNm(result.getUserNm());
|
hisTmp.setUserNm(result.getUserNm());
|
||||||
hisTmp.setBirthDate(result.getBirthDate());
|
hisTmp.setBirthDate(result.getBirthDate());
|
||||||
hisTmp.setSex(result.getSex());
|
hisTmp.setSex(result.getSex());
|
||||||
hisTmp.setEmail(result.getEmail());
|
hisTmp.setEmail(result.getEmail());
|
||||||
hisTmp.setPhoneNo(result.getPhoneNo());
|
hisTmp.setPhoneNo(result.getPhoneNo());
|
||||||
hisTmp.setAreaCd(result.getAreaCd());
|
hisTmp.setAreaCd(result.getAreaCd());
|
||||||
hisTmp.setOgCd(result.getOgCd());
|
hisTmp.setOgCd(result.getOgCd());
|
||||||
hisTmp.setOfcCd(result.getOfcCd());
|
hisTmp.setOfcCd(result.getOfcCd());
|
||||||
hisTmp.setTitleCd(result.getTitleCd());
|
hisTmp.setTitleCd(result.getTitleCd());
|
||||||
hisTmp.setGroupCd(result.getGroupCd());
|
hisTmp.setGroupCd(result.getGroupCd());
|
||||||
hisTmp.setSeriesCd(result.getSeriesCd());
|
hisTmp.setSeriesCd(result.getSeriesCd());
|
||||||
hisTmp.setOfcHeadYn(result.getOfcHeadYn());
|
hisTmp.setOfcHeadYn(result.getOfcHeadYn());
|
||||||
hisTmp.setHiringCd(result.getHiringCd());
|
hisTmp.setHiringCd(result.getHiringCd());
|
||||||
hisTmp.setEmployCd(result.getEmployCd());
|
hisTmp.setEmployCd(result.getEmployCd());
|
||||||
hisTmp.setOutturnCd(result.getOutturnCd());
|
hisTmp.setOutturnCd(result.getOutturnCd());
|
||||||
hisTmp.setWorkCd(result.getWorkCd());
|
hisTmp.setWorkCd(result.getWorkCd());
|
||||||
hisTmp.setJobInCd(result.getJobInCd());
|
hisTmp.setJobInCd(result.getJobInCd());
|
||||||
hisTmp.setLanguageCd(result.getLanguageCd());
|
hisTmp.setLanguageCd(result.getLanguageCd());
|
||||||
hisTmp.setPoliceInDate(result.getPoliceInDate());
|
hisTmp.setPoliceInDate(result.getPoliceInDate());
|
||||||
hisTmp.setOrganInDate(result.getOrganInDate());
|
hisTmp.setOrganInDate(result.getOrganInDate());
|
||||||
hisTmp.setOfcInDate(result.getOfcInDate());
|
hisTmp.setOfcInDate(result.getOfcInDate());
|
||||||
hisTmp.setTitleInDate(result.getTitleInDate());
|
hisTmp.setTitleInDate(result.getTitleInDate());
|
||||||
hisTmp.setUserStatus(result.getUserStatus());
|
hisTmp.setUserStatus(result.getUserStatus());
|
||||||
hisTmp.setWrtOrgan(result.getOgCd());
|
hisTmp.setWrtOrgan(result.getOgCd());
|
||||||
hisTmp.setWrtPart(result.getOfcCd());
|
hisTmp.setWrtPart(result.getOfcCd());
|
||||||
hisTmp.setWrtTitle(result.getTitleCd());
|
hisTmp.setWrtTitle(result.getTitleCd());
|
||||||
hisTmp.setWrtUserSeq(result.getUserSeq());
|
hisTmp.setWrtUserSeq(result.getUserSeq());
|
||||||
hisTmp.setWrtNm(result.getUserNm());
|
hisTmp.setWrtNm(result.getUserNm());
|
||||||
hisTmp.setWrtDt(result.getWrtDt());
|
hisTmp.setWrtDt(result.getWrtDt());
|
||||||
userInfoHistoryRepository.save(hisTmp);
|
userInfoHistoryRepository.save(hisTmp);
|
||||||
}
|
}
|
||||||
return result.getUserId();
|
return result.getUserId();
|
||||||
}
|
}
|
||||||
|
|
@ -154,41 +158,41 @@ public class UserInfoService implements UserDetailsService {
|
||||||
userInfoRepository.save(savedInfo);
|
userInfoRepository.save(savedInfo);
|
||||||
UserInfoHistory dbHis = userInfoHistoryRepository.findTopByUserSeqOrderByVersionNoDesc(savedInfo.getUserSeq());
|
UserInfoHistory dbHis = userInfoHistoryRepository.findTopByUserSeqOrderByVersionNoDesc(savedInfo.getUserSeq());
|
||||||
if(dbHis != null) {
|
if(dbHis != null) {
|
||||||
UserInfoHistory hisTmp = new UserInfoHistory();
|
UserInfoHistory hisTmp = new UserInfoHistory();
|
||||||
hisTmp.setUserSeq(savedInfo.getUserSeq());
|
hisTmp.setUserSeq(savedInfo.getUserSeq());
|
||||||
hisTmp.setVersionNo(dbHis.getVersionNo()+1);
|
hisTmp.setVersionNo(dbHis.getVersionNo()+1);
|
||||||
hisTmp.setDicCode(savedInfo.getDicCode());
|
hisTmp.setDicCode(savedInfo.getDicCode());
|
||||||
hisTmp.setUserId(savedInfo.getUserId());
|
hisTmp.setUserId(savedInfo.getUserId());
|
||||||
hisTmp.setUserNm(savedInfo.getUserNm());
|
hisTmp.setUserNm(savedInfo.getUserNm());
|
||||||
hisTmp.setBirthDate(savedInfo.getBirthDate());
|
hisTmp.setBirthDate(savedInfo.getBirthDate());
|
||||||
hisTmp.setSex(savedInfo.getSex());
|
hisTmp.setSex(savedInfo.getSex());
|
||||||
hisTmp.setEmail(savedInfo.getEmail());
|
hisTmp.setEmail(savedInfo.getEmail());
|
||||||
hisTmp.setPhoneNo(savedInfo.getPhoneNo());
|
hisTmp.setPhoneNo(savedInfo.getPhoneNo());
|
||||||
hisTmp.setAreaCd(savedInfo.getAreaCd());
|
hisTmp.setAreaCd(savedInfo.getAreaCd());
|
||||||
hisTmp.setOgCd(savedInfo.getOgCd());
|
hisTmp.setOgCd(savedInfo.getOgCd());
|
||||||
hisTmp.setOfcCd(savedInfo.getOfcCd());
|
hisTmp.setOfcCd(savedInfo.getOfcCd());
|
||||||
hisTmp.setTitleCd(savedInfo.getTitleCd());
|
hisTmp.setTitleCd(savedInfo.getTitleCd());
|
||||||
hisTmp.setGroupCd(savedInfo.getGroupCd());
|
hisTmp.setGroupCd(savedInfo.getGroupCd());
|
||||||
hisTmp.setSeriesCd(savedInfo.getSeriesCd());
|
hisTmp.setSeriesCd(savedInfo.getSeriesCd());
|
||||||
hisTmp.setOfcHeadYn(savedInfo.getOfcHeadYn());
|
hisTmp.setOfcHeadYn(savedInfo.getOfcHeadYn());
|
||||||
hisTmp.setHiringCd(savedInfo.getHiringCd());
|
hisTmp.setHiringCd(savedInfo.getHiringCd());
|
||||||
hisTmp.setEmployCd(savedInfo.getEmployCd());
|
hisTmp.setEmployCd(savedInfo.getEmployCd());
|
||||||
hisTmp.setOutturnCd(savedInfo.getOutturnCd());
|
hisTmp.setOutturnCd(savedInfo.getOutturnCd());
|
||||||
hisTmp.setWorkCd(savedInfo.getWorkCd());
|
hisTmp.setWorkCd(savedInfo.getWorkCd());
|
||||||
hisTmp.setJobInCd(savedInfo.getJobInCd());
|
hisTmp.setJobInCd(savedInfo.getJobInCd());
|
||||||
hisTmp.setLanguageCd(savedInfo.getLanguageCd());
|
hisTmp.setLanguageCd(savedInfo.getLanguageCd());
|
||||||
hisTmp.setPoliceInDate(savedInfo.getPoliceInDate());
|
hisTmp.setPoliceInDate(savedInfo.getPoliceInDate());
|
||||||
hisTmp.setOrganInDate(savedInfo.getOrganInDate());
|
hisTmp.setOrganInDate(savedInfo.getOrganInDate());
|
||||||
hisTmp.setOfcInDate(savedInfo.getOfcInDate());
|
hisTmp.setOfcInDate(savedInfo.getOfcInDate());
|
||||||
hisTmp.setTitleInDate(savedInfo.getTitleInDate());
|
hisTmp.setTitleInDate(savedInfo.getTitleInDate());
|
||||||
hisTmp.setUserStatus(savedInfo.getUserStatus());
|
hisTmp.setUserStatus(savedInfo.getUserStatus());
|
||||||
hisTmp.setWrtOrgan(loginUser.getOgCd());
|
hisTmp.setWrtOrgan(loginUser.getOgCd());
|
||||||
hisTmp.setWrtPart(loginUser.getOfcCd());
|
hisTmp.setWrtPart(loginUser.getOfcCd());
|
||||||
hisTmp.setWrtTitle(loginUser.getTitleCd());
|
hisTmp.setWrtTitle(loginUser.getTitleCd());
|
||||||
hisTmp.setWrtUserSeq(loginUser.getUserSeq());
|
hisTmp.setWrtUserSeq(loginUser.getUserSeq());
|
||||||
hisTmp.setWrtNm(loginUser.getUserNm());
|
hisTmp.setWrtNm(loginUser.getUserNm());
|
||||||
hisTmp.setWrtDt(LocalDateTime.now());
|
hisTmp.setWrtDt(LocalDateTime.now());
|
||||||
userInfoHistoryRepository.save(hisTmp);
|
userInfoHistoryRepository.save(hisTmp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -276,29 +280,28 @@ public class UserInfoService implements UserDetailsService {
|
||||||
}
|
}
|
||||||
dashboardConfigRepository.saveAll(configList);
|
dashboardConfigRepository.saveAll(configList);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UserInfo> selectPoliceList(UserInfo userInfo) {
|
public List<UserInfo> selectPoliceList(UserInfo userInfo) {
|
||||||
return userInfoMapper.selectPoliceList(userInfo);
|
return userInfoMapper.selectPoliceList(userInfo);
|
||||||
}
|
}
|
||||||
public Integer selectPoliceListCnt(UserInfo userInfo) {
|
public Integer selectPoliceListCnt(UserInfo userInfo) {
|
||||||
return userInfoMapper.selectPoliceListCnt(userInfo);
|
return userInfoMapper.selectPoliceListCnt(userInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<UserInfoHistory> selectPoliceHisList(UserInfoHistory userInfoHistory) {
|
public List<UserInfoHistory> selectPoliceHisList(UserInfoHistory userInfoHistory) {
|
||||||
return userInfoMapper.selectPoliceHisList(userInfoHistory);
|
return userInfoMapper.selectPoliceHisList(userInfoHistory);
|
||||||
}
|
}
|
||||||
|
|
||||||
public UserInfoHistory selectpoliceHistoryView(UserInfoHistory userInfoHistory) {
|
public UserInfoHistory selectpoliceHistoryView(UserInfoHistory userInfoHistory) {
|
||||||
return userInfoMapper.selectpoliceHistoryView(userInfoHistory);
|
return userInfoMapper.selectpoliceHistoryView(userInfoHistory);
|
||||||
}
|
}
|
||||||
public String selectuserStatus(UserInfoHistory userInfoHistory) {
|
public String selectuserStatus(UserInfoHistory userInfoHistory) {
|
||||||
return userInfoRepository.getUserStatus(userInfoHistory.getUserSeq());
|
return userInfoRepository.getUserStatus(userInfoHistory.getUserSeq());
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus) {
|
public List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus) {
|
||||||
return userInfoMapper.selectPersonnelStatusList(personnelStatus);
|
return userInfoMapper.selectPersonnelStatusList(personnelStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
public PersonnelStatus selectPersonnelStatusLastVersion(PersonnelStatus personnelStatus) {
|
public PersonnelStatus selectPersonnelStatusLastVersion(PersonnelStatus personnelStatus) {
|
||||||
return personnelStatusRepository
|
return personnelStatusRepository
|
||||||
.findTop1ByYearAndOgCdOrderByVersionNoDesc
|
.findTop1ByYearAndOgCdOrderByVersionNoDesc
|
||||||
|
|
@ -323,4 +326,47 @@ public class UserInfoService implements UserDetailsService {
|
||||||
public PersonnelStatus nowPersonnelStatus(String ogCd) {
|
public PersonnelStatus nowPersonnelStatus(String ogCd) {
|
||||||
return userInfoMapper.nowPersonnelStatus(ogCd);
|
return userInfoMapper.nowPersonnelStatus(ogCd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserInfo selectPoliceInfo(Integer userSeq) {
|
||||||
|
return userInfoMapper.selectPoliceInfo(userSeq);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public int saveEdu(@AuthenticationPrincipal UserInfo loginUser,List<UserEdu> 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<UserEdu> selectEduList(UserEdu userEdu) {
|
||||||
|
return userInfoMapper.selectEduList(userEdu);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public int deleteEdu(UserEdu userEdu) {
|
||||||
|
userEduRepository.deleteById(new UserEduId(userEdu.getEduSeq(), userEdu.getUserSeq()));
|
||||||
|
return userEdu.getUserSeq();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -228,6 +228,7 @@
|
||||||
</foreach>
|
</foreach>
|
||||||
order by c.organ_type, c.parent_organ, c.organ_cd
|
order by c.organ_type, c.parent_organ, c.organ_cd
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="nowPersonnelStatus" resultType="PersonnelStatus" parameterType="string">
|
<select id="nowPersonnelStatus" resultType="PersonnelStatus" parameterType="string">
|
||||||
select a.og_cd,
|
select a.og_cd,
|
||||||
sum(case
|
sum(case
|
||||||
|
|
@ -264,4 +265,35 @@
|
||||||
group by a.og_cd
|
group by a.og_cd
|
||||||
order by a.og_cd
|
order by a.og_cd
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPoliceInfo" resultType="UserInfo" parameterType="Integer">
|
||||||
|
select user_seq,
|
||||||
|
user_nm,
|
||||||
|
(select item_value from code_mgt where item_cd = title_cd) as title_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = og_cd) as og_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = ofc_cd) as ofc_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = sex) as sex,
|
||||||
|
birth_date,
|
||||||
|
(select item_value from code_mgt where item_cd = language_cd) as language_cd
|
||||||
|
from user_info
|
||||||
|
where user_seq = #{userSeq}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectEduList" resultType="UserEdu" parameterType="UserEdu">
|
||||||
|
select edu_seq,
|
||||||
|
user_seq,
|
||||||
|
edu_name,
|
||||||
|
edu_sdate,
|
||||||
|
edu_edate,
|
||||||
|
edu_ra,
|
||||||
|
(select item_value from code_mgt where item_cd = wrt_organ) as wrt_organ,
|
||||||
|
(select item_value from code_mgt where item_cd = wrt_part) as wrt_part,
|
||||||
|
(select item_value from code_mgt where item_cd = wrt_title) as wrt_title,
|
||||||
|
wrt_user_seq,
|
||||||
|
wrt_nm,
|
||||||
|
wrt_dt
|
||||||
|
from user_edu
|
||||||
|
where user_seq = #{userSeq}
|
||||||
|
order by edu_seq desc
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -5,7 +5,7 @@ $(document).on('click', '.policeTr', function (event){
|
||||||
const target = event.target;
|
const target = event.target;
|
||||||
if(!(target.className === "checkBoxTd" ||$(target).parents("td").length>0)){
|
if(!(target.className === "checkBoxTd" ||$(target).parents("td").length>0)){
|
||||||
const userSeq = (Number($(this).find(".userSeq").val()));
|
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 (){
|
$(document).on('click', '#eduAddBtn', function (){
|
||||||
const userSeq = (Number(1));
|
const userSeq = (Number($(this).data('userseq')));
|
||||||
$('#insertEdu').append(
|
$('#insertEdu').append(
|
||||||
'<div id="eduDiv">'+
|
'<div id="eduDiv">'+
|
||||||
'<div class="mb-4 row">'+
|
'<div class="mb-4 row">'+
|
||||||
|
|
@ -81,7 +81,7 @@ $(document).on('click', '#eduAddBtn', function (){
|
||||||
format: "yyyy-mm-dd",
|
format: "yyyy-mm-dd",
|
||||||
language: "ko"
|
language: "ko"
|
||||||
});
|
});
|
||||||
eduList.push({useSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""});
|
eduList.push({userSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""});
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '.rowDeleteBtn', function (){
|
$(document).on('click', '.rowDeleteBtn', function (){
|
||||||
|
|
@ -110,7 +110,56 @@ $(document).on('change', '.eduInput', function (){
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#saveBtn', 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("삭제 처리에 실패하였습니다");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,42 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title" th:text="${userInfo.userStatus eq 'USC003' ? '現 외사경찰 상세' : userInfo.userStatus eq 'USC006' ? '前 외사경찰 상세' : userInfo.userStatus eq 'USC007' ? '非 외사경찰 상세' : null}"></h5>
|
<h5 class="modal-title">외사경찰 교육 등록</h5>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="mb-3 mt-3 row">
|
<div class="mb-3 mt-3 row">
|
||||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">직급</label>
|
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center">직급</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" >
|
<input type="text" class="form-control form-control-sm" th:value="${userInfo.titleCd}" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">생년월일</label>
|
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">생년월일</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off" readonly>
|
<input type="text" class="form-control form-control-sm" th:value="${userInfo.birthDate}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">성명</label>
|
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">성명</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="tel" class="form-control form-control-sm" id="phoneNo" name="phoneNo" >
|
<input type="tel" class="form-control form-control-sm" th:value="|${userInfo.ogCd} ${userInfo.ofcCd} ${userInfo.userNm}|" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" th:value="${userInfo.sex}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
|
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="sex" class="col-sm-1 col-form-label col-form-label-sm text-center">학교</label>
|
<label for="sex" class="col-sm-1 col-form-label col-form-label-sm text-center">학교</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어</label>
|
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" th:value="${userInfo.languageCd}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body text-center">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<table class="table table-striped" id="categoryTable">
|
<table class="table table-striped" id="categoryTable">
|
||||||
<thead>
|
<thead>
|
||||||
|
|
@ -58,18 +58,20 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="overflow-scroll">
|
<tbody class="overflow-scroll">
|
||||||
<tr class="historyInfoTr">
|
<tr th:each="list:${eduList}">
|
||||||
<td></td>
|
<td th:text="${list.eduName}"></td>
|
||||||
<td></td>
|
<td th:text="|${list.eduSdate}~${list.eduEdate}|"></td>
|
||||||
<td></td>
|
<td th:text="${list.eduRa}"></td>
|
||||||
<td></td>
|
<td>
|
||||||
|
<button type="button" class="btn btn-sm btn-danger" id="deleteBtn" th:data-eduseq="${list.eduSeq}" th:data-userseq="${list.userSeq}" th:if="${accessAuth eq 'ACC003'} or ${list.wrtUserSeq eq userSeq}">삭제</button>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div id="insertEdu">
|
<div id="insertEdu">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<button class="btn btn-sm btn-outline-primary col-auto" id="eduAddBtn"><i class="bi bi-plus-lg"></i></button>
|
<button class="btn btn-sm btn-outline-primary col-auto" th:data-userseq="${userInfo.userSeq}" id="eduAddBtn"><i class="bi bi-plus-lg"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,6 @@
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
|
||||||
<button type="button" class="btn btn-success" id="goExcel">엑셀다운</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row justify-content-end pe-3 py-1">
|
<div class="row justify-content-end pe-3 py-1">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue