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.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;
|
||||
|
|
@ -212,6 +213,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");
|
||||
|
|
@ -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);
|
||||
userInfo.setQueryInfo();
|
||||
mav.addObject("policeList", userInfoService.selectPoliceList(userInfo));
|
||||
|
|
@ -232,15 +234,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> 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) {
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -31,4 +32,9 @@ public interface UserInfoMapper {
|
|||
List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus);
|
||||
|
||||
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")
|
||||
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
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
|||
|
||||
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.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.PersonnelStatusRepository;
|
||||
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;
|
||||
|
|
@ -35,6 +38,7 @@ public class UserInfoService implements UserDetailsService {
|
|||
private final UserInfoHistoryRepository userInfoHistoryRepository;
|
||||
private final DashboardConfigRepository dashboardConfigRepository;
|
||||
private final PersonnelStatusRepository personnelStatusRepository;
|
||||
private final UserEduRepository userEduRepository;
|
||||
private final UserInfoMapper userInfoMapper;
|
||||
|
||||
@Transactional
|
||||
|
|
@ -49,41 +53,41 @@ public class UserInfoService implements UserDetailsService {
|
|||
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);
|
||||
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();
|
||||
}
|
||||
|
|
@ -154,41 +158,41 @@ public class UserInfoService implements UserDetailsService {
|
|||
userInfoRepository.save(savedInfo);
|
||||
UserInfoHistory dbHis = userInfoHistoryRepository.findTopByUserSeqOrderByVersionNoDesc(savedInfo.getUserSeq());
|
||||
if(dbHis != null) {
|
||||
UserInfoHistory hisTmp = new UserInfoHistory();
|
||||
hisTmp.setUserSeq(savedInfo.getUserSeq());
|
||||
hisTmp.setVersionNo(dbHis.getVersionNo()+1);
|
||||
hisTmp.setDicCode(savedInfo.getDicCode());
|
||||
hisTmp.setUserId(savedInfo.getUserId());
|
||||
hisTmp.setUserNm(savedInfo.getUserNm());
|
||||
hisTmp.setBirthDate(savedInfo.getBirthDate());
|
||||
hisTmp.setSex(savedInfo.getSex());
|
||||
hisTmp.setEmail(savedInfo.getEmail());
|
||||
hisTmp.setPhoneNo(savedInfo.getPhoneNo());
|
||||
hisTmp.setAreaCd(savedInfo.getAreaCd());
|
||||
hisTmp.setOgCd(savedInfo.getOgCd());
|
||||
hisTmp.setOfcCd(savedInfo.getOfcCd());
|
||||
hisTmp.setTitleCd(savedInfo.getTitleCd());
|
||||
hisTmp.setGroupCd(savedInfo.getGroupCd());
|
||||
hisTmp.setSeriesCd(savedInfo.getSeriesCd());
|
||||
hisTmp.setOfcHeadYn(savedInfo.getOfcHeadYn());
|
||||
hisTmp.setHiringCd(savedInfo.getHiringCd());
|
||||
hisTmp.setEmployCd(savedInfo.getEmployCd());
|
||||
hisTmp.setOutturnCd(savedInfo.getOutturnCd());
|
||||
hisTmp.setWorkCd(savedInfo.getWorkCd());
|
||||
hisTmp.setJobInCd(savedInfo.getJobInCd());
|
||||
hisTmp.setLanguageCd(savedInfo.getLanguageCd());
|
||||
hisTmp.setPoliceInDate(savedInfo.getPoliceInDate());
|
||||
hisTmp.setOrganInDate(savedInfo.getOrganInDate());
|
||||
hisTmp.setOfcInDate(savedInfo.getOfcInDate());
|
||||
hisTmp.setTitleInDate(savedInfo.getTitleInDate());
|
||||
hisTmp.setUserStatus(savedInfo.getUserStatus());
|
||||
hisTmp.setWrtOrgan(loginUser.getOgCd());
|
||||
hisTmp.setWrtPart(loginUser.getOfcCd());
|
||||
hisTmp.setWrtTitle(loginUser.getTitleCd());
|
||||
hisTmp.setWrtUserSeq(loginUser.getUserSeq());
|
||||
hisTmp.setWrtNm(loginUser.getUserNm());
|
||||
hisTmp.setWrtDt(LocalDateTime.now());
|
||||
userInfoHistoryRepository.save(hisTmp);
|
||||
UserInfoHistory hisTmp = new UserInfoHistory();
|
||||
hisTmp.setUserSeq(savedInfo.getUserSeq());
|
||||
hisTmp.setVersionNo(dbHis.getVersionNo()+1);
|
||||
hisTmp.setDicCode(savedInfo.getDicCode());
|
||||
hisTmp.setUserId(savedInfo.getUserId());
|
||||
hisTmp.setUserNm(savedInfo.getUserNm());
|
||||
hisTmp.setBirthDate(savedInfo.getBirthDate());
|
||||
hisTmp.setSex(savedInfo.getSex());
|
||||
hisTmp.setEmail(savedInfo.getEmail());
|
||||
hisTmp.setPhoneNo(savedInfo.getPhoneNo());
|
||||
hisTmp.setAreaCd(savedInfo.getAreaCd());
|
||||
hisTmp.setOgCd(savedInfo.getOgCd());
|
||||
hisTmp.setOfcCd(savedInfo.getOfcCd());
|
||||
hisTmp.setTitleCd(savedInfo.getTitleCd());
|
||||
hisTmp.setGroupCd(savedInfo.getGroupCd());
|
||||
hisTmp.setSeriesCd(savedInfo.getSeriesCd());
|
||||
hisTmp.setOfcHeadYn(savedInfo.getOfcHeadYn());
|
||||
hisTmp.setHiringCd(savedInfo.getHiringCd());
|
||||
hisTmp.setEmployCd(savedInfo.getEmployCd());
|
||||
hisTmp.setOutturnCd(savedInfo.getOutturnCd());
|
||||
hisTmp.setWorkCd(savedInfo.getWorkCd());
|
||||
hisTmp.setJobInCd(savedInfo.getJobInCd());
|
||||
hisTmp.setLanguageCd(savedInfo.getLanguageCd());
|
||||
hisTmp.setPoliceInDate(savedInfo.getPoliceInDate());
|
||||
hisTmp.setOrganInDate(savedInfo.getOrganInDate());
|
||||
hisTmp.setOfcInDate(savedInfo.getOfcInDate());
|
||||
hisTmp.setTitleInDate(savedInfo.getTitleInDate());
|
||||
hisTmp.setUserStatus(savedInfo.getUserStatus());
|
||||
hisTmp.setWrtOrgan(loginUser.getOgCd());
|
||||
hisTmp.setWrtPart(loginUser.getOfcCd());
|
||||
hisTmp.setWrtTitle(loginUser.getTitleCd());
|
||||
hisTmp.setWrtUserSeq(loginUser.getUserSeq());
|
||||
hisTmp.setWrtNm(loginUser.getUserNm());
|
||||
hisTmp.setWrtDt(LocalDateTime.now());
|
||||
userInfoHistoryRepository.save(hisTmp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -276,29 +280,28 @@ public class UserInfoService implements UserDetailsService {
|
|||
}
|
||||
dashboardConfigRepository.saveAll(configList);
|
||||
}
|
||||
|
||||
|
||||
public List<UserInfo> selectPoliceList(UserInfo userInfo) {
|
||||
return userInfoMapper.selectPoliceList(userInfo);
|
||||
return userInfoMapper.selectPoliceList(userInfo);
|
||||
}
|
||||
public Integer selectPoliceListCnt(UserInfo userInfo) {
|
||||
return userInfoMapper.selectPoliceListCnt(userInfo);
|
||||
return userInfoMapper.selectPoliceListCnt(userInfo);
|
||||
}
|
||||
|
||||
|
||||
public List<UserInfoHistory> selectPoliceHisList(UserInfoHistory userInfoHistory) {
|
||||
return userInfoMapper.selectPoliceHisList(userInfoHistory);
|
||||
return userInfoMapper.selectPoliceHisList(userInfoHistory);
|
||||
}
|
||||
|
||||
|
||||
public UserInfoHistory selectpoliceHistoryView(UserInfoHistory userInfoHistory) {
|
||||
return userInfoMapper.selectpoliceHistoryView(userInfoHistory);
|
||||
return userInfoMapper.selectpoliceHistoryView(userInfoHistory);
|
||||
}
|
||||
public String selectuserStatus(UserInfoHistory userInfoHistory) {
|
||||
return userInfoRepository.getUserStatus(userInfoHistory.getUserSeq());
|
||||
return userInfoRepository.getUserStatus(userInfoHistory.getUserSeq());
|
||||
}
|
||||
|
||||
public List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus) {
|
||||
return userInfoMapper.selectPersonnelStatusList(personnelStatus);
|
||||
}
|
||||
|
||||
public PersonnelStatus selectPersonnelStatusLastVersion(PersonnelStatus personnelStatus) {
|
||||
return personnelStatusRepository
|
||||
.findTop1ByYearAndOgCdOrderByVersionNoDesc
|
||||
|
|
@ -323,4 +326,47 @@ public class UserInfoService implements UserDetailsService {
|
|||
public PersonnelStatus nowPersonnelStatus(String 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>
|
||||
order by c.organ_type, c.parent_organ, c.organ_cd
|
||||
</select>
|
||||
|
||||
<select id="nowPersonnelStatus" resultType="PersonnelStatus" parameterType="string">
|
||||
select a.og_cd,
|
||||
sum(case
|
||||
|
|
@ -264,4 +265,35 @@
|
|||
group by a.og_cd
|
||||
order by a.og_cd
|
||||
</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>
|
||||
|
|
@ -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(
|
||||
'<div id="eduDiv">'+
|
||||
'<div class="mb-4 row">'+
|
||||
|
|
@ -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("삭제 처리에 실패하였습니다");
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -1,42 +1,42 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<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>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<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">
|
||||
<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>
|
||||
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">생년월일</label>
|
||||
<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 class="mb-3 row">
|
||||
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">성명</label>
|
||||
<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>
|
||||
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
||||
<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 class="mb-3 row">
|
||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
|
||||
<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>
|
||||
<label for="sex" class="col-sm-1 col-form-label col-form-label-sm text-center">학교</label>
|
||||
<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>
|
||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어</label>
|
||||
<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 class="mb-3 row">
|
||||
|
|
@ -46,7 +46,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<div class="card-body text-center">
|
||||
<div class="row">
|
||||
<table class="table table-striped" id="categoryTable">
|
||||
<thead>
|
||||
|
|
@ -58,18 +58,20 @@
|
|||
</tr>
|
||||
</thead>
|
||||
<tbody class="overflow-scroll">
|
||||
<tr class="historyInfoTr">
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<tr th:each="list:${eduList}">
|
||||
<td th:text="${list.eduName}"></td>
|
||||
<td th:text="|${list.eduSdate}~${list.eduEdate}|"></td>
|
||||
<td th:text="${list.eduRa}"></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>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div id="insertEdu">
|
||||
<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>
|
||||
|
||||
|
|
|
|||
|
|
@ -43,9 +43,6 @@
|
|||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<button type="button" class="btn btn-success" id="goExcel">엑셀다운</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row justify-content-end pe-3 py-1">
|
||||
<div class="col-auto">
|
||||
|
|
|
|||
Loading…
Reference in New Issue