외사경찰관리 삭제 오류 수정.

정원/현원 현황 요청사항 반영.
master
강석 최 2023-01-28 10:13:26 +09:00
parent 778539224b
commit 9330763c2c
7 changed files with 38 additions and 23 deletions

View File

@ -29,13 +29,17 @@ public class KwmsController {
mav.addObject("userInfo", empInfo);
mav.addObject("msg", "-포함 입력 ex) M00-00000");
}else{
if(userInfoService.selectUserInfoToDicCode(empInfo.getDic()) == null){
UserInfo savedUser = userInfoService.selectUserInfoToDicCode(empInfo.getDic());
if(savedUser == null || savedUser.getUserStatus().equals("USC004")){
UserInfo userInfo = kwmsService.selectEmpInfo(empInfo.getDic());
if(userInfo==null){
mav.addObject("joinFlag", "F");
mav.addObject("userInfo", empInfo);
mav.addObject("msg", "검색 결과가 없습니다.");
}else{
if(savedUser.getUserStatus().equals("USC004")){
userInfo.setUserSeq(savedUser.getUserSeq());
}
mav.addObject("joinFlag", "T");
mav.addObject("userInfo", userInfo);
mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG"));

View File

@ -14,6 +14,7 @@ public interface UserInfoRepository extends JpaRepository<UserInfo, Integer> {
Optional<UserInfo> findByUserSeq(Integer userSeq);
Optional<UserInfo> findByDicCode(String dicCode);
Optional<UserInfo> findByDicCodeAndUserStatus(String dicCode, String userStatus);
@Query(value = "SELECT user_status FROM user_info WHERE user_seq=:userSeq", nativeQuery = true)
String getUserStatus(@Param("userSeq") Integer userSeq);

View File

@ -35,7 +35,8 @@ public class UserInfoService implements UserDetailsService {
@Transactional
public String insertUserInfo(UserInfo userInfo){
if(userInfoRepository.findByUserId(userInfo.getUserId()).orElse(null) != null){
UserInfo savedUser = userInfoRepository.findByUserId(userInfo.getUserId()).orElse(null);
if(savedUser != null && savedUser.getUserStatus().equals("USC003")){
return "userIdDuplication";
}
userInfo.setUserRole(Role.USER.getValue());
@ -43,7 +44,7 @@ public class UserInfoService implements UserDetailsService {
userInfo.setPassword(convertPassword(userInfo.getPassword()));
userInfo.setWrtDt(LocalDateTime.now());
UserInfo result = userInfoRepository.save(userInfo);
saveUserInfoHistory(result, result);
saveUserInfoHistory(savedUser==null?result:savedUser, result);
return result.getUserId();
}
@Transactional

View File

@ -51,9 +51,11 @@ $(document).on('click', '#updateBtn', function (){
})
$(document).on('click', '#deleteBtn', function (){
if(confirm("삭제 하시겠습니까?")){
/*if(confirm(" ?")){
deleteUser([{userSeq: Number($("#userSeq").val())}])
}
}*/
$("#editModalUserStatus").val('USC004');
saveUserInfo();
})
$(document).on('click', '#syncToKwmsBtn', function (){
const dicCode = $("#dicCode").val();
@ -159,7 +161,13 @@ function userCompanion(checkArr){
function saveUserInfo(){
if(confirm("저장하시겠습니까?")){
let actionMsg = "";
if($("#editModalUserStatus").val()==="USC004"){
actionMsg = "삭제"
}else{
actionMsg = "저장"
}
if(confirm(actionMsg+"하시겠습니까?")){
contentFade("in");
const formData = new FormData($("#userInfoUpdate")[0]);
$.ajax({
@ -169,12 +177,12 @@ function saveUserInfo(){
processData: false,
contentType: false,
success : function() {
alert("저장되었습니다.");
alert(actionMsg+"되었습니다.");
contentFade("out");
location.reload();
},
error : function(xhr, status) {
alert("저장에 실패하였습니다.");
alert(actionMsg+"에 실패하였습니다.");
contentFade("out");
}
})

View File

@ -10,7 +10,7 @@
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<input type="hidden" name="userSeq" id="userSeq" class="userSeq" th:value="${userInfo.userSeq}">
<input type="hidden" name="userStatus" th:value="${userInfo.userStatus}">
<input type="hidden" name="userStatus" id="editModalUserStatus" th:value="${userInfo.userStatus}">
<div class="mb-3 mt-3 row" sec:authorize="hasRole('ROLE_ADMIN')" th:classappend="${#strings.contains(userInfo.userRole, 'ROLE_ADMIN')?'d-none':''}">
<label for="userRole" class="col-sm-2 col-form-label col-form-label-sm text-center ">시스템권한</label>
<div class="col-sm-4" id="userRole">

View File

@ -17,6 +17,7 @@
</div>
<div class="modal-body" th:if="${joinFlag eq 'T'}">
<form id="userInfoInsert" action="#" th:action="@{/admin/insertUserInfo}" method="post">
<input type="hidden" name="userSeq" th:value="${userInfo.userSeq}">
<div class="mb-3 mt-3 row">
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">디지털식별코드</label>
<div class="col-sm-3">

View File

@ -64,19 +64,19 @@
<th th:text="${statusSummary.sumNow}"></th>
<th th:text="${statusSummary.sumNow-statusSummary.sumMax}" th:classappend="${(statusSummary.sumNow-statusSummary.sumMax)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt007Max}"></th>
<th th:text="${statusSummary.jt007Now}"></th>
<th th:text="${statusSummary.jt007Now}" th:classappend="${(statusSummary.jt007Now-statusSummary.jt007Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt006Max}"></th>
<th th:text="${statusSummary.jt006Now}"></th>
<th th:text="${statusSummary.jt006Now}" th:classappend="${(statusSummary.jt006Now-statusSummary.jt006Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt005Max}"></th>
<th th:text="${statusSummary.jt005Now}"></th>
<th th:text="${statusSummary.jt005Now}" th:classappend="${(statusSummary.jt005Now-statusSummary.jt005Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt004Max}"></th>
<th th:text="${statusSummary.jt004Now}"></th>
<th th:text="${statusSummary.jt004Now}" th:classappend="${(statusSummary.jt004Now-statusSummary.jt004Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt003Max}"></th>
<th th:text="${statusSummary.jt003Now}"></th>
<th th:text="${statusSummary.jt003Now}" th:classappend="${(statusSummary.jt003Now-statusSummary.jt003Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt002Max}"></th>
<th th:text="${statusSummary.jt002Now}"></th>
<th th:text="${statusSummary.jt002Now}" th:classappend="${(statusSummary.jt002Now-statusSummary.jt002Max)>=0?'text-primary':'text-danger'}"></th>
<th th:text="${statusSummary.jt001Max}"></th>
<th th:text="${statusSummary.jt001Now}"></th>
<th th:text="${statusSummary.jt001Now}" th:classappend="${(statusSummary.jt001Now-statusSummary.jt001Max)>=0?'text-primary':'text-danger'}"></th>
</tr>
</thead>
<tbody class="table-group-divider">
@ -90,19 +90,19 @@
<td th:text="${status.sumNow}"></td>
<td th:text="${status.sumNow-status.sumMax}" th:classappend="${(status.sumNow-status.sumMax)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt007Max}"></td>
<td th:text="${status.jt007Now}"></td>
<td th:text="${status.jt007Now}" th:classappend="${(status.jt007Now-status.jt007Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt006Max}"></td>
<td th:text="${status.jt006Now}"></td>
<td th:text="${status.jt006Now}" th:classappend="${(status.jt006Now-status.jt006Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt005Max}"></td>
<td th:text="${status.jt005Now}"></td>
<td th:text="${status.jt005Now}" th:classappend="${(status.jt005Now-status.jt005Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt004Max}"></td>
<td th:text="${status.jt004Now}"></td>
<td th:text="${status.jt004Now}" th:classappend="${(status.jt004Now-status.jt004Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt003Max}"></td>
<td th:text="${status.jt003Now}"></td>
<td th:text="${status.jt003Now}" th:classappend="${(status.jt003Now-status.jt003Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt002Max}"></td>
<td th:text="${status.jt002Now}"></td>
<td th:text="${status.jt002Now}" th:classappend="${(status.jt002Now-status.jt002Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${status.jt001Max}"></td>
<td th:text="${status.jt001Now}"></td>
<td th:text="${status.jt001Now}" th:classappend="${(status.jt001Now-status.jt001Max)>=0?'text-primary':'text-danger'}"></td>
<td th:text="${#temporals.format(status.wrtDt, 'yyyy-MM-dd HH:mm')}"></td>
</tr>
</tbody>