국제범죄 검거현황 마감 기능 추가.
parent
0118c53f6e
commit
a1c885f2f0
|
|
@ -141,6 +141,7 @@ public class SecurityConfig{
|
||||||
"/counterIntelligence/**",
|
"/counterIntelligence/**",
|
||||||
"/monitoring/**",
|
"/monitoring/**",
|
||||||
"/intelligenceNetwork/**",
|
"/intelligenceNetwork/**",
|
||||||
|
"/deadline/**",
|
||||||
"/resetSession"
|
"/resetSession"
|
||||||
).hasRole(Role.USER.name()) // USER 접근 허용
|
).hasRole(Role.USER.name()) // USER 접근 허용
|
||||||
.antMatchers(
|
.antMatchers(
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
|
||||||
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest;
|
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.model.InternationalCrimeArrest;
|
||||||
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository;
|
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.repository.SuspectPersonInfoRepository;
|
||||||
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService;
|
import com.dbnt.faisp.main.faStatistics.internationalCrimeArrest.service.InternationalCrimeArrestService;
|
||||||
|
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
|
||||||
import com.dbnt.faisp.main.organMgt.model.OrganConfig;
|
import com.dbnt.faisp.main.organMgt.model.OrganConfig;
|
||||||
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
|
import com.dbnt.faisp.main.organMgt.service.OrganConfigService;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||||
|
|
@ -29,9 +30,9 @@ public class InternationalCrimeArrestController {
|
||||||
|
|
||||||
private final AuthMgtService authMgtService;
|
private final AuthMgtService authMgtService;
|
||||||
private final InternationalCrimeArrestService internationalCrimeArrestService;
|
private final InternationalCrimeArrestService internationalCrimeArrestService;
|
||||||
private final CodeMgtService codeMgtService;
|
|
||||||
private final OrganConfigService organConfigService;
|
private final OrganConfigService organConfigService;
|
||||||
private final SuspectPersonInfoRepository suspectPersonInfoRepository;
|
private final SuspectPersonInfoRepository suspectPersonInfoRepository;
|
||||||
|
private final MenuMgtService menuMgtService;
|
||||||
|
|
||||||
@GetMapping("/internationalCrimeArrest")
|
@GetMapping("/internationalCrimeArrest")
|
||||||
public ModelAndView internationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser,InternationalCrimeArrest internationalCrimeArrest) {
|
public ModelAndView internationalCrimeArrest(@AuthenticationPrincipal UserInfo loginUser,InternationalCrimeArrest internationalCrimeArrest) {
|
||||||
|
|
@ -53,6 +54,7 @@ public class InternationalCrimeArrestController {
|
||||||
mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList);
|
mav.addObject("internationalCrimeArrestList", internationalCrimeArrestList);
|
||||||
internationalCrimeArrest.setContentCnt(internationalCrimeArrestService.selectInternationalCrimeArrestListCnt(internationalCrimeArrest));
|
internationalCrimeArrest.setContentCnt(internationalCrimeArrestService.selectInternationalCrimeArrestListCnt(internationalCrimeArrest));
|
||||||
internationalCrimeArrest.setPaginationInfo();
|
internationalCrimeArrest.setPaginationInfo();
|
||||||
|
mav.addObject("deadlineState", menuMgtService.selectDeadlineChk("/faStatistics/internationalCrimeArrest"));
|
||||||
mav.addObject("organConfigList", organConfigService.selectOrganList());
|
mav.addObject("organConfigList", organConfigService.selectOrganList());
|
||||||
mav.addObject("searchParams", internationalCrimeArrest);
|
mav.addObject("searchParams", internationalCrimeArrest);
|
||||||
return mav;
|
return mav;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,21 @@
|
||||||
|
package com.dbnt.faisp.main.menuMgt;
|
||||||
|
|
||||||
|
import com.dbnt.faisp.main.menuMgt.model.MenuMgt;
|
||||||
|
import com.dbnt.faisp.main.menuMgt.service.MenuMgtService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/deadline")
|
||||||
|
public class DeadlineController {
|
||||||
|
|
||||||
|
private final MenuMgtService menuMgtService;
|
||||||
|
|
||||||
|
@PostMapping("/stateChange")
|
||||||
|
public void stateChange(MenuMgt menuMgt){
|
||||||
|
menuMgtService.updateDeadlineState(menuMgt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -2,10 +2,17 @@ package com.dbnt.faisp.main.menuMgt.repository;
|
||||||
|
|
||||||
import com.dbnt.faisp.main.menuMgt.model.MenuMgt;
|
import com.dbnt.faisp.main.menuMgt.model.MenuMgt;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.springframework.data.jpa.repository.Modifying;
|
||||||
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
||||||
public interface MenuMgtRepository extends JpaRepository<MenuMgt, Integer> {
|
public interface MenuMgtRepository extends JpaRepository<MenuMgt, Integer> {
|
||||||
Optional<MenuMgt> findTopByCat1CdAndCat2CdAndCat3Cd(String cat1Cd, String cat2Cd, String cat3Cd);
|
Optional<MenuMgt> findTopByCat1CdAndCat2CdAndCat3Cd(String cat1Cd, String cat2Cd, String cat3Cd);
|
||||||
|
Optional<MenuMgt> findByMenuUrl(String menuUrl);
|
||||||
|
|
||||||
|
@Modifying(clearAutomatically = true)
|
||||||
|
@Query("update MenuMgt set deadlineChk = :deadlineChk where menuKey = :menuKey")
|
||||||
|
void bulkModifyingByMenuKeyToDeadlineChk(Integer menuKey, String deadlineChk);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -188,4 +188,12 @@ public class MenuMgtService {
|
||||||
MenuMgt menuMgt = menuMgtRepository.findById(menuKey).orElse(new MenuMgt());
|
MenuMgt menuMgt = menuMgtRepository.findById(menuKey).orElse(new MenuMgt());
|
||||||
return menuMgt.getMenuUrl();
|
return menuMgt.getMenuUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String selectDeadlineChk(String url){
|
||||||
|
return menuMgtRepository.findByMenuUrl(url).orElse(new MenuMgt()).getDeadlineChk();
|
||||||
|
}
|
||||||
|
@Transactional
|
||||||
|
public void updateDeadlineState(MenuMgt menuMgt) {
|
||||||
|
menuMgtRepository.bulkModifyingByMenuKeyToDeadlineChk(menuMgt.getMenuKey(), menuMgt.getDeadlineChk());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,26 @@
|
||||||
|
$(document).on('click', '#deadlineBtn', function (){
|
||||||
|
contentFade("in");
|
||||||
|
const formData = new FormData();
|
||||||
|
const deadlineChk = $(this).attr('data-deadlinechk')==="T"?"F":"T"
|
||||||
|
formData.append("menuKey", $(this).attr('data-menukey'));
|
||||||
|
formData.append("deadlineChk", deadlineChk);
|
||||||
|
$.ajax({
|
||||||
|
type : 'POST',
|
||||||
|
data : formData,
|
||||||
|
url : "/deadline/stateChange",
|
||||||
|
processData: false,
|
||||||
|
contentType: false,
|
||||||
|
beforeSend: function (xhr){
|
||||||
|
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||||
|
},
|
||||||
|
success : function(result) {
|
||||||
|
alert((deadlineChk==="T"?"마감":"등록허용")+" 되었습니다.");
|
||||||
|
contentFade("out");
|
||||||
|
location.reload();
|
||||||
|
},
|
||||||
|
error : function(xhr, status) {
|
||||||
|
alert("상태변경에 실패하였습니다.")
|
||||||
|
contentFade("out");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
@ -10,6 +10,7 @@
|
||||||
const organConfigList = [[${organConfigList}]];
|
const organConfigList = [[${organConfigList}]];
|
||||||
</script>
|
</script>
|
||||||
<script type="text/javascript" th:src="@{/js/faStatistics/internationalCrimeArrest.js}"></script>
|
<script type="text/javascript" th:src="@{/js/faStatistics/internationalCrimeArrest.js}"></script>
|
||||||
|
<script type="text/javascript" th:src="@{/js/menuMgt/deadline.js}"></script>
|
||||||
</th:block>
|
</th:block>
|
||||||
<div layout:fragment="content">
|
<div layout:fragment="content">
|
||||||
<main>
|
<main>
|
||||||
|
|
@ -230,7 +231,7 @@
|
||||||
<!-- 페이징 -->
|
<!-- 페이징 -->
|
||||||
<div class="row justify-content-between">
|
<div class="row justify-content-between">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<button class="btn btn-warning" id="ivsgtAddBtn" th:if="${accessAuth eq 'ACC003'}">마감</button>
|
<button class="btn btn-warning" id="deadlineBtn" data-menukey="41" th:data-deadlinechk="${deadlineState}" th:if="${accessAuth eq 'ACC003'}" th:text="${deadlineState eq 'F'?'마감':'등록허용'}"></button>
|
||||||
<button class="btn btn-success" id="icaExcelDownBtn">엑셀 다운로드</button>
|
<button class="btn btn-success" id="icaExcelDownBtn">엑셀 다운로드</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
|
|
@ -259,7 +260,7 @@
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
<button class="btn btn-primary" id="icaAddBtn">등록</button>
|
<button class="btn btn-primary" id="icaAddBtn" th:disabled="${deadlineState eq 'T'}">등록</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue